Trailing-Edge
-
PDP-10 Archives
-
bb-jr93i-bb
-
ibmspl.c08
There are 13 other files named ibmspl.c08 in the archive. Click here to see a list.
REP 21/3 ;08C1
XP IBMEDT, 351 ; Edit level
WIT
XP IBMEDT, 361 ; Edit level
REP 39/3 ;08C2
IFN <IBMMIN>,<VOUTX (IBMSPL - GALAXY IBM emulation spooler,\IBMVER,\"<"A"+IBMMIN>,\IBMEDT)>
WIT
IFN <IBMMIN>,<VOUTX (IBMSPL - GALAXY IBM emulation spooler,\IBMVER,\"<"@"+IBMMIN>,\IBMEDT)>
INS 446/4 ;08C3
4(352) 08-Nov-83 GKN SPR 20-19594 NDLESS flag is useless.
4(353) 10-Nov-83 GKN SPR 10-34279 Don't make FACT file entries if
FTDEBUG is turned on.
4(354) 11-Nov-83 GKN SPR 10-34280 Fix possible ILMs with incorrect
LOAD S1,T.QNM (should be LOAD S1,,T.QNM).
4(355) 16-Dec-83 GKN Fix part of the problem with ?Illegal address
in UUO executing QUEUE. UUOs. IBMSPL feeds
the monitor a bogus string pointer in the
system text field.
4(356) 16-Jan-84 GKN SPR 10-34449. Security problem. IBMSPL doesn't
bother to use "in your behalf" and users are
thus able to submit files to which they have no
access. Both TOPS-10 and TOPS-20.
4(357) 23-Jan-84 GKN SPR 10-34425. Fix off-by-1 problem in the VOUTX
macro (caused the wrong minor version to be
printed at compile time).
4(360) 16-Mar-84 TPW remove edit 351. Put test for line up back
before test for line gone away.
4(361) 18-Mar-84 TPW Supplements edit 353. Don't allow accounting
to be done if DEBUGW is non-zero.
REP 47/8 ;08C4
NDLESS==1B20 ; this input record has no line feed
WIT
;[352] NDLESS==1B20 ; this input record has no line feed
INS 56/12 ;08C5
; File open block (long form)
FOB: BLOCK FOB.SZ ;[356] Reserve space for a long-form FOB
REP 60/12 ;08C6
TOPS10 <SIXBIT /D60/> ; use ersatx device
WIT
TOPS10 <SIXBIT /D60/> ; use ersatz device
REP 33/48 ;08C7
TXNE S1,LGA ; line gone away?
TXNE S1,L.UP ; no, line still up?
JRST CTSFA0 ; yes, it's dead clean up after it
$DSCHD ,^D4*3 ; yes, wait for the host to kill it(maybe)
WIT
TXNE S1,L.UP ; [360] line still up?
TXNE S1,LGA ; [360] yes,hard error?
JRST CTSFA0 ; [360] it's dead clean up after it
$DSCHD ,^D4*3 ; wait for the host to kill it(maybe)
REP 35/87 ;08C8
JRST GETDR4 ; full
WIT
JRST GETDRT ; full
REP 56/87 ;08C9
JRST GETDRT
GETDR4: TXOA S,NDLESS ; this is an endless record
GETDRT: TXZ S,NDLESS ; terminate record
SETZ S2, ; Get a null byte to store
WIT
;[352] Deleted 3 lines, NDLESS flag unused. SPR 20-19594. GKN
GETDRT: SETZ S2, ; Get a null byte to store
REP 32/88 ;08C10
JRST GETIR4 ; Yes .. end rec'd on current character
WIT
JRST GETIRT ; Yes .. end rec'd on current character
REP 103/88 ;08C11
JRST GETIRT
GETIR4: TXOA S,NDLESS ;endless record
GETIRT: TXZ S,NDLESS ;normal return
SKIPLE T%DIC ; check if buffer is empty
WIT
;[352] Deleted 3 lines, NDLESS flag not used. SPR 20-19594. GKN
GETIRT: SKIPLE T%DIC ; check if buffer is empty
REP 14/119 ;08C12
MOVEI S1,2
MOVEI S2,P3
$CALL F%IOPN
JUMPF @.POPJ
INPOP0: MOVEM S1,P4
SETZM T$DIC(TK)
$RET
WIT
MOVEI S1,FOB.SZ ;[356] Zero
MOVEI S2,FOB ;[356] the
$CALL .ZCHNK ;[356] FOB
DMOVEM P3,FOB+FOB.FD ;[356] Store FD address & byte size, etc.
LOAD P4,.EQSEQ(J),EQ.PRV ;[356] Grab user's privs
JUMPN P4,INPO.1 ;[356] Is user a wheel or [1,2] ?
LOAD P4,.FPINF(P2),FP.SPL ;[356] Also check to see if
JUMPN P4,INPO.1 ;[356] this is spooled
TOPS20 <
HRROI P4,.EQCON(J) ;[356] Get connected directory
MOVEM P4,FOB+FOB.CD ;[356] And stash it
HRROI P4,.EQOWN(J) ;[356] Create a pointer to the user name
>
TOPS10 <
MOVE P4,.EQOID(J) ;[356] Get PPN
>
MOVEM P4,FOB+FOB.US ;[356] Stash PPN or user name
INPO.1: $CALL F%IOPN ;Open the file
JUMPF @.POPJ ;Failed
INPOP0: MOVEM S1,P4 ;Save IFN
SETZM T$DIC(TK) ;Zero disk file byte count
$RET ;Done
REP 9/128 ;08C13
IACTND: LOAD S2,.EQSEQ(J),EQ.IAS ;GET THE INVALID ACCT STRING BIT
WIT
IACTND: skipn s2,debugw ;[361] Check if debug switch on.
LOAD S2,.EQSEQ(J),EQ.IAS ;GET THE INVALID ACCT STRING BIT
REP 48/130 ;08C14
WRTUSG: QUEUE. S2, ;MAKE A USAGE ENTRY
PUSHJ P,ACTE.1 ;FAILED,,TELL OPR
;This routine is called to make FACT entrys on a TOPS10 system
WIT
WRTUSG: SKIPE DEBUGW ;[361] If debug switch set
POPJ P, ;[361] forget the accounting.
IFE FTDEBUG,< ;[353] Same goes if feature test debug
QUEUE. S2, ;MAKE A USAGE ENTRY
PUSHJ P,ACTE.1 ;FAILED,,TELL OPR
;This routine is called to make FACT entrys on a TOPS10 system
REP 70/130 ;08C15
LOAD S1,T.QNM ;get the queue name
WIT
LOAD S1,,T.QNM ;[354] Get the queue name
REP 80/130 ;08C16
LOAD S1,T.SEQ ;SEQUENCE NUMBER
MOVEM S1,FACTBL+11 ;STORE
LOAD S1,T.NRS ;NUMBER OF UNITS PROCESSED
WIT
LOAD S1,,T.SEQ ;[354] Sequence number
MOVEM S1,FACTBL+11 ;STORE
LOAD S1,,T.NRS ;[354] Number of units processed
REP 88/130 ;08C17
POPJ P, ;did it!
> ;End of TOPS10 conditional
WIT
; At DOFACT+38. lines. SPR 10-34279. GKN
> ;[353] End IFE FTDEBUG
POPJ P, ;did it!
> ;End of TOPS10 conditional
REP 30/131 ;08C18
USTXT. (<-1,,[ASCIZ / /]>) ;SYSTEM TEXT
WIT
USTXT. (<[ASCIZ / /]>) ;[355] System text
REP 52/131 ;08C19
USTXT. (<-1,,[ASCIZ / /]>) ;SYSTEM TEXT
WIT
USTXT. (<[ASCIZ / /]>) ;[355] System text
REP 29/132 ;08C20
USTXT. (<-1,,[ASCIZ / /]>) ;SYSTEM TEXT
WIT
USTXT. (<[ASCIZ / /]>) ;[355] System text
SUM 231969