The current board attached to the ROM-emulator, but awaiting a proper monitor.
A new version is planned, but more testing is needed.
Texas instruments produced an interesting 8-bit processor line, deployable both as microprocessor and microcontroller, much like the Motorola MC6801. It has a very flexible architecture, allowing the customer to specify custom instructions. The microcode for these instructions were added (by TI) as a slice in a custom silicon die.
Arriving a bit too late to be part of the 8-bit (home-)computer bubble in the '80s, it was used in one TI computer (the CC-40) and one calculator (the TI-74). Its main platform was embedded in modems and similar DSP devices.
The TMS7000 line use relatively complex instructions, making it a typically CISC-like processor. This was easy to implement due to the microcoded nature of the architecture.
The TMS7xxx line came in various brances and versions. What we can learn from the overview below:
NMOS (+5V) 128 bytes internal RAM TMS7000 no on-chip ROM TMS7001 no on-chip ROM, hardware serial port TMS7020 2k byte on-chip ROM TMS7040 4k byte on-chip ROM TMS7041 4k byte on-chip ROM, hardware serial port TMS70120 12k byte on-chip ROM TMS70P161 16k byte external EPROM 256 bytes internal RAM TMS7002 no on-chip ROM TMC7042 4k byte on-chip ROM, hardware serial port TMS7742 4k byte on-chip EPROM, hardware serial port CMOS (+2.5 - +6V) 128 bytes internal RAM TMS70C00A no on-chip ROM TMS70C20A 2k byte on-chip ROM TMS70C40A 4k byte on-chip ROM 256 bytes internal RAM TMS70C02 no on-chip ROM, improved hardware serial port TMS70C42 4k byte on-chip ROM, improved hardware serial port TMS77C82 8k byte on-chip ROM, improved hardware serial port CMOS (+5V) 128 bytes internal RAM TMS70CT20 2k byte on-chip ROM TMS70CT40 4k byte on-chip ROM
There are several open-source cross assemblers for the TMS7000 processor range, but neither supports the Texias Instruments specific syntax:
The main problem with the Peripherial Registers is that they vary among the different generations. Any assembly file intended for portability should use functional register names, not the P-numbers. Here an example mapping file for the TMS70C02.
Note there are more subtle differences between the implementations:
There are two development environments for the TMS7000 family:
EVM | ![]() |
TMS7000 Family Low Cost Development System
|
XDS | ![]() |
XDS — extended development system
|
The EVM has an assembler in firmware, but the (software) serial port is slow and there is no easy way worked out to transfer to and from the EVM memory.
The TMS7000 Evaluation Module exists in several versions; the NMOS TMS7000 and the CMOS TMS7000C.
On the Evaluation Module, the TMS70C02 I.C. is operated in microprocessor mode, using an NSC810A as port extender for the ICE function. Three 8-kByte EPROMs contain the DEBUG MONITOR and five 8-kByte memory sockets could contain EPROM or RAM. The board also has a program facility for PROM-based processors and EPROMs.
Overview | ![]() |
An overview of the Evaluation Module. It contains a 40-pin pod cable (far left) to the processor socket on the
target board, the TMS70C02 processor next to it and the NS810A port extender below it. At the bottom of the picture
are five RAMs, 8 kByte each and three EPROMs containing the DEBUG MONITOR. On the top half are two ZIF-sockets for
EPROM and programmable processors. A programming voltage can be supplied from the two power connectors
at the top. Normal operating voltages are +5V/1A for most components and +/-12V/0.1A for the RS-232c ports. Both
ports share the single serial port of the processor. Port one is intended for the terminal, port two for the 'host'.
Three mini-jacks allow connection of a cassette recorder. Just below that is the cassette motor relay. The actual size of the board is 305x205mm. The processor on the board can operate in microprocessor or peripherial extended mode, but it emulates standalone mode. |
Connection | ![]() |
The module port 1 is a proper DCE device, so works with a direct connection to a DTE (2-Rx, 3-Tx, 7-GND on port J1). Press the Enter key on the terminal to have the BAUD rate determined (9600 BAUD, 8 bits, no parity, one stop bit works ok). If the EVM is connected to a PC with terminal emulation, Port 1 can be used for both control and upload/download and the Port 2 connection is not required. The EVM has several operation modes: The Ports are implemented as a software UART, keeping the hardware UART available. Uploading object code is possible in Tektronix and TMS7000 format, but it needs to be managed because of the slow software UART. Both hardware and software handshake methods are implemented, but the example upload program is in FORTRAN! |
EVM firmware | This is the Debug Monitor startup message: TMS7000 DEBUG MONITOR REV 1.4 HELP:HE /H $HE MOD:MM MR MP A/MA B/MB MS-P/PC,SR,SP DISP:DM/DH DS IO STATE:C/CP D/DP EI DI DV SAVE:SM ST DS LOAD:LM LT LS MOVE:MV FIND:FB FILL:FM NP FR RESET:RT T0 BRKPT:B1 B2 C1 C2 CB DB BT CT DT TRACE:TO TF IT PT IS TC TR DEBUG:SS TS FS CS CY GO EX ET EF RU TED:XE L1 L2 LL LA LN ASSM:XA XL XP AT XR EPROM:PE VE CE RE BC 12 21 25 MATH:HC DC AR PORTS:BR DR MO |
The 'Operating System' of the is stored in 24 kByte of EPROMs and consists of three parts:
|
The 7000 Dump Format is not very well documented in the TMS7000 Evaluation Module Guide but there are two samples:
KOOOOPROGRAM 9FF34BDEADBDEADBDEADBDEADBDEADBDEADBDEADBDEAD7FOBFF BDEAD*DE7FDC6F :<CR> KOOOOPROGRAM 9FF34BDEADBDEADBDEADBDEADBDEADBDEADBDEADBDEAD7FOBFF BDEADBDEAD7FD29F :<CR> | | | | | | | | | | | | | | |
Load address:
Object code data:
End of line:
The 7000 checksum is the 2’s complement of the 16-bit sum of the ASCII values of all characters on the line between carriage returns, excluding all control characters such as <CR>, <LF>, and <FF>.
Last update: 2024-06-12