mirror of
https://github.com/PDP-10/stacken.git
synced 2026-02-28 17:09:15 +00:00
207 lines
6.9 KiB
Plaintext
207 lines
6.9 KiB
Plaintext
UNIVERSAL KLPPRM - REGISTER/BIT DEFINITIONS FOR THE CI20 (KLIPA) V17
|
||
SUBTTL JOSEPH A. DZIEDZIC/JAD 7 JUNE 88
|
||
|
||
SEARCH F,S,DEVPRM,MACSYM
|
||
SALL
|
||
|
||
;THIS UNIVERSAL FILE CONTAINS REGISTER AND BIT DEFINITIONS FOR THE CI20
|
||
;AND IS SEARCHED BY ANY MODULE WHICH DEALS WITH CI20'S.
|
||
|
||
|
||
;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED
|
||
; OR COPIED ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE.
|
||
;
|
||
;COPYRIGHT (c) DIGITAL EQUIPMENT CORPORATION 1984,1986,1988.
|
||
;ALL RIGHTS RESERVED.
|
||
|
||
.CPYRT<1984,1988>,.
|
||
|
||
XP VKLPRM,17
|
||
|
||
|
||
XP MAXNDS,20 ;MAXIMUM NUMBER OF NODES ON THE CI BUS
|
||
; (REALLY BELONGS SOMEWHERE ELSE?)
|
||
XP NOSTCT,22 ;NUMBER OF STATISTICS COUNTERS
|
||
SUBTTL PORT CONTROL BLOCK FORMAT
|
||
|
||
|
||
;*************************************************************************
|
||
;*************************************************************************
|
||
;*** ***
|
||
;*** THE ORDERING OF DATA IN THE BEGINNING OF THE PORT CONTROL BLOCK ***
|
||
;*** IS DEFINED BY THE KLIPA MICROCODE. CHANGES TO THAT PART OF THE ***
|
||
;*** PCB DEFINITION SHOULD BE MADE ONLY WHEN THE MICROCODE CHANGES. ***
|
||
;*** ***
|
||
;*************************************************************************
|
||
;*************************************************************************
|
||
|
||
|
||
;THE OFFSETS WITHIN A QUEUE IN A PORT CONTROL BLOCK
|
||
|
||
.PQIWD==0 ;INTERLOCK WORD
|
||
.PQFLI==1 ;FORWARD LINK (FLINK)
|
||
.PQBLI==2 ;BACKWARD LINK (BLINK)
|
||
.PQLEN==3 ;LENGTH OF A QUEUE
|
||
MAXQUE==3 ;MAXIMUM COMMAND QUEUE NUMBER
|
||
|
||
|
||
PHASE IPKSIZ ;DEFINE AS OFFSETS
|
||
|
||
.PCPCB:!
|
||
|
||
.PCBDT:!BLOCK 1 ;ADDRESS OF BUFFER DESCRIPTOR TABLE (BDT)
|
||
|
||
.PCMQE:!BLOCK 1 ;MESSAGE QUEUE ENTRY LENGTH
|
||
.PCDQE:!BLOCK 1 ;DATAGRAM QUEUE ENTRY LENGTH
|
||
.PCRQE:!BLOCK 1 ;RESERVED QUEUE ENTRY LENGTH
|
||
|
||
.PCQBG:! ;BEGINNING OF QUEUE STRUCTURES IN PCB
|
||
|
||
.PCCQB:! ;BEGINNING OF COMMAND QUEUES IN PCB
|
||
.PCCQ3:!BLOCK .PQLEN ;COMMAND QUEUE 3
|
||
.PCCQ2:!BLOCK .PQLEN ;COMMAND QUEUE 2
|
||
.PCCQ1:!BLOCK .PQLEN ;COMMAND QUEUE 1
|
||
.PCCQ0:!BLOCK .PQLEN ;COMMAND QUEUE 0
|
||
.PCCQE:! ;END OF THE COMMAND QUEUES IN PCB
|
||
|
||
.PCRSQ:!BLOCK .PQLEN ;RESPONSE QUEUE
|
||
|
||
.PCMFQ:!BLOCK .PQLEN ;MESSAGE FREE QUEUE
|
||
|
||
.PCDFQ:!BLOCK .PQLEN ;DATAGRAM FREE QUEUE
|
||
|
||
.PCRFQ:!BLOCK .PQLEN ;RESERVED FREE QUEUE
|
||
.PCQND:! ;END OF QUEUE STRUCTURES IN PCB
|
||
|
||
;PCB DEFINITION IS CONTINUED ON THE NEXT PAGE
|
||
;PCB DEFINITION CONTINUED FROM PREVIOUS PAGE
|
||
|
||
;*** STILL IN PCB DEFINITION DETERMINED BY THE KLIPA MICROCODE ***
|
||
|
||
.PCRSV:!BLOCK 1 ;RESERVED TO PORT
|
||
|
||
.PCER0:!BLOCK 1 ;ERROR WORD 0 (QUEUE INFORMATION)
|
||
E0.CMD==1B0 ;ERROR WHILE READING A COMMAND
|
||
DEFSTR (E0QUE,.PCER0,2,2) ;COMMAND QUEUE THAT HAD THE ERROR
|
||
E0.RES==1B3 ;ERROR WHILE BUILDING A RESPONSE
|
||
DEFSTR (E0MBZ,.PCER0,11,5) ;MUST BE ZERO
|
||
DEFSTR (E0FLI,.PCER0,35,24) ;FLINK OF ENTRY IN ERROR
|
||
.PCER1:!BLOCK 1 ;ERROR WORD 1 (API FUNCTION WORD)
|
||
.PCER2:!BLOCK 1 ;ERROR WORD 2 (REGISTER DATA)
|
||
.PCER3:!BLOCK 1 ;ERROR WORD 3 (CHANNEL LOGOUT WORD 1)
|
||
.PCER4:!BLOCK 1 ;ERROR WORD 4 (CHANNEL LOGOUT WORD 2)
|
||
|
||
.PCPBA:!BLOCK 1 ;PHYSICAL ADDRESS OF START OF PCB
|
||
|
||
.PCPIA:!BLOCK 1 ;PRIORITY INTERRUPT LEVEL
|
||
|
||
.PCAL1:!BLOCK 1 ;PHYSICAL ADDRESS OF CHANNEL LOGOUT WORD 1 (.CSCLP)
|
||
|
||
.PCCCW:!BLOCK 1 ;PORT'S CHANNEL COMMAND WORD
|
||
|
||
.PCRSP:!BLOCK 1 ;RESERVED TO PORT
|
||
|
||
.PCPCL==.-.PCPCB ;LENGTH OF PCB AREA DEFINED BY KLIPA MICROCODE
|
||
|
||
;THIS IS THE END OF THAT PART OF THE PCB WHOSE ORDERING IS DETERMINED
|
||
;BY THE KLIPA MICROCODE. SOFTWARE ADDITIONS TO THE PCB FOLLOW.
|
||
|
||
;PCB DEFINITION IS CONTINUED ON THE NEXT PAGE
|
||
;PCB DEFINITION CONTINUED FROM THE PREVIOUS PAGE
|
||
|
||
.PCLGO:!BLOCK 1 ;ADDRESS OF CHANNEL LOGOUT AREA
|
||
|
||
.PCSTS:!BLOCK 1 ;STATUS FLAGS
|
||
ST.STP==1B0 ;KLIPA WAS STOPPED LAST SECOND
|
||
ST.MFL==1B1 ;MEMORY IS BEING SET OFFLINE - KLIPA SHOULD
|
||
; BE SHUTDOWN AND RESTARTED WHEN ST.RES LIGHTS.
|
||
ST.RES==1B2 ;RESTART THE KLIPA, MEMORY HAS BEEN JUGGLED
|
||
ST.MAI==1B3 ;MAINTENANCE MODE ENABLED
|
||
ST.WAB==1B4 ;WIRE A IS BAD
|
||
ST.WBB==1B5 ;WIRE B IS BAD
|
||
ST.DED==1B6 ;KLIPA IS DEAD
|
||
ST.PTH==1B7 ;LAST PATH FOR LOOPBACK PACKET
|
||
ST.CQA==1B8 ;QUEUED I/O FOR THIS KLIPA
|
||
ST.RDY==1B9 ;KLIPA IS READY TO ROLL
|
||
.PCFQC:!BLOCK 1 ;NUMBER OF DATAGRAMS,,MESSAGES TO PUT BACK ON
|
||
; THE FREE QUEUES WHEN KLIPA IS RESTARTED AFTER
|
||
; A SET MEMORY OFFLINE COMMAND.
|
||
|
||
.PCONN:!BLOCK 1 ;"OUR" CI NODE NUMBER
|
||
|
||
.PCSBK:!BLOCK MAXNDS ;SYSTEM BLOCK ADDRESS INDEXED BY CI NODE NUMBER
|
||
|
||
.PCPBK:!BLOCK MAXNDS ;PATH BLOCK ADDRESS INDEXED BY CI NODE NUMBER
|
||
|
||
.PCRIS:!BLOCK MAXNDS ;REQUEST-ID STATUS/FLAGS INDEXED BY CI NODE NUMBER
|
||
RI.PTH==1B0 ;PATH LAST ID SENT ON (0 = A, 1 = B)
|
||
RI.PAO==1B1 ;PATH A OPEN
|
||
RI.PBO==1B2 ;PATH B OPEN
|
||
RI.NRA==1B3 ;NO RESPONSE ON PATH A
|
||
RI.NRB==1B4 ;NO RESPONSE ON PATH B
|
||
RI.TRY==1B5 ;REQUEST-ID ATTEMPT (0 = FIRST, 1 = SECOND)
|
||
RI.WFR==1B6 ;WAITING FOR RESPONSE
|
||
MSKSTR (IDNOR,.PCRIS,77B17) ;NUMBER OF NO RESPONSES
|
||
.PCRIT:!BLOCK MAXNDS ;REQUEST-ID TIMER INDEXED BY CI NODE NUMBER
|
||
|
||
.PCRIN:!BLOCK 1 ;NEXT NODE FOR REQUEST-ID POLLER
|
||
|
||
.PCBIT:! BLOCK 1 ;ADDRESS OF CONI BITS TO TEST ON INTERRUPT
|
||
|
||
IFN FTMP,<
|
||
.PCCPU:!BLOCK 1 ;CPU NUMBER WHICH OWNS THIS KLIPA
|
||
>; END IFN FTMP
|
||
|
||
;PCB DEFINITION IS CONTINUED ON THE NEXT PAGE
|
||
;PCB DEFINITION CONTINUED FROM THE PREVIOUS PAGE
|
||
|
||
;KEEP ALIVE COUNTER DATA
|
||
|
||
.PCKCT:!BLOCK 1 ;CPU UPTIME WHEN LAST COMMAND WAS QUEUED
|
||
.PCKRT:!BLOCK 1 ;CPU UPTIME WHEN LAST RESPONSE WAS RECEIVED
|
||
.PCKAC:!BLOCK 1 ;COUNT OF KEEP ALIVE FAILURES
|
||
.PCKCI:!BLOCK 1 ;CONI AT LAST KEEP ALIVE FAILURE
|
||
.PCKAT:!BLOCK 1 ;SYSTEM UPTIME AT LAST KEEP ALIVE FAILURE
|
||
|
||
;ERROR INFORMATION GATHERED BY REPORT
|
||
|
||
.PCCSR:!BLOCK 1 ;CONI AT LAST INTERRUPT
|
||
.PCCRA:!BLOCK 1 ;CRAM ADDRESS
|
||
.PCCDL:!BLOCK 1 ;LH CRAM DATA
|
||
.PCCDR:!BLOCK 1 ;RH CRAM DATA
|
||
.PCLG0:!BLOCK 1 ;CHANNEL LOGOUT WORD 0
|
||
.PCLG1:!BLOCK 1 ;CHANNEL LOGOUT WORD 1
|
||
.PCLG2:!BLOCK 1 ;CHANNEL LOGOUT WORD 2
|
||
.PCECW:!BLOCK 1 ;PORT'S CCW AT TIME OF ERROR
|
||
.PCLKE:!BLOCK 1 ;DATE/TIME OF LAST KLIPA ERROR
|
||
|
||
.PCFQE:!BLOCK 1 ;COUNT OF DATAGRAM,,MESSAGE FREE QUEUE ERRORS
|
||
|
||
;PORT COUNTER MANIPULATION VARIABLES
|
||
|
||
.PCCTM:!BLOCK 1 ;TIMER FOR NEXT PERIODIC READ-COUNTERS
|
||
.PCCJB:!BLOCK 1 ;JOB NUMBER WHICH OWNS COUNTERS
|
||
.PCCTR:!BLOCK NOSTCT+1 ;STATISTICS COUNTERS STORED HERE
|
||
;WORD 0 CONTAINS DATE/TIME WHEN COUNTERS LAST READ
|
||
;WORDS 1 - NOSTCT CONTAIN THE COUNTERS DATA
|
||
|
||
;MAINTENANCE MODE VARIABLES
|
||
|
||
.PCMJB:!BLOCK 1 ;JOB NUMBER WHICH IS DOING A MAINTENANCE FUNCTION
|
||
.PCMTI:!BLOCK 1 ;MAINTENANCE MODE MESSAGE TIMER
|
||
.PCMFL:!BLOCK 1 ;MAINTENANCE MODE MESSAGE STATUS FLAG (INITIALIZED TO -1)
|
||
;0 = PACKET RECEIVED WITHOUT ERROR
|
||
;1 = PACKET RECEIVED WITH ERROR
|
||
.PCMCN:!BLOCK 1 ;BUFFER NAME WHICH CLOSE BUFFER COMMAND WAS ISSUED FOR
|
||
.PCMCF:!BLOCK 1 ;=1 IF RECEIVED A CLOSE BUFFER RESPONSE FOR THE ABOVE BUFFER
|
||
.PCCDB:!BLOCK 1 ;ADDRESS OF CHANNEL DATA BLOCK
|
||
|
||
.PCOLD:!BLOCK 1 ;NON-ZERO IF ALREADY CONFIGURED
|
||
.PCULB:!BLOCK .ULLEN ;MICROCODE LOADER PARAMETER BLOCK
|
||
|
||
.PCLEN:! ;LENGTH OF A PCB
|
||
DEPHASE
|
||
SUBTTL THE END
|
||
|
||
END
|