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