Trailing-Edge
-
PDP-10 Archives
-
bb-bt99e-bb
-
mount.c08
There is 1 other file named mount.c08 in the archive. Click here to see a list.
REP 2/1 ;08C1
SUBTTL P. Taylor 1-Jan-82
WIT
SUBTTL P. Taylor/PJT/LWS 29-Feb-84
REP 39/1 ;08C2
MOUEDT==:0052 ;EDIT LEVEL
WIT
MOUEDT==:0056 ;EDIT LEVEL
INS 113/3 ;08C3
0053 Add code to MNTPAR in MOUN25 and MOUN30 to support the
ENABLE/DISABLE queue functionality for disks and tapes.
NO SPR 21-SEP-83/CTK
0054 Remove edit 53 because it broke logical names.
NO SPR 20-FEB-84/CTK
0055 Add code to use a semi-unique ACK code for mount requests send
to QUASAR.
Requires QUASAR edit #1173
SPR 10-34182 4-Feb-84 /LWS
0056 Make MOUNT /CHECK and MOUNT <CR><LF> work the way they should.
29-Feb-84 /LWS
REP 5/8 ;08C4
TXNE F,FL.CHK ;Was /CHECK specified?
WIT
;**;[56] Change 1 line at ALLOC+2L. /LWS
TXNE F,FL.CHK+FL.LST ;[56] Was /CHECK or implied /LIST specified?
REP 13/8 ;08C5
TXNE F,FL.CHK ;Was /CHECK specified?
WIT
TXNE F,FL.CHK+FL.LST ;[56] Was /CHECK or implied /LIST specified?
REP 22/15 ;08C6
CHKQ20: MOVE S1,.OARGC(P1) ;Get argument count
CAIL S1,2 ;Was user argument specified?
JRST CHKQ30 ;Yes..onward to show queues
repeat 0,< ;Show all for now
MOVE S2,[2,,.LSUSR] ;No..then default is 'our' queues
WIT
;**;[56] Delete 2 lines and insert 1 at CHKQ20+0L. /LWS
CHKQ20: TXNN F,FL.CHK ;[56] Was MOUNT /CHECK typed?
JRST CHKQ30 ;No...onward to show queues
MOVE S2,[2,,.LSUSR] ;Yes..then default is 'our' queues
DEL 32/15 ;08C7
> ;End REPEAT 0
INS 8/21 ;08C8
;**;[55] Insert 4 lines after SNDQSR+1L. /LWS
LOAD S1,F,FL.NOT ;[55] Get /NOTIFY bit
STORE S1,USRACK,ACK.NT ;[55] Put in our copy of ACK code
MOVE S1,USRACK ;[55] Get ACK code
MOVEM S1,.MSCOD(S2) ;[55] Put in message header
REP 3/22 ;08C9
RCVQSR: $CALL C%BRCV ;Get a message
LOAD S2,MDB.SI(S1),SI.FLG ;Message from a system pid?
JUMPF S2,[$WARN(Message from unknown pid ignored)
JRST RCVQSM] ;Back to get a known message
LOAD S2,MDB.SI(S1),SI.IDX ;Get the system index
CAIE S2,SP.QSR ;From QUASAR?
JRST [$WARN(Message from unkown system component ignored)
JRST RCVQSM] ;Back to get the real message
LOAD S1,MDB.MS(S1),MD.ADR ;Get message address
$CALL INIBLK ;Initialize message parser
JUMPF RCVQSF ;Flush the bumb message
LOAD S2,.MSTYP(S1),MS.TYP ;Get message type
WIT
;**;[55] Rework RCVQSR. /LWS
RCVQSR: $SAVE <P1> ;[55] Save an AC
RCVQS0: $CALL C%BRCV ;[55] Get a message
MOVE P1,S1 ;[55] Save MDB address
LOAD S2,MDB.SI(P1),SI.FLG ;[55] Message from a system pid?
JUMPE S2,RCVWR1 ;[55] Jump if not
LOAD S2,MDB.SI(P1),SI.IDX ;[55] Get the system index
CAIE S2,SP.QSR ;From QUASAR?
JRST RCVWR2 ;[55] No,,go complain
LOAD P1,MDB.MS(P1),MD.ADR ;[55] Get message address
MOVE S1,.MSCOD(P1) ;[55] Get ACK code
$CALL CHKACK ;[55] Go check it out
JUMPF RCVQSM ;[55] Don't want it if FALSE
MOVE S1,P1 ;[55] Get message address in S1
$CALL INIBLK ;Initialize message parser
JUMPF RCVQSF ;Flush the bumb message
LOAD S2,.MSTYP(P1),MS.TYP ;Get message type
REP 36/22 ;08C10
MOVE S1,.MSFLG(S1) ;Get the flags
WIT
MOVE S1,.MSFLG(P1) ;[55] Get the flags
REP 41/22 ;08C11
JRST RCVACK ;Else standard ACK
$CALL C%REL ;Release the message
$RETT
RCVACK: OUTSTR 0(T2) ;Dump the text
WIT
OUTSTR 0(T2) ;[55] Dump the text
TXZE F,FL.MOR ;[55] Look for more ACKs?
JRST RCVQSM ;[55] Yes,,go do it
INS 5/23 ;08C12
;Continued on next page
;Continued from previous page
REP 12/23 ;08C13
RCVQSM: $CALL C%REL ;Release the message
JRST RCVQSR ;Back to get real message
WIT
RCVWR1: $WARN(Message from unknown pid ignored) ;[55]
TRNA ;[55] Skip
RCVWR2: $WARN(Message from unkown system component ignored) ;[55]
RCVQSM: $CALL C%REL ;Release the message
JRST RCVQS0 ;[55] Back to get another messaage
;[55] CHKACK - routine to ACK from newly arrived message to see if
;[55] we should process the message or pitch it.
;[55] ACCEPTS S1/ ACK code to check
;[55] RETURNS FALSE if message should be pitched
;[55] TRUE if message should be processed
;[55] FL.MOR is set/cleared depending on
;[55] contents of ACK as compare to USRACK
CHKACK: TXZ F,FL.MOR ;[55] Assume an exact match
CAMN S1,USRACK ;[55] Is it?
$RETT ;[55] Yes,,'tis what we want to see
$SAVE <T1> ;[55] No,,we'll have to check further
MOVE T1,S1 ;[55] Copy ACK code
LOAD S1,T1,ACK.JB ;[55] Get job # field from msg ACK
LOAD S2,USRACK,ACK.JB ;[55] Get same from original ACK
CAME S1,S2 ;[55] Match?
$RETF ;[55] No,,can't use it
LOAD S1,T1,ACK.UT ;[55] Yes,,get UDT part of msg ACK
LOAD S2,USRACK,ACK.UT ;[55] Get the same from USRACK
CAMLE S1,S2 ;[55] Possibly ACK from previous mount?
$RETF ;[55] No,,could be imposters
TXNN T1,ACK.NT ;[55] Yes. /NOTIFY in previous mount?
$RETF ;[55] No,,don't process this ACK
TXO F,FL.MOR ;[55] Yes,,process this ACK and more...
$RETT ;[55] Return TRUE!
INS 9/25 ;08C14
;**;[55] Add code in JOBPRM for user ACK code. /LWS
STORE S2,USRACK,ACK.JB ;[55] Store in ACK also
INS 12/25 ;08C15
$CALL I%NOW ;[55] Get UDT
STORE S1,USRACK,ACK.UT ;[55] Store part we want in ACK code
INS 25/29 ;08C16
$DATA USRACK,1 ;[55] ACK for messages
SUM 39322