Tape read/write on expansion port?

Discussions about Sinclair ZX80 and ZX81 Hardware
Moggy
Posts: 2032
Joined: Wed Jun 18, 2008 2:00 pm

Re: Tape read/write on expansion port?

Post by Moggy »

mrtinb wrote:
Fri Mar 30, 2018 10:05 pm
I learn when I ask
And from this you have learned?

User avatar
mrtinb
Posts: 1213
Joined: Fri Nov 06, 2015 5:44 pm
Location: Denmark
Contact:

Re: Tape read/write on expansion port?

Post by mrtinb »

Moggy wrote:
Fri Mar 30, 2018 10:10 pm
And from this you have learned?
When writing to port $FE I should not set HIGH. This might be why my keyboard project has failed.
Martin
ZX81, Lambda 8300, Commodore 64, Mac G4 Cube

User avatar
Andy Rea
Posts: 1553
Joined: Fri May 09, 2008 2:48 pm

Re: Tape read/write on expansion port?

Post by Andy Rea »

mrtinb wrote:
Fri Mar 30, 2018 10:06 pm
It's for my Lambda 8300 which does not work with neither ZXpand nor ZXblast.
Ah now then...... < Opens window and sticks head out >

SIRMORRIS.... where art thou Sirmorris?

But... Okay i see your point now.... Let me go find a schematic for that lambs whatsa majig.

Andy
AFK

Moggy
Posts: 2032
Joined: Wed Jun 18, 2008 2:00 pm

Re: Tape read/write on expansion port?

Post by Moggy »

Ignore me Martin it is Friday night and I have had more scotch than I should have. :lol:

User avatar
mrtinb
Posts: 1213
Joined: Fri Nov 06, 2015 5:44 pm
Location: Denmark
Contact:

Re: Tape read/write on expansion port?

Post by mrtinb »

Well the circuit for Lambda 8300 is here:
https://k1.spdns.de/Vintage/Sinclair/80 ... iagram.gif

And for ZX81 here:
https://k1.spdns.de/Vintage/Sinclair/80 ... iagram.gif

I can see that the 1M resistor on the MIC that makes problems on the ZX81 is only 75K on the Lambda. Then loading and saving on the Lambda would be easier on tape.

Edit: Changed 1K to 1M.
Martin
ZX81, Lambda 8300, Commodore 64, Mac G4 Cube

User avatar
Andy Rea
Posts: 1553
Joined: Fri May 09, 2008 2:48 pm

Re: Tape read/write on expansion port?

Post by Andy Rea »

mrtinb wrote:
Fri Mar 30, 2018 10:14 pm
Moggy wrote:
Fri Mar 30, 2018 10:10 pm
And from this you have learned?
When writing to port $FE I should not set HIGH. This might be why my keyboard project has failed.
You can write high... Only when port $FE is expecting an input you can't drive the data line high. Again back to the keyboard, the memotech external keyboard can be used and both it and the zx81's keyboard work together you can use either. The data lines have pull up resistors that will provide a high logic level if nothing else is driving the bus, when port $fe is read any key pressed with its corresponding row driver ( address line ) is low will be buffered by the ula and drive that data line low. So you see the ula can if it's wants drive a data line low , or an external device can drive it low. High is created by the pullup when nothing drive it low.

Google ic2 data bus it work similar in so much that multiple device can be connected but only one drives the bus at a time

.
AFK

sirmorris
Posts: 2811
Joined: Thu May 08, 2008 5:45 pm

Re: Tape read/write on expansion port?

Post by sirmorris »

mrtinb wrote:
Fri Mar 30, 2018 10:05 pm
I learn when I ask
Thumbs up.

User avatar
RetroTechie
Posts: 379
Joined: Tue Nov 01, 2011 12:16 am
Location: Hengelo, NL
Contact:

Re: Tape read/write on expansion port?

Post by RetroTechie »

Andy Rea wrote:
Fri Mar 30, 2018 5:15 pm
You must remember for port $FE to work correctly you use open collector drivers only.. DO NOT DRIVE DATA LINES HIGH.
So you see the ula can if it's wants drive a data line low , or an external device can drive it low. High is created by the pull-up when nothing drive it low.
Commonly known as "wired-OR". And yes, with pull-ups and open collector outputs, one shouldn't drive a line high. Unless you can be sure that no other output is active.

But I think Andy is mistaken about driving data lines high on this IO-port read. ZX81 schematic says otherwise: data lines are connected between Z80 and ULA (with pull-ups), and between ROM, RAM and edge connector. But in between those, there's a set of 470 Ohm series resistors (R7..R14). So if for an IO-read the ULA drives a line low, and (through edge connector) you drive corresponding line high, one of R7..R14 will limit the current to some 10 mA max. ULA will 'win' in this case btw, and Z80 will see a "0" input.

It's been said here & there that ULA data lines are open collector outputs. Quite possible, and reasonable since (combined with external pull-ups) there's no case where the ULA needs to drive a data line high. But I haven't seen any evidence one way or the other. As long as those series resistors are in place, it shouldn't really matter anyway.

User avatar
Andy Rea
Posts: 1553
Joined: Fri May 09, 2008 2:48 pm

Re: Tape read/write on expansion port?

Post by Andy Rea »

Okay let's take the external.keyboard as an example again... Which we all know actually work.

If ula drives high which it will ( if not open collector ) when no keys on zx81 built in keyboard are pressed, and ula always wins...

How can external keyboard drive low and work???

<Smug mode> :lol:

Regards Andy
Last edited by Andy Rea on Sun Apr 01, 2018 5:50 pm, edited 1 time in total.
AFK

User avatar
Paul
Posts: 1088
Joined: Thu May 27, 2010 8:15 am
Location: Germanys west end

Re: Tape read/write on expansion port?

Post by Paul »

mrtinb wrote:
Fri Mar 30, 2018 10:06 pm
It's for my Lambda 8300 which does not work with neither ZXpand nor ZXblast.
With ZX81 compatible ROM or with original ROM?
There is a simple Addon with a vdrive for the ZX81 which will work out of the Box with Lambda
Hardware. With ZX81 compatible ROM the Software should run immediately as well.
Kind regards
Paul
Vdr_Stefan.jpg
In theory, there is no difference between theory and practice. But, in practice, there is.

Post Reply