10 22FL #LIS K0EDITOR>K0ALLGEO>0 16 22_= ...#SEG EDITOR865 [DICK RUSBRIDGE 16 2394 ...# (C) COPYRIGHT INTERNATIONAL COMPUTERS LTD 1982. 4 23DW # 13 23YG # GEORGE 3 AND 4 INTEGRAL EDITOR. 13 24D6 # ------------------------------- 4 24XQ # 6 254Y ...#UNS G400 15 25=6 ...# THIS CHAPTER IS MODIFIED FOR G3PLUS-IH MK2 7 25CB 8HEDITOR 20 25X2 # THIS IS THE FAMED INTEGRAL EDITOR; BEGAT SO ELOQUENTLY BY THE 21 26BL # REDOUBTABLE GEOFF NEWELL WITH A LITTLE HELP FROM HIS FRIENDS IN 20 26W= # UKSO; TEMPERED SO SWEETLY BY THE SEXY SALLY REES; SUBJECTED TO 20 27*W # AN INORDINATE DESIGN GESTATION AND FINALLY CODED SO FEARFULLY 21 27TG # BY YOURS TRULY IN THE FLEETING MOMENTS OF QUIET AMIDST THE TURMOIL 19 28*6 # OF COSMOPOLITAN GEORGE THREE DEVELOPMENT BRANCH OF B.P.D. 4 28SQ # 4 29#B # 12 29S2 # THE EDITOR'S CODE STARTS HERE. 12 2=?L # ------------------------------ 4 2=R= # 13 2?=W # ENTRY POINT BRANCH TABLE 4 2?QG # 17 2#=6 SEGENTRY K1EDITOR,N1EDITOR [DEALT WITH BY EDITAR 19 2#PQ SEGENTRY K2EDITOR,N2EDITOR [SHUTDOWN WITH CLOSEABANDON 17 2*9B SEGENTRY K3EDITOR,N3EDITOR [END OF INSTRUCTION 9 2*P2 SEGENTRY K4EDITOR,OH 17 2B8L SEGENTRY K5EDITOR,N5EDITOR [PULLUP OF O/F STACK 15 2BN= SEGENTRY K7EDITOR,N7EDITOR [ABANDON EDIT 17 2C7W SEGENTRY K8EDITOR,N8EDITOR [DEALS WITH BREAK-IN 19 2CMG SEGENTRY K9EDITOR,N9EDITOR [CLOSES FILES AND ENDS EDIT 17 2D76 SEGENTRY K10EDITOR,N10EDITOR [EXECUTES INSTRUCTION 16 2DLQ SEGENTRY K11EDITOR,N11EDITOR [E INSTRUCTION 18 2F6B SEGENTRY K12EDITOR,N12EDITOR ['EXECUTION ERROR..... ' 9 2FL2 SEGENTRY K13EDITOR,OH 18 2G5L SEGENTRY K14EDITOR,N14EDITOR [CHECK IF MOP AFTER ERROR 4 2GK= # 4 2H4W # 9 2HJG # USEFUL CONSTANTS. 4 2J46 # 14 2JHQ O20 #20 [SPACE 16 2K3B O30 #30 [LEFT PARENTHESIS 17 2KH2 O31 #31 [RIGHT PARENTHESIS 14 2L2L O32 #32 [ASTERISK 14 2LG= O34 #34 [COMMA 14 2L_W O23 #23 [OCTAL 14 2MFG O8 #10 [EIGHT 16 2M_6 MNUM #32657713 [A MAGIC NUMBER 6 2NDQ THOU +1000 4 2NYB # 4 2PD2 # 20 2PXL N8EDITOR [ENTRY POINT FOR BREAK-IN DURING 6 2PYS ...#UNS G400 4 2Q22 ...( 16 2Q38 ... TESTHKN XDSK1 [J IF NOT IN HOOK 9 2Q4B ... CALL 6 MOPTEXT 15 2Q5J ... BRN XDSK2 [FILE 16 2Q6Q ... BRN XDSK1 [JOB SOURCE 15 2Q7Y ... BRN XDSK1 [MOP 8 2Q96 ...XDSK2 LDCT 0 #2 16 2Q=# ... ORS 0 IESW(2) [NOTE BKIN 17 2Q?G ... BRN N2EDITOR [CLOSEABANDON 5 2Q#N ...XDSK1 4 2Q*W ...) 18 2QC= # [AN EDITING INSTRUCTION 9 2QWW ... ACROSS EDITORA,8 4 2_=2 # 20 2_PL # XBKOF CLEARS BREAK-IN. IF IT WASN'T BREAK-IN BUT SOMETHING 20 329= # MORE SERIOUS IT CAUSES AN AUTOMATIC 'E' WITH APPROPRIATE MESSAGES. 4 32NW # 7 338G XBKOF SBX 6 1 18 33N6 DOWN EDITET,4 [SAVES EDITOR'S SPACE 16 347Q BRN XITER [J NOT BREAK-IN 3 34?M ... 7 34CJ ...#UNS EDPOINTER 9 34HF ... MONOUT ISEDBRK 7 34MB ADS 1 6 7 3572 EXIT 6 0 4 35LL # 15 366= # THE ACTION FOR JT EXCEEDED OR JOB ABANDONNED 4 36KW # 17 375G XITER ACROSS EDWRITE,11 [SAVES EDITOR'S SPACE 4 37K6 # 12 384Q # ABANDON ENTRY POINT 4 38JB # 5 3942 N7EDITOR 16 39HL ...XBK1 EDCOMERR EDAB ['EDIT ABANDONED' 5 3=3= N2EDITOR 9 3=GW ... ACROSS EDITORA,2 4 3?_Q # 21 3#FB # SHUTDOWN CLOSES ALL FILES AND RETURNS TO THE COMMAND PROCESSOR. 4 3#_2 # 5 3*DL N9EDITOR 9 3*Y= ... ACROSS EDITORA,9 4 3L?4 ...# 17 3L#= ...# XJOBTIME UPDATES JOB TIME IN JOB BLOCK,AND LEAVES 11 3L*D ...# X3 : POINTER TO JOB BLOCK 9 3LBL ...# X6 & X7 : JOB TIME 4 3LCS ...# 5 3LF2 ...XJOBTIME 8 3LG8 ... FJOCA 3,2 8 3LHB ... UPDATEJT ,3 9 3LJJ ... LDX 6 HTIMEJ(3) 10 3LKQ ... LDX 7 HTIMEJ+1(3) 7 3LLY ... EXIT 4 0 4 3LN6 ...# 4 3LPG # 19 3M96 # POPUP PULLS UP THE EDITING FILE STACK. IF THIS EXHAUSTS 18 3MNQ # THE STACK AN ERROR IS REPORTED, OTHERWISE THE ROUTINE 10 3N8B # EXITS IN GOOD ORDER. 4 3NN2 # 16 3P7L POPUP SBS 1 6 [RELATIVE LINK 18 3PM= DOWN EDITET,5 [SAVES EDITOR'S SPACE 18 3Q6W BRN XEND [EXHAUSTED J/S OR FILE 17 3QLG BRN NER [NO FILE TO CLOSE 16 3R66 ADS 1 6 [ELSE EXIT IN 15 3RKQ EXIT 6 0 [GOOD ORDER 4 3S5B # 4 3SK2 # 20 3T4L # PULLUP PULLS UP THE FILE STACK FOR END OF OLD FILE. ERROR IF 11 3TJ= # THERE IS NO FILE TO CLOSE. 4 3W3W # 5 3WHG PULLUP 4 3X36 # 16 3XGQ SBX 6 1 [RELATIVE LINK 18 3Y2B DOWN EDITET,6 [SAVES EDITOR'S SPACE 17 3YG2 BRN NER [NO FILE TO CLOSE 14 3Y_L ADX 6 1 [OK SO 15 3_F= EXIT 6 0 [CARRY ON 4 3_YW # 21 42DG # UMOP PUSHES DOWN THE FILE STACK TO ENTER THE MOP CONSOLE ON THE 21 42Y6 # TOP OF THE STACK. IF THE STACK IS ALREADY FULL AN ERROR OCCURS. 4 43CQ # 7 43XB UMOP SBX 6 1 18 44C2 DOWN EDITET,7 [SAVES EDITOR'S SPACE 15 44WL BRN XEND [STACK FULL 14 45B= ADX 6 1 [OK SO 15 45TW EXIT 6 0 [CARRY ON 4 46*G #PAG 4 46T6 # 21 47#Q # SREBMUN CONVERTS BINARY TO UP TO SEVEN DECIMAL DIGITS. THE NUMBER 21 47SB # TO BE CONVERTED IS IN X6 AND X1 CONTAINS THE ADDRESS OF THE FIRST 21 48#2 # CHARACTER OF THE OUTPUT STRING. ON EXIT X1 CONTAINS THE ADDRESS OF 10 48RL # THE NEXT CHARACTER. 4 49?= # 5 49QW SREBMUN 4 4==G # 15 4=Q6 LDN 4 0 [CLEAR RESULT 16 4?9Q LDN 7 7 [MAX COUNT IS 7 7 4?PB LDX 5 6 15 4#92 SMO FX1 [MULTIPLY BY 16 4#NL MPY 5 MNUM [THE MAGIC MUNBER 16 4*8= MODE 0 [99.9% REDUNDANT 16 4*MW SRE1 SBN 7 1 [DECREMENT COUNT 17 4B7G CBD 5 4 [CONVERT TO CHARACTER 19 4BM6 BNZ 4 SRE4 [J TO IGNORE IF LEADING ZERO 17 4C6Q BNZ 7 SRE1 [J TO START OUTPUT 18 4CLB BRN SRE4 [DEPOSIT ONE ZERO ANYWAY 16 4D62 SRE3 SBN 7 1 [DECREMENT COUNT 17 4DKL CBD 5 4 [CONVERT TO CHARACTER 16 4F5= SRE4 DCH 4 0(1) [STORE CHARACTER 17 4FJW BCHX 1 / [INCREMENT POINTER 17 4G4G BNZ 7 SRE3 [LOOP UNTIL FINISHED 7 4GJ6 EXIT 0 0 4 4H3Q # 21 4HHB # MOPTEXT DETERMINES THE SOURCE OF THE EDITING INSTRUCTIONS. EXITS 20 4J32 # TO CALL+1 FOR OFFLINE FILE; CALL+2 FOR ONLINE JOB SOURCE AND 21 4JGL # CALL+3 FOR ONLINE MOP TERMINAL.(WILL EVENTUALLY NEED TO BE ALTER- 17 4K2= # ED TO DIFFERENTIATE MOP TELETYPE FROM MOP AVDU). 4 4KFW # 5 4K_G MOPTEXT 4 4LF6 # 16 4LYQ LDXC 0 IEFT(2) [SET FILE STACK 18 4MDB BCC MTX [J IF REAL FILE ON TOP 16 4MY2 LDX 0 CONTEXT(2) [GET CONTEXT WORD 16 4NCL SRC 0 4 [SHIFT TO BIT 20 16 4NX= LDXC 0 0 [SEE IF IT IS SET 18 4PBW ADNC 6 1 [CLEAR CARRY AND OVERFLOW 17 4PWG MTX EXIT 6 0 [EXIT AS APPROPRIATE 4 66S2 # 4 67?L #PAG 4 67R= # 21 68=W # NCH IS THE NEXT CHARACTER FROM EDITING FILE ROUTINE. THE REQUIRED 21 68QG # CHARACTER IS PUT INTO X7 AND EXIT IS TO CALL+2. AN ATTEMPT TO READ 21 69=6 # OFF THE BLOCK CAUSES EXIT TO CALL+1. A SUBSEQUENT CALL WILL CAUSE 21 69PQ # THE NEXT BLOCK TO BE READ. ADDRESS OF LAST CHARACTER IS LEFT IN X0 4 6=9B # 19 6=P2 NCH LDX 3 IEIP(2) [ADDRESS OF NEXT CHARACTER 18 6?8L BZE 3 NCH3 [J IF OFF END LAST TIME 20 6?N= STO 3 0 [GET CHARACTER ADDRESS OF END OF 19 6#7W SLC 0 2 [BLOCK AND PERFORM ARITHMETIC 21 6#MG SBX 0 IEIH(2) [TO DETERMINE IF WE ARE ABOUT TO RUN 18 6*76 BPZ 0 NCH2 [OFF THE END OF THE BLOCK 19 6*LQ NCH1 SMO IEIA(2) [MODIFY BY ADDRESS OF BLOCK 18 6B6B LDCH 7 0(3) [LOAD CHARACTER INTO X7 17 6BL2 LDX 0 3 [LEAVE ADDRESS IN X0 17 6C5L BCHX 3 / [INCREMENT ADDRESS 20 6CK= STO 3 IEIP(2) [STORE ADDRESS OF NEXT CHARACTER 17 6D4W EXIT 6 1 [AND RETURN TO CALL+2 19 6DJG NCH2 STOZ IEIP(2) [CLEAR POINTER FOR NEXT TIME 18 6F46 STO 3 0 [OLD CHARACTER ADDRESS 17 6FHQ EXIT 6 0 [AND RETURN TO CALL+1 16 6G3B NCH3 SBX 6 1 [RELATIVISE LINK 15 6GH2 STO 6 IEL1(2) [AND STORE 16 6H2L STOZ IESP(2) [CLEAR STACK AND 17 6HG= STOZ IEPC(2) [PARENTHESIS COUNT 10 6H_W HUNTW 3,FILE,FRB 17 6JFG BNG 3 NCH4 [FREE ANY OLD BLOCK 7 6J_6 FREECORE 3 3 6K3* ... 7 6K5J ...#UNS EDPOINTER 4 6K7R ...NCH4 7 6K=2 ...#UNS EDPOINTER 4 6K#9 ...#SKI 4 6KBD ...( 17 6KDQ NCH4 CALL 6 MOPTEXT [FANOUT ON CONTEXT 15 6KYB BRN NCH24 [OFFLINE FILE 15 6LD2 BRN NCH26 [JOB SOURCE 3 6LK8 ... 4 6LQB ...) 16 6LXL LDX 1 IESW(2) [ELSE MOP CONSOLE 7 6MC= SLL 1 2 17 6MWW BNG 1 NCH7 [J IF IN INSERT MODE 18 6NBG LDN 1 IEBF(2) [BUFFER ADDRESS IN CPAT 17 6NW6 LDX 6 IEOR(2) [GET RECORD NUMBER 18 6P*Q SBX 6 IENO(2) [ADJUST FOR NEW ORIGIN 18 6PTB BPZ 6 NCH5 [J IF RESULT IS POSITIVE 14 6Q*2 LDN 7 #35 [LOAD - 14 6QSL NGX 6 6 [NEGATE 16 6R#= DCH 7 0(1) [DUMP - IN BUFFER 17 6RRW BCHX 1 / [AND UPDATE POINTER 18 6S?G NCH5 CALL 0 SREBMUN [CONVERT RECORD NUMBER 15 6SR6 LDN 7 #36 [FULL STOP 17 6T=Q LDX 6 IEOC(2) [CHARACTER POINTER 16 6TQB DCH 7 0(1) [INSERT FULL STOP 15 6W=2 BCHX 1 / [IN BUFFER 18 6WPL CALL 0 SREBMUN [CONVERT CHARACTER NUMBER 20 6X9= SBN 1 IEBF(2) [WORK OUT NUMBER OF CHARACTERS 18 6XNW SLC 1 2 [THAT HAVE BEEN CONVERTED 3 6XPT ... 7 6XQS ...#UNS EDPOINTER 4 6XRR ...( 5 6XSQ ...NCH5A 16 6XTP ... STO 1 AWORK3(2) [MESSAGE LENGTH 4 6XWN ...NCH6 19 6XXM ... OUTPARAM AWORK3(2),IEBF [ OR 5 6XYL ...NCH6A 17 6X_K ... CALL 6 MOPTEXT [FAN OUT ON CONTEXT 15 6Y2J ... BRN NCH24 [OFFLINE FILE 15 6Y3H ... BRN NCH26 [JOB SOURCE 16 6Y4G ... [ELSE MOP CONSOLE 4 6Y5F ...) 7 6Y6D ...#UNS EDPOINTER 4 6Y7C ...#SKI 20 6Y8G NCH6 OUTPARAM 1,IEBF [OUTPUT OR 8 6YN6 BRN NCH8 19 6_7Q NCH7 LDX 1 IEL3(2) [GET I CHARACTER 16 6_MB DCH 1 IEBF(2) [INSERT IN BUFFER 15 7272 LDN 1 1 [COUNT OF 1 3 727G ... 18 7282 ... STOZ IESP(2) [STOPS USER ATTEMPTING TO 16 728G ... STOZ IESTACK(2) [DO 'I/ONE LINE 19 7292 ... STOZ IESTACK+1(2) [ANOTHER LINE/*THING' ,ET AL 3 729K ... 7 72#8 ...#UNS EDPOINTER 8 72BR ... BRN NCH5A 7 72FB ...#UNS EDPOINTER 4 72H_ ...#SKI 16 72LL BRN NCH6 [J TO SET IT UP 20 736= NCH8 READY NCH28 [WAIT FOR INPUT / J IF BROKEN IN 19 73KW TESTBRKIN NCH28 [TESTS FOR ABANDON ACTUALLY 3 73PR ... 7 73TN ...#UNS EDPOINTER 11 73_K ... OUTPARAM AWORK3(2),IEBF 19 745G MHUNTW 3,FILE,FRB [FIND NEW INSTRUCTION RECORD 14 74K6 LDEX 4 A1(3) [LENGTH 4 754Q # 17 75JB NCH10 LDX 5 A1+1(3) [2ND RED TAPE WORD 16 7642 ANDX 5 CACT [&LEAR BITS 2-23 18 76HL SBN 4 2 [ADJUST LENGTH FOR HEADER 19 773= BZE 5 NCH12 [J IF INTEGRAL NO. OF WORDS 19 77GW SBN 4 1 [ELSE ADJUST FOR LAST WORD 20 782G NCH12 ORS 5 4 [CONJUGATE INTO CHARACTER ADDRESS 19 78G6 SLC 4 2 [CONVERT TO CHARACTER COUNT 6 78_Q #SKI JDIAG1 16 79FB LDX 6 IEIG(2) [START ADDRESS 7 79_2 #SKI JDIAG1<1$1 16 7=DL LDN 6 A1+2 [START ADDRESS 19 7=Y= STO 6 IEIP(2) [STORE IN INSTRUCTION POINTER 17 7?CW STO 3 IEIA(2) [STORE BLOCK ADDRESS 20 7?XG BNZ 4 NCH14 [J IF NOT ZERO LENGTH TRANSFER 16 7#C6 SLC 6 2 [CONVERT TO COUNT 17 7#WQ STOZ IEIP(2) [RE-READ NEXT TIME 20 7*BB STO 6 IEIH(2) [END AND START ADDRESSES THE SAME 8 7*W2 BRN NCH20 17 7B*L NCH14 ADX 3 6 [ADD IN START ADDRESS 18 7BT= LDX 1 3 [AT THIS POINT WE HAVE TO 18 7C#W LDX 0 1 [LOP OFF ALL THE TRAILING 19 7CSG NCH16 LDCH 7 0(1) [SPACES SO GET EACH CHARACTER 19 7D#6 SBN 7 #20 [AND IF NOT A SPACE REMEMBER 19 7DRQ BCHX 1 / [THE ADDRESS. NOTE WE HAVE 19 7F?B BZE 7 NCH18 [PRESET X0 SO THAT AN ENTIRE 20 7FR2 STO 1 0 [RECORD OF SPACES TURNS OUT TO 19 7G=L NCH18 BCT 4 NCH16 [BE NULL. AT END OF RECORD WE 21 7GQ= SBX 0 IEIA(2) [HAVE A CHARACTER MODIFIER FOR THE 20 7H9W LDX 1 FX1 [NEXT CHARACTER AFTER THE END. 3 7H*2 ... 17 7HD6 ... BXU 0 IEIG(2),NCH19 [J IF NOT ALL SPACES 17 7HH= ... STOZ IEIP(2) [SET ZERO CHAR COUNT 5 7HLB ...NCH19 16 7HPG SLC 0 2 [CONVERT TO COUNT 18 7J96 STO 0 IEIH(2) [STORE THE END ADDRESS 4 7JNQ # 15 7K8B NCH20 PHOTO 5 [GET PHOTO OF 16 7KN2 LDN 0 IENZ(2) [BLOCK AND STORE 16 7L7L STO 5 IEIM(2) [AT THIS POINT WE 17 7LM= LDX 6 IESW(2) [CHECK SWITCH WORD 19 7M6W SLL 6 2 [TO SEE IF IN I INSTRUCTION 14 7MLG BNG 6 NCH22 [J IF SO 17 7N66 LDN 7 IENY(2) [OTHERWISE WE UPDATE 18 7NKQ LDN 6 IENR(2) [THE FINGERS IN FILES: 18 7P5B MOVE 7 4 [THE MEMORIES NECESSARY 19 7PK2 MOVE 6 4 [FOR THE FORGET INSTRUCTION 17 7Q4L LDN 6 3 [FOR THE SAME REASON 15 7QJ= ANDX 6 IESW(2) [WE HAVE TO 15 7R3W ERS 6 IESW(2) [SHIFT LEFT 15 7RHG ANDN 6 1 [THE F BITS, 16 7S36 SLL 6 1 [BITS 22 AND 23, 17 7SGQ ORS 6 IESW(2) [IN THE SWITCH WORD 4 7T2B # 9 7TG2 NCH22 LDX 3 IEIP(2) 3 7TJK ... 7 7TM8 ...#UNS EDPOINTER 8 7TPR ... BZE 3 NCH23 7 7TSB ...#UNS EDPOINTER 4 7TW_ ...#SKI 16 7T_L BZE 3 NCHEX [J IF NULL BLOCK 17 7WF= LDN 5 #1000 [COMMANDS CATEGORY 14 7WYW LDX 4 IEIP(2) [SET UP 14 7XDG SLC 4 2 [CURRENT 14 7XY6 NGX 4 4 [EDITING 14 7YCQ ADX 4 IEIH(2) [RECORD 3 7YF7 ... 7 7YGJ ...#UNS EDPOINTER 4 7YH_ ...( 12 7YKB ... OUTPARAX 4,IEIP(2),FILE,FRB 5 7YLR ...NCH23 17 7YN8 ... MONOUT ISEDRDY [N.M_ COMMAND ETC 16 7YPK ... BZE 3 NCHEX [J IF NULL BLOCK 4 7YR2 ...) 7 7YSC ...#UNS EDPOINTER 4 7YTS ...#SKI 12 7YXB OUTMONX 4,IEIP(2),5,FILE,FRB 18 7_C2 CALL 6 RLIF [GET INSTRUCTION BLOCK 8 7_WL CALL 0 OH 14 82B= LDX 3 IEIP(2) [RESET X3 14 82TW LDX 6 IEL1(2) [GET LINK 7 83*G ADX 6 1 16 83T6 BRN NCH1 [J TO LOAD CHAR 4 84#Q # 14 84SB NCHEX LDX 6 IEL1(2) [GET LINK 15 85#2 ADX 6 1 [AND DATUMISE 19 85RL LDN 0 0 [SET CHAR POSITION NEGATIVE 17 86?= EXIT 6 0 [EXIT END OF RECORD 4 86QW # 20 87=G NCH24 LDX 3 IEON(2) [IEON GIVES APPROPRIATE OLD FILE 16 87Q6 NCH25 READ 1(3) [READ A RECORD 16 889Q MHUNTW 3,FILE,FRB [GET THE BLOCK 8 88PB LDEX 4 A1(3) 17 8992 BNZ 4 NCH10 [J NOT END OF FILE 16 89NL FREECORE 3 [FREE NULL BLOCK 15 8=8= CALL 6 POPUP [POP UP STACK 3 8==T ... 7 8=*D ...#UNS EDPOINTER 16 8=D3 ... BRN NCH6A [DO IT ALL AGAIN 7 8=GL ...#UNS EDPOINTER 4 8=K9 ...#SKI 16 8=MW BRN NCH4 [DO IT ALL AGAIN 4 8?7G # 8 8?M6 NCH26 ALASHUNT 3,6 19 8#6Q ADDREC 3,6 [KEEP COMMAND PROCESSOR HAPPY 17 8#LB NGN 3 3 [ONLINE FILE IS -2 8 8*62 BRN NCH25 4 8*KL # 3 8*M3 ... 7 8*ND ...#UNS EDPOINTER 4 8*PT ...( 5 8*R= ...NCH28 11 8*SM ... OUTPARAM AWORK3(2),IEBF 17 8*W4 ... MONOUT ISEDRDY [N.M_ COMMAND ETC 8 8*XF ... CALL 6 XBKOF 4 8*YW ...) 7 8B2? ...#UNS EDPOINTER 4 8B3N ...#SKI 17 8B5= NCH28 CALL 6 XBKOF [CLEAR THE BREAK-IN 16 8BJW CALL 6 UMOP [PUSH DOWN STACK 3 8BMF ... 7 8BQ4 ...#UNS EDPOINTER 16 8BSM ... BRN NCH6 [DO IT ALL AGAIN 7 8BX= ...#UNS EDPOINTER 4 8B_T ...#SKI 16 8C4G BRN NCH4 [DO IT ALL AGAIN 4 8CJ6 # 4 8D3Q # 4 8DHB # 19 8F32 NCHX [NEXT CHARACTER WITH A SYNTAX 4 8FGL # 8 8G2= CALL 6 NCH 16 8GFW BRN SE4 [ERROR IF OFF END 7 8G_G EXIT 5 0 4 8HF6 # 14 8HYQ # RLIF RELOCATES THE INSTRUCTION BLOCK. 4 8JDB # 16 8JY2 RLIF LDX 5 IEIM(2) [GET PHOTO COUNT 9 8K7S LDX 3 IEIA(2) 19 8KCL TESTMOVE 5,RL1 [J IF BLOCK IS STILL THERE 17 8KX= HUNTW 3,FILE,FRB [OTHERWISE FIND IT 15 8LBW BNG 3 RL2 [J IF LOST 17 8LWG PHOTO 5 [GET NEW PHOTO COUNT 17 8MB6 STO 3 IEIA(2) [STORE NEW POINTER 18 8MTQ STO 5 IEIM(2) [STORE NEW PHOTO COUNT 16 8N*B RL1 EXIT 6 1 [EXIT TO CALL+2 16 8NT2 RL2 STOZ IEIP(2) [FORCE A RE-READ 16 8P#L EXIT 6 0 [EXIT TO CALL+1 4 8WNG # 4 8X86 # 15 8XMQ # NEXT CHECKS THE NEXT NON-SPACE CHARACTER 14 8Y7B # IF NOT COMMA OR RT PARENTHESIS --->SE1 4 8YM2 # 9 8_6L NEXT LDX 5 IEIP(2) 16 8_L= NX1 CALL 6 NCH [GET NEXT CHAR 16 925W BRN NX2 [J IF OFF END 15 92KG BXE 7 O20(1),NX1 [J IF SPACE 10 9356 BXE 7 O34(1),NX2 10 93JQ BXE 7 O31(1),NX2 8 944B BRN SE1 15 94J2 NX2 STO 5 IEIP(2) [BACKSPACE 7 953L EXIT 4 0 4 95H= # 4 962W # 14 96GG # CODE FOR DEALING WITH SYNTAX ERRORS. 8 9726 # ENTRIES ARE - 14 97FQ # SE1 SCAN, STARTING AT NEXT CHARACTER 14 97_B # SE2 SCAN, STARTING AT THIS CHARACTER 14 98F2 # SE3 SCAN ENDED AT CURRENT CHARACTER 13 98YL # SE4 SCAN ENDED AT LAST CHARACTER 4 99D= # 4 99XW # 18 9=CG SE1 CALL 5 NCHX [GET ANOTHER CHARACTER 14 9=X6 SE2 BXE 7 O31(1),SE3 [J IF *34 15 9?BQ BXU 7 O34(1),SE1 [LOOP NOT *31 9 9?WB SE4 STO 0 IEIP(2) 4 9#B2 SE3 17 9#TL DOWN EDITER,3 ['SYNTAX ERROR : OH!' 4 9**= # 4 9*SW # 6 9B#G N14EDITOR 16 9BS6 NER CALL 6 MOPTEXT [CHECK CONTEXT 18 9C?Q BRN XEND [ABORT IF EITHER OFFLINE 17 9CRB BRN XEND [OR NOT MOP ONLINE 18 9D?2 STOZ IEIP(2) [IF MOP FORCE A RE-READ 8 9DQL BRN PREPARSE 18 9F== XERR DOWN EDITER,4 ['EXECUTION ERROR: OH' 7 9FPW BRN XEND 6 9G9G N12EDITOR 9 9GP6 CALL 6 MOPTEXT 7 9H8Q BRN XERR 7 9HNB BRN XERR 8 9J82 STOZ IEIP(2) 8 9JML BRN PREPARSE 4 9K7= # 16 9KLW TLU STO 7 3 [TABLE LOOK-UP 20 9L6G SRC 3 2 [CONVERT TO CHARACTER ADDRESSS 7 9LL6 ... SMO 6 7 9M5Q ... OBEY 0 15 9MKB LDCH 3 0(3) [ACCESS TABLE 16 9N52 ADS 1 3 [DATUMISE RESULT 15 9NJL EXIT 6 1 [AND FINISH 4 9P4= # 16 9PHW VDXEQ SBX 6 1 [DOES V,D INSTRNS 15 9Q3G STO 6 AWRK1(2) [STORE LINK 8 9QH6 VD0 CALL 6 NCH 15 9R2Q BRN NOV [NO PARAMETER 10 9RGB BXE 7 O20(1),VD0 10 9S22 BXE 7 O34(1),NOV 10 9SFL BXE 7 O31(1),NOV 9 9S_= VDX LDX 6 AWRK1(2) 19 9TDW ADX 6 1 [RECLAIM LINK AND DATUMISE 7 9TYG EXIT 6 0 18 9WD6 NOV LDCT 7 #777 [SET TOP BITS OF DS OR VS 9 9WXQ STO 0 IEIP(2) 15 9XCB BRN VDX [J TO EXIT 4 9XX2 # 13 9YBL VI CALL 6 VDXEQ [DO V 14 9YW= STO 7 IEVS(2) [SET V.S 8 9_*W BRN WINDT 4 9_TG # 13 =2*6 XDI CALL 6 VDXEQ [DO D 14 =2SQ STO 7 IEDS(2) [SET D.S 8 =3#B BRN WINDT 4 =3S2 # 16 =4?L PARL LDX 4 IESP(2) [LEFT PARENTHESIS 6 =4#M ...#UNS ICT 4 =4*N ...( 19 =4BP ... LDXC 6 IESP(2) [J IF NOT CONDIT. REPETITION 8 =4CQ ... BCC PARL1 20 =4DR ... LDCT 6 1 [J IF ACTIVITY PRIORITY REDUCED 14 =4FS ... ANDX 6 IESW(2) [ALREADY 8 =4GT ... BNZ 6 PARL1 20 =4HW ... LDCT 6 1 [CHANGE PRIORITY TO LOWEST VALUE 15 =4JX ... ORS 6 IESW(2) [& SET SWITCH 8 =4KY ... APCHANGE DOWN 18 =4L_ ... CALL 6 RLIF [FIND INSTRUCTION BLOCK 16 =4N2 ... CALL 0 OH [ERROR IF LOST 5 =4P3 ...PARL1 4 =4Q4 ...) 17 =4R= SLC 4 1 [RECURESE BY PUSHING 6 =4WB ...#UNS EDLOOP 21 =4_G ... ADN 4 18 [ADD 9 TO STACK POINTER BUT LEAVE B0 6 =54L ...#UNS EDLOOP 4 =57Q ...#SKI 8 =5=W ADN 4 14 16 =5QG SRC 4 1 [B0 OF POINTER 16 =6=6 STO 4 IESP(2) [THEN CARRY ON 8 =6PQ BRN PREPARSE 6 =79B #SKI JDIAG1 4 =7P2 ( 4 =88L # 15 =8N= # ROUTINE TO DO THE FINAL SYNTAX ANALYSIS ON 12 =97W # THE 'TG' AND 'PG' INSTRUCTIONS 13 =9MG # EXITS CALL+1 SYNTAX ERROR 12 ==76 # CALL+2 SYNTAX OK 4 ==LQ # 4 =?6B PGTG 9 =?=? ... LDX 4 IEWT(2) 8 =?B8 ... ANDN 4 #1 16 =?G5 ... BZE 4 TATA [J IF NOT CONTEXT 8 =?L2 LDCT 4 #100 9 =#5L ANDX 4 IEWT+1(2) 16 =#K= BZE 4 TATA [NOT 'TG OR 'PG' 8 =*4W LDN 4 #4 9 =*JG ANDX 4 IESW(2) 15 =B46 BZE 4 (6) [NOT 'GEDIT' 9 =BHQ LDX 4 IESP(2) 15 =C3B BNZ 4 (6) [J IF NESTED 9 =CH2 LDX 4 IEWT+1(2) 15 =D2L ANDX 4 BSB18 [#00777777 7 =DG= SBN 4 4 17 =D_W BNZ 4 (6) [NOT FOUR CHAR STRING 13 =FFG TATA EXIT 6 1 [OK 4 =F_6 ) 4 =GDQ # 19 =GYB # THIS ROUTINE CHECKS ON THE JOBTIME. IF EXCEEDED AND NOT 19 =HD2 # MOP THEN EDIT IS ABANDONED. FOR MOP MORE TIME IS GIVEN. 4 =JC= # 4 =JWW ...TIME 9 =KBG ... CALL 4 XJOBTIME 16 =MSL TXL 7 ATIMEJ+1(3) [TEST FOR TIME UP 9 =N#= TXL 6 ATIMEJ(3) 16 =NRW BCS TIMEX [J IF NOT TIME UP 10 =P?G LDX 6 CONTEXT(2) 7 =PR6 SRC 6 4 18 =Q=Q BPZ 6 XITER [FINISH IF NOT MOP JOB 7 =QQB SBX 5 1 15 =R=2 STO 5 AWORK1(2) [SAVE LINK 9 =RPL LDX 6 JOBTIME 15 =S9= MPY 6 THOU(1) [MILLISECS 18 =SNW ADSC 7 ATIMEJ+1(3) [INCREASE USERS JOBTIME 9 =T8G ADS 6 ATIMEJ(3) 16 =TN6 MONOUT JOBTEX [COMMENT ON FACT 15 =W7Q LDX 5 AWORK1(2) [RESTORE LINK 7 =WMB ADX 5 1 7 =X72 TIMEX EXIT 5 0 4 =XLL #PAG 4 =Y6= # 21 =YKW # TRANSLATE IS THE ROUTINE WHICH ACTUALLY CAUSES THE INSTRUCTIONS TO 21 =_K6 # COMPLICATED BY THE FACT THAT BRACKETS ARE ALLOWED. THIS ROUTINE 20 ?24Q # ONLY TAKES VALUES OUT OF THE STACK WHICH ARE LEFT THERE BY THE 21 ?2JB # ROUTINE PREPARSE. THE THREE INSTRUCTIONS FOR LEFT PARENTHESIS ARE 13 ?342 # THE ONES WHICH DO THE RECURSION. 4 ?3HL # 19 ?43= T3 [INSTRUCTION EXECUTION FANOUT 6 ?4GW #REP #20 5 ?52G 0 6 ?5G6 N10EDITOR 15 ?5_Q TRANSLATE [THIS IS IT ! 4 ?6FB # 10 ?6P8 ... TESTBRKIN N8EDITOR 5 ?78S ...TRANS 17 ?7DL CALL 5 TIME [CHECK ON JOB TIME 18 ?7Y= CALL 6 RLIF [GET INSTRUCTION BLOCK 16 ?8CW CALL 0 OH [ERROR IF LOST 19 ?8XG LDX 6 IEPS(2) [RESET THE CURRENT POINTER 19 ?9C6 STO 6 IEIP(2) [TO WHERE PERPARSE STARTED 14 ?9WQ LDCT 6 #100 [CLEAR 13 ?=BB ORS 6 IESW(2) [I 14 ?=W2 ERS 6 IESW(2) [SWITCH 4 ??*L # 16 ??T= TR1 CALL 6 NCH [GET CHARACTER 17 ?##W BRN PREPARSE [IF END START AGAIN 15 ?#D2 ...# BEFORE EXECUTING ANY INSTRUCTION TEST IF 14 ?#H6 ...# WE ARE ON A TERMINATOR. THE ROUTINE 12 ?#L= ...# WILL ONLY RETURN IF WE ARE NOT 9 ?#PB ... DOWN EDITPT,12 8 ?#Q7 ...# REHUNT EDIT FILE 8 ?#QY ... CALL 6 RLIF 8 ?#RP ... CALL 0 OH 9 ?#SG TRACE 7,IENSTRUK 15 ?*#6 CALL 6 TLU [LOOK UP THE 15 ?*RQ ADN 3 T3(1) [TABLE AT T3 15 ?B?B EXIT 3 TR0 [AND FANOUT 4 ?BR2 # 9 ?C=L UINS PAIR EDITMFO,1 9 ?CQ= MINS PAIR EDITMFO,2 8 ?D9W UMIN ACROSSVAR 0(1) 4 ?DPG # 18 ?F96 MMMM CALL 4 STNP [LOCATE FIRST CHARACTER 18 ?FNQ STO 0 IEIP(2) [ADDRESS OF 1ST CHARACTER 16 ?G8B LDN 1 MINS(1) [J TO OPEN FILE 8 ?GN2 BRN UMIN 4 ?H7L # 16 ?HM= ...OOOO ACROSS EDITORA,3 [O INSTRUCTION 16 ?J6W ...XHHH ACROSS EDITORA,4 [H INSTRUCTION 17 ?JLG ...NLSW ACROSS EDITORA,5 [N,L & W INSTRUCTIONS 16 ?K66 ...XI ACROSS EDITORA,6 [I INSTRUCTION 9 #8M6 OH GEOERR 1,EDIT 4 #96Q # 17 #9LB XECUTE [THIS EOES X INSTRN 17 #=62 CALL 6 PULLUP [PULLUP INPUT STACK 9 #=KL DOWN EDITPT,11 16 #?5= STOZ IENO(2) [X SIMULATES O# 17 #?8B ... LDX 7 IESW(2) [CHECK FOR W FACILITY 7 #??G ... SLL 7 3 18 #?BL ... BPZ 7 WINDT [J IF W NOT BEING USED 16 #?FQ ... DOWN EDWRITE,10 [LIST THE RECORD 14 #?JW BRN WINDT [CARRY ON 8 ##4G TR0 CALL 0 OH 4 ##J6 # 15 #*3Q SHIFT CALL 5 NCHX [DELTA SHIFT 16 #*HB BXE 7 O31(1),TR1 [IGNORE IF 16 #B32 BXU 7 O32(1),OH [J NOT 15 #BGL STOZ IEIP(2) [IMPLEMENT IT 4 #C2= # 17 #CFW IETS #34,0?-TR0,T3 [COMMA: TO BE IGNORED 4 #C_G # 8 #DF6 BRN PREPARSE 4 #DYQ # 10 #FDB IETS #20,0?-TR0,T3 7 #FY2 IET ],$ 7 #GCL BRN TR1 4 #GX= # 15 #HBW IETS _,0?-TR0 [DELTA SHIFT 15 #HWG BRN SHIFT [LOOK AT IT 4 #JB6 # 16 #JTQ IETS V,0?-TR0 [V INSTRUCTION 14 #K*B BRN VI [EXECUTE 4 #KT2 # 16 #L#L IETS D,0?-TR0 [D INSTRUCTION 14 #LS= BRN XDI [EXECUTE 4 #M?W # 16 #MRG IETS L,0?-TR0 [L INSTRUCTION 15 #N?6 ... LDCT 4 #400 [L-SWITCH BIT 7 #NQQ BRN NLSW 4 #P=B # 16 #PQ2 IETS N,0?-TR0 [N INSTRUCTION 15 #Q9L ... LDCT 4 #200 [N-SWITCH BIT 7 #QP= BRN NLSW 4 #R8W # 15 #RNG IETS W,0?-TR0 [W INSTRUCTION 15 #S86 ... LDCT 4 #40 [W SWITCH BIT 7 #SMQ BRN NLSW 4 #T7B # 16 #TM2 IETS Z,0?-TR0 [Z INSTRUCTION 18 #W6L CALL 6 POPUP [POPUP INSTRUCTION STACK 14 #WL= BRN WINDT [CARRY ON 4 #X5W # 16 #XKG IETS X,0?-TR0 [X INSTRUCTION 15 #Y56 BRN XECUTE [J TO DO X 4 #YJQ # 4 #_4B # 16 #_J2 IETS F,0?-TR0 [F INSTRUCTION 15 *23L DOWN EDWRITE,9 [EXECUTE IT 8 *2H= BRN WINDT 4 *32W # 16 *3GG IETS A,0?-TR0 [A INSTRUCTION 16 *426 CALL 6 SPDS [EVALUATE OPERAND 17 *4FQ ACROSS EDITPT,3 [EXECUTE INSTRUCTION 4 *4_B # 16 *5F2 IETS B,0?-TR0 [B INSTRUCTION 16 *5YL CALL 6 SPDS [EVALUTE OPERAND 17 *6D= ACROSS EDITPT,4 [EXECUTE INSTRUCTION 4 *6XW # 16 *7CG IETS R,0?-TR0 [R INSTRUCTION 16 *7X6 CALL 6 SPDS [EVALUATE OPERAND 17 *8BQ ACROSS EDITPT,5 [EXECUTE INSTRUCTION 4 *8WB # 16 *9B2 IETS T,0?-TR0 [T INSTRUCTION 16 *9TL CALL 6 SPTR [SET PARAMETERS 18 *=*= CALL 6 TERM [EVALUATE 6 *=SW #SKI JDIAG1 4 *?#G ( 15 *?S6 CALL 6 PGTG [CHECK 'TG' 8 *#?Q BRN SE3 4 *#RB ) 17 **?2 TR4 ACROSS EDITPT,7 [EXECUTE INSTRUCTION 4 **QL # 16 *B== IETS P,0?-TR0 [P INSTRUCTION 16 *BPW CALL 6 SPTR [SET PARAMETERS 18 *C9G CALL 6 TERM [EVALUATE 6 *CP6 #SKI JDIAG1 4 *D8Q ( 15 *DNB CALL 6 PGTG [CHECK 'PG' 8 *F82 BRN SE3 4 *FML ) 17 *G7= ACROSS EDITPT,8 [EXECUTE INSTRUCTION 4 *GLW # 18 *H6G IETS #23,0?-TR0 [IMPLICIT T INSTRUCTION 12 *HL6 IET -,0,1,2,3,4,5,6,7,8,9,. 16 *J5Q CALL 6 SPTR [SET PARAMETERS 17 *JKB LDN 6 TR4(1) [EXECUTES INSTRUCTION 18 *K52 BRN TERI [EVALUATES 4 *KJL # 16 *L4= IETS M,0?-TR0 [M INSTRUCTION 8 *LHW BRN MMMM 4 *M3G # 16 *MH6 IETS O,0?-TR0 [O INSTRUCTION 8 *N2Q BRN OOOO 4 *NGB # 16 *P22 IETS H,0?-TR0 [H INSTRUCTION 8 *PFL BRN XHHH 4 *P_= # 16 *QDW IETS E,0?-TR0 [E INSTRUCTION 6 *QYG N11EDITOR 17 *RD6 XEND ACROSS EDITPT,2 [COPY FILE AND FINISH 4 *RXQ # 16 *SCB IETS Q,0?-TR0 [Q INSTRUCTION 14 *SX2 BRN XBK1 [ABANDON 4 *TBL # 16 *TW= IETS #30,0?-TR0 [LEFT PARENTHESIS 14 *W*W BRN PARL [RECURSE 4 *WTG # 17 *X*6 IETS #31,0?-TR0 [RIGHT PARENTHESIS 7 *XSQ BRN WIN1 4 *Y#B # 16 *YS2 IETS I,0?-TR0 [I INSTRUCTION 18 *_?L CALL 4 STNP [FIND 17 *_R= BRN XI [AND INSERT STRING 4 B2=W # 16 B2QG TR2 IETS U,0?-TR0 [U INSTRUCTION 16 B3=6 CALL 6 NCH [NEXT CHARACTER 15 B3PQ BRN TR3 [J NO OPERAND 15 B49B BXE 7 O20(1),TR2 [IGNORE SPACE 15 B4P2 BXE 7 O34(1),TR3 [J NO OPERAND 15 B58L BXE 7 O31(1),TR3 [J NO OPERAND 16 B5N= STO 0 IEIP(2) [RESET CHARACTER 15 B67W LDN 1 UINS(1) [POSITION AND 16 B6MG BRN UMIN [J TO OPEN FILE 18 B776 TR3 STO 0 IEIP(2) [RESET CHARACTER POSITION 19 B7LQ CALL 6 UMOP [PUSH DOWN INSTRUCTION STACK 4 B86B # 17 B8L2 # INSTRUCTION EXECUTED 4 B95L # 5 B9K= N3EDITOR 5 B=4W ...WINDT 15 B=JG CALL 6 RLIF [FIND BLOCK 16 B?46 CALL 0 OH [ERROR IF LOST 17 B?HQ WIN0 CALL 6 NCH [ANOTHER CHARACTER 17 B#3B BRN WIN5 [END, CHECK STACK 16 B#H2 BXE 7 O20(1),WIN0 [LOOP IF SPACE 18 B*2L BXE 7 O34(1),PREPARSE [*34 ENDS 16 B*G= BXE 7 O31(1),WIN1 [*31, CHECK STACK 17 B*_W BXE 7 O32(1),WIN00 [J IF #32,ELSE ERROR 9 BBFG STO 0 IEPS(2) 8 BB_6 BRN SE3 16 BCDQ WIN00 SMO IESP(2) [GET THE CURRENT 15 BCYB LDX 4 IESTACK+1(2) [REPEAT ENTRY 18 BDD2 BZE 4 SE3 [(ERROR IF ALREADY ZERO) 16 BDXL SBN 4 1 [AND DECREMENT 16 BFC= BZE 4 WIN4 [J IF FINISHED 16 BFWW SMO IESP(2) [ELSE LEAVE NEW 14 BGBG STO 4 IESTACK+1(2) [VALUE 13 BGW6 COOR2 [WAIT 14 BJ*2 ... BRN TRANS [REPEAT 4 BJSL WIN1 9 BK#= LDX 3 IESP(2) 9 BKRW ANDX 3 BITS22LS 21 BL?G BZE 3 SE4 [SYNTAX ERROR SINCE STACK UNDERFLOWS 20 BLR6 ADS 2 3 [ELSE GET CURRENT STACK MODIFIER 6 BLW= ...#UNS EDLOOP 16 BL_B ... LDXC 5 IESTACK-9(3) [GET STACK ENTRY 6 BM4G ...#UNS EDLOOP 4 BM7L ...#SKI 16 BM=Q LDXC 5 IESTACK-7(3) [GET STACK ENTRY 6 BM?K ...#UNS ICT 4 BM#D ...( 19 BM*? ... BCC WIN1A [J IF NOT CONDIT. REPETITION 20 BMB6 ... LDCT 4 1 [J IF ACTIVITY PRIORITY REDUCED 14 BMB_ ... ANDX 4 IESW(2) [ALREADY 8 BMCS ... BNZ 4 WIN2 21 BMDM ... LDCT 4 1 [CHANGE PRIORITY TO LOWEST VALUE & 15 BMFG ... ORS 4 IESW(2) [SET SWITCH 8 BMG* ... APCHANGE DOWN 18 BMH8 ... CALL 6 RLIF [FIND INSTRUCTION BLOCK 16 BMJ3 ... CALL 0 OH [ERROR IF LOST 20 BMJ9 ... LDX 3 IESP(2) [RELOAD X3 OVERWRITTEN BY RLIF 9 BMJC ... ANDX 3 BITS22LS 7 BMJK ... ADS 2 3 8 BMKP ... BRN WIN2 5 BMLJ ...WIN1A 4 BMMC ...) 6 BMN= ...#UNS ICT 4 BMP5 ...#SKI 16 BMQB BCS WIN2 [J IF 6 BMTG ...#UNS EDLOOP 15 BMYL ... LDX 4 IESTACK-8(3) [GET COUNTER 6 BN3Q ...#UNS EDLOOP 4 BN6W ...#SKI 15 BN=2 LDX 4 IESTACK-6(3) [GET COUNTER 7 BNPL SBN 4 1 15 BP9= BZE 4 WIN3 [J IF ENOUGH 6 BP#B ...#UNS EDLOOP 15 BPCG ... STO 4 IESTACK-8(3) [AND RESET 6 BPGL ...#UNS EDLOOP 4 BPKQ ...#SKI 15 BPNW STO 4 IESTACK-6(3) [AND RESET 6 BPPS ...#UNS EDLOOP 4 BPQQ ...( 20 BPRN ... BRN WIN2B [J IF NOT CONDITIONAL REPETITION 20 BPSL ...WIN2 LDX 5 IEOR(2) [LOAD CURRENT OLDFILE RECORD NO 21 BPTJ ... LDX 6 IEOC(2) [LOAD CURRENT OLDFILE CHARACTER NO 21 BPWG ... TXU 5 IESTACK-2(3) [J IF DIFFERENT POSITION IN OLDFILE 21 BPXD ... TXU 6 IESTACK-1(3) [FROM LAST PASS THRU REPEATED INSTNS 8 BPYB ... BCS WIN2A 18 BP_# ... LDX 6 IESTACK-9(3) [SET IEPS TO POINT TO ( 9 BQ2= ... ANDX 6 BITS22LS 7 BQ38 ... SBN 6 1 7 BQ46 ... SRC 6 2 9 BQ54 ... STO 6 IEPS(2) 21 BQ62 ... LDX 6 IESTACK-8(3) [SET IEIP TO POINT AFTER TERMINATOR 21 BQ6Y ... STO 6 IEIP(2) [TO OUTPUT IN FULL INCORRECT REPETITI 15 BQ7W ... [INSTRUCTIONS 19 BQ8S ... EDERR INCL [REPORT ERROR-INSTRUCTION NOT 21 BQ9Q ... DOWN EDITER,4 [COMPLETED,WOULD CAUSE EDITOR TO LOOP 15 BQ=N ... STOZ IESP(2) [CLEAR STACK 19 BQ?L ... BRN NER [ABORT UNLESS MOP ONLINE EDIT 10 BQ#J ...WIN2A STO 5 IESTACK-2(3) 10 BQ*G ... STO 6 IESTACK-1(3) 15 BQBD ... LDXC 5 IESTACK-9(3) [RELOAD X5 7 BQCB ...WIN2B SRC 5 2 4 BQD# ...) 6 BQF= ...#UNS EDLOOP 4 BQG8 ...#SKI 4 BQH6 ...( 8 BQJ4 ... BRN WIN2B 21 BQK2 ...WIN2 LDXC 5 IESTACK-7(3) [RELOAD X5,MAYBE OVERWRITTEN BY RLIF 7 BQKY ...WIN2B SRC 5 2 4 BQLW ...) 15 BQN6 STO 5 IEIP(2) [ADDRESS AND 19 BQPH ... SEGENTRY K60EDITOR,RP10 [ENHANCEMENT 8159 TO ALLOW 19 BQQY ...# [ANOTHER ACTIVITY OR PROGRAM 15 BQS* ...# [TO USE MILL. 20 BQTQ ... LDX 6 ACTCHCH(2) [CALL LETOPRUN IF NO. OF CHAPTER 20 BQX7 ... SBX 6 IERP(2) [CHANGES SINCE PREVIOUS LETOPRUN 21 BQYJ ... BXL 6 EDRPCHCH,RP10 [NOT LESS THAN N(NIS EDITRP PARAM.). 20 BQ__ ... LETOPRUN [LET ANOTHER ACTIVITY OR PROGRAM 14 BR3B ... LDX 6 ACTCHCH(2) [USE MILL 19 BR4R ... STO 6 IERP(2) [STORE NO. OF CHAPTER CHANGES 21 BR5= ... BRN PREP [FIND INSTRUCTION BLOCK & CARRY ON 4 BR68 ...RP10 9 BR6_ ... SEGENTRY K61EDITOR 14 BR7Q BRN PREPARSE [CARRY ON 16 BRMB WIN3 LDX 4 IESP(2) [PULL UP STACK 16 BS72 SLC 4 1 [IF THIS LEAVES 6 BS=6 ...#UNS EDLOOP 17 BS*= ... SBN 4 18 [THE POINTER NEGATIVE 6 BSDB ...#UNS EDLOOP 4 BSHG ...#SKI 17 BSLL SBN 4 14 [THE POINTER NEGATIVE 18 BT6= BPZ 4 WIN30 [WE HAVE REACHED THE END 6 BT7D ...#UNS ICT 4 BT8L ...( 21 BT9S ... LDCT 6 1 [J IF ACTIVITY PRIORITY HAS NOT BEEN 18 BT?2 ... ANDX 6 IESW(2) [CHANGED TO LOWEST VALUE 8 BT#8 ... BZE 6 WIN3A 20 BT*B ... LDCT 6 1 [RESET ACTIVITY PRIORITY OF CPAT 16 BTBJ ... ERS 6 IESW(2) [& UNSET SWITCH 8 BTCQ ... APCHANGE UP 18 BTDY ... CALL 6 RLIF [FIND INSTRUCTION BLOCK 16 BTG6 ... CALL 0 OH [ERROR IF LOST 5 BTH# ...WIN3A 4 BTJG ...) 15 BTKW STOZ IESP(2) [SO WE SHOULD 16 BW5G BRN WIN4 [CLEAR POINTER 15 BWK6 WIN30 SRC 4 1 [ELSE STORE 15 BX4Q STO 4 IESP(2) [NEW VALUE 18 BXJB WIN4 CALL 6 NCH [END OF THE INSTRUCTION 15 BY42 BRN PREPARSE [J FOR END 15 BYHL BXE 7 O34(1),PREPARSE [*34 IS END 18 B_3= BXU 7 O31(1),WIN4 [LOOP IF NOT *31 EITHER 16 B_GW BRN WIN1 [*31 SO REPEAT 15 C22G WIN5 LDXC 7 IESP(2) [CHECK STACK 14 C2G6 BZE 7 PREPARSE [J IF OK 15 C2_Q CALL 0 OH [ELSE ERROR 4 C3FB # 21 C3_2 STNP CALL 6 NCH [SKIP TO FORST NON-SPACE CHARATCER 16 C4DL BRN SE4 [ERROR IF OFF END 16 C4Y= BXE 7 O20(1),STNP [LOOP IF NOT *20 15 C5CW EXIT 4 0 [ELSE EXIT 4 CW#Q # 20 CWSB # THIS ROUTINE SETS THE PARAMETERS FOR TRANSLATE TO CALL TERM 4 CX#2 # 16 CXRL SPTR LDN 3 IEWT [ADDRESS OF O/P 18 CY?= LDX 4 IEOC(2) [CURRENT CHARACTER NUMBER 17 CYQW LDX 5 IEOR(2) [CURRENT RECORDNUMBER 7 C_=G EXIT 6 0 4 C_Q6 # 17 D29Q # THE ROUTINES TERM AND TERI ARE IN SEGMENT EDITET. 4 D2PB # 16 D392 TERM SBX 6 1 [RELATIVISE LINK 19 D3NL DOWN EDITET,1 [EVALUATE FROM NEXT CHARACTER 17 D48= BRN NER [J IF SYNTAX ERROR 16 D4MW ADS 1 6 [DATUMISE LINK 15 D57G EXIT 6 0 [AND RETURN 4 D5M6 # 16 D66Q TERI SBX 6 1 [RELATIVISE LINK 19 D6LB DOWN EDITET,2 [EVALUATE FROM THIS CHARACTER 17 D762 BRN NER [J IF SYNTAX ERROR 16 D7KL ADS 1 6 [DATUMISE LINK 15 D85= EXIT 6 0 [AND RETURN 4 D8JW # 21 D94G # THIS ROUTINE EVALUATES THE OPERAND FOR THE A,B AND R INSTRUCTIONS 12 D9J6 # OUTPUT IS IN IEWT AS FOLLOWS: 4 D=3Q # 18 D=HB # IEWT+1 ADDRESS OF FIRST CHARACTER IN FIRST STRING 13 D?32 # IEWT+2 LENGTH OF FIRST STRING 18 D?GL # IEWT+3 ADDRESS OF FIRST CHARACTER IN SECOND STRING 13 D#2= # IEWT+4 LENGTH OF SECOND STRING 4 D#FW # 15 D#_G # NOTE THAT NULL STRINGS ARE ALLOWED HERE. 4 D*F6 # 15 D*YQ SPDS STO 6 IEL1(2) [STORE LINK 20 DBDB CALL 4 STNP [FIND FIRST NON-SPACE CHARACTER 15 DBY2 STO 7 5 [REMEMBER IT 19 DC7S STOZ IEWT(2) [IN CASE LAST INST. WAS'P-' 16 DCCL LDN 1 IEWT+1(2) [ADDRESS OF O/P 17 DCX= SPD1 STO 3 0(1) [STORE STRING ADDRESS 17 DDBW NGN 4 1 [CUNNING COUNT SET 17 DDWG SPD2 CALL 6 NCH [GET NEXT CHARACTER 18 DFB6 CALL 0 OH [ERROR IF END OF BLOCK 16 DFTQ ADN 4 1 [COUNT CHARACTER 17 DG*B BXE 7 5,SPD3 [J IF TERMINAL QUOTE 16 DGT2 BXU 7 IEVS(2),SPD2 [LOOP IF NOT V.S. 16 DH#L LDX 3 0 [ELSE REPLACE THE 17 DHS= LDN 7 #20 [V.S. CHARACTER IN 16 DJ?W SMO IEIA(2) [THE BUFFER BY A 16 DJRG DCH 7 0(3) [SPACE THEN LOOP 15 DK?6 BRN SPD2 [AS BEFORE 15 DKQQ SPD3 STO 4 1(1) [STORE LENGTH 17 DL=B ADN 1 2 [INCREMENT ADDRESS 13 DLQ2 BVCI SPD1 [FLOP 14 DM9L LDX 6 IEL1(2) [