3 ms·
Great! I'm currently working on a homebrew Z80 computer on breadboards and wirewrapped boards, and building all the (simple) hardware and software from scratch
by bcaa7f3a8bbc 7y ago
Great!
I'm currently working on a homebrew Z80 computer on breadboards and wirewrapped boards, and building all the (simple) hardware and software from scratch, using vintage chips (strictly no post-1989 chips) and Steve Ciarcia's Build Your Own Z80 Computer as a reference, but with a much higher spec (32K or better).
My original plan is porting Li-Chen Wang's Tiny BASIC (https://en.wikipedia.org/wiki/Tiny_BASIC https://en.wikipedia.org/wiki/Tiny_BASIC) to my homebrew computer, and describing its operation at my local hackerspace. Basically, after Bill Gates' has written his letter, there was a revolt in the microcomputer scene and many hobbyists sought alternative implementations. Around the same time, Li-Chen Wang released his hobby project - Tiny BASIC, with full source in public domain. In retrospect, it can be seen as a free software project before the free software movement. Although its functionality was extremely limited Proof-of-Concept and never widely used, but I believe it's a piece of important legacy of the FLOSS community worth mentioning.
But now, since BBC Basic is now free, I'm looking forward to port BBC Basic to my system as well!
- Theodores 7y agoGood luck with your project. I am sure you will find it really rewarding when everything is wired up and it actually works. I like your detail of using strictly vintage chips, not heard of that before, you are taking the art to new levels with that. I built my own computer with breadboards and a very simple EEPROM. My goal was to have it just turn on a few LED lights and do so according to a few very simple switches. That was satisfying enough. The wow it works moment was worth the many hours with things like an oscilloscope. If you want to do more than what I did - just get the thing to turn on - then I highly recommend the BBC BASIC. It is just built better than other BASICs that were doing the rounds and definitely suits a hardware oriented project. If you wanted a breadboard built computer to do actual interfacing, maybe to a strain gauge or other hardware then you will do well to take the BBC BASIC route. You can talk to your IO controller with it and do so with the built in assembler. Your code for presenting results or storing data can be done in BASIC and you can drop down to assembler to do the nitty gritty stuff quite easily. On today's modern computer even if running Linux you are kind of stuck as to where to start, with BBC BASIC you can accomplish low level things from first principles. Whatever you end up doing with your project, I think that there is definite merit in doing it with BBC BASIC, I think you can beat a path that others (particularly in the UK) will see as a good one to follow. Good luck and have fun stripping those wires!
- billforsternz 7y agoSounds like a great project, good luck. I'll share my favourite tip from back in the day when I regularly brought up new bare metal Z80 systems. Just on the off chance it might be useful. Use a blank EPROM as your first program. It's all 0xff bytes which are RST 7 instructions, equivalent to a subroutine call to 0x0038. So you should observe an super tight loop of an 8 bit read of 0xff from 0x0038, then a 16 bit write of 0x0039 to an ever incrementing address. Suitable for scoping each bit of your address and data bus. The incrementing write address is the stack pointer, which just cycles through 64K. The most significant address bit toggles at the rate it takes to cycle through 64K. Although 0x0039 return address keeps getting pushed onto the stack, there's no corresponding pop, the stack is just perpetually overflowing. But it doesn't matter given this 1 byte "program" serves only to give you the simplest possible repeating pattern to look at with your oscilloscope.