{{htmlmetatags>metatag-description:(ICL George 3 and George 4 source: RENAME864)}}
====== RENAME864 ======
(George Source)
**Macros used:** [[george:macro:ACROSS|ACROSS]], [[george:macro:BASEFCB|BASEFCB]], [[george:macro:BBS|BBS]], [[george:macro:BC|BC]], [[george:macro:BS|BS]], [[george:macro:BXE|BXE]], [[george:macro:BXU|BXU]], [[george:macro:CHAIN|CHAIN]], [[george:macro:CLOSETOP|CLOSETOP]], [[george:macro:COMBRKIN|COMBRKIN]], [[george:macro:COMERRX|COMERRX]], [[george:macro:COOR3|COOR3]], [[george:macro:DELETE|DELETE]], [[george:macro:ENDCOM|ENDCOM]], [[george:macro:ERASESUD|ERASESUD]], [[george:macro:FNORM|FNORM]], [[george:macro:FREECORE|FREECORE]], [[george:macro:FSHCODE|FSHCODE]], [[george:macro:FSHENTRY|FSHENTRY]], [[george:macro:FSHSKIP|FSHSKIP]], [[george:macro:GETDIR|GETDIR]], [[george:macro:HUNTW|HUNTW]], [[george:macro:INSERT|INSERT]], [[george:macro:JBC|JBC]], [[george:macro:JBS|JBS]], [[george:macro:JMBS|JMBS]], [[george:macro:JMTONL|JMTONL]], [[george:macro:LOGACCESS|LOGACCESS]], [[george:macro:LONGOFF|LONGOFF]], [[george:macro:LONGON|LONGON]], [[george:macro:LONGSET|LONGSET]], [[george:macro:LONGSTOP|LONGSTOP]], [[george:macro:MBC|MBC]], [[george:macro:MBS|MBS]], [[george:macro:MENDAREA|MENDAREA]], [[george:macro:MFREE|MFREE]], [[george:macro:MFREEALL|MFREEALL]], [[george:macro:MFREEW|MFREEW]], [[george:macro:MHUNT|MHUNT]], [[george:macro:MHUNTW|MHUNTW]], [[george:macro:MONOUT|MONOUT]], [[george:macro:NAME|NAME]], [[george:macro:NAMETOP|NAMETOP]], [[george:macro:NEXTFCB|NEXTFCB]], [[george:macro:READ|READ]], [[george:macro:REPALLER|REPALLER]], [[george:macro:REPERR|REPERR]], [[george:macro:REPERR2|REPERR2]], [[george:macro:SEG|SEG]], [[george:macro:SEGENTRY|SEGENTRY]], [[george:macro:SETREP2|SETREP2]], [[george:macro:SETUPCORE|SETUPCORE]], [[george:macro:SPARANOX|SPARANOX]], [[george:macro:STEPAGAIN|STEPAGAIN]], [[george:macro:TESTNAMX|TESTNAMX]], [[george:macro:TESTREP2|TESTREP2]], [[george:macro:TESTRPN2|TESTRPN2]], [[george:macro:TOPFCB2|TOPFCB2]], [[george:macro:TRACE|TRACE]], [[george:macro:TRANSBEG|TRANSBEG]], [[george:macro:TRANSFIN|TRANSFIN]], [[george:macro:TREP2|TREP2]], [[george:macro:USEROPEN|USEROPEN]], [[george:macro:WRONG|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