(George Source)
Macros used: ACROSS, BASEFCB, BBS, BC, BS, BXE, BXU, CHAIN, CLOSETOP, COMBRKIN, COMERRX, COOR3, DELETE, ENDCOM, ERASESUD, FNORM, FREECORE, FSHCODE, FSHENTRY, FSHSKIP, GETDIR, HUNTW, INSERT, JBC, JBS, JMBS, JMTONL, LOGACCESS, LONGOFF, LONGON, LONGSET, LONGSTOP, MBC, MBS, MENDAREA, MFREE, MFREEALL, MFREEW, MHUNT, MHUNTW, MONOUT, NAME, NAMETOP, NEXTFCB, READ, REPALLER, REPERR, REPERR2, SEG, SEGENTRY, SETREP2, SETUPCORE, SPARANOX, STEPAGAIN, TESTNAMX, TESTREP2, TESTRPN2, TOPFCB2, TRACE, TRANSBEG, TRANSFIN, TREP2, USEROPEN, WRONG
22FL ... SEG RENAME,6,EDWARD MOON ,FILESTORE 22^= SEGENTRY K1RENAME,Z1RENAME 2394 ... FSHENTRY K2RENAME,OPDIR,,OPDIR 23DW # THIS SEGMENT IMPLEMENTS THE RENAME COMMAND WHICH IS USED 23YG # TO ALTER THE GENERAL LOCAL NAME OF A TERMINAL FILE. 242P ...[ 244Y ...[ FORBIDDEN LANGUAGES(WOULD BE ALLOWED BY 'FNORM' 2477 ...[ IF NOT CHECKED HERE 249B ...[ 24?K ...SAVELANG 4H#### 24*S ...XJOBLANG 4H**** 24D6 [ 24XQ XERR SBX 3 FX1 25CB CLOSETOP [DIRECTORY 25X2 ADX 3 FX1 26BL XCOMERR 26W= COMERRX 0(3) 27*W [ 27TG Z1RENAME [COMMAND ENTRY 28*6 [ 28SQ # CARRY OUT FORMAT CHECKSON THE 2ND PARAMETER(GENERAL 29#B # LOCAL NAME) AND SET UP A FILE/FLOCNB BLOCK FOR INPUT TO 29S2 # GETDIR WHEN CHECKING THAT THE GENERAL LOCAL NAME IS NOT 2=?L # ALREADY IN USE. 2=R= LDN 4 2 2?=W CALL 5 PARIN [PUT 2ND PAPAMETER IN FABSNB BLOCK 2?QG #SKI K6RENAME>199-199 2#=6 TRACE 4,RENTYPE 2#PQ STO 4 7 2*9B CALL 5 SFLOC [SET UP A FILE/FLOCNB BLOCK 2*P2 # CARRY OUT FORMAT CHECKS ON THE FIRST PARAMETER(FILE NAME) 2B8L # THE FILE/FABSNB BLOCK WILL BE USED AS INPUT TO OPENDIR 2BN= # WHEN OPENING THE FILE'S DIRECTORY. 2C7W LDN 4 1 2CMG CALL 5 PARIN [PUT 1ST PARAMETER IN FABSNB BLOCK 2D76 SBN 6 5 2DLQ BZE 6 RENMT [BRANCH IF MAG TAPE 2F6B ADN 6 5 2FL2 BNZ 6 WRONG [BRANCH IF WRONG QUALIFIER 2G5L ANDN 4 #6600 2GK= BNZ 4 WRONG 2H4W ERN 7 #1000 [2ND PARAMETER MUST BE LOCAL NAME ONL 2HJG ANDN 7 #7600 2J46 BNZ 7 NOTLOCAL [BRANCH IF ANY FORBIDDEN DETAILS 2JHQ MHUNT 2,FILE,FLOCNB 2K3B BBS 2,A1+4(2),ZEROGEN [GENERATION ZERO ILLEGAL 2L2L # THIS SECTION RENAMES A FILESTORE FILE 2LG= # OPEN THE FILE'S DIRECTORY AND CHECK THAT THE USER IS 2L^W # ALLOWED TO RENAME THIS FILE 2MFG OPDIR 2MGX ... FSHCODE B,XFSHBRENAME 2MJ# ...( 2MKP ...# RENAMING OF A FILE MUST BE DONE ON MACHINE A 2MM6 ... TRANSBEG FSHRENAMEID,RENAME,2,CLB,,ACOMMUNE1 2MNH ... BRN XENDCOM ['ENDCOM' RETURN 2MPY ... BRN OPBRK ['COMBRKIN' RETURN 2MR* ...XFSHBRENAME 2MSQ ...) 2MW7 ... FSHSKIP B 2MXJ ...( 2M^6 USEROPEN OPBRK,WRITE,DIR,LEAVE,ERASE 2NDQ REPERR2 USCHK 2NYB BRN XENDCOM 2PD2 USCHK 2PK8 ... OWNERCHECK [THE USEROPEN WONT HAVE 2PMR ... TESTREP2 NOALLACC,NOTALAC,NOINFACC,NOTINFAC 2PQB ... TESTRPN2 OK,NOTOWNER [DONE THIS - BECAUSE OF ERASE SUBMODE 2PXL MHUNTW 3,FILE,ENT 2QC= LDX 4 EUSE1(3) 2QWW BNZ 4 NOTTERMINAL [BRANCH UNLESS TERMINAL FILE 2R6N ... JMBS NOMULTS,3,BEMDF,BEMULT 2RBG # RETAIN ANY DETAILS FOR WHICH NEW VALUES HAVE NOT BEEN 2RW6 # SUPPLIED 2S*Q MHUNT 2,FILE,FLOCNB 2STB LDX 4 A1+3(2) 2T*2 BNZ 4 RET1 2TSL LDX 4 EREEL(3) 2W#= STO 4 A1+3(2) [RETAIN REEL NO 2WRW RET1 2X?G LDX 4 A1+4(2) 2XR6 BNZ 4 RET2 2Y=Q LDX 4 EGEN(3) 2YQB STO 4 A1+4(2) [RETAIN GENERATION NO 2^=2 RET2 2^PL LDX 4 A1+5(2) 2^WS ... BXE 4 SAVELANG(1),WRONGLANG [J. IF ILLEGAL LANG. 3242 ... BXE 4 XJOBLANG(1),WRONGLANG [ CODE SPECIFIED 329= BNZ 4 RET3 32NW LDX 4 ELAN(3) 338G STO 4 A1+5(2) [RETAIN LANGUAGE 33N6 RET3 347Q # CHECK THAT THE SPECIFIED GENERAL LOCAL NAME IS NOT 34MB # ALREADY USED UNDER THE OPEN DIRECTORY 34YF ... GETDIR 5 [ENSURE NO NON-ERASED ENTRANTS 359J ... TREP2 MULTI,MULTIEX 35GM ... TESTREP2 OK,XISTS,WRGEN,WRGEN,VRYWRONG,RONGBUT 35RS ... TESTRPN2 NOFILE,(GEOERR) 35^3 ...QERASE 366= MHUNT 3,FILE,FLOCNB 36KW LONGSET #12,(GEOERR),A1(3) [BEFORE COORDINATING - IN CASE WAIT R 375G GETDIR 3 [CHECK FOR ERASED ENTRANTS 37K6 MHUNTW 3,FILE,ENT [FROM GD IF OK ELSE FROM USEROPEN 37^L ... TESTREP2 NOFILE,NERAS,OK,NOTMT 38B6 ... TESTRPN2 VRYWRONG,(GEOERR) 38QL ... STEPAGAIN 3976 ... LDX 4 ESERN(3) [GET TSN OF TAPE BEING RETURNED 39HL JMTONL 4,,SLUDGE [J TO SLUDGE IF TAPE OPEN TO THIS JOB 3=3= WAITERASE 3=GW CLOSETOP [DIRECTORY 3?2G MFREEALL FILE,ENT 3?G6 LONGSTOP OPBRK,,FWTBER [WAIT FOR ERASE OR RETURN ETC 3?^Q BRN OPDIR [TRY AGAIN 3#4* ...) 3#6Y ...OPBRK 3#9H ... FSHCODE A,XFSHABRKIN 3##6 ...( 3#BP ... LDN 4 1 [OFFSET FOR LABEL 'OPBRK' 3#F# ... TRANSFIN 4,,ALIEN [RETURN TO M/C B IF ORIGINATED THERE 3#HX ...XFSHABRKIN 3#LG ...) 3#P5 ... COMBRKIN [BREAKIN 3#RN ... FSHSKIP B 3#W? ...( 3#^2 NOTMT 3*DL CALL 7 SEFCB [FIND FCB 3*Y= BRN WAITERASE [NONE SO WAIT FOR FILE TO BE ERASED 3BCW BRN TESTCLUDGE [FOUND SO TEST FOR CLUDGE BEFORE WAIT 3BXG ... BRN WAITERASE 3CC6 TESTCLUDGE 3CWQ CLUDGEQU 3,SLUDGE,4,5 [J TO SLUDGE IF CLUDGE 3DBB BRN WAITERASE [OK TO WAIT 3DW2 NERAS 3F*L LONGOFF 3FT= LDX 4 ECOPS(3) 3G#W BZE 4 NERA1 [BRANCH IF NO BLOCKS OR ONLINE COPIES 3GSG ANDN 4 #777 3H#6 BZE 4 NONLI [BRANCH IF NO ONLINE COPIES 3HRQ NERA1 3J?B LDEX 4 EAUTOCOUNT(3) 3JR2 ORX 4 ESAVECOUNT(3) 3K=L BNZ 4 NONLI [BRANCH IF FILE FROZEN 3KQ= CALL 7 SEFCB [LOOK FOR AN FCB BLOCK FOR THIS FILE 3L9W BRN UPDIR 3LPG BRN WAIT 3M96 MHUNT 2,FILE,FLOCNB 3MNQ ADN 2 A1 3N8B ADN 3 FLOC1 3NN2 MOVE 2 6 [OVERWRITE GENERAL LOCAL NAME IN FCB 3P7L # UPDATE DIRECTORY ENTRY IN FILE/ENT BLOCK 3PM= UPDIR 3Q6W #SKI G4 3QLG ERASESUD FX2,ACOMMUNE1 3R66 CALL 5 SFLOC [SET UP A FILE FLOCNB BLOCK 3RKQ GETDIR 1 [RESET POINTERS TO AFTER RECORD 3S5B MFREE FILE,FLOCNB 3S8G ...#UNS ILOGACC 3S?L ...( 3SBQ ... LOGACCESS 6 3SFW ...) 3SK2 MHUNT 2,FILE,FLOCNB 3T4L MHUNTW 3,FILE,ENT 3TJ= NAME 3,FILE,FWB 3W3W LDX 0 A1+5(2) 3WHG STO 0 ELAN(3) 3X36 LDN 0 A1(2) 3XGQ LDN 1 ELOC1(3) 3Y2B MOVE 0 5 3YG2 BS 3,BEDUMP [ENSURE FILE REDUMPED 3Y^L STOZ EINCLOOK(3) 3^F= STOZ EINC(3) 3^YW MBC 3,BEDIRDUMP,BEREVERE[REVERED STATUS LOST(BACKMAP CANT COP 42DG LDEX 7 ECOPS(3) [BLOCKS RECORDS 42Y6 ADX 7 ENUSE(3) [TRAPS RECORDS 437Y ... LDX 5 ELOC1(3) 43CQ JBC NOINDEX,3,BEINDEX 43XB ADN 7 1 44C2 NOINDEX 44WL LDX 6 7 45B= ADN 7 1 [NAME RECORD 45TW BZE 6 NDEL 46*G READLOOP 46T6 READ [NEXT RECORD IN ENTRY 47#Q MHUNTW 1,FILE,FRB 47SB NAME 1,FILE,FWB [FOR INSERT 48#2 LDX 2 ACTRING(2) 48RL SBN 2 ACTRING 49?= CHAIN 1,BPTR(2) [IN REVRSE ORDER TO ENABLE INSERTION 49QW BCT 6 READLOOP [ IN CORRECT ORDER 4==G NDEL 4=Q6 LDX 6 7 4?9Q NDELOOP 4?PB DELETE 4#92 BCT 6 NDELOOP 4#NL GETDIR 3 [POSITION TO INSERT 4*8= MFREEW FILE,ENT [FROM GETDIR 4*MW MFREE FILE,FLOCNB 4B7G WRITELOOP 4BM6 INSERT [EACH RECORD OF ENTRY 4C6Q MFREEW FILE,FWB 4CLB BCT 7 WRITELOOP 4D62 LONGON #10,5 [WAITERS FOR THIS COMM FILE 4D7Y ...#UNS FNSAD 4D9W ...( 4D?S ... TOPFCB2 3 4D*Q ... JBS NOUPDATE,3,BEDUMP 4DCN ... MBS 3,BFDUMP,BFDIRUPDATE 4DFL ...NOUPDATE 4DHJ ...) 4DKL CLOSETOP [CLOSE DIRECTORY 4DTD ...) 4F5= XENDCOM 4F7T ... FSHCODE A,XFSHAENDCOM 4F=D ...( 4F*3 ... TRANSFIN ,,ALIEN [RETURN TO M/C B IF ORIGINATED THERE 4FCL ...XFSHAENDCOM 4FG9 ...) 4FJW ENDCOM 4G4G RENMT 4GJ6 ACROSS RENAMAG,1 [RENAME A MAGNETIC TAPE 4H3Q ZEROGEN 4HHB CALL 3 XCOMERR 4J32 +ERWRGEN 4J4? ... FSHSKIP B 4J5J ...( 4J6X ...WRGEN 4J=S ... CALL 3 XERR 4JBP ... +ERWRGEN 4JGL NOTOWNER 4K2= CALL 3 XERR 4KFW +ERALT 4KG^ ...NOTALAC 4KJ4 ... CALL 3 XERR 4KK7 ... +ERNOALLACC 4KL= ...NOTINFAC 4KM* ... CALL 3 XERR 4KND ... +ERNOINFACC 4KPH ...NOMULTS 4KQL ... CALL 3 XERR 4KRP ... +ERNOMULTS 4KSS ...MULTIEX 4KTX ... MFREE CPB,CUNI 4KX2 ... CALL 3 XERR 4KY5 ... +JMULTIEX 4KYR ...) 4K^G PARMIS 4LF6 CALL 3 XCOMERR 4LYQ +JPARMIS 4MDB NOTLOCAL 4MY2 MFREE CPB,CUNI 4NCL CALL 3 XCOMERR 4NX= +ERNOTLOC 4PBW WRONG 4PWG CALL 3 XCOMERR 4QB6 +ERWRONG 4QH# ... FSHSKIP B 4QNG ...( 4QTQ NOTTERMINAL 4R*B CALL 3 XERR 4RT2 +ERDIR 4S#L SLUDGE 4SS= LONGOFF 4SW8 ... MFREE CPB,CUNI 4SY6 ... CALL 3 XERR 4T24 ... +ERCLUDGE 4T2H ...RONGBUT 4T32 ... STEPAGAIN 4T3F ... JBS QERASE,3,BNERASE 4T42 ...VRYWRONG 4T5Y ... MFREE CPB,CUNI 4T7W ... CALL 3 XERR 4T9S ... +ERVRYWRONG 4T?W ...XISTS 4TRG MFREE CPB,CUNI 4W?6 CALL 3 XERR 4WQQ +ERALREX 4WTW ...WRONGLANG 4W^2 ... MFREE CPB,CUNI 4X46 ... CALL 3 XERR 4X7= ... +ERILLANG 4X=B [ 4XQ2 # THIS SECTION PUTS A FILE ONLINE IF NOT ALREADY ONLINE 4Y9L # AND CAUSES THE RENAMING TO WAIT UNTIL THE FILE IS UNFROZEN 4YP= NONLI 4^8W FREECORE 3 [ENT 4^NG OPENFILE 5286 CLOSETOP [CLOSE DIRECTORY 52MQ ... USEROPEN OPBRK,WRITE,UNTRAP [TO GET FILE ONLINE &/OR THAWED 537B REPERR OPENED 53M2 BRN XENDCOM 546L OPENED 54L= ... CLOSETOP 54Q7 ... JBC NOWAIT,,ICTSW [J IF NOT ASF 54W4 ... COOR3 #41 [WAIT FOR OTHER ACTS TO RUN 54^^ ...NOWAIT 555W BRN OPDIR [TRY AGAIN 55KG # FILE IS OPEN OR BEING WAITED FOR - WAIT 5656 WAIT 56JQ BS 3,BFEMPTY [SET WAITING TO EMPTY FILE BIT 574B MFREEW FILE,ENT 57J2 BRN OPENFILE 57RS ...) 583L # SUBROUTINE TO INPUT THE PARAMETER WHOSE NUMBER IS IN X4, SET UP A 58H= # FILE/FABSNB BLOCK AN LEAVE CERTAIN SYNTACTIC FORM BITS IN X4 AND 592W # LEAVE A CPB/CUNI BLOCK FOR POSSIBLE ERROR MESSAGES. 59GG PARIN 5=26 SBX 5 FX1 5=FQ SPARANOX 4 [PASS PARAMETER 5=^B MHUNT 3,CPB,CUNI 5?F2 NGX 0 ANUM(3) 5?YL BPZ 0 PARMIS 5#D= NAMETOP 3,FILE,FNAME 5#XW FNORM 7 5*CG TESTREP2 NAMEFORM,XENDCOM 5*X6 LDN 6 0 5BBQ TESTRPN2 ADJUNCTS,PAR1 5BWB MHUNTW 1,FILE,ADJUNCTS 5CB2 ... LDX 6 A1+2(1) 5CTL SRL 6 15 [DEVICE TYPE 5D*= SBN 4 1 5DSW ...PAR1 5G?Q MHUNT 3,FILE,FNAME 5GRB NAMETOP 3,CPB,CUNI [NEEDED FOR ERROR MESSAGES 5GYJ ... HUNTW 3,FILE,FTRAP 5H5Q ... BPZ 3 TRAPQUAL 5H?2 MHUNT 3,FILE,FABSNB 5HQL LDX 4 ATYPE(3) 5J== ANDN 4 #7600 [EXTRACT SOME SYNTACTIC FORM BITS 5JPW ADX 5 FX1 5K9G EXIT 5 0 5K#5 ...TRAPQUAL 5KBN ... MONOUT INVTG 5KF? ... SETREP2 NAMEFORM 5KHW ... REPALLER 5KLF ... BRN XENDCOM 5KP6 # SUBROUTINE TO SET UP A FILE/FLOCNB BLOCK FROM THE FIRST 5L8Q # FILE/FABSNB BLOCK 5LNB SFLOC 5M82 SBX 5 FX1 5MML MHUNT 2,FILE,FABSNB 5N7= LDN 6 6 5NLW LDX 4 ATYPE(2) 5P6G ANDN 4 #2400 5PL6 BZE 4 SFLOD [BRANCH UNLESS MAG. TAPE DESCRIPTION 5Q5Q ADN 6 2 5QKB SFLOD 5R52 SETUPCORE 6,3,FILE,FLOCNB 5RJL MHUNT 2,FILE,FABSNB 5S4= LDX 4 ATYPE(2) 5SHW DSA 4 ATYPE(3) 5T3G ADX 2 A1(2) 5TH6 ADN 2 A1-6 5W2Q ADN 3 A1 5WGB SMO 6 5X22 MOVE 2 0 5XFL ADX 5 FX1 5X^= EXIT 5 0 5Y6D ... FSHSKIP B 5Y?L ...( 5YDW # SUBROUTINE TO FIND FILE/FCB BLOCK, IF THERE IS ONE, FOR THE FILE 5YYG # TO BE RENAMED. X7= LINK. ON EXIT X3= ADDRESS OF FILE/FCB BLOCK. 5^D6 # EXIT AT LINK IF BLOCK NOT FOUND 5^XQ # EXIT AT LINK+1 IF FILE OPEN OR BEING WAITED FOR 62CB # EXIT AT LINK+2 IF FILE RENAMABLE AND FCB FOUND 62X2 # NO COORDINATION 63BL SEFCB 63W= TOPFCB2 1 64*W LDX 2 3 [->ENT 64TG #SKI G4 65*6 ( 65SQ LDN 3 FME1(1) 66#B SMO FX2 66S2 LDN 4 ACOMMUNE1 67?L MOVE 3 3 [USER NAME OF DIR. 67R= LDN 3 ELOC1(2) 68=W ADN 4 3 68QG MOVE 3 6 [G.L.N. OF FILE 69=6 ) 6CD3 ...# X3= ADDRESS OF FOUND FILE/FCB BLOCK 6CD^ ... 6CFX ... BASEFCB 3,FILE,SEXIT,6 6CGT ... LDX 4 ELOC1(2) 6CHR ...SLOOP 6CJP ... BXE 4 FLOC1-FCBRING(3),SLOOP2 [B IF MATCH FOUND 6CKM ...SLOOP1 6CLK ... NEXTFCB 3,FILE,SLOOP,6 [TRY NEXT FCB 6CMH ...SEXIT [EXIT NOT FOUND 6CNF ... EXIT 7 0 6CPC ...SLOOP3 6CQ* ... LDX 4 ELOC1(2) 6CR? ... BRN SLOOP1 6CS9 ...SLOOP2 6CT7 ... TESTNAMX 4,FLOC2-FCBRING(3),ELOC2(2),SLOOP3,4 6CW5 ... LDX 4 ELAN(2) [CHECK LOCAL NAME LANG CODE 6CX3 ... BXU 4 FLAN-FCBRING(3),SLOOP3 6CX^ ...[ 6CYX ...[ TEST FULL LOCAL NAME AND USERNAME 6C^T ...[ 6D2R ... TESTNAMX 3,FME1(1),FUSER1-FCBRING(3),SLOOP3,4 6D3P ... SBN 3 FCBRING [FCB FOUND 6D4W LDX 4 CTOPEN(3) 6DJG ORX 4 FWAITCOUNT(3) 6F46 BNZ 4 SEFEX1 6FBH ... JMBS SEFEX1,3,BFMCOP,BFSOLE,BFTIDYLOCK [J IF FILE BEING COPIE 6FNY ... [ OR BEING CLOSED 6G3B BC 3,BFEMPTY [CLEAR 'WAITING TO EMPTY FILE' BIT 6GH2 EXIT 7 2 [FCB FOUND, FILE COMPLETELY FREE 6H2L SEFEX1 6HG= EXIT 7 1 [FCB FOUND, OPEN OR BEING AWAITED 6HQ4 ...) 6H^W [ 6JFG MENDAREA 20,K99RENAME 6J^6 #END ^^^^ ...46004620000200000000