{{htmlmetatags>metatag-description:(ICL George 3 and George 4 source: MACRALAS864)}}
====== MACRALAS864 ======
(George Source)
**Macros used:** [[george:macro:ACROSS|ACROSS]], [[george:macro:ADDINMODE|ADDINMODE]], [[george:macro:ANSOK2|ANSOK2]], [[george:macro:CHEKPRIV|CHEKPRIV]], [[george:macro:CLOSE|CLOSE]], [[george:macro:COMBRKIN|COMBRKIN]], [[george:macro:COMERRX|COMERRX]], [[george:macro:ENDCOM|ENDCOM]], [[george:macro:FINDCORE|FINDCORE]], [[george:macro:FINDNAME|FINDNAME]], [[george:macro:FNORM|FNORM]], [[george:macro:FREEBUFF|FREEBUFF]], [[george:macro:FREECORE|FREECORE]], [[george:macro:FSHCODE|FSHCODE]], [[george:macro:FSHMOVE|FSHMOVE]], [[george:macro:FSHSKIP|FSHSKIP]], [[george:macro:GETCOREN|GETCOREN]], [[george:macro:HUNT|HUNT]], [[george:macro:MENDAREA|MENDAREA]], [[george:macro:MFREE|MFREE]], [[george:macro:MHUNT|MHUNT]], [[george:macro:MHUNTW|MHUNTW]], [[george:macro:NAME|NAME]], [[george:macro:NAMETOP|NAMETOP]], [[george:macro:NOTALIEN|NOTALIEN]], [[george:macro:P|P]], [[george:macro:PAPARAM|PAPARAM]], [[george:macro:PERMITBRK|PERMITBRK]], [[george:macro:REPERR|REPERR]], [[george:macro:SEGENTRY|SEGENTRY]], [[george:macro:SETUPMODE|SETUPMODE]], [[george:macro:SPARAPAS|SPARAPAS]], [[george:macro:TERROR|TERROR]], [[george:macro:TESTERR|TESTERR]], [[george:macro:TESTREP|TESTREP]], [[george:macro:TESTRPN2|TESTRPN2]], [[george:macro:TRANCHKN|TRANCHKN]], [[george:macro:TRANSBEG|TRANSBEG]], [[george:macro:TRANSFIN|TRANSFIN]], [[george:macro:UP|UP]], [[george:macro:USEROPEN|USEROPEN]], [[george:macro:USEROPEX|USEROPEX]], [[george:macro:VFREEW|VFREEW]]
22FL #LIS K0MACRALAS>K0ALLGEO>K0GREATGEO>K0COMMAND
22^= #SEG MACRALAS50 [ BILL IZATT
23DW 8HMACRALAS
23YG [ THE ENTRY POINTS
24D6 [ THESE ENTRY POINTS MUST BE KEPT FIXED WITHIN THE SEGMENT
24XQ SEGENTRY K1MACRALAS,QENTRY1
25CB SEGENTRY K2MACRALAS,QENTRY2
25X2 [
26BL [
26W= # THIS SEGMENT IS ENTERED FROM VERBCLAS WHEN A VERB HAS NOT BEEN
27*W # CLASSIFIED IN THE BUILT IN COMMAND DICTIONARY.
27TG # USING THE VERB,AN ATTEMPT IS MADE TO OPEN A FILE OF THAT NAME,
28*6 # BY LOOKING THROUGH THE USERS FILES AND SYSTEM MACROS
28SQ #DEF USEMAC=10
29#B #DEF SYSMAC=10
29S2 SIZELB +AVELINE+ALB
2=?L SIZEPB +AVELINE+APB
2=#4 ...PRIVFR 8HFREEZE [USED BY CHEKPRIV
2=#G ...MACFREZ +ERMACFREZ
2=#Y ...#
2=*B ...# THIS SUBROUTINE PERFORMS THE USEROPENS NECESSARY WHILE
2=*S ...# SEARCHING FOR A MACRO FILE. IT TAKES CARE OF THE POSSIBILITY
2=B= ...# OF THE FILE BEING FROZEN VIA A USER 'FREEZE' COMMAND.
2=BN ...# IT IS CALLED ON X3 AND COORDINATES.
2=C6 ...# IF X0 IS NONZERO THEN THE UNTRAP USEROPEN MODE WILL BE USED.
2=CJ ...#
2=D2 ...USEROP
2=DD ... SBX 3 FX1 [RELATIVISE THE LINK
2=DW ... SETUPMODE 6,,EXECUTE,LEAVE,NOERREP [BASIC MODES USED
2=F# ... BZE 0 NOUNTRAP [J IF UNTRAP NOT NEEDED
2=FQ ... ADDINMODE 6,,UNTRAP
2=G8 ...NOUNTRAP
2=GL ... USEROPEX PBREAK,6 [TRY THE USEROPEN
2=H4 ... TESTRPN2 FROZEN,USEROPXIT [EXIT FOR ALL REPS OTHER THAN
2=HG ... [FROZEN
2=HY ... SETUPMODE ,1,FROZEN [INHIBIT FROZEN REPLY AND TRY AGAIN
2=JB ... USEROPEX PBREAK,6,1
2=JS ... TESTRPN2 OK,USEROPXIT [EXIT UNLESS REPLY WAS OK
2=K= ... CHEKPRIV 0,PRIVFR,NOFPRIV [J IF USER MAY NOT ACCESS FROZEN MAC
2=KN ... ANSOK2 [FILE FROZEN BUT USER PRIVILEGED
2=L6 ... [EXIT WITH OK REPLY
2=LJ ...USEROPXIT
2=M2 ... ADX 3 FX1
2=MD ... EXIT 3 0
2=MW ...#
2=N# ...NOFPRIV [FILE LOCATED BUT FROZEN
2=NH ... CLOSE
2=NQ ... LDX 7 MACFREZ(1) [ERROR MESSAGE
2=P8 ... BRN TIDYUP
2=PL ...#
2=Q4 ...#
2=R= # THIS SECTION LOOKS THROUGH THE USERS FILES
2?=W QENTRY1
2?#K ... FSHCODE B,SKIPA
2?B# ...(
2?D3 ... TRANSBEG FSHMACROID,MACRALAS,1,CLB,,ACOMMUNE1
2?FQ ... BRN PBREAK [ IF BREAKIN
2?HF ... BRN UP [ IF ERROR, ENDCOM
2?K8 ... BRN TOALASB [ IF MACRO OPENED O.K.
2?LX ...SKIPA
2?NL ...)
2?QG LDX 4 EXT+11(2)
2#=6 BNG 4 NSYSTEM [J IF SPECIAL SYSTEM ISSUED COMMAND
2#PQ MHUNTW 3,CPB,CALAS
2*9B LDX 4 CPBFSD(3)
2*P2 BPZ 4 XNJ [J IF SOURCE IS MACRO
2B8L ANDX 4 MASKRJ(1)
2BN= BZE 4 XNJ [J IF NOT R/J CASE
2C7W LDN 7 2 [SET R/J MARKER
2CMG HUNT 3,FILE,FABSNB
2D76 BNG 3 NEXTRY
2DLQ BRN RJOB
2F6B XNJ LDN 4 0
2FL2 LDX 7 CONTEXT(2)
2G5L ANDN 7 2
2GK= BNZ 7 NEXTRY
2H4W GETCOREN USEMAC,1
2HJG FINDCORE 2 [FIND BLOCK
2J46 NAME 2,FILE,FABSNB [NAME BLOCK
2JHQ LDN 0 USEMAC
2K3B STO 0 A1(2)
2KH2 SMO FX2
2L2L LDN 5 CPREFIX [ADDRESS OF USER PREFIX
2LG= LDN 6 A1+1(2) [ADDRESS OF FABSNB AREA
2L^W MOVE 5 3
2MFG LDX 3 FX2
2M^6 LDN 5 AWORK2(3) [MOVE SUSPECTED FILENAME
2NDQ LDN 6 A1+4(2) [INTO THE
2NYB MOVE 5 3 [FABSNB BLOCK
2PD2 LDN 5 USECON(1) [MOVE THE
2PXL LDN 6 A1+7(2) [REQUIRED
2QC= MOVE 5 3
2QM4 ...RJOB
2QWW ... LDN 0 0 [MUST CHECK TRAPS
2R6N ... CALL 3 USEROP [TRY AND OPEN FILE
2RBG TESTREP OK,P,NOFILE,TRYSYS,LOST,WLOST,TEMPLOST,TLOSTEMP
2RW6 TESTREP CLUDGE,WCANT,RANDOM,WRAND,REFUSED,XQUOTA,NOTRAP,WMODE
2S*Q BRN TRYSYS
2STB # THIS SECTION LOOKS THROUGH SYSTEM MACROS
2T*2 NSYSTEM
2TSL LDN 7 1 [THIS ENSURES ONLY TRY OPEN
2W#= LDN 4 0
2WRW TRYSYS
2X?G BNZ 4 NOTOPEN [J IF R/J CASE
2XR6 NEXTRY
2Y=Q GETCOREN SYSMAC,1
2YQB FINDCORE 2 [FIND BLOCK
2^=2 NAME 2,FILE,FABSNB
2^PL LDN 0 SYSMAC
329= STO 0 A1(2)
32NW LDX 3 FX2
338G LDN 5 SYSCON(1)
33N6 LDN 6 A1+1(2)
347Q MOVE 5 3
34MB LDN 5 AWORK2(3)
3572 LDN 6 A1+4(2)
35LL MOVE 5 3 [MOVE SUSPECTED FILE NAME
366= LDN 5 USECON(1)
36KW LDN 6 A1+7(2)
375G MOVE 5 3 [MOVE CONSTANTS
37CX ... LDN 0 1 [DONT CHECK TRAPS
37Q# ... CALL 3 USEROP [TRY AND OPEN FILE
384Q TESTREP OK,SON,LOST,WLOST,TEMPLOST,TLOSTEMP,REFUSED,XQUOTA
38JB TESTRPN2 RANDOM,NRAND [ IF SYSTEM FILE IS RANDOM,
3942 CLOSE [ CLOSE IT AND CONTINUE SEARCH
39HL NRAND BNZ 7 NOTOPEN
3=3= MFREE FILE,FABSNB [FREE FILE FABSNB BLOCK
3=GW # THIS SECTION LOOKS THROUGH THE SUPERIOR USERS MACROS
3?2G FINDNAME
3?G6 TESTERR NOUSER,WLOST
3?^Q PNOT
3#FB MHUNT 2,FILE,FABSNB
3#^2 LDX 3 A1(2)
3*DL TXU 3 SIXTEEN(1)
3*Y= BCC NOTOPEN [J IF EQUAL TO SIXTEEN
3BCW LDN 5 A1(2) [LOAD ADDRESS OF START OF RECORD AREA
3BXG ADX 5 3
3CC6 SBN 5 6
3CWQ LDX 6 5
3DBB SBN 6 6
3DW2 MOVE 5 6 [OVERWRITE DIRECTORY NAME
3F*L LDN 3 6
3FT= SBS 3 A1(2)
3G7M ... LDN 0 0 [MUST CHECK TRAPS
3GG4 ... CALL 3 USEROP [TRY AND OPEN FILE
3GSG TESTREP OK,P,NOFILE,PNOT,LOST,WLOST,TEMPLOST,TLOSTEMP
3H#6 TESTREP CLUDGE,WCANT,RANDOM,WRAND,REFUSED,XQUOTA,NOTRAP,WMODE
3HRQ BRN PNOT
3J?B WMODE LDX 7 WMODEK(1)
3JR2 BRN TIDYUP
3K=L TLOSTEMP
3KQ= LDX 7 TLOSTM1(1)
3L9W LDX 6 TLOSTM2(1)
3LPG BRN TIDYUP2
3M96 TLOSTM1 +ERTEMPLOST
3MNQ TLOSTM2 +JFILE1
3N8B WRAND CLOSE [CLOSE THE RANDOM FILE
3NN2 LDX 7 WRANDOM(1)
3P7L BRN TIDYUP
3PM= NOTOPEN
3Q6W LDX 7 NOTOPENK(1)
3QLG BRN TIDYUP
3R66 XQUOTA
3RKQ LDX 7 NEREXQUO(1)
3S5B BRN TIDYUP
3SK2 PBREAK
3SLP ... FSHCODE A,SKIPB1 [ OMIT IF M/C 'B'
3SND ...(
3SQ7 ... NOTALIEN SKIPB1 [ OR IF NOT FOR ALIEN ACTIVITY
3SRW ... TRANCHKN FSHMACROID,EQUAL,SKIPB1 [ OR IF WRONG CODE ID.
3STK ... LDN 3 0 [ ELSE SET OFFSET =0
3SX# ... TRANSFIN 3 [ AND TRANFIN TO BREAKIN LABEL
3S^3 ...SKIPB1
3T2Q ...)
3T4L COMBRKIN
3TJ= WLOST LDX 7 NLOST(1)
3W3W BRN TIDYUP
3WHG NOFILE
3X36 LDX 7 NHOBEY(1)
3XGQ NGN 6 1
3Y2B BRN Q2
3YG2 WCANT LDX 7 NCANT(1)
3Y^L # THIS SECTION TIDIES UP AFTER BEFORE REPORTING A COMMAND ERROR
3^F= TIDYUP
3^YW NGN 6 1
42DG TIDYUP2
42Y6 BZE 4 Q2
43CQ PERMITBRK
43XB Q2
44C2 MHUNTW 2,CLB
44WL STOZ CLBPTNECHA(2)
45B= BZE 7 UP
45TW COMERRX 7,6
45W^ ... FSHCODE AORB
45Y4 ...UP
45^7 ... FSHCODE A,SKIPB2
462= ...(
463* ... NOTALIEN SKIPB2
464D ... TRANCHKN FSHMACROID,EQUAL,SKIPB2
465H ... LDN 3 1
466L ... TRANSFIN 3
467P ...SKIPB2
468S ...)
469X ... FSHCODE AORB
46?2 ... ENDCOM
46#5 ... FSHSKIP
46*G UP ENDCOM
46T6 WMODEK +AWMODE
47#Q NOTOPENK +ANOTKNOWN
47SB WRONGPER +JINCOPER
48#2 NLOST +JLOST
48RL NCANT +FCANT
49?= WRANDOM +JRANDOM
49QW NHOBEY +HOBEY
4==G NEREXQUO +EREXQUOTA
4=Q6 SON BNZ 7 P
4?9Q MFREE FILE,FABSNB
4?PB # THIS SECTION CHECKS THE FILES PERIPHERAL TYPE/MODE WORD
4#92 P BZE 4 PP [J IF NOT RUNJOB
4#NL PERMITBRK
4*8= PP MHUNTW 3,FILE,ENT
4*MW LDX 4 7 [RETAIN MARKER FOR OBEY COMMAND IN X4
4B7G LDX 7 ETM(3)
4BM6 BZE 7 TERROR
4C6Q SLL 67 9 [GET TYPE IN X6
4CLB SRL 7 9 [GET MODE IN X7
4D62 ANDN 6 #377
4DKL BNZ 6 TERROR [J IF NOT BASIC PERIPHERAL FILE
4F5= LDX 0 MASKETM(1)
4FJW ANDS 0 EXT+9(2) [ENSURE B0 UNSET
4G4G ERN 7 #12
4GJ6 BNZ 7 TL1 [J IF SHIFT FILE
4H3Q LDCT 0 #400 [ ELSE SET B0
4HHB ORS 0 EXT+9(2) [TO DENOTE GRAPHIC FILE
4J32 BRN TL1
4JGL TERROR
4K2= LDX 7 WRONGPER(1)
4KFW CLOSE
4K^G BRN TIDYUP
4LF6 TL1
4LYQ FREECORE 3
4MDB SMO FX2
4MY2 STOZ AWORK1 [TO INDICATE MDF
4NCL MFREE FILE,FABSNB
4NGQ ...#UNS FREEBUFF
4NKW ...(
4NP2 ... FREEBUFF FILE,1,FREE FURBS ONLY
4NS6 ...)
4NX= BNG 4 OBEY [J IF OBEY COMMAND
4NY9 ... FSHCODE A,SKIPB3
4N^8 ...(
4P27 ... NOTALIEN SKIPB3
4P36 ... TRANCHKN FSHMACROID,EQUAL,SKIPB3
4P45 ... FSHMOVE START
4P54 ... LDN 3 2
4P63 ... TRANSFIN 3
4P72 ...SKIPB3
4P7^ ...)
4P8Y ... FSHCODE B,SKIPA2
4P9X ...(
4P=W ...TOALASB
4P?T ... FSHMOVE END
4P#S ...SKIPA2
4P*R ...)
4PBW ACROSS ALASB,2
4PWG OBEY ACROSS ALASB,5
4QB6 # THIS IS THE ENTRY FOR THE OBEY COMMAND
4QTQ QENTRY2
4R*B SPARAPAS [ISOLATE FILE DESCRIPTION PARAM
4RT2 MHUNT 3,CPB,CUNI
4S#L LDX 4 ANUM(3)
4SS= BNG 4 NOFILE [J IF FILE DES PARAM NONQEXISTENT
4T?W BZE 4 NOFILE [J IF IT IS NULL
4TRG NAMETOP 3,FILE,FNAME [RENAME CUNI A FILE/FNAME
4W?6 FNORM 3
4WQQ MHUNT 3,FILE,FNAME
4X=B NAMETOP 3,CPB,CUNI [ MUST BE CALLED CPB/CUNI FOR ERRORS
4XQ2 TESTREP NAMEFORM,RP1 [ JUMP IF REPLY IS 'NAMEFORM'
4Y9L LDN 4 0
4YP= USEROPEN PBREAK,EXECUTE,LEAVE
4Y^4 ... VFREEW FILE,ADJUNCTS
4^8W TESTREP RANDOM,WRAND
4^NG REPERR RP2
5286 RP1
52MQ LDN 7 0 [SET X7 -> NO COMERR
537B BRN Q2
53M2 RP2
546L ... PAPARAM XNOK,XTM
54L= LDX 7 GSIGN [SET MARKER -ENTRY FROM OBEY COMMAND
555W BRN PP
55KG ...MASKETM #37777777
5656 SYSCON
56JQ 12HMACROS
574B USECON
57J2 +1
583L ... #00000000
58H= +0
592W SIXTEEN
59GG +16
5=26 MASKRJ #10000000
5=63 ...XTM
5=9Y ... LDX 7 PJMAXPAR(1)
5=*T ... BRN NGN
5=FQ XNOK
5=^B LDX 7 PAPFERR(1)
5?98 ...NGN
5?F2 NGN 6 1
5?YL CLOSE
5#D= BRN Q2
5#XW PAPFERR +APFERR
5*7N ...PJMAXPAR +JMAXPAR
5*CG MENDAREA 20,K99MACRALAS
5*X6 #END
^^^^ ...66603033000200000000