{{htmlmetatags>metatag-description:(ICL George 3 and George 4 source: EDITEX7)}} ====== EDITEX7 ====== (George Source) **Macros used:** [[george:macro:ACROSS|ACROSS]], [[george:macro:ALTLEN|ALTLEN]], [[george:macro:BXE|BXE]], [[george:macro:BXGE|BXGE]], [[george:macro:BXL|BXL]], [[george:macro:BXU|BXU]], [[george:macro:EDCOM|EDCOM]], [[george:macro:GEOERR|GEOERR]], [[george:macro:MENDAREA|MENDAREA]], [[george:macro:MHUNTW|MHUNTW]], [[george:macro:PHOTO|PHOTO]], [[george:macro:SEGENTRY|SEGENTRY]], [[george:macro:TESTMOVE|TESTMOVE]], [[george:macro:UP|UP]], [[george:macro:UPPLUS|UPPLUS]] 22FL #LIS K0EDITEX>K0ALLGEO>0 22^= #SEG EDITEX7 [DICK RUSBRIDGE 23DW 8HEDITEX 23YG # 24D6 # ENTRY POINT TABLE 24XQ # 25CB SEGENTRY K1EDITEX,N1EDITEX 25X2 SEGENTRY K2EDITEX,N2EDITEX 26BL SEGENTRY K3EDITEX,OH 26W= SEGENTRY K4EDITEX,N4EDITEX 27*W SEGENTRY K5EDITEX,N5EDITEX 27TG SEGENTRY K7EDITEX,N7EDITEX 28*6 OH GEOERR 1,EDITEX 28SQ # 29#B # QFIT IS THE CHARACTER COMPARE ROUTINE 29S2 # ENTERED WITH X1,X3 POINTERS TO THE START OF THE STRINGS 2=?L # X4 NO OF CHARACTERS TO COMPARE 2=R= # STRINGS FIT IF X4 IS ZERO ON EXIT 2?=W # 2?QG QFIT BZE 4 QFT3 [J IF NULL STRING 2#=6 QFT1 LDCH 7 0(1) 2#PQ LDCH 6 0(3) [LOAD CHARACTERS 2*9B BXE 7 IEDS(2),QFT2 [J IF DUMMY SYMBOL 2*P2 BXU 7 6,QFT3 [J IF MISS 2B8L QFT2 BCHX 1 £ [INCREMENT POINTERS 2BN= BCHX 3 £ 2C7W BCT 4 QFT1 [LOOP 2CMG QFT3 EXIT 0 0 [EXIT 2D76 # 2DLQ # 2F6B RLOF LDX 5 IEOM(2) [RELOCATE OLD FILE BLOCK 2FB8 LDX 3 IEOA(2) 2FL2 TESTMOVE 5,RLO1 2G5L MHUNTW 3,EDIT,FRB 2GK= PHOTO 5 2H4W STO 3 IEOA(2) 2HJG STO 5 IEOM(2) 2J46 RLO1 EXIT 6 0 2JHQ # 2K3B # 2KH2 SPACE #20 2L2L # 2LG= RLNF LDX 5 IENM(2) [RELOCATE NEW FILE BLOCK 2LQ4 LDX 3 IENA(2) 2L^W TESTMOVE 5,RLN1 2MFG MHUNTW 3,FILE,FAPB 2M^6 PHOTO 5 2NDQ STO 3 IENA(2) 2NYB STO 5 IENM(2) 2PD2 RLN1 EXIT 6 0 2PXL # 2QC= # 2QWW RLIF LDX 5 IEIM(2) [RELOCATE INSTRUCTION BLOCK 2R6N LDX 3 IEIA(2) 2RBG TESTMOVE 5,RLI1 2RW6 MHUNTW 3,FILE,FRB 2S*Q PHOTO 5 2STB STO 3 IEIA(2) 2T*2 STO 5 IEIM(2) 2TSL RLI1 EXIT 6 0 2W#= # 2WRW # 2X?G # CHARACTER MOVE ROUTINE 2XR6 # 2Y=Q MVCH BZE 3 MVC1 2YQB MVCH 6 0(3) 2^=2 SBN 3 1 2^PL SRL 3 9 329= SLL 3 9 32NW BRN MVCH 338G MVC1 EXIT 0 0 33N6 # 347Q # SIZE CHECKS ON THE SIZE OF THE FAPB (AS ROUTINE IN EDITPT) 34MB # 3572 SIZE SBX 0 FX1 35LL STO 0 AWORK1(2) [SAVE LINK 366= CALL 6 RLNF 36KW LDX 3 IENA(2) [ADDRESS OF FAPB 375G LDX 5 ALOGLEN(3) [LENGTH OF BLOCK 37K6 LDX 6 4 384Q ADN 6 20 38JB SRL 6 2 [LENGTH REQUIRED 3942 BXGE 5 6,SIZE1 [J IF BLOCK BIG ENOUGH 39HL SIZE0 ALTLEN 3,6 [ADJUST SIZE 3=3= MHUNTW 3,FILE,FAPB [FIND BLOCK 3=GW STO 3 IENA(2) [STORE ADDRESS 3?2G PHOTO 5 [GET NEW PHOTO 3?G6 STO 5 IENM(2) [AND STORE 3?PY CALL 6 RLIF 3?^Q CALL 6 RLOF 3#FB SIZEX LDX 0 AWORK1(2) [GET LINK 3#^2 ADX 0 FX1 3*DL EXIT 0 0 3*Y= SIZE1 SLL 6 1 3BCW BXGE 6 5,SIZEX [J IF FAPB NOT MASSIVE 3BXG SRL 6 1 3CC6 SBN 5 33 3CWQ BNG 5 SIZEX [NOT WORTH ALTERING 3DBB LDX 0 6 3DW2 SBN 0 32 [ELSE ADJUST LENGTH TO 3F*L BPZ 0 SIZE0 [THE GREATER OF 32 AND 3FT= LDN 6 32 [THE REQUIRED LENGTH 3G#W BRN SIZE0 3GSG # 3H#6 # SFST IS THE ROUTINE WHICH SEARCHES FORWARD FOR A CHARACTER 3HRQ # STRING. IT SHOULD BE CALLED WITH 3J?B # X4 = LENGTH OF STRING 3JR2 # X3 = CHARACTER NO WHERE SEARCH IS TO START 3K=L # X1 = PTR TO STRING IN EDITING FILE 3KQ= # 3L9W # EXIT CALL+2 FOUND :- CHAR NO IN X7 3LPG # EXIT CALL+1 NOT FOUND :- X7 = IEOH 3M96 # 3MNQ SFST STO 6 ACOM6(2) 3N8B LDX 5 ACOM7(2) 3NN2 SBX 5 3 3P7L SBX 5 4 3PM= BNG 5 SFT3 [J IF SEARCH IMPOSSIBLE 3Q6W ADN 5 1 [NO OF PERMS 3QLG STO 4 AWORK2(2) [NO OF CHARS IN STRING 3R66 SRC 3 2 3RKQ ADX 1 IEIA(2) 3S5B ADX 3 IEOA(2) [WORK OUT MODIFIERS 3T4L ADX 3 IEOG(2) 3WHG STO 1 AWORK3(2) 3X36 STO 3 AWORK4(2) 3X3S ...#UNS EDCHAR 3X4G ...( 3X58 ... LDX 4 AWORK1(2) 3X5W ... BNG 4 SFT2 [J IF FOR A,B,R 3X6J ... LDCT 4 #040 3X7= ... SMO AWORK1(2) 3X7Y ... ANDX 4 4(2) [TEST FOR .S 3X8L ... BZE 4 SFT2 [J IF NOT 3X9# ...SFT5 3X=2 ... LDX 3 AWORK4(2) [CURRENT POSN IN LINE 3X=N ... LDX 1 FX1 3X?B ...SFT6 3X#4 ... LDCH 6 0(3) 3X#Q ... BXU 6 SPACE(1),SFT4 [G IF .S CHAR 3X*D ... BCHX 3 £ 3XB6 ... STO 3 AWORK4(2) 3XBS ... BCT 5 SFT6 [LOOP ON LINE LENGTH 3XCG ... BRN SFT3 [NO CAN FIND 3XD8 ...) 3XDW ...#UNS EDCHAR 3XFJ ...#SKI 3XGQ BRN SFT2 3Y2B SFT1 LDX 3 AWORK4(2) 3YG2 LDX 1 AWORK3(2) 3Y^L BCHX 3 £ 3^F= STO 3 AWORK4(2) 3^YW SFT2 LDX 4 AWORK2(2) 42DG CALL 0 QFIT 42Y6 BZE 4 SFT4 [J IF FIT 43CQ BCT 5 SFT1 [TRY AGAIN 43XB SFT3 LDX 7 ACOM7(2) [SET X7 TO END OF SEARCH AREA 44C2 LDX 6 ACOM6(2) 44WL EXIT 6 0 [EXIT NOT FOUND 45B= SFT4 LDX 7 AWORK4(2) 45TW SBX 7 IEOA(2) [SET X7 TO POINT TO 46T6 SBX 7 IEOG(2) [FIRST CHARACTER IN 48#2 SLC 7 2 [THE STRING 48RL LDX 6 ACOM6(2) 49?= EXIT 6 1 [EXIT FOUND 49QW # 4==G # TSFS IS THE ROUTINE WHICH SEARCHES BACKWARDS FOR A 4=Q6 # CHARACTER STRING 4?9Q # PARAMETERS AS FOR SFST 4?PB # 4#92 TSFS STO 6 ACOM6(2) 4#NL LDX 5 3 4*8= SBX 5 4 4*MW BNG 5 TSF3 [J IF SEARCH IMPOSSIBLE 4B7G ADN 5 1 [NO. OF PERMS 4BM6 STO 4 AWORK2(2) [NO OF CHARS IN STRING 4C6Q SBX 3 4 4CLB SRC 3 2 4D62 ADX 1 IEIA(2) [WORK OUT MODIFIERS 4DKL ADX 3 IEOA(2) 4FJW ADX 3 IEOG(2) 4H3Q STO 1 AWORK3(2) 4HHB STO 3 AWORK4(2) 4HJ3 ...#UNS EDCHAR 4HJN ...( 4HK* ... LDCT 4 #040 4HL2 ... SMO AWORK1(2) 4HLM ... ANDX 4 4(2) [TEST FOR .S 4HM# ... BZE 4 TSF2 [J IF NOT 4HM^ ...TSF5 4HNL ... STOZ AWORK2(2) [SAVES STEPPING X3 WHEN CHAR FOUND 4HP? ... LDX 3 AWORK4(2) [CURRENT POSN IN LINE 4HPY ... LDX 1 FX1 4HQK ...TSF6 4HR= ... LDCH 6 0(3) 4HRX ... BXU 6 SPACE(1),TSF4 [G IF .S CHAR 4HSJ ... SLC 3 2 4HT9 ... SBN 3 1 4HTW ... SRC 3 2 [BACK BCHX 4HWH ... STO 3 AWORK4(2) 4HX8 ... BCT 5 TSF6 [LOOP ON LINE LENGTH 4HXT ... BRN TSF3 [NO CAN FIND 4HYG ...) 4H^7 ...#UNS EDCHAR 4H^S ...#SKI 4J32 BRN TSF2 4JGL TSF1 LDX 3 AWORK4(2) 4K2= SLC 3 2 4KFW SBN 3 1 4K^G SRC 3 2 [BACKWARDS BCHX 4LF6 LDX 1 AWORK3(2) 4LYQ STO 3 AWORK4(2) 4MDB TSF2 LDX 4 AWORK2(2) 4MY2 CALL 0 QFIT [CHECK 4NCL BZE 4 TSF4 [J IF FIT 4NX= BCT 5 TSF1 [TRY AGAIN 4PBW TSF3 LDN 7 0 [SET X7 TO START OF RECORD 4PWG LDX 6 ACOM6(2) 4QB6 EXIT 6 0 [EXIT NOT FOUND 4R*B TSF4 SBX 3 IEOG(2) 4SS= SBX 3 IEOA(2) [SET X7 TO POINT TO 4T?W SLC 3 2 [FIRST CHARACTER OF STRING 4TRG SBX 3 AWORK2(2) 4W?6 LDX 7 3 4WQQ LDX 6 ACOM6(2) 4X=B EXIT 6 1 [EXIT FOUND 4XQ2 # 4Y9L # K1EDITEX IS THE ROUTINE WHICH CHECKS THE CURRENT 4YP= # RECORD BY CONTEXT 4^8W # 4^NG N1EDITEX 5286 STO 6 AWORK3(2) 52MQ CALL 6 RLIF [RELOCATE BLOCKS 537B CALL 6 RLOF 53M2 ... LDX 7 IEOC(2) [SET START EQUAL TO IEOC 546L ... LDX 6 IEOH(2) [SET STOP EQUAL TO IEOH 54L= ... STO 6 AWORK2(2) 555W ... STO 7 AWORK1(2) [SEE IF START = 0 5#D= BZE 7 SBC12 [J IF SO 5#XW SBC11 UP [ELSE NOT FOUND 5*CG SBC12 SMO AWORK3(2) 5*X6 LDX 7 1(2) [GET INDICATOR 5BBQ LDX 5 7 5BWB ANDX 5 BSB18 [GET CHAR COUNT 5CB2 LDX 4 5 5CTL NGX 5 5 5D*= ADX 5 AWORK2(2) [CHECK IF ROOM FOR SEARCH 5DHX ... LDCT 6 #100 5DL6 ... ANDX 6 7 5DN* ... BNZ 6 NAYG [J IF 'G' INSTRUCTION 5DSW BNG 5 SBC11 [J IF NOT 5F#G ...NAYG ADN 5 1 [NO OF PERMS FOR CONTAINS 5FS6 SLC 7 1 5G?Q BNG 7 SBC30 [J TO IGNORE LEADING SPACES 5GRB SRC 7 1 5H?2 BNG 7 SBC20 [J FOR CONTAINS 5HQL SMO AWORK3(2) 5J== LDX 1 2(2) 5JPW LDX 3 IEOA(2) [SET UP POINTERS 5K9G ADX 1 IEIA(2) 5MML ADX 3 IEOG(2) 5N7= SLC 7 2 5NLW BPZ 7 NOTG 5P6G LDN 3 IESD(2) 5PL6 NOTG 5QKB CALL 0 QFIT [DO CHECK 5R52 BNZ 4 SBC11 [NOT FOUND 5RJL SBC13 UPPLUS 1 [FOUND 5S4= SBC20 SMO AWORK3(2) 5SHW LDX 1 2(2) 5T3G LDX 3 IEOA(2) [GET POINTERS 5TH6 ADX 1 IEIA(2) 5WGB ADX 3 IEOG(2) 5X^= STO 1 ACOM7(2) [STORE TEMPORARILY 5YDW STO 3 ACOM8(2) 5YYG STO 4 AWORK4(2) 5^D6 BRN SBC22 [J TO COMPARE 5^XQ SBC21 LDX 3 ACOM8(2) 62CB LDX 1 ACOM7(2) 62X2 BCHX 3 £ [STEP PTR FOR NEXT SEARCH 63BL STO 3 ACOM8(2) 63W= SBC22 LDX 4 AWORK4(2) 64*W CALL 0 QFIT [COMPARE 64TG BZE 4 SBC13 [J IF FOUND 65*6 BCT 5 SBC21 [TRY AGAIN 65SQ BRN SBC11 [NOT FOUND 66#B SBC30 BZE 4 SBC13 [J IF NULL STRING 66S2 SMO AWORK3(2) 67?L LDX 1 2(2) 67R= LDX 3 IEOA(2) 68=W ADX 1 IEIA(2) 68QG LDX 5 AWORK2(2) 69PQ ADX 3 IEOG(2) 6=9B ... STOZ 6 6?8L SBC31 LDCH 7 0(3) [GET O/F CHAR 6?N= SMO FX1 6#7W BXU 7 SPACE,SBC32 [J IF NOT A SPACE 6#MG BCHX 3 £ [UPDATE PTR 6#X# ... ADN 6 1 [INCREMENT NO. OF LEADING SPACES 6*76 BCT 5 SBC31 [REDUCE NO OF PERMS 6*LQ BRN SBC11 [NOT FOUND IF O/F ALL SPACES 6*Q9 ...SBC32 SMO AWORK3(2) 6*TN ... LDX 5 1(2) 6*^7 ... ANDX 5 BSB18 [GET NO. OF CHARS. IN TERM. 6B4L ... NGX 5 5 6B85 ... ADX 5 AWORK2(2) [CHECK IF ROOM FOR SEARCH 6B?J ... SBX 5 6 [IGNORING LEADING SPACES 6BC3 ... BNG 5 SBC11 [J IF NOT 6BGG ... STO 1 ACOM7(2) [POINTS TO IN TERM. 6BL2 STO 3 ACOM8(2) 6C5L STO 4 AWORK4(2) 6CK= LDN 5 1 6D4W BRN SBC22 6DJG # 6F46 # K2EDITEX IS THE ROUTINE WHICH EVALUATES CHARACTER BY CONTEXT 6FHQ # 6G3B N2EDITEX 6GH2 STO 6 AWORK1(2) [SAVE DATA PTR 6H2L CALL 6 RLOF 6HG= CALL 6 RLIF 6H^W SMO AWORK1(2) 6JFG LDX 4 4(2) [GET INDICATOR 6JJL ...#UNS EDCHAR 6JMQ ... LDCT 6 #100 6JQW ...#UNS EDCHAR 6JW2 ...#SKI 6J^6 LDCT 6 #177 6KDQ ANDX 6 4 6KYB BZE 6 PT1 [J NOT .E 6LD2 LDX 7 IEOH(2) 6LXL BRN PT4 6MC= PT1 LDX 3 IEOC(2) 6MWW PT3 SMO AWORK1(2) 6NBG LDX 1 4(2) [GET PTR TO STRING 6NW6 SMO AWORK1(2) 6P*Q LDX 4 3(2) 6PTB BNG 4 PT5 [J IF BACKWARDS 6Q*2 LDX 7 IEOH(2) 6QSL STO 7 ACOM7(2) 6R#= CALL 6 SFST 6RRW BRN PT6 [J IF NOT FOUND 6S?G PT4 SMO AWORK1(2) 6SR6 STO 7 3(2) [STORE CHAR NO IN 6T=Q SMO AWORK1(2) [APPROPRIATE DATA AREA 6TQB STOZ 4(2) 6W=2 PTUP UP 6WPL PT5 NGX 4 4 6X9= CALL 6 TSFS 6XNW BRN PT6 [J IF NOT FOUND 6Y8G BRN PT4 [J IF FOUND 6YN6 PT6 LDN 5 IEWT [J IF CONDITIONAL 6^7Q BXU 5 AWORK1(2),PT4 [REPETITION CHECK 6^MB LDXC 5 IESY(2) [J IF A TERMINATOR 7272 BCS PT4 [STOPS ON THIS RECORD 72LL LDX 6 7 [SAVE DESTINATION CHAR 736= EDCOM CHNF ["CHARACTER NOT FOUND" 73KW LDX 7 6 745G BRN PT4 74K6 # 754Q # 75JB ZABR SBX 0 FX1 7642 STO 0 ACOM6(2) 76HL LDX 3 7 773= SBX 3 IEOC(2) [NO OF CHARS TO TRANSCRIBE 77GW BNG 3 ZABEX [J IF NONE 782G LDX 5 IENH(2) 78G6 SBX 5 IENC(2) 78^Q STO 5 AWORK4(2) [ROOM LEFT IN N/F 79FB BZE 5 ZAB0 79^2 BXL 3 AWORK4(2),ZABR1 7=DL BXE 3 AWORK4(2),ZABR1 [J IF ENOUGH ROOM 7=Y= ZAB0 LDN 0 #10 [ELSE NOTE WE HAVE 7?CW ORS 0 IESW(2) [TRUNCATED THE RECORD 7?XG LDX 3 AWORK4(2) [AND ADJUST THE SIZE 7#C6 ZABR1 SBS 3 AWORK4(2) [UPDATE ROOM LEFT 7#WQ STO 3 AWORK2(2) 7*BB LDX 4 IENC(2) [WORK OUT WHAT IENC 7*W2 ADX 4 3 [WOULD BECOME 7B*L ADX 4 IEWT+4(2) 7BT= CALL 0 SIZE [CHECK SIZE OF FAPB 7C#W LDX 6 IEOC(2) 7CSG LDX 3 AWORK2(2) 7D#6 LDX 7 IENC(2) 7DRQ ADS 3 IEOC(2) [UPDATE CHARACTER POINTERS 7F?B ADS 3 IENC(2) 7FR2 SRC 6 2 7G=L SRC 7 2 7H9W BNZ 7 ZABR2 [NOT REQUIRED 7NGX ... LDX 0 IEOG(2) 7NXN ... SBN 0 A1 7P#F ... SLL 0 2 [NO. OF CHAR IN RECORD HDDR 7PP= ... 7Q63 ... LDX 4 IEOA(2) [OLD FILE BLOCK ADDR 7QGS ... LDX 5 IENA(2) [NEW FILE BLOCK ADDR 7QXK ... ADN 4 A1 [SRT OF RED TAPE 7R#B ... ADN 5 A1 [SRT OF RED TAPE 7RP7 ... SMO 0 [LENGTH OF RED TAPE 7S5Y ... MVCH 4 0 [AND COPY OVER 7SGQ ZABR2 ADX 6 IEOG(2) 7T2B ADX 7 IENG(2) 7T^L ADX 6 IEOA(2) [GET ABSOLUTE ADDRESSES 7WF= ADX 7 IENA(2) 7WYW CALL 0 MVCH [MOVE THE DATA 7XDG LDX 3 IEWT+4(2) [LENGTH OF 2ND STRING 7XY6 LDX 6 IEWT+3(2) [POINTER TO IT 7YCQ BXL 3 AWORK4(2),ZABR3 [J IF SUFFICIENT 7YXB BXE 3 AWORK4(2),ZABR3 [ROOM 7^C2 LDN 0 #10 [ELSE NOTE WE HAVE 7^WL ORS 0 IESW(2) [TRUNCATED THE RECORD 82B= LDX 3 AWORK4(2) [AND ADJUST 82TW ZABR3 ADX 6 IEIA(2) 83*G ADS 3 IENC(2) [UPDATE N/F POINTER 83T6 CALL 0 MVCH [MOVE IN 2ND STRING 84#Q ZABEX LDX 0 ACOM6(2) 84SB ADX 0 FX1 85#2 EXIT 0 0 85RL # 86?= # 86QW SETUP STO 0 ACOM6(2) [SAVE LINK 87=G CALL 6 RLOF [RELOCATE BLOCKS 87Q6 CALL 6 RLIF 889Q LDX 7 IEOH(2) 88PB LDXC 6 IESY(2) 8992 BCC SET1 [J IF NO REPETITION 89NL LDX 7 IECC(2) 8=8= SET1 STO 7 ACOM7(2) [SET ENDPOINT FOR SEARCH 8=MW LDX 3 IEOC(2) [START POINT FOR SEARCH 8?7G LDX 1 IEWT+1(2) [PTR TO KEY STRING 8?M6 LDX 4 IEWT+2(2) [LENGTH OF STRING 8?PP ...#UNS EDCHAR 8?S# ...( 8?WX ... LDCT 0 #400 8?^G ... STO 0 AWORK1(2) [SET -VE FOR A,B,R 8#45 ...) 8#6Q LDX 0 ACOM6(2) [GET LINK 8#LB EXIT 0 0 8*62 # 8*KL # 8B5= N4EDITEX [A INSTRUCTION 8BJW CALL 0 SETUP [SET PARAMS FOR SEARCH 8C4G CALL 6 SFST [SEARCH FOR STRING 8CJ6 BRN NFD [J IF NOT FOUND 8D3Q ADX 7 IEWT+2(2) [INCLUDE LENGTH OF STRING 8DHB CALL 0 ZABR [DO WORK 8F32 ZA LDN 0 #10 8FGL ANDX 0 IESW(2) [SEE IF RECORD TRUNCATED 8G2= BZE 0 ZAEX [J IF NOT 8GFW ERS 0 IESW(2) [CLEAR SWITCH 8G^G EDCOM YRTL 8HF6 ACROSS EDITOR,12 8HYQ ZAEX ACROSS EDITOR,3 8JDB # 8JY2 # 8KCL N5EDITEX [B INSTRUCTION 8KX= CALL 0 SETUP [SET PARAMS FOR SEARCH 8LBW CALL 6 SFST [SEARCH FOR STRING 8LWG BRN NFD [J IF NOT FOUND 8MB6 CALL 0 ZABR [DO THE WORK 8MTQ BRN ZA 8N*B # 8NT2 # 8P#L N7EDITEX [R INSTRUCTION 8PS= CALL 0 SETUP [SET PARAMS FOR SEARCH 8Q?W CALL 6 SFST [SEARCH FOR STRING 8QRG BRN NFD [J IF NOT FOUND 8R?6 CALL 0 ZABR [DO THE WORK 8RQQ LDX 7 IEWT+2(2) [SKIP PAST UNWANTED 8S=B ADS 7 IEOC(2) [STRING 8SQ2 BRN ZA 8T9L # 8TP= # 8W8W NFD STOZ IEWT+4(2) [NULLIFY 2ND STRING 8WNG CALL 0 ZABR [COPY REQUIRED CHARS 8X86 LDXC 6 IESP(2) [ANY REPETITION 8XMQ BCC NFD2 [J IF NOT 8Y7B LDXC 7 IESY(2) [DOES TERMINATOR STOP ON THIS 8YM2 BCC NFD2 [RECORD, J IF NOT 8^6L BZE 7 NFD1 [J IF STACK NOW CLEAR 8^L= LDCT 6 #400 925W ORX 7 6 [KEEP B0 OF IESP SET 92KG NFD1 STO 7 IESP(2) [RESET STACK TO 9356 SMO 7 [PULLED UP VALUE 93JQ LDX 6 IESTACK+1(2) 944B STO 6 IEIP(2) [SKIP PAST TERMINATOR 94J2 STOZ IESY(2) 953L BRN ZA 95H= NFD2 EDCOM CHNF ["CHARACTER NOT FOUND" 962W BRN ZA 96GG MENDAREA 100,K100EDITEX 9726 #END ^^^^ ...30054047001500000000