Show pageBacklinksBack to top This page is read only. You can view the source, but not change it. Ask your administrator if you think this is wrong. {{htmlmetatags>metatag-description:(ICL George 3 and George 4 source: EDITET7)}} ====== EDITET7 ====== (George Source) **Macros used:** [[george:macro:ALASHUNT|ALASHUNT]], [[george:macro:BACKSPACE|BACKSPACE]], [[george:macro:BRKINOFF|BRKINOFF]], [[george:macro:BXE|BXE]], [[george:macro:BXGE|BXGE]], [[george:macro:BXU|BXU]], [[george:macro:CLOSE|CLOSE]], [[george:macro:DOWN|DOWN]], [[george:macro:EDERR|EDERR]], [[george:macro:FILEMOVE|FILEMOVE]], [[george:macro:GEOERR|GEOERR]], [[george:macro:IET|IET]], [[george:macro:IETS|IETS]], [[george:macro:MENDAREA|MENDAREA]], [[george:macro:MHUNTW|MHUNTW]], [[george:macro:PHOTO|PHOTO]], [[george:macro:SEGENTRY|SEGENTRY]], [[george:macro:SUBREC|SUBREC]], [[george:macro:TESTBRKIN|TESTBRKIN]], [[george:macro:TESTMOVE|TESTMOVE]], [[george:macro:UP|UP]], [[george:macro:UPPLUS|UPPLUS]] <code - EDITET7.txt>22FL #LIS K0EDITET>K0ALLGEO>0 22^= #SEG EDITET7 [DICK RUSBRIDGE 23DW 8HEDITET 23YG # 24D6 # THIS SEGMENT ENCODES <TERMINATOR>. 24XQ # 25CB # ENTRY POINT TABLE 25X2 # 26BL SEGENTRY K1EDITET,N1EDITET [ANALYSE FROM NEXT CHAR.- 26W= SEGENTRY K2EDITET,N2EDITET [ANALYSE FROM CURRENT CHAR. 27*W SEGENTRY K3EDITET,N3EDITET [PART 0 INSTRUCTION 27TG SEGENTRY K4EDITET,N4EDITET [CLEARS BREAK-IN (FROM EDITOR) 28*6 SEGENTRY K5EDITET,N5EDITET [BODY OF POPUP IN EDITOR (X) 28SQ SEGENTRY K6EDITET,N8EDITET [BODY OF PULLUP IN EDITOR (Z) 29#B SEGENTRY K7EDITET,N7EDITET [BODY OF UMOP IN EDITOR (U) 29S2 # 2=?L O30 #30 2=R= O31 #31 2?=W O34 #34 2?QG # 2#=6 # 2#PQ # XCLSE CLOSES THE FILE ON TOP OF THIS ACTIVITIES FILE STACK 2*9B # 2*P2 XCLSE SBX 6 1 2B8L CLOSE 2BN= ADS 1 6 2C7W EXIT 6 0 2CMG # 2D76 # 2DLQ # RLIF RELOCATES THE INSTRUCTION BLOCK 2F6B # 2FL2 RLIF LDX 5 IEIM(2) [GET PHOTO 2FTS ... LDX 3 IEIA(2) 2G5L TESTMOVE 5,RL1 [J IF NOT MOVED 2GK= MHUNTW 3,FILE,FRB [ELSE REDUNDANT 2H4W PHOTO 5 2HJG STO 3 IEIA(2) [STORE NEW WHERE 2J46 STO 5 IEIM(2) [AND WHEN 2JHQ RL1 EXIT 6 0 2K3B # 2KH2 # NCH IS THE NEXT CHARACTER FROM EDITING FILE ROUTINE. THE REQUIRED 2L2L # CHARACTER IS PUT INTO X7 AND EXIT IS TO CALL+2. AN ATTEMPT TO READ 2LG= # OFF THE BLOCK CAUSES EXIT TO CALL+1. A SUBSEQUENT CALL WILL CAUSE 2L^W # GEOERR EDITET. ADDRESS OF LAST CHARACTER IS LEFT IN X0. 2MFG # 2M^6 NCH LDX 3 IEIP(2) [ADDRESS OF NEXT CHARACTER 2NDQ BZE 3 NCH3 [J IF OFF END LAST TIME 2NYB STO 3 0 [GET CHARACTER ADDRESS OF END OF 2PD2 SLC 0 2 [BLOCK AND PERFORM ARITHMETIC 2PXL SBX 0 IEIH(2) [TO DETERMINE IF WE ARE ABOUT TO RUN 2QC= BPZ 0 NCH2 [OFF THE END OF THE BLOCK 2QWW NCH1 SMO IEIA(2) [MODIFY BY ADDRESS OF BLOCK 2RBG LDCH 7 0(3) [LOAD CHARACTER INTO X7 2RW6 LDX 0 3 [LEAVE ADDRESS IN X0 2S*Q BCHX 3 £ [INCREMENT ADDRESS 2STB STO 3 IEIP(2) [STORE ADDRESS OF NEXT CHARACTER 2T*2 EXIT 6 1 [AND RETURN TO CALL+2 2TSL NCH2 STOZ IEIP(2) [CLEAR POINTER FOR NEXT TIME 2W#= STO 3 0 [OLD CHARACTER ADDRESS 2WRW EXIT 6 0 [AND RETURN TO CALL+1 2X?G NCH3 GEOERR 1,EDITET 2XR6 # 2Y=Q NCHX CALL 6 NCH [NEXT CHARACTER WITH A SYNTAX 2YQB BRN SE4 [ERROR IF OFF END 2^=2 EXIT 5 0 2^PL # 329= # CODE FOR DEALING WITH SYNTAX ERRORS. 32NW # ENTRIES ARE - 338G # SE1 SCAN, STARTING AT NEXT CHARACTER 33N6 # SE2 SCAN, STARTING AT THIS CHARACTER 347Q # SE3 SCAN ENDED AT CURRENT CHARACTER 34MB # SE4 SCAN ENDED AT LAST CHARACTER 3572 # 35LL # 366= SE1 CALL 5 NCHX [GET ANOTHER CHARACTER 36KW SE2 BXE 7 O31(1),SE3 [J IF *31 375G BXU 7 O34(1),SE1 [LOOP NOT *34 37K6 SE4 STO 0 IEIP(2) 384Q SE3 38JB DOWN EDITER,3 ['SYNTAX ERROR : OH!' 3942 NER UP 39HL # 3=3= TLU STO 7 3 [TABLE LOOK-UP 3=GW SRC 3 2 [CONVERT TO CHARACTER ADDRESSS 3?2G ... SMO 6 3?G6 ... OBEY 0 3?^Q LDCH 3 0(3) [ACCESS TABLE 3#FB ADS 1 3 [DATUMISE RESULT 3#^2 EXIT 6 1 [AND FINISH 3*DL # 3*Y= # 3BCW # MULTIFLICATION ROUTINE. STOPS AT FIRST NON-DECIMAL CHARACTER. 3BXG # 3CC6 MULT STO 6 AWORK3(2) [STORE LINK 3CWQ LDN 4 0 [AND SET RESULT 3DBB LDN 5 0 [TO ZERO. 3DW2 BRN MM4 [FIRST CHARACTER IN X7 3F*L MM1 EDERR NUTL ['NUMBER TOO LARGE' 3FT= BRN SE2 ['SYNTAX ERROR: NNNNNNNN' 3G#W MM2 STO 0 IEIP(2) [STEP BACK CH PTR 3GSG BNZ 4 MM1 [J IF TOO LARGE 3H#6 LDX 6 AWORK3(2) [GET LINK 3HRQ STO 5 IEBF(2) [STORE RESULT 3J?B EXIT 6 0 [AND FINISH 3JR2 MM3 CALL 6 NCH [NEXT CHARACTER 3K=L BRN MM2 [J IF END 3KQ= MM4 CDB 4 7 [CONVERT 3L9W BCS MM2 [J IF END 3LPG BVSR MM1 [J IF HUGE 3M96 BRN MM3 [CARRY ON 3MNQ # 3N8B # THIS SUBROUTINE ANALYSES <TERMINATOR>, THE SYNTAX OF WHICH MAY BE 3NN2 # FOUND IN THE USER SPECIFICATION. ENTRIES ARE: 3P7L # 3PM= # 1 TERM - ANALYSE FROM THE NEXT CHARACTER. 3Q6W # 2 TERI - ANALYSE FROM CURRENT CHARACTER IN X7. 3QLG # 3R66 # ENTRY CONDITIONS: 3RKQ # 3S5B # X3 = ADDRESS OF 5-WORD OUTPUT AREA 3SK2 # X5 = CURRENT OLD FILE RECORD NUMBER 3T4L # X4 = CURRENT OLD FILE CHARACTER NUMBER 3TJ= # 3W3W # OUTPUT FORMAT: 3WHG # 3X36 # [X3]+0 0.0 E 3XGQ # 1.0 CONTEXT FORWARDS 3Y2B # 1.2 CONTEXT BACKWARDS 3YG2 # 2.0 ABSOLUTE FORWARDS 3Y^L # 2.2 ABSOLUTE BACKWARDS 3^F= # [X3]+1 ABSOLUTE RECORD NUMBER / CHARACTER COUNT 3^YW # B0=1 CONTAINS 42DG # B1=1 SPACES 42Y6 # B2=1 G INSTRUCTION 43CQ # [X3]+2 ZERO / CHARACTER ADDRESS 43XB # [X3]+3 SIGNED CHARACTER NUMBER / SIGNED CHARACTER COUNT 4478 ...# [X3]+4 ZERO / CHARACTER ADDRESS 44C2 ...# B2=1 IF .E 44LS ...# B3=1 IF .S 44WL # 45B= # 45TW # IEL2 IS AN ADDITIVE CONTEXT COUNTER. VALUES ARE: 46*G # 46T6 # 1 # 47#Q # 2 - FIRST TIME 47SB # 4 C 48#2 # 10 STRING FIRST TIME 48RL # 20 NUMBER FIRST TIME 49?= # 40 RECORD COMPLETE 49QW # 100 - SECOND TIME 4==G # 200 NUMBER SECOND TIME 4=Q6 # 400 STRING SECOND TIME 4?9Q # 1000 E SECOND TIME 4?PB # 2000 S 4#92 # 4000 G 4#B8 ...# 10000 S SECOND TIME (.S) 4#HB ...# 20000 #SECOND TIME (.#) 4#NL # 4*8= # THIS ROUTINE STORES THE INPUT PARAMETERS 4*MW # AND INITIALISES THE OUTPUT AREA. 4B7G # 4BM6 TESP ADS 2 3 [ADDRESS OF O/P 4C6Q STO 3 IEL3(2) [AND IN FX2 4CLB STOC 4 IEL4(2) [CHARACTER NUMBER 4D62 STOZ IEL2(2) [INITIALISE CONTEXT 4DKL STO 0 AWRK1(2) [STORE LINK 4F5= LDN 4 5 [SIZE OF O/P 4FJW STOC 5 IEL5(2) [RECORD NUMBER 4G4G TES1 STOZ 0(3) [ZEROISE OUTPUT 4GJ6 BUX 3 £ 4H3Q BCT 4 TES1 4HHB CALL 6 RLIF [GET INSTRUCTION BLOCK 4J32 LDX 0 AWRK1(2) 4JGL TES2 EXIT 0 0 4K2= # 4KFW # THIS ROUTINE CHECKS THE BITS IN X5 AGAINST THE PARAMETER. 4K^G # IF ILLEGAL BITS ARE SET A SYNTAX ERROR IS REPORTED. 4LF6 # 4LYQ TESX ANDX 5 0(3) 4MDB BNZ 5 SE2 4MY2 EXIT 3 1 4NCL # 4NX= TT [<TERMINATOR> EXECUTION FANOUT TABLE 4PBW #REP #20 4PWG 0 4QB6 # 4QTQ # THE MAIN LOGIC OF THE ROUTINE STARTS HERE. 4R*B # 4RT2 N2EDITET 4S#L TERI CALL 0 TESP [STORE PARAMETERS 4SS= BRN TER1 4T?W TERP ORS 5 IEL2(2) [INCREMENT CONTEXT COUNTER 4TRG BRN TER0 4W?6 TERR BRN SE2 [SYNTAX ERROR 4WQQ N1EDITET 4X=B TERM CALL 0 TESP [STORE PARAMETERS 4XQ2 TER0 IETS #20,TER0-TERR,TT [SPACE IS IGNORED 4Y9L IET ],$ 4YP= CALL 6 NCH [GET A CHARACTER 4^8W BRN TENL [J IF FINISHED 4^NG TER1 CALL 6 TLU [LOOK UP <TERMINATOR> 5286 ADN 3 TT(1) [TABLE AT TT 52MQ LDX 5 IEL2(2) [LOAD CONTEXT 537B EXIT 3 TERR [AND FANOUT 53M2 # 546L TENL LDX 5 IEL2(2) [LOAD CONTEXT AT END 54L= TEND IETS ),TEND-TERR [END OF ANALYSIS 555W IET *,#34 [ ) , * 55KG STO 0 IEIP(2) [BACKSPACE 5656 BRN TER12 [J TO FINAL CHECK 56JQ # 574B IETS E,0?-TERR [E (END OF RECORD/FILE) 57J2 BZE 5 TIDYE [J IF ONLY ARG TO FINISH 583L CALL 3 TESX [CHECK THAT ONLY 586Q ...#UNS EDCHAR 589W ... #31700 [<RECORD> HAS BEEN ANALYSED 58*2 ...#UNS EDCHAR 58D6 ...#SKI 58H= #1700 [<RECORD> HAS BEEN ANALYSED 592W LDN 5 #1000 [SET SWITCH 59GG BRN TERP [AND REPEAT 5=26 # 5=FQ IETS #23,0?-TERR [# (ABSOLUTE NUMBER) 5=H^ ...#UNS EDCHAR 5=L8 ...( 5=NC ... LDN 3 #40 5=QL ... ANDX 3 IEL2(2) [RECORD COMPLETE? 5=ST ... BNZ 3 TER1A [J IF SO 5=X4 ...) 5=^B BNZ 5 SE2 [J IF NOT FIRST CHARACTER 5?F2 LDN 5 1 [SET SWITCH 5?YL BRN TERP [AND REPEAT 5#D= # 5#XW IETS -,0?-TERR [- (GO BACKWARDS) 5*66 ... 5*#B ... LDN 3 #40 5*GL ... ANDX 3 IEL2(2) [RECORD PART COMPLETE? 5*NW ... BZE 3 TER2 [JIF NOT 5*X6 CALL 3 TESX [CHECK ON SECOND TIME 5B2= ...#UNS EDCHAR 5B5B ... #31700 5B8G ...#UNS EDCHAR 5B?L ...#SKI 5BBQ #1700 5BWB ... LDN 5 #100 [SET SWITCH 5CB2 BRN TERP [AND CONTINUE 5CKS ...TER2 5CTL ... BNZ 5 SE2 [ERROR IF ANYTHING BOFORE MINUS 5D5D ... LDN 5 2 [SET FIRST TIME MINUS 5D*= BRN TERP [AND CONTINUE 5DSW # 5F#G IETS C,0?-TERR [C (CONTAINING) 5FS6 CALL 3 TESX [CHECK CONTEXT 5FX= ...#UNS EDCHAR 5G2B ... #37775 5G5G ...#UNS EDCHAR 5G8L ...#SKI 5G?Q #7775 [ONLY MINUS IS ALLOWED 5GRB LDN 5 4 [SET SWITCH 5H?2 BRN TERP [AND CONTINUE 5HQL # 5J== IETS S,0?-TERR [S (SPACES) 5J#F ...#UNS EDCHAR 5JBN ...( 5JDX ... LDN 3 #40 5JH6 ... ANDX 3 IEL2(2) [RECORD COMPLETE? 5JK* ... BNZ 3 TER2A [J IF SO 5JMJ ...) 5JPW CALL 3 TESX [CHECK CONTEXT 5JT2 ...#UNS EDCHAR 5JY6 ... #37775 5K3= ...#UNS EDCHAR 5K6B ...#SKI 5K9G #7775 [ONLY MINUS ALLOWED 5KP6 LDN 5 #2000 5L8Q BRN TERP 5LNB # 5N7= IETS G,0?-TERR [G (GEDIT) 5NLW CALL 3 TESX [CHECK CONTEXT 5NQ2 ...#UNS EDCHAR 5NT6 ... #37775 5NY= ...#UNS EDCHAR 5P3B ...#SKI 5P6G #7775 [ONLY MINUS ALLOWED 5PL6 LDN 5 #4000 5Q5Q BRN TERP 5R52 # 5RJL IETS .,0?-TERR [. (START OF <CHARACTER>) 5S4= CALL 3 TESX [CHECK CONTEXT 5S7B ...#UNS EDCHAR 5S=G ... #31740 5S*L ...#UNS EDCHAR 5SDQ ...#SKI 5SHW ... #1740 [ <CHARACTER> NOT ALLOWED 5T3G LDN 5 #30 [CHECK IF <RECORD> 5TH6 ANDX 5 IEL2(2) [IS NULL 5W2Q BNZ 5 TER9 [J IF NOT 5WGB LDN 5 #60 [ELSE SIMULATE 5X22 BRN TERP [RELATIVE ZERO 5XFL TER9 LDN 5 #40 [SET <CHARACTER> SWITCH 5X^= BRN TERP [AND CONTINUE 5YDW # 5YYG IETS 0,0?-TERR [NUMBER 5^D6 IET 1,2,3,4,5,6,7,8,9 5^XQ BRN NUMBER 62CB # 62X2 IETS :,0?-TERR [<STRING> 63BL IET ;,<,=,>,?,!,",£,%,&,',+,/ 63W= ANDN 5 #40 [CHECK CONTEXT 64*W BZE 5 TER4 [J IF FIRST TIME 64TG LDN 5 #1200 [ILLEGEL CONTEXTS 65*6 BRN TER5 [CHECK 65SQ TER4 LDN 5 #31 [ILLEGAL CONTEXTS 66#B TER5 ANDX 5 IEL2(2) [CHECK 66S2 BNZ 5 SE2 [J IF ERROR 67?L LDX 1 IEIP(2) [START ADDRESS 67R= STO 7 5 [FIRST CHARACTER 68=W NGN 4 1 [SET COUNT 68QG TER6 CALL 6 NCH [GET A CHARACTER 69=6 BRN SE3 [ERROR IF OFF END 69PQ ADN 4 1 [COUNT IT AND 6=9B BXE 5 7,TER8 [J IF TERMINAL QUOTE 6=P2 BXU 7 IEVS(2),TER6 [LOOP IF NOT V.S. 6?8L LDX 3 0 [ELSE REPLACE THE 6?N= LDN 7 #20 [V.S. CHARACTER IN 6#7W SMO IEIA(2) [THE BUFFER BY A 6#MG DCH 7 0(3) [SPACE THEN LOOP 6*76 BRN TER6 [AS BEFORE 6*LQ TER8 LDN 6 #2000 6B6B BZE 4 TER11 [SKIP IF NULL STRING 6BL2 ANDX 6 IEL2(2) [CHECK CONTEXT 6C5L BZE 6 TER11 [J IF NOT S 6CK= LDN 5 #20 6D4W TER10 SMO IEIA(2) [RE-SCAN THE <STRING> 6DJG LDCH 6 0(1) [FOR LEADING SPACES 6F46 BXU 6 5,TER11 [TRUNCATING THEM 6FHQ BCHX 1 £ [LOOP UNTIL FIRST NON-SPACE 6G3B BCT 4 TER10 [CHAR OR END OF <STRING> 6GH2 TER11 LDN 5 #10 [FIRST TIME CONTEXT 6H2L LDN 0 #40 [FIRST TIME SWITCH 6HG= LDX 3 IEL3(2) [ADD OF O/P 6H^W ANDX 0 IEL2(2) [CHECK 6JFG BZE 0 TER7 [J IF FIRST TIME 6J^6 LDN 5 #400 [SECOND TIME CONTEXT 6KDQ ADN 3 2 [SECOND TIME O/P 6KYB TER7 STO 1 2(3) [STORE ADDRESS 6LD2 STO 4 1(3) [STORE COUNT 6LXL LDX 1 FX1 [RE-SET 6MC= BRN TERP [AND CONTINUE 6MCW ...#UNS EDCHAR 6MDG ...( 6MF6 ...# 6MFQ ...# TEST FOR .# 6MGB ...TER1A 6MH2 ... CALL 3 TESX [CHECK ONLY RECORD GAS 6MHL ... #31700 [BEEN ANALYSED 6MJ= ... LDN 5 #4000 6MJW ... SLL 5 2 [#20000 FOR .# 6MKG ... BRN TERP 6ML6 ...# 6MLQ ...# TEST FOR .S 6MMB ...TER2A 6MN2 ... CALL 3 TESX [CHECK ONLY RECORD HAS 6MNL ... #31600 6MP= ... LDN 5 1 6MPW ... LDX 3 IEL3(2) [ADDR OF OUTPUT 6MQG ... STO 5 3(3) [LENGTH OF .S CHAR = 1 6MR6 ... LDN 5 #4000 6MRQ ... SLL 5 1 6MSB ... BRN TERP [#10000 FOR .S 6MT2 ...# 6MTL ...) 6MWW NUMBER 6NBG CALL 6 MULT [CONVERSION OF NUMBER 6NW6 LDN 0 #40 [THEN CHECK CONTEXT 6P*Q LDX 5 IEL2(2) [ IF FIRST TIME DONE 6PTB ANDX 0 IEL2(2) [JUMP TO TER3 6Q*2 LDX 6 IEBF(2) [LOAD RESULT 6QSL BNZ 0 TER3 6R#= CALL 3 TESX [CHECK CONTEXT 6RCB ...#UNS EDCHAR 6RGG ... #37774 6RKL ...#UNS EDCHAR 6RNQ ...#SKI 6RRW #7774 [FOR FIRST TIME 6S?G LDX 3 IEL3(2) [ADD OF O/P 6SR6 LDN 5 #20 [SET SWITCH 6T=Q STO 6 1(3) [STORE RESULT 6TQB BRN TERP [AND CONTINUE 6W=2 TER3 CALL 3 TESX [SECOND TIME NUMBER 6W*6 ...#UNS EDCHAR 6WD= ... #11600 6WHB ...#UNS EDCHAR 6WLG ...#SKI 6WPL #1600 [CHECK CONTEXT 6X9= LDX 3 IEL3(2) [ADD OF O/P 6XNW LDN 5 #200 [SET SWITCH 6Y8G STO 6 3(3) [STORE RESULT 6YN6 BRN TERP [AND CONTINUE 6^7Q # 7272 TER12 ANDN 5 #6004 [IF NOT C OR S OR G 73KW BZE 5 TIDY [J TO DECANT O/P 745G LDN 3 #10 [IF NO STRING FOLLOWED C OR S 74K6 ANDX 3 IEL2(2) [ITS AN ERROR 754Q BZE 3 SE2 [J IF STRING ABSENT 75JB # 7642 # 76HL # AT THIS POINT WE HAVE SOME VALUES IN THE OUTPUT AREA AND THE 773= # CONTEXT BITS IN IEL2 SO WE HAVE TO PROCESS THE OUTPUT AREA. 77GW # 782G TIDY LDX 0 IEL2(2) [CONTEXT COUNTER 78=# ... BZE 0 SE2 [J IF NO CONTEXT BITS SET 78G6 LDX 3 IEL3(2) [O/P AREA 78^Q LDX 4 1(3) [RECORD / CH CNT 79FB LDX 5 3(3) [CHAR / CH CNT 79^2 LDX 6 4(3) [Z / CH INDEX 7=DL LDN 7 0 [INITIALISE 7=Y= SRC 0 2 [SHIFT TO *2 7?CW BPZ 0 TD1 [J NOT - FIRST TIME 7?XG LDCT 7 #400 [MEANS GO BACKWARDS 7#C6 TD1 ORN 7 1 [TENTATIVELY CONTEXT 7#WQ SRC 0 3 [SHIFT TO *20 7*BB BPZ 0 TD2 [J NOT NUMBER FIRST TIME 7*W2 ADN 7 1 [ADD FOR ABSOLUTE 7B*L BPZ 7 TD21 [J NOT BACKWARDS 7BT= NGX 4 4 [INVERT SIGN 7C#W TD21 SLC 0 1 [SHIFT TO *10 7CSG BRN TD20 [SKIP NEXT BIT 7D#6 TD2 SLC 0 1 [SHIFT TO *10 7DRQ BNG 0 TD20 [J IF CONTEXT 7F?B ADN 7 1 [NUMBER BY DEFAULT 7FR2 TD20 SLC 0 1 [SHIFT TO *4 7G=L BPZ 0 TD30 [J NOT CONTAINING 7GQ= SLL 4 1 [ELSE SET B0 7H9W ADN 4 1 7HPG SRC 4 1 7J96 TD30 SRC 0 8 7K8B BPZ 0 TD40 [J NOT SPACES 7LM= SLL 4 2 7M6W ADN 4 1 [ELSE SET BIT1 7MLG SRC 4 2 7P5B TD40 SRC 0 1 7PK2 BPZ 0 TD3 [J IF NOT G 7Q4L SLL 4 3 7QJ= ADN 4 1 [ELSE SET BIT 2 7R3W SRC 4 3 7RHG TD3 SLC 0 6 7TG2 BNG 0 TD4 [J IF <CHARACTER> PRESENT 7T^L SRC 0 2 [SHIFT TO *200 7WF= BRN TD7 [CHECK ON <CHARACTER> 7WYW TD4 SRC 0 1 [SHIFT TO *100 7XDG BPZ 0 TD5 [J NO - SECOND TIME 7XY6 NGX 5 5 [INVERT COUNT / SIGN 7YCQ TD5 SRC 0 3 [SHIFT TO *1000 7YXB BPZ 0 TD6 [J NOT E SECOND TIME 7^2G ...#UNS EDCHAR 7^5L ... LDCT 6 #100 [SET E(2ND) 7^8Q ...#UNS EDCHAR 7^?W ...#SKI 7^C2 LDCT 6 #177 [SUBSTITUTE LARGE ADDRESS 7^D? ...#UNS EDCHAR 7^FJ ...( 7^GT ...TD6 7^J6 ... SRC 0 3 [*10000 7^KC ... BPZ 0 TD6A [J IF NOT S(2ND) 7^LN ... LDCT 6 #040 [SET .S 7^M^ ...TD6A 7^P= ... SLC 0 5 [*200 7^QH ...) 7^RS ...#UNS EDCHAR 7^T5 ...#SKI 7^WL TD6 SLC 0 2 [SHIFT TO *200 82B= TD7 BPZ 0 TD10 [J NOT NUMBER SECOND TIME 82TW SLC 0 7 [SHIFT TO *1 83*G BNG 0 TD12 [J IF # 83T6 TD8 BNZ 4 TD9 [J IF <RECORD> WILL CHANGE 83XP ...#UNS EDCHAR 842# ...( 844X ... SLC 0 11 [*20000 847G ... BNG 0 TD8A [J IF #(2ND) 84=5 ...) 84#Q ADX 5 IEL4(2) [CONVERT TO ABSOLUTE <CHARACTER> 84C* ...#UNS EDCHAR 84FY ...( 84JH ...TD8A 84M6 ... SRC 0 11 [*1 84PP ...) 84SB TD9 BPZ 0 TD11 [J NOT # 85#2 ADX 4 IEL5(2) [CONVERT TO ABSOLUTE <RECORD> 85RL BRN TD11 [SKIP, ALREADY SHIFTED 86?= TD10 SLC 0 7 [SHIFT TO *1 86QW TD11 BNG 0 TD12 [J IF # 87=G SRC 0 3 [SHIFT TO *10 87Q6 BNG 0 TD12-1 889Q ADX 4 IEL5(2) [CONVERT TO ABSOLUTE <RECORD> 88PB SLC 0 3 [SHIFT TO *1 8992 TD12 BPZ 0 TD13 [J NOT # 89NL ADX 4 IENO(2) [ADJUST FOR NEW ORIGIN 8=8= NGX 0 IEL5(2) [ELSE WE HAVE TO 8=MW ADXC 0 4 [CHECK THAT THE 8?7G LDN 0 0 [DESTINATION, IF 8?M6 SRC 0 1 [BEFORE CURRENT POSITION 8#6Q ORX 7 0 [CAUSES REVERSE READ 8#LB TD13 STO 4 1(3) [STORE <RECORD> 8*62 STO 5 3(3) [STORE <CHARACTER> 8*KL STO 6 4(3) [STORE CH ADDRESS 8B5= STO 7 0(3) [STORE EXECUTION SWITCH 8BJW TIDYE UPPLUS 1 [FINISH IN GOOD ORDER 8C4G # 8CJ6 N3EDITET 8D3Q CALL 6 RLIF 8DHB CALL 6 NCH [GET CHARACTER FOLLOWING O 8F32 CALL 0 NCH3 [GEOERR IF NOT THERE 8FGL CALL 6 MULT [EVALUATE NUMBER 8G2= LDX 7 IEOR(2) 8GFW SBX 7 IEBF(2) 8G^G STO 7 ACOM1(2) [SAVE NEW ORIGIN 8HF6 UPPLUS 1 8HYQ # 8JDB # 8JY2 N4EDITET 8KCL BRKINOFF XITER [CLEAR B-I / J IF DISASTER 8KX= UPPLUS 1 8L5G ...XITER 8L?Q ... TESTBRKIN XITERUP [TO CLEAR BREAKIN BIT ONLY 8LG2 ...XITERUP 8LN= ... UP 8LWG # 8MB6 # 8MTQ N5EDITET 8N*B LDX 7 IEFS(2) [NO OF EDITING FILES 8NT2 SBN 7 1 8P#L LDX 4 IEFT(2) [TYPES OF FILES 8PS= BZE 7 POP2 [J IF LAST FILE IN STACK 8Q?W BNG 4 POP1 [J IF J/S - MUSTNT CLOSE 8QRG LDX 1 IEON(2) [GET OUR FILE IN TOP OF 8R?6 FILEMOVE 1(1),0 [THE GEORGE FILE STACK 8RQQ CALL 6 XCLSE [CLOSE IT 8S=B POP1 SLL 4 1 [SHIFT TO NEW FILE 8SQ2 STO 7 IEFS(2) [STORE NEW VALUES 8T9L STO 4 IEFT(2) [FOR STACK 8TP= UPPLUS 2 [EXIT IN GOOD ORDER 8TXG ...POP2 LDCT 7 #100 [CLEAR INSERT INSTRUCTION BIT IF SET 8W5Q ... ORS 7 IESW(2) 8W#2 ... ERS 7 IESW(2) 8WG= ... BNG 4 POP3 [J IF J/S EXHAUSTED 8WNG EDERR IEYE ["IVE EXHAUSTED YOUR EDITING FL" 8WTN ... LDX 1 IEON(2) 8X2W ... BACKSPACE 1(1) [SET TO READ EOF AGAIN 8X86 UP 8XMQ POP3 LDX 0 CONTEXT(2) 8Y7B ANDN 0 #10 8YM2 BNZ 0 POP4 [J IF MOP 8^6L EDERR IEYJ ["IVE EXHAUSTED YOUR JOB SOURCE" 8^L= BACKSPACE -2 925W ALASHUNT 3,6 [CONSIDERATION FOR 92KG SUBREC 3,6 [COMMAND PROCESSOR 9356 UP 93JQ POP4 EDERR TNFC ["THERE IS NO FILE TO CLOSE" 944B UPPLUS 1 94J2 # 953L # 95H= N8EDITET 962W LDX 7 IEON(2) [NO OF OLD FILES 96GG SBN 7 1 9726 BZE 7 PLP1 [J IF NONE TO CLOSE 97FQ STO 7 IEON(2) [STORE NEW VALUE 97^B FILEMOVE 1,0 [GET THE FILE ON 98F2 CALL 6 XCLSE [TOP AND CLOSE 98YL LDN 6 IEOW(2) [AT THIS POINT WE 99D= LDN 7 IEOR(2) [HAVE TO SHUFFLE 99XW MOVE 6 20 [THE FINGERS DOWN 9=CG LDCT 0 #4 9=X6 ORS 0 IESW(2) [CLEAR EOF BIT 9?BQ ERS 0 IESW(2) 9?WB LDX 6 IEOR(2) [WE ALSO HAVE TO 9#B2 STO 6 IEOY(2) [FIDDLE AROUND A 9#TL STO 6 IEOZ(2) [BIT IN CASE USER 9**= LDX 6 IEOC(2) [TRIES TO F THE 9*SW STO 6 IEOY+1(2) [X INSTRUCTION 9B#G STO 6 IEOZ+1(2) 9BS6 LDX 6 IENR(2) 9C?Q STO 6 IENY(2) [UNFORTUNATELY MOVE 9CRB STO 6 IENZ(2) [CANNOT BE USED 9D?2 LDX 6 IENC(2) 9DQL STO 6 IENY+1(2) 9F== STO 6 IENZ+1(2) 9FPW UPPLUS 1 [EXIT OK 9G9G PLP1 EDERR TNFC ["THERE IS NO FILE TO CLOSE" 9GP6 UP 9H8Q # 9HNB # 9J82 N7EDITET 9JML LDX 5 IEFS(2) [NO OF FILES OPEN 9K7= LDX 4 IEFT(2) [TYPES OF FILES 9KLW BXGE 5 O30(1),UM2 [J IF STACK FULL 9L6G ORN 4 1 [SET B0 9LL6 ADN 5 1 [INCREMENT BY 1 FILE 9M5Q SRC 4 1 9MKB STO 5 IEFS(2) [STORE NEW 9N52 STO 4 IEFT(2) [VALUES 9NJL UM1 UPPLUS 1 [EXIT OK 9P4= UM2 EDERR EFSF ["EDIT FILE STACK FULL" 9PHW BNG 4 UM1 [CARRY ON IF MOP 9Q3G UP 9QH6 # 9R2Q MENDAREA 100,K100EDITET 9RGB #END ^^^^ ...15160445001100000000 </code> Last modified: 17/01/2024 11:55by 127.0.0.1 Log In