Google
 

Trailing-Edge - PDP-10 Archives - decuslib10-06 - 43,50362/iol217.scm
There are no other files named iol217.scm in the archive.
File 1)	DSK:IOLIB.MAC	created: 1753 18-AUG-1975
File 2)	DSK:IOL5.MAC	created: 1716 27-MAR-1975

1)1		SUBTTL	Rob Cook	Jun-75		v:5A
1)	IF1,<
****
2)1		SUBTTL	ROB COOK	NOV-73		V:4
2)	IF1,<
**************
1)1		PATCH$	<206,207,210,211,212,213,214,215,216,217>
1)		$$IOL==:BYTE (3)$VCOD (9)$VMAJ (6)$VMIN (18)$VEDT
****
2)1		$$IOL==:BYTE (3)$VCOD (9)$VMAJ (6)$VMIN (18)$VEDT
**************
1)2	206	Correct bug in $RSWIT which caused Ill Mem Ref if an out of
1)		range value were supplied to a switch - stack problem.
1)	207	Correct bug in definition of ERR$$ in IOLIB. The definition
1)		had not been changed with the new format flag word.
1)	210	Correct bug in $RSWIT which forced user to type switch name in
1)		full for the first switch name in the table
1)	211	Correct bug in $RPATH which forgot the PPN mask if no SFD
1)		was given
1)	212	Fix bug in 210
1)	213	Fix $SWTDY to return date/time in Universal format
1)	214	Fix stack problems on error in $RDATE
1)	215	make $cnviu, $cnvui entry points
1)	216	fix $BEGCC to use the program name from $IDPNM for the TMP
1)		filename if argument to $BEGCC is -1
1)	217	fix $READ to give EOF return on reading nul from byte-pointer
1)	!
1)3	COMMENT !
1)	REVISIONS MAKING UP V:5 OF IOLIB:
****
2)2	REVISIONS MAKING UP V:5 OF IOLIB:
**************
1)6	DEFINE ERR$$(TXT,COD,TYP,OP),<		;[207] fix definition
1)		TMP$$==EC$IND+[<SIXBIT \'COD'\>+[ASCIZ \'TXT'\]]
1)	IFNB <TYP>,<
1)		TMP$$==TMP$$+<<$ECT'TYP>B17>>
1)		OP	T1,[TMP$$]
****
2)5	DEFINE ERR$$(TXT,COD,TYP,OP),<
2)		TMP$$==EC$IND+[<SIXBIT \'COD'\>+[ASCIZ \'TXT'\]]
2)	IFNB <TYP>,<
2)		TMP$$==TMP$$+<<$ECT'TYP>B11>>
2)		OP	T1,[TMP$$]
**************
1)11		JUMPE	P1,RPA02	;[211] save PPN in PATH block?
1)		MOVEM	T3,<FT$SFD+3>(P1)  ;[211] save PPN mask too
1)		MOVEM	T2,2(P1)	;[170] YES, DO IT
1)	RPA02:			;[211] here to proceed with SFD
1)	IFN FT$SFD,<
****
2)10		SKIPE	P1		;[170] SAVE PPN IN PATH BLOCK?
2)		MOVEM	T2,2(P1)	;[170] YES, DO IT
2)	IFN FT$SFD,<
**************
1)13		MOVNI	P1,2		;[210] Flag 'no match' for starters
1)		JUMPE	P2,RSW10	;NO USER TABLES IS FINE
File 1)	DSK:IOLIB.MAC	created: 1753 18-AUG-1975
File 2)	DSK:IOL5.MAC	created: 1716 27-MAR-1975

