perm filename SAIMTP.FAI[S,AIL]1 blob
sn#102583 filedate 1974-05-22 generic text, type T, neo UTF8
COMPIL(MTP,<MTAPE,USETI,USETO,RENAME>
,<SAVE,RESTR,GETCHN,SIMIO,FILNAM,X22,X33,X44>
,<MTAPE, USETI, USETO, RENAME ROUTINES>)
.MTP:
HERE (MTAPE)
PUSHJ P,SAVE
MOVE LPSA,X33
MOVE CHNL,-2(P) ;CHANNEL NUMBER
LOADI7 A,<MTAPE>
PUSHJ P,GETCHN
LDB C,[POINT 5,-1(P),35] ;PART OF COMMAND CHAR
EXPO <
MOVEI B,101
CAIN C,11 ;MTAPE "I" DOES SPECIAL THINGS.
JRST MTAPQ ;GO SET IBM COMPABILITY MODE
>;EXPO
MOVEI B,0
JUMPE C,MTAPQ ;THIS IS DEFINITELY NOT A NO-OP
MOVE A,OPTAB ;COMMAND BITS
MOVE B,OPTAB+1 ;MORE
TRZE C,30 ;COMPRESS TABLE
ADDI C,5
LSH C,2 ;EACH COMMAND IS 4 BITS
ROTC A,(C) ;GET RIGHT COMMAND
ANDI B,17 ;DO IF SYSTEM DOESN'T
JUMPE B,[ERR <MTAPE: ILLEGAL CODE>,1
JRST RESTR]
MTAPQ: HRLI B,(<MTAPE>) ;CREATE MTAPE OPERATION
DPB CHNL,[POINT 4,B,12]
XCT B ;YES, DO IT
JRST RESTR
OPTAB: BYTE (4) 16,17,0,0,3,6,7,13,10 ;A,B,,,E,F,R,S,T
BYTE (4) 11,0,1 ;U,,W
HERE (USETI)
↑↑.USETI:
SKIPA LPSA,[XCT IOSETI,SIMIO] ;USETI
HERE (USETO)
↑↑.USETO:
MOVE LPSA,[XCT IOSETO,SIMIO] ;USETO
PUSHJ P,SAVE
MOVE CHNL,-2(P)
LOADI7 A,<USET>
PUSHJ P,GETCHN
MOVE A,-1(P) ;VALUE TO USETO
MOVE LPSA+1,[JRST .+2] ;BE ABLE TO GET BACK
JRST LPSA ;GO TO USETI/O
MOVE LPSA,X33
JRST RESTR
HERE (RENAME)
↑↑.RENAME:
PUSHJ P,SAVE
SETZM @-1(P)
MOVE LPSA,X44
LOADI7 A,<RENAME>
MOVE CHNL,-3(P)
PUSHJ P,GETCHN
PUSHJ P,FILNAM ;PARSE FILENAME SPEC
JRST BDSPC ;SPECIFICATION NO GOOD
MOVE TEMP,-2(P)
ROT TEMP,-=9
MOVEM TEMP,FNAME+2(USER)
XCT IORENAME,SIMIO ;DO THE RENAME
JRST RNERR ;NO GOOD
JRST RESTR
BDSPC: HRRZ TEMP,ERRTST(CDB) ;SEE IF
TRNE TEMP,10000 ;WILLING TO HANDLE ERROR
ERR <RENAME: INVALID FILE SPECIFICATION>,1 ;NO, TELL HIM
SKIPA TEMP,[=8] ;ALWAYS REPORT CODE
RNERR: HRRZ TEMP,FNAME+1(USER) ;RETURN HORSESHIT NUMBER
HRROM TEMP,@-1(P) ;TO THE USER
JRST RESTR
ENDCOM(MTP)