{{htmlmetatags>metatag-description:(ICL George 3 and George 4 source: RMTLF864)}} ====== RMTLF864 ====== (George Source) **Macros used:** [[george:macro:ACROSS|ACROSS]], [[george:macro:ALTLENG|ALTLENG]], [[george:macro:BXE|BXE]], [[george:macro:BXL|BXL]], [[george:macro:BXU|BXU]], [[george:macro:FLIP|FLIP]], [[george:macro:LF|LF]], [[george:macro:LFBBUS|LFBBUS]], [[george:macro:MHUNTW|MHUNTW]], [[george:macro:PHOTO|PHOTO]], [[george:macro:QSTEPC|QSTEPC]], [[george:macro:RENGAGE|RENGAGE]], [[george:macro:SEGENTRY|SEGENTRY]], [[george:macro:SLEEP|SLEEP]], [[george:macro:SLEEP2|SLEEP2]], [[george:macro:STEP|STEP]], [[george:macro:STEPAGAIN|STEPAGAIN]], [[george:macro:TAB|TAB]], [[george:macro:TESTMOVE|TESTMOVE]], [[george:macro:WAKEUP|WAKEUP]] 22CR ...#SEG RMTLF8 [G CONSTANTINIDES 22TJ ...#OPT K0RMTLF=0 23?* ...#LIS K0RMTLF>K0PCT>K0ALLGEO>K0GREATGEO 23P6 ... 8HRMTLF 246X ...# ENTRY POINTS 24JN ... SEGENTRY K1RMTLF,Z1RMTLF 252F ... SEGENTRY K2RMTLF,Z2RMTLF 2574 ... SEGENTRY K3RMTLF,Z3RMTLF 25?M ... SEGENTRY K4RMTLF,Z4RMTLF 25D= ...# 25W3 ...[ 26?S ...[THIS SEGMENT OUTPUTS FILES TO A REMOTE LP OR TP WHERE THE 7020 IS 26PK ...[ATTACHED VIA A MULTIPLEXOR/UNIPLEXOR/SCANNER -I.E NOT A 7900. 277B ...[IT IS EQUIVALENT TO LISTLOOP OR IPBLISTB. 27K7 ...[IT IS ENTERED FROM'PCTLISTA' AFTER THE DOCUMENT HEADINGS HAVE BEEN 282Y ...[OUTPUT. THE CURRENT ACTIVITY IS AN ACTLF. 28DP ...[ON ENTRY 28WG ...[AWORK1 =+VE FOR LP OUTPUT. -VE FOR TP OUTPUT 29#? ...[NUM(2) =START LINE NUMBER 29Q4 ...[REST(2)=RESTART LINE NUMBER 2=7T ...[NLI(2) =NO. OF LINES TO OUTPUT ELSE -VE 2=KL ...[TBITS =CATEGORY MASK FOR MONITORING FILES 2?3C ...[QUAL IS EQUIVALENT TO GQUAL IN SHORT GOUT INFO BLOCK 2?F8 ...# 2?W^ ...# 2##Q ...#DEF NUM=IWORK1 2#QH ...#DEF REST=IWORK2 2*8# ...#DEF NLI=IWORK3 2*L5 ...#DEF TBITS=IWORK4 2B3W ...#DEF QUAL=IWORK5 2BFM ...#DEF ZFE5=#7635 2BXD ...ZDLEFE1 #76007631 2C*9 ...# 2CR2 ...# 2CXK ...TNUPA ADX 3 AWORK3(2) 2D48 ... LDX 2 3 2D8R ...SPLNUPAGE 2DLJ ... SMO FX1 2F4* ... LDN 1 ZDLEFE1 2FG6 ... MVCH 1 4 2FXX ... LDCT 1 #200 2G*N ... SMO FX2 2GRF ... LDX 0 IWORK11 2H9= ... SLL 0 12 2HM3 ... ADN 0 ZFE5 2J4S ... MVCH 1 3 2JGK ... LDX 1 FX2 2KB7 ... SBN 6 7 2KRY ... SBN 7 3 2L9P ... EXIT 4 0 2LMG ...YTSPL 2M5? ... LDN 0 4 2MH4 ... SMO AWORK2(1) 2MYT ... ANDX 0 EWAIT 2NBL ... EXIT 4 0 2NSC ...# 2P=8 ...SALPH #74 2PM^ ...SDELT #76 2Q5Q ...SPACE #20 2QHH ...# 2Q^# ...SPACS #763143 2RC5 ...SHTAB #76317100 2RSW ...SHYPH #35760000 2S=M ...SCAPE #76130075 2SND ...# 2T69 ...NMULT 7036875 2TJ2 ...# 2T^R ...STX #76227632 2WCJ ...SNULL #76207620 2WT* ...XETX #34762300 2X?6 ...# 2XNX ...PF0 2,#76350000 2Y6N ...PF1 2,#76327620 2YJF ...PF2 4,#76327632 2^2= ...PF12 #763301 2^D3 ...# 2^TS ...# 32?K ...# SUBROUTINE TO RELOCATE FILE RECORD EITHER IN FILE ITSELF OR IN 32PB ...# THE ADATA,ACONV BLOCK 3377 ...# 33JY ...RECLOC 342P ... LDXC 0 QUAL(2) 34DG ... BCC STEPAGAIN [BR IF NO TRANSFORMING 34W? ...RCONV MHUNTW 3,ADATA,ACONV [LOCATE TRANSFORM BLOCK. 35#4 ... ADN 3 A1 35PT ... BRN (4) 367L ...STEPAGAIN 36KC ... SBX 4 FX1 3738 ... STEPAGAIN [RELOCATE RECORD 37D^ ... ADX 4 FX1 37WQ ... BRN (4) 38#H ...# SUBROUTINE FOR USE BY ALTLENG MACRO 38Q# ...# 3985 ...# 39KW ...SMHUNTW 3=3M ... MHUNTW 2,ADATA,ACONV 3=FD ... BRN (1) 3=X9 ...# 3?*2 ...# 3?QR ...# SUBROUTINE TO WAKE UP THE PCT POLLING ACTIVITY. 3#8J ...# 3#L* ...WAKUP WAKEUP LF 3*46 ... EXIT 6 0 3*FX ...# 3*XN ...# SUBROUTINE TO GET THE LAST CHARACTER DEPOSITED. 3B*F ...# 3BR= ...SBACK STO 0 GEN0 [SAVE LINK. 3C93 ... SLC 2 2 [STEP BACK THE OUTPUT POINTER. 3CLS ... SBN 2 1 3D4K ... SRC 2 2 3DGB ... LDCH 0 0(2) [GET THE CHARACTER. 3DY7 ... BRN (GEN0) [EXIT. 3F*Y ...# 3FRP ...# SUBROUTINE TO SET UP THE "CLEAN FINISH" COUNT. 3G9G ...# 3GM? ...SETCL LDN 0 CLEANUM [CLEANUM = 8 WHEN I LAST LOOKED. 3H54 ... ADXC 0 AWORK1(2) [J. IF TP. 3HGT ... BCS SETTP 3HYL ... SLL 0 2 [* 4 FOR *LP (APPROX. 1/2 PAGE FULL). 3JBC ...SETTP SBN 0 1 [FAIRLY ARBITRARY : 3JS8 ... STO 0 IWORK15(2) [TEST WHEN IT GOES -VE. 3K9^ ... EXIT 4 0 3KMQ ...# 3L5H ...# SUBROUTINE TO UPDATE REMEMBRANCES FOR PAGE RESTARTS WHEN INSERTING F-F 3LH# ...# 3L^5 ...NPAGE LDXC 0 REST(1) [EXIT UNLESS PAGE RESTART SPECIFIED. 3MBW ... BCC (4) 3MSM ... STO 4 ACOMMUNE1(1) [SAVE LINK. 3N=D ... MHUNTW 3,ADATA,IPTEMP [FIND THE PAGE RESTART BLOCK. 3NN9 ... LDX 4 ALOGLEN(3) [FIND POSITION DOWN BLOCK. 3P62 ... LDX 1 A1(3) [UPDATE PAGE NUMBER. 3PHR ... SBN 4 1 3P^J ... ADN 1 1 3QC* ... STO 1 A1(3) 3QT6 ... DVS 0 4 3R=X ... LDX 1 FX2 [SET RESTART LINE FOR THIS PAGE:- 3RNN ... LDX 4 NUM(1) 3S6F ... SMO 0 [IN THE RESTART BLOCK 3SJ= ... STO 4 A1+1(3) 3T23 ... STO 4 IWORK14(1) 3TCS ... CALL 4 YTSPL 3TTK ... LDX 4 ACOMMUNE1(1) 3W?B ... BZE 0 (4) 3WP7 ... LDX 0 A1(3) 3X6Y ... ANDN 0 #37 3XJP ... STO 0 IWORK11(1) 3Y2G ... LDXC 0 AWORK1(1) 3YD? ... BCS SPLNUPAGE 3YW4 ... ORX 4 GSIGN 3^?T ... LDX 3 AWORK2(1) 3^PL ... BUX 4 SPLTJ 427C ...# 42K8 ...# SUBROUTINE TO DO SLEEP MACRO, EXITING ONLY IF NO ERROR CONDITION OCCUR 432^ ...# 43DQ ...# 43WH ...WAIT SBX 7 FX1 [RELATIVISE LINK. 44## ... SLEEP2 RLINE,REST1 [WAIT FOR BUFFER TO BECOME FREE. 44Q5 ... MHUNTW 3,A7020,ALIST [RELOCATE THE BUFFER BLOCK. 457W ... ADX 7 1 [RESET LINK. 45KM ... STO 3 AWORK2(2) [REMEMBER BLOCK ADDRESS. 463D ... EXIT 7 0 46F9 ...# 46X2 ...# SECTION TO DEAL WITH LINE RESTARTS. 47#R ...# IN THE CASE OF RESTARTS RENGAGE RESETS THE ACTLF BEFORE COMING BACK UP 47QJ ...# 488* ...RLINE 48L6 ... CALL 4 RECLOC [GET POINTER TO RESTART RECORD 493X ... LDN 6 1 [SET MARKER TO FORCE FLIP. 49FN ... BRN REST2 49XF ...# 4=*= ...# 4=R3 ...# SUBROUTINE TO FLIP, IF X6 IS NON-ZERO, AND THEN GET THE NEXT BUFFER. 4?8S ...# 4?*C ...VRSET BNG 6 SFLIP 4?G2 ... ADN 4 4 4?LK ...SFLIP MHUNTW 3,A7020,ALIST [FIND THE OUTPUT BUFFER BLOCK. 4#4B ... STO 3 AWORK2(2) [REMEMBER ITS ADDRESS. 4#G7 ... BZE 6 SLEEP [J. IF FLIP SWITCH UNSET. 4#XY ... FLIP [TELL PCT ACTIVITY WE'RE READY TO GO. 4**P ... BRN SLEEP [J. TO SET UP THE NEXT OUTPUT BUFFER. 4*RG ...# 4B9? ...# SUBROUTINE TO STEP ON TO THE NEXT BUFFER WHEN IT IS AVAILABLE. 4BM4 ...# 4C4T ...SLP1 SBX 4 FX1 [RELATIVISE LINK. 4CGL ... CALL 7 WAIT [WAIT FOR A BUFFER TO BECOME FREE. 4CYC ... ADX 4 1 4DB8 ... ORX 4 GSIGN [SET LINK -VE TO SHOW COORDINATION. 4DR^ ...# 4F9Q ...SLEEP LDCT 0 #103 [J. IF ERROR, MOP OFF OR INOP. TERMIN 4FMH ... ANDX 0 EWAIT(3) 4G5# ... BNZ 0 SLP1 4GH5 ... LDX 1 INTLK3(3) [POINTER TO CURRENT BUFFER. 4GYW ... LDX 2 FX2 4HBM ... CALL 6 SPL19 4HSD ... BRN U [J IF NOT 1901A 4J=9 ... BRN XCLN 4JN2 ...U LDXC 6 5 [J. UNLESS END OF TRANSFER COINCIDES 4K5R ... BNZ 6 XCLN [WITH END OF RECORD (OR LINE). 4KHJ ... STO 4 GEN4 [SAVE LINK, THEN RESET THE COUNT 4K^* ... LDX 6 GSIGN [OF LINES TO THE NEXT FORCED CLEAN 4LC6 ... CALL 4 SETCL [FINISH, AND MARK THIS BUFFER AS 4LSX ... SMO 1 [MESSAGE-CAN-END-WITH-THIS-TRANSFER. 4M=N ... ORS 6 INTLK2(3) 4MNF ... LDX 4 GEN4 4N6= ...XCLN SBN 1 ALFBUFFNUM-1 [STEP ON TO THE NEXT BUFFER. 4NJ3 ... BZE 1 NEXZ0 4N^S ... ADN 1 ALFBUFFNUM 4PCK ... SMO 1 4PTB ...NEXZ0 LDXC 6 INTLK(3) [HAS IT BEEN EMPTIED YET? 4Q?7 ... BCS SLP1 [J. IF NOT. 4QNY ... ANDN 6 -1 [GET POINTER TO START OF BUFFER. 4R6P ... ORX 6 GSIGN [ALLOW TWO CHARS. FOR STX. 4RJG ... ADN 6 ACTBUFF 4S2? ... STO 6 AWORK3(2) [REMEMBER CURRENT POINTER. 4SD4 ... SMO FX1 [PUT STX INTO BUFFER. 4STT ... LDX 0 STX 4T?L ... SMO 6 4TPC ... STO 0 0(3) 4W78 ... LDX 0 IWORK14(2) [SET THE RESTART LINE NO. FOR THE 4WJ^ ... SMO 1 [LAST BUFFER. 4X2Q ... STO 0 INTLK2(3) 4XDH ... STO 1 INTLK3(3) [SET POINTER TO NEW BUFFER. 4XH^ ...#SKI ALTEBCC<1$1 4XMC ...( 4XQT ... LDN 7 78 [RESET 7-BIT BLOCK CHAR. COUNT 4XW? ... LDN 6 118 [AND 6-BIT TRANSFER CHAR. COUNT 4X^P ...) 4Y57 ...#SKI ALTEBCC 4Y8K ...( 4Y#3 ... STO 6 IWORK10(2) [REMEMBER POINTER FOR START OF OUTPUT 4YCF ... LDN 7 72 [RESET CHAR COUNTS ALLOWING FOR 4YGX ... LDN 6 112 [SIX EXTRA BCC CHARACTERS 4YL* ...) 4YLK ... LDXC 0 AWORK1(2) 4YLT ... BCC NOUT [J IF LP 4YM5 ... LDN 0 #75 4YM* ... BXU 0 IWORK16(2),NOUT [OR IF CURRENT SHIFT IS ALPHA 4YMK ... LDX 1 3 4YMT ... ADX 1 AWORK3(2) 4YN5 ... DCH 0 0(1) [INSERT BETA AT START OF BUFFER 4YN* ... SBN 6 1 [AND STEP DOWN COUNT 4YNK ... BCHX 1 £ 4YNT ... SBX 1 3 4YP5 ... STO 1 AWORK3(2) 4YP* ...NOUT 4YPW ... EXIT 4 0 [WILL SET V IF COORDINATED, AS B0 SET 4^7M ...# 4^KD ...# SUBROUTINE TO INSERT SPACES, OR HORIZONTAL TAB IF THE CT. IN X0 > 2. 5239 ...# 52F2 ...PUTS1 SBX 6 0 [STEP DOWN COUNTS AS REQUIRED. 52WR ... SBX 7 0 53#J ... SBN 0 3 53Q* ... BNG 0 PUTS2 [J. TO INSERT SPACES IF CT. < 3. 5486 ... ADX 6 0 [HORIZ. TAB = 3*6-BIT, 54KX ... ADX 7 0 [I. E. 2*7-BIT CHARS. 553N ... SMO FX1 55FF ... ADX 0 SPACS [SET UP CORRECT TAB. 55X= ... LDN 1 0 [POINTER FOR MVCH. 56*3 ... ADN 7 1 56QS ... BCHX 1 PUTS3 578K ...PUTS2 LDN 1 ACES [POINTER FOR MVCH. 57LB ... SMO 0 [X0 = -1 OR -2. 5847 ...PUTS3 MVCH 1 3 [MOVE IN REQUIRED CHARS. 58FY ... LDX 1 FX2 [SAVES A LOT OF "SMO"S. 58XP ... BNG 6 TREND 59*G ... BPZ 7 (4) [EXIT UNLESS COUNTED DOWN. 59JB ... BRN TREND 59R? ...# 59RK ...#SKI ALTEBCC 59RX ...( 59S9 ...# SUBROUTINE TO ACCUMULATE BCC VALUE FOR LAST BUFFER 59SH ...# AND TO EXPAND BCC VALUE TO 6 CHARACTERS AND PUT IN BUFFER 59ST ...# 59T7 ...SBC SMO FX2 59TF ... LDXC 0 AWORK1 59TR ... BCS (4) [J IF TP 59W5 ... LDX 0 2 [SAVE OUTPUT POINTER IN X0 59WC ... LDX 2 FX2 59WP ... STO 4 ACOMMUNE4(2) [SAVE LINK 59X3 ... STO 0 ACOMMUNE5(2) 59X* ... LDX 4 IWORK10(2) [GET RELATIVE POINTER FOR START 59XM ... LDX 1 0 [POINTER TO END OF DATA 59X^ ... SBX 1 AWORK2(2) [RELATIVISE END POINTER 59Y? ... SLC 1 2 [CONVERT END POINTER TO CHARS. 59YK ... SLC 4 2 [CONVERT START POINTER TO CHARS. 59YX ... SBX 1 4 [NUMBER OF CHARS IN OUTPUT BUFFER 59^9 ... LDX 0 1 59^H ... LDX 1 AWORK2(2) [ADD START ADDRESS OF BLOCK 59^T ... ADX 1 IWORK10(2) [ADD RELATIVE POINTER 5=27 ... LDX 2 0 5=2F ... LDN 0 0 [INITIALISE SBC VALUE IN X0 5=2R ...SBC1 LDCH 4 0(1) [GET NEXT CHAR FROM BUFFER 5=35 ... ERX 0 4 5=3C ... SLC 0 1 [ADD TO SBC 5=3P ... BCHX 1 £ [J IF COUNT NOT ZERO 5=43 ... BCT 2 SBC1 5=4* ... SMO FX2 5=4M ... LDX 2 ACOMMUNE5 5=4^ ... LDN 4 6 5=5? ... LDX 1 0 [MOVE SBC TO X1 5=5K ...SBC2 LDN 0 0 5=5X ... SLL 01 4 [EXPAND 4 BITS TO A CHAR. 5=69 ... DCH 0 0(2) [PUT CHAR IN OUTPUT BUFFER 5=6H ... BCHX 2 £ 5=6T ... BCT 4 SBC2 [EXPAND TO 6 CHARACTERS 5=77 ... SMO FX2 5=7F ... LDX 4 ACOMMUNE4 [RESTORE LINK 5=7R ... EXIT 4 0 5=85 ...) 5=8C ...# 5=94 ...# SUBROUTINE TO CLEAR UP LAST BUFFER, STEP ONTO THE NEXT, AND RESET PTRS 5=LT ...# 5?4L ...XNRJE LDX 6 GEN0 [CHAR COUNT 5?GC ... EXIT 4 0 [NOT 1901A RJE 5?Y8 ...TRENDRJE [COME HERE TO SEND DC3ETX AT THE 5#*^ ... LDX 1 FX2 [END OF PAGE PROVIDED 1901A RJE LP 5#RQ ... LDX 3 AWORK2(1) [ALIST PTR 5*9H ... STO 6 GEN0 [SAVE CHAR COUNT IN CASE NOT 5*M# ... CALL 6 SPL19 [1901A RJE 5B55 ... BRN XNRJE [J IF NOT 1901A 5BGW ... STOZ IWORK11(1) [PTR DOWN INPUT RECORD 5BYM ...SPLTJ SBX 4 FX1 5CBD ... STO 4 IWORK13(1) [LINK 5CS9 ... LDX 6 INTLK3(3) [CURRENT BUFFER 5D=2 ... LDN 0 1 5DMR ... ADS 0 ALFTRANS(1) [TRANSFER COUNT 5F5J ... CALL 0 SBACK 5FH* ... SBN 0 #74 5F^6 ... BPZ 0 TXRJE [J IF LAST CHAR WAS SHIFT 5GBX ... BCHX 2 £ 5GJC ...TXRJE 5GPX ...#SKI ALTEBCC<1$1 5GXC ...( 5H4X ... LDN 0 #7603 [DC3 AT END OF PAGE 5H=F ... SLL 0 12 5HN= ... ADN 0 #7623 [ETX 5J63 ... LDN 1 0 5JHS ... MVCH 1 4 [STORE IN BUFFER 5JJY ...) 5JL4 ...#SKI ALTEBCC 5JM8 ...( 5JN# ... LDN 0 #7603 [DC3 AT END OF PAGE 5JPD ... LDX 1 GSIGN 5JQJ ... MVCH 1 2 [PUT IN BUFFER 5JRN ... CALL 4 SBC [CALCULATE BCC FOR THIS BUFFER 5JSS ... LDN 0 #7623 [ETX 5JTY ... LDX 1 GSIGN 5JX4 ... MVCH 1 2 [IN BUFFER 5JY8 ...) 5J^K ... LDX 1 GSIGN 5KCB ... SMO 6 5KT7 ... ORS 1 INTLK(3) [BUFFER MAY NOW BE OUTPUT 5L=Y ... SMO 6 5LNP ... ORS 1 INTLK2(3) [CLEAN FINISH 5M6G ... BRN XRJE [JOIN THE MAIN ROUTINE 5MJ? ...TREND SBX 3 ACOMMUNE3(1) [RELATIVISE POINTER DOWN INPUT RECORD 5N24 ... SBX 4 FX1 [RELATIVISE AND PRESERVE LINK. 5NCT ... STO 3 IWORK11(1) 5NTL ... STO 4 IWORK13(1) 5P?C ... LDX 3 AWORK2(1) [POINTER TO ALIST BLOCK. 5PP8 ... LDX 6 INTLK3(3) [MARK BUFFER AS READY FOR OUTPUT. 5Q6^ ... LDN 0 1 5QJQ ... ADS 0 ALFTRANS(1) [UPDATE TRANSFER COUNT 5R2H ... CALL 0 SBACK [MOVE IN ETB TO END BLOCK 5RD# ... SBN 0 #74 [(OVERWRITE LAST CHAR. DEPOSITED 5RW5 ... BPZ 0 TRED1 [ IF IT WAS A SHIFT). 5S?W ... BCHX 2 £ 5SFB ...TRED1 5SLW ...#SKI ALTEBCC 5SSB ... CALL 4 SBC [CALC. BCC FOR THIS BUFFER & STORE 5S^W ... LDX 1 GSIGN 5T7D ... LDN 0 #7607 5TK9 ... SMO 6 5W32 ... ORS 1 INTLK(3) 5WDR ... MVCH 1 2 5WWJ ...XRJE CALL 6 WAKUP [KICK THE OUTPUT ACTIVITY IF ASLEEP. 5X#* ... CALL 4 SLEEP [STEP ON TO NEXT BUFFER. 5XQ6 ... BVCR NCOOR [J. UNLESS WE NEED TO RESET POINTERS. 5Y7X ... LDX 3 ACOMMUNE3(2) [J. IF END OF FILE HAS BEEN REACHED. 5YKN ... BZE 3 NCOOR 5^3F ... CALL 4 RECLOC [FIND INPUT RECORD AGAIN 5^F= ... STO 3 ACOMMUNE3(2) [SAVE POINTER TO RECORD. 5^X3 ...NOREC MHUNTW 3,A7020,ALIST [AND THE BUFFER BLOCK IF STEP COOR-ED 62#S ... STO 3 AWORK2(2) 62QK ...NCOOR LDX 1 FX2 638B ... LDX 2 AWORK2(1) [SET NEW OUTPUT POINTER. 63L7 ... LDX 4 REST(1) 643Y ... ADX 2 AWORK3(1) 64FP ... BNZ 4 XLINE [IF LINE RESTARTS GET THE 64XG ... LDX 0 IWORK19(1) [RECORD NUMBER AT START OF LAST BUFFE 65*? ... STO 0 IWORK14(1) [REMEMBER FOR INSERTION IN NEXT INTLK 65R4 ... LDX 0 NUM(1) [RECORD NUMBER AT START OF THIS BUFFE 668T ... STO 0 IWORK19(1) [SAVE FOR INSERTION IN NEXT IWORK14. 66LL ...XLINE LDX 3 ACOMMUNE3(1) 674C ... LDXC 4 IWORK13(1) 67G8 ... BCC NSPLD 67X^ ... CALL 4 SPLNUPAGE 68*Q ... LDXC 4 IWORK13(1) 68RH ... BRN SPLE 699# ...NSPLD 69M5 ... ADX 3 IWORK11(1) [RESET THE INPUT POINTER. 6=4W ...SPLE ADX 4 FX1 [RECONSTITUTE THE LINK. 6=JG ... EXIT 4 0 6*H6 ...# 6*YX ...SPL19 LDX 0 EWAIT(3) 6BBN ... SRC 0 3 6BSF ... BNG 0 SPLYY 6C== ... SLC 0 2 6CN3 ... BPZ 0 (6) 6D5S ...YSSTP 6DHK ... SMO FX2 6D^B ... LDXC 0 AWORK1 6FC7 ... BCS (6) [J IF TP 6FSY ...SPLYY EXIT 6 1 6GNG ...# 6H6? ...# 6HJ4 ...# 6H^T ...# 6JFF ...Z1RMTLF [ENTRY TO LIST SETUP FILE 6SKF ...ONCEMORE 6T3= ... STOZ IWORK17(2) [CLEAR CONTINUATION LINE MARKER 6TB= ... BRN TZZZ 6THQ ...Z3RMTLF 6TP= ...REST1 6TSX ...#UNS JSKI33 6W4= ...TP1 LDN 6 1 6WC= ...TZZZ LDX 4 NUM(2) 6WQB ... STO 4 IWORK14(2) [SAVE FOR SETTING RESTART SECTIONS. 6X87 ... STO 4 IWORK19(2) [THIS WORD IS ONLY USED FOR LINE REST 6XKY ... MHUNTW 3,A7020,ALIST [ALSO STORE IN ALIST BLOCK SO WE 6Y3P ... STO 4 INTLK4(3) [DON'T STEP BACK TOO FAR IN DOING 6YFG ... [A RESTART AFTER AN ERROR IN 6YX? ... [OUTPUTTING THE FIRST BUFFER. 6^*4 ...# 6^QT ...NEXT1 LDN 5 1 [SET X5 NON ZERO TO SHOW LAST BUFFER 728L ...# [WAS CLEAN 72LC ...STEP STEP [GET THE NEXT RECORD. 72MD ...#UNS JSKI33 72NF ...( 72PG ... LFBBUS M,2,REOK 72QH ... MHUNTW 2,A7020,ALIST 72RJ ... LDX 0 BIT11 72SK ... ORS 0 EWAIT(2) 72TL ... RENGAGE 4,RLINE,REST1 72WM ... BZE 3 YEND 72X2 ...Z2RMTLF [ENTRY TO LIST MAINFILE 72X* ...[ [ALREADY POSITIONED AT CORRECT LINE 72XN ... STEPAGAIN 72YP ...REOK 72^9 ... BZE 3 YEND 72^Q ...) 732R ...#SKI JSKI33<1$1 7348 ... BZE 3 YEND [J. IF FILE TOO SHORT. 73F^ ... BCT 4 STEP [N. B. X4 > 0 INITIALLY. 73XQ ... LDXC 0 QUAL(2) 74*H ... BCC NOTBASIC [BR IF FILE NOT BASIC 74R# ... LDEX 4 FRH(3) [ELSE WE MUST TRANSFORM 7595 ... ADN 4 3 [REQUIRED BLOCK LENGTH 75LW ... CALL 1 SMHUNTW 764M ... LDX 0 ALOGLEN(2) 76GD ... TXL 0 4 76Y9 ... BCC XBIGNUFF [BR IF BLOCK BIG ENOUGH 77B2 ... PHOTO 7 77RR ... ALTLENG 2,4,SMHUNTW [EXTEND ACONV BLOCK 789J ... TESTMOVE 7,STILL 78M* ... STEPAGAIN [RELOCATE RECORD 7956 ...STILL 79GX ... CALL 1 SMHUNTW [...AND ACONV 79YN ...XBIGNUFF 7=BF ... LDEX 1 FRH(3) 7=S= ... ADN 3 FRH 7?=3 ... LDN 4 A1(2) 7?MS ... MOVE 3 0(1) [COPY RECORD INTO ADATA/ACONV BLOCK. 7#5K ... LDN 1 6 ['NORMAL' 7#HB ... SMO FX2 7#^7 ... LDXC 0 QUAL 7*BY ... ADXC 0 0 7*SP ... BCS NORMAL [BR IF FILE NORMAL 7B=G ... ADN 1 #20 ['ALLCHARS' 7BN? ...NORMAL 7C64 ... LDN 2 #10 7CHT ... TRANSFOR 1,2 [TRANSFORM RECORD 7C^L ... CALL 4 RCONV [GET POINTER TO TRANSFORMED RECORD. 7DCC ...NOTBASIC 7DL? ...Z4RMTLF 7DT8 ...REST2 STO 3 ACOMMUNE3(2) [SAVE POINTER TO RECORD. 7F=^ ... CALL 4 SETCL [SET CT. OF LINES TO NEXT CLEAN FINIS 7FNQ ...# 7FXL ... CALL 4 VRSET [FLIP, OR NOT, THEN GET NEXT BUFFER. 7G6G ... CALL 4 TNUPA 7G8R ... SBX 2 AWORK2(1) 7G?4 ... STO 2 AWORK3(1) 7G*B ... LDX 2 FX2 7H25 ... BVCR NEXT2 [J. IF SLEEP DIDN'T CO-ORDINATE. 7HCW ...# 7HTM ... CALL 4 RECLOC [OTHERWISE RELOCATE INPUT RECORD 7J?D ... STO 3 ACOMMUNE3(2) 7JP9 ... MHUNTW 1,A7020,ALIST [RELOCATE THE BUFFER BLOCK. 7K72 ... STO 1 AWORK2(2) 7KJR ...# 7L2J ...# 7LD* ...NEXT2 LDX 1 FX2 7LW6 ... LDX 2 AWORK2(1) 7M?X ... ADX 2 AWORK3(1) 7MPN ... CALL 4 YTSPL 7N7F ... BZE 0 N2FR1 7NK= ... LDXC 0 AWORK1(1) 7P33 ... BCC N2FR1 7PDS ... LDCT 0 #600 7PWK ... ANDX 0 IWORK17(1) 7Q#B ... BNZ 0 N2FR1 7QQ7 ... LDCT 0 #200 7R7Y ... ORS 0 IWORK17(1) 7RKP ... CALL 4 NPAGE 7S3G ...N2FR1 7S=B ... LDX 3 ACOMMUNE3(1) 7SF? ... LDX 4 QUAL(1) 7SX4 ... ANDN 4 4 7TG2 BZE 4 NMONF [J. UNLESS MONFILE LISTING. 7T^L LDX 0 TBITS(1) [CHECK CATEGORY & J. IF 7WF= ANDX 0 FRH+1(3) [THIS RECORD NOT TO BE LISTED. 7WYW BZE 0 XLP2 7XDG # 7XY6 NMONF LDXC 4 AWORK1(1) [J. IF TAPE PUNCH. 7YCQ BCS TP2 7YXB LDCT 4 #100 [J. IF FILE RECORDS NOT SUPPLIED 7^C2 ANDX 4 QUAL(1) [WITH OWN PFCCS. 7^WL BZE 4 XLP1 82B= SMO 3 [OTHERWISE SORT OUT PFCC. 82TW LDCH 4 FRH+1 83*G SBN 4 #40 [J. IF NON PRINTING. 83T6 BNG 4 XPRNT 84#Q ORX 5 GSIGN [SET MARKER. 84SB SBN 4 #40 [BRING INTO LINE WITH NON-PRINTING CC 85#2 XPRNT ADN 4 #20 [J. IF NOT RECOGNISED CHAR. 85RL BPZ 4 XLP1 86?= ADN 4 7 [J. IF NOT VERTICAL TAB. 86QW BNG 4 XFF1 87=G ADN 4 1 [X4 CORRESPONDS TO PRINT LOOP CHANNEL 87Q6 # 889Q YFF LDXC 0 5 [FORCE CLEAN FINISH UNLESS LAST 88PB BNZ 0 YINIT [RECORD ALREADY DID. 8992 LDN 6 0 89NL SEGENTRY K56RMTLF 8=8= YINIT LDN 0 A7021PAGE-1 [RESET NO. OF LINES TO NEXT FORM-FEED 8=MW STO 0 IWORK16(1) 8?7G BCT 4 YPFCL [J. UNLESS CHANNEL 1 (FORM FEED). 8?M6 # 8#6Q CALL 4 NPAGE [SET RESTART NOS. FOR PAGE RESTARTS. 8#LB CALL 4 TRENDRJE [SEND DC3 IF 1901A RJE LP 8*62 LDX 1 GSIGN [SET POINTER FOR MVCH. 8*KL LDN 0 #7634 [FORM FEED. 8B5= LDN 3 2 [CHARACTER COUNT. 8BJW BRN SET 8C4G # 8CJ6 ZFF 8D3Q STO 4 ACOMMUNE2(1) [PRESERVE X4 FOR LATER 8DHB LDN 4 1 [FF PFFCC 8F32 LDCT 0 #100 [J. IF PFCC NOT SUPPLIED. 8FGL ANDX 0 QUAL(1) 8G2= BZE 0 YFF 8GFW SEGENTRY K57RMTLF 8G^G LDN 0 A7021PAGE-1 8HF6 STO 0 IWORK16(1) [RESET NO OF LINES TO NEXT FORM-FEED 8HYQ CALL 4 NPAGE [SET RESTART NOS FOR GAGE RESTARTS 8JDB CALL 4 TRENDRJE [SEND DC3 IF 1901A 8JY2 LDX 4 ACOMMUNE2(1) [RESTORE X4 8KCL BRN YLF2 8KX= # 8LBW YPFCL LDN 1 4 [SET UP CORRECT VERTICAL TAB. 8LWG SMO FX1 8MB6 ADX 4 PF12 8MTQ LDN 3 3 [NO. OF CHARS. TO SEND. 8N*B BCHX 1 SET [POINTER FOR MVCH. 8NT2 # 8P#L XFF1 ADN 4 6 [J. UNLESS UNRECOGNISED PFCC. 8PS= BNG 4 YLF 8Q?W # 8QRG XLP1 NGN 4 2 [DEFAULT VALUE OF 1 NL. 8R?6 ORX 5 GSIGN [SET MARKER TO SHOW PRINTING. 8RQQ YLF ADN 4 1 [0, 1 OR 2 LINE FEEDS AS REQUIRED. 8S=B ADS 4 IWORK15(1) 8SQ2 ADN 4 2 8T9L SBSC 4 IWORK16(1) [J. IF BOTTOM OF PAGE HAS BEEN 8TP= BCS ZFF [REACHED. 8W8W YLF2 8WNG ADX 4 4 [ACCESS CORRECT CONTROL CHARACTERS. 8X86 LDX 1 FX1 8XMQ SMO 4 [SET COUNT OF CHARS. TO MOVE 8Y7B LDX 3 PF0(1) 8YM2 SMO 4 [AND POINTER FOR THE MVCH. 8^6L LDN 1 PF0+1(1) 8^L= # 925W SET MVCH 1 0(3) [MOVE IN PAPER MOVEMENT CONTROL CHARS 92KG SBX 6 3 [STEP DOWN THE TRANSFER COUNTS. 9356 SRA 3 1 93JQ SBX 7 3 944B LDX 1 FX2 [RESET ACTIVITY BLOCK POINTER 94J2 LDX 3 ACOMMUNE3(1) [AND RECORD POINTER. 953L BNG 6 TR1 [J. IF MAXIMUM TRANSFER COUNT REACHED 95H= BPZ 7 XTR1 [J. UNLESS BLOCK FULL. 962W TR1 ANDX 5 GSIGN [ENSURE CLEAN FINISH MARKER SET. 96GG CALL 4 TREND [STEP ON TO NEXT BUFFER. 9726 ADN 5 1 97FQ XTR1 LDXC 5 5 [J. TO GET NEXT RECORD IF 97^B BCC XCONT [NON-PRINTING PFCC. 98F2 # 98YL TP2 LDCT 4 #600 99D= LDEX 5 FRH(3) [GET COUNT OF WORDS IN RECORD 99XW ANDX 4 FRH+1(3) [AND CHARACTER BITS. 9=CG LDXC 0 AWORK1(1) 9=X6 BCS TP3 [J. IF TP. AS NO SPECIAL OR NUMBER. 9?BQ LDX 0 QUAL(1) [GET "NUMBER" AND "SPECIAL" BITS. 9?WB ANDN 0 3 9#B2 ADX 5 0 [ADD 1 WD. FOR SPECIAL & 2 FOR NUMBER 9#TL ANDN 0 1 [STEP ON INPUT POINTER (1 WD. ONLY 9**= SBX 3 0 [IF SPECIAL LISTING). 9*SW ADN 3 2 9B#G # 9BS6 TP3 LDX 0 QUAL(1) [J. IF LAST TWO WORDS SPACEFILLED. 9C?Q SBN 5 2 [ALLOW FOR 2 WORDS OF RED TAPE. 9CRB ADS 5 ALFWORDS(1) [UPDATE NUMBER OF WORDS TRANSFNRRED 9D?2 ANDN 0 #1000 9DQL BNZ 0 NOCH 9F== BZE 4 NOCH [OR IF NO SPARE CHARACTERS. 9FPW SBN 5 1 [MAKE ALLOWANCE FOR THE ODD CHARACTER 9G9G ADX 5 4 9GP6 NOCH SLC 5 2 [TURN INTO A CHARACTER COUNT. 9H8Q LDXC 0 AWORK1(1) [J. IF TP. 9HNB BCS TP4 9J82 BXL 5 IWORK12(1),TNUMB [J. UNLESS RECORD TOO LONG FOR 1 LINE 9JML STO 5 IWORK17(1) [REMEMBER RECORD COUNT. 9K7= LDX 5 IWORK12(1) [SET COUNT FOR THIS LINE 9KLW SBN 5 5 [(= ACTUAL LINE WIDTH - 4 FOR HYPHEN) 9L6G SBS 5 IWORK17(1) [TAKE OFF CHARS. TO BE SENT THIS TIME 9LL6 # 9M5Q TNUMB LDX 0 QUAL(1) [J. UNLESS NUMBERING REQUIRED. 9MKB ANDN 0 2 9N52 BZE 0 YLP1 9NJL SBN 5 8 [7 FIGURES + 1 SPACE. 9P4= LDXC 0 NUM(1) [J. IF LINE NO. IS -VE. (I.E. TOO BIG 9PHW BCS XNUMB 9Q3G SBNC 6 7 [WILL WE GET THE NUMBER IN THIS BUFFE 9QH6 BCS TR2 9R2Q SBNC 7 7 9RGB BCC XTR2 [J. IF O. K. 9S22 TR2 CALL 4 TREND 9SFL SBN 6 7 [ALLOW FOR NUMBER AGAIN. 9S^= SBN 7 7 9TDW XTR2 LDX 0 NUM(1) [MULTIPLY LINE NUMBER BY MAGIC NUMBER 9TYG SBN 0 1 [(LINE NUMBER = RECORD NUMBER - 1). 9WD6 SMO FX1 9WXQ MPY 0 NMULT 9XCB LDN 4 6 [INSERT AT MOST SIX SPACES. 9XX2 MODE 1 [MODE TO INSERT SPACE INSTEAD OF ZERO 9YBL NCONV CBD 0 0(2) [CONVERT FIRST 6 DIGITS. 9YW= BCHX 2 £ 9^*W BCT 4 NCONV 9^TG MODE 0 [INSERT LAST NUMBER REGARDLESS. =2*6 CBD 0 0(2) =2SQ LDX 1 FX2 =3#B LDN 0 1 =3S2 BCHX 2 YLP1 =4?L # =4R= TP4 BZE 0 UAP [J. UNLESS NON-PERIPHERAL TYPE FILE, =5=W STOZ IWORK16(1) [OTHERWISE OUTPUT IN GRAPHIC =5QG BUX 3 NEXT3 [FROM WORD 1 OF RECORD. =6=6 UAP LDX 0 5 =6PQ ... LDEX 4 IWORK17(1) =79B SBN 0 2000 =88L BNZ 0 UBP =8N= ORX 4 GSIGN =97W UBP STO 4 IWORK17(1) =9MG # ==76 PRIPH ORX 3 GSIGN [GET THE MODE CHARACTER. ==LQ LDCH 4 FRH+1(3) =?6B LDX 0 4 =?L2 ADNC 3 2 [STEP TO WORD 2 OF THE RECORD. =#5L ANDN 0 #40 =#K= BNZ 0 YMK6 [J. IF MODE > #40 : MARK 6+ FILE. =*4W # =*JG LDX 0 4 [B21 SET : MAINTAIN PREVIOUS SHIFT. =B46 ANDN 0 4 =BHQ BNZ 0 PREV =C3B LDX 0 4 [B10 SET : GRAPHIC FILE. =CH2 ANDN 0 #10 =D2L BNZ 0 SETGR =DG= # =D^W ... LDEX 0 IWORK17(1) [J. UNLESS TAPE PUNCH TYPE FILE. =FFG BZE 0 SETA1 =F^6 ANDN 4 #20 [J. UNLESS PUNCH RUNOUT MODE. =GDQ BZE 4 SETA2 =GYB # =HD2 BZE 5 XLP2 [J. IF ZERO CHARACTER COUNT. =HXL STOZ ACOMMUNE3(1) [SET MARKER SO WE DON'T BOTHER TO STE =JC= # =JWW RNOUT LDN 0 #7620 [INSERT 1 NULL CHARACTER. =KBG LDX 1 GSIGN =KW6 MVCH 1 2 =L*Q SBNC 6 2 [J. IF END OF BUFFER. =LTB BCS TR2A =M*2 SBNC 7 1 [J. UNLESS END OF BUFFER. =MSL BCC XTR2A =N#= TR2A LDX 1 FX2 [STEP ON TO THE NEXT BUFFER. =NRW CALL 4 TREND =P?G XTR2A BCT 5 RNOUT [J. FOR NEXT CHARACTER. =PR6 LDX 1 FX2 =Q=Q BRN XLP2 [END OF RECORD. =QQB # =R=2 SETA1 BNZ 4 SETA2 [NON-ZERO : START IN ALPHA. =RPL # =S9= SETGR LDX 0 IWORK16(1) [SET MODE INDICATOR = GRAPHIC. =SNW BZE 0 NEXT3 [J. IF ALREADY SET. =T8G STOZ IWORK16(1) =TN6 SBNC 0 #75 [J. UNLESS PREVIOUSLY IN BETA. =W7Q BCS NEXT3 =WMB LDN 4 #74 [J. TO SET ALPHA SHIFT IN BUFFER. =X72 BRN SETA3 =XLL # =Y6= SETA2 LDN 4 #74 [J. IF ALREADY IN ALPHA. =YKW LDX 0 IWORK16(1) =^5G BXE 4 0,NEXT3 =^K6 STO 4 IWORK16(1) [SET MODE INDICATOR TO ALPHA. ?24Q BZE 0 NEXT3 [J. IF PREVIOUSLY PUNCHING GRAPHICAL ?2JB SETA3 CALL 0 SBACK [SET THE CURRENT SHIFT TO ALPHA. ?342 ADN 6 1 ?3HL SBNC 0 #75 ?43= BCC NEXT3 ?4GW BCHX 2 £ ?52G SBN 6 2 ?5G6 DCH 4 0(2) ?5^Q BCHX 2 NEXT3 ?6FB # ?6^2 PREV LDX 0 IWORK16(1) [PRESERVE CURRENT SHIFT. ?7DL BNZ 0 NEXT3 [J. UNLESS PREVIOUSLY GRAPHIC. ?7Y= LDN 4 #74 [SET MODE INDICATOR TO SAY ALPHA. ?8CW STO 4 IWORK16(1) ?8XG BRN NEXT3 ?9C6 # ?9WQ YMK6 BXE 4 IWORK16(1),NEXT3 [J. IF MODE ALREADY SET (USUAL CASE). ?=BB STO 4 IWORK16(1) [SET THE MODE INDICATOR. ?=W2 SBNC 4 #75 [J. UNLESS INITIAL SHIFT IS BETA. ??*L # ??T= BCS NEXT3 ?##W LDN 0 #75 [IF SO INSERT BETA, AS CODE CONVERTER ?#SG SBN 6 1 [ASSUMES ALPHA. ?*#6 DCH 0 0(2) ?*RQ BCHX 2 NEXT3 [STEP OUTPUT POINTER. ?B?B # ?BR2 # ?C=L NEXT3 BZE 5 TP6 [J. IF END OF RECORD. ?CQ= # ?D9W TP5 LDCH 4 0(3) [GET NEXT CHARACTER. ?DPG LDX 0 IWORK16(1) [GET SHIFT - GRAPHIC CONVERSION IF ZE ?F96 BZE 0 YGRAP ?FNQ SMO FX1 [J. TO INSERT CHARACTER IF NOT SHIFT. ?G8B TXL 4 SALPH ?GN2 BCS YDEP ?H7L # ?HM= SMO FX1 [J. TO RESET CURRENT SHIFT IF NOT DEL ?J6W TXL 4 SDELT ?JLG BCS SHIFT ?K66 # ?KKQ SBN 5 1 [IGNORE THIS CHAR. IF LAST IN RECORD. ?L5B BZE 5 TP6 ?LK2 BCHX 3 £ [OTHERWISE GET 2ND. CHAR. OF DELTA PA ?M4L LDCH 0 0(3) ?MJ= SBNC 0 #14 [ESCAPE CHAR. IF IN THE RANGE 0-#13. ?N3W BCS YESC ?NHG SBNC 0 5 [NORMAL IF IN THE RANGE #14-#20. ?P36 BCS YNORM ?PGQ SBNC 0 6 [ESCAPE CHAR. IF IN THE RANGE #21-#27 ?Q2B BCS YESC ?QG2 # ?Q^L YNORM DCH 4 0(2) [OTHERWISE NORMAL :- INSERT DELTA. ?RF= SBN 6 1 [STEP DOWN TRANSFER COUNT. ?RYW LDCH 4 0(3) [GET 2ND. CHAR. OF PAIR AGAIN. ?SDG BCHX 2 YDEP [J. TO INSERT IT, STEP OUTPUT POINTER ?SY6 # ?TCQ YESC LDCH 4 0(3) [GET 2ND. CHAR. OF PAIR AGAIN. ?TXB LDX 0 IWORK16(1) [CURRENT SHIFT ?WC2 ERN 4 #60 [CONVERSION FOR ESCAPE CHARACTER. ?WWL SBN 0 #74 ?XB= SLL 4 6 ?XTW LDN 1 4 [POINTER FOR MVCH. ?Y*G SMO FX1 [ADD IN #7613 FOR ESCAPE. ?YT6 ADX 4 SCAPE ?^#Q BZE 0 YALPH [J. IF ALREADY ALPHA SHIFT. ?^SB CALL 0 SBACK [ESCAPE SEQUENCE MUST BE IN ALPHA #2#2 [SHIFT, SO INSERT #747613XX75, UNLESS #2RL [LAST CHAR. WAS #75, IN WHICH CASE #3?= [OVERWRITE IT WITH #7613XX75 TO #3QW SBN 0 #75 [PRESERVE SHIFT. #4=G BZE 0 YBETA [J. IF LAST CHAR. WAS BETA. #4Q6 # #59Q BCHX 2 £ [RESET OUTPUT POINTER. #5PB LDN 0 #74 [INSERT ALPHA. #692 SBN 6 2 [STEP TRANSFER COUNT #6NL DCH 0 0(2) #78= BCHX 2 £ [STEP OUTPUT POINTER. #7MW BPZ 6 YBETA [BR IF NOT COUNTED OUT #87G LDX 1 FX2 #8M6 CALL 4 TREND [END OF BUFFER -> NEXT BLOCK #96Q BRN YESC [BR TO REANALYBE ESCAPE SEQUENCE #9LB YBETA #=62 SBN 6 3 [STEP TRANSFER COUNT #=KL MVCH 1 4 [MOVE IN ESCAPE SEQUENCE. #?5= BCHX 3 XTRA1 [STEP INPUT POINTER. #?JW # ##4G SHIFT BXE 4 IWORK16(1),YMISS [IGNORE THIS CHAR. IF SAME AS CURRENT ##J6 LDN 0 78 [SHIFT #*3Q STO 4 IWORK16(1) [RESET CURRENT SHIFT. #*HB BXE 7 0,Y1ST [J. IF AT BEGINNING OF BLOCK. #B32 CALL 0 SBACK [GET THE LAST CHARACTER DEPOSITED. #BGL SBN 0 #74 [J. IF IT WAS A SHIFT CHAR. #C2= BPZ 0 RDEP #CFW BCHX 2 TDEP [ELSE RESET OUTPUT POINTER & J. #C^G # #DF6 Y1ST SBN 4 #75 [J. TO INSERT SHIFT CHAR. IF BETA. #DYQ BZE 4 SDEP #FDB LDCT 0 #200 [OTHERWISE JUST STEP OUTPUT POINTER #FY2 ERX 2 0 [BACK TO THE BEGINNING OF THE BUFFER. #GCL # #GX= RDEP ADN 6 1 [ADD 1 BACK INTO THE TRANSFER COUNT. #HBW YMISS BCHX 3 NEXT4 [STEP INPUT POINTER & J. FOR NEXT CH. #HWG # #JB6 SDEP LDN 4 #75 [SET BETA SHIFT. #JTQ TDEP SBN 6 1 [STEP DOWN TRANSFER COUNT. #K*B DCH 4 0(2) [INSERT SHIFT CHAR. #KT2 BCHX 3 ZDEP [STEP INPUT POINTER & J. #L#L # #LS= # #M?W XNUMB LDN 0 8 [EIGHT SPACES. #MRG # #N?6 YLP1 BZE 5 YLINE [J. IF NO DATA IN RECORD. #NQQ YLP2 LDCH 4 0(3) [GET NEXT CHARACTER. #P=B SMO FX1 [J. UNLESS SPACE. #PQ2 TXU 4 SPACE #Q9L BCS XSP1 #QP= SBN 0 24 [HAVE WE HAD 25 CONSECUTIVE SPACES YE #R8W BZE 0 TAB [J. TO INSERT TAB IF 25TH. SPACE. #RNG ADN 0 25 [OTHERWISE JUST ADD 1 TO SPACE COUNT. #S86 BCHX 3 YLP3 [STEP INPUT POINTER & J. FOR NEXT CH. #SMQ # #T7B XSP1 BZE 0 XSP2 [J. IF THE SPACE COUNT IS ZERO. #TM2 CALL 4 PUTS1 [INSERT HORIZONTAL TAB OR SPACES. #W6L LDN 0 0 [RESET SPACE COUNT TO ZERO. #WL= LDCH 4 0(3) [GET THE INPUT CHARACTER AGAIN. #X5W # #XKG XSP2 #Y56 YGRAP SMO FX1 [J. UNLESS HAVE TO INSERT DELTA. #YJQ TXL 4 SALPH #^4B BCS YDEP #^J2 LDN 1 #76 [INSERT DELTA CHAR. INTO BUFFER. *23L SBN 4 #10 [PERFORM DELTA CONVERSION ON INPUT CH *2H= DCH 1 0(2) *32W SBN 6 2 [STEP DOWN TRANSFER COUNT. *3GG BCHX 2 £ [STEP OUTPUT POINTER & INSERT CHAR. *426 DCH 4 0(2) *4FQ BCHX 3 £ [STEP INPUT POINTER. *4^B BCHX 2 XTRA1 [STEP OUTPUT POINTER & J. *5F2 # *5YL YDEP DCH 4 0(2) [INSERT CHAR. *6D= BCHX 3 £ [STEP INPUT POINTER. *6XW SBN 6 1 [STEP DOWN TRANSFER COUNT *7CG SBN 7 1 [AND BLOCK COUNT. *7X6 ZDEP BCHX 2 XTRA2 [STEP OUTPUT POINTER & J. *8BQ # *8WB TAB SMO FX1 [SET POINTER FOR MVCH TO INSERT *9B2 LDN 1 SHTAB [HORIZONTAL TAB FOR 25 SPACES. *9TL # *=*= YALPH BCHX 3 £ [STEP INPUT POINTER. *=SW MVCH 1 3 [MOVE IN REQUIRED SEQUENCE. *?#G SBN 6 3 [STEP DOWN TRANSFER *?S6 # *#?Q XTRA1 SBN 7 2 [AND BLOCK COUNTS. *#RB LDX 1 FX2 [RESET POINTER TO ACTIVITY BLOCK. **?2 XTRA2 BNG 6 TR3 **QL BPZ 7 XTR3 [J. UNLESS NEW BUFFER NEEDED. *B== # *BPW TR3 CALL 4 TREND [STEP TO NEXT BUFFER. *C9G XTR3 LDXC 0 AWORK1(1) [J. FOR NEXT CH. IF NOT LP. *CP6 BCS NEXT4 *D8Q # *DNB YLP3 BCT 5 YLP2 [J. UNLESS END OF RECORD REACHED. *F82 # *FML # *G7= YLINE LDX 4 IWORK17(1) [J. IF NO CONTINUATION TO DEAL WITH. *GLW BZE 4 ZCONT *H6G # *HL6 LDN 5 2 [SET MARKER NON-ZERO AS LINE NOT YET *J5Q ADN 0 3 [INSERT THREE EXTRA SPACES. [FINISHED *JKB CALL 4 PUTS1 [PUT IN HORIZONTAL TAB. *K52 LDN 0 1 [STEP DOWN COUNT OF LINES TO NEXT *KJL SBSC 0 IWORK15(1) [CLEAN FINISH. *L4= BCC XCF1 [J. IF STILL +VE. *LHW LDN 5 0 [INDICATE CLEAN FINISH REQUIRED. *M3G # *MH6 XCF1 LDN 4 #3200 [#7632 = NEWLINE. *N2Q SBSC 0 IWORK16(1) [STEP DOWN COUNT OF LINES TO NEXT FF. *NGB BCC XFF2 [J. IF STILL +VE. *P22 LDX 5 3 *PFL SBX 5 ACOMMUNE3(1) [RELATIVISE INPUT PTR *P^= CALL 4 NPAGE [SET RESTART NOS. FOR PAGE RESTARTS. *QDW CALL 4 TRENDRJE [SEND DC3 IF 1901A RJE LP *QYG LDX 3 5 *RD6 ADX 3 ACOMMUNE3(1) [INPUT PTR *RXQ SEGENTRY K58RMTLF *SCB LDN 0 A7021PAGE-1 [RESET CT. OF LINES TO NEXT FORM-FEED *SX2 LDN 4 #3400 [#7634 = THROW TO TOP OF PAGE. *TBL STO 0 IWORK16(1) *TW= LDN 5 0 [INDICATE CLEAN FINISH REQUIRED. *W*W # *WTG XFF2 SMO FX1 [INSERT HYPHEN, TO INDICATE NEXT LINE *X*6 ADX 4 SHYPH [IS CONTINUATION, AND REQUISITE *XSQ LDN 1 4 [VERTICAL TABULATION. *Y#B MVCH 1 3 *YS2 SBN 6 3 [STEP DOWN TRANSFER COUNT. *^?L LDX 1 FX2 *^R= BNG 6 TR5 [J. IF TRANSFER FILLED. B2=W SBNC 7 2 [J. IF BLOCK FILLED UP. B2QG BCS TR5 B3=6 BNZ 5 XTR5 [J. UNLESS CLEAN FINISH REQUIRED. B3PQ # B49B TR5 CALL 4 TREND [GET NEXT BUFFER. B4P2 XTR5 LDX 0 QUAL(1) [ARE WE NUMBERING? B58L LDX 5 IWORK12(1) [LINE PRINTER WIDTH + 1. B5N= ANDN 0 2 B67W SLL 0 2 B6MG ADN 0 5 [INSET NEXT LINE 4 CHARS., OR 12 B776 SBX 5 0 [CHARS. IF WE ARE NUMBERING. B7LQ BXL 5 IWORK17(1),YCONT [J. IF WE CAN'T GET THE REST ON 1 LIN B86B LDX 5 IWORK17(1) [GET THE CONTINUATION REMAINDER COUNT B8L2 STOZ IWORK17(1) [CLEAR THE CONTINUATION MARKER. B95L BCT 0 YLP2 [X0 := 4(OR 12) : CT. OF SPACES INSET B9K= # B=4W YCONT SBN 5 4 [ALLOW ANOTHER FOUR CHARACTERS FOR B=JG SBS 5 IWORK17(1) [CONTINUATION HYPHEN. SET NEW CONTINU B?46 BCT 0 YLP2 [X0 := CT. OF SPACES FOR INSET.[COUNT B?HQ # B#3B # B#H2 NEXT4 BCT 5 TP5 [J. UNLESS END OF RECORD REACHED. B*2L # B*G= # B*SM ...TP6 LDXC 0 IWORK17(1) BB74 ... ADXC 0 IWORK17(1) BBFG BNZ 0 XLP2 BB^6 SMO FX1 [OTHERWISE INSERT NEWLINE AND RUNOUT BCDQ LDN 1 PF1+1 [BETWEEN RECORDS. BCYB MVCH 1 4 BDD2 SBNC 6 4 [STEP DOWN TRANSFER COUNT BDXL BCS TR4 BFC= SBNC 7 2 [AND BLOCK COUNT. BFWW BCC XTR4 BGBG TR4 LDX 1 FX2 [STEP ON TO NEXT BUFFER IF NECCESSARY BGW6 CALL 4 TREND BH*Q # BHTB XTR4 SMO FX1 [INSERT TWO MORE RUNOUTS. BJ*2 LDN 1 SNULL BJSL MVCH 1 4 BK#= SBN 6 4 BKRW LDX 1 FX2 BKW5 ... CALL 4 YTSPL BKY# ... BZE 0 NSPL1 BL2H ... LDX 0 BITS22LS BL4Q ... ANDS 0 IWORK17(1) BL6^ ... BRN TR4A BL98 ...NSPL1 BL?G BNG 6 TR4A BLR6 SBNC 7 2 [J. UNLESS REACHED END OF BUFFER. BM=Q BCC XLP2 BMQB TR4A STOZ IWORK15(1) [FORCE CLEAN FINISH IF HAVE TO BN=2 BRN XLP2 [STEP ON TO NEXT BUFFER. BNPL # BP9= # BPNW # BQ8G ZCONT BZE 0 XCONT [J. IF SPACE COUNT ZERO BQN6 LDX 4 7 BQS3 ...#SKI ALTEBCC BQXY ... SBNC 4 72 BR3T ...#SKI ALTEBCC<1$1 BR7Q SBNC 4 78 BRMB BCS XCONT [J. IF NOT JUST STARTING NEW BLOCK BS72 LDX 3 AWORK2(1) [PTR TO ALIST BSLL STO 6 GEN0 [SAVE 6BIT CHAR COUNT BT6= ... CALL 6 SPL19 BTKW BRN VV [J IF NOT 1901A RJE LP BW5G BRN XCONTV [1901A RJE LP BWK6 VV STO 2 GEN2 [SAVE OUTPUT POINTER. BX4Q LDX 2 1 BXJB CALL 4 SETCL [RESET THE CLEAN FINISH COUNT. BY42 LDX 4 INTLK3(3) [CURRENT BUFFER NO. BYHL LDX 2 GEN2 [& OUTPUT POINTER. B^3= SBNC 4 1 B^GW BCC NEXZ2 C22G LDN 4 ALFBUFFNUM-1 C2G6 NEXZ2 LDX 0 GSIGN [SET THE 'CLEAN FINISHED' MARKER C2^Q SMO 4 [IN THE LAST BUFFER C3FB ORS 0 INTLK2(3) C3^2 XCONTV [DC3 EVERY PAGE ONLY C4DL LDX 6 GEN0 C4Y= XCONT LDX 4 IWORK16(1) [IF NEXT LINE WILL BE ON NEW PAGE C5CW BNZ 4 XLP2 [FORCE CLEAN FINISH BY SETTING CLEAN C5XG STOZ IWORK15(1) [FINISH COUNT DOWN TO ZERO. C6C6 # C6WQ # C7BB XLP2 LDN 0 1 C7W2 LDXC 4 NLI(1) [J. IF "ALL" LISTING. C8*L BCS YALL C8T= SBN 4 1 [STEP DOWN THE NUMBER OF RECORDS LEFT C9#W STO 4 NLI(1) C9SG YALL LDX 3 AWORK2(1) [POINTER TO ALIST BLOCK. C=#6 STO 2 AWORK3(1) C=RQ ADS 0 NUM(1) [ADD 1 TO THE CURRENT RECORD NUMBER. C??B SBS 3 AWORK3(1) [RELATIVE POINTER TO POSITION IN BUFF C?R2 BZE 4 YCF4 [J IF END OF LISTING. C#=L SBSC 0 IWORK15(1) [J. IF TIME FOR CLEAN FINISH. C#Q= BCS YCF3 C*9W # C*PG LDXC 0 IWORK5(1) CB96 BCC QSTEPC CBNQ BRN YCF3 CC8B QSTEPC CCN2 # CD7L QSTEPC ,YCOOR [STEP, OR J. IF STEP IS GOING TO COOR CDM= STO 3 ACOMMUNE3(2) [SAVE RECORD POINTER, OR ZERO. CF6W BNZ 3 NEXT2 [J. IF NOT END OF FILE. CFLG # CG66 LDX 3 AWORK2(2) [RESET THE BLOCK AND BUFFER WORDS. CGKQ ...RSTVN LDX 2 AWORK3(2) CH5B LDN 4 0 [MARKER TO SHOW END OF LISTING. CHK2 ADX 2 3 CJ4L BRN YCF4 CJJ= # CK3W # DHS= YCOOR LDX 3 AWORK2(2) [RESET POINTERS TO ALIST BLOCK AND DJ?W LDX 2 AWORK3(2) [POSITION WITHIN BUFFER. DJRG ADX 2 3 DK82 ...#SKI ALTEBCC<1$1 DKJG ...YCF3 SBN 7 78 [J UNLESS NO DATA YET IN BUFFER DK^2 ...#SKI ALTEBCC DL*G ...YCF3 SBN 7 72 [J UNLESS NO DATA YET IN BUFFER DLQ2 LDX 6 INTLK3(3) [ GET POINTER TO BUFFER'S RED TAPE WO DM9L BNZ 7 SUMMT [= 0 IF START OF BUFFER (ALSO MONFILE DMP= SBNC 6 1 [WHERE ALL RECORDS ARE WRONG CATEGORY DN8W BCC NEXZ1 [OR PERHAPS FOR TAPE PUNCH FILE. DNNG LDN 6 ALFBUFFNUM-1 [STEP BACK BUFFER POINTER TO REWRITE DP86 NEXZ1 STO 6 INTLK3(3) [THIS BUFFER. DPMQ BRN NOWT DQ7B SUMMT LDX 1 GSIGN DQM2 SMO 6 [MARK BUFFER AS FILLED DR6L ORS 1 INTLK(3) DRL= SMO 6 [AND "CLEAN". DS5W ORS 1 INTLK2(3) DSKG CALL 0 SBACK [MOVE IN ETB TO END BLOCK. DT56 SBN 0 #74 [(OVERWRITE LAST CHAR. DEPOSITED DTJQ BPZ 0 TRED2 [ IF IT WAS A SHIFT). DW4B BCHX 2 £ DWJ2 TRED2 ADN 1 ETXBUFF(3) [MOVE IN #7635 (#7620 IF TP) DX3L ... CALL 6 SPL19 DXH= BRN XCTP [J IF NOT 1901A RJE LP DY4? ... BPZ 0 NMSPL DY5N ... SMO FX2 DY75 ... LDXC 0 AWORK1 DY8G ... BCC XCLPT DY9X ... LDCT 0 #600 DY?# ... SMO FX2 DY#P ... ANDX 0 IWORK17 DYB6 ... BNZ 0 XCTPQ DYCH ... BRN XCLPT DYDY ...NMSPL DYGG SMO FX2 D^26 LDX 0 IWORK16 D^FQ BNZ 0 XCTPQ [J IF NOT END OF PAGE D^^B XCLPT LDN 0 3 [WILL BECOME DC3 F26J ...#SKI ALTEBCC<1$1 F2?Q ...( F2F2 MVCH 1 6 F2YL SLC 2 2 F3D= SBN 2 3 F3XW SRC 2 2 F4CG DCH 0 0(2) F4DF ...) F4FD ...#SKI ALTEBCC F4GC ...( F4HB ... MVCH 1 4 [CR DC3 INTO BUFFER F4J* ... SLC 2 2 F4K# ... SBN 2 1 F4L? ... SRC 2 2 F4M= ... DCH 0 0(2) F4MP ... BCHX 2 £ F4N9 ... SMO FX2 F4P8 ... STO 1 ACOMMUNE1 [SAVE ETXBUFF POINTER F4Q7 ... CALL 4 SBC [WORK OUT BCC AND STORE IN BUFFER F4R6 ... SMO FX2 F4S5 ... LDX 1 ACOMMUNE1 [RESTORE POINTER F4T4 ... MVCH 1 2 [ETX IN BUFFER F4W3 ...) F4X6 BRN NOWT F5BQ XCTPQ LDX 0 GSIGN [UNSSET CLEAN FINISH MARKER F5WB SMO INTLK3(3) F6B2 ERS 0 INTLK2(3) F6TL XCTP MVCH 1 2 F7*= ORX 1 GSIGN [MOVE IN #7623 ETX (PLAIN ETB SEEMS F7B^ ...#SKI ALTEBCC F7DN ...( F7GC ... SMO FX2 F7J6 ... STO 1 ACOMMUNE1 F7KT ... CALL 4 SBC [GET BCC AND PUT IN BUFFER F7MJ ... SMO FX2 F7P? ... LDX 1 ACOMMUNE1 F7R2 ...) F7SW MVCH 1 2 [TO UPSET THE LINE PRINTER SOMETIMES) F8#G NOWT CALL 6 WAKUP [KICK THE PCT ACTIVITY IF DORMANT. F8S6 LDN 6 0 [SET MARKER SO WE DON'T REFLIP F9?Q ... LDN 4 1 F9RB ... BRN NEXT1 F=?2 ...# F=QL ...YEND ACROSS RMTLFEND,1 [TO CLEAR UP END OF FILE WITH ERROR F?== ...# F?PW ...YCF4 ACROSS RMTLFEND,2 [END OF LISTING FSSQ # FT#B #END ^^^^ ...23760367000400000000