A few weeks ago, I connected a Raspberry Pi to the program flash memory of the computer. The Raspberry Pi runs the assembler-simulator in its webbrowser. The assembler-simulator has buttons for upload and download from/to the RPi. The RPi is connected with a 16-bit data connection to the Flash program memory, through a small pcb (containing resistors for level conversion). The PROG pcb, that contains the flash chips, also has two 74HC574 registers to store the address for writing the flash. The RPi has a small Phyton program that burns the generated binary in the two Flash memories of the relay CPU.
From that moment on, I could run real programs on the computer, although the cpu is only partially built: The data is only 8 bit wide (in stead of 16). Only 4 8-bit registers are present, and it does not run at full speed.
Then came several days of serious debugging. Several problems could be fixed by changing the instruction encoding or changing the simulator:
- In conditional branches, true and false were swapped
- After a branch or jump, the first instruction was skipped because the hardware first increments the PC and then fetches an instruction
- The 7-segment decoder had the two segment groups swapped. So the X register got the segment bits that were intended for the Y register and the other way around. So the single segment instruction was now split in two segment instructions, with the segment group specified in instruction bit 5 (this was an unused bit for zero page addressing). Small hardware change.
The architecture and instructions document was updated with the encoding changes.
Several instructions were working unreliable. All these problems were fixed by changing the hold resistor (2K on the schematics) to 1K5. One non-soldered diode was found.
Not all instructions are tested yet, but all tested instructions work now. I made a small demo program that calculates Fibonacci numbers.
This weekend, I gave the RISC Relay CPU its own website: RISC Relay CPU Website. Some things on the website might still be a bit quirky.
A video of the working computer is on the new website (including sound ;) !