This technical memorandum, "PDP-X Model I Extended Op Simulator Initial Specifications," dated November 17, 1967, describes a software program designed to enable PDP-X Model I users to utilize "Extended Op (EOP) instructions," which are typically found only on the more advanced PDP-X Model II hardware.
The primary goal of the simulator is to transparently provide Model II functionality to Model I users, obviating the need for them to write complex subroutines for operations like multiplication, division, various shifts, and push-down list manipulations.
Key aspects of the simulator's design and operation include:
- Transparent Execution: The simulator resides in core memory alongside a user program. When a Model I encounters an EOP instruction, it triggers a trap. The simulator then saves the machine's current state (registers, program counter), executes the EOP instruction, sets the appropriate condition codes, stores the results, restores the saved state, and finally returns control to the user program. This entire process is designed to be "invisible" to the user, making it appear as though the EOP was executed by hardware.
- Reentrancy: The simulator is built to be completely reentrant, meaning its execution can be interrupted by a higher-priority EOP trap without causing errors or data corruption.
- Performance: Routines for complex operations (e.g., multiply, divide) are chosen for their speed and efficiency, aiming for execution as fast as possible in a software environment.
- Accuracy: The simulator ensures that the results and condition code indicators (CCØ,1,2) are set "exactly the same as if the instruction were executed by Model II hardware."
- Error Handling: It also simulates Model II error traps for various conditions, including arithmetic errors, push-down list errors, non-extended memory errors, and addressing exceptions.
- Supported Instructions: A comprehensive set of Model II EOPs are simulated, categorized into:
- Arithmetic: SUB, CMP, LCMP, MUL, LMUL, DIV, LDIV.
- Test: TSTN, TSTZ, TSTO, TSTC.
- Push Group: PUC, PUSH, PUB, PUL, POC, POP, POB, POL.
- Miscellaneous: LDC, STC, SHFT.
- Resource Usage: The program is designed to occupy a minimum amount of core space (estimated at 100% octal registers).
In summary, the PDP-X Extended Op Simulator serves as a crucial software layer that effectively "converts" the capabilities of a PDP-X Model I, allowing it to function like a PDP-X Model II (though not quite as fast), thereby expanding its utility for users.