Secondary storage is essential for most systems to hold programs for the long term. Attaching secondary storage to your system is a challenge, but a challenge worth investing time into. You can choose many different flavors of secondary storage to add to your system, and I have chosen to use a compact flash card that will provide almost limitless storage capability for the computer while maintaining a very simple 8-bit interface.
Our system is just a heap of silicon unless it has some code to run. I don’t think the hardware is quite at the point of running an operating system like CP/M yet, but that doesn’t mean we can’t do anything. We can hit the assembly and build up some code in our ROM chip. We can make a ROM monitor.
Now that our system has a stack it will be much easier to test code out. One such test is to get interrupts to work between the Z80 microprocessor and the UART. This will free up the system from polling so that it can dedicate processing time to other tasks.
The Z80 system we have built to date only has the ability to run code from read-only memory. Read-only memory, as the name implies, is only readable and not writable which creates a problem for us. For instance, to use a stack we need memory that is both readable and writable so that we can use the CALL instruction. We need RAM.
The plan is to implement the UART as it often is, interfaced to a serial port. Since my last post I have had to re-wire all of my work, and I have moved from EAGLE to KiCAD since it is open-source, and I find it a bit more user-friendly. I also have new USB->Serial cable thanks to Rat Shack going out-of-business! This time we will try out an echo program. Type characters into a terminal emulator on a PC, and they will go through the USB->Serial port to the Z80 circuit. The character will then be read into a register, and echoed back to the PC to finally show up in the terminal emulator program. Sounds easy right?
After sufficiently testing our EEPROM chips and with the knowledge that we are communicating with them properly we can start to build programs to test other devices added to our system. One of the more useful devices to add is a UART, and that is just what we will do.
It has been a long time since my last post. I hope to get back into regularly posting once or twice a week. This project has been on hold since starting another project that dominated my life. I recently built a MAME Arcade Cabinet from scratch. (Pictures can be seen below)
Let’s jump right back in. We need a way to see instructions executing from memory. We need an I/O device.