Trailing-Edge
-
PDP-10 Archives
-
bb-bt99e-bb
-
qsrmda.c10
There are 2 other files named qsrmda.c10 in the archive. Click here to see a list.
REP 50/49 ;10C1
JRST [SETZM P2 ;YES,,ZAP VSL QUEUE PTR
JRST MNTV.8 ] ; AND EXIT
WIT
;**;[1225] Change code at MNTV.1+12L. /LWS
JRST [MOVE S1,P4 ;[1225] GET PRIMARY VSL ADDRESS
PUSHJ P,TELOPR ;[1225] TELL OPR OF MOUNT
$RETF] ;[1225] RETURN FALSE
REP 44/86 ;10C2
PUSHJ P,FNDDSK ;YES,,GO FIND IT IN OUR DATA BASE
JUMPF ALIA.9 ;NOT FOUND,,THATS AN ERROR
SKIPE .VLPTR(S1) ;ANY POINTERS SET UP ???
JRST ALIA.9 ;YES,,THATS AN ERROR
WIT
;**;[1227] Change 1 line and delete 2 lines at ALIA.3+2L. /LWS
PUSHJ P,FNDVOL ;[1227] YES,,GO FIND IT IN OUR DATA BASE
JUMPF ALIA.9 ;NOT FOUND,,THATS AN ERROR
REP 17/87 ;10C3
JRST ALIA.6 ;YES
LOAD S2,.VLFLG(S1),VL.STA ;GET STR STATUS
CAIN S2,%STAMN ;MOUNTED?
JRST ALIA.6 ;THEN NOTHING TO DO
MOVEI S2,.OTMNT ;GET OBJECT TYPE MOUNT
MOVEM S2,CATOBJ+OBJ.TY ;SAVE IT
MOVE S2,.VLUCB(S1) ;GET UCB ADDR
WIT
;**;[1227] Change 2 lines at ALIA.5+7L. /LWS
JRST ALI.6D ;[1227] YES
LOAD S2,.VLFLG(S1),VL.STA ;GET STR STATUS
CAIN S2,%STAMN ;MOUNTED?
JRST ALI.6D ;[1227] YES, CONTINUE. D$GENC WILL BOMB
MOVEI S2,.OTMNT ;GET OBJECT TYPE MOUNT
MOVEM S2,CATOBJ+OBJ.TY ;SAVE IT
SKIPE S2,.VLUCB(S1) ;[1227] GET UCB ADDR
REP 27/87 ;10C4
$WTO (<Deleting duplicate volume>,<Unit ^W/.VLVID(S1)/ for structure ^W/.VLNAM(S1)/>,CATOBJ,<$WTFLG(WT.SJI)>)
PUSHJ P,DELVOL ;DELETE THE OLD ONE
ALIA.6: EXCH P2,.VLNAM(P1) ;SWAP ALIAS NAME WITH OLD NAME
WIT
LOAD S2,.VLOWN(S1),VL.CNT ;[1227] GET REQUESTOR COUNT
JUMPN S2,ALIA.6 ;[1227] IF REQUESTORS EXIST, CANT DELETE
SKIPE CATOBJ+OBJ.UN ;[1227] IF NO UCB, DON'T USE OBJECT BLK
$WTO (<Deleting duplicate volume>,<Unit ^W/.VLVID(S1)/ for structure ^W/.VLNAM(S1)/>,CATOBJ,<$WTFLG(WT.SJI)>)
SKIPN CATOBJ+OBJ.UN ;[1227]
$WTO (<Deleting duplicate volume>,<Unit ^W/.VLVID(S1)/ for structure ^W/.VLNAM(S1)/>,,<$WTFLG(WT.SJI)>) ;[1227]
PUSHJ P,DELVOL ;DELETE THE OLD ONE
ALIA.6: LOAD S1,.VLOWN(P1),VL.CNT ;[1227] SEE IF ANY REQUESTORS
JUMPE S1,ALI.6D ;[1227] IF NONE, CONTINUE
$SAVE <T1,T2> ;[1227] SAVE T1 & T2
SETZM T1 ;[1227] INDICATE NO PREVIOUS VOL BLOCK
MOVE T2,P1 ;[1227] GET PRIMARY (OLD) VOL BLOCK ADDR
ALI.6A: PUSHJ P,CREVOL ;[1227] CREATE A NEW VOL BLOCK
MOVE S2,S1 ;[1227] COPY NEW VOL ADDR
HRL S1,T2 ;[1227] COPY OLD VOL TO NEW VOL
BLT S1,.VLVSL-1(S2) ;[1227] EXCEPT FOR VSL POINTERS
SETZM .VLPTR(S2) ;[1227] CLEAR MULTIPLE VOL BLOCK PTRS
SKIPN T1 ;[1227] SAVE PRIMARY VOL ADDR ONLY ONCE
PUSH P,S2 ;[1227]
MOVE T1,S2 ;[1227] GET NEW VOL BLOCK ADDR IN T1
MOVX S1,VL.CNT ;[1227] CLEAR REQUEST COUNT IN VOL COPY
ANDCAM S1,.VLOWN(T1) ;[1227]
MOVX S1,VL.RSN ;[1227] CLEAR RESOURCE NUMBER!
ANDCAM S1,.VLFLG(T1) ;[1227]
SETZM .VLMTM(T1) ;[1227] CLEAR MOUNT TIME
SKIPE S1,.VLUCB(T2) ;[1227] GET POINTER TO UCB
MOVEM T1,.UCBVL(S1) ;[1227] LINK UCB TO NEW VOL
MOVEM S1,.VLUCB(T1) ;[1227] LINK NEW VOL TO UCB
SETZM .VLUCB(T2) ;[1227] UNLINK OLD VOL FROM UCB
CAME T1,(P) ;[1227] NEW PRIMARY VOL BLOCK?
JRST ALI.6C ;[1227] NO, DON'T GET NEW RESOURCE
MOVE S1,T1 ;[1227] YES, GET NEW VOL BLOCK ADDRESS
EXCH P2,.VLNAM(S1) ;[1227] USE ALIAS NAME FOR NEW RESOURCE
PUSHJ P,D$SVRS ;[1227] GET A RESOURCE NUMBER
ALI.6C: LOAD T2,.VLPTR(T2),VL.NXT ;[1227] GET POINTER TO NEXT VOL BLOCK
JUMPN T2,ALI.6A ;[1227] IF ANOTHER VOL, LOOP.
POP P,P1 ;[1227] GET NEW PRIMARY VOL ADDR
TRNA ;[1227] ALREADY EXCH'D NAMES
ALI.6D: EXCH P2,.VLNAM(P1) ;[1227] SWAP ALIAS NAME WITH OLD NAME
INS 44/87 ;10C5
MOVE S1,P1 ;[1227] GET PRIMARY VOL ADDR
PUSHJ P,DELVOL ;[1227] DELETE VOL BLOCKS IF NO REQUESTORS
INS 2/108 ;10C6
; FNDVOL - ROUTINE TO FIND A VOL BLOCK LINKED TO A UCB (SPINNING)
REP 8/108 ;10C7
FNDDSK: PUSHJ P,.SAVE1 ;SAVE P1 FOR A MINUTE
MOVE P1,S1 ;SAVE THE VOL ID WE ARE LOOKING FOR
WIT
FNDVOL: TDZA S2,S2 ;[1227] INDICATE ENTRY POINT
FNDDSK: SETOM S2 ;[1227]
PUSHJ P,.SAVE2 ;[1227] SAVE P1 & P2 FOR A MINUTE
DMOVE P1,S1 ;[1227] SAVE THE VOL ID WE ARE LOOKING FOR
REP 19/108 ;10C8
MOVE S1,S2 ;RETURN THE VOL BLOCK ADDRESS IN S1
WIT
;**;[1227] Change code at FNDD.2+3L. /LWS
JUMPL P2,FNDD.3 ;[1227] IF FNDDSK, JUST RETURN VOL ADDR
SKIPN .VLUCB(S2) ;[1227] ELSE SEE IF VOL IS LINKED TO UCB
JRST FNDD.1 ;[1227] IT'S NOT, KEEP LOOKING
FNDD.3: MOVE S1,S2 ;[1227] RETURN THE VOL BLOCK ADDRESS IN S1
REP 8/172 ;10C9
PUSHJ P,FNDDSK ;FIND IT IN OUR DATA BASE
WIT
;**;[1227] Change 1 line at SNDB.1+16L. /LWS
PUSHJ P,FNDVOL ;[1227] FIND IT IN OUR DATA BASE
SUM 53020