Files
vt1200/harness/sdk-scratch/README.md
T
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

48 lines
1.6 KiB
Markdown

# 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
```sh
./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
```sh
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.