{{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