****
2)12		SETZ	P1,		;INITIALISE AGAIN
2)		JUMPE	P2,RSW10	;NO USER TABLES IS FINE
**************
1)14			 AOJE	P1,DUPLSW  ;[210] P1/-1 means duplicate on user table
1)			 SOJL	P1,NOMATC  ;[212] P1/-2 means no match in user table
1)			 MOVE	T1,P1	   ;[212] P1/+n is ok index in user table
1)			 JRST   RSW30]	   ;PROCESS IT
****
2)13			 JUMPL  P1,DUPLSW  ;ALSO
2)			 JUMPE  P1,NOMATC  ; UNKNOWN
2)			 MOVE   T1,P1	   ;GET USER INDEX BACK
2)			 JRST   RSW30]	   ;PROCESS IT
**************
1)14		AOJE	P1,DUPLSW	;[212] error if duplicate
1)	RSW30:!	;SWITCH NAME MATCHED. P2 POINTS TO TABLE. T1 CONTAINS INDEX.
****
2)13		JUMPL	P1,DUPLSW	;ERROR IF DUPLICATE
2)	RSW30:!	;SWITCH NAME MATCHED. P2 POINTS TO TABLE. T1 CONTAINS INDEX.
**************
1)16		PJUMPL	T2,OORNGE	;[206] OUT OF RANGE
1)		CAMLE	T2,T3		;CHECK AGAINST MAX
1)		JRST	OORNGE		;[206] OUT OF RANGE
1)				;FALL INTO $SWDPB
****
2)15		PJUMPL	T2,$$DRNG##	;OUT OF RANGE
2)		CAMLE	T2,T3		;CHECK AGAINST MAX
2)		JRST	$$DRNG##	;OUT OF RANGE
2)				;FALL INTO $SWDPB
**************
1)16	OORNGE:	;[206] value out of range
1)		POP	P,(P)		;pop stack
1)		PJRST	$$DRNG##	;setup error code
1)		PRGEND
****
2)15		PRGEND
**************
1)16		PUSH	P,T1		;[213] save away delimiter
1)		MOVE	T1,T2		;[213] set up args for $CNVIU
1)		MOVE	T2,T3		;[213]
1)		CNVIU$			;[213] convert date/time from internal to Universal form
1)		MOVE	T2,T1		;[213] set arg. for return
1)		POP	P,T1		;[213] recover delimiter
1)		PJRST	$SWDPB##	;
****
2)15		PJRST	$SWDPB##	;
**************
1)24		 JRST	RNGERR		;[214] no, range error
1)		IMULI	T3,^D31		;CONVERT TO INTERNAL FORM
****
2)23		PJRST	$$DRNG##	;NO, ERROR
2)		IMULI	T3,^D31		;CONVERT TO INTERNAL FORM
**************
1)24		JUMPL T2,RNGERR	;[214] exit if out of range
1)		CAIGE	T2,^D64		;MUST BE AFTER 1964
1)		 JRST	RNGERR		;[214]
File 1)	DSK:IOLIB.MAC	created: 1753 18-AUG-1975
File 2)	DSK:IOL5.MAC	created: 1716 27-MAR-1975

1)		SUBI	T2,^D64		;ADJUST TO INTERNAL FORM
****
2)23		PJUMPL	T2,$$DRNG##	;EXIT IF OUT OF RANGE
2)		CAIGE	T2,^D64		;MUST BE AFTER 1964
2)		PJRST	$$DRNG##	;
2)		SUBI	T2,^D64		;ADJUST TO INTERNAL FORM
**************
1)24	RNGERR:	;[214] number out of feasible range
1)		POP	P,(P)		;pop stack
1)		PJRST	$$DRNG##	;exit through error return
1)		PRGEND
****
2)23		PRGEND
**************
1)30		PJRST	$POPJ1##	;{217] endfile
1)	REA20:	;HERE TO READ A BYTE FROM FILE
****
2)29		POPJ	P,		;
2)	REA20:	;HERE TO READ A BYTE FROM FILE
**************
1)72		ENTRY	$CNTDT,$cnvui	;[215]
1)		RADIX	10
****
2)71		ENTRY	$CNTDT
2)		RADIX	10
**************
1)73		ENTRY	$CNNOW,$cnvnu	;[215]
1)	$CNNOW::
****
2)72		ENTRY	$CNNOW
2)	$CNNOW::
**************
1)74		ENTRY	$CNVDT,$cnviu	;[215]
1)		RADIX	10
****
2)73		ENTRY	$CNVDT
2)		RADIX	10
**************
1)74		POP	P,T1		;[216] recover CCL entry code
1)		SKIPGE	t1		;[216] load program name if -1
1)		HLRZ	t1,$IDPNM(I)	;[216]  using 1st 3 characters only
1)		MOVEM	t1,$IDCCL(I)	;[216] store away
1)		JUMPE	T1,BEG10	;[216] exit if non-CCL entry
1)		PUSHJ	P,$TMPFD##	;build a tempcore FDB
****
2)73		POP	P,$IDCCL(I)	;save CCL entry code
2)		SKIPN	T1,$IDCCL(I)	;CCL entry?
2)		JRST	BEG10		;no: exit normally
2)		PUSHJ	P,$TMPFD##	;build a tempcore FDB
**************