Trailing-Edge
-
PDP-10 Archives
-
BB-BT99V-BB_1990
-
10,7/unsmon/saxprm.mac
There are 4 other files named saxprm.mac in the archive. Click here to see a list.
UNIVERSAL SAXPRM - SA10 PARAMETER FILE - V5
SUBTTL JOSEPH A. DZIEDZIC/JAD (DEC) & JEFF GUNTER/JEG (ADP) 17-APRIL-90
SEARCH F, S, DEVPRM
;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 1987,1988,1990.
;ALL RIGHTS RESERVED.
.CPYRT<1987,1990>,.
SUBTTL MACRO DEFINITIONS
;MACRO TO DEFINE SA10 DEVICE DRIVER DISPATCH TABLE
DEFINE SAXDSP(PFX),<
XWD 0,0 ;;LINK WORD
.LINK .LKSAX, .-1 ;;FILL IN THE LINK WORD
IFIW PFX'CFS ;;SPECIAL AUTOCONFIGURATION ROUTINE
IFIW PFX'DSP ;;DRIVER DISPATCH TABLE
>; END DEFINE SAXDSP
;DISPATCH TABLE OFFSETS
SADLNK==:0 ;LINK TO NEXT DRIVER
SADCFS==:1 ;AUTOCONFIGURE ENTRY POINT
SADDSP==:2 ;DRIVER DISPATCH
SUBTTL RANDOM HARDWARE SYMBOLS
;DEVICE ADDRESS FIELD IS 8 BITS WIDE. THIS FIELD IS SUB-DIVIDED INTO THE
;CONTROL UNIT ADDRESS FIELD AND THE UNIT ADDRESS FIELD. BY DEFAULT, THE
;WIDTH OF THE CONTROL UNIT ADDRESS FIELD IS 4.
WIDCUA==4 ;WIDTH OF CONTROL UNIT ADDRESS SUB-FIELD
WIDUNA==^D8-WIDCUA ;WIDTH OF UNIT ADDRESS SUB-FIELD
MAXCUS==1_WIDCUA ;MAXIMUM NUMBER OF CONTROL UNITS
MAXUNS==1_WIDUNA ;MAXIMUM NUMBER OF SLAVE UNITS
SUBTTL SA10 DEFINITIONS
;SA10 HARDWARE FORMATS
SCHNUM==4 ;NUMBER OF SUBCHANNELS
;SA10 CONO BITS
SO.RES==1B18 ;RESET THE SA10
SO.CME==1B19 ;CLEAR MEMORY ERRORS
SO.CLK==1B26 ;SA10 CLOCK CONTROL
;BITS 27-29 ARE THE FUNCTION TO BE PERFORMED FOR THE SUBCHANNEL
;SPECIFIED IN BITS 31-32
SO.NOP==0B29 ;NOP
SO.RCH==3B29 ;RESET SUBCHANNEL (SO.SET NORMALLY OFF)
SO.GO==4B29 ;GO FLAG
SO.SRQ==5B29 ;STATUS REQUEST FLAG
SO.STS==6B29 ;STATUS FLAG
SO.ENB==7B29 ;INTERRUPT ENABLE
SO.SET==1B30 ;SET FLAG SPECIFIED IN BITS 27-29
SO.CLR==0B30 ;CLEAR FLAG SPECIFIED IN BITS 27-29
SO.CHN==1B32 ;CHANNEL SELECT (MULTIPLY BY SUBCHANNEL NUMBER)
SO.HLT==2B29+SO.SET ;SIMULATE HALT I/O INSTRUCTION
SO.SRS==SO.RCH+SO.SET ;SELECTIVE RESET (USED AFTER MEMORY ERRORS)
SO.SDR==SO.NOP ;SELECT DIAGNOSTIC READ
SO.DT0==0B32 ;READ SA10 REGISTER 0 (CHAN NUM,,CBUS+MICRO PC)
SO.DT1==1B32 ;READ SA10 REG 1 (MEMORY ADDRESS)
SO.DT2==2B32 ;READ SA10 REG 2 (CHAN NUM,,MEMORY BUF LH)
SO.DT3==3B32 ;READ SA10 REG 3 (PARITY,,MEMORY BUF RH)
SO.DT4==4B32 ;READ SA10 REG 4 (CLOCK RUN+MEM BUSY,,SAME AS CONI DATA)
SO.DT5==5B32 ;READ SA10 REG 5 (MU0,MU1,,MISC BITS)
;SA10 CONI BITS
SI.SAX==1B17 ;BIT WIRED TO ALWAYS-ON IF THIS IS AN SA10
SI.PIR==1B18 ;PI REQUEST
SI.PAR==1B19 ;MEMORY PARITY ERROR
SI.NXM==1B20 ;NON-EXISTENT MEMORY
SI.ENB==1B21 ;INTERRUPT ENABLE (SHIFT RIGHT BY SUBCHANNEL NUMBER)
SI.GO==1B25 ;GO FLAG (SHIFT RIGHT BY SUBCHANNEL NUMBER)
SI.STS==1B29 ;STATUS FLAG (SHIFT RIGHT BY SUBCHANNEL NUMBER)
SI.AST==17B32 ;ALL STATUS FLAGS
SI.PIA==7B35 ;PI-ASSIGNMENT
;CHANNEL LOGOUT AREA
.CLICW==0 ;INITIAL CCW
.CLCSW==1 ;CHANNEL STATUS
.CLECW==2 ;ENDING CCW
.CLRSV==3 ;RESERVED FOR CHANNEL'S USE IN BLOCK MULTIPLEX MODE
.CLLEN==:4 ;LENGTH OF CHANNEL LOGOUT AREA
;USEFUL MICROINSTRUCTIONS FOR DETERMINING SA10 BASE ADDRESS
SA.BA1==43700 ;XANC CA,MAGIC,0,LOAD - PUTS BASE ADR IN CA
SA.BA2==42260 ;XANC CA,INCR,0,STWRD - PUTS CA IN MA
SUBTTL CHANNEL PROGRAM FORMAT
;CHANNEL PROGRAMS GET BUILT OUT OF CORE FROM A NON-ZERO SECTION:
MS.SAX==MS.MEM ;SECTION TO USE FOR SA10 MEMORY CHUNKS
;SA10 CHANNEL PROGRAM FORMATS
TIC==1B1 ;TRANSFER-IN-CHANNEL (IE: CHANNEL JUMP)
BMXTIC==1B1+1B0 ;TIC REQUESTING BLOCK-MUX MODE (IN BASE BLOCK)
BMXEND==1B0 ;BLOCK-MUX HALT (DOESN'T STOP SUBCHAN AS A WHOLE)
;DEVICE COMMAND WORD FORMAT (DVW)
; 0-7 FLAGS
F.NMT==1B0 ;NO MEMORY TRANSFER
F.XEC==1B2 ;HALT (=0) / EXECUTE (=1)
F.CC==1B3 ;COMMAND CHAINING
F.WORD==0B4 ;WORD MODE
F.BYTE==1B4 ;BYTE MODE
F.NAT==1B1 ;NATURAL MODE (F.XEC MUST BE ON TO DISTINGUISH
;FROM TIC)
F.TAPC==1B1+1B4 ;"TAPE COMPATIBILITY" MODE
F.PCI==1B5 ;PROGRAM CONTROLLED INTERRUPT
F.SLI==1B6 ;SUPPRESS LENGTH INDICATION
F.OFP==1B7 ;OFFSET BYTE POSITION - START BYTE TRANSFER
; AT BIT 16 (THIRD BYTE IN WORD)
; 8-15 DEVICE COMMAND - DEPENDS ON DEVICE TYPE
DVSDVC==^D8 ;SIZE OF DEVICE COMMAND FIELD
DVNDVC==^D15 ;RIGHTMOST BIT OF DEVICE COMMAND FIELD
; 16-23 DEVICE ADDRESS - IDENTIFIES DEVICE TO USE
DVSDVA==^D8 ;SIZE OF DEVICE ADDRESS FIELD
DVNDVA==^D23 ;RIGHTMOST BIT OF DEVICE ADDRESS FIELD
; BITS 24-35 - THESE BITS ARE IGNORED AND THUS CAN BE USED BY SOFTWARE
;DATA CHAIN WORD FORMAT (DCW)
; 0 IF BIT 0 IS OFF, THEN CHAIN TO NEXT DCW (NEXT WORD IN MEMORY)
DC.END==1B0 ;ELSE THIS IS THE END OF THE CHAIN
; 1-DCNSIZ NEGATIVE WORD OR BYTE COUND
DCSSIZ==^D11 ;SIZE OF COUNT FIELD
DCNSIZ==^D11 ;RIGHTMOST BIT OF COUNT FIELD
; (36-DCNADR)-35 ADDRESS OF FIRST WORD TO TRANSFER
DCSADR==^D24 ;SIZE OF ADDRESS FIELD
DCNADR==^D35 ;RIGHTMOST BIT OF ADDRESS FIELD
;SENSE CHANNEL PROGRAM OFFSETS (USED MOSTLY DURING AUTOCONFIGURE):
.ORG 0 ;OFFSETS FROM ZERO
SNSNOP:!BLOCK 1 ;CHAINED NO-OP TO FLUSH STACKED STATUS
SNSDVW:!BLOCK 1 ;DEVICE COMMAND WORD
SNSDCW:!BLOCK 1 ;DATA CHAN WORD
SNSHLT:!BLOCK 1 ;THE HALT TO TERMINATE THE CHANNEL PROGRAM
SNSDAT:!BLOCK SNSWDS ;THE SENSE DATA ITSELF
SNSLEN:! ;LENGTH OF SENSE CHANNEL PROGRAM
.ORG
;FORMAT OF ENTRIES IN DEVICE LIST
DVLMAX==^D16*^D16 ;SIZE OF ENTIRE DEVL AREA
;(16 KONS TIMES 16 UNITS PER KON)
SASDLD==8 ;SIZE OF DEVICE ADDRESS FIELD
SANDLD==7 ;RIGHTMOST BIT
SASDLO==4 ;SIZE OF OPCODE FIELD
SANDLO==^D11 ;RIGHTMOST BIT
DL.STA==15 ;START DEVICE
DL.WAT==16 ;WAITING FOR DEVICE
DL.TRM==17 ;TERMINATED DEVICE
DL.END==0 ;END OF LIST
SASDLC==^D24 ;SIZE OF ADDRESS FIELD
SANDLC==^D35 ;RIGHTMOST BIT
SUBTTL CHANNEL STATUS WORD FORMATS
;GENERAL STATUS
;BITS 0-1 ARE STATUS TYPE
CSSTYP==2 ;SIZE OF STATUS TYPE FIELD
CSNTYP==^D1 ;RIGHTMOST BIT
S.END==0 ;ENDING STATUS
S.ISEL==1 ;INITIAL SELECTION STATUS
S.ASY==2 ;ASYNCHRONOUS STATUS
S.DUM==3 ;DUMMY STATUS
;BITS 2-7 ARE CONTROL UNIT STATUS
S.SE==1B2 ;SELECT ERROR (NO DEVICE RESPONDED)
S.BIPE==1B3 ;BUS IN PARITY ERROR
S.CTLE==1B4 ;CONTROL ERROR
S.LE==1B6 ;LENGTH ERROR
S.PCI==1B7 ;PCI FLAG
;BITS 8-15 ARE DEVICE STATUS
S.ATN==1B8 ;ATTENTION
S.SM==1B9 ;STATUS MODIFIER
S.CUE==1B10 ;CONTROL UNIT END
S.BUSY==1B11 ;BUSY
S.CE==1B12 ;CHANNEL END
S.DE==1B13 ;DEVICE END
S.UC==1B14 ;UNIT CHECK
S.UE==1B15 ;UNIT EXCEPTION
;BITS 16-23 IDENTIFY THE DEVICE THAT CAUSED THE INTERRUPT
CSSKON==WIDCUA ;SIZE OF CONTROLLER FIELD IN CHANNEL STATUS WORD
CSNKON==^D23-WIDUNA ;RIGHTMOST BIT
CSSUNI==WIDUNA ;SIZE OF UNIT FIELD IN CHANNEL STATUS WORD
CSNUNI==^D23 ;RIGHTMOST BIT
SUBTTL RANDOM HARDWARE SYMBOLS
;DEVICE ADDRESS FIELD IS 8 BITS WIDE. THIS FIELD IS SUB-DIVIDED INTO THE
;CONTROL UNIT ADDRESS FIELD AND THE UNIT ADDRESS FIELD. BY DEFAULT, THE
;WIDTH OF THE CONTROL UNIT ADDRESS FIELD IS 4.
WIDCUA==4 ;WIDTH OF CONTROL UNIT ADDRESS SUB-FIELD
WIDUNA==^D8-WIDCUA ;WIDTH OF UNIT ADDRESS SUB-FIELD
MAXCUS==1_WIDCUA ;MAXIMUM NUMBER OF CONTROL UNITS
MAXUNS==1_WIDUNA ;MAXIMUM NUMBER OF SLAVE UNITS
SUBTTL THE END
END