[Simh] FPP8A
Rick Murphy
simh at rickmurphy.net
Sat Apr 9 18:53:04 EDT 2016
At 03:08 PM 4/9/2016, Ray Jewhurst wrote:
>Thanks Bob, this will help me a great deal. A
>question though, everything I've read has been
>for the PDP -8/A. Doesn't simh simulate the E?
The FPP-8A was the Omnibus implementation of the
FPP for the PDP-8 series. It'd work just fine
with an KK8E or a KK8A main CPU card. It was a
hex height board, so it required an 8/A chassis.
I'm sort of agreeing with Johnny here - you're
asking about internals of the simulator rather
than the registers managed by the actual hardware.
The FPP is a separate CPU with a completely
different instruction set that happens to be able
to be connected to the Omnibus and can be
commanded by the main PDP-8 CPU, and which can
run independently of the main CPU executing
instructions read out of the same memory as the
main CPU. It's a 15 bit CPU (pointers are 15 bits
wide). The largest accumulator size is 72 bits
(Extended precision mode, 12 bit exponent and 60 bit mantissa).
For the fpp-8a implementation in SIMH, here's the registers you mentioned -
// Floating point accumulator:
{ ORDATA (FPACE, fpp_ac.exp, 12) }, // Exponent
{ ORDATA (FPAC0, fpp_ac.fr[0], 12) }, // First mantissa word
{ ORDATA (FPAC1, fpp_ac.fr[1], 12) }, // Second mantissa word
{ ORDATA (FPAC2, fpp_ac.fr[2], 12) }, // etc.
{ ORDATA (FPAC3, fpp_ac.fr[3], 12) },
{ ORDATA (FPAC4, fpp_ac.fr[4], 12) },
{ ORDATA (CMD, fpp_cmd, 12) }, // FPP command register[1]
{ ORDATA (STA, fpp_sta, 12) }, // Status register
{ ORDATA (APTA, fpp_apta, 15)
}, // Active Parameter Table (APT) pointer[2]
{ GRDATA (APTSVF, fpp_aptsvf, 8, 3, 12) }, // APT field
{ ORDATA (FPC, fpp_fpc, 15) }, // FPP Program counter
{ ORDATA (BRA, fpp_bra, 15) }, // Base address
{ ORDATA (XRA, fpp_xra, 15)
}, // Pointer to index register zero
{ ORDATA (OPA, fpp_opa, 15) }, // Operand pointer
{ ORDATA (SSF, fpp_ssf, 12) }, // Single-step flag
{ ORDATA (LASTLOCK, fpp_last_lockbit, 12)
},// Lockout bit from FPCOM[3]
{ FLDATA (FLAG, fpp_flag, 0) }, // Done flag
[1] The command register sets the initial
operating state of the FPP when the FPST IOT (FPP Start) is executed.
[2] The APT has the field bits for the base,
index, operand, and FPC addresses, as well as the
low 12 bits of each of those. It also has the
FAC. Upon startup, the APT tells the FPP CPU
where to get going; when it halts, the APT is updated.
[3] The "lockout" bit, if set when a PDP-8 FPCOM
loads the command register, tells the FPP-8A to
lock out the PDP-8 CPU if possible. If lockout is
not enabled, the FPP will interleave access to memory with the PDP-8 CPU.
-Rick
More information about the Simh
mailing list