15 22FL ...#SEG LOADEREM86 [M. DRUKKER 18 22J9 ...# ######################################################## 4 22LS ...# 16 22PC ...# (C) COPYRIGHT INTERNATIONAL COMPUTERS LTD 1982 4 22S2 ...# 18 22WK ...# ######################################################### 12 22_= #LIS K0LOADERMT>K0LOADER>K0ALLGEO 4 23DW # 5 23L4 ...#SKI G3 4 23R= ...( 4 23YG # 16 24D6 ...# THIS SEGMENT CONTAINS THE SECOND ENTRY POINT: 19 24XQ ...# K1LOADEREM : WE GET HERE WHEN THE GEORGE FILE HAS BEEN 20 25CB ...# LOCATED AFTER A DA/ED/FD COMMAND UNDER EMULN. 18 25X2 # GEORGE IS TRANSFERRED FROM TAPE TO ITS 12 26BL # FUTURE HOME 4 26W= # 10 29#B # *** DATA AREAS *** 4 29S2 # 4 2=?L # 9 2=R= #DEF MTFAILMK=JLFAIL 8 2?=W #DEF THEFILE=JLFILE 9 2?QG #DEF TRAPFAIL=JLTRAP 9 2#=6 #DEF STARTCOMM=JLCOMM 8 2##* ...#DEF SMALL=JLGSMALL 9 2#BJ ...#DEF SFMESS=JLGSFMESS 9 2#DR ...#DEF MFEMESS=JLGMFEMESS 9 2#H2 ...#DEF MTFAIL=JLGMTFAIL 8 2#K9 ...#DEF VLOST=JLGVLOST 8 2#MD ...#DEF READY=JLGREADY 4 2#PQ # 8 2*9B ...Z511 +511 8 2*P2 ...Z512 +512 17 2MFG MTYPE5 #73050005 [WD 0 OF TYPE 5 BLK 17 2M_6 MENT #73030002 [WD 0 OF ENTRY BLK 20 2NDQ ...MRFIRS +DFSTABLE+FIRS [OLD D-ADDRS AS READING-IN BLKS 5 2NYB ...MHEADB 5 2PD2 ...#GAP 10 20 2PXL ...ZBMARK +0 [NEXT OFF TAPE(0) / ZERO-BLK(<0) 18 2XR6 SEPAR +0 [I/P ZERO-BLK SEPARATION 19 2Y=Q MASKA #37777777 [USEFUL MASK & LARGE NUMBER 18 2Y#_ ...MASK5 #37777 [FOR D : SHELLSORT ETC 16 2YC8 ...MASK5X #77740000 [FOR L/K:UPDATING 20 2YFC ...MASK1K #77777000 [FOR ROUNDING D/1 UP&DOWN 512 20 2YHL ...MASK2K #77776000 [FOR ROUNDING D/1 UP&DOWN 1K 21 2YKT ...MASK2D #77777770 [FOR ROUNDING D/128 UP&DOWN 1K/128 8 2YN4 ...N1 +1 8 2YQ? ...N3 +3 8 2YSG ...N5 +5 8 2YWP ...N9 +9 16 2YYY ...X1 +0 [FOR ACCUMULATOR 15 2_37 ...XK18 +K18 [FOR LOADERI 10 2_5B ...XMETAFORM +K1METAFORM 4 2_7K ...# 5 2_9S ...JLSWBUF 20 2_#3 ...SWBUF +0 [SINGLE(0) / DOUBLE(<0) BUFFERING 21 2_B= ...QTSWTCH +3 [BEF(3)/DURG(21)/AFT(0) CHAP TABLE 6 2_DF ...JLTDOUBUF 20 2_GN ...TDOUBUF +0 [DECIDES O/P BUFFER (+0 / +512) 19 2_JX ...OLDDCHP +0 [NEXT CHAPTER'S OLD D-ADDRESS 18 2_M6 ...NEWDCHP +0 [ ^ ^ NEW ^ 20 2_P* ...OLDDPTR +0 [POINTER TO CURRENT OLD D-ADDRESS 19 2_RJ ...NEWDPTR +0 [ ^ ^ ^ NEW ^ 18 2_TR ...OLDDIFF +0 [OLD POINTER DIFFERENCE 17 2_Y2 ...NEWDIFF +0 [NEW ^ ^ 20 3229 ...NEXTGAP +0 [POINTER TO NEXT RESERVED AREA 17 324D ...NOLBUF +0 [NO. WORDS IN JLLBUFF 17 326M ...NOMBUF +0 [NO. WORDS IN JLMBUFF 15 328W ...NOMFUB +512 [512 - NOMBUF 17 32?5 ...MINN +0 [WORDS TO TRANSFER 18 32*# ...QNO +0 [K-ADDRESS OF CHAPTERS 17 32CH ...QTNTRY +0 [CHAPTER TABLE ENTRY 21 32FQ ...QHTADD +DCHTABLE [ ^ ^ ADDRESS (-1 AT END) 16 32H_ ...TABNTRY0 +0 [PREVIOUS LENGTH 18 32L8 ...TABNTRY1 +0 [PREVIOUS CHAPTAB1 ENTRY 18 32NC ...TABNTRY2 +0 [ ^ CHAPTAB2 ^ 18 32ST ...ZLKTAB +0 [CHAPTER TABLE IN XBUFF1 17 32X4 ...MHBKSZ +0 [SIZE OF DATA BLOCK 17 32_? ...QNTBIG -1 [NUMBER OF LARGE GAPS 17 333G ...POSCHSM -1 [CHECKSUM'S POSITION 16 335P ...VALCHSM +0 [ ^ VALUE 4 35M8 ...# 5 35MF ...JLXCHPCT 19 35MQ ...XCHAPCOUNT +KLTAB-1 [NO. CHAPS SET UP (WAS -0) 16 35N# ...MESH +0 [M FOR SHELLSORT 16 35NW ...ZK +0 [K FOR SHELLSORT 4 35PD ...# 4 35Q2 ...# 12 35QJ ...# SUBROUTINE SHELLSORT 4 35R6 ...# 13 35RN ...# REF. ACM COMMUNICATIONS 12 35S= ...# VOL. 2 NO. 7 4 35SS ...# 15 35TB ...# ON ENTRY ONLY ACC 2 NEED BE DEFINED 15 35TY ...# ON EXIT ONLY ACC 2 IS STILL DEFINED 4 35WG ...# 12 35X4 ...# ACC 5 IS USED FOR I 12 35XL ...# ACC 6 IS USED FOR J 12 35Y8 ...# ACC 7 IS THE LINK ACC 4 35YQ ...# 4 35_# ...# 4 35_W ...# 4 362D ...# 6 3632 ...SHELLSORT 14 363J ... LDX 4 XCHAPCOUNT(2) [ GET N 6 3646 ...MESHHALVE 16 364N ... SRL 4 1 [ GET M = [N/2] 14 365= ... BZE 4 (7) [ M=0? 9 365S ... STO 4 MESH(2) 10 366B ... LDX 0 XCHAPCOUNT(2) 7 366Y ... SBX 0 4 14 367G ... STO 0 ZK(2) [ K=N-M 13 3684 ... LDN 6 0 [ J=0 13 368L ...SETI LDX 5 6 [ I=J 10 3698 ...TEST LDX 3 ACHAPTAB1(2) 7 369Q ... ADX 3 5 15 36=# ... LDX 0 0(3) [ ITH ENTRY 9 36=W ... ANDX 0 MASK5(2) 9 36?D ... LDX 1 MESH(2) 7 36#2 ... ADX 1 3 16 36#J ... LDX 4 0(1) [ (I+M)TH ENTRY 9 36*6 ... ANDX 4 MASK5(2) 19 36*N ... TXL 4 0 [ J IF D(I) < OR = D(I+M) 8 36B= ... BCC STEPJ 5 36BS ...XCIANGE 19 36CB ... LDX 0 0(3) [ SWAP (I) AND (I+M) ENTRIES 8 36CY ... LDX 4 0(1) 8 36DG ... STO 4 0(3) 8 36F4 ... STO 0 0(1) 14 36FL ... SBX 5 MESH(2) [ I=I-M 19 36G8 ... BPZ 5 TEST [ CONTINUE ORDERING SUBSET? 14 36GQ ...STEPJ ADN 6 1 [ J=J+1 19 36H# ... LDX 4 MESH(2) [ RESET X4 IN CASE OF JUMP 14 36HW ... TXU 6 ZK(2) [ J=K ? 9 36JD ... BCC MESHHALVE 8 36K2 ... BRN SETI 4 36KW # 4 375G # 4 37K6 # 6 384Q ...K1LOADEREM 4 5H?2 # 19 5HQL # WE GET HERE WHEN THE BS FILE HAS BEEN LOCATED, CARRYING 14 5J== # X3->DL OF DEVICE HOLDING FILE 14 5JPW ...# X1->FILE FAC(DISC)/ENTRY(DRUM) 4 5K9G # 13 5KP6 LDN 2 THEFILE(2) [ ) 18 5L8Q MOVE 1 5 [ ) STORE AWAY FOR FUTURE 13 5LNB LDX 2 G3DOL [ ) 13 5M82 STO 3 JLPSBS(2) [ ) 13 5MML ... LDX 0 AJLTBUFF(2) [SET 14 5N7= ... STO 0 JLMDATA+2(2) [ UP 15 5NLW ... LDN 0 JLMHEADA(2) [ THE 17 5P6G ... STO 0 JLMHEAD+2(2) [ CTSA'S 10 5PL6 ... STOZ JLTMCNT(2) 19 5Q5Q ... STOZ SWBUF(2) [START WITH SINGLE BUFFERING 8 67R= LDX 6 1(1) 9 68=W ANDX 6 MASKA(2) 15 68QG STO 6 BSDESC+2(2) [START BLKNO 8 69=6 LDX 7 2(1) 9 69PQ ANDX 7 MASKA(2) 15 6=9B STO 7 BSDESC+3(2) [END BLKNO+1 8 6=P2 LDX 0 4(1) 14 6?8L STO 0 BSDESC+4(2) [BLKS/CYL 16 6?N= SBX 7 6 [BLKSIZE OF FILE 7 6#7W SLL 7 7 18 6#MG ... STO 7 JLVOLFILE(2) [STORE WD.SIZE OF FILE 7 6*76 SRL 7 7 15 6*LQ DVS 6 0 [/BLKSPERCYL 8 6B6B BNZ 6 V14 16 6BL2 LDX 6 BSDESC+4(2) [FULL DEPTH FILE 15 6C5L V14 STO 6 BSDESC+5(2) [FILE DEPTH 4 6CK= # 21 6D4W ...V01 LDX 0 JLVOLFILE(2) [GET SIZE OF (NONEMULATED) BS FILE 16 6DJG ... TXL 0 BSVOL(2) [< PROGRAM SIZE? 16 6F46 ... BCS JLTOOSMALL [YES SO WON'T FIT 4 6FHQ # 18 6G3B # FOLLOWING COMPACTS THE FS TABLE & STOZZES THE REST, 17 6GH2 # LEAVING A POINTER TO THE END OF THE LIST. 10 6H2L LDN 0 FSTABLEN-1 10 6H*3 ... LDX 1 AJLRTAB(2) 8 6HMD ... ADN 1 5 10 6H_W ... LDX 2 AJLRTAB(2) 8 6JFG TFS20 LDX 4 0(2) 8 6J_6 BZE 4 TFS21 7 6KDQ ADN 2 5 8 6KYB BRN TFS20 8 6LD2 TFS21 LDX 4 0(1) 8 6LXL BNZ 4 TFS22 7 6MC= ADN 1 5 8 6MWW BCT 0 TFS21 8 6NBG BRN TFS23 7 6NW6 TFS22 MOVE 1 5 8 6P*Q STOZ 0(1) 8 6PTB BRN TFS20 7 6Q*2 TFS23 LDX 7 2 7 6QSL TFS24 TXL 2 1 8 6R#= BCC TFS25 8 6RRW STOZ 0(2) 7 6S?G ADN 2 1 8 6SR6 BRN TFS24 8 6T=Q TFS25 LDX 2 G3DOL 10 6TQB ... SBX 7 AJLRTAB(2) 9 6W=2 ... STO 7 JLRSW(2) 4 6WPL # 4 6X9= # 16 6XNW V02 LDCT 0 #400 [TRAP DISC/TAPE 15 6Y8G STO 0 TRAPFAIL(2) [FAILS NOW ON 4 6YN6 # 20 6_7Q # FROM THIS POINT THE TAPE HAS MOVED & RECOVERY IS AWKWARD IF A 21 6_MB # BS FAIL OCCURS & IMPOSSIBLE IF A TAPE FAIL OCCURS. ANY FAIL FROM 15 7272 # NOW ON CAUSES CONTROL TO PASS TO RECOVERY. 19 72LL # FIRST POSITION TAPE AT START OF PROGRAM FILE IN GIN DUMP. 4 736= # 16 73KW JENG 3,V03 [TAPE STILL THERE 9 745G LDN 1 VLOST(2) 14 74K6 BRN CATASTROPHE [GIVE UP 10 754Q V03 LDN 6 JLMSKIP(2) 17 75JB ... CALL 0 JLPTAPE [SKIP TO END OF S/F 7 7642 LDN 0 1 10 76HL ... ADS 0 JLTMCNT(2) 10 773= LDN 6 JLMHEAD(2) 17 77GW ... CALL 0 JLPTAPE [READ END S/F SENT 8 782G LDCT 0 #400 10 78G6 ... ERX 0 JLMHEADA(2) 15 78_Q ... BNZ 0 JLMFE [NOT CORRECT 15 79FB ...V04 CALL 0 JLPTAPE+1 [READ A TM 7 79_2 LDN 0 1 10 7=DL ... ADS 0 JLTMCNT(2) 19 7=Y= ... CALL 0 JLPTAPE [READ START SENT FOR GIN DUMP 10 7?CW ... LDX 0 JLMHEADA(2) 17 7?XG SBN 0 6 [NOT END OF S/F SENT 8 7#C6 ... BNZ 0 JLMFE 10 7#WQ ... LDX 0 JLMHEADA+2(2) 10 7*BB ... LDX 4 JLMHEADA+3(2) 10 7*W2 ... LDX 7 JLMHEADA+4(2) 10 7B*L TXU 0 GELLY+1(2) 10 7BT= TXU 4 GELLY+2(2) 10 7C#W TXU 7 GELLY+3(2) 16 7CSG ... BCS JLMFE [NOT CORRECT NAME 14 7D#6 ... CALL 0 JLPTAPE+1 [READ TM 7 7DRQ LDN 0 1 10 7F?B ... ADS 0 JLTMCNT(2) 18 7FR2 ... CALL 0 JLPTAPE [READ GIN REQUEST SLIP 10 7G=L ... LDCH 0 JLMHEADA(2) 8 7GQ= SBN 0 #73 16 7H9W ... BNZ 0 JLMFE [NOT BINARY BLK 10 7HPG ... LDX 0 JLMHEADA(2) 8 7J96 ANDN 0 #77 7 7JNQ SBN 0 1 16 7K8B ... BNZ 0 JLMFE [NOT REQUEST SLIP 20 7KN2 ...V06 CALL 0 JLPTAPE [READ TO FIND PROGRAM FILE DUMP 10 7L7L ... LDX 0 JLMHEADA(2) 9 7LM= TXU 0 MENT(2) 20 7M6W ... BCC RFRST [ENTRY BLK - END OF CORE IMAGE 9 7MLG TXU 0 MTYPE5(2) 16 7N66 ... BCS JLMFE [NOT TYPE 5 BLK 16 7NKQ ... CALL 0 JLPTAPE [READ DATA BLK 8 7P5B BRN V06 4 7PK2 # 4 7Q4L # 4 7QJ= # 19 7R3W # TAPE NOW POSITIONED TO READ GEORGE TYPE 5 BLKS 4 7RHG # 17 7RP7 ...RFRST LDCT 0 #400 [NOW DOUBLE-BUFFER 10 7RWS ... STO 0 JLSWBUF(2) 10 7S4F ... LDN 6 JLMHEAD(2) 19 7S=6 ... CALL 0 JLPTAPE [READ SPECIFYING BLK PERHAPS 10 7SCR ...RNEXT LDN 6 JLMDATA(2) 16 7SKD ... CALL 0 JLPTAPE [READ A DATA BLK 10 7SR5 ... LDN 0 JLMHEADA(2) 9 7SYQ ... LDN 1 MHEADB(2) 7 7T6C ... MOVE 0 5 9 7T#4 ... LDX 0 MHEADB(2) 9 7TG2 TXU 0 MENT(2) 16 7T_L BCS V13 [NOT ENTRY BLK 9 7W2X ... LDX 4 NOMBUF(2) 19 7W48 ... BZE 4 NOMOR [J WORKING DA BUFFER EMPTY 10 7W5F ... LDX 7 NEWDPTR(2) 10 7W6Q ... LDX 4 AJLMBUFF(2) 8 7W83 ... LDN 5 512 18 7W9# ... ERX 5 TDOUBUF(2) [FLIP DA BUFFER SWITCH 16 7W=K ... STO 5 TDOUBUF(2) [AND REMEMBER IT 10 7W?W ... ADX 5 AJLBUFF(2) 7 7W*7 ... MOVE 4 0 19 7WBD ... CALL 0 JLWRITE [WRITE AWAY LAST DA BUFFER 5 7WCP ...NOMOR 9 7WF= ... LDN 7 MHEADB(2) 7 7WYW SUM 6 3 19 7X2= ... BNZ 6 JLSUMF [CHECKSUM FAIL ON ENTRY BLK 11 7X2N ...# FINISHED READING OFF TAPE 10 7X36 ...# TIDY UP BEFORE LOADER 10 7X3L ... LDN 6 JLMTREW(2) 18 7X52 ... STOZ SWBUF(2) [BACK TO SINGLE BUFFERING 10 7X6B ... STOZ TDOUBUF(2) 9 7X7Q ... LDX 1 JLPSMT(2) 16 7X96 ...RN1 JBUSY 1,RN1 [EXTRA TAPE CHECK 9 7X=G ... LDX 3 JLPSBS(2) 16 7X?W ...RN2 JBUSY 3,RN2 [EXTRA DISC CHECK 18 7X*= ... LDX 1 ZLKTAB(2) [UPDATE ZALDS (JLTABLE) 18 7XBL ... SBN 1 1 [REAL START OF CH TABLE 14 7XD2 ... ADN 1 KFSTABLE [FSTABLE 8 7XFB ... LDX 0 0(1) 7 7XGQ ... LDX 7 0 14 7XJ6 ... ANDX 0 MASK5(2) [D/128 13 7XKG ... SLL 0 7 [D 10 7XLW ... STO 0 JLTABLE+2(2) 9 7XN= ... ANDX 7 MASK5X(2) 13 7XPL ... SRL 7 13 [L 8 7XR2 ... BNZ 7 ZA1 15 7XSB ... LDN 7 1024 [0 => 1024 10 7XTQ ...ZA1 STO 7 JLTABLE(2) 9 7XX6 ... SBN 1 KFSTABLE 13 7XYG ... ADN 1 KCDUM [CDUM 8 7X_W ... LDX 0 0(1) 7 7Y3= ... LDX 7 0 14 7Y4L ... ANDX 0 MASK5(2) [D/128 13 7Y62 ... SLL 0 7 [D 10 7Y7B ... STO 0 JLTABLE+3(2) 9 7Y8Q ... ANDX 7 MASK5X(2) 13 7Y=6 ... SRL 7 13 [L 8 7Y?G ... BNZ 7 ZA2 15 7Y#W ... LDN 7 1024 [0 => 1024 10 7YB= ...ZA2 STO 7 JLTABLE+1(2) 16 7YCQ BRN K3LOADERMT [GO & LOAD LOADER 4 7YXB # 20 7_C2 # CHECK LAST BLK READ IS TYPE 5 & WRITE IT (OR ZERO BLKS) AWAY. 4 7_WL # 9 82B= V13 TXU 0 MTYPE5(2) 16 82TW ... BCS JLMFE [NOT TYPE 5 BLK 9 83*G ... LDN 7 MHEADB(2) 7 83T6 SUM 6 5 20 84#Q ... BNZ 6 JLSUMF [SPECIFYING BLK DOES NOT CHECKSUM 10 84SB ... LDN 6 JLMHEAD(2) 16 85#2 ... CALL 0 JLPTAPE [READ A SPEC BLK 10 85RL ... LDX 1 MHEADB+2(2) 17 86?= ANDN 1 #777 [EXTRACT BLK LENGTH 10 86QW ... LDX 7 AJLTBUFF(2) 15 87=G SUM 6 0(1) [& SUM BLK 10 87Q6 ... STO 6 MHEADB+4(2) 10 889Q ... LDN 7 MHEADB+3(2) 7 88PB SUM 6 2 19 8992 ... BNZ 6 JLSUMF [DATA BLK DOES NOT CHECKSUM 4 89NL # 21 8=8= # MUST NOW DETERMINE IF ANY ZERO-BLKS HAVE BEEN OMITTED BETWEEN BLK 19 8=MW # JUST READ & PRECEDING ONE. IF NONE HAVE, BLKS SHOULD BE 18 8?7G # CONCURRENT. OTHERWISE, IF SOME ZERO-BLKS ARE MISSING, 19 8?M6 ...# WE MUST WRITE THEM TO JLLBUFF, ENSURING THAT FS'S & ME'S 20 8#6Q ...# FOR THEM ARE INCLUDED (STILL REFERRING TO OLD D-ADDRESSES). 4 8#LB # 10 8*62 ...V15 LDX 0 JLVOLFILE(2) 15 8*KL ... TXL 0 MHEADB+1(2) [BS ADDRESS 15 8B5= ... BCS JLMFE [NOT IN RANGE 19 8BJW ... LDX 0 MHEADB+1(2) [THIS BACKING STORE ADDRESS 16 8C4G ... SBX 0 JLNDADD(2) [ - LAST BS-ADDR. 8 8CJ6 SBN 0 512 16 8D3Q BZE 0 VV01 [CONSECUTIVE BLKS 16 8DHB SRL 01 9 [SEPARATION/512 8 8F32 SRL 1 15 19 8FGL ... BNZ 1 JLMFE [SEP(MOD 512) NOT=0, MT FE 16 8G2= ... STO 0 SEPAR(2) [NO. OF ZERO-BLKS 18 8GFW ... LDX 0 MHEADB+2(2) [PREVIOUSLY FUNNY HERE 17 8G_G ... STO 0 MHBKSZ(2) [SIZE OF NON-ZERO BLK 17 8MTQ LDCT 0 #400 [SET ZERO-BLK MARK 9 8N*B STO 0 ZBMARK(2) 7 8NKW ...VV04 LDN 0 1 17 8NWB ... SBS 0 SEPAR(2) [REDUCE SEPARATION 10 8P6W ... LDX 0 AJLZERBUFF(2) 10 8PCB ... LDX 1 AJLLBUFF(2) 19 8PMW ... MOVE 0 0 [MOVE IN ZERO-BLOCK (0=>512) 8 8PYB ... LDN 0 512 16 8Q8W ... STO 0 MHEADB+2(2) [WD COUNT OF BLK 10 8QFB ... ADX 0 JLNDADD(2) 18 8QPW ... STO 0 JLNDADD(2) [UPDATE 'LAST BS-ADDR' 21 8R2B ... STO 0 MHEADB+1(2) [SET UP SPEC BLK FOR NEXT ZERO-BLK 8 8R?6 BRN VV02 17 8RCJ ...VV03 LDX 0 MHBKSZ(2) [SIZE OF NON-ZERO BLK 10 8RJ2 ... STO 0 MHEADB+2(2) 8 8RND ... BRN VV00 8 8RSW ...VV01 LDN 0 512 10 8R_# ... STO 0 MHEADB+2(2) 15 8S5Q ...VV00 STOZ ZBMARK(2) [NO ZERO-BLKS 8 8S=B LDN 0 512 18 8SF4 ... ADS 0 JLNDADD(2) [UPDATE ^LAST D-ADDRESS^ 10 8SMQ ... LDX 0 AJLTBUFF(2) 10 8SWD ... LDX 1 AJLLBUFF(2) 7 8T56 ... MOVE 0 0 16 8T?S ...VV02 LDN 0 512 [GRAND JUNCTION 18 8TGG ... STO 0 NOLBUF(2) [INDICATE JLLBUFF FULL 4 8TP= # 14 8W8W ...# FILL IN ANY FS DESCS FOR BLOCK READ 4 8WNG # 9 8X86 ... LDX 3 JLRSW(2) 14 8XMQ BZE 3 V07 [NO FS'S 8 8Y7B BPZ 3 V08 7 8YM2 NGX 3 3 10 8_2P ... LDX 1 AJLRTAB(2) 8 8_BD ... LDX 0 0(1) 10 8_Q7 ... LDX 1 AJLLBUFF(2) 8 925W MOVE 0 0(3) 9 92KG ... STOZ JLRSW(2) 8 9356 BRN V07 4 93JQ # 20 944B V08 LDX 1 MRFIRS(2) [USE OLD D-ADDRS AT THIS STAGE 10 94J2 ... LDX 6 MHEADB+1(2) 17 953L ... ADX 6 MHEADB+2(2) [END D-ADDR OF BLK 7 95H= TXL 1 6 16 962W BCC V07 [THIS BLK TOO LOW 20 96GG SBX 6 1 [DISTANCE FROM FIRS TO END OF BLK 19 9726 LDN 3 FSTABLEN+1*5 [COUNT=TOTAL SIZE OF TABLE 7 97FQ TXL 6 3 20 97_B BCC V09 [ROOM FOR WHOLE TABLE IN THIS BLK 20 98F2 LDX 3 6 [ELSE TAKE COUNT TO END OF BLK 10 98YL ...V09 SBX 1 MHEADB+1(2) 10 99D= ... ADX 1 AJLLBUFF(2) 10 99XW ... LDX 0 AJLRTAB(2) 18 9=CG MOVE 0 0(3) [MOVE IN (PART OF) TABLE 7 9=X6 ADX 0 3 10 9?9H ... LDX 1 AJLRTAB(2) 21 9?HY ... STO 0 0(1) [SET POINTER TO NEXT WD TO MOVE IN 17 9?WB SBN 3 FSTABLEN+1*5 [X3=-REMAINDER COUNT 19 9#B2 ... STO 3 JLRSW(2) [NEG TO INDICATE MORE TO GO 4 9#TL # 16 9**= ...# CHECK IF THERE ARE ANY MENDS FOR THIS BLOCK. 4 9*SW # 9 9B7? ...V07 LDX 1 AJLRAT(2) 8 9BFN ... LDX 7 0(1) 14 9BS6 BZE 7 V12 [NO MENDS 7 9C?Q SRL 7 1 9 9CL7 ... LDX 1 AJLRAT(2) 8 9CYJ ... ADN 1 1 7 9D?2 LDN 6 0 16 9DQL V10 LDX 3 0(1) [D-ADDR OF MEND 15 9F== BZE 3 V11 [ALREADY DONE 8 9FG4 ... STO 1 X1(2) 9 9FPW ... LDX 1 AJLRAT(2) 18 9F_N ... LDX 6 0(1) [SET X6, STILL SOME TO DO 8 9G9G ... LDX 1 X1(2) 10 9GF# ... TXL 3 MHEADB+1(2) 17 9GP6 BCS V11 [THIS BLOCK TOO HIGH 10 9H8Q ... SBX 3 MHEADB+1(2) 10 9HNB ... TXL 3 MHEADB+2(2) 15 9J82 BCC V11 [OR TOO LOW 10 9JML ... ADX 3 AJLLBUFF(2) 16 9K7= LDX 0 1(1) [GET ALTERING WD 15 9KLW STOZ 0(1) [CLEAR IT & 15 9L6G STO 0 0(3) [ALTER BUFFER 7 9LL6 V11 ADN 1 2 13 9M5Q BCT 7 V10 [NEXT 9 9M#F ... LDX 1 AJLRAT(2) 8 9MH8 ... STO 6 0(1) 4 9MPX ...# 17 9MYL ...# HERE CHECK IF BLOCK CONTAINS PART OF CHAPTER TABLE 19 9N7* ...V12 LDX 0 JLNDADD(2) [COULD BE MHEADB+1 INSTEAD 19 9NB4 ... STO 0 OLDDPTR(2) [OLD D-ADDRESS (EARLY ONES) 16 9NJR ... LDX 1 QTSWTCH(2) [GRAND JUNCTION 17 9NRG ... BZE 1 W10 [AFTER CHAPTER TABLE 7 9P29 ... SBN 1 1 20 9P8Y ... BZE 1 V303 [MAY HAVE 3RD PT CHAPTER TABLE 7 9PCM ... SBN 1 1 18 9PLB ... BZE 1 V302 [2ND PART CHAPTER TABLE 9 9PT5 ... LDX 0 QHTADD(2) 10 9Q3S ... SBX 0 OLDDPTR(2) 8 9Q=H ... SBN 0 512 20 9QF= ... BPZ 0 V22 [WHOLE BK BEFORE CH TABLE/THE END 8 9QM_ ...V301 ADN 0 513 10 9QWN ... ADX 0 AXBUFF1(2) 9 9R5C ... STO 0 ZLKTAB(2) 18 9R#6 ... LDX 0 AJLLBUFF(2) [1ST PART CHAPTER TABLE 10 9RGT ... LDX 1 AXBUFF1(2) 7 9RPJ ... MOVE 0 0 9 9RY? ... STOZ QTNTRY(2) 8 9S72 ... BRN V21 14 9S*P ...V302 LDX 0 AJLLBUFF(2) [2ND PART 10 9SJD ... LDX 1 AXBUFF2(2) 7 9SR7 ... MOVE 0 0 7 9T8K ...V21 LDN 0 1 10 9TC# ... SBS 0 QTSWTCH(2) 8 9TL3 ... BRN RMORE 14 9TSQ ...V303 LDX 0 AJLLBUFF(2) [3RD PART 10 9W3F ... LDX 1 AXBUFF3(2) 7 9W=8 ... MOVE 0 0 9 9WDX ... LDX 0 ZLKTAB(2) 10 9WML ... LDX 1 ACHAPTAB1(2) 18 9WW* ... MOVE 0 0 [COPYING INTO CHAPTAB1 10 9X54 ... LDX 7 XCHAPCOUNT(2) 8 9X?R ... SBN 7 512 8 9XGG ... ADN 0 512 8 9XP9 ... ADN 1 512 7 9XXY ... SMO 7 18 9Y6M ... MOVE 0 0 [REST OF CHAPTER TABLE 7 9Y*B ... LDN 1 3 10 9YJ5 ... STO 1 QTSWTCH(2) 4 9YQS ...# 17 9Y_H ...# CHANGE FROM 0LL.LLL.LLL.00D.DDD.DDD.DDD.DDD 17 9_8= ...# TO KKK.KKK.KKK.K0D.DDD.DDD.DDD.DDD 16 9_B_ ...# [ =D%A/128 L=L%A/4(MOD 1024/4) K=K%A-1] 5 9_KN ...MASKING 7 9_SC ... LDN 1 0 10 =236 ... LDX 3 ACHAPTAB1(2) 7 =29T ...MSKG2 ADX 3 1 10 =2DJ ... TXL 1 XCHAPCOUNT(2) 15 =2M? ... BCC MSKND [END OF TABLE 15 =2W2 ... LDX 0 0(3) [NEXT ENTRY 17 =34P ... BZE 0 MSKG3 [IGNORE ZERO ENTRIES 19 =3?D ... ANDX 0 MASK5(2) [REMOVE LENGTH => 000DDDDD 7 =3G7 ... LDX 7 1 17 =3NW ... SLL 7 14 [SHOULD BE KKKK0000 17 =3XK ... ORX 7 0 [ADD IN CHAPTER NO. 15 =46# ... STO 7 0(3) [UPDATE ENTRY 7 =4*3 ...MSKG3 SBX 3 1 7 =4HQ ... ADN 1 1 8 =4QF ... BRN MSKG2 20 =4_8 ...MSKND [COULD UPDATE XCHAPCOUNT FROM X1 18 =57X ... CALL 7 SHELLSORT [SORT IN D-ADDRESS ORDER 4 =5BL ...# 15 =5K* ...# PRODUCE STRETCHED CH TABLE (1K BOUNDARIES) 8 =5S4 ...# GET GAPS FIRST 17 =62R ...UPD00 LDN 4 0 [CHAPTER TABLE LINE 10 =69G ... LDX 3 ACHAPTAB2(2) 10 =6D9 ...UPD01 LDX 1 ACHAPTAB1(2) 13 =6LY ... ADX 1 4 [I 17 =6TM ... LDX 5 0(1) [ITH ENTRY (CHAPTAB1) 17 =74B ... BZE 5 UPD04 [FORGET ZERO ENTRIES 7 =7?5 ... LDX 7 5 13 =7FS ... ANDX 7 MASK5X(2) [K 14 =7NH ... ANDX 5 MASK5(2) [D/128 16 =7X= ... LDX 0 TABNTRY1(2) [PREVIOUS OLD D 17 =85_ ... ADX 0 TABNTRY0(2) [+ LENGTH (RDD _ 128) 14 =8#N ... TXL 0 5 [V. NEW D 17 =8HC ... BCC UPD02 [NOT TOO FAR APART 9 =8Q6 ... LDX 1 QNTBIG(2) 7 =8YT ... ADN 1 1 16 =97J ... STO 1 QNTBIG(2) [UPDATE GAP COUNT 16 =9B? ... ADX 1 ACHAPTAB3(2) [START ADDRESSES 18 =9K2 ... STO 0 0(1) [START OF RESERVED GAP 9 =9RP ... LDX 1 QNTBIG(2) 10 ==2D ... ADX 1 ACHAPTAB4(2) 17 ==97 ... STO 5 0(1) [END OF RESERVED GAP 7 ==CW ...UPD02 ADX 3 4 16 ==LK ... STO 7 0(3) [FILL IN CHAPTAB2 18 ==T# ... SBX 3 4 [RESTORE X3 (CHAPTAB2) 13 =?43 ... SRL 7 14 [K 9 =?=Q ... LDX 1 ZLKTAB(2) 7 =?FF ... ADX 1 7 17 =?N8 ... LDX 0 0(1) [KTH ENTRY IN ZLKTAB 14 =?WX ... ANDX 0 MASK5X(2) [JUST L 17 =#5L ... BZE 0 UPD03 [L 0 => LENGTH 1024 20 =##* ... SRL 0 13 [PART DIVIDE L TO ROUND & AVOID V 16 =#H4 ... SBN 0 1 [ROUND THIS UP 14 =#PR ... SRL 0 7 [L/128 14 =#YG ... ADN 0 1 [RDD UP 16 =*79 ... BRN UPD05 [NOW GOT LENGTH 16 =**Y ...UPD03 LDN 0 8 [1K-LONG CHAPTERS 10 =*JM ...UPD05 STO 0 TABNTRY0(2) 10 =*RB ... STO 5 TABNTRY1(2) 7 =B25 ...UPD04 ADN 4 1 18 =B8S ... TXL 4 XCHAPCOUNT(2) [STOPS CH TABLE PROBLEMS 20 =BCH ... BCS UPD01 [RETURN FOR NEXT ONE IN ZLKTAB 4 =BL= ...# 16 =BS_ ...# ADD IN RESERVED AREA AT END OF PROGRAM FILE 13 =BWW ...UPD10 ADX 5 0 [D+L 19 =BYR ... LDX 6 BSVOL(2) [END OF GEORGE PROGRAM FILE 15 =C2N ... SRL 6 7 [...IN BLOCKS 19 =C4K ... TXL 5 6 [IS A CHAPTER THE LAST THING? 14 =C6G ... BCC UPD11 [J IF SO 9 =C8C ... LDX 1 QNTBIG(2) 15 =C=C ... ADN 1 1 [ONE EXTRA 16 =CF6 ... STO 1 QNTBIG(2) [UPDATE GAP COUNT 16 =CMT ... ADX 1 ACHAPTAB3(2) [START ADDRESSES 14 =D5? ... STO 5 0(1) [LAST D+L 9 =DPD ... LDX 1 QNTBIG(2) 10 =DY7 ... ADX 1 ACHAPTAB4(2) 16 =F6W ... STO 6 0(1) [END OF FINAL GAP 9 =F*K ...UPD11 LDX 1 QNTBIG(2) 15 =FJ# ... ADN 1 1 [ONE EXTRA 16 =FR3 ... STO 1 QNTBIG(2) [UPDATE GAP COUNT 16 =F_Q ... ADX 1 ACHAPTAB3(2) [START ADDRESSES 17 =G8F ... LDX 5 MASKA(2) [HUGE AT END OF GAPS 8 =GC8 ... STO 5 0(1) 19 =GKX ...# NOW STRETCH NEW ADDRESSES BY JUMPING ROUND RESERVED AREAS 11 =GSL ...# AND PUT IN 1K BOUNDARIES 17 =H3* ...UPD20 LDN 4 0 [CHAPTER TABLE LINE 15 =H=4 ... LDN 5 0 [GAP NUMBER 14 =HDR ... LDN 6 0 [NEW D 10 =HMG ... LDX 3 ACHAPTAB2(2) 13 =HW9 ...UPD21 ADX 3 4 [I 10 =J4Y ... LDX 1 ACHAPTAB1(2) 7 =J?M ... ADX 1 4 17 =JGB ... LDX 0 0(1) [ITH CHABTAB1 ENTRY 17 =JP5 ... BZE 0 UPD29 [IGNORE ZERO ENTRIES 15 =JXS ...UPD23 LDX 1 ACHAPTAB3(2) [START OF GAP 13 =K6H ... ADX 1 5 [J 14 =K*= ... LDX 7 0(1) [JTH GAP 15 =KH_ ... ANDX 7 MASK2D(2) [ROUND DOWN 7 =KQN ... TXL 6 7 15 =K_C ... BCS UPD22 [BEFORE GAP 20 =L86 ... LDX 1 0(3) [NOW TEST IF VERY CLOSE TO GAP 13 =LBT ... SRL 1 14 [K 9 =LKJ ... ADX 1 ZLKTAB(2) 17 =LS? ... LDX 0 0(1) [KTH ENTRY IN ZLKTAB 14 =M32 ... ANDX 0 MASK5X(2) [JUST L 15 =M9P ... BZE 0 UPD25 [0 => 1024 8 =MDD ... SRL 0 17 16 =MM7 ... SBN 0 1 [ROUND THIS UP 9 =MTW ... ANDX 0 MASK2D(2) 8 =N4K ... ADN 0 #10 14 =N?# ... SRL 0 3 [L/128 7 =NG3 ... ADX 0 6 7 =NNQ ... TXL 0 7 15 =NXF ... BCS UPD22 [BEFORE GAP 15 =P68 ...UPD25 LDX 1 ACHAPTAB4(2) [END OF GAP 13 =P#X ... ADX 1 5 [J 17 =PHL ... LDX 6 0(1) [END OF RESERVED AREA 16 =PQ* ... SBN 6 1 [ROUND THIS UP 9 =P_4 ... ANDX 6 MASK2D(2) 15 =Q7R ... ADN 6 #10 [END OF GAP 7 =QBG ... ADN 5 1 17 =QK9 ... BRN UPD23 [RETURN FOR NEXT GAP 17 =QRY ...UPD22 LDX 1 0(3) [ITH CHAPTAB2 ENTRY 13 =R2M ... SRL 1 14 [K 9 =R9B ... ADX 1 ZLKTAB(2) 17 =RD5 ... LDX 0 0(1) [KTH ENTRY IN ZLKTAB 14 =RLS ... ANDX 0 MASK5X(2) [JUST L 7 =RTH ... ADX 0 6 16 =S4= ... STO 0 0(1) [UPDATE ZLKTAB 16 =S=_ ... ADS 6 0(3) [UPDATE CHAPTAB2 15 =SFN ... ADN 6 #10 [FOR NEXT D 7 =SNC ...UPD29 SBX 3 4 7 =SX6 ... ADN 4 1 10 =T5T ... TXL 4 XCHAPCOUNT(2) 15 =T#J ... BCS UPD21 [BACK AGAIN 17 =T*X ... SLL 6 7 [CHECK NEW FILE SIZE 20 =TC= ... STO 6 BSVOL(2) [SIZE OF EMULATED PROGRAM FILE 10 =TDK ... TXL 6 JLVOLFILE(2) 14 =TFY ... BCC JLTOOSMALL [TOO BIG! 9 =TG8 ... LDX 7 MASKA(2) 10 =TGD ... LDX 3 ACHAPTAB1(2) 19 =TGN ... SMO 4 [LARGE ADDRESS AFTER LAST... 18 =TGY ... STO 7 0(3) [...ENTRY IN ACHAPTAB1 17 =TG_ ... LDX 3 ACHAPTAB2(2) [...AND IN ACHAPTAB2 7 =TH2 ... SBN 4 1 7 =TH3 ... SMO 4 15 =TH4 ... LDX 7 0(3) [LAST ENTRY 9 =TH5 ... ANDX 7 MASK5(2) 16 =TH6 ... ADN 7 #10 [WORK OUT VALUE 7 =TH7 ... ADN 4 1 7 =TH8 ... SMO 4 16 =TH9 ... STO 7 0(3) [AFTER LAST ENTRY 4 =TH? ...# 7 =TQ2 ...# ALL DONE 8 =TYP ...# NOW WRITE AWAY 10 =W7D ...V50 LDX 7 QTSWTCH(2) 7 =WB7 ... SBN 7 1 14 =WJW ... STO 7 QTSWTCH(2) [DOWN 1 14 =WRK ... BZE 7 V53 [WAS 1 7 =X2# ... SBN 7 1 14 =X93 ... BZE 7 V52 [WAS 2 14 =XCQ ...V51 LDX 0 AXBUFF1(2) [1ST TIME 8 =XLF ... BRN V54 14 =XT8 ...V52 LDX 0 AXBUFF2(2) [2ND TIME 10 =Y3X ...V54 LDX 1 AJLMBUFF(2) 7 =Y=L ... MOVE 0 0 9 =YF* ... STOZ NOLBUF(2) 15 =YN4 ... BRN W60 [WRITE OFF 14 =YWR ...V53 LDX 0 AXBUFF3(2) [3RD TIME 18 =_5G ... LDX 1 AJLLBUFF(2) [WRITE BACK (NO.2 SHIRT) 7 =_#9 ... MOVE 0 0 10 =_GY ...V58 LDX 1 ACHAPTAB1(2) 13 =_PM ... ADX 1 QNO(2) [K 14 =_YB ... LDX 0 0(1) [NEXT ONE 16 ?275 ... BNZ 0 V59 [FIRST REAL ENTRY 7 ?2*S ... LDN 0 1 9 ?2JH ... ADS 0 QNO(2) 15 ?2R= ... BRN V58 [NEXT ENTRY 14 ?2__ ...V59 ANDX 0 MASK5(2) [JUST D 7 ?38N ... SLL 0 7 10 ?3CC ... STO 0 OLDDCHP(2) 10 ?3L6 ... SBX 0 OLDDPTR(2) 18 ?3ST ... SBN 0 512 [NOT OTHERWISE REDUCED 10 ?43J ... STO 0 OLDDIFF(2) 8 ?4=? ... ADN 0 #777 9 ?4F2 ... ANDX 0 MASK2K(2) 14 ?4MP ... ADN 0 1024 [ROUND UP 10 ?4WD ... STO 0 NEWDIFF(2) 10 ?557 ... LDX 1 ACHAPTAB2(2) 9 ?5?W ... ADX 1 QNO(2) 14 ?5GK ... LDX 0 0(1) [NEXT ONE 14 ?5P# ... ANDX 0 MASK5(2) [JUST D 7 ?5Y3 ... SLL 0 7 10 ?66Q ... STO 0 NEWDCHP(2) 20 ?6*F ... LDN 1 1 [IN MIDDLE OF 1ST ENTRY ALREADY 15 ?6J8 ... STO 1 QNTBIG(2) [REINITIALISE 4 ?6QX ...# 20 ?6_L ...V22 LDX 0 AJLLBUFF(2) [PRE CHAPTER TABLE STRAIGHT -> BS 10 ?78* ... LDX 1 AJLMBUFF(2) 7 ?7C4 ... MOVE 0 0 9 ?7KR ...V55 STOZ NOLBUF(2) 15 ?7SG ... BRN W54 [SEND TO DISC 4 ?839 ...# 17 ?89Y ...RMORE LDX 0 ZBMARK(2) [HANDLING ZERO-BLKS? 20 ?8DM ... BZE 0 RNEXT [NO, READ NEXT BLK-PAIR OFF TAPE 19 ?8MB ... LDX 0 SEPAR(2) [ALL ZERO-BLKS WRITTEN AWAY? 20 ?8W5 ... BZE 0 VV03 [YES, GO & WRITE AWAY WAITING BLK 8 ?94S ... BRN VV04 4 ?9?H ...# 13 ?9G= ...# NOW ACTUALLY STRETCH PROGRAM FILE 10 ?=6C ...W10 LDX 0 NEWDIFF(2) 15 ?=*6 ... BZE 0 W20 [NEXT ITEM 15 ?=HT ... BRN W30 [SAME ITEM 4 ?=QJ ...# 7 ?=_? ...W29 LDN 0 1 18 ??82 ... ADS 0 QNO(2) [POINTER FOR NEXT ENTRY 18 ??BP ...W20 LDX 0 ZK(2) [POSSIBLY WRONG POSITION 9 ??KD ... SBX 0 QNO(2) 20 ??S7 ... BPZ 0 W28 [NOT YET END OF CHTABLE ENTRIES 7 ?#2W ... LDN 0 3 16 ?#9K ... STO 0 QTSWTCH(2) [END AS AT START 9 ?#D# ... LDX 0 MASKA(2) 20 ?#M3 ... STO 0 QHTADD(2) [HUGE TO PRETEND BEFORE CHTABLE 8 ?#QB ... BRN W201 13 ?#TQ ...W28 LDX 1 QNO(2) [I 10 ?*4F ... ADX 1 ACHAPTAB1(2) 8 ?*?8 ... LDX 0 0(1) 16 ?*FX ... BZE 0 W29 [IGNORE 0 ENTRY 15 ?*NL ... ANDX 0 MASK5(2) [JUST D/128 7 ?*X* ... SLL 0 7 19 ?B64 ...W201 STO 0 OLDDCHP(2) [OLD D-ADDR OF NEXT CHAPTER 13 ?B#R ... LDX 3 QNTBIG(2) [J 10 ?BHG ... ADX 3 ACHAPTAB3(2) 8 ?BQ9 ... LDX 6 0(3) 7 ?BYY ... SLL 6 7 10 ?C7M ... STO 6 NEXTGAP(2) 7 ?CBB ... TXL 0 6 14 ?CK5 ... BCC W22 [NEW GAP 15 ?CRS ...W21 LDN 0 1024 [NEW CHAPTER 15 ?D2H ... STO 0 OLDDIFF(2) [MAX VALUE 16 ?D9= ... STO 0 NEWDIFF(2) [START OF CHAPTER 9 ?DC_ ... LDX 3 QNO(2) 10 ?DLN ... ADX 3 ACHAPTAB2(2) 8 ?DTC ... LDX 0 0(3) 9 ?F46 ... ANDX 0 MASK5(2) 7 ?F=T ... SLL 0 7 19 ?FFJ ... STO 0 NEWDCHP(2) [NEW D-ADDR OF NEXT CHAPTER 10 ?FN? ... STO 0 NEWDPTR(2) 18 ?FX2 ... LDX 1 0(3) [PREPARE CHECKSUM UPDATE 13 ?G5P ... SRL 1 14 [K 9 ?G#D ... ADX 1 ZLKTAB(2) 17 ?GH7 ... LDX 0 0(1) [KTH ENTRY IN ZLKTAB 14 ?GPW ... ANDX 0 MASK5X(2) [JUST L 8 ?GYK ... SRL 0 13 14 ?H7# ... BNZ 0 W211 [NOT 1024 15 ?HB3 ... LDN 0 1024 [0 => 1024 17 ?HJQ ...W211 SBN 0 1 [LAST (CHECKSUM) WORD 17 ?HRF ... STO 0 POSCHSM(2) [CHECKSUM'S POSITION 10 ?J28 ... LDX 3 NEWDCHP(2) 10 ?J8X ... SBX 3 OLDDCHP(2) 17 ?JCL ... STO 3 VALCHSM(2) [TO INCREASE CHECKSUM 16 ?JL* ... STOZ NOMBUF(2) [JLMBUFF EMPTY 8 ?JT4 ... LDN 0 512 9 ?K3R ... STO 0 NOMFUB(2) 7 ?K=G ... LDN 0 1 18 ?KF9 ... ADS 0 QNO(2) [UPDATE I FOR NEXT TIME 14 ?KMY ... LDX 1 QNO(2) [NEW I 17 ?KWM ... ADX 1 ACHAPTAB1(2) [GET D-ADDR NEXT CHAP 8 ?L5B ... LDX 0 0(1) 15 ?L#5 ... ANDX 0 MASK5(2) [JUST D/128 13 ?LGS ... SLL 0 7 [D 10 ?LPH ... TXL 0 NEXTGAP(2) 16 ?LY= ... BCS W212 [NEXT CHAP < GAP 10 ?M6_ ... LDX 0 NEXTGAP(2) 15 ?M*N ...W212 SBX 0 OLDDCHP(2) [NEXT ITEM 10 ?MJC ... TXL 0 OLDDIFF(2) 20 ?MR6 ... BCC W213 [BOTH > 1024 (CAN GEOERR THIS) 15 ?M_T ... STO 0 OLDDIFF(2) [MIN OF ABOVE 8 ?N8J ...W213 BRN W30 14 ?NC? ...W22 LDN 0 1 [NEW GAP 17 ?NL2 ... ADS 0 QNTBIG(2) [UP J FOR NEXT TIME 9 ?NSP ... LDX 3 QNTBIG(2) 10 ?P3D ... ADX 3 ACHAPTAB3(2) 8 ?P=7 ... LDX 7 0(3) 14 ?PDW ... SLL 7 7 [NEXT GAP 10 ?PMK ... TXL 7 OLDDCHP(2) 19 ?PW# ... BCS W223 [GAP NEXT (CAN GEOERR THIS) 10 ?Q53 ... LDX 7 OLDDCHP(2) 14 ?Q?Q ...W223 LDX 6 NEXTGAP(2) [THIS GAP 15 ?QGF ... ANDX 6 MASK1K(2) [ROUND DOWN 10 ?QP8 ... STO 6 NEWDPTR(2) 7 ?QXX ... SBX 7 6 10 ?R6L ... STO 7 OLDDIFF(2) 7 ?R** ... SBN 7 1 9 ?RJ4 ... ANDX 7 MASK1K(2) 14 ?RQR ... ADN 7 512 [ROUND UP 18 ?R_G ... STO 7 NEWDIFF(2) [NEED TO COPY ALL ACROSS 8 ?S89 ... LDN 7 512 9 ?SBY ... STO 7 NOLBUF(2) 20 ?SKM ... STO 7 NOMFUB(2) [START OF BOTH JLLBUFF & JLMBUFF 9 ?SSB ... STOZ NOMBUF(2) 20 ?T35 ...W30 LDX 3 OLDDIFF(2) [MAY NEED TEST FOR 0S (END CHAP) 9 ?T9S ... TXL 3 NOLBUF(2) 16 ?TDH ... BCS W31 [OLDDIFF WRITE AWAY 10 ?_LX ... LDX 3 OLDDIFF(2) 16 ?_TL ... BZE 3 W50 [NO MORE WANTED 9 #24* ... LDX 3 NOLBUF(2) 18 #2?4 ... BZE 3 RMORE [JLLBUFF EMPTY => READ IN 17 #2FR ... BRN GELLIT [SHOULD NEVER HAPPEN 10 #2NG ...W50 LDX 0 POSCHSM(2) 16 #2X9 ... BNG 0 W54 [NO CHECKSUM HERE 9 #35Y ... TXL 0 Z512(2) 15 #3#M ... BCC W53 [NEXT TIME 10 #3HB ... LDX 1 AJLMBUFF(2) 17 #3Q5 ... ADX 1 0 [CHECKSUM'S POSITION 10 #3YS ... LDX 0 VALCHSM(2) 16 #47H ... ADS 0 0(1) [UPDATE CHECKSUM 14 #4B= ... BVSR / [CLEAR V 8 #4J_ ...W53 LDN 0 512 10 #4RN ... SBS 0 POSCHSM(2) 8 #52C ...W54 LDN 0 512 18 #596 ... SBS 0 NEWDIFF(2) [REDUCE FOR QUICK SALE 8 #5CT ...W60 LDN 1 512 16 #5LJ ... ERS 1 TDOUBUF(2) [SWITCH BUFFER 17 #5T? ... LDX 0 AJLMBUFF(2) [UNLIKELY 0-BKS REQD 10 #642 ... LDX 1 AJLBUFF(2) 10 #6=P ... ADX 1 TDOUBUF(2) 7 #6FD ... MOVE 0 0 10 #6N7 ... LDX 0 AJLZERBUFF(2) 10 #6WW ... LDX 1 AJLMBUFF(2) 16 #75K ... MOVE 0 0 [ZEROIZE BUFFER 8 #7## ... LDN 0 512 9 #7H3 ... STO 0 NOMFUB(2) 9 #7PQ ... STOZ NOMBUF(2) 17 #7YF ... LDX 7 NEWDPTR(2) [D-ADDRESS OF BLOCK 10 #878 ... ADS 0 NEWDPTR(2) 17 #8*X ... CALL 0 JLWRITE [WRITE BLOCK TO B/S 10 #8JL ... LDX 0 QTSWTCH(2) 17 #8R* ... BZE 0 W51 [AFTER CHAPTER TABLE 8 #924 ... TXU 0 N3(2) 17 #98R ... BCC RMORE [BEFORE CHAPTER TABLE 17 #9CG ... BRN V50 [DURING CHAPTER TABLE 9 #9L9 ...W51 LDX 3 NOLBUF(2) 15 #9SY ... BZE 3 RMORE [MORE PLEASE 20 #=3M ... BRN W10 [POSSIBLE REARRANGING OF BUFFERS 4 #==B ...# 6 #=F5 ...#GAP 767-0? 4 #=MS ...) 5 #=WH ...#SKI G4 6 #?5= ...#GAP 127-0? 4 #??_ ...# 4 #?JW #END 6 ____ ...455223630001