We’re going to look at a Z80-based computer, kind of late-1970s, early-80s style. But it’s been mocked up on a breadboard for a bit of fun. This is probably halfway between the ZX81 and the Spectrum in terms of power and speed, etc. So in theory, you could actually wire this up to Spectrum peripherals, and run the ZX printer or or whatever from it.
– So can we see Manic Miner at some point in the future? – On a screen like this? Not for a little while. Main board is here. There’s the Z80 CPU, there’s an 8K EPROM running Microsoft BASIC, 32K of RAM, the clock clock in the centre there – the crystal for the clock, along with a few logic chips to select the appropriate memory stuff. Reset button on the end. Input/output serial chip that talks down to effectively an Arduino that runs the display and the keyboard, and then we got some input/output chips for the dip switches, little LED, some segment display, and a bar graph display. It’s always made from wires pushed into a breadboard, as you can see. I just wanted to play about with something old-school, All but – almost everything there has been donations to the Nottingham hack space So it’s being the case of vomiting around, see what you can find. It’s – “ooh! It’s a Z80 CPU, in that case, I’ll base this on the Z80.” so yeah donations and spare bits knocking about, that’s pretty much what it is You could run any program which you could write in BASIC. You could write on it as well as reading input switches Setting LED outputs, which in theory, you could then use that to run relays, bigger switches, control motors or whatever. Obviously you’ve got the keyboard-in port and the little display. It’d be nice to have something a bit larger, but that could be next stage. There’s a little programming editor already, Anyone which is familiar with BASIC will understand all of that? So… We run that… All it’s doing is counting up in binary on those two little displays there This one is a lot brighter than that one. I could make this one dimmer. I can’t make that one brighter. It’s a program which will count in binary on the bar graph display on the right, as well as increment numbers on the other one. Either by binary, base 2 – got the 1, 2, 4, 8, 16, 32, 64, and 128 lights. So each one that lights up represents that number. It is actually a 10 digit bar graph, and we’ve only got 8 digits of data, so so ignore the two that aren’t coming on, and they won’t ever come on.
– So once they’re all full the program will end, yeah?
– That’s it. There you go.
– All right, so let’s take a look – how did that look in terms of BASIC, shall we have a look at the code itself?
– There’s the first four lines. Last couple, just a couple of bits at the end. The program of the Arduino controlling the screen is very rough and ready, it could be a lot more efficient, but it’s not. It does the job. The biggest matter was trawling through the internet to try and find enough information to build this. There’s a great website by Grant Searles, which has got some schematics on it, which is a great help. It’s also got the EEPROM with Microsoft BASIC information as well, so the link will be down here somewhere. It was pretty much built up over the Christmas break, a few bits of tinkering, a few bits of adding or tweaking, So there’s a few weeks work, but I’ve learned so much doing it. That’s – that’s the key.
– That, to me, looks like a pretty complicated thing. It’s colour-coded to a reasonable extent. The red wires and the purple wires is basically, you know, positive and ground.
– So that’s power, yeah? Yeah. All of the green wires are the address bus, so the CPU’s address bus goes off to the RAM, off to the ROM. A bit of the address bus goes off to the communication chip. There’s 16 lines of the address bus, which means that the – the CPU could address up to 64 K of memory. So every – every byte of that memory has got a unique address within those 16 lines. You’ve also got the data bus, which is all the orange wires, so the orange wires again go from the CPU to the ROM to the RAM, communication chip, data bus also comes down to the I/O chips as well. So that’s carrying the data either from the CPU to memory, or from the CPU to the I/O chips, or back the other way, So it’s it’s an 8-bit controller, 8-bit micro, As opposed to your modern computers, which are your 32-bit, 64-bit ones. There’s no hard storage on this, so once the power goes your program’s gone. So you gotta – gotta type it all in again from scratch. Yeah, fairly quick to type in as long as it’s a short short program, But I’ve not attempted anything more than about 70, 80 lines yet. Yes, there’s limitations. Yeah, but basically the bits I was able to find, the bar graph display’s very, very dim. Conversely, the 7-segment LED is very, very bright.
– We’ve had to turn out the lights to, uh, to be able to see that. Do you know what all these different bits came from? So for instance the LCD screen at the bottom that you’re using. – The LCD screen is one of the few bits that I bought on eBay. The communications chip I bought as well. Which was the most expensive bit. That was about six pound for the first one, which I then blew up. So the only one which I had to buy, I then had to buy a second one of it. This is the schematic of the computer here. In the middle here, we’ve got the Z80 CPU. That’s connected via the address bus round to the RAM and to the ROM. This line goes round here, which is the green wires, got the Microsoft BASIC on the ROM there. Also connects around to the serial controller. You’ve got the data bus that goes round to the RAM, and the ROM. They’ve got the 8K ROM with Microsoft BASIC on it. I’m using a 32K ram chip, because that’s what I had handy. It goes around to the communication chip up there. The logic chips as well, which select the right addresses on the ROM and RAM, so it knows where it’s talking to and from, and a little tiny circuit over there which runs the clock for it. – What’s the next stage for this?
– The keyboard and display are quite quite modern, by comparison to everything else, so ought to go a bit more old-school, retro on those. I’ve got – I’ve got – I’ve got a bigger display, which I should be able to see it a little bit more on that when that’s hopefully working, and an old-school Sinclair Spectrum +2A keyboard. This is probably halfway between a ZX81 and the Spectrum in terms of power and and speed, etc. If I could get that talking directly to the memory they’ll cut out the Arduino side of things, which is a crutch. – And could anybody do this, do you think?
– If you could use Google, you can find the information and you can build it yourself. And you can – I know you’ve obviously had these, kind of, some of these been donated parts and so, are these things you can still get hold of?
– Oh yes, they aren’t expensive. Old computers are the best source for these bits and pieces. Any old electronics or eBay. Anywhere, yeah?