perm filename SAILOK.FAI[S,AIL]1 blob
sn#102573 filedate 1974-05-22 generic text, type T, neo UTF8
COMPIL(LOK,<LOOKUP,ENTER,FILEINFO>
,<SAVE,RESTR,GETCHN,FILNAM,SIMIO,X33,X22,GOGTAB>
,<LOOKUP, ENTER, AND FILEINFO ROUTINES>)
.LOK:
HERE (LOOKUP) PUSHJ P,SAVE
LOADI7 A,<LOOKUP>
PUSH P,[XCT IOLOOKUP,SIMIO] ;LOOKUP CH,FILE
MOVEI B,INAME ;TO STORE FILE NAME
JRST LOKENT ;DO THE OPERATION
HERE (ENTER)
PUSHJ P,SAVE
LOADI7 A,<ENTER>
PUSH P,[XCT IOENTER,SIMIO] ;ENTER CH,FILE
MOVEI B,ONAME ;TO STORE FILE NAME
LOKENT:
MOVE LPSA,X33 ;PARAM ADJUST FOR RESTR
MOVE CHNL,-3(P) ;GET CHANNEL #
PUSHJ P,GETCHN ;VALIDATE
SETZM @-2(P) ;ASSUME SUCCESS
PUSHJ P,FILNAM ;GET FILE
JRST BADSPC ; NO GOOD, REPORT ERROR
ADD B,CDB ;ADDR OF FILE NAME HOLDER
MOVEW (<(B)>,<FNAME(USER)>) ;STORE IT
POP P,X ;INSTRUCTION TO DO
MOVE Y,[JRST ELERR] ;FAILURE
MOVE Z,[JRST RESTR] ;SUCCESS
ENF1: JRST X ;ENTER/LOOKUP
BADSPC: POP P,(P) ;REMOVE IO INSTRUCTION
HRRZ TEMP,ERRTST(CDB) ;GET USER-ENABLE BITS
TRNE TEMP,10000 ;ENABLED FOR HANDLING BAD FILE SPECS?
ERR <LOOKUP OR ENTER: INVALID FILE SPECIFICATION>,1 ;NO, TELL HIM
SKIPA TEMP,[=8] ;ALWAYS REPORT NO GOOD LOOKUP/ENTER
ELERR: HRRZ TEMP,FNAME+1(USER) ;WHY DID IT BLOW?
HRROM TEMP,@-1(P) ;TELL THE USER
JRST RESTR
HERE (FILEINFO)
MOVE USER,GOGTAB
POP P,UUO1(USER) ;GET RID OF IT, MARK LAST SAIL CALL
POP P,LPSA ;ARRAY ADDRESS WHERE INFO IS TO GO
SKIPGE -2(LPSA) ;MAKE SURE IT'S NOT A STRING ARRAY
ERR <PASS 6 WORD INTEGER VECTOR TO FILEINFO>,1
MOVE TEMP,-1(LPSA) ;TOTAL ARRAY SIZE WORD
CAML TEMP,[XWD 1,6] ;MUST BE 1-D, AT LEAST 6 WORDS
CAMLE TEMP,[XWD 1,-1] ;BUT NOT 2-D
ERR <PASS 6 WORD INTEGER VECTOR TO FILEINFO>,1
MOVEI TEMP,5(LPSA) ;BLT TERMINATOR
HRLI LPSA,FNAME(USER) ;SOURCE OF VALUABLE INFORMATION
BLT LPSA,(TEMP) ;GIVE!
JRST @UUO1(USER) ;GONE
ENDCOM (LOK)