Google
 

Trailing-Edge - PDP-10 Archives - tops10_704_monitoranf_bb-x140c-sb - 10,7/mon/klpprm.mac
There are 3 other files named klpprm.mac in the archive. Click here to see a list.
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