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.
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.pyneeds the-oopcode comments fromdis34; they are what disambiguateMOVIshort/long, long relativeJRvs absoluteJA, and the B-fileSP.gsprom -iwrites 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, notrt.obj. dosemu'slredirkeeps lowercase names.