Trailing-Edge
-
PDP-10 Archives
-
bb-jr93h-bb
-
7,6/ap014/ibmspl.c14
There are 11 other files named ibmspl.c14 in the archive. Click here to see a list.
REP 21/3 ;14C1
XP IBMEDT, 367 ; Edit level
WIT
XP IBMEDT, 371 ; Edit level
INS 480/4 ;14C2
4(370) 14-Feb-86 TPW Make SETLMT calculate the lineprinter page
limit the same way the EXEC and QUEUE does.
4(371) 4-Apr-86 TPW Include GLXLIB's PCO 030 FB.SUP bit in DELQUE
so D60: doesn't fill up with deleted files.
INS 56/12 ;14C3
; Data areas for Tops-10 File info
TOPS10 <
OBLOCK: BLOCK 3 ;[370]
LKBLK: BLOCK 1 ;[370]EXTENDED LOOKUP BLOCK
LKPPN: BLOCK 1 ;[370]DIRECTORY
LKNAM: BLOCK 1 ;[370]FILE NAME
LKEXT: BLOCK 1 ;[370]FILE EXTENSION
LKPRV: BLOCK 1 ;[370]PROTECTION WORD
LKSIZ: BLOCK 1 ;[370]FILE SIZE
BLOCK 1 ;[370]JUNK
LKSPL: BLOCK 1 ;[370]SPOOLING NAME
BLOCK 6 ;[370]JUNK
LKDEV: BLOCK 1 ;[370]LOCATION OF FILE (LOGICAL UNIT)
LKBLKL==.-LKBLK
>;[370]End TOPS10
INS 91/43 ;14C4
INS 111/47 ;14C5
INS 118/47 ;14C6
REP 23/48 ;14C7
$WTOJ <Line ^O/S2/ on port ^O/P1/ signing off>,,@T%OBA
WIT
$WTOJ <Line ^O/S2/ on port ^O/P1/ signing off>,,@T%OBA
REP 9/106 ;14C8
; The number of pages is found from:
;
; .6 * (# of 200 word blocks)
;
; or 1 page/1067 characters
;
; Parameters - none
SETLMT: STKVAR <<LMTBUF,^d2>> ; Buffer for Q msg create entry
MOVEI S1,LMTBUF ; Get address of buffer
LOAD S2,,T.TBC ; Get number of bytes transferred
IDIVI S2,^d1067 ; Find number of pages
AOS S2 ; Always round up for first page
CAIGE S2,^d9 ; Check for minimum number of pages
MOVX S2,^d9 ; Too small .. make reasonable
MOVE T1,[2,,.QCLIM] ; /LIMIT entry
MOVEM T1,(S1) ; First word in entry
MOVEM S2,1(S1) ; Put number of pages in next word
PJRST INSENT ; Insert entry and return
WIT
; Parameters - none
SETLMT: STKVAR <<LMTBUF,^d2>> ;[370] Buffer for Q msg create entry
TOPS20 <
PAGLMT: MOVX S1,GJ%SHT+GJ%OLD ;[370] File exists
MOVE T1,FRB+1 ;[370] Get the new name per
HRROI S2,1(T1) ;[370] File Rename Block
GTJFN ;[370] Get its handle
JRST LKPERR ;[370] Pretend this didn't happen
HRRZ S1,S1 ;[370] JFN
MOVE S2,[1,,.FBBYV] ;[370] Want page size
MOVEI T1,S2 ;[370] Get address of limit buffer
GTFDB ;[370] Get the monitor's file info
ERJMP LKPERR ;[370] Can't do, use monitor's kluge
>;[370]End if TOPS20
TOPS10 <
BLKLMT: MOVE S2,[SIXBIT/DSK/] ;[370] Get a channel for opening
MOVEM S2,OBLOCK+1 ;[370] Set up the open block
MOVEM S2,LKDEV ;[370] And the lookup block for later
OPEN S1,OBLOCK ;[370] Open the channel
JRST LKPERR ;[370] This has got to work
MOVEI T1,LKBLKL-1 ;[370] Set up the lookup table
HRRZM T1,LKBLK ;[370] Length of Arguments
MOVE T1,FRB+1 ;[370] Find the File Rename Block
MOVE S2,.FDNAM+(T1) ;[370] Get new file name
MOVEM S2,LKNAM ;[370] Pass to lookup block
MOVE S2,.FDEXT+(T1) ;[370] Get file extension
MOVEM S2,LKEXT ;[370] Need that too
MOVE S2,.FDPPN+(T1) ;[370] Get user PPN
MOVEM S2,LKPPN ;[370] And we're ready
LOOKUP S1,LKBLK ;[370] to do the Lookup
JRST LKPERR ;[370] Lookup failed, use kluge method
MOVE S2,LKSIZ ;[370] Get file word size
ADDI S2,177 ;[370] Round up a block's worth
ASH S2,-7 ;[370] convert to blocks
>;[370]End if TOPS10
LPTLMT: IMULI S2,LPTMUL ;[370] Per disk page/block multiplier
IDIVI S2,LPTDIV ;[370] and divisor to come up with
SKIPE T1 ;[370] number of lineprinter pages
ADDI S2,1 ;[370] Round up if necessary.
SETLM1: MOVEI S1,LMTBUF ;[370] Get address of buffer
MOVE T1,[2,,.QCLIM] ;[370] /LIMIT entry
MOVEM T1,(S1) ;[370] First word in entry
MOVEM S2,1(S1) ;[370] Lineprinter page limit is next
PJRST INSENT ;[370] Insert entry and return
LKPERR: $WTOJ <Can't size file, using default for>,<^F/@FRB+1/>,@T%OBA
SETZ S2, ;[370] Problems, then let QUASAR
JRST SETLM1 ;[370] handle it
REP 18/111 ;14C9
QOBLK: EXP FDBARE ;address of FDB
EXP ^D36 ;byte size
WIT
;@QOBLK+1 - Edit 371
QOBLK: EXP FDBARE ;address of FDB
TOPS20 <EXP FB.SUP!^D36> ;[371]supersede bit!byte size
SUM 21992