The TMS7000 - Texas Instruments 8-bits Microprocessor/Microcontroller line

A single board computer board based on the TMS70C02 with extension 
 for the forgotten parts and a ROM-emulator attached.
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

Assembly programming

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:

Development systems

There are two development environments for the TMS7000 family:

EVM Texas Instruments evaluation board drawing TMS7000 Family Low Cost Development System
  • Single-Chip Mode Emulation Only
  • On-Board Assembler/Line Text Editor
  • On-Board Hardware/Software Debugger
  • Multiple Breakpoints
XDS Texas Instruments evaluation board drawing XDS — extended development system
  • Full TMS7000 Family Development System
  • Host Independent/RS-232-C Interface
  • Full Speed 8 MHz In-Circuit Emulation
  • Extensive Breakpoint and Trace Functions
    • Detailed Timing Analysis
    • 2K-Byte Trace Samples
    • Breakpoint Sequencing Ability
  • Command/Default Storage
  • Removable Target Connector
  • External Probe for Breakpoint/Trace Qualifiers
  • On-Board Assembler and Reverse Assembler
  • Multiprocessing Capabilities

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 Evaluation Module

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 Texas Instruments evaluation board for the TMS70Cx2 processors 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 Serial port 1 of the RTC-EMV7000C

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:

Peripherial mode
Port 1 is used for a Terminal, Port 2 for a Host
Standalone mode
Port 1 is used for a Terminal, Port 2 for a Printer, Port 3 for Cassette mass storage
Combined mode is also possible
Port 1 is used for a smart Terminal/Host for editing assembly text

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:

  • Debug Monitor and EPROM Programmer
  • Text Editor
  • Assembler

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>
|            |    |    |    |    |    |    |    |    |    |      |    |    |    |
K
4-digit count of relocatable bytes followed by 8-character program identifier (this is a “O” for 9900 format).

Load address:

9
4-digit origin address follows the “9”.

Object code data:

B
4-digit word follows a ”B”.
*
2-digit byte follows an asterisk (*) (7000 format only).

End of line:

7
4-digit checksum follows - compare the checksums.
8
4-digit checksum follows - ignore the checksum.
F
ignore all characters until <CR>.

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>.

Local links

Generic links


Last update: 2024-06-12

fjkraan@electrickery.nl