ZX21 Project ZX81 Replacement PCB

Any discussions related to the creation of new hardware or software for the ZX80 or ZX81
Post Reply
User avatar
fordp2002
Posts: 52
Joined: Tue Aug 15, 2017 2:49 pm
Location: Cambridgeshire, UK

ZX21 Project ZX81 Replacement PCB

Post by fordp2002 »

As I have hinted elsewhere I am working on a ZX81 Clone.

This is an open hardware project with no intention to make any money or keep the design closed in any way.

(I was meant to be on holiday proper this week but we can all guess what happened to that!)

This is an early preview so please be patient.

I attach an early circuit diagram as I am starting the PCB layout imminently.

My current progress can be tracked here https://github.com/fordp2002/ZX21

If you know your way around a circuit diagram then please do download the attached and give me any feedback here or by filing an issue on Github.
Attachments
ZX21.pdf
(184.93 KiB) Downloaded 180 times
FordP (Simon Ellwood)
Time is an illusion. Lunchtime, doubly so!
User avatar
XavSnap
Posts: 1296
Joined: Sat May 10, 2008 4:23 pm
Location: 'Zx81 France' Fb group.

Re: ZX21 Project ZX81 Replacement PCB

Post by XavSnap »

Great job !

Just one Joystick ?
:lol:
Xavier
User avatar
Paul
Posts: 1139
Joined: Thu May 27, 2010 8:15 am
Location: Germanys west end

Re: ZX21 Project ZX81 Replacement PCB

Post by Paul »

I looked at your schematic.
You state ULA 2C210E which has a backporch and add a backporch to it.
Is the additional backporch optional for 2C184 ULA?
Also you add a 32k RAM, why not 56K? Will it be possible to jumper to 1K, 2K, 16K, 32K?
You seem to use ULA /RAMCS which means 16 only.
In theory, there is no difference between theory and practice. But, in practice, there is.
User avatar
fordp2002
Posts: 52
Joined: Tue Aug 15, 2017 2:49 pm
Location: Cambridgeshire, UK

Re: ZX21 Project ZX81 Replacement PCB

Post by fordp2002 »

Paul wrote: Wed Nov 25, 2020 12:20 pm I looked at your schematic.
You state ULA 2C210E which has a backporch and add a backporch to it.
Is the additional backporch optional for 2C184 ULA?
Also you add a 32k RAM, why not 56K? Will it be possible to jumper to 1K, 2K, 16K, 32K?
You seem to use ULA /RAMCS which means 16 only.
The board is designed to take both ULAs or CPLD alternatives. Most of my donor ZX81's are using the older ULA.

The back porch circuit is in a dotted box to make it clear what to leave out if you do not need it.

I am just making a first prototype with the 32K RAM chip there will be changes in the future. Which RAM chip would you propose for 56K?
FordP (Simon Ellwood)
Time is an illusion. Lunchtime, doubly so!
User avatar
Paul
Posts: 1139
Joined: Thu May 27, 2010 8:15 am
Location: Germanys west end

Re: ZX21 Project ZX81 Replacement PCB

Post by Paul »

fordp2002 wrote: Wed Nov 25, 2020 12:52 pm Which RAM chip would you propose for 56K?
For example AS 6C1008-55PCN or 628128.
I also like small dil32 cache chips.
Dip-32 Retro IS61C512-20N
In theory, there is no difference between theory and practice. But, in practice, there is.
User avatar
1024MAK
Posts: 3630
Joined: Mon Sep 26, 2011 10:56 am
Location: Looking forward to summer in Somerset, UK...

Re: ZX21 Project ZX81 Replacement PCB

Post by 1024MAK »

Hi Ford

Hopefully these are constructive comments:

TR2 - the transistor used has to have a very quick switch off time. Most general purpose transistors take a small amount of time to turn off, especially if the base becomes saturated. If a BC548 is used the value of R6 may need to be adjusted. If the transistor used switches off too slowly, the Z80 clock input will stay low instead of being a ‘square’ wave.

I’m not sure if this applies to the wait state generator formed by TR1, as I’ve not needed to change any transistor in this position.

These days C5 does not have to be an electrolytic. It can be a multilayer ceramic.

If it makes the PCB layout easier, the order of the address lines to the SRAM does not have to match the labelling. The same applies to the data lines. So for example D0 from the Z80 can go to D5 on the SRAM.

Address line A14 is not very useful as far as the SRAM is concerned. The ULA uses address line A14 to determine if ROM or RAM should be selected. You may be better off routing the extra address input pin of the SRAM chip to a link/jumper shunt header, one pin of which should be connected to 0V or to +5V. The other pin can then be used for additional control circuitry.

See this topic for more on this.

IC301, IC303 - the 3.3V regulators. If they are indeed powered from the +9V (nominal) supply, have you checked if they are within their power rating? As the +9V (nominal) supply from a Sinclair UK700 or UK1200 PSU can be as high as 12V.

With the joystick port, you need to make it clear that it will only support ordinary switched joysticks. Joysticks that have an auto-fire feature or game pads (that contains active electronics) will not be compatible (these all expect pin 8 to be 0V/GND).

Mark
User avatar
fordp2002
Posts: 52
Joined: Tue Aug 15, 2017 2:49 pm
Location: Cambridgeshire, UK

