Here we upgrade the machine to run the ZX81 ROM and implement slow mode. Grant Searle's webpage is a great resource for ZX81 slow mode searle.x10host.com/zx80/zx80nm...
Great series. My first computer was a ZX81 and I learnt enough on it to know what I wanted to do the rest of my life. Sinclair was a legend. A grumpy maniacal legend but a legend, and was singularly responsible for getting home computers into the hands of many many people who would never have stood a chance otherwise. My parents would never had shelled out for anything more expensive, but I work in IT and put this down to that one christmas morning in 1981
Right on! I had a similar path. My parents though it was a fad and that I'd use it for 10 minutes and be done with it. But once they saw how much i actually used it, i think they were happier for me to move up the cost chain.
Thank you, I've really enjoyed seeing just how Sinclair managed to wrestle a computer from silicon so hackily/efficiently. Dad borrowed a ZX80 from work and I was hooked, bought my ZX81 saving up all Christmas and birthday money and savings and learnt BASIC from magazine programmes. I would have loved a Spectrum but it was quite a lot more when it came out, and we only had a monochrome TV...
Excellent. I think a lot of these machines were bought with pocket money. Ironically, i think these "simple" machines have some of the most clever design work. They got every little bit out of the Z80.
Thanks for an excellent series of videos. The comparison chat at the end was the reality for me as well. A computer I could afford was far better than one which I could not afford. Due to the family emigrating from NZ to the UK in late 1981 I actually ended up with a spectrum as my first computer instead of a zx81, but that still applies.
Thanks for an amazing video series. I liked the discussion around everything and that it wasn't only about making the circuit, but to place it in a historical context.
Thank you for an illuminating history and understanding in the drive to the zx80 and zx81 pricing. I like you, and many others, were only given access to computing in 1981 by Sir Clive’s drive to make something affordable. When I talk to people about this period in the Uk they simply don’t understand there was no money around and this really was the right product at a price that most could afford with saving. Thank you again and merry Christmas.
Interesting series to see how Sinclair managed to cost cut the ZX80/81. I had a MK14 (the machine he came out with BEFORE the ZX80), but not any of the ZX series. I had an Acorn Atom at the time of those two (a more expensive machine with dedicated video memory/hardware). This was pretty much the story of Acorn vs Sinclair, Acorn wanted to make a fully featured machine, and Sinclair was more interested in making it cheap.
@@DrMattRegan Acorn hardware was comparatively conventional (a 6845 video controller in the BBC B and a 6847 in the Atom for example), but clean and better thought out on the software side (the BBCs extensible ROM system that allowed software paging between ROMs for example). There were parts that were extremely clever though, for example the Tube interface that allowed connection to modules containing other CPUs (anything between a faster 6502 through a Z80, 32016 and even the early ARM CPUs). They weren’t however targeted at making the Acorn machines cheaper, and when they did try that they had some bl**dy silly ideas, like using a 4 bit memory bus and multiplexing it to 8 for the CPU and Video.
This was my first own computer (i used some other before in scholl and friends), i have it with 16Kb and added keyboard. I manually assembled (to hex or rather "chars" with heavy aboused ZX-81 manual table) some programs, later by example in book abaout Z-80 i made dissasembler ("Complete Z81 rom dissaembly" or schematic) wasn't aviable in my country , and "dissasembled" most of ROM by dissambler and pen to notebook. I expertimented with kinds of "tape turbo" and 1-bit digitalization of sound. One of my programs needed at least 4K, it was kind of spread sheet (like Excel or QuattroPro), wich allowed to use formulas in cells writen as BASIC expression (i found "eval" routine in ROM) and also could draw some "charts".
Yeah, i started with the ZX81 were i learned BASIC, but spectrums were pretty rare in Australia. Everyone else had a VIC-20 so i went down that pathway then the C64, so my first exposure to assembly language was the 6502.
I was try to analyze interrupt procedure but with out schematic i was almost sure that was something wrong with my dissasembler at first. Also looking at printed circuit (with wavy tracks;)) i saw that INT is connected to A6 with baffled me even more... but now i can understand this thanks to you. Later i even managed to "transfer" whole ZX81 (power supply, ram extenssion) to my country colone of ZX-Specturm (Junior-3) with almost PC-like keyboard and place for 3"1/4 drive. I even constructed "Kempston like joystick" from parts that i'm ashamed to list, but only proper were miniswitches;)
@@DrMattRegan Yes it is crazy and genius the same time. What mostly impresses me that slow mode was only 4 times slower (in BASIC at least )which seems impossible knowing where CPU has free time.
Thank you Dr Matt. This was a fantastic series. I can add very little, and you have added considerably to my already quite detailed knowledge of the ZX80 video system with these ZX81 additions. One observation... the 47pF capacitor across the 10k resistor on the base of transistor TR1 is not really for signal shaping as such. It serves to speed up the on-off switching of the transistor by effectively countering the effect of the base-collector capacitance in the transistor (the Miller capacitance). If no capacitor was added, the transistor would be driven via the RC network of the resistor and Miller capacitance. The 47pF acts as a high-frequency bypass for the resistor, ensuring faster and more consistent switching of the transistor. (I hope that makes sense). Also, fun fact... in the Micro Men film, Sir Clive is shown holding the first ever edition of Personal Computer World magazine. It was also the first home computer magazine that I ever bought back in February 1978. Thanks again!
Ah thanks for that. I did try using the circuit (with a different transistor type) and the logical equivalent (using gates), and they both resulted in a 1 pixel shift to the left in the top scanline, so the code was expecting one more wait state. I though it not working may have to do with using a CMOS CPU (different levels) etc or using a different transistor type. When i delayed the logical wait signal by 1 clock with the flip flop, it worked properly. This is why i thought the capacitor was delaying the signal. I do see what you are saying, when HALTBar goes high, the capacitor will try to resist the change and try to raise the base voltage quickly. Maximum base voltage is fixed, so it will rapidly increase current and switch the transistor faster. Do you know what the Miller capacitance of that transistor type is? Is it possible that the RC delay of this type of transistor without the 47pF cap is 2 clocks and the 47pF cap brings it down to 1 clock? Interesting though, i might play around with it more. It's amazing that so much thought went into every part of the circuit.
@@DrMattRegan I looked too. ;) Capacitance is small at around 5pF - but increasing the edge speed into the base of the transistor would be the only effect of adding the 47pF. Leaving it out would marginally slow the switching speed. Maybe they found it was marginal when they built the prototypes? Just a hunch.
Could it be the interaction with the capacitor and the depletion load NMOS pull-up transistor on the HALT signal itself? I haven't studied this for a while i may have to find (and dust of ) my Mead and Conway.
@@DrMattRegan I think it's more a case of getting a fast rise time on the WAIT\ into the CPU, since if that is slow, it results in an extra cycle being inserted which delays the timing of the sync generation. That would push the displayed pixels to the left (I think).
All those wasted clockcycles! 😢 still nice hack though I wonder if it couldn't be done in very simple hardware. Might need a bigger ram and could be too expensive back then. Even if only the hsync could be done by hardware
What really annoying is that NMI halts every scan line in the blanking period. There is a hack that restricts it to the resynchronization scan line and speeds up the CPU by 10%
great great series, probably I've already commented when I saw first time O:-) ... But a question: will the proposed circuit handle true hi-res? maybe there is the need for an additional episode to finish or to explain it?
I have thought of doing an episode on pseudo hi-res graphics. The problem with the ZX81, is that bit-6 of a byte in the display file will blank the display and execute the byte as an instruction. What this means that we really only have 7-bits of data per 8 pixels. Or really 6-bits plus inverse. This trick is to use some other (more random appearing) part of the ROM as the character data. Then in the 64 characters available for 8 pixels, find the closest match. This is why (some) high res images appear to have noise.
Thanks for a great series of zx80/81 video generation! Do you think that today's ez80F92 could handle 8 bit color VGA, with its pipelined cpu, 6 timers, 24 bit address, and GPIO, all on one chip?
Yeah, if you use a NOP generator, you should be able to execute NOPs at 1 per clock with the pipelined decode and execute. Send the 8 bits directly to the DAC. It will be a bit below standard VGA which requires 25 MHz.
@@DrMattRegan Apologies. I've just dragged my ZX80 out of the loft and had a look. I was sure IC2 was mentioned as a ULA in the original assembly instructions (which I can't find although I still have the original BASIC manual). I remembered it mentioned that the "ULA" had the notch at the wrong end and you had to plug in IC2 upside down. Turns out it's the ROM and I was incorrect.
The current design is a work in progress. It doesn't have interrupt or in/out instructions. It's basically the same design as the Turing6502 which has schematics available on github. I'll be incorporating the turingZ80 into the Spectrum series though.
I had a ZX80 as my first personal computer. It was fun, but ultimately worthless. All those shenanigans with the video were clever but were its Achilles heal. Too slow and couldn’t do much. The Commodore VIC20 and C64 destroyed it, and didn’t cost that much more.
Great series. My first computer was a ZX81 and I learnt enough on it to know what I wanted to do the rest of my life. Sinclair was a legend. A grumpy maniacal legend but a legend, and was singularly responsible for getting home computers into the hands of many many people who would never have stood a chance otherwise. My parents would never had shelled out for anything more expensive, but I work in IT and put this down to that one christmas morning in 1981
Right on! I had a similar path. My parents though it was a fad and that I'd use it for 10 minutes and be done with it. But once they saw how much i actually used it, i think they were happier for me to move up the cost chain.
Yes Sir Clive Sinclair gave young people the chance to own a computer and open the door to them getting into future technology.
Thank you, I've really enjoyed seeing just how Sinclair managed to wrestle a computer from silicon so hackily/efficiently. Dad borrowed a ZX80 from work and I was hooked, bought my ZX81 saving up all Christmas and birthday money and savings and learnt BASIC from magazine programmes. I would have loved a Spectrum but it was quite a lot more when it came out, and we only had a monochrome TV...
Excellent. I think a lot of these machines were bought with pocket money. Ironically, i think these "simple" machines have some of the most clever design work. They got every little bit out of the Z80.
Thanks for an excellent series of videos. The comparison chat at the end was the reality for me as well. A computer I could afford was far better than one which I could not afford. Due to the family emigrating from NZ to the UK in late 1981 I actually ended up with a spectrum as my first computer instead of a zx81, but that still applies.
I think it's hard to appreciate now just how hard it was back then to get access to a computer. Sinclair changed that.
Thanks for an amazing video series. I liked the discussion around everything and that it wasn't only about making the circuit, but to place it in a historical context.
Glad it was helpful!
Thank you for an illuminating history and understanding in the drive to the zx80 and zx81 pricing. I like you, and many others, were only given access to computing in 1981 by Sir Clive’s drive to make something affordable. When I talk to people about this period in the Uk they simply don’t understand there was no money around and this really was the right product at a price that most could afford with saving. Thank you again and merry Christmas.
Thanks for that. Yep it was a similar story in Australia. The "wealthier" people could get a TRS-80, but that was about it.
Interesting series to see how Sinclair managed to cost cut the ZX80/81. I had a MK14 (the machine he came out with BEFORE the ZX80), but not any of the ZX series. I had an Acorn Atom at the time of those two (a more expensive machine with dedicated video memory/hardware). This was pretty much the story of Acorn vs Sinclair, Acorn wanted to make a fully featured machine, and Sinclair was more interested in making it cheap.
Great point! The Acron designs are far more vanilla. Good machines, but i personally like all the tricks the Sinclair people are able to get working.
@@DrMattRegan Acorn hardware was comparatively conventional (a 6845 video controller in the BBC B and a 6847 in the Atom for example), but clean and better thought out on the software side (the BBCs extensible ROM system that allowed software paging between ROMs for example).
There were parts that were extremely clever though, for example the Tube interface that allowed connection to modules containing other CPUs (anything between a faster 6502 through a Z80, 32016 and even the early ARM CPUs). They weren’t however targeted at making the Acorn machines cheaper, and when they did try that they had some bl**dy silly ideas, like using a 4 bit memory bus and multiplexing it to 8 for the CPU and Video.
Congrats on finishing the series! Loved every minute of it!
Cheers. Thanks for the feedback!
This was my first own computer (i used some other before in scholl and friends), i have it with 16Kb and added keyboard.
I manually assembled (to hex or rather "chars" with heavy aboused ZX-81 manual table) some programs, later by example in book abaout Z-80 i made dissasembler ("Complete Z81 rom dissaembly" or schematic) wasn't aviable in my country , and "dissasembled" most of ROM by dissambler and pen to notebook.
I expertimented with kinds of "tape turbo" and 1-bit digitalization of sound.
One of my programs needed at least 4K, it was kind of spread sheet (like Excel or QuattroPro), wich allowed to use formulas in cells writen as BASIC expression (i found "eval" routine in ROM) and also could draw some "charts".
Yeah, i started with the ZX81 were i learned BASIC, but spectrums were pretty rare in Australia.
Everyone else had a VIC-20 so i went down that pathway then the C64, so my first exposure to assembly language was the 6502.
Thanks for an interesting series!
Glad you liked it!
Good research, very well explained.
Glad you liked it!
That was a wonderful series. Thank you.
Glad you enjoyed it! Was fun to make.
I was try to analyze interrupt procedure but with out schematic i was almost sure that was something wrong with my dissasembler at first.
Also looking at printed circuit (with wavy tracks;)) i saw that INT is connected to A6 with baffled me even more... but now i can understand this thanks to you.
Later i even managed to "transfer" whole ZX81 (power supply, ram extenssion) to my country colone of ZX-Specturm (Junior-3) with almost PC-like keyboard and place for 3"1/4 drive.
I even constructed "Kempston like joystick" from parts that i'm ashamed to list, but only proper were miniswitches;)
Excellent. The design seems crazy until you known what they were up to, then it seems very clever. Glad you liked it.
@@DrMattRegan Yes it is crazy and genius the same time. What mostly impresses me that slow mode was only 4 times slower (in BASIC at least )which seems impossible knowing where CPU has free time.
Thank you Dr Matt. This was a fantastic series. I can add very little, and you have added considerably to my already quite detailed knowledge of the ZX80 video system with these ZX81 additions. One observation... the 47pF capacitor across the 10k resistor on the base of transistor TR1 is not really for signal shaping as such. It serves to speed up the on-off switching of the transistor by effectively countering the effect of the base-collector capacitance in the transistor (the Miller capacitance). If no capacitor was added, the transistor would be driven via the RC network of the resistor and Miller capacitance. The 47pF acts as a high-frequency bypass for the resistor, ensuring faster and more consistent switching of the transistor. (I hope that makes sense).
Also, fun fact... in the Micro Men film, Sir Clive is shown holding the first ever edition of Personal Computer World magazine. It was also the first home computer magazine that I ever bought back in February 1978.
Thanks again!
Ah thanks for that. I did try using the circuit (with a different transistor type) and the logical equivalent (using gates), and they both resulted in a 1 pixel shift to the left in the top scanline, so the code was expecting one more wait state. I though it not working may have to do with using a CMOS CPU (different levels) etc or using a different transistor type.
When i delayed the logical wait signal by 1 clock with the flip flop, it worked properly. This is why i thought the capacitor was delaying the signal. I do see what you are saying, when HALTBar goes high, the capacitor will try to resist the change and try to raise the base voltage quickly. Maximum base voltage is fixed, so it will rapidly increase current and switch the transistor faster.
Do you know what the Miller capacitance of that transistor type is? Is it possible that the RC delay of this type of transistor without the 47pF cap is 2 clocks and the 47pF cap brings it down to 1 clock?
Interesting though, i might play around with it more. It's amazing that so much thought went into every part of the circuit.
I just had a look at the specs for the ZTX313 and it looks like a fast transistor.
@@DrMattRegan I looked too. ;) Capacitance is small at around 5pF - but increasing the edge speed into the base of the transistor would be the only effect of adding the 47pF. Leaving it out would marginally slow the switching speed. Maybe they found it was marginal when they built the prototypes? Just a hunch.
Could it be the interaction with the capacitor and the depletion load NMOS pull-up transistor on the HALT signal itself? I haven't studied this for a while i may have to find (and dust of ) my Mead and Conway.
@@DrMattRegan I think it's more a case of getting a fast rise time on the WAIT\ into the CPU, since if that is slow, it results in an extra cycle being inserted which delays the timing of the sync generation. That would push the displayed pixels to the left (I think).
All those wasted clockcycles! 😢 still nice hack though I wonder if it couldn't be done in very simple hardware. Might need a bigger ram and could be too expensive back then. Even if only the hsync could be done by hardware
What really annoying is that NMI halts every scan line in the blanking period. There is a hack that restricts it to the resynchronization scan line and speeds up the CPU by 10%
great great series, probably I've already commented when I saw first time O:-) ... But a question: will the proposed circuit handle true hi-res? maybe there is the need for an additional episode to finish or to explain it?
I have thought of doing an episode on pseudo hi-res graphics. The problem with the ZX81, is that bit-6 of a byte in the display file will blank the display and execute the byte as an instruction.
What this means that we really only have 7-bits of data per 8 pixels. Or really 6-bits plus inverse.
This trick is to use some other (more random appearing) part of the ROM as the character data. Then in the 64 characters available for 8 pixels, find the closest match. This is why (some) high res images appear to have noise.
Good stuff! You know your video circuitry. How hard would it be to get color?
Well, that’s what the Spectrum is. It was going to to be called the ZX82. I’ll have a rest, but start a new series on the spectrum soon. Enjoy!
@@DrMattRegan I'll look forward to that! I have a barely-post-Soviet Ukrainian Spectrum clone in my stash of odd-ball gear.
Thanks for a great series of zx80/81 video generation! Do you think that today's ez80F92 could handle 8 bit color VGA, with its pipelined cpu, 6 timers, 24 bit address, and GPIO, all on one chip?
Yeah, if you use a NOP generator, you should be able to execute NOPs at 1 per clock with the pipelined decode and execute. Send the 8 bits directly to the DAC. It will be a bit below standard VGA which requires 25 MHz.
Awesome series!! Any chance you can do the video circuit of the TRS-80 Model III? Thank you!
I'm more familiar with the TRS-80 model II, is that close enough?
@@DrMattRegan Yes! Perfect, thanks for your content!
Hi, can I ask you some questions as an expert? I want to build my own computer for my thesis)
Yep, go ahead.
blurring = nostalgic mode
True, enjoy.
The ZX80 also had a ULA.
Really? It’s not on any zx80 schematic I’ve seen. Would be keen to see a reference to it.
@@DrMattRegan Apologies. I've just dragged my ZX80 out of the loft and had a look. I was sure IC2 was mentioned as a ULA in the original assembly instructions (which I can't find although I still have the original BASIC manual). I remembered it mentioned that the "ULA" had the notch at the wrong end and you had to plug in IC2 upside down. Turns out it's the ROM and I was incorrect.
@@fredderf6491 no problems. What did you think of the series!
and still no turingz80 schematic you promised over a year ago...
The current design is a work in progress. It doesn't have interrupt or in/out instructions.
It's basically the same design as the Turing6502 which has schematics available on github.
I'll be incorporating the turingZ80 into the Spectrum series though.
I had a ZX80 as my first personal computer. It was fun, but ultimately worthless. All those shenanigans with the video were clever but were its Achilles heal. Too slow and couldn’t do much. The Commodore VIC20 and C64 destroyed it, and didn’t cost that much more.
My personal progression was ZX81 -> VIC20 -> Commodore64. I still think i learned basic on the ZX81.
Learned assembler on the other two.
@@DrMattRegan Similar for me. Loved the Commodores. Color, sound, and a real keyboard!