Mark, for both the S/370 and S/3 "emulation" we found the opcode jump
tables for the 5100/5110 (I don't think I posted those anywhere, but
mentioned in the VCF 5100 talk). While each opcode 00-FF has an entry, as
you say many of them jump to effectively a halt or invalid instruction
placeholder (or in other words, only about 80% of the opcodes actually
being supported).
In the 5110, both the BASIC and APL "ROMs" increase in size, and so it also
has a larger subset of instruction jump table entries that are implemented.
On Fri, May 9, 2025 at 10:13 AM mark.s.waterbury--- via cctalk <
cctalk(a)classiccmp.org> wrote:
APL on the 5100/5110/5120 was based on the IBM
mainframe APL/SV,
(follow-on to APL\360), with several added features. The "360 emulator"
was not a full emulator of 360/370, but only emulated exactly those
instructions needed by the APL interpreter (that was written in 360/370
assembler language).
Similarly, the System/3 emulator that was developed for the 5100/5110/5120
BASIC implemented only those instructions that were needed by the S/3 BASIC
software. System/3 was a machine with limited amounts of real CORE memory,
so developers recognized early on that they needed to implement a kind of a
"virtual machine" for BASIC, and that was coded in S/3 assembler language.
This layer also provided the "virtual" memory for BASIC use, done via
"software paging" on a machine (S/3) that had no hardware for virtual
memory, relocation, etc.
See also:
https://www.glennsmuseum.com/items/s3m6/
Glenn Henry was instrumental in the development of the S/3 Model 6 BASIC,
and later led the effort to create the IBM System/38. He was eventually
promoted to become an IBM Fellow. The design of the virtual instruction
set used for S/3 BASIC was used to create the "scientific instructions" for
the S/32, S/34 and S/36 that was used by BASIC and FORTRAN on those systems.
Mark S Waterbury