.TITLE DVCDAT - DISPLAY DEVICE DRIVER DATABASE .IDENT /JKN03.3/ ; ;WRITTEN BY J. NEELAND ;LAST MODIFIED 801102. ; ; Modified for some M+ data structures RJDK OCT 81 ; ; Also modified to break out some of the bit masks ; BYTMOD=<3*4000>+<6*400>+10 ZBYMOD=<3*4000>+<2*400>+10 SBYMOD=<2*4000>+<6*400>+10 WRDMOD=<6*4000>+<6*400>+10 ; .LIST MEB .MCALL QIOW$,EXIT$S,DIR$,GMCR$ .MCALL DCBDF$,UCBDF$,SCBDF$ DCBDF$ ;INVOKE THE DEFINITIONS UCBDF$ SCBDF$ ; ;LOCAL MACRO DEFINITION(S) .MACRO DOAW STG JSR R4,PUTAW .WORD STG .ENDM ;DOAW ; .MACRO DOAB STG JSR R4,PUTAB .WORD STG .ENDM ;DOAB ; .MACRO DOSTG STG JSR R4,PUTSTG .WORD STG .ENDM ;DOSTG ; .MACRO DOBW MASK STG JSR R4,MASKAW .WORD MASK,STG .ENDM ; .MACRO DOBB MASK STG JSR R4,MASKAB .WORD MASK,STG .ENDM ; START:: DIR$ #GMC ;TRY TO GET AN MCR LINE BCS PRMT ;NONE AVAIL...ASK FOR INPUT CMP $DSW,#4 ;IS THERE MORE THAN JUST TASKNAME ON LINE? BLE PRMT ;IF NOT, GO PROMPT INC EXITFL ;INDICATE WE SHOULD EXIT AFTER DISPLAY MOV #GMC+G.MCRB+4,R0 ;GOT IT - SET BUFFER TO BEGINNING OF DVC NAME BR GDVC PRMT: MOV #IO.DET,OUTQIO+Q.IOFN ;SET TO DETACH (CANCEL POSS. CNTL-O) DIR$ #OUTQIO MOV #IO.WVB,OUTQIO+Q.IOFN ;RESTORE TO NORMAL FUNCTION DIR$ #PMTQIO MOV #ANSBUF,R0 ;SET UP TO CLEAR ANSWER BUFFER MOV #8.,R1 ;ONLY 8. CHARS LONG MAX CLRBUF: CLRB (R0)+ SOB R1,CLRBUF DIR$ #ANSQIO CMPB IOSB,#IE.EOF ;DOES USER WANT OUT? BNE 7$ ;IF NO, CONTINUE PROCESSING JMP EXIT ;ELSE IF EOF, YES - GO THERE 7$: MOV #ANSBUF,R0 MOV R0,R1 ;DO LOWER-UPPER CONVERSION IN PLACE MOV #8.,R2 CALL $CVTUC ;MAKE AN UPPER-CASE ANSWER MOV #ANSBUF,R0 ;RESTORE POINTER GDVC: MOV #PARBUF,R3 CALL $FDUCB BCC 8$ ;CONTINUE IF NO ERROR JMP ERROR ;ELSE GO TO ERROR ROUTINE 8$: MOV #IO.ATT,OUTQIO+Q.IOFN ;ATTACH SO CNTL-O WILL STOP ALL OUTPUT DIR$ #OUTQIO MOV #IO.WVB,OUTQIO+Q.IOFN ;RESTORE NORMAL FUNCTION MOV R1,-(SP) ;SAVE UCB ADDRESS MOV R2,-(SP) ;SAVE DCB ADDRESS ALSO MOV R2,R1 ;DO DCB ADDRESS 1ST MOV PC,R2 ;NO ZERO SUPPRESSION MOV #DCBBUF,R0 ;NOW DO THE DCB ADDRESS CALL $CBOMG ;CONVERT TO ASCII MOV 2(SP),R1 ;RETRIEVE UCB ADDRESS MOV #UCBBUF,R0 ;OUTPUT UCB ADDRESS CALL $CBOMG ;CONVERT TO ASCII OCTAL MOV 2(SP),R1 ;RETRIEVE UCB ADDRESS MOV #1,PSEFLG ;SET FLAG FOR PSEUDO DEVICE BIT #DV.PSE,U.CW1(R1) ;IS THIS A PSEUDO DEVICE? BNE 85$ ;SKIP THE SCB STUFF IF YES CLR PSEFLG ;NOT PSEUDO, RESET FLAG MOV U.SCB(R1),R1 ;GET THE CORRESPONDING SCB ADDRESS MOV R1,SCBLOC ;SAVE ADDRESS FOR LATER USE TOO MOV #SCBBUF,R0 ;SET THE OUTPUT POINTER CALL $CBOMG ;CONVERT TO OCTAL MAGNITUDE 85$: MOV #ADRMSG,OUTQIO+Q.IOPL ;SET FOR FIRST MESSAGE SUB #ADRMSG,R0 ;CALCULATE ACTUAL MESSAGE LENGTH MOV R0,OUTQIO+Q.IOPL+2 ;PUT VALUE INTO QIO PARAMETERS DIR$ #OUTQIO MOV (SP)+,R5 ;SAVE A MORE CONVENIENT COPY OF DCB ADDRESS DOAW D$LNK ;OUTPUT D.LNK & D.UCB LOCS DOAW D$UCB CALL PUTADR ;INSERT JUST D.NAM ADDRESS MOV #DNMSTG,R1 ;INSERT ' /' INTO RECORD CALL MOVSTG MOVB (R5)+,(R0)+ ;COPY D.NAM MOVB (R5)+,(R0)+ MOVB #'/,(R0)+ ;TERMINATE NAME W/ ANOTHER SLASH JSR R4,APPLAB ;APPEND LABEL & OUTPUT RECORD .WORD D$NAM CALL PUTADR ;OUTPUT D.UNIT ADDR. MOVB #40,(R0)+ ;PAD W/ SPACE FOR SHORT FIELD MOV #SBYMOD,R2 ;CHANGE MODE TO BYTE MOVB (R5)+,R1 ;GET D.UNIT, LOWEST VALUE BIC #177400,R1 ;MASK OFF POSSIBLE HIGH-ORDER BITS CALL $CBTA ;INSERT THAT MOVB #',,(R0)+ ;SEPARATE W/ A COMMA MOV #SBYMOD,R2 ;USE SAME FORMAT FOR HIGHEST UNIT # JSR R4,PUTAB2 ;JOIN EXISTING CODE TO OUTPUT BYTE & LABEL .WORD D$UNIT DOAW D$UCBL ;OUTPUT D.UCBL TST PSEFLG ;IS THIS A PSEUDO DEVICE? BNE 9$ ;IF YES, THERE'S NO MORE DCB DATA DOAW D$DSP ;OUTPUT D.DSP THRU D.MSK (ALL 9) DOAW D$MSK0 DOAW D$MSK1 DOAW D$MSK2 DOAW D$MSK3 DOAW D$MSK4 DOAW D$MSK5 DOAW D$MSK6 DOAW D$MSK7 BIT #FE.DRV,$FMASK ;IS THERE LOADABLE DRIVER SUPPORT? BEQ 9$ ;IF NOT, SKIP DOAW D$PCB ;ELSE DISPLAY D.PCB LOCATION ;NOW WORK ON UCB DATA 9$: DOSTG UCBLAB ;OUTPUT 'UCB' HEADING MOV (SP),R5 ;NOW MOVE UCB ADDRESS TO R5 TST PSEFLG ;IS THIS A PSEUDO DEVICE? BNE 10$ ;IF YES, NO SPECIAL MULTI-USER LOCS BIT #FE.MUP,$FMASK ;DO WE HAVE MULTI-USER PROTECTION? BEQ 10$ ;IF NOT, SKIP TST -(R5) ;BACK UP TO U.OWN WORD BIT #DV.TTY,U.CW1+2(R5) ;IS THIS A TTY DEVICE? BEQ 95$ ;SKIP IF NOT TST -(R5) ;YES, BACKUP TO U.LUIC .IF DF R$$MPL TST -(R5) ;backup over u.cli BIT #F2.ACN,$FMASK+2 ;system with accounting? BEQ 94$ ; no TST -(R5) ; DOAW U$UAB ; output uab addr 94$: JSR R4,OUTCLI .WORD U$CLI .ENDC JSR R4,OUTUIC ;THEN GO OUTPUT A UIC .WORD U$LUIC ; LABELLED W/ U.LUIC 95$: JSR R4,OUTDEV ;output U.OWN contents .WORD U$OWN 10$: DOAW U$DCB ;DO UCB WORD LOCATIONS U.DCB & U.RED TST -(R5) ;back up CMP R5,2(R5) ;redirected to self? BEQ 12$ ;yes TST (R5)+ JSR R4,OUTDEV .WORD U$RED BR 13$ 12$: TST (R5)+ DOAW U$RED 13$: MOVB (R5),SVUCTL ;SAVE U.CTL FOR LATER TESTING DOBB UCTLTB,U$CTL ;DO BYTE UCB LOCS U.CTL-U.ST2 DOBB USTSTB,U$STS DOAB U$UNIT DOBB UST2TB,U$ST2 MOV (R5),UCW1SV ;save a copy for later uses DOBW UCW1TB,U$CW1 ;DO WORD UCB LOC U.CW1 TST PSEFLG ;THIS A PSEUDO DEVICE? BEQ 11$ ; JMP EXITQ ;IF YES, DONE FOR NOW - GO SEE ABOUT EXITTING 11$: DOAW U$CW2 ;DO LOCS U.CW2-U.BUF DOAW U$CW3 DOAW U$CW4 DOAW U$SCB JSR R4,OUTTSK .WORD U$ATT BIT #DV.TTY,UCW1SV ; is it a terminal? BNE 20$ DOAW U$BUF DOAW ;DO U.BUF+2 (NO STRING) DOAW U$CNT ;DO U.CNT (LAST STD UCB LOC.) .IF DF R$$MPL BIT #DV.DIR!DV.SQD,UCW1SV ; is it a disk or tape BEQ 34$ ;no - skip these JSR R4,OUTTSK .WORD U$ACP DOAW U$VCB ;U.VCB BIT #DV.DIR,UCW1SV; was it a disk BNE 32$ ;skip to disk code DOAW U$SNUM DOAW U$FCDE DOAW U$RPS DOAW U$FPS DOAW U$KRB1 BR 34$ 32$: DOAW U$UMB DOAW U$PRM DOAW .ENDC BR 34$ 20$: DOAW U$TUX DOAW U$TSTA DOAW DOAW DOAW U$TTAB JSR R4,OUTUIC ;U.DUIC .WORD U$UIC 34$: ;NOW DO SCB DATA MOV SCBLOC,R5 ;RETRIEVE SAVED SCB ADDRESS DOSTG SCBLAB ;OUTPUT HEADING .IF NDF R$$MPL BITB #SP.LOG,S.PRI(R5) ;DOES THIS DEVICE SUPPORT ERROR-LOGGING? BEQ 35$ ;SKIP IF NOT SUB #6,R5 ;YES, BACK UP POINTER TO NEW START OF SCB DOAB S$RCNT ;THEN DO S.RCNT-S.BMSK DOAB S$ROFF DOAW S$BMSV DOAW S$BMSK 35$: DOAW S$LHD ;DO S.LHD-S.FRK DOAW ;2ND WORD IS UNLABELLED DOAB S$PRI DOAB S$VCT DOAB S$CTM DOAB S$ITM DOAB S$CON DOAB S$STS DOAW S$CSR DOAW S$PKT DOAW S$FRK DOAW ;FORK BLOCK HAS AT LEAST 4 WORDS DOAW DOAW BIT #FE.DRV,$FMASK ;DO WE HAVE LOADABLE DRIVER SUPPORT? BEQ 40$ ;SKIP IF NOT DOAW ;IF YES, THERE'S 1 MORE WORD 40$: BIT #FE.EXT,$FMASK ;DO WE HAVE TO WORRY ABOUT UMR SUPPORT? BEQ 45$ ;SKIP IF NO BITB #UC.NPR,SVUCTL ;IS THIS AN NPR DEVICE? BEQ 45$ ;SKIP IF NO DOAW S$MPR ;IF YES, DISPLAY UMR CONTROL BLOCK DOAW ; (IT'S 6 WORDS LONG) DOAW DOAW DOAW DOAW 45$: ;REF. LABEL .IFF DOAW S$LHD ;DO S.LHD-S.FRK DOAW ;2ND WORD IS UNLABELLED BIT #F2.MP,$FMASK+2 ;IF MP system then there is a URM here BEQ 51$ ; no - skip DOAW 51$: DOAW S$FRK DOAW ;FORK BLOCK HAS AT LEAST 4 WORDS DOAW DOAW BIT #FE.DRV,$FMASK ;DO WE HAVE LOADABLE DRIVER SUPPORT? BEQ 52$ ;SKIP IF NOT DOAW S$KS5 ;IF YES, THERE'S 1 MORE WORD 52$: DOAW S$PKT DOAB S$CTM DOAB S$ITM DOAB S$STS DOBB SST3TB,S$ST3 DOBW SST2TB,S$ST2 MOV (R5),KRBLOC ;ASSUME THERE WILL BE A KRB DOAW S$KRB DOAB S$RCNT DOAB S$ROFF DOAW S$EMB DOAW S$KTB MOV KRBLOC,R5 BEQ EXITQ ;IF EQ, NO KRB DOSTG KRBLAB ;MARK KRB SUB #10,R5 DOAW K$PRM DOAB K$PRI DOAB K$VCT DOAB K$CON DOAB K$IOC DOBW KSTSTB,K$STS DOAW K$CSR DOAW K$OFF DOAB K$HPU DOAB DOAW K$OWN DOAW K$CRQ DOAW DOAW K$URM DOAW K$FRK .ENDC EXITQ: TST EXITFL ;SHOULD WE EXIT? BNE EXIT ;YES IF FLAG SET JMP PRMT ;IF NOT, GO PROMPT AGAIN EXIT: EXIT$S ; ERROR: TST R3 ;WHICH ERROR? BNE NTFND MOV #SYNMSG,OUTQIO+Q.IOPL MOV #SYNSIZ,OUTQIO+Q.IOPL+2 BR OUTSND ; NTFND: MOV #NTFMSG,OUTQIO+Q.IOPL MOV #NTFSIZ,OUTQIO+Q.IOPL+2 OUTSND: DIR$ #OUTQIO ;OUTPUT ERROR MESSAGE BR EXITQ ;GO SEE WHETHER TO EXIT OR PROMPT AGAIN ;+ ; SUBROUTINE(S) ;- OUTUIC: CALL PUTADR ;OUTPUT ADDRESS FIRST MOV #ZBYMOD,R2 ;OUTPUT DATA IN BYTE MODE, NO ZRO SUP. MOVB 1(R5),R1 ;GET GROUP PART OF UIC 1ST BIC #177400,R1 ;MASK OFF POSSIBLE HIGH-ORDER BITS CALL $CBTA ;INSERT THAT IN RECORD MOVB #',,(R0)+ ;SEPARATE PARTS W/ A COMMA MOVB (R5),R1 ;GET MEMBER PART OF UIC BIC #177400,R1 ;AGAIN MASK OFF POSS. HIGH-ORDER BITS TST (R5)+ ;ADVANCE ADDRESS MOV #ZBYMOD,R2 ;AGAIN USE BYTE MODE, NO ZERO SUP. CALLR PUTDAT ;THEN JOIN EXISTING CODE TO FINISH OUTPUT ; PUTAB: CALL PUTADR ;OUTPUT ADDRESS FIRST MOVB #40,(R0)+ ;PAD W/ ' ' TO ALIGN W/ WORD DATA MOVB #40,(R0)+ MOVB #40,(R0)+ MOV #BYTMOD,R2 ;NOW SET FOR BYTE MODE PUTAB2: MOVB (R5)+,R1 ;GET THE DATA BYTE BIC #177400,R1 ;MASK OFF POSSIBLE HIGH-ORDER BITS BR PUTDAT ;JOIN COMMON CODE FOR PUTTING WORDS ; PUTD2: MOVB #40,(R0)+ MOVB #40,(r0)+ MOVB #40,(R0)+ MOVB #'.,(R0)+ MOVB #'-,(R0)+ MOVB #'2,(R0)+ BR APPLAB PUTAW: CALL PUTADR ;OUTPUT ADDRESS FIRST MOV (R5)+,R1 ;GET THE DATA WORD MOV R5,R2 ;Get a copy of R5 SUB #4,R2 ; - as the word before the current value CMP R2,R1 ; was it .-2 BEQ PUTD2 MOV #WRDMOD,R2 ;SET TO OUTPUT IN WORD FORMAT PUTDAT: CALL $CBTA ;CONVERT DATA TO ASCII APPLAB: MOV (R4)+,R1 ;GET ADDRESS OF STRING TO COPY BEQ PRTREC ;SKIP LABEL CODE IF NO LABEL ADDRESS MOVB #11,(R0)+ ;INSERT TAB TO SEPARTE LABEL FROM DATA MOVB #';,(R0)+ ;INSERT TRAILING SEMI-COLON TO SEPARATE LABEL CPYSTG: CALL MOVSTG ;COPY TO BUFFER PRTREC: SUB #OUTBUF,R0 ;CALC. LENGTH OF OUTPUT STRING MOV R0,OUTQIO+Q.IOPL+2 ;SET INTO QIO MOV #OUTBUF,OUTQIO+Q.IOPL ;SET PROPER BUFFER START ADDRESS DIR$ #OUTQIO ;PRINT RECORD RTS R4 ;RETURN AFTER IN-LINE PARAMETER ; PUTSTG: MOV #OUTBUF,R0 ;SET UP BEGINNING OF BUFFER APPSTG: MOV (R4)+,R1 ;GET ADDRESS OF STRING BR CPYSTG ; THEN JOIN CODE FOR APPENDING STRINGS ; PUTADR: MOV #OUTBUF,R0 ;SETUP TO START AT BEGINNING OF BUFFER MOV #WRDMOD,R2 ;ADDRESS IS WORD FORMAT MOV R5,R1 ;R5 HAS ADDRESS CALL $CBTA ;CONVERT TO ASCII MOVB #':,(R0)+ ;SEPARATE ADDRESS FROM FOLLOWING DATA W/ ':' MOVB #11,(R0)+ ; AND A TAB RETURN ;THAT'S IT FOR THIS FIELD ; MOVSTG: TSTB (R1) ;ARE WE AT THE TRAILING NULL? BEQ 10$ ;EXIT IF SO MOVB (R1)+,(R0)+ ;ELSE COPY BYTE TO OUTPUT BUFFER BR MOVSTG ; AND TRY THE NEXT ONE 10$: RETURN ;DONE COPYING ;+ ; ; print out bit masks ; ;- MASKAB: CALL PUTADR CLR R1 BISB (R5)+,R1 BR MASKAA MASKAW: CALL PUTADR MOV (R5)+,R1 MASKAA: MOV (R4)+,R3 ;get address of masks TST R1 BEQ 20$ 1$: CLC ROR R1 ;rotate low bit into C BCS 3$ 2$: TSTB (R3)+ ;skip over string BNE 2$ ;all skipped? BR 10$ 3$: MOVB (R3)+,(R0)+ ;copy string BNE 3$ DEC R0 ;back over nil TST R1 ; BEQ 19$ ;skip if at end MOVB #'!,(R0)+ ; 10$: TST R1 BNE 1$ ;back if more bits 19$: JMP APPLAB 20$: MOV #WRDMOD,R2 JMP PUTDAT ;+ ; special formats for Tasks, ACPs ;- OUTTSK: CALL PUTADR MOV (R5)+,R1 BEQ OUTWRD MOV R1,R3 MOV T.NAM(R3),R1 CALL $C5TA MOV T.NAM+2(R3),R1 CALL $C5TA JMP APPLAB OUTWRD: MOV #WRDMOD,R2 JMP PUTDAT OUTCLI: CALL PUTADR MOV (R5)+,R1 BEQ OUTWRD ADD #4,R1 MOVB #40,(R0)+ MOV #4,R2 MOVb #40,(R0)+ 1$: MOVB (R1)+,(R0)+ SOB R2,1$ JMP APPLAB ;+ ; - output related device - given UCB address/0 ;- OUTDEV: CALL PUTADR MOV (R5)+,R1 BEQ OUTWRD ;Nil - just output it BIT #1,R1 BNE OUTWRD ;save from odd address traps MOV R1,R3 CALL $FMTDV JMP APPLAB ;+ ;DATA AREA ;- OUTQIO: QIOW$ IO.WVB,2,2,,,,<,,40> PMTQIO: QIOW$ IO.WVB,1,1,,,, ANSQIO: QIOW$ IO.RVB,1,1,,IOSB,, GMC: GMCR$ EXITFL: .WORD 0 ;EXIT AFTER OUTPUT - INIT. TO NO PSEFLG: .WORD 0 ;FLAG SET IF DOING PSEUDO DEVICE IOSB: .BLKW 2 ;I/O STATUS FOR READ FROM TERMINAL PARBUF: .BLKW 2 ;BUFFER FOR $FDUCB SCBLOC: .BLKW 1 ;ADDRESS OF SCB UCW1SV: .BLKW 1 ;Contents of U.CW1(ucb) .IF DF R$$MPL KRBLOC: .WORD 0 .ENDC OUTBUF: ;SHARE W/ ANSBUF ANSBUF: .BLKB 80. ;BUFFER FOR DESIRED DEVICE INPUT TEXT SVUCTL: .BLKB 1 ;STORAGE OF U.CTL FOR LATER TESTING .ENABL LC .NLIST BEX ;DON'T LIST ALL THE TEXT STUFF DNMSTG: .ASCIZ # /# DVCMSG: .ASCII /DVC>/ DVCSIZ=.-DVCMSG SYNMSG: .ASCII /Syntax Error!/ SYNSIZ=.-SYNMSG NTFMSG: .ASCII /NO such physical device!/ NTFSIZ=.-NTFMSG ADRMSG: .ASCII /DCB address is: / DCBBUF: .BLKB 6 .ASCII /, UCB address is: / UCBBUF: .BLKB 6 .ASCII /, SCB address is: / SCBBUF: .BLKB 6 .ASCII <15><12>/ADDR. VALUE LABEL/<15><12> .ASCII /----- ----- -----/<15><12> .ASCII /DCB:/ ADRSIZ=.-ADRMSG D$LNK: .ASCIZ /D.LNK/ D$UCB: .ASCIZ /D.UCB/ D$NAM: .ASCIZ /D.NAM/ D$UNIT: .ASCIZ /D.UNIT/ D$UCBL: .ASCIZ /D.UCBL/ D$DSP: .ASCIZ /D.DSP/ D$MSK0: .ASCIZ /D.MSK - LEGAL 0-15/ D$MSK1: .ASCIZ / - CNTRL 0-15/ D$MSK2: .ASCIZ / - NO-OP 0-15/ D$MSK3: .ASCIZ / - ACP 0-15/ D$MSK4: .ASCIZ / - LEGAL 16-31/ D$MSK5: .ASCIZ / - CNTRL 16-31/ D$MSK6: .ASCIZ / - NO-OP 16-31/ D$MSK7: .ASCIZ / - ACP 16-31/ D$PCB: .ASCIZ /D.PCB/ UCBLAB: .ASCIZ /UCB:/ U$LUIC: .ASCIZ /U.LUIC/ U$OWN: .ASCIZ /U.OWN/ U$DCB: .ASCIZ /U.DCB/ U$RED: .ASCIZ /U.RED/ U$CTL: .ASCIZ /U.CTL/ U$STS: .ASCIZ /U.STS/ U$UNIT: .ASCIZ /U.UNIT/ U$ST2: .ASCIZ /U.ST2/ U$CW1: .ASCIZ /U.CW1/ U$CW2: .ASCIZ /U.CW2/ U$CW3: .ASCIZ /U.CW3/ U$CW4: .ASCIZ /U.CW4/ U$SCB: .ASCIZ /U.SCB/ U$ATT: .ASCIZ /U.ATT/ U$BUF: .ASCIZ /U.BUF/ U$CNT: .ASCIZ /U.CNT/ SCBLAB: .ASCIZ /SCB:/ S$RCNT: .ASCIZ /S.RCNT/ S$ROFF: .ASCIZ /S.ROFF/ S$BMSV: .ASCIZ /S.BMSV/ S$BMSK: .ASCIZ /S.BMSK/ S$LHD: .ASCIZ /S.LHD/ S$PRI: .ASCIZ /S.PRI/ S$VCT: .ASCIZ /S.VCT/ S$CTM: .ASCIZ /S.CTM/ S$ITM: .ASCIZ /S.ITM/ S$CON: .ASCIZ /S.CON/ S$STS: .ASCIZ /S.STS/ S$CSR: .ASCIZ /S.CSR/ S$PKT: .ASCIZ /S.PKT/ S$FRK: .ASCIZ /S.FRK/ S$MPR: .ASCIZ /S.MPR/ .IF DF R$$MPL U$CLI: .ASCIZ /U.CLI/ U$UAB: .ASCIZ /U.UAB/ U$ACP: .ASCIZ /U.ACP/ U$VCB: .ASCIZ /U.VCB/ U$SNUM: .ASCIZ /U.SNUM/ U$FCDE: .ASCIZ /U.FCDE/ U$RPS: .ASCIZ /U.RPS/ U$FPS: .ASCIZ /U.FPS/ U$KRB1: .ASCIZ /U.KRB1/ U$UMB: .ASCIZ /U.UMB/ U$PRM: .ASCIZ /U.PRM/ U$TUX: .ASCIZ /U.TUX/ U$TSTA: .ASCIZ /U.TSTA/ U$TTAB: .ASCIZ /U.TTAB/ U$UIC: .ASCIZ /U.UIC/ S$ST2: .ASCIZ /S.ST2/ S$ST3: .ASCIZ /S.ST3/ S$KS5: .ASCIZ /S.KS5/ S$KRB: .ASCIZ /S.KRB/ S$EMB: .ASCIZ /S.EMB/ S$KTB: .ASCIZ /S.KTB/ KRBLAB: .ASCIZ /KRB:/ K$PRM: .ASCIZ /K.PRM/ K$PRI: .ASCIZ /K.PRI/ K$VCT: .ASCIZ /K.VCT/ K$CON: .ASCIZ /K.CON/ K$IOC: .ASCIZ /K.IOC/ K$STS: .ASCIZ /K.STS/ K$CSR: .ASCIZ /K.CSR/ K$OFF: .ASCIZ /K.OFF/ K$HPU: .ASCIZ /K.HPU/ K$OWN: .ASCIZ /K.OWN/ K$CRQ: .ASCIZ /K.CRQ/ K$URM: .ASCIZ /K.URM/ K$FRK: .ASCIZ /K.FRK/ UST2TB: .ASCIZ /US.OFL/ .ASCIZ /US.RED/ .ASCIZ /US.PUB/ .ASCIZ /US.UMD/ .ASCIZ /US.PDF/ .ASCIZ /40/ .ASCIZ /100/ .ASCIZ /200/ USTSTB: .ASCIZ /US.VV/ .ASCIZ /US.SPU/ .ASCIZ /US.LAB/ .ASCIZ /US.WCK/ .ASCIZ /US.MDM/ .ASCIZ /US.FOR/ .ASCIZ /US.MNT/ .ASCIZ /US.BSY/ UCTLTB: .ASCIZ /1/ .ASCIZ /2/ .ASCIZ /UC.KIL/ .ASCIZ /UC.ATT/ .ASCIZ /UC.PWF/ .ASCIZ /UC.QUE/ .ASCIZ /UC.NPR/ .ASCIZ /UC.ALG/ UCW1TB: .ASCIZ /DV.REC/ .ASCIZ /DV.CCL/ .ASCIZ /DV.TTY/ .ASCIZ /DV.DIR/ .ASCIZ /DV.SDI/ .ASCIZ /DV.SQD/ .ASCIZ /DV.MXD/ .ASCIZ /DV.UMD/ .ASCIZ /DV.MBC/ .ASCIZ /DV.SWL/ .ASCIZ /DV.ISP/ .ASCIZ /DV.OSP/ .ASCIZ /DV.PSE/ .ASCIZ /DV.COM/ .ASCIZ /DV.F11/ .ASCIZ /DV.MNT/ SST3TB: .ASCIZ /S3.DRL/ .ASCIZ /S3.NRL/ .ASCIZ /S3.SIP/ .ASCIZ /S3.ATN/ .ASCIZ /S3.SLV/ .ASCIZ /40/ .ASCIZ /100/ .ASCIZ /200/ SST2TB: .ASCIZ /S2.EIP/ .ASCIZ /S2.ENB/ .ASCIZ /S2.LOG/ .ASCIZ /S2.MAD/ .ASCIZ /20/ .ASCIZ /S2.LDS/ .ASCIZ /100/ .ASCIZ /S2.CON/ .ASCIZ /400/ .ASCIZ /1000/ .ASCIZ /S2.ACT/ .ASCIZ /4000/ .ASCIZ /10000/ .ASCIZ /20000/ .ASCIZ /40000/ .ASCIZ /100000/ KSTSTB: .ASCIZ /KS.OFL/ .ASCIZ /KS.MOF/ .ASCIZ /KS.UOP/ .ASCIZ /KS.MBC/ .ASCIZ /KS.SDX/ .ASCIZ /KS.POE/ .ASCIZ /KS.UCB/ .ASCIZ /KS.DIP/ .ASCIZ /KS.PDF/ .ASCIZ /1000/ .ASCIZ /2000/ .ASCIZ /4000/ .ASCIZ /10000/ .ASCIZ /20000/ .ASCIZ /40000/ .ASCIZ /100000/ .ENDC .EVEN .LIST BEX ;OK FOR FULL EXPANSION NOW ; .END START