KM8-E Memory Extension

The KM8-E IOTs enable programs to change the instruction and data field registers (IF and DF) of the KM8-E Memory Extension to address up to 32K words of memory and to operate the time sharing capabilities of the extended PDP-8. For information about memory field addressing with the KM8-E, see here.

The time sharing option of the KM8-E can be enabled with a jumper on the board. When this jumper is in place, loading of the UF flip flop from the UBB flip flop is inhibited. When the jumper is removed, loading of UF is enabled. With the PDP-8/E Simulator, this jumper is emulated by a checkbox in the PDP-8/E CPU preferences panel.

Mnemonic
Symbol
Octal
Code

Description
CDF x0 662x1 Change to data field x (x=0,…,7). The data field register DF is loaded with the selected field number x. All subsequent memory requests for operands are automatically switched to that memory field until the field number is changed by a new CDF command or an interrupt occurs.
CIF x0 62x2 Prepare to change to instruction field x (x=0,…,7). The instruction field buffer IB is loaded with the selected field number x, and the interrupt inhibit flag is set. The next JMP or JMS insruction causes the value of IB to be loaded into IF and the inhibit flag to be cleared. This enables a program to continue at a defined location on the new instruction field and disables interrupts while the new field setting is pending.
CDI x0 62x3 Microprogrammed combination of CDF x0 and CIF x0.
CINT 6204 Clear the user mode I/O flag. The user mode I/O flag is set when the CPU executes a privileged instruction (IOT or HLT) when running in user mode (UF=1). Then an interrupt will occur to enable the operating system to handle this exception and to clear the flag with CINT.
RDF 6214 Read data field DF into AC(6–8) (logical OR of IF with AC(6–8)). The other bits of AC are not affected.
RIF 6224 Same as RDF except that the instruction field IF is read.
RIB 6234 Read interrupt buffer SF (save field) into AC(5–11) (logical OR of SF with AC(5–11)). The other bits of AC are not affected.
RMF 6244 Restore memory fields to exit from an interrupt service routine. This instruction loads UB from SF(0), IB from SF(1–3) and DF from SF(4–6).
SINT 6254 Skip the next instruction if the user mode I/O flag is set. Usefull for checking if an interrupt was caused by the execution of a privileged instruction in user mode.
CUF 6264 Clear user flag. This instruction clears the UB flip flop.
SUF 6274 Set user flag. This instruction sets the UB flip flop and the interrupt inhibit flag. The next JMP or JMS instruction loads UB into UF and clears the inhibit flag and so switches the CPU to user mode operation.