Files
SDD 7d299451da reference: TMS34010 SDK investigation; prove GSPA round trip
The 1987 DOS toolchain (GSPA/GSPLNK/GSPROM) runs under DOSBox and
reassembles 32 KB of the v2.2 ROM byte-for-byte after five documented
fixups to smart34010 output.  The 1990 r5.01 tools are OS/2 NE and do
not run in DOS.  Adds the converter, round-trip script, and the
DOSBox/dosemu benchmark.
2026-10-18 00:39:32 +03:00

1.6 KiB

SDK scratch: the 1987 TMS34010 DOS toolchain

This directory is a scratch area for the investigation in reference/tms34010-sdk.md. The SDK under tools/tms34010-sdk/ is only read; everything here is extracted work product.

Round trip

./roundtrip.sh 0x1000 32768 3F208000

OFFSET SIZE BASE_BIT: disassemble that ROM region with tools/smart34010/dis34 -o, convert it to GSPA syntax with dis2as34.py, assemble/link/convert with the 1987 DOS tools under DOSBox, interleave the high/low Intel-hex files, and diff against the ROM. It prints BYTE-EXACT and the md5 of the reassembled region on success.

The tools are extracted on first use from:

tools/tms34010-sdk/1987-05 TMS34010 SDK/
  1987-11-06 TMS34010 Simulator-C Tools-ASM Tools.img

into work/ (A2 = assembler/linker, C2 = C compiler/runtime). The ROM is never written.

Benchmark

python3 -u bench2.py    # DOSBox vs dosemu, 3 runs, two workloads

bench2.py uses dosbox-bench.conf (dynamic core, cycles=max) and a private dosemu HOME in dosemu-home/. The dosemu batch must end in exitemu; -E alone leaves DOS running. Results are in the report.

Notes

  • dis2as34.py needs the -o opcode comments from dis34; they are what disambiguate MOVI short/long, long relative JR vs absolute JA, and the B-file SP.
  • gsprom -i writes two files (high and low byte); interleave low then high. Its record addresses are 16-bit word indices, not bit addresses.
  • DOSBox 8.3 names are uppercased; check for RT.OBJ, not rt.obj. dosemu's lredir keeps lowercase names.