LtDrPadIO:
TYPE =
RECORD [
-- default must be zero
iPReject: BOOL ← FALSE, -- B => BA
iPFaulting: BOOL ← FALSE, -- B => BA
newFetch: BOOL ← FALSE, -- BAA <= BA
reset: BOOL ← FALSE, -- AB => BA
reschedule: BOOL ← FALSE ]; -- AB => BA
RtDrPadIO:
TYPE =
RECORD [
-- default must be zero
dPReject: BOOL ← FALSE, -- BA <= B dual
dPFault: Dragon.PBusFaults ← none, -- BA <= B
dPFaultCode: PBusFaultCode ← memAccess, -- BA => BAA
dPFaultCodeD: PBusFaultCode ← memAccess, -- AB <= BAA
dPCmnd3: Dragon.PBusCommands ← NoOp, -- BA => BAA
userMode2: BOOL ← FALSE, -- BA => BAA
eUAluOp2: Dragon.ALUOps ← Or, -- AB => ABB
eUCondSel2: Dragon.CondSelects ← False, -- AB => ABB
eUCondition2: BOOL ← FALSE, -- BA <= B
eUWriteToPBus3: BOOL ← FALSE, -- AB => ABB
eURdFromPBus3: BOOL ← FALSE, -- AB => ABB
K0PadsIn4: BOOL ← FALSE, -- Ac <= BA
K1PadsIn4: BOOL ← FALSE, -- Ac <= BA
K0PadsOut3: BOOL ← FALSE, -- BA <= BA
K1PadsOut3: BOOL ← FALSE, -- BA <= BA
X2ASrcLit1: BOOL ← FALSE, -- BA => BAA
X2ASrcLit2: BOOL ← FALSE, -- Ac <= BAA dual
debugABGD: BOOL ← FALSE, -- <debug>
debugPC: BOOL ← FALSE, -- <debug>
debugLSC: BOOL ← FALSE, -- <debug>
debugABStLim: BOOL ← FALSE ]; -- <debug>
PBusFaultCode:
TYPE =
MACHINE
DEPENDENT {
memAccess (Dragon.PBusFaults[ memAccess ].ORD MOD 8),
ioAccess (Dragon.PBusFaults[ ioAccess ].ORD MOD 8),
page (Dragon.PBusFaults[ page ].ORD MOD 8),
write (Dragon.PBusFaults[ write ].ORD MOD 8),
arithmetic (Dragon.PBusFaults[ arithmetic ].ORD MOD 8) };