10 22FL #OPT K0OPERAPP=0 15 22_= #LIS K0OPERAPP > K0ALLGEO > K0GREATGEO 17 23DW #SEG OPERAPP [COMM - STIG TOWNSEND 4 23YG [ 4 24D6 [ 9 24XQ 8HOPERAPP 20 25CB SEGENTRY K1OPERAPP,OPERAPPK1 [APPEND A MESSAGE TO ACTIVE PAGE 20 25X2 SEGENTRY K2OPERAPP,OPERAPPK2 [FILL ACTIVE PAGE WITH NEWLINES 4 26BL [ 4 26W= [ 7 27*W [ AWORK1, 2 USED 5 27TG #PAGE 4 28*6 [ 4 28SQ [ 21 29#B PREFIXC 4H- - [CONTINUATION PREFIX = HYPHEN SP SP 4 29S2 [ 18 2=?L XDELTA #74 [DELTA CHARACTER LIMIT 4 2=R= [ 20 2?=W TABLE [USED FOR SPLITTING LONG MESSAGES 9 2?QG BRN XCOLNFOUND 14 2#=6 4H000: [COLON 8 2#PQ BRN XEDIT 16 2*9B 4H000( [OPEN PARENTHESIS 8 2*P2 BRN XCOMMA 14 2B8L 4H000, [COMMA 8 2BN= BRN XEDIT 14 2C7W 4H000 [SPACE 4 2CMG TEND 4 2D76 [ 4 2DLQ [ 6 2F6B TOOLONGMSG 14 2FL2 ... 30HOVERLONG MESSAGE TRUNCATED 4 2K3B [ 7 2KH2 [ DEFINITIONS 4 2L2L [ 19 2LG= #DEF WIDTH = 40 [WIDTH OF OPER SCREEN (CHARS) 4 2L_W [ 4 2MFG [ 7 2M_6 [ PRESET DATA 4 2NDQ [ 18 2NYB TYPECOUT +CONBUFF+COUT @L 12 [CONBUFF/COUT BLOCKTYPE 12 2PD2 [ 18 2PXL TYPEREMTW +CONBUFF+IREMTW@L12 [CONBUFF/IREMTW BLOCKTYPE 12 2QC= [ 18 2QWW TYPEAPP +CONBUFF+CONAPP@L12 [CONBUFF/CONAPP BLOCKTYPE 12 2RBG [ 18 2RW6 TYPEFORCE +CONBUFF+FORCE@L12 [CONBUFF/FORCE BLOCKTYPE 12 2S*Q [ 20 2STB SEARCHBACK +10 [MSG ONLY SPLIT IN LAST 10 CHARS 12 2T*2 [ 9 2TJS ...SMSK #77770000 12 2TSL [ 5 2W#= #PAGE 4 2WRW [ 4 2X?G [ 21 2XR6 [********************************************************************* 4 2Y=Q [ 6 2YQB SFILLPAGE 4 2_=2 [ 21 2_PL [********************************************************************* 4 329= [ 17 32NW [ FILLS THE ACTIVE PAGE BLOCK WITH NEWLINES (I.E. BLANK 14 338G [ LINES), UPDATING ACLEN, ACLNS AND ACLFT 4 33N6 [ 6 347Q [ LINK X7 4 34MB [ 9 3572 [ ON EXIT, X1,2 = FX'S 9 35LL [ X0,3 CORRUPT 4 366= [ 10 36KW MHUNTW 1,CONBUFF,ACTIVE 8 375G LDX 3 ACLFT(1) 7 37K6 IF 3,NZ 5 384Q THEN 9 38JB LDX 0 FCANCEL+2 9 3942 LDX 2 ACLEN(1) 7 39HL SRL 2 2 9 3=3= ADN 2 FPTR(1) 9 3=GW ADX 2 ACOUT(1) 5 3?2G DO 9 3?G6 STO 0 0(2) 8 3?_Q ADN 2 1 8 3#FB REPEAT CT 3 9 3#_2 LDX 0 ACLFT(1) 9 3*DL ADS 0 ACLNS(1) 7 3*Y= SLL 0 2 9 3BCW ADS 0 ACLEN(1) 9 3BXG STOZ ACLFT(1) 5 3CC6 FI 7 3CWQ LDX 1 FX1 7 3DBB LDX 2 FX2 7 3DW2 EXIT 7 0 5 3F*L #PAGE 4 3FT= [ 4 3G#W [ 11 3GSG [ WW WW W 11 3H#6 [ WW WW WW 11 3HRQ [ WW WW WWW 11 3J?B [ WWWW WW 11 3JR2 [ WWWW WW 11 3K=L [ WW WW WW 11 3KQ= [ WW WW WW 11 3L9W [ WW WW WW 4 3LPG [ 4 3M96 [ 6 3MNQ OPERAPPK1 4 3N8B [ 20 3NN2 [ APPENDS A MESSAGE FROM A MESSAGE BLOCK TO THE ACTIVE PAGE. WHOLE- 20 3P7L [ WORD OUTPUT LINES ARE USED, THE MESSAGE BEING FILLED WITH #74'S 9 3PM= [ AT THE END IF NEEDED 4 3Q6W [ 18 3QLG [ ON ENTRY, MESSAGE IN 1ST CONBUFF-CONAPP ON CONSOLE CHAIN 4 3R66 [ 12 3RKQ [ ON EXIT, X0 = 0 - APPENDED OK 19 3S5B [ -VE - DIDN'T BUT PAGE BLOCK IS NOT MAXIMUM SIZE 17 3SK2 [ +VE - PAGE FULL AND CANNOT BE EXTENDED 18 3T4L [ (OR TRIED TO APPEND TOO MANY LINES) 4 3TJ= [ 19 3W3W [ THIS ROUTINE DOES NOT COORDINATE OR USE ANY MACROS (APART FROM 19 3WHG [ MHUNTW) WHICH CHANGE ACCUMULATORS, AWORK OR ACOMMUNE WORDS. 16 3X36 [ ACOMMUNE WORDS ARE THEREFORE USED TO STORE DATA 4 3XGQ [ 13 3Y2B [ ACOMMUNE1 USED FOR TEMPORARY STORAGE 16 3YG2 [ ACOMMUNE3 HOLDS THE POINTER TO THE MESSAGE BLOCK 13 3Y_L [ ACOMMUNE4 USED FOR TEMPORARY STORAGE 19 3_F= [ ACOMMUNE5 HOLDS THE NUMBER OF LINES ALLOWED FOR THIS MESSAGE 19 3_YW [ ACOMMUNE6 HOLDS THE NUMBER OF CHARS ALLOWED FOR THIS MESSAGE 18 42DG [ ACOMMUNE7 HOLDS THE NUMBER OF LINES ADDED FOR THIS MESSAGE 16 42Y6 [ ACOMMUNE8 HOLDS ORIGINAL ATYPE OF CONBUFF/CONAPP 13 43CQ [ ACOMMUNE9 USED TO RETURN RESULT (X0) 4 43XB [ 15 44C2 [ AWORK1 HOLDS LENGTH OF DATA ALLOWED ON A LINE 17 44WL [ ('WIDTH' FOR 1ST, 'WIDTH'-3 FOR REST - PREFIX) 14 45B= [ AWORK2 REMAINDER COUNT OF SOURCE MESSAGE 4 45TW [ 19 46*G [EXTENDING /ACTIVE UNTIL MAX ... 18 46T6 [... SIZE OR UNTIL NO MORE ... 18 47#Q [... LINES LEFT IN PAGE, ... 16 47SB [... TRY TO APPEND MSG 8 48#2 LDN 3 BCONSOUT 7 48RL WHILE TRUE 16 49?= DO [FIND /CONAPP BLOCK 9 49QW LDX 3 FPTR(3) 13 4==G REPEAT UNTIL,+ATYPE(3),E,TYPEAPP(1) 9 4=Q6 STO 3 ACOMMUNE3(2) 13 4?9Q IF +ACOMMUNE8(2),E,TYPEFORCE(1) 5 4?PB THEN 9 4#92 CALL 7 SFILLPAGE 7 4#NL LDN 0 0 9 4*8= BRN XITSAPP 9 4*MW [*************** 5 4B7G [ 5 4BM6 FI 8 4C6Q LDN 0 WIDTH 9 4CLB STO 0 AWORK1(2) 10 4D62 MHUNTW 1,CONBUFF,ACTIVE 8 4DKL LDX 0 ACLFT(1) 18 4F5= STO 0 ACOMMUNE5(2) [LINES ALLOWED FOR MESSAGE 16 4FJW STOZ ACOMMUNE7(2) [NO LINES ADDED YET 8 4G4G LDX 0 ACLEN(1) 7 4GJ6 SRL 0 2 8 4H3Q ADX 0 ACOUT(1) 9 4HHB SBX 0 ALOGLEN(1) 8 4J32 SBN 0 ACHCT 19 4JGL NGX 0 0 [UNUSED WORDS IN ACTIVE BLOCK 20 4K2= SBX 0 ACLFT(1) [RESERVE SPACE FOR NEWLINES AT END 7 4KFW SLL 0 2 19 4K_G STO 0 ACOMMUNE6(2) [CHARS AVAILABLE IN PAGE BLOCK 7 4LF6 LDX 1 FX1 18 4LYQ LDX 0 ACOMMUNE8(2) [GET START AND LENGTH OF ... 20 4MDB ANDX 0 HALFTOP [TEXT FOR /COUT, /IREMTW OR /CINP 10 4MY2 IF 0,E,TYPECOUT(1) 5 4NCL THEN 9 4NX= LDX 5 AREC(3) 7 4PBW SBN 5 1 8 4PWG LDN 6 ATEXT 10 4QB6 ELSF 0,E,TYPEREMTW(1) 5 4QTQ THEN 9 4R*B LDEX 5 AREC(3) 9 4RT2 LDN 6 ICBUFF 13 4S#L ELSE [/CINP 8 4SS= LDX 5 A1(3) 20 4T?W SBN 5 CPDATA-A1-1 [WORD COUNT INCL 4 INITIAL SPACES 11 4TRG #DEF 20? = CPDATA-(A1+1) 20 4W?6 #SKI (20?<1$1) _ (20?�) [TROUBLE IF CPDATA < (A1+1) 19 4WQQ !! CPDATA NOT GREATER THAN A1+1 - CAN'T INSERT LEADING SPACES 8 4X=B LDX 0 ACES 21 4XQ2 STO 0 CPDATA-1(3) [INSERT LEADING SPACES (INPUT MSG) 9 4Y9L LDN 6 CPDATA-1 5 4YP= FI 4 4_8W [ 6 4_NG [ X1 = FX1 6 5286 [ X2 = FX2 18 52MQ [ X5 = MESSAGE LENGTH IN WORDS (ASSUMES SPACE-FILLED AT END) 11 537B [ X6 -> START OF TEXT (REL FPTR) 7 53M2 [ OTHERS FREE 4 546L [ 14 54L= [ FIND LAST SIGNIFICANT CHARACTER IN MESSAGE 4 555W [ 7 55KG LDX 3 6 9 5656 ADX 3 ACOMMUNE3(2) 19 56JQ ADX 3 5 [X3 -> BEYOND LAST WORD OF TEXT 18 574B IF 5,NZ [IF MESSAGE NOT NULL THEN 5 57J2 THEN 18 583L SLL 5 2 [CONVERT WORDS TO CHARS 8 58H= WHILE TRUE 8 592W SLC 3 2 8 59GG SBN 3 1 8 5=26 SRC 3 2 9 5=FQ LDCH 0 0(3) 9 5=_B SBN 0 #20 19 5?F2 AND 0,ZE [WHILE SPACE IS LAST CHAR DO 5 5?YL DO 14 5#D= REPEAT CT 5 [REPEAT 12 5#XW FI [FI 4 5*CG [ 6 5*X6 [ X1 = FX1 6 5BBQ [ X2 = FX2 14 5BWB [ X5 = CHARACTERS IN MESSAGE (MAY BE ZERO) 11 5CB2 [ X6 -> START OF TEXT (REL FPTR) 7 5CTL [ OTHERS FREE 4 5D*= [ 12 5DSW [ APPEND A MESSAGE TO ACTIVE PAGE 4 5F#G [ 18 5FS6 STO 5 AWORK2(2) [REMAINDER COUNT OF MESSAGE 10 5G?Q MHUNTW 1,CONBUFF,ACTIVE 8 5GRB LDX 0 ACLEN(1) 7 5H?2 SRL 0 2 8 5HQL ADX 1 ACOUT(1) 18 5J== ADX 1 0 [X1 -> END OF ACTIVE PAGE 7 5JPW LDX 3 6 16 5K9G ADX 3 ACOMMUNE3(2) [X3 -> START OF TEXT 21 5KP6 LDN 4 0 [X4 IS COUNT OF CHARS APPENDED THIS MSG 4 5L8Q [ 9 5LNB [ ON ENTRY TO THE LOOP: 10 5M82 [ X1 -> NEXT APPEND POSITION 6 5MML [ X2 = FX2 13 5N7= [ X3 -> START OF THE LINE WE ARE ADDING 16 5NLW [ X4 = TOTAL CHARS ADDED TO ACTIVE PAGE THIS MESSAGE 12 5P6G [ AWORK1 = LENGTH OF LINE ALLOWED 15 5PL6 [ AWORK2 = REMAINDER COUNT OF MESSAGE (CHARS) 4 5Q5Q [ 5 5QKB DO 17 5R52 STO 1 ACOMMUNE1(2) [SAVE APPEND POINTER 19 5RJL LDX 5 AWORK2(2) [X5 = MESSAGE REMAINDER COUNT 9 5S4= LDX 0 AWORK1(2) 7 5SHW ADN 0 1 20 5T3G IF 5,GE,0 [IF MSG LONGER THAN ONE LINE THEN 6 5TH6 THEN 16 5W2Q SMO FX1 [SPLIT MESSAGE 18 5WGB LDN 1 TABLE [X1 -> BRN'S IN TABLE 19 5X22 LDN 6 TEND-TABLE/2 [X6 = NO OF ELTS IN TABLE 6 5XFL DO 9 5X_= LDX 2 3 9 5YDW SLC 2 2 9 5YYG SMO FX2 21 5_D6 ADX 2 AWORK1 [NO OF CHARACTERS LEFT ON LINE 9 5_XQ SBN 2 1 21 62CB SRC 2 2 [X2 -> LAST CHAR OF THIS 'WIDTH 9 62X2 SMO FX1 21 63BL LDX 0 SEARCHBACK [FOR LAST FEW CHARS, STARTING A 14 63W= DO [DO 18 64*W LDCH 7 0(2) [LOAD NEXT CHAR 21 64TG BXE 7 1(1),(1) [J IF SUITABLE CHAR FOUND 17 65*6 RECOVER [FROM COLON ROUTINE IF SPACE FOLLOWS 21 65SQ SLC 2 2 [STEP BACK POINTER ONE CHAR 10 66#B SBN 2 1 10 66S2 SRC 2 2 19 67?L REPEAT CT 0 [REPEAT BACK ALONG LINE 9 67R= ADN 1 2 20 68=W REPEAT CT 6 [REPEAT OVER SPLITTER CHARS 21 68QG SMO FX2 [NO SUITABLE CHARACTER FOUND ... 19 69=6 LDX 5 AWORK1 [SO SPLIT AFTER 'WIDTH' 5 69PQ FI 17 6=9B XPT [RETURN POINT FROM SPLITTER ROUTINES 8 6=P2 LDX 2 FX2 21 6?8L LDX 1 ACOMMUNE1(2) [POINT X1 AT CURRENT END OF ACTIVE 4 6?N= [ 11 6#7W [ X1 -> NEXT APPEND POSITION 7 6#MG [ X2 = FX2 11 6*76 [ X3 -> START OF THIS LINE 9 6*LQ [ X4 = TRANSFER COUNT 11 6B6B [ X5 = LENGTH OF LINE (CHARS) 4 6BL2 [ 18 6C5L LDX 7 AWORK2(2) [MESSAGE REMAINDER COUNT 8 6CK= LDN 6 #76 8 6D4W IF 5,NZ 6 6DJG THEN 18 6F46 DO [FOR CHARS IN LINE DO 9 6FHQ LDX 0 4 9 6G3B ADN 0 1 21 6GH2 BXGE 0 ACOMMUNE6(2),XITERR [J IF NO ROOM FOR TWO CHARS 13 6H2L [*************************** 7 6HG= [ 19 6H_W LDCH 0 0(3) [LOAD NEXT CHARACTER 12 6JFG STO 3 ACOMMUNE4(2) 9 6J_6 LDX 3 FX1 18 6KDQ IF 0,GE,XDELTA(3) [IF DELTA CHAR THEN 7 6KYB THEN 20 6LD2 DCH 6 0(1) [STORE #76 FOR NEXT CHAR 10 6LXL BCHX 1 / 21 6MC= SBN 0 #10 [CONVERT CHARACTER TO ALPHA 21 6MWW ADN 4 1 [UPDATE CURRENT CHAR COUNT 16 6NBG FI [FI DELTA 12 6NW6 LDX 3 ACOMMUNE4(2) 21 6P*Q SBN 7 1 [DECREMENT MSG REMAINDER COUNT 19 6PTB DCH 0 0(1) [INSERT NEXT CHARACTER 9 6Q*2 BCHX 1 / 18 6QSL BCHX 3 / [UPDATE POINTERS 19 6R#= ADN 4 1 [AND CHARACTER COUNT 9 6RRW REPEAT CT 5 5 6S?G FI 4 6SR6 [ 11 6T=Q [ END OF (PRINT) LINE REACHED 4 6TQB [ 11 6W=2 [ X1 -> NEXT APPEND POSITION 7 6WPL [ X2 = FX2 11 6X9= [ X3 -> NEXT INPUT CHARACTER 11 6XNW [ X4 = TOTAL TRANSFER COUNT 12 6Y8G [ X7 = MESSAGE REMAINDER COUNT 4 6YN6 [ 7 6_7Q LDX 0 4 20 6_MB ADN 0 9 [J IF NO ROOM FOR 10 CHARS ... 21 7272 BXGE 0 ACOMMUNE6(2),XITERR [(4 NEWLINE, 3 PREFIX, 3 FILL CHARS)) 12 72LL [*************************** 5 736= [ 10 73KW LDX 0 ACOMMUNE5(2) 7 745G SBN 0 1 18 74K6 IF 0,NG [IF TOO MANY LINES THEN 6 754Q THEN 12 75JB MHUNTW 1,CONBUFF,ACTIVE 16 7642 LDN 0 1 [DRASTIC ERROR 10 76HL BRN XITSAPP 10 773= [*************** 6 77GW [ 13 782G FI [FI 17 78G6 STO 0 ACOMMUNE5(2) [REDUCE LINES LEFT 7 78_Q LDN 0 1 10 79FB ADS 0 ACOMMUNE7(2) 16 79_2 ... LDN 0 #74 [X0 = NULL CHAR 8 7=DL WHILE TRUE 9 7=Y= LDN 5 0(1) 19 7?CW AND 5,U,1 [UNTIL X1 -> WORD BOUNDARY 5 7?XG DO 9 7#C6 DCH 0 0(1) 16 7#WQ ADN 4 1 [PUT IN NULL 14 7*BB REPEAT CHX 1 [REPEAT 17 7*W2 LDN 0 FCANCEL+2 [ADDRESS OF NL BUFFER 15 7B*L MVCH 0 4 [MOVE IN NL 18 7BT= ADN 4 4 [INCREMENT CURRENT COUNT 19 7C#W LDN 0 WIDTH-3 [AFTER NL, SUBSEQUENT LINES 19 7CSG STO 0 AWORK1(2) [MUST HAVE A 3-CHAR PREFIX 18 7D#6 IF 7,NZ [IF MSG CONTINUES THEN 6 7DRQ THEN 19 7F?B SMO FX1 [INSERT CONTINUATION CHARS 21 7FR2 LDN 0 PREFIXC [ADDRESS OF CONTINUATION PREFIX 18 7G=L MVCH 0 3 [MOVE IN CONT PREFIX 19 7GQ= ADN 4 3 [INCREMENT CURRENT COUNT 18 7H9W WHILE TRUE [FOR FOLLOWING TEXT 21 7HPG STO 7 AWORK2(2) [STORE CURRENT REMAINDER COUNT 10 7J96 LDCH 0 0(3) 9 7JNQ SBN 0 #20 16 7K8B AND 0,ZE [WHILE SPACES 9 7KN2 SBN 7 1 20 7L7L AND 7,NZ [AND STILL HAVE TEXT LEFT DO 6 7LM= DO 9 7M6W REPEAT CHX 3 13 7MLG FI [FI 4 7N66 [ 7 7NKQ [ X1 APPEND PTR 5 7P5B [ X2 FX2 12 7PK2 [ X3 -> NEXT MSG CHAR (UNLESS EOM) 10 7Q4L [ X4 TOTAL CHARS APPENDED 11 7QJ= [ X7 REMAINDER COUNT OF MESSAGE 11 7R3W [ AWORK1 LENGTH OF LINE ALLOWED 13 7RHG [ AWORK2 REMAINDER COUNT OF MSG (= X7) 4 7S36 [ 18 7SGQ REPEAT UNTIL,7,ZE [REPEAT OVER LINES IN MSG 10 7T2B MHUNTW 1,CONBUFF,ACTIVE 9 7TG2 LDX 0 ACOMMUNE5(2) 18 7T_L STO 0 ACLFT(1) [UPDATE LINES LEFT IN PAGE 20 7WF= ADS 4 ACLEN(1) [UPDATE 'TO BE WRITTEN' CHAR COUNT 9 7WYW LDX 0 ACOMMUNE7(2) 20 7XDG ADS 0 ACLNS(1) [UPDATE 'TO BE WRITTEN' LINE COUNT 16 7XY6 STO 1 ACHCT(1) [MESSAGE APPENDED OK 7 7YCQ LDN 0 0 13 7YXB BRN XITSAPP [SUCCESS 16 7_C2 XITERR [APPEND HAS FAILED 10 7_WL MHUNTW 1,CONBUFF,ACTIVE 9 82B= LDX 0 ALOGLEN(1) 9 82TW SBN 0 ACTIVEMAX 20 83*G ADN 0 1 [X0 = 1(PAGE FULL), -VE(EXTENSIBLE) 20 83T6 BPZ 0 XITSAPP [FAIL IF NOT WORTH EXTENDING PAGE 7 84#Q LDX 2 FX2 17 84SB LDX 3 ACOMMUNE8(2) [PRESERVE ORIGINAL TYPE 9 85#2 LDX 4 ALOGLEN(1) 8 85RL ADN 4 ACTIVEXT 15 86?= ALTLEN 1,4,CONBUFF,ACTIVE [EXTEND BLOCK 17 86QW STO 3 ACOMMUNE8(2) [RESTORE ORIGINAL TYPE 19 87=G BRN OPERAPPK1 [TRY AGAIN AFTER PAGE EXTENDED 5 87Q6 XITSAPP 7 889Q LDX 2 FX2 9 88PB STO 0 ACOMMUNE9(2) 7 8992 SBN 0 1 15 89NL IF 0,ZE [IF PAGE FULL 20 8=8= AND +ACHCT(1),ZE [AND NO MESSAGE FULLY APPENDED THEN 5 8=MW THEN 14 8=WN ...[ MESSAGE TOO LONG TO FIT ON A FULL PAGE 17 8?5G ...[ TRUNCATE MESSAGE & GO BACK TO K1OPERAPP TO TRY AGAIN 11 8?## ...[ X3 -> NEXT CHAR OF MESSAGE 7 8?H6 ... LDX 5 3 21 8?PY ... SBN 5 9 [STEP BACK 9 WORDS IN MESSAGE BLOCK 8 8?YQ ... LDX 1 FX1 10 8#7J ... LDN 4 TOOLONGMSG(1) 18 8#BB ... MVCH 4 30 [MOVE TO MESSAGE BLOCK 18 8#K8 ... LDX 3 ACOMMUNE3(2) [POINTER TO MESSAGE BLOCK 21 8#S2 ... SBX 5 3 [CHAR POINTER RELATIVE TO START OF BL 18 8*2S ... LDX 0 ACOMMUNE8(2) [ATYPE OF MESSAGE BLOCK 9 8*9L ... ANDX 0 HALFTOP 17 8*DD ... IF 0,E,TYPECOUT(1) [CONBUFF/COUT BLOCK 6 8*M= ... THEN 18 8*W4 ... SBN 5 AREC [GET NEW MESSAGE LENGTH 10 8B4W ... ANDX 5 BITS22LS 10 8B?N ... STO 5 AREC(3) 17 8BGG ... ELSF 0,E,TYPEREMTW(1) [CONBUFF/IREMTW BLOCK 6 8BP# ... THEN 9 8BY6 ... SBN 5 ICBUFF 10 8C6Y ... ANDX 5 BITS22LS 9 8C*Q ... LDX 4 A1(3) 10 8CJJ ... ANDX 4 SMSK(1) 8 8CRB ... ADX 4 5 9 8D28 ... STO 4 A1(3) 6 8D92 ... ELSE 17 8DCS ... SBN 5 CPDATA [CONBUFF/CINP BLOCK 10 8DLL ... ANDX 5 BITS22LS 9 8DTD ... STO 5 A1(3) 5 8F4= ... FI 9 8F?4 ... BRN OPERAPPK1 12 8FGL FI [FI 9 8G2= LDX 0 ACOMMUNE8(2) 9 8GFW SMO ACOMMUNE3(2) 18 8G_G STO 0 ATYPE [RESTORE BLOCK TYPE/SUBTYPE 5 8HF6 UP 4 8HYQ [ 4 8JDB [ 14 8JY2 [ SPLITTER ROUTINES BRN'D TO FROM 'TABLE' 4 8KCL [ 4 8KX= [ 16 8LBW XCOLNFOUND [ENTER IF FIND COLON 17 8LWG BCHX 2 / [X2-> CHAR FOLLOWING : 17 8MB6 LDCH 7 0(2) [LOAD CHAR FOLLOWING : 7 8MTQ SLC 2 2 7 8N*B SBN 2 1 13 8NT2 SRC 2 2 [X2-> : 18 8P#L SBN 7 #20 [IF FOLLOWED BY SPACE ... 19 8PS= BZE 7 RECOVER [GO BACK TO FIND SUITABLE CHAR 4 8Q?W [ 18 8QRG XEDIT [SPACE, '(' OR COLON FOUND 18 8R?6 [REMOVE ANY PRECEDING SPACES 17 8RQQ LDX 5 2 [X2 -> THE SPLIT CHAR 7 8S=B SLC 5 2 7 8SQ2 SLC 3 2 19 8T9L SBX 5 3 [X5 = NO OF CHARS BEFORE IT ... 15 8TP= SRC 3 2 [ON THIS LINE 18 8W8W WHILE TRUE [FOR PRECEDING CHARACTERS 7 8WNG SLC 2 2 7 8X86 SBN 2 1 7 8XMQ SRC 2 2 8 8Y7B LDCH 7 0(2) 8 8YM2 SBN 7 #20 18 8_6L AND 7,ZE [WHILE THEY ARE SPACES DO 5 8_L= DO 13 925W REPEAT CT 5 [REPEAT 16 92KG BRN XPT [RETURN TO MAIN FLOW 4 9356 [ 14 93JQ XCOMMA [X2-> COMMA 7 944B SLC 2 2 7 94J2 SLC 3 2 19 953L SBX 2 3 [X2 = CHARS IN LINE UP TO COMMA 19 95H= SRC 3 2 [(X2 NO LONGER -> SPLIT CHAR) 7 962W LDX 5 2 18 96GG ADN 5 1 [X5 = LINE LENGTH INCL COMMA 16 9726 BRN XPT [RETURN TO MAIN FLOW 5 97FQ #PAGE 4 97_B [ 4 98F2 [ 4 98YL [ 12 99D= [ WW WW WWWWW 13 99XW [ WW WW WW WW 13 9=CG [ WW WW WW 13 9=X6 [ WWWW WW 12 9?BQ [ WWWW WW 12 9?WB [ WW WW WW 11 9#B2 [ WW WW WW 13 9#TL [ WW WW WWWWWWW 4 9**= [ 4 9*SW [ 6 9B#G OPERAPPK2 4 9BS6 [ 4 9C?Q [ 18 9CRB [ FILLS THE ACTIVE PAGE WITH NEWLINES AND UPDATES THE BLOCK 4 9D?2 [ 9 9DQL CALL 7 SFILLPAGE 5 9F== UP 4 9FPW #END 6 ____ ...100515520004