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