The TMS7000 is is a lesser known microcontroller family from Texas Instruments. The EVM700 is a development environment build in hardware with native processor, monitor, assembler, debugging facility, EPROM programming and In-Circuit-Emulation. There is now a replica of the board*. This board is created by Ruud Baltissen (http://www.baltissen.org/newhtm/EVM7000.htm).
The TMS7000 instruction set is not derived from a generic microprocessor, but designed for microcontroller-usage from the start.
At the moment of starting this project at Hackaday, the basic functionality of the board; monitor, text editor and assembler are working. The EPROM programming and In-Circuit-Emulation hardware has to be added and tested.
A side project is attempting to document the firmware and modify it functionality.
*) Not for sale but all data is/will be freely available
There is now also a script to convert Hex-intel to TMS7000 Dump format, for uploading to the EVM7000-3. It was also useful testing the TMS7000 Dump Format to Hex-intel format.
Some recent developments are the file upload script and the memory dump converter.
File upload script
The file upload script allows for uploading assembly source files without drop-outs. The monitor uses a software UART, and this is essentially half-duplex. Every now and then the editor needs some time to organize the incoming data and if the host doesn't wait, characters get lost. The monitor uses the DTR pin to signal this. The host in my case is a Linux machine and this supports only hardware handshake on the CTS/RTS lines. With the EVM-DTR connected to the host-CTS, the data-upstream stream is properly controlled. No hardware handshake is needed for the EVM to host direction. The Sparkfun FT232RL breakout board and clones supports hardware handshake on the CTS/RTS and DSR/DTR pin pairs.
The EVM7000 supports two memory dump formats, a Texas Instruments format and the Tektronix format. The T.I. format was developed for the TMS9900 16-bits architecture and adapted for the 8-bits TMS7000. The Tektronix format is less popular than Intel-Hex or Motorola-S19, but converters do exist. I couldn't find a converter for the T.I. format, so made one myself. Currently it only converts from T.I-format to Intel-Hex and ignores the original checksums. Have to fix that as it is a precondition for the reverse converter. The format uses prefix letters for a fixed number of data characters. 'B' is for instance always followed by two data bytes, hex encoded. '9' is always followed by two address bytes. Using the same characters for prefix and data is confusing, but parseable.
Addendum: Fixed an issue with the Intel-Hex checksum and figured out the problem with the TMS7000 format checksum. The checksum is calculated over all chars excluding actual checksum and 'F' postfix, not all characters between <CR>s.