Google
 

Trailing-Edge - PDP-10 Archives - bb-jr93g-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