Vintage collectors and enthousiasts will know the TMS 7000 processor from the CC-40 home computer and the TI-74 calculator. Currently the TMS70C02 chip, the latest generation of this line, is cheap and available on-line. Reason enough to create a new board to play with the processor and write some assembly code.
The first phase will be a single processor board with ROM and RAM, which uses the internal serial port and the internal serial port with a monitor as interface.
The second phase will add a 6-hex-digit LED display and hex keyboard, similar to the Kim-1 and Microprofessor MPF-1.
An other goal is to use and evaluate the ROM-Emulator as a fast development tool for the firmware, being the serial monitor and later the hex display & keyboard.
Schematic of the prototype board with most of the problems of the prototype solved. The NSC810A is still there, but it might be replaced bu a cheaper and more common I/O-chip, an MC6821, or 8255.
Adobe Portable Document Format -
230.27 kB -
07/27/2024 at 08:35
The key scan is now working as it should, the key value to display pattern routine too. This startup pattern should scroll to show the remaining 'C02' characters of the message, but that is a ToDo item. Now functions should be assigned to the keys, at least for the values 0-F, memory, up, down, ... Most inspiration will probably come from the MikroKit09 and MPF-I.
After quite some time reading and coding and fixing I managed to get some text on the display. The display (and later keyboard) routine is triggered by interrupt and runs along side of the serial monitor, which is completely based on polling the serial port. The displayed patterns were actually poked in the display buffer using the the serial monitor.
The code is now more or less complete for now at version 0.3.2. The command naming might change and the Intel-Hex download isn't implemented yet. Here is the current help text, which summarized the command list:
** TMS70C02 Monitor Help Menu V0.3.2 **
Caaaa - Call subroutine at aaaa
D[||+|-|aaaa[-bbbb]] - Dump memory from aaaa to bbbb
E[e] - View/set echo
Faaaa eeee dd - Fill memory from aaaa to eeee-1 with dd
Gaaaa - jump to address aaaa
Maaaa bb - Modify memory location
H - Help menu
Raaaa eeee - RAM test from aaaa to eeee
Vssss eeee nnnn - Copy memory range ssss to eeee to nnnn
*:ssaaaattdddddd....ddcc - receive Intel-hex record
* = not yet implemented
With support to both the Arduino firmware and the RomEmulatorTerminal script of a 'download-relay' it is possible to have a 'hands-off download' operation, where the target processor is held in RESET during download. For ROMs intended during startup, this makes firmware development almost as simple as the Arduino environment.
On the image are all relevant components strapped to a carton board and connected to a USB hub. The ROM-EMulator is conencted to the boot-ROM and the target board output is currently the serial port. Even the board is powered via USB. By bridging the RESET switch of the target board with the relay, the processor is halted until the ROM download is completed.