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
**************