Hello all,
I've been digging into the DEC VT240 firmware in the MAME set, and it
appears to be a MicroPower/Pascal system:
- The kernel is called with an IOT followed by the primitive's address,
with R0 pointing to an argument block, just as described in the
MicroPower/Pascal 2.4 Run-Time Services Manual.
- The binary, counting and queue semaphores match the layouts in the
manual. A queue semaphore contains a waiting-process pointer, first
element, last element and count.
- The 14 tasks (VT220 parser, ReGIS, Tek 4010/4014, sixel, video,
keyboard, Set-Up, modem dialler, print screen and others) are compiled
code. Their $SAVn register-save helpers are the same size as those in
the MicroPower link maps.
- It's a cut-down kernel: about 15 primitives, a reduced structure
header, and no ring buffers or names.
I'd like to recover readable Pascal for the whole terminal and, ideally,
recompile it to the same bytes. To do that, I need the compiler. I'm
looking for:
1. A MicroPower/Pascal distribution kit, any version, preferably an early
one (1.x, from around 1983, when the VT240 firmware was written).
RX50, RX02, RL02 or TK50 images would be great, as would RT-11 or RSX
kits.
2. Oregon Software Pascal-2 for the PDP-11. Don Baccus says
MicroPower/Pascal was built on Pascal-2. In February 2016 Ed
Groenenberg posted here that he'd found an 800 bpi tape of Oregon
Pascal V2.0 for RSX. Todd Goodman asked for it, and Pete Lancashire
offered to have it read on a 9-track drive. Was it ever imaged? If so,
is the image available somewhere?
3. Anything internal to DEC about the VT240 firmware: listings, source,
build files or microfiche.
The Pascal-2 front end and optimiser survive as source in Don Baccus's
mc68000_pascal_2 and oregon_software_compilers repositories, along with a
version that builds with Free Pascal. However, they only include the 68k
code generator. The PDP-11 backend doesn't seem to be public, so a PDP-11
binary of either compiler would make the difference.
Separately, MAME has never had dumps of the VT240's 23-994A9 interrupt
encoder PROM, the 23-351A1/352A1/370A1 timing PROMs, the 23-369A1 mapping
PROM or the 23-087J5 PAL. If someone with a VT240 board and a programmer
could read them, that would settle the last unknowns and help me a great
deal.
Happy to share the disassembly and notes.
Sol