Re: ZX21 Project ZX81 Replacement PCB

Post by fordp2002 »

Paul wrote: Wed Nov 25, 2020 4:57 pm
fordp2002 wrote: Wed Nov 25, 2020 12:52 pm Which RAM chip would you propose for 56K?
For example AS 6C1008-55PCN or 628128.
I also like small dil32 cache chips.
Dip-32 Retro IS61C512-20N
The AS 6C1008-55PCN is CMOS only so not great for a TTL Computer. You can use the 512K Byte big brother however and I do have some of those.

Is there much software that needs more than 32K?

You would, of course, need to add additional logic to get more than 16K working.
FordP (Simon Ellwood)
Time is an illusion. Lunchtime, doubly so!
User avatar
fordp2002
Posts: 52
Joined: Tue Aug 15, 2017 2:49 pm
Location: Cambridgeshire, UK

Re: ZX21 Project ZX81 Replacement PCB

Post by fordp2002 »

1024MAK wrote: Wed Nov 25, 2020 5:54 pm Hi Ford

Hopefully these are constructive comments:

TR2 - the transistor used has to have a very quick switch off time. Most general purpose transistors take a small amount of time to turn off, especially if the base becomes saturated. If a BC548 is used the value of R6 may need to be adjusted. If the transistor used switches off too slowly, the Z80 clock input will stay low instead of being a ‘square’ wave.

I’m not sure if this applies to the wait state generator formed by TR1, as I’ve not needed to change any transistor in this position.

These days C5 does not have to be an electrolytic. It can be a multilayer ceramic.

If it makes the PCB layout easier, the order of the address lines to the SRAM does not have to match the labelling. The same applies to the data lines. So, for example, D0 from the Z80 can go to D5 on the SRAM.

Address line A14 is not very useful as far as the SRAM is concerned. The ULA uses address line A14 to determine if ROM or RAM should be selected. You may be better off routing the extra address input pin of the SRAM chip to a link/jumper shunt header, one pin of which should be connected to 0V or to +5V. The other pin can then be used for additional control circuitry.

See this topic for more on this.

IC301, IC303 - the 3.3V regulators. If they are indeed powered from the +9V (nominal) supply, have you checked if they are within their power rating? As the +9V (nominal) supply from a Sinclair UK700 or UK1200 PSU can be as high as 12V.

With the joystick port, you need to make it clear that it will only support ordinary switched joysticks. Joysticks that have an auto-fire feature or game pads (that contains active electronics) will not be compatible (these all expect pin 8 to be 0V/GND).

Mark
Thanks Mark.

The main 3.3V Regulator I would use is a switcher. You are correct that the linear one would overheat. I will change it to be supplied from the 5V.

The sound and the onboard ESP32 are both very experimental and will need way more work in future revisions.

There is also a 4 pin header for an off the shelf ESP32 board which should work as there is not a whole lot to go wrong with that!

Hopefully, the rest of it should be useful from issue A, fingerers crossed.
FordP (Simon Ellwood)
Time is an illusion. Lunchtime, doubly so!
User avatar
Paul
Posts: 1139
Joined: Thu May 27, 2010 8:15 am
Location: Germanys west end

Re: ZX21 Project ZX81 Replacement PCB

Post by Paul »

fordp2002 wrote: Wed Nov 25, 2020 9:56 pm Is there much software that needs more than 32K?
There is no commercial Software I know of that uses more than 32K of RAM
There is quite some commercial Software that formerly used an EPROM in the 8-16 K area that can be used in RAM at the same place. That's why ZXPand can select the 32K beeing from 8-40K or 16-48k
There is software that uses full 56K from the German ZX-TEAM, mostly Internet Software but also an Unicode text editor and some tools.
Anyway, 32K chips aren't cheaper and are deprecated, so there isn't really a point in having just 32K.
On the other hand there's absolutely no point in using only 16k in a zeddy if you use a larger RAM chip.
In theory, there is no difference between theory and practice. But, in practice, there is.
User avatar
fordp2002
Posts: 52
Joined: Tue Aug 15, 2017 2:49 pm
Location: Cambridgeshire, UK

Re: ZX21 Project ZX81 Replacement PCB

Post by fordp2002 »

Paul wrote: Thu Nov 26, 2020 5:36 am
fordp2002 wrote: Wed Nov 25, 2020 9:56 pm Is there much software that needs more than 32K?
There is no commercial Software I know of that uses more than 32K of RAM
There is quite some commercial Software that formerly used an EPROM in the 8-16 K area that can be used in RAM at the same place. That's why ZXPand can select the 32K beeing from 8-40K or 16-48k
There is software that uses full 56K from the German ZX-TEAM, mostly Internet Software but also an Unicode text editor and some tools.
Anyway, 32K chips aren't cheaper and are deprecated, so there isn't really a point in having just 32K.
On the other hand there's absolutely no point in using only 16k in a zeddy if you use a larger RAM chip.
I will add support for a larger 0.6" RAM chip and wire up A15. 48K would be easier to do in an alternate ULA as A13 is not wired to the ULA!
FordP (Simon Ellwood)
Time is an illusion. Lunchtime, doubly so!
Post Reply