Outputs:
HReset, Reset (0), nRD (0), nWR (0), nRDX (0), nWRX (0), nIOCS (0), nMemCS (0), nCKSlot (0), A1A0 (2), nBHE (0), PReject (0), PFault (0), SelPBusCmd (0), IOPCmd (8)
Inputs:
Busy (0), PhA (0), PhB (0), PBusErr (0), WRPulse (0), ByteEn (4), PCmd(8), LdPResult (0), EnPAddr (0), DrvPBus (0)
Initialization, byte enable check
Harware reset and normal reset
1 1 X X X X X X X X X X X X XX | X X X X X X XX X X X -- Initial state
1 1 1 1 1 1 X X X X X X X X XX | X X X X X X XX X X X -- Reset
1 1 1 1 1 1 X X X X X X X X XX | X X X X X X XX X X X -- Reset
1 1 1 1 1 1 X X X X X X X X XX | X X X X X X XX X X X -- Reset
1 1 1 1 1 1 X X X X X X X X XX | X X X X X X XX X X X -- Reset
1 1 1 1 1 1 X X X X X X X X XX | X X X X X X XX X X X -- Reset
1 1 1 1 1 1 X X X X X X X X XX | X X X X X X XX X X X -- Reset
1 1 1 1 1 1 X X X X X X X X XX | X X X X X X XX X X X -- Reset
1 1 1 1 1 1 X X X X X X X X XX | X X X X X X XX X X X -- Reset
1 1 1 1 1 1 X X X X X X X X XX | X X X X X X XX X X X -- Reset
1 1 1 1 1 1 X X X X X X X X XX | X X X X X X XX X X X -- Reset
0 1 1 1 1 1 X X X X X X X X XX | 0 0 0 0 0 X XX 0 0 0 -- Check results
0 1 1 1 1 1 X X X X X X X X XX | 0 0 0 0 0 X XX 0 0 0 -- Check results
0 1 1 1 1 1 X X X X X X X X XX | 0 0 0 0 0 X XX 0 0 0 -- Check results, Hard reset removed
Attempt memory cycle while Reset, /Hreset (No-Op)
0 1 0 1 1 1 1 0 0 0 0 X X 0 XX | 1 0 0 0 0 3 98 0 0 0 -- Initiate read cycle
0 1 0 1 1 1 1 0 0 0 0 X X 0 XX | 1 0 0 0 0 3 98 0 0 0 -- pass 1st sync
0 1 0 1 1 1 1 0 0 0 0 X X 0 XX | 1 0 0 0 0 3 98 0 0 0 -- pass 2nd sync
0 1 0 1 1 1 1 0 0 0 0 X X 0 XX | 0 0 0 0 0 3 98 0 0 0 -- Done (well, looks like)
0 1 1 1 1 1 1 0 0 0 0 X X 0 XX | 0 0 0 0 0 3 98 0 0 0 -- Idle
Attempt I/O cycle while Reset, /Hreset (Effective) & remove Reset
0 1 0 1 1 1 0 1 0 1 0 X X 0 XX | 1 0 0 0 0 2 XX 0 0 0 -- Initiate read cycle
0 1 0 1 1 1 0 1 0 1 0 X X 0 XX | 1 0 0 0 0 2 XX 0 0 0 -- pass 1st sync
0 1 0 1 1 1 0 1 0 1 0 X X 0 XX | 1 0 0 0 0 2 XX 0 0 0 -- pass 2nd sync
0 1 0 1 1 1 0 1 0 1 0 X X 0 XX | 1 0 0 0 0 2 XX 0 0 0 -- EndOfCycle
0 1 0 1 1 1 0 1 0 1 0 X X 0 XX | 0 0 0 0 0 2 XX 0 0 0 -- Done
0 1 1 1 1 1 0 1 0 1 0 X X 0 XX | 0 0 0 0 0 2 XX 0 0 0 -- Idle
0 0 1 1 1 1 0 1 0 1 0 X X 0 XX | 0 0 0 0 0 2 XX 0 0 0 -- Remove Reset
0 0 1 1 1 1 0 1 0 1 0 X X 0 XX | 0 0 0 0 0 2 XX 0 0 0 -- Remove Reset
0 0 1 1 1 1 0 1 0 1 0 X X 0 XX | 0 0 0 0 0 2 XX 0 0 0 -- Remove Reset
Check byte enables
0 0 1 1 1 1 X X X 0 0 X X X XX | 0 0 0 0 0 3 XX 0 0 0 -- lo word
0 0 1 1 1 1 X X X 0 1 X X X XX | 0 0 0 0 0 1 XX 0 0 0 -- lo-byte of lo-word (LSB)
0 0 1 1 1 1 X X X 1 0 X X X XX | 0 0 0 0 0 2 XX 0 0 0 -- hi byte of lo word
0 0 1 1 1 1 X X X 1 1 X X X XX | 0 0 0 0 0 X XX 0 0 0 -- *** forbidden ***
0 0 1 1 1 1 X X X 2 0 X X X XX | 0 0 0 0 0 C XX 0 0 0 -- hi word
0 0 1 1 1 1 X X X 2 1 X X X XX | 0 0 0 0 0 4 XX 0 0 0 -- lo-byte of hi-word
0 0 1 1 1 1 X X X 3 0 0 0 X XX | 0 0 0 0 0 8 XX 0 0 0 -- hi-byte of hi-word (MSB)
0 0 1 1 1 1 X X X 3 1 X X X XX | 0 0 0 0 0 X XX 0 0 0 -- *** forbidden ***
Basic memory cycles
Basic memory cycle, read, no reject, low 16-bits
0 0 0 1 1 1 1 0 0 0 0 X X 0 XX | 1 0 0 0 0 3 98 0 0 0 -- Initiate read cycle
0 0 0 1 1 1 1 0 0 0 0 X X 0 XX | 1 0 0 0 0 3 98 0 0 0 -- pass 1st sync
0 0 0 1 1 1 1 0 0 0 0 X X 0 XX | 1 0 0 0 0 3 98 0 0 0 -- pass 2nd sync
0 0 0 1 1 1 1 0 0 0 0 X X 0 XX | 1 1 0 0 0 3 98 0 1 1 -- PhA1
0 0 0 1 1 1 1 0 0 0 0 X X 0 XX | 1 1 0 0 0 3 98 0 1 1 -- PhA2
0 0 0 1 1 1 1 0 0 0 0 X X 0 XX | 1 0 1 0 0 3 98 0 0 0 -- PhB1
0 0 0 1 1 1 1 0 0 0 0 0 0 0 XX | 1 0 1 0 0 3 00 1 0 0 -- PhB2
0 0 0 1 1 1 1 0 0 0 0 X X 0 XX | 1 0 0 0 0 3 00 0 0 0 -- PhB3
0 0 0 1 1 1 1 0 0 0 0 X X 0 XX | 0 0 0 0 0 3 98 0 0 0 -- Done
0 0 1 1 1 1 1 0 0 0 0 X X 0 XX | 0 0 0 0 0 3 98 0 0 0 -- Idle
Basic memory cycle, write, 1 reject cycle, lo-hi byte
0 0 1 0 1 1 1 0 0 2 1 X X 0 XX | 1 0 0 0 0 4 A1 0 0 0 -- Initiate write cycle
0 0 1 0 1 1 1 0 0 2 1 X X 0 XX | 1 0 0 0 0 4 A1 0 0 0 -- pass 1st sync
0 0 1 0 1 1 1 0 0 2 1 X X 0 XX | 1 0 0 0 0 4 A1 0 0 0 -- pass 2nd sync
0 0 1 0 1 1 1 0 0 2 1 X X 0 XX | 1 1 0 0 0 4 A1 0 1 1 -- PhA1
0 0 1 0 1 1 1 0 0 2 1 X X 0 XX | 1 1 0 0 0 4 A1 0 1 1 -- PhA2
0 0 1 0 1 1 1 0 0 2 1 X X 0 XX | 1 0 1 0 0 4 A1 0 0 1 -- PhB1
0 0 1 0 1 1 1 0 0 2 1 1 0 0 XX | 1 0 1 0 0 4 00 0 0 1 -- PhB2, reject
0 0 1 0 1 1 1 0 0 2 1 X X 0 XX | 1 0 0 0 0 4 00 0 0 0 -- PhB3
0 0 1 0 1 1 1 0 0 2 1 X X 0 XX | 1 1 0 0 0 4 00 0 1 1 -- PhA1
0 0 1 0 1 1 1 0 0 2 1 X X 0 XX | 1 1 0 0 0 4 00 0 1 1 -- PhA2
0 0 1 0 1 1 1 0 0 2 1 X X 0 XX | 1 0 1 0 0 4 00 0 0 1 -- PhB1
0 0 1 0 1 1 1 0 0 2 1 0 0 0 XX | 1 0 1 0 0 4 00 0 0 1 -- PhB2
0 0 1 0 1 1 1 0 0 2 1 X X 0 XX | 1 0 0 0 0 4 00 0 0 0 -- PhB3
0 0 1 0 1 1 1 0 0 2 1 X X 0 XX | 0 0 0 0 0 4 A1 0 0 0 -- Done
0 0 1 1 1 1 1 0 0 2 1 X X 0 XX | 0 0 0 0 0 4 A0 0 0 0 -- Idle
Extended memory cycles
Extended memory cycle, read, no reject, hi-hi byte (msb)
0 0 1 1 0 1 1 0 0 3 0 X X 0 XX | 1 0 0 0 0 8 C0 0 0 0 -- Initiate read cycle
0 0 1 1 0 1 1 0 0 3 0 X X 0 XX | 1 0 0 0 0 8 C0 0 0 0 -- pass 1st sync
0 0 1 1 0 1 1 0 0 3 0 X X 0 XX | 1 0 0 0 0 8 C0 0 0 0 -- pass 2nd sync
0 0 1 1 0 1 1 0 0 3 0 X X 0 XX | 1 1 0 0 0 8 C0 0 1 1 -- PhA1
0 0 1 1 0 1 1 0 0 3 0 X X 0 XX | 1 1 0 0 0 8 C0 0 1 1 -- PhA2
0 0 1 1 0 1 1 0 0 3 0 X X 0 XX | 1 0 1 0 0 8 C0 0 0 0 -- PhB1
0 0 1 1 0 1 1 0 0 3 0 0 0 0 XX | 1 0 1 0 0 8 00 1 0 0 -- PhB2
0 0 1 1 0 1 1 0 0 3 0 X X 0 XX | 1 0 0 0 0 8 00 0 0 0 -- PhB3
0 0 1 1 0 1 1 0 0 3 0 X X 0 XX | 0 0 0 0 0 8 C0 0 0 0 -- Done
0 0 1 1 1 1 1 0 0 3 0 X X 0 XX | 0 0 0 0 0 8 C0 0 0 0 -- Idle
Extended memory cycle, write, fault cycle, lo-lo byte (lsb)
0 0 1 1 1 0 1 0 0 0 1 X X 0 XX | 1 0 0 0 0 1 89 0 0 0 -- Initiate write cycle
0 0 1 1 1 0 1 0 0 0 1 X X 0 XX | 1 0 0 0 0 1 89 0 0 0 -- pass 1st sync
0 0 1 1 1 0 1 0 0 0 1 X X 0 XX | 1 0 0 0 0 1 89 0 0 0 -- pass 2nd sync
0 0 1 1 1 0 1 0 0 0 1 X X 0 XX | 1 1 0 0 0 1 89 0 1 1 -- PhA1
0 0 1 1 1 0 1 0 0 0 1 X X 0 XX | 1 1 0 0 0 1 89 0 1 1 -- PhA2
0 0 1 1 1 0 1 0 0 0 1 X X 0 XX | 1 0 1 0 0 1 89 0 0 1 -- PhB1
0 0 1 1 1 0 1 0 0 0 1 1 1 0 XX | 1 0 1 0 0 1 00 0 0 1 -- PhB2, reject, fault
0 0 1 1 1 0 1 0 0 0 1 X X 0 XX | 1 0 0 1 0 1 00 0 0 0 -- PhB3
0 0 1 1 1 0 1 0 0 0 1 X X 0 XX | 1 1 0 0 0 1 00 0 1 1 -- PhA1
0 0 1 1 1 0 1 0 0 0 1 X X 0 XX | 1 1 0 0 0 1 00 0 1 1 -- PhA2
0 0 1 1 1 0 1 0 0 0 1 X X 0 XX | 1 0 1 0 0 1 00 0 0 1 -- PhB1
0 0 1 1 1 0 1 0 0 0 1 0 0 0 XX | 1 0 1 0 0 1 00 0 0 1 -- PhB2
0 0 1 1 1 0 1 0 0 0 1 X X 0 XX | 1 0 0 0 0 1 00 0 0 0 -- PhB3
0 0 1 1 1 0 1 0 0 0 1 X X 0 XX | 0 0 0 0 0 1 89 0 0 0 -- Done
0 0 1 1 1 1 1 0 0 0 1 X X 0 XX | 0 0 0 0 0 1 88 0 0 0 -- Idle
Regular I/O cycles
Regular I/O cycle, read
0 0 0 1 1 1 0 1 0 1 0 X X 0 XX | 1 0 0 0 0 2 XX 0 0 0 -- Initiate read cycle
0 0 0 1 1 1 0 1 0 1 0 X X 0 XX | 1 0 0 0 0 2 XX 0 0 0 -- pass 1st sync
0 0 0 1 1 1 0 1 0 1 0 X X 0 XX | 1 0 0 0 0 2 XX 0 0 0 -- pass 2nd sync
0 0 0 1 1 1 0 1 0 1 0 X X 0 XX | 1 0 0 0 0 2 XX 0 0 0 -- EndOfCycle
0 0 0 1 1 1 0 1 0 1 0 X X 0 XX | 0 0 0 0 0 2 XX 0 0 0 -- Done
0 0 1 1 1 1 0 1 0 1 0 X X 0 XX | 0 0 0 0 0 2 XX 0 0 0 -- Idle
Regular I/O cycle, write
0 0 1 0 1 1 0 1 0 2 0 X X 0 XX | 1 0 0 0 0 C XX 0 0 0 -- Initiate read cycle
0 0 1 0 1 1 0 1 0 2 0 X X 0 XX | 1 0 0 0 0 C XX 0 0 0 -- pass 1st sync
0 0 1 0 1 1 0 1 0 2 0 X X 0 XX | 1 0 0 0 1 C XX 0 0 0 -- pass 2nd sync
0 0 1 0 1 1 0 1 0 2 0 X X 0 XX | 1 0 0 0 0 C XX 0 0 0 -- EndOfCycle
0 0 1 0 1 1 0 1 0 2 0 X X 0 XX | 0 0 0 0 0 C XX 0 0 0 -- Done
0 0 1 1 1 1 0 1 0 2 0 X X 0 XX | 0 0 0 0 0 C XX 0 0 0 -- Idle
PBusCmd I/O cycles
Write PBusCmd reg (lo-byte) - initiates PBus write cycle
0 0 1 0 1 1 0 1 0 0 1 X X 1 C5 | 1 0 0 0 0 1 C5 0 0 0 -- Initiate read cycle
0 0 1 0 1 1 0 1 0 0 1 X X 1 C5 | 1 0 0 0 0 1 C5 0 0 0 -- pass 1st sync
0 0 1 0 1 1 0 1 0 0 1 X X 1 C5 | 1 0 0 0 1 1 C5 0 0 0 -- pass 2nd sync
0 0 1 0 1 1 0 1 0 0 1 X X 1 C5 | 1 0 0 0 0 1 C5 0 0 0 -- decide PBus
0 0 1 0 1 1 0 1 0 0 1 X X 1 C5 | 1 1 0 0 0 1 C5 0 1 1 -- PhA1
0 0 1 0 1 1 0 1 0 0 1 X X 1 C5 | 1 1 0 0 0 1 C5 0 1 1 -- PhA2
0 0 1 0 1 1 0 1 0 0 1 X X 1 C5 | 1 0 1 0 0 1 C5 0 0 1 -- PhB1
0 0 1 0 1 1 0 1 0 0 1 0 0 1 C5 | 1 0 1 0 0 1 00 0 0 1 -- PhB2
0 0 1 0 1 1 0 1 0 0 1 X X 1 C5 | 1 0 0 0 0 1 00 0 0 0 -- PhB3
0 0 1 0 1 1 0 1 0 0 1 X X 1 C5 | 0 0 0 0 0 1 C5 0 0 0 -- Done
0 0 1 1 1 1 0 1 0 0 1 X X 1 C5 | 0 0 0 0 0 1 C5 0 0 0 -- Idle
Write PBusCmd reg (16-bits) - initiates PBus read cycle
0 0 1 0 1 1 0 1 0 0 0 X X 1 F2 | 1 0 0 0 0 3 F2 0 0 0 -- Initiate read cycle
0 0 1 0 1 1 0 1 0 0 0 X X 1 F2 | 1 0 0 0 0 3 F2 0 0 0 -- pass 1st sync
0 0 1 0 1 1 0 1 0 0 0 X X 1 F2 | 1 0 0 0 1 3 F2 0 0 0 -- pass 2nd sync
0 0 1 0 1 1 0 1 0 0 0 X X 1 F2 | 1 0 0 0 0 3 F2 0 0 0 -- decide PBus
0 0 1 0 1 1 0 1 0 0 0 X X 1 F2 | 1 1 0 0 0 3 F2 0 1 1 -- PhA1
0 0 1 0 1 1 0 1 0 0 0 X X 1 F2 | 1 1 0 0 0 3 F2 0 1 1 -- PhA2
0 0 1 0 1 1 0 1 0 0 0 X X 1 F2 | 1 0 1 0 0 3 F2 0 0 0 -- PhB1
0 0 1 0 1 1 0 1 0 0 0 0 0 1 F2 | 1 0 1 0 0 3 00 1 0 0 -- PhB2
0 0 1 0 1 1 0 1 0 0 0 X X 1 F2 | 1 0 0 0 0 3 00 0 0 0 -- PhB3
0 0 1 0 1 1 0 1 0 0 0 X X 1 F2 | 0 0 0 0 0 3 F2 0 0 0 -- Done
0 0 1 1 1 1 0 1 0 0 0 X X 1 F2 | 0 0 0 0 0 3 F2 0 0 0 -- Idle
Ignored I/O cycles
Ignored I/O cycle, read
0 0 1 1 1 1 0 1 1 1 0 X X X XX | 0 0 0 0 0 2 XX 0 0 0 -- Set IOCS first!
0 0 0 1 1 1 0 1 1 1 0 X X X XX | 0 0 0 0 0 2 XX 0 0 0 -- No cycle initiated
0 0 0 1 1 1 0 1 1 1 0 X X X XX | 0 0 0 0 0 2 XX 0 0 0 -- No cycle initiated
0 0 1 1 1 1 0 1 1 1 0 X X X XX | 0 0 0 0 0 2 XX 0 0 0 -- Idle
Ignored I/O cycle, write
0 0 1 1 1 1 0 1 1 2 0 X X X XX | 0 0 0 0 0 C XX 0 0 0 -- Set IOCS first!
0 0 1 0 1 1 0 1 1 2 0 X X X XX | 0 0 0 0 0 C XX 0 0 0 -- No cycle initiated
0 0 1 0 1 1 0 1 1 2 0 X X X XX | 0 0 0 0 0 C XX 0 0 0 -- No cycle initiated
0 0 1 1 1 1 0 1 1 2 0 X X X XX | 0 0 0 0 0 C XX 0 0 0 -- Idle
.