Home » CEEFAX disks » telesoftware14.adl » 18-03-89/Header

18-03-89/Header

This website contains an archive of files for the Acorn Electron, BBC Micro, Acorn Archimedes, Commodore 16 and Commodore 64 computers, which Dominic Ford has rescued from his private collection of floppy disks and cassettes.

Some of these files were originally commercial releases in the 1980s and 1990s, but they are now widely available online. I assume that copyright over them is no longer being asserted. If you own the copyright and would like files to be removed, please contact me.

Tape/disk: Home » CEEFAX disks » telesoftware14.adl
Filename: 18-03-89/Header
Read OK:
File size: 1B65 bytes
Load address: FFFF1900
Exec address: FFFF8023
File contents
   10REM> HEADER
   20MODE7
   30VDU14
   40DIM mcode &300 :REM: space for machine code
   50DIM buffer &3300 :REM: buffer for 300 headers
   60PROCmcode :REM: assemble machine code
   70INPUT"TV channel (1-4) = "answer$
   80channel?0=EVAL("&"+LEFT$(answer$,1))+&1B :REM: TTX enable, Int enable, AFC
   90IF channel?0 < &1C THEN channel?0 = &1C
  100IF channel?0 > &1F THEN channel?0 = &1F
  110PRINT"Reading TTX - Please wait"
  120CALL mcode :REM: read 300 headers and store in buffer
  130control$=STRING$(60," ")
  140end=buffer+(300*41) :REM: end of buffer
  150FOR head = buffer TO end STEP 41
  160control$=""
  170PRINT;~head?0;~head?2;~head?1;:REM: magazine and page numbers
  180PRINT;~(head?6)AND3;~head?5;~(head?4)AND7;~head?3;:REM: sub-page number
  190erase=((head?4)AND8)<>0 :REM: erase page
  200news=((head?6)AND4)<>0 :REM: news flash
  210subtitle=((head?6)AND8)<>0 :REM: subtitle
  220suppress=((head?7)AND1)<>0 :REM: suppress header
  230update=((head?7)AND2)<>0 :REM: update indicator
  240outofseq=((head?7)AND4)<>0 :REM: out of sequence
  250inhibit=((head?7)AND8)<>0 :REM: inhibit display
  260serial=((head?8)AND1)<>0 :REM: serial magazine
  270IF erase control$=control$+" Erase,"
  280IF news control$=control$+" News,"
  290IF subtitle control$=control$+" Sub-T,"
  300IF suppress control$=control$+" Supp,"
  310IF update control$=control$+" Update,"
  320IF outofseq control$=control$+" Out-Seq,"
  330IF inhibit control$=control$+" Inhibit,"
  340IF serial control$=control$+" Serial" ELSE control$=control$+" Para."
  350PRINT control$ :REM: explain the control bits
  360FOR byte=9 TO 40
  370VDU ((head?byte) OR &80):REM: display header
  380NEXT
  390PRINT
  400NEXT
  410VDU15
  420END
  430DEFPROCmcode
  440grabflag=&70 :REM: header grab flag
  450channel=&71 :REM: TV channel
  460workspace=&72 :REM: 2 byte workspace
  470magazine=&74 :REM: magazine number
  480packet=&75 :REM: packet number
  490irq2v=&206 :REM: IRQ2 vector
  500ttxcontrol=&FC10 :REM: TTX control register, write only
  510ttxstatus=&FC10 :REM: TTX status register, read only
  520rowreg=&FC11 :REM: TTX row register, write only
  530datareg=&FC12 :REM: TTX data register, read & write
  540statclr=&FC13 :REM: TTX clear status register, read & write
  550osbyte=&FFF4
  560FOR pass=0 TO 2 STEP 2
  570P%=mcode
  580[OPT pass
  590LDA #&00
  600STA grabflag \ when grabflag = 0 read and store headers
  610LDX #buffer MOD 256 \ address of the start of the buffer
  620LDY #buffer DIV 256
  630STX workspace \ into zero page for indirect addressing
  640STY workspace+1
  650LDX irq2v \ load secondary interrupt vector
  660LDY irq2v+1
  670STX oldirq2v \ save secondary interrupt vector
  680STY oldirq2v+1
  690LDX #interrupt MOD 256 \ install new interrupt routine
  700LDY #interrupt DIV 256
  710SEI \ disable interrupts when vectors are altered
  720STX irq2v
  730STY irq2v+1
  740CLI \ re-enable interrupts
  750LDA channel \ load (channel number + #&1C)
  760STA ttxcontrol \ enable TTX
  770.mainloop
  780BIT grabflag \ grabflag = &80 when buffer full
  790BMI allover \ branch if buffer full
  800BIT &FF \ poll escape flag
  810BPL mainloop \ loop if escape not pressed
  820LDA #&7E \ decimal 126
  830JSR osbyte \ acknowledge escape
  840.allover
  850LDA #&00
  860STA ttxcontrol \ disable TTX
  870LDX oldirq2v \ load original vector
  880LDY oldirq2v+1
  890SEI \ disable interrupts when vectors are altered
  900STX irq2v \ restore original vector
  910STY irq2v+1
  920CLI \ re-enable interrupts
  930RTS \ return to BASIC
  940.interrupt
  950BIT ttxstatus \ poll TTX hardware
  960BMI ttxinter \ branch if TTX interrupt
  970JMP (oldirq2v) \ not TTX interrupt
  980.ttxinter
  990LDA &FC \ interrupt accumulator save register
 1000PHA \ push interrupt accumulator save register
 1010TXA
 1020PHA \ push X
 1030TYA
 1040PHA \ push Y
 1050BIT grabflag \ are headers still being collected?
 1060BMI clearstatus \ clear status and RTI if finished
 1070CLD \ clear decimal flag
 1080LDY #&00 \ start with row 0
 1090.readttxt
 1100STY rowreg \ try rows 0 to 15
 1110LDA datareg \ load framing code (#&27)
 1120BEQ emptyrow \ if zero try next row
 1130TYA
 1140PHA \ save row number
 1150JSR readpacket \ look for headers and load if found
 1160PLA
 1170TAY \ restore row number
 1180.emptyrow
 1190INY \ increment row number
 1200CPY #&10 \ try rows 0 - 15
 1210BNE readttxt
 1220.clearstatus
 1230LDA #&00
 1240LDY #&0F \ clear 16 rows in adaptor
 1250.clearloop
 1260STY rowreg
 1270STA datareg
 1280DEY
 1290BPL clearloop
 1300STA statclr \ clear status flags before returning
 1310PLA
 1320TAY \ restore Y
 1330PLA
 1340TAX \ restore X
 1350PLA
 1360STA &FC \ restore interrupt accumulator save register
 1370RTI \ return from interrupt
 1380.readpacket
 1390LDY datareg \ read magazine number
 1400LDA hamtable,Y \ de-ham it
 1410BMI return \ stop loading if error
 1420STA magazine \ save magazine number
 1430LDY datareg \ read packet number
 1440LDA hamtable,Y \ de-ham it
 1450BMI return \ stop loading if error
 1460STA packet \ save packet number
 1470LDA magazine \ load magazine number
 1480CMP #&08 \ bit 3 of mag. number is bit 0 of packet number
 1490ROL packet \ 5 bit packet number
 1500AND #&07 \ use only bits 0-2
 1510LDY #&00
 1520STA (workspace),Y \ store magazine number
 1530LDA packet \ header packet number is zero
 1540BNE return \ return if not header
 1550.readheader
 1560INY \ Y = 1-40
 1570LDX datareg \ read data register
 1580LDA hamtable,X \ de-ham it
 1590BMI return \ stop loading if error
 1600STA (workspace),Y \ store de-hammed data
 1610CPY #&08 \ use Y = 1-8 for 8 bytes of hammed data
 1620BCC readheader \ continue reading hammed data
 1630.readmore
 1640INY
 1650LDA datareg \ read data register, not hammed
 1660ORA #&80 \ set bit 7
 1670STA (workspace),Y \ store in buffer
 1680CPY #&28 \ decimal 40
 1690BNE readmore \ go back for more
 1700CLC \ clear carry for addition
 1710LDA workspace
 1720ADC #&29 \ add 41 to point to next part of the buffer
 1730STA workspace
 1740LDA workspace+1
 1750ADC #&00
 1760STA workspace+1
 1770CMP #(buffer+&3300) DIV 256 \ is there room for more data?
 1780BCC return \ branch if there is more room
 1790LDA #&80
 1800STA grabflag \ mark buffer as full
 1810.return
 1820RTS \ return to look at next TTX row
 1830.oldirq2v
 1840EQUW &00
 1850.hamtable
 1860EQUD &0101FF01 
 1870EQUD &FF0100FF 
 1880EQUD &FF0102FF 
 1890EQUD &07FFFF0A
 1900EQUD &FF0100FF 
 1910EQUD &00FF0000 
 1920EQUD &0BFFFF06 
 1930EQUD &FF0300FF
 1940EQUD &FF010CFF 
 1950EQUD &07FFFF04 
 1960EQUD &07FFFF06 
 1970EQUD &070707FF
 1980EQUD &05FFFF06 
 1990EQUD &FF0D00FF 
 2000EQUD &FF060606 
 2010EQUD &07FFFF06
 2020EQUD &FF0102FF 
 2030EQUD &09FFFF04 
 2040EQUD &02FF0202 
 2050EQUD &FF0302FF
 2060EQUD &05FFFF08 
 2070EQUD &FF0300FF 
 2080EQUD &FF0302FF 
 2090EQUD &0303FF03
 2100EQUD &05FFFF04 
 2110EQUD &FF040404 
 2120EQUD &FF0F02FF 
 2130EQUD &07FFFF04
 2140EQUD &050505FF 
 2150EQUD &05FFFF04 
 2160EQUD &05FFFF06 
 2170EQUD &FF030EFF
 2180EQUD &FF010CFF 
 2190EQUD &09FFFF0A 
 2200EQUD &0BFFFF0A 
 2210EQUD &FF0A0A0A
 2220EQUD &0BFFFF08 
 2230EQUD &FF0D00FF 
 2240EQUD &0B0B0BFF 
 2250EQUD &0BFFFF0A
 2260EQUD &0CFF0C0C 
 2270EQUD &FF0D0CFF 
 2280EQUD &FF0F0CFF 
 2290EQUD &07FFFF0A
 2300EQUD &FF0D0CFF 
 2310EQUD &0D0DFF0D 
 2320EQUD &0BFFFF06 
 2330EQUD &FF0D0EFF
 2340EQUD &09FFFF08 
 2350EQUD &090909FF 
 2360EQUD &FF0F02FF 
 2370EQUD &09FFFF0A
 2380EQUD &FF080808 
 2390EQUD &09FFFF08 
 2400EQUD &0BFFFF08 
 2410EQUD &FF030EFF
 2420EQUD &FF0F0CFF 
 2430EQUD &09FFFF04 
 2440EQUD &0F0FFF0F 
 2450EQUD &FF0F0EFF
 2460EQUD &05FFFF08 
 2470EQUD &FF0D0EFF 
 2480EQUD &FF0F0EFF 
 2490EQUD &0EFF0E0E
 2500]
 2510NEXT
 2520ENDPROC


�> HEADER
�7
�14
(+� mcode &300 :�: space for machine code
2-� buffer &3300 :�: buffer for 300 headers
<$�mcode :�: assemble machine code
F!�"TV channel (1-4) = "answer$
PDchannel?0=�("&"+�answer$,1))+&1B :�: TTX enable, Int enable, AFC
Z'� channel?0 < &1C � channel?0 = &1C
d'� channel?0 > &1F � channel?0 = &1F
n �"Reading TTX - Please wait"
x4� mcode :�: read 300 headers and store in buffer
�control$=�60," ")
�)end=buffer+(300*41) :�: end of buffer
�� head = buffer � end � 41
�control$=""
�;�;~head?0;~head?2;~head?1;:�: magazine and page numbers
�A�;~(head?6)�3;~head?5;~(head?4)�7;~head?3;:�: sub-page number
�(erase=((head?4)�8)<>0 :�: erase page
�'news=((head?6)�4)<>0 :�: news flash
�)subtitle=((head?6)�8)<>0 :�: subtitle
�0suppress=((head?7)�1)<>0 :�: suppress header
�/update=((head?7)�2)<>0 :�: update indicator
�0outofseq=((head?7)�4)<>0 :�: out of sequence
�/inhibit=((head?7)�8)<>0 :�: inhibit display
.serial=((head?8)�1)<>0 :�: serial magazine
'� erase control$=control$+" Erase,"
%� news control$=control$+" News,"
"*� subtitle control$=control$+" Sub-T,"
,)� suppress control$=control$+" Supp,"
6)� update control$=control$+" Update,"
@,� outofseq control$=control$+" Out-Seq,"
J+� inhibit control$=control$+" Inhibit,"
TE� serial control$=control$+" Serial" � control$=control$+" Para."
^+� control$ :�: explain the control bits
h� byte=9 � 40
r+� ((head?byte) � &80):�: display header
|�
��
��
��15
��
���mcode
�%grabflag=&70 :�: header grab flag
�channel=&71 :�: TV channel
�&workspace=&72 :�: 2 byte workspace
�$magazine=&74 :�: magazine number
� packet=&75 :�: packet number
�irq2v=&206 :�: IRQ2 vector
�9ttxcontrol=&FC10 :�: TTX control register, write only
�6ttxstatus=&FC10 :�: TTX status register, read only
1rowreg=&FC11 :�: TTX row register, write only
5datareg=&FC12 :�: TTX data register, read & write
=statclr=&FC13 :�: TTX clear status register, read & write
&osbyte=&FFF4
0� pass=0 � 2 � 2
:P%=mcode
D
[OPT pass
NLDA #&00
X;STA grabflag \ when grabflag = 0 read and store headers
b:LDX #buffer � 256 \ address of the start of the buffer
lLDY #buffer � 256
v:STX workspace \ into zero page for indirect addressing
�STY workspace+1
�/LDX irq2v \ load secondary interrupt vector
�LDY irq2v+1
�2STX oldirq2v \ save secondary interrupt vector
�STY oldirq2v+1
�8LDX #interrupt � 256 \ install new interrupt routine
�LDY #interrupt � 256
�5SEI \ disable interrupts when vectors are altered
�
STX irq2v
�STY irq2v+1
�CLI \ re-enable interrupts
�.LDA channel \ load (channel number + #&1C)
�STA ttxcontrol \ enable TTX

.mainloop
2BIT grabflag \ grabflag = &80 when buffer full
'BMI allover \ branch if buffer full
 BIT &FF \ poll escape flag
*-BPL mainloop \ loop if escape not pressed
4LDA #&7E \ decimal 126
>#JSR osbyte \ acknowledge escape
H.allover
RLDA #&00
\ STA ttxcontrol \ disable TTX
f'LDX oldirq2v \ load original vector
pLDY oldirq2v+1
z5SEI \ disable interrupts when vectors are altered
�'STX irq2v \ restore original vector
�STY irq2v+1
�CLI \ re-enable interrupts
�RTS \ return to BASIC
�.interrupt
�%BIT ttxstatus \ poll TTX hardware
�*BMI ttxinter \ branch if TTX interrupt
�&JMP (oldirq2v) \ not TTX interrupt
�
.ttxinter
�1LDA &FC \ interrupt accumulator save register
�2PHA \ push interrupt accumulator save register
�TXA
�PHA \ push X
TYA
PHA \ push Y
5BIT grabflag \ are headers still being collected?
$6BMI clearstatus \ clear status and RTI if finished
.CLD \ clear decimal flag
8LDY #&00 \ start with row 0
B
.readttxt
L!STY rowreg \ try rows 0 to 15
V*LDA datareg \ load framing code (#&27)
`'BEQ emptyrow \ if zero try next row
jTYA
tPHA \ save row number
~7JSR readpacket \ look for headers and load if found
�PLA
�TAY \ restore row number
�
.emptyrow
�INY \ increment row number
�CPY #&10 \ try rows 0 - 15
�BNE readttxt
�.clearstatus
�LDA #&00
�'LDY #&0F \ clear 16 rows in adaptor
�.clearloop
�STY rowreg
�STA datareg
DEY

BPL clearloop
5STA statclr \ clear status flags before returning
PLA
(TAY \ restore Y
2PLA
<TAX \ restore X
FPLA
P9STA &FC \ restore interrupt accumulator save register
ZRTI \ return from interrupt
d.readpacket
n&LDY datareg \ read magazine number
xLDA hamtable,Y \ de-ham it
�&BMI return \ stop loading if error
�'STA magazine \ save magazine number
�$LDY datareg \ read packet number
�LDA hamtable,Y \ de-ham it
�&BMI return \ stop loading if error
�#STA packet \ save packet number
�'LDA magazine \ load magazine number
�=CMP #&08 \ bit 3 of mag. number is bit 0 of packet number
�$ROL packet \ 5 bit packet number
�� #&07 \ use only bits 0-2
�LDY #&00
�-STA (workspace),Y \ store magazine number
�-LDA packet \ header packet number is zero
%BNE return \ return if not header
.readheader
INY \ Y = 1-40
"$LDX datareg \ read data register
,LDA hamtable,X \ de-ham it
6&BMI return \ stop loading if error
@,STA (workspace),Y \ store de-hammed data
J5CPY #&08 \ use Y = 1-8 for 8 bytes of hammed data
T1BCC readheader \ continue reading hammed data
^
.readmore
hINY
r0LDA datareg \ read data register, not hammed
|�A #&80 \ set bit 7
�'STA (workspace),Y \ store in buffer
�CPY #&28 \ decimal 40
�#BNE readmore \ go back for more
�"CLC \ clear carry for addition
�LDA workspace
�9ADC #&29 \ add 41 to point to next part of the buffer
�STA workspace
�LDA workspace+1
�ADC #&00
�STA workspace+1
�<CMP #(buffer+&3300) � 256 \ is there room for more data?
�-BCC return \ branch if there is more room
�LDA #&80
&STA grabflag \ mark buffer as full
.return
(RTS \ return to look at next TTX row
&
.oldirq2v
0EQUW &00
:
.hamtable
DEQUD &0101FF01 
NEQUD &FF0100FF 
XEQUD &FF0102FF 
bEQUD &07FFFF0A
lEQUD &FF0100FF 
vEQUD &00FF0000 
�EQUD &0BFFFF06 
�EQUD &FF0300FF
�EQUD &FF010CFF 
�EQUD &07FFFF04 
�EQUD &07FFFF06 
�EQUD &070707FF
�EQUD &05FFFF06 
�EQUD &FF0D00FF 
�EQUD &FF060606 
�EQUD &07FFFF06
�EQUD &FF0102FF 
�EQUD &09FFFF04 
�EQUD &02FF0202 
EQUD &FF0302FF
EQUD &05FFFF08 
EQUD &FF0300FF 
 EQUD &FF0302FF 
*EQUD &0303FF03
4EQUD &05FFFF04 
>EQUD &FF040404 
HEQUD &FF0F02FF 
REQUD &07FFFF04
\EQUD &050505FF 
fEQUD &05FFFF04 
pEQUD &05FFFF06 
zEQUD &FF030EFF
�EQUD &FF010CFF 
�EQUD &09FFFF0A 
�EQUD &0BFFFF0A 
�EQUD &FF0A0A0A
�EQUD &0BFFFF08 
�EQUD &FF0D00FF 
�EQUD &0B0B0BFF 
�EQUD &0BFFFF0A
�EQUD &0CFF0C0C 
�EQUD &FF0D0CFF 
�EQUD &FF0F0CFF 
�EQUD &07FFFF0A
�EQUD &FF0D0CFF 
	EQUD &0D0DFF0D 
	EQUD &0BFFFF06 
	EQUD &FF0D0EFF
	$EQUD &09FFFF08 
	.EQUD &090909FF 
	8EQUD &FF0F02FF 
	BEQUD &09FFFF0A
	LEQUD &FF080808 
	VEQUD &09FFFF08 
	`EQUD &0BFFFF08 
	jEQUD &FF030EFF
	tEQUD &FF0F0CFF 
	~EQUD &09FFFF04 
	�EQUD &0F0FFF0F 
	�EQUD &FF0F0EFF
	�EQUD &05FFFF08 
	�EQUD &FF0D0EFF 
	�EQUD &FF0F0EFF 
	�EQUD &0EFF0E0E
	�]
	��
	��
�
00000000  0d 00 0a 0d f4 3e 20 48  45 41 44 45 52 0d 00 14  |.....> HEADER...|
00000010  06 eb 37 0d 00 1e 07 ef  31 34 0d 00 28 2b de 20  |..7.....14..(+. |
00000020  6d 63 6f 64 65 20 26 33  30 30 20 3a f4 3a 20 73  |mcode &300 :.: s|
00000030  70 61 63 65 20 66 6f 72  20 6d 61 63 68 69 6e 65  |pace for machine|
00000040  20 63 6f 64 65 0d 00 32  2d de 20 62 75 66 66 65  | code..2-. buffe|
00000050  72 20 26 33 33 30 30 20  3a f4 3a 20 62 75 66 66  |r &3300 :.: buff|
00000060  65 72 20 66 6f 72 20 33  30 30 20 68 65 61 64 65  |er for 300 heade|
00000070  72 73 0d 00 3c 24 f2 6d  63 6f 64 65 20 3a f4 3a  |rs..<$.mcode :.:|
00000080  20 61 73 73 65 6d 62 6c  65 20 6d 61 63 68 69 6e  | assemble machin|
00000090  65 20 63 6f 64 65 0d 00  46 21 e8 22 54 56 20 63  |e code..F!."TV c|
000000a0  68 61 6e 6e 65 6c 20 28  31 2d 34 29 20 3d 20 22  |hannel (1-4) = "|
000000b0  61 6e 73 77 65 72 24 0d  00 50 44 63 68 61 6e 6e  |answer$..PDchann|
000000c0  65 6c 3f 30 3d a0 28 22  26 22 2b c0 61 6e 73 77  |el?0=.("&"+.answ|
000000d0  65 72 24 2c 31 29 29 2b  26 31 42 20 3a f4 3a 20  |er$,1))+&1B :.: |
000000e0  54 54 58 20 65 6e 61 62  6c 65 2c 20 49 6e 74 20  |TTX enable, Int |
000000f0  65 6e 61 62 6c 65 2c 20  41 46 43 0d 00 5a 27 e7  |enable, AFC..Z'.|
00000100  20 63 68 61 6e 6e 65 6c  3f 30 20 3c 20 26 31 43  | channel?0 < &1C|
00000110  20 8c 20 63 68 61 6e 6e  65 6c 3f 30 20 3d 20 26  | . channel?0 = &|
00000120  31 43 0d 00 64 27 e7 20  63 68 61 6e 6e 65 6c 3f  |1C..d'. channel?|
00000130  30 20 3e 20 26 31 46 20  8c 20 63 68 61 6e 6e 65  |0 > &1F . channe|
00000140  6c 3f 30 20 3d 20 26 31  46 0d 00 6e 20 f1 22 52  |l?0 = &1F..n ."R|
00000150  65 61 64 69 6e 67 20 54  54 58 20 2d 20 50 6c 65  |eading TTX - Ple|
00000160  61 73 65 20 77 61 69 74  22 0d 00 78 34 d6 20 6d  |ase wait"..x4. m|
00000170  63 6f 64 65 20 3a f4 3a  20 72 65 61 64 20 33 30  |code :.: read 30|
00000180  30 20 68 65 61 64 65 72  73 20 61 6e 64 20 73 74  |0 headers and st|
00000190  6f 72 65 20 69 6e 20 62  75 66 66 65 72 0d 00 82  |ore in buffer...|
000001a0  15 63 6f 6e 74 72 6f 6c  24 3d c4 36 30 2c 22 20  |.control$=.60," |
000001b0  22 29 0d 00 8c 29 65 6e  64 3d 62 75 66 66 65 72  |")...)end=buffer|
000001c0  2b 28 33 30 30 2a 34 31  29 20 3a f4 3a 20 65 6e  |+(300*41) :.: en|
000001d0  64 20 6f 66 20 62 75 66  66 65 72 0d 00 96 1e e3  |d of buffer.....|
000001e0  20 68 65 61 64 20 3d 20  62 75 66 66 65 72 20 b8  | head = buffer .|
000001f0  20 65 6e 64 20 88 20 34  31 0d 00 a0 0f 63 6f 6e  | end . 41....con|
00000200  74 72 6f 6c 24 3d 22 22  0d 00 aa 3b f1 3b 7e 68  |trol$=""...;.;~h|
00000210  65 61 64 3f 30 3b 7e 68  65 61 64 3f 32 3b 7e 68  |ead?0;~head?2;~h|
00000220  65 61 64 3f 31 3b 3a f4  3a 20 6d 61 67 61 7a 69  |ead?1;:.: magazi|
00000230  6e 65 20 61 6e 64 20 70  61 67 65 20 6e 75 6d 62  |ne and page numb|
00000240  65 72 73 0d 00 b4 41 f1  3b 7e 28 68 65 61 64 3f  |ers...A.;~(head?|
00000250  36 29 80 33 3b 7e 68 65  61 64 3f 35 3b 7e 28 68  |6).3;~head?5;~(h|
00000260  65 61 64 3f 34 29 80 37  3b 7e 68 65 61 64 3f 33  |ead?4).7;~head?3|
00000270  3b 3a f4 3a 20 73 75 62  2d 70 61 67 65 20 6e 75  |;:.: sub-page nu|
00000280  6d 62 65 72 0d 00 be 28  65 72 61 73 65 3d 28 28  |mber...(erase=((|
00000290  68 65 61 64 3f 34 29 80  38 29 3c 3e 30 20 3a f4  |head?4).8)<>0 :.|
000002a0  3a 20 65 72 61 73 65 20  70 61 67 65 0d 00 c8 27  |: erase page...'|
000002b0  6e 65 77 73 3d 28 28 68  65 61 64 3f 36 29 80 34  |news=((head?6).4|
000002c0  29 3c 3e 30 20 3a f4 3a  20 6e 65 77 73 20 66 6c  |)<>0 :.: news fl|
000002d0  61 73 68 0d 00 d2 29 73  75 62 74 69 74 6c 65 3d  |ash...)subtitle=|
000002e0  28 28 68 65 61 64 3f 36  29 80 38 29 3c 3e 30 20  |((head?6).8)<>0 |
000002f0  3a f4 3a 20 73 75 62 74  69 74 6c 65 0d 00 dc 30  |:.: subtitle...0|
00000300  73 75 70 70 72 65 73 73  3d 28 28 68 65 61 64 3f  |suppress=((head?|
00000310  37 29 80 31 29 3c 3e 30  20 3a f4 3a 20 73 75 70  |7).1)<>0 :.: sup|
00000320  70 72 65 73 73 20 68 65  61 64 65 72 0d 00 e6 2f  |press header.../|
00000330  75 70 64 61 74 65 3d 28  28 68 65 61 64 3f 37 29  |update=((head?7)|
00000340  80 32 29 3c 3e 30 20 3a  f4 3a 20 75 70 64 61 74  |.2)<>0 :.: updat|
00000350  65 20 69 6e 64 69 63 61  74 6f 72 0d 00 f0 30 6f  |e indicator...0o|
00000360  75 74 6f 66 73 65 71 3d  28 28 68 65 61 64 3f 37  |utofseq=((head?7|
00000370  29 80 34 29 3c 3e 30 20  3a f4 3a 20 6f 75 74 20  |).4)<>0 :.: out |
00000380  6f 66 20 73 65 71 75 65  6e 63 65 0d 00 fa 2f 69  |of sequence.../i|
00000390  6e 68 69 62 69 74 3d 28  28 68 65 61 64 3f 37 29  |nhibit=((head?7)|
000003a0  80 38 29 3c 3e 30 20 3a  f4 3a 20 69 6e 68 69 62  |.8)<>0 :.: inhib|
000003b0  69 74 20 64 69 73 70 6c  61 79 0d 01 04 2e 73 65  |it display....se|
000003c0  72 69 61 6c 3d 28 28 68  65 61 64 3f 38 29 80 31  |rial=((head?8).1|
000003d0  29 3c 3e 30 20 3a f4 3a  20 73 65 72 69 61 6c 20  |)<>0 :.: serial |
000003e0  6d 61 67 61 7a 69 6e 65  0d 01 0e 27 e7 20 65 72  |magazine...'. er|
000003f0  61 73 65 20 63 6f 6e 74  72 6f 6c 24 3d 63 6f 6e  |ase control$=con|
00000400  74 72 6f 6c 24 2b 22 20  45 72 61 73 65 2c 22 0d  |trol$+" Erase,".|
00000410  01 18 25 e7 20 6e 65 77  73 20 63 6f 6e 74 72 6f  |..%. news contro|
00000420  6c 24 3d 63 6f 6e 74 72  6f 6c 24 2b 22 20 4e 65  |l$=control$+" Ne|
00000430  77 73 2c 22 0d 01 22 2a  e7 20 73 75 62 74 69 74  |ws,".."*. subtit|
00000440  6c 65 20 63 6f 6e 74 72  6f 6c 24 3d 63 6f 6e 74  |le control$=cont|
00000450  72 6f 6c 24 2b 22 20 53  75 62 2d 54 2c 22 0d 01  |rol$+" Sub-T,"..|
00000460  2c 29 e7 20 73 75 70 70  72 65 73 73 20 63 6f 6e  |,). suppress con|
00000470  74 72 6f 6c 24 3d 63 6f  6e 74 72 6f 6c 24 2b 22  |trol$=control$+"|
00000480  20 53 75 70 70 2c 22 0d  01 36 29 e7 20 75 70 64  | Supp,"..6). upd|
00000490  61 74 65 20 63 6f 6e 74  72 6f 6c 24 3d 63 6f 6e  |ate control$=con|
000004a0  74 72 6f 6c 24 2b 22 20  55 70 64 61 74 65 2c 22  |trol$+" Update,"|
000004b0  0d 01 40 2c e7 20 6f 75  74 6f 66 73 65 71 20 63  |..@,. outofseq c|
000004c0  6f 6e 74 72 6f 6c 24 3d  63 6f 6e 74 72 6f 6c 24  |ontrol$=control$|
000004d0  2b 22 20 4f 75 74 2d 53  65 71 2c 22 0d 01 4a 2b  |+" Out-Seq,"..J+|
000004e0  e7 20 69 6e 68 69 62 69  74 20 63 6f 6e 74 72 6f  |. inhibit contro|
000004f0  6c 24 3d 63 6f 6e 74 72  6f 6c 24 2b 22 20 49 6e  |l$=control$+" In|
00000500  68 69 62 69 74 2c 22 0d  01 54 45 e7 20 73 65 72  |hibit,"..TE. ser|
00000510  69 61 6c 20 63 6f 6e 74  72 6f 6c 24 3d 63 6f 6e  |ial control$=con|
00000520  74 72 6f 6c 24 2b 22 20  53 65 72 69 61 6c 22 20  |trol$+" Serial" |
00000530  8b 20 63 6f 6e 74 72 6f  6c 24 3d 63 6f 6e 74 72  |. control$=contr|
00000540  6f 6c 24 2b 22 20 50 61  72 61 2e 22 0d 01 5e 2b  |ol$+" Para."..^+|
00000550  f1 20 63 6f 6e 74 72 6f  6c 24 20 3a f4 3a 20 65  |. control$ :.: e|
00000560  78 70 6c 61 69 6e 20 74  68 65 20 63 6f 6e 74 72  |xplain the contr|
00000570  6f 6c 20 62 69 74 73 0d  01 68 11 e3 20 62 79 74  |ol bits..h.. byt|
00000580  65 3d 39 20 b8 20 34 30  0d 01 72 2b ef 20 28 28  |e=9 . 40..r+. ((|
00000590  68 65 61 64 3f 62 79 74  65 29 20 84 20 26 38 30  |head?byte) . &80|
000005a0  29 3a f4 3a 20 64 69 73  70 6c 61 79 20 68 65 61  |):.: display hea|
000005b0  64 65 72 0d 01 7c 05 ed  0d 01 86 05 f1 0d 01 90  |der..|..........|
000005c0  05 ed 0d 01 9a 07 ef 31  35 0d 01 a4 05 e0 0d 01  |.......15.......|
000005d0  ae 0b dd f2 6d 63 6f 64  65 0d 01 b8 25 67 72 61  |....mcode...%gra|
000005e0  62 66 6c 61 67 3d 26 37  30 20 3a f4 3a 20 68 65  |bflag=&70 :.: he|
000005f0  61 64 65 72 20 67 72 61  62 20 66 6c 61 67 0d 01  |ader grab flag..|
00000600  c2 1e 63 68 61 6e 6e 65  6c 3d 26 37 31 20 3a f4  |..channel=&71 :.|
00000610  3a 20 54 56 20 63 68 61  6e 6e 65 6c 0d 01 cc 26  |: TV channel...&|
00000620  77 6f 72 6b 73 70 61 63  65 3d 26 37 32 20 3a f4  |workspace=&72 :.|
00000630  3a 20 32 20 62 79 74 65  20 77 6f 72 6b 73 70 61  |: 2 byte workspa|
00000640  63 65 0d 01 d6 24 6d 61  67 61 7a 69 6e 65 3d 26  |ce...$magazine=&|
00000650  37 34 20 3a f4 3a 20 6d  61 67 61 7a 69 6e 65 20  |74 :.: magazine |
00000660  6e 75 6d 62 65 72 0d 01  e0 20 70 61 63 6b 65 74  |number... packet|
00000670  3d 26 37 35 20 3a f4 3a  20 70 61 63 6b 65 74 20  |=&75 :.: packet |
00000680  6e 75 6d 62 65 72 0d 01  ea 1e 69 72 71 32 76 3d  |number....irq2v=|
00000690  26 32 30 36 20 3a f4 3a  20 49 52 51 32 20 76 65  |&206 :.: IRQ2 ve|
000006a0  63 74 6f 72 0d 01 f4 39  74 74 78 63 6f 6e 74 72  |ctor...9ttxcontr|
000006b0  6f 6c 3d 26 46 43 31 30  20 3a f4 3a 20 54 54 58  |ol=&FC10 :.: TTX|
000006c0  20 63 6f 6e 74 72 6f 6c  20 72 65 67 69 73 74 65  | control registe|
000006d0  72 2c 20 77 72 69 74 65  20 6f 6e 6c 79 0d 01 fe  |r, write only...|
000006e0  36 74 74 78 73 74 61 74  75 73 3d 26 46 43 31 30  |6ttxstatus=&FC10|
000006f0  20 3a f4 3a 20 54 54 58  20 73 74 61 74 75 73 20  | :.: TTX status |
00000700  72 65 67 69 73 74 65 72  2c 20 72 65 61 64 20 6f  |register, read o|
00000710  6e 6c 79 0d 02 08 31 72  6f 77 72 65 67 3d 26 46  |nly...1rowreg=&F|
00000720  43 31 31 20 3a f4 3a 20  54 54 58 20 72 6f 77 20  |C11 :.: TTX row |
00000730  72 65 67 69 73 74 65 72  2c 20 77 72 69 74 65 20  |register, write |
00000740  6f 6e 6c 79 0d 02 12 35  64 61 74 61 72 65 67 3d  |only...5datareg=|
00000750  26 46 43 31 32 20 3a f4  3a 20 54 54 58 20 64 61  |&FC12 :.: TTX da|
00000760  74 61 20 72 65 67 69 73  74 65 72 2c 20 72 65 61  |ta register, rea|
00000770  64 20 26 20 77 72 69 74  65 0d 02 1c 3d 73 74 61  |d & write...=sta|
00000780  74 63 6c 72 3d 26 46 43  31 33 20 3a f4 3a 20 54  |tclr=&FC13 :.: T|
00000790  54 58 20 63 6c 65 61 72  20 73 74 61 74 75 73 20  |TX clear status |
000007a0  72 65 67 69 73 74 65 72  2c 20 72 65 61 64 20 26  |register, read &|
000007b0  20 77 72 69 74 65 0d 02  26 10 6f 73 62 79 74 65  | write..&.osbyte|
000007c0  3d 26 46 46 46 34 0d 02  30 14 e3 20 70 61 73 73  |=&FFF4..0.. pass|
000007d0  3d 30 20 b8 20 32 20 88  20 32 0d 02 3a 0c 50 25  |=0 . 2 . 2..:.P%|
000007e0  3d 6d 63 6f 64 65 0d 02  44 0d 5b 4f 50 54 20 70  |=mcode..D.[OPT p|
000007f0  61 73 73 0d 02 4e 0c 4c  44 41 20 23 26 30 30 0d  |ass..N.LDA #&00.|
00000800  02 58 3b 53 54 41 20 67  72 61 62 66 6c 61 67 20  |.X;STA grabflag |
00000810  5c 20 77 68 65 6e 20 67  72 61 62 66 6c 61 67 20  |\ when grabflag |
00000820  3d 20 30 20 72 65 61 64  20 61 6e 64 20 73 74 6f  |= 0 read and sto|
00000830  72 65 20 68 65 61 64 65  72 73 0d 02 62 3a 4c 44  |re headers..b:LD|
00000840  58 20 23 62 75 66 66 65  72 20 83 20 32 35 36 20  |X #buffer . 256 |
00000850  5c 20 61 64 64 72 65 73  73 20 6f 66 20 74 68 65  |\ address of the|
00000860  20 73 74 61 72 74 20 6f  66 20 74 68 65 20 62 75  | start of the bu|
00000870  66 66 65 72 0d 02 6c 15  4c 44 59 20 23 62 75 66  |ffer..l.LDY #buf|
00000880  66 65 72 20 81 20 32 35  36 0d 02 76 3a 53 54 58  |fer . 256..v:STX|
00000890  20 77 6f 72 6b 73 70 61  63 65 20 5c 20 69 6e 74  | workspace \ int|
000008a0  6f 20 7a 65 72 6f 20 70  61 67 65 20 66 6f 72 20  |o zero page for |
000008b0  69 6e 64 69 72 65 63 74  20 61 64 64 72 65 73 73  |indirect address|
000008c0  69 6e 67 0d 02 80 13 53  54 59 20 77 6f 72 6b 73  |ing....STY works|
000008d0  70 61 63 65 2b 31 0d 02  8a 2f 4c 44 58 20 69 72  |pace+1.../LDX ir|
000008e0  71 32 76 20 5c 20 6c 6f  61 64 20 73 65 63 6f 6e  |q2v \ load secon|
000008f0  64 61 72 79 20 69 6e 74  65 72 72 75 70 74 20 76  |dary interrupt v|
00000900  65 63 74 6f 72 0d 02 94  0f 4c 44 59 20 69 72 71  |ector....LDY irq|
00000910  32 76 2b 31 0d 02 9e 32  53 54 58 20 6f 6c 64 69  |2v+1...2STX oldi|
00000920  72 71 32 76 20 5c 20 73  61 76 65 20 73 65 63 6f  |rq2v \ save seco|
00000930  6e 64 61 72 79 20 69 6e  74 65 72 72 75 70 74 20  |ndary interrupt |
00000940  76 65 63 74 6f 72 0d 02  a8 12 53 54 59 20 6f 6c  |vector....STY ol|
00000950  64 69 72 71 32 76 2b 31  0d 02 b2 38 4c 44 58 20  |dirq2v+1...8LDX |
00000960  23 69 6e 74 65 72 72 75  70 74 20 83 20 32 35 36  |#interrupt . 256|
00000970  20 5c 20 69 6e 73 74 61  6c 6c 20 6e 65 77 20 69  | \ install new i|
00000980  6e 74 65 72 72 75 70 74  20 72 6f 75 74 69 6e 65  |nterrupt routine|
00000990  0d 02 bc 18 4c 44 59 20  23 69 6e 74 65 72 72 75  |....LDY #interru|
000009a0  70 74 20 81 20 32 35 36  0d 02 c6 35 53 45 49 20  |pt . 256...5SEI |
000009b0  5c 20 64 69 73 61 62 6c  65 20 69 6e 74 65 72 72  |\ disable interr|
000009c0  75 70 74 73 20 77 68 65  6e 20 76 65 63 74 6f 72  |upts when vector|
000009d0  73 20 61 72 65 20 61 6c  74 65 72 65 64 0d 02 d0  |s are altered...|
000009e0  0d 53 54 58 20 69 72 71  32 76 0d 02 da 0f 53 54  |.STX irq2v....ST|
000009f0  59 20 69 72 71 32 76 2b  31 0d 02 e4 1e 43 4c 49  |Y irq2v+1....CLI|
00000a00  20 5c 20 72 65 2d 65 6e  61 62 6c 65 20 69 6e 74  | \ re-enable int|
00000a10  65 72 72 75 70 74 73 0d  02 ee 2e 4c 44 41 20 63  |errupts....LDA c|
00000a20  68 61 6e 6e 65 6c 20 5c  20 6c 6f 61 64 20 28 63  |hannel \ load (c|
00000a30  68 61 6e 6e 65 6c 20 6e  75 6d 62 65 72 20 2b 20  |hannel number + |
00000a40  23 26 31 43 29 0d 02 f8  1f 53 54 41 20 74 74 78  |#&1C)....STA ttx|
00000a50  63 6f 6e 74 72 6f 6c 20  5c 20 65 6e 61 62 6c 65  |control \ enable|
00000a60  20 54 54 58 0d 03 02 0d  2e 6d 61 69 6e 6c 6f 6f  | TTX.....mainloo|
00000a70  70 0d 03 0c 32 42 49 54  20 67 72 61 62 66 6c 61  |p...2BIT grabfla|
00000a80  67 20 5c 20 67 72 61 62  66 6c 61 67 20 3d 20 26  |g \ grabflag = &|
00000a90  38 30 20 77 68 65 6e 20  62 75 66 66 65 72 20 66  |80 when buffer f|
00000aa0  75 6c 6c 0d 03 16 27 42  4d 49 20 61 6c 6c 6f 76  |ull...'BMI allov|
00000ab0  65 72 20 5c 20 62 72 61  6e 63 68 20 69 66 20 62  |er \ branch if b|
00000ac0  75 66 66 65 72 20 66 75  6c 6c 0d 03 20 1e 42 49  |uffer full.. .BI|
00000ad0  54 20 26 46 46 20 5c 20  70 6f 6c 6c 20 65 73 63  |T &FF \ poll esc|
00000ae0  61 70 65 20 66 6c 61 67  0d 03 2a 2d 42 50 4c 20  |ape flag..*-BPL |
00000af0  6d 61 69 6e 6c 6f 6f 70  20 5c 20 6c 6f 6f 70 20  |mainloop \ loop |
00000b00  69 66 20 65 73 63 61 70  65 20 6e 6f 74 20 70 72  |if escape not pr|
00000b10  65 73 73 65 64 0d 03 34  1a 4c 44 41 20 23 26 37  |essed..4.LDA #&7|
00000b20  45 20 5c 20 64 65 63 69  6d 61 6c 20 31 32 36 0d  |E \ decimal 126.|
00000b30  03 3e 23 4a 53 52 20 6f  73 62 79 74 65 20 5c 20  |.>#JSR osbyte \ |
00000b40  61 63 6b 6e 6f 77 6c 65  64 67 65 20 65 73 63 61  |acknowledge esca|
00000b50  70 65 0d 03 48 0c 2e 61  6c 6c 6f 76 65 72 0d 03  |pe..H..allover..|
00000b60  52 0c 4c 44 41 20 23 26  30 30 0d 03 5c 20 53 54  |R.LDA #&00..\ ST|
00000b70  41 20 74 74 78 63 6f 6e  74 72 6f 6c 20 5c 20 64  |A ttxcontrol \ d|
00000b80  69 73 61 62 6c 65 20 54  54 58 0d 03 66 27 4c 44  |isable TTX..f'LD|
00000b90  58 20 6f 6c 64 69 72 71  32 76 20 5c 20 6c 6f 61  |X oldirq2v \ loa|
00000ba0  64 20 6f 72 69 67 69 6e  61 6c 20 76 65 63 74 6f  |d original vecto|
00000bb0  72 0d 03 70 12 4c 44 59  20 6f 6c 64 69 72 71 32  |r..p.LDY oldirq2|
00000bc0  76 2b 31 0d 03 7a 35 53  45 49 20 5c 20 64 69 73  |v+1..z5SEI \ dis|
00000bd0  61 62 6c 65 20 69 6e 74  65 72 72 75 70 74 73 20  |able interrupts |
00000be0  77 68 65 6e 20 76 65 63  74 6f 72 73 20 61 72 65  |when vectors are|
00000bf0  20 61 6c 74 65 72 65 64  0d 03 84 27 53 54 58 20  | altered...'STX |
00000c00  69 72 71 32 76 20 5c 20  72 65 73 74 6f 72 65 20  |irq2v \ restore |
00000c10  6f 72 69 67 69 6e 61 6c  20 76 65 63 74 6f 72 0d  |original vector.|
00000c20  03 8e 0f 53 54 59 20 69  72 71 32 76 2b 31 0d 03  |...STY irq2v+1..|
00000c30  98 1e 43 4c 49 20 5c 20  72 65 2d 65 6e 61 62 6c  |..CLI \ re-enabl|
00000c40  65 20 69 6e 74 65 72 72  75 70 74 73 0d 03 a2 19  |e interrupts....|
00000c50  52 54 53 20 5c 20 72 65  74 75 72 6e 20 74 6f 20  |RTS \ return to |
00000c60  42 41 53 49 43 0d 03 ac  0e 2e 69 6e 74 65 72 72  |BASIC.....interr|
00000c70  75 70 74 0d 03 b6 25 42  49 54 20 74 74 78 73 74  |upt...%BIT ttxst|
00000c80  61 74 75 73 20 5c 20 70  6f 6c 6c 20 54 54 58 20  |atus \ poll TTX |
00000c90  68 61 72 64 77 61 72 65  0d 03 c0 2a 42 4d 49 20  |hardware...*BMI |
00000ca0  74 74 78 69 6e 74 65 72  20 5c 20 62 72 61 6e 63  |ttxinter \ branc|
00000cb0  68 20 69 66 20 54 54 58  20 69 6e 74 65 72 72 75  |h if TTX interru|
00000cc0  70 74 0d 03 ca 26 4a 4d  50 20 28 6f 6c 64 69 72  |pt...&JMP (oldir|
00000cd0  71 32 76 29 20 5c 20 6e  6f 74 20 54 54 58 20 69  |q2v) \ not TTX i|
00000ce0  6e 74 65 72 72 75 70 74  0d 03 d4 0d 2e 74 74 78  |nterrupt.....ttx|
00000cf0  69 6e 74 65 72 0d 03 de  31 4c 44 41 20 26 46 43  |inter...1LDA &FC|
00000d00  20 5c 20 69 6e 74 65 72  72 75 70 74 20 61 63 63  | \ interrupt acc|
00000d10  75 6d 75 6c 61 74 6f 72  20 73 61 76 65 20 72 65  |umulator save re|
00000d20  67 69 73 74 65 72 0d 03  e8 32 50 48 41 20 5c 20  |gister...2PHA \ |
00000d30  70 75 73 68 20 69 6e 74  65 72 72 75 70 74 20 61  |push interrupt a|
00000d40  63 63 75 6d 75 6c 61 74  6f 72 20 73 61 76 65 20  |ccumulator save |
00000d50  72 65 67 69 73 74 65 72  0d 03 f2 07 54 58 41 0d  |register....TXA.|
00000d60  03 fc 10 50 48 41 20 5c  20 70 75 73 68 20 58 0d  |...PHA \ push X.|
00000d70  04 06 07 54 59 41 0d 04  10 10 50 48 41 20 5c 20  |...TYA....PHA \ |
00000d80  70 75 73 68 20 59 0d 04  1a 35 42 49 54 20 67 72  |push Y...5BIT gr|
00000d90  61 62 66 6c 61 67 20 5c  20 61 72 65 20 68 65 61  |abflag \ are hea|
00000da0  64 65 72 73 20 73 74 69  6c 6c 20 62 65 69 6e 67  |ders still being|
00000db0  20 63 6f 6c 6c 65 63 74  65 64 3f 0d 04 24 36 42  | collected?..$6B|
00000dc0  4d 49 20 63 6c 65 61 72  73 74 61 74 75 73 20 5c  |MI clearstatus \|
00000dd0  20 63 6c 65 61 72 20 73  74 61 74 75 73 20 61 6e  | clear status an|
00000de0  64 20 52 54 49 20 69 66  20 66 69 6e 69 73 68 65  |d RTI if finishe|
00000df0  64 0d 04 2e 1c 43 4c 44  20 5c 20 63 6c 65 61 72  |d....CLD \ clear|
00000e00  20 64 65 63 69 6d 61 6c  20 66 6c 61 67 0d 04 38  | decimal flag..8|
00000e10  1f 4c 44 59 20 23 26 30  30 20 5c 20 73 74 61 72  |.LDY #&00 \ star|
00000e20  74 20 77 69 74 68 20 72  6f 77 20 30 0d 04 42 0d  |t with row 0..B.|
00000e30  2e 72 65 61 64 74 74 78  74 0d 04 4c 21 53 54 59  |.readttxt..L!STY|
00000e40  20 72 6f 77 72 65 67 20  5c 20 74 72 79 20 72 6f  | rowreg \ try ro|
00000e50  77 73 20 30 20 74 6f 20  31 35 0d 04 56 2a 4c 44  |ws 0 to 15..V*LD|
00000e60  41 20 64 61 74 61 72 65  67 20 5c 20 6c 6f 61 64  |A datareg \ load|
00000e70  20 66 72 61 6d 69 6e 67  20 63 6f 64 65 20 28 23  | framing code (#|
00000e80  26 32 37 29 0d 04 60 27  42 45 51 20 65 6d 70 74  |&27)..`'BEQ empt|
00000e90  79 72 6f 77 20 5c 20 69  66 20 7a 65 72 6f 20 74  |yrow \ if zero t|
00000ea0  72 79 20 6e 65 78 74 20  72 6f 77 0d 04 6a 07 54  |ry next row..j.T|
00000eb0  59 41 0d 04 74 19 50 48  41 20 5c 20 73 61 76 65  |YA..t.PHA \ save|
00000ec0  20 72 6f 77 20 6e 75 6d  62 65 72 0d 04 7e 37 4a  | row number..~7J|
00000ed0  53 52 20 72 65 61 64 70  61 63 6b 65 74 20 5c 20  |SR readpacket \ |
00000ee0  6c 6f 6f 6b 20 66 6f 72  20 68 65 61 64 65 72 73  |look for headers|
00000ef0  20 61 6e 64 20 6c 6f 61  64 20 69 66 20 66 6f 75  | and load if fou|
00000f00  6e 64 0d 04 88 07 50 4c  41 0d 04 92 1c 54 41 59  |nd....PLA....TAY|
00000f10  20 5c 20 72 65 73 74 6f  72 65 20 72 6f 77 20 6e  | \ restore row n|
00000f20  75 6d 62 65 72 0d 04 9c  0d 2e 65 6d 70 74 79 72  |umber.....emptyr|
00000f30  6f 77 0d 04 a6 1e 49 4e  59 20 5c 20 69 6e 63 72  |ow....INY \ incr|
00000f40  65 6d 65 6e 74 20 72 6f  77 20 6e 75 6d 62 65 72  |ement row number|
00000f50  0d 04 b0 1e 43 50 59 20  23 26 31 30 20 5c 20 74  |....CPY #&10 \ t|
00000f60  72 79 20 72 6f 77 73 20  30 20 2d 20 31 35 0d 04  |ry rows 0 - 15..|
00000f70  ba 10 42 4e 45 20 72 65  61 64 74 74 78 74 0d 04  |..BNE readttxt..|
00000f80  c4 10 2e 63 6c 65 61 72  73 74 61 74 75 73 0d 04  |...clearstatus..|
00000f90  ce 0c 4c 44 41 20 23 26  30 30 0d 04 d8 27 4c 44  |..LDA #&00...'LD|
00000fa0  59 20 23 26 30 46 20 5c  20 63 6c 65 61 72 20 31  |Y #&0F \ clear 1|
00000fb0  36 20 72 6f 77 73 20 69  6e 20 61 64 61 70 74 6f  |6 rows in adapto|
00000fc0  72 0d 04 e2 0e 2e 63 6c  65 61 72 6c 6f 6f 70 0d  |r.....clearloop.|
00000fd0  04 ec 0e 53 54 59 20 72  6f 77 72 65 67 0d 04 f6  |...STY rowreg...|
00000fe0  0f 53 54 41 20 64 61 74  61 72 65 67 0d 05 00 07  |.STA datareg....|
00000ff0  44 45 59 0d 05 0a 11 42  50 4c 20 63 6c 65 61 72  |DEY....BPL clear|
00001000  6c 6f 6f 70 0d 05 14 35  53 54 41 20 73 74 61 74  |loop...5STA stat|
00001010  63 6c 72 20 5c 20 63 6c  65 61 72 20 73 74 61 74  |clr \ clear stat|
00001020  75 73 20 66 6c 61 67 73  20 62 65 66 6f 72 65 20  |us flags before |
00001030  72 65 74 75 72 6e 69 6e  67 0d 05 1e 07 50 4c 41  |returning....PLA|
00001040  0d 05 28 13 54 41 59 20  5c 20 72 65 73 74 6f 72  |..(.TAY \ restor|
00001050  65 20 59 0d 05 32 07 50  4c 41 0d 05 3c 13 54 41  |e Y..2.PLA..<.TA|
00001060  58 20 5c 20 72 65 73 74  6f 72 65 20 58 0d 05 46  |X \ restore X..F|
00001070  07 50 4c 41 0d 05 50 39  53 54 41 20 26 46 43 20  |.PLA..P9STA &FC |
00001080  5c 20 72 65 73 74 6f 72  65 20 69 6e 74 65 72 72  |\ restore interr|
00001090  75 70 74 20 61 63 63 75  6d 75 6c 61 74 6f 72 20  |upt accumulator |
000010a0  73 61 76 65 20 72 65 67  69 73 74 65 72 0d 05 5a  |save register..Z|
000010b0  1f 52 54 49 20 5c 20 72  65 74 75 72 6e 20 66 72  |.RTI \ return fr|
000010c0  6f 6d 20 69 6e 74 65 72  72 75 70 74 0d 05 64 0f  |om interrupt..d.|
000010d0  2e 72 65 61 64 70 61 63  6b 65 74 0d 05 6e 26 4c  |.readpacket..n&L|
000010e0  44 59 20 64 61 74 61 72  65 67 20 5c 20 72 65 61  |DY datareg \ rea|
000010f0  64 20 6d 61 67 61 7a 69  6e 65 20 6e 75 6d 62 65  |d magazine numbe|
00001100  72 0d 05 78 1e 4c 44 41  20 68 61 6d 74 61 62 6c  |r..x.LDA hamtabl|
00001110  65 2c 59 20 5c 20 64 65  2d 68 61 6d 20 69 74 0d  |e,Y \ de-ham it.|
00001120  05 82 26 42 4d 49 20 72  65 74 75 72 6e 20 5c 20  |..&BMI return \ |
00001130  73 74 6f 70 20 6c 6f 61  64 69 6e 67 20 69 66 20  |stop loading if |
00001140  65 72 72 6f 72 0d 05 8c  27 53 54 41 20 6d 61 67  |error...'STA mag|
00001150  61 7a 69 6e 65 20 5c 20  73 61 76 65 20 6d 61 67  |azine \ save mag|
00001160  61 7a 69 6e 65 20 6e 75  6d 62 65 72 0d 05 96 24  |azine number...$|
00001170  4c 44 59 20 64 61 74 61  72 65 67 20 5c 20 72 65  |LDY datareg \ re|
00001180  61 64 20 70 61 63 6b 65  74 20 6e 75 6d 62 65 72  |ad packet number|
00001190  0d 05 a0 1e 4c 44 41 20  68 61 6d 74 61 62 6c 65  |....LDA hamtable|
000011a0  2c 59 20 5c 20 64 65 2d  68 61 6d 20 69 74 0d 05  |,Y \ de-ham it..|
000011b0  aa 26 42 4d 49 20 72 65  74 75 72 6e 20 5c 20 73  |.&BMI return \ s|
000011c0  74 6f 70 20 6c 6f 61 64  69 6e 67 20 69 66 20 65  |top loading if e|
000011d0  72 72 6f 72 0d 05 b4 23  53 54 41 20 70 61 63 6b  |rror...#STA pack|
000011e0  65 74 20 5c 20 73 61 76  65 20 70 61 63 6b 65 74  |et \ save packet|
000011f0  20 6e 75 6d 62 65 72 0d  05 be 27 4c 44 41 20 6d  | number...'LDA m|
00001200  61 67 61 7a 69 6e 65 20  5c 20 6c 6f 61 64 20 6d  |agazine \ load m|
00001210  61 67 61 7a 69 6e 65 20  6e 75 6d 62 65 72 0d 05  |agazine number..|
00001220  c8 3d 43 4d 50 20 23 26  30 38 20 5c 20 62 69 74  |.=CMP #&08 \ bit|
00001230  20 33 20 6f 66 20 6d 61  67 2e 20 6e 75 6d 62 65  | 3 of mag. numbe|
00001240  72 20 69 73 20 62 69 74  20 30 20 6f 66 20 70 61  |r is bit 0 of pa|
00001250  63 6b 65 74 20 6e 75 6d  62 65 72 0d 05 d2 24 52  |cket number...$R|
00001260  4f 4c 20 70 61 63 6b 65  74 20 5c 20 35 20 62 69  |OL packet \ 5 bi|
00001270  74 20 70 61 63 6b 65 74  20 6e 75 6d 62 65 72 0d  |t packet number.|
00001280  05 dc 1e 80 20 23 26 30  37 20 5c 20 75 73 65 20  |.... #&07 \ use |
00001290  6f 6e 6c 79 20 62 69 74  73 20 30 2d 32 0d 05 e6  |only bits 0-2...|
000012a0  0c 4c 44 59 20 23 26 30  30 0d 05 f0 2d 53 54 41  |.LDY #&00...-STA|
000012b0  20 28 77 6f 72 6b 73 70  61 63 65 29 2c 59 20 5c  | (workspace),Y \|
000012c0  20 73 74 6f 72 65 20 6d  61 67 61 7a 69 6e 65 20  | store magazine |
000012d0  6e 75 6d 62 65 72 0d 05  fa 2d 4c 44 41 20 70 61  |number...-LDA pa|
000012e0  63 6b 65 74 20 5c 20 68  65 61 64 65 72 20 70 61  |cket \ header pa|
000012f0  63 6b 65 74 20 6e 75 6d  62 65 72 20 69 73 20 7a  |cket number is z|
00001300  65 72 6f 0d 06 04 25 42  4e 45 20 72 65 74 75 72  |ero...%BNE retur|
00001310  6e 20 5c 20 72 65 74 75  72 6e 20 69 66 20 6e 6f  |n \ return if no|
00001320  74 20 68 65 61 64 65 72  0d 06 0e 0f 2e 72 65 61  |t header.....rea|
00001330  64 68 65 61 64 65 72 0d  06 18 12 49 4e 59 20 5c  |dheader....INY \|
00001340  20 59 20 3d 20 31 2d 34  30 0d 06 22 24 4c 44 58  | Y = 1-40.."$LDX|
00001350  20 64 61 74 61 72 65 67  20 5c 20 72 65 61 64 20  | datareg \ read |
00001360  64 61 74 61 20 72 65 67  69 73 74 65 72 0d 06 2c  |data register..,|
00001370  1e 4c 44 41 20 68 61 6d  74 61 62 6c 65 2c 58 20  |.LDA hamtable,X |
00001380  5c 20 64 65 2d 68 61 6d  20 69 74 0d 06 36 26 42  |\ de-ham it..6&B|
00001390  4d 49 20 72 65 74 75 72  6e 20 5c 20 73 74 6f 70  |MI return \ stop|
000013a0  20 6c 6f 61 64 69 6e 67  20 69 66 20 65 72 72 6f  | loading if erro|
000013b0  72 0d 06 40 2c 53 54 41  20 28 77 6f 72 6b 73 70  |r..@,STA (worksp|
000013c0  61 63 65 29 2c 59 20 5c  20 73 74 6f 72 65 20 64  |ace),Y \ store d|
000013d0  65 2d 68 61 6d 6d 65 64  20 64 61 74 61 0d 06 4a  |e-hammed data..J|
000013e0  35 43 50 59 20 23 26 30  38 20 5c 20 75 73 65 20  |5CPY #&08 \ use |
000013f0  59 20 3d 20 31 2d 38 20  66 6f 72 20 38 20 62 79  |Y = 1-8 for 8 by|
00001400  74 65 73 20 6f 66 20 68  61 6d 6d 65 64 20 64 61  |tes of hammed da|
00001410  74 61 0d 06 54 31 42 43  43 20 72 65 61 64 68 65  |ta..T1BCC readhe|
00001420  61 64 65 72 20 5c 20 63  6f 6e 74 69 6e 75 65 20  |ader \ continue |
00001430  72 65 61 64 69 6e 67 20  68 61 6d 6d 65 64 20 64  |reading hammed d|
00001440  61 74 61 0d 06 5e 0d 2e  72 65 61 64 6d 6f 72 65  |ata..^..readmore|
00001450  0d 06 68 07 49 4e 59 0d  06 72 30 4c 44 41 20 64  |..h.INY..r0LDA d|
00001460  61 74 61 72 65 67 20 5c  20 72 65 61 64 20 64 61  |atareg \ read da|
00001470  74 61 20 72 65 67 69 73  74 65 72 2c 20 6e 6f 74  |ta register, not|
00001480  20 68 61 6d 6d 65 64 0d  06 7c 17 84 41 20 23 26  | hammed..|..A #&|
00001490  38 30 20 5c 20 73 65 74  20 62 69 74 20 37 0d 06  |80 \ set bit 7..|
000014a0  86 27 53 54 41 20 28 77  6f 72 6b 73 70 61 63 65  |.'STA (workspace|
000014b0  29 2c 59 20 5c 20 73 74  6f 72 65 20 69 6e 20 62  |),Y \ store in b|
000014c0  75 66 66 65 72 0d 06 90  19 43 50 59 20 23 26 32  |uffer....CPY #&2|
000014d0  38 20 5c 20 64 65 63 69  6d 61 6c 20 34 30 0d 06  |8 \ decimal 40..|
000014e0  9a 23 42 4e 45 20 72 65  61 64 6d 6f 72 65 20 5c  |.#BNE readmore \|
000014f0  20 67 6f 20 62 61 63 6b  20 66 6f 72 20 6d 6f 72  | go back for mor|
00001500  65 0d 06 a4 22 43 4c 43  20 5c 20 63 6c 65 61 72  |e..."CLC \ clear|
00001510  20 63 61 72 72 79 20 66  6f 72 20 61 64 64 69 74  | carry for addit|
00001520  69 6f 6e 0d 06 ae 11 4c  44 41 20 77 6f 72 6b 73  |ion....LDA works|
00001530  70 61 63 65 0d 06 b8 39  41 44 43 20 23 26 32 39  |pace...9ADC #&29|
00001540  20 5c 20 61 64 64 20 34  31 20 74 6f 20 70 6f 69  | \ add 41 to poi|
00001550  6e 74 20 74 6f 20 6e 65  78 74 20 70 61 72 74 20  |nt to next part |
00001560  6f 66 20 74 68 65 20 62  75 66 66 65 72 0d 06 c2  |of the buffer...|
00001570  11 53 54 41 20 77 6f 72  6b 73 70 61 63 65 0d 06  |.STA workspace..|
00001580  cc 13 4c 44 41 20 77 6f  72 6b 73 70 61 63 65 2b  |..LDA workspace+|
00001590  31 0d 06 d6 0c 41 44 43  20 23 26 30 30 0d 06 e0  |1....ADC #&00...|
000015a0  13 53 54 41 20 77 6f 72  6b 73 70 61 63 65 2b 31  |.STA workspace+1|
000015b0  0d 06 ea 3c 43 4d 50 20  23 28 62 75 66 66 65 72  |...<CMP #(buffer|
000015c0  2b 26 33 33 30 30 29 20  81 20 32 35 36 20 5c 20  |+&3300) . 256 \ |
000015d0  69 73 20 74 68 65 72 65  20 72 6f 6f 6d 20 66 6f  |is there room fo|
000015e0  72 20 6d 6f 72 65 20 64  61 74 61 3f 0d 06 f4 2d  |r more data?...-|
000015f0  42 43 43 20 72 65 74 75  72 6e 20 5c 20 62 72 61  |BCC return \ bra|
00001600  6e 63 68 20 69 66 20 74  68 65 72 65 20 69 73 20  |nch if there is |
00001610  6d 6f 72 65 20 72 6f 6f  6d 0d 06 fe 0c 4c 44 41  |more room....LDA|
00001620  20 23 26 38 30 0d 07 08  26 53 54 41 20 67 72 61  | #&80...&STA gra|
00001630  62 66 6c 61 67 20 5c 20  6d 61 72 6b 20 62 75 66  |bflag \ mark buf|
00001640  66 65 72 20 61 73 20 66  75 6c 6c 0d 07 12 0b 2e  |fer as full.....|
00001650  72 65 74 75 72 6e 0d 07  1c 28 52 54 53 20 5c 20  |return...(RTS \ |
00001660  72 65 74 75 72 6e 20 74  6f 20 6c 6f 6f 6b 20 61  |return to look a|
00001670  74 20 6e 65 78 74 20 54  54 58 20 72 6f 77 0d 07  |t next TTX row..|
00001680  26 0d 2e 6f 6c 64 69 72  71 32 76 0d 07 30 0c 45  |&..oldirq2v..0.E|
00001690  51 55 57 20 26 30 30 0d  07 3a 0d 2e 68 61 6d 74  |QUW &00..:..hamt|
000016a0  61 62 6c 65 0d 07 44 13  45 51 55 44 20 26 30 31  |able..D.EQUD &01|
000016b0  30 31 46 46 30 31 20 0d  07 4e 13 45 51 55 44 20  |01FF01 ..N.EQUD |
000016c0  26 46 46 30 31 30 30 46  46 20 0d 07 58 13 45 51  |&FF0100FF ..X.EQ|
000016d0  55 44 20 26 46 46 30 31  30 32 46 46 20 0d 07 62  |UD &FF0102FF ..b|
000016e0  12 45 51 55 44 20 26 30  37 46 46 46 46 30 41 0d  |.EQUD &07FFFF0A.|
000016f0  07 6c 13 45 51 55 44 20  26 46 46 30 31 30 30 46  |.l.EQUD &FF0100F|
00001700  46 20 0d 07 76 13 45 51  55 44 20 26 30 30 46 46  |F ..v.EQUD &00FF|
00001710  30 30 30 30 20 0d 07 80  13 45 51 55 44 20 26 30  |0000 ....EQUD &0|
00001720  42 46 46 46 46 30 36 20  0d 07 8a 12 45 51 55 44  |BFFFF06 ....EQUD|
00001730  20 26 46 46 30 33 30 30  46 46 0d 07 94 13 45 51  | &FF0300FF....EQ|
00001740  55 44 20 26 46 46 30 31  30 43 46 46 20 0d 07 9e  |UD &FF010CFF ...|
00001750  13 45 51 55 44 20 26 30  37 46 46 46 46 30 34 20  |.EQUD &07FFFF04 |
00001760  0d 07 a8 13 45 51 55 44  20 26 30 37 46 46 46 46  |....EQUD &07FFFF|
00001770  30 36 20 0d 07 b2 12 45  51 55 44 20 26 30 37 30  |06 ....EQUD &070|
00001780  37 30 37 46 46 0d 07 bc  13 45 51 55 44 20 26 30  |707FF....EQUD &0|
00001790  35 46 46 46 46 30 36 20  0d 07 c6 13 45 51 55 44  |5FFFF06 ....EQUD|
000017a0  20 26 46 46 30 44 30 30  46 46 20 0d 07 d0 13 45  | &FF0D00FF ....E|
000017b0  51 55 44 20 26 46 46 30  36 30 36 30 36 20 0d 07  |QUD &FF060606 ..|
000017c0  da 12 45 51 55 44 20 26  30 37 46 46 46 46 30 36  |..EQUD &07FFFF06|
000017d0  0d 07 e4 13 45 51 55 44  20 26 46 46 30 31 30 32  |....EQUD &FF0102|
000017e0  46 46 20 0d 07 ee 13 45  51 55 44 20 26 30 39 46  |FF ....EQUD &09F|
000017f0  46 46 46 30 34 20 0d 07  f8 13 45 51 55 44 20 26  |FFF04 ....EQUD &|
00001800  30 32 46 46 30 32 30 32  20 0d 08 02 12 45 51 55  |02FF0202 ....EQU|
00001810  44 20 26 46 46 30 33 30  32 46 46 0d 08 0c 13 45  |D &FF0302FF....E|
00001820  51 55 44 20 26 30 35 46  46 46 46 30 38 20 0d 08  |QUD &05FFFF08 ..|
00001830  16 13 45 51 55 44 20 26  46 46 30 33 30 30 46 46  |..EQUD &FF0300FF|
00001840  20 0d 08 20 13 45 51 55  44 20 26 46 46 30 33 30  | .. .EQUD &FF030|
00001850  32 46 46 20 0d 08 2a 12  45 51 55 44 20 26 30 33  |2FF ..*.EQUD &03|
00001860  30 33 46 46 30 33 0d 08  34 13 45 51 55 44 20 26  |03FF03..4.EQUD &|
00001870  30 35 46 46 46 46 30 34  20 0d 08 3e 13 45 51 55  |05FFFF04 ..>.EQU|
00001880  44 20 26 46 46 30 34 30  34 30 34 20 0d 08 48 13  |D &FF040404 ..H.|
00001890  45 51 55 44 20 26 46 46  30 46 30 32 46 46 20 0d  |EQUD &FF0F02FF .|
000018a0  08 52 12 45 51 55 44 20  26 30 37 46 46 46 46 30  |.R.EQUD &07FFFF0|
000018b0  34 0d 08 5c 13 45 51 55  44 20 26 30 35 30 35 30  |4..\.EQUD &05050|
000018c0  35 46 46 20 0d 08 66 13  45 51 55 44 20 26 30 35  |5FF ..f.EQUD &05|
000018d0  46 46 46 46 30 34 20 0d  08 70 13 45 51 55 44 20  |FFFF04 ..p.EQUD |
000018e0  26 30 35 46 46 46 46 30  36 20 0d 08 7a 12 45 51  |&05FFFF06 ..z.EQ|
000018f0  55 44 20 26 46 46 30 33  30 45 46 46 0d 08 84 13  |UD &FF030EFF....|
00001900  45 51 55 44 20 26 46 46  30 31 30 43 46 46 20 0d  |EQUD &FF010CFF .|
00001910  08 8e 13 45 51 55 44 20  26 30 39 46 46 46 46 30  |...EQUD &09FFFF0|
00001920  41 20 0d 08 98 13 45 51  55 44 20 26 30 42 46 46  |A ....EQUD &0BFF|
00001930  46 46 30 41 20 0d 08 a2  12 45 51 55 44 20 26 46  |FF0A ....EQUD &F|
00001940  46 30 41 30 41 30 41 0d  08 ac 13 45 51 55 44 20  |F0A0A0A....EQUD |
00001950  26 30 42 46 46 46 46 30  38 20 0d 08 b6 13 45 51  |&0BFFFF08 ....EQ|
00001960  55 44 20 26 46 46 30 44  30 30 46 46 20 0d 08 c0  |UD &FF0D00FF ...|
00001970  13 45 51 55 44 20 26 30  42 30 42 30 42 46 46 20  |.EQUD &0B0B0BFF |
00001980  0d 08 ca 12 45 51 55 44  20 26 30 42 46 46 46 46  |....EQUD &0BFFFF|
00001990  30 41 0d 08 d4 13 45 51  55 44 20 26 30 43 46 46  |0A....EQUD &0CFF|
000019a0  30 43 30 43 20 0d 08 de  13 45 51 55 44 20 26 46  |0C0C ....EQUD &F|
000019b0  46 30 44 30 43 46 46 20  0d 08 e8 13 45 51 55 44  |F0D0CFF ....EQUD|
000019c0  20 26 46 46 30 46 30 43  46 46 20 0d 08 f2 12 45  | &FF0F0CFF ....E|
000019d0  51 55 44 20 26 30 37 46  46 46 46 30 41 0d 08 fc  |QUD &07FFFF0A...|
000019e0  13 45 51 55 44 20 26 46  46 30 44 30 43 46 46 20  |.EQUD &FF0D0CFF |
000019f0  0d 09 06 13 45 51 55 44  20 26 30 44 30 44 46 46  |....EQUD &0D0DFF|
00001a00  30 44 20 0d 09 10 13 45  51 55 44 20 26 30 42 46  |0D ....EQUD &0BF|
00001a10  46 46 46 30 36 20 0d 09  1a 12 45 51 55 44 20 26  |FFF06 ....EQUD &|
00001a20  46 46 30 44 30 45 46 46  0d 09 24 13 45 51 55 44  |FF0D0EFF..$.EQUD|
00001a30  20 26 30 39 46 46 46 46  30 38 20 0d 09 2e 13 45  | &09FFFF08 ....E|
00001a40  51 55 44 20 26 30 39 30  39 30 39 46 46 20 0d 09  |QUD &090909FF ..|
00001a50  38 13 45 51 55 44 20 26  46 46 30 46 30 32 46 46  |8.EQUD &FF0F02FF|
00001a60  20 0d 09 42 12 45 51 55  44 20 26 30 39 46 46 46  | ..B.EQUD &09FFF|
00001a70  46 30 41 0d 09 4c 13 45  51 55 44 20 26 46 46 30  |F0A..L.EQUD &FF0|
00001a80  38 30 38 30 38 20 0d 09  56 13 45 51 55 44 20 26  |80808 ..V.EQUD &|
00001a90  30 39 46 46 46 46 30 38  20 0d 09 60 13 45 51 55  |09FFFF08 ..`.EQU|
00001aa0  44 20 26 30 42 46 46 46  46 30 38 20 0d 09 6a 12  |D &0BFFFF08 ..j.|
00001ab0  45 51 55 44 20 26 46 46  30 33 30 45 46 46 0d 09  |EQUD &FF030EFF..|
00001ac0  74 13 45 51 55 44 20 26  46 46 30 46 30 43 46 46  |t.EQUD &FF0F0CFF|
00001ad0  20 0d 09 7e 13 45 51 55  44 20 26 30 39 46 46 46  | ..~.EQUD &09FFF|
00001ae0  46 30 34 20 0d 09 88 13  45 51 55 44 20 26 30 46  |F04 ....EQUD &0F|
00001af0  30 46 46 46 30 46 20 0d  09 92 12 45 51 55 44 20  |0FFF0F ....EQUD |
00001b00  26 46 46 30 46 30 45 46  46 0d 09 9c 13 45 51 55  |&FF0F0EFF....EQU|
00001b10  44 20 26 30 35 46 46 46  46 30 38 20 0d 09 a6 13  |D &05FFFF08 ....|
00001b20  45 51 55 44 20 26 46 46  30 44 30 45 46 46 20 0d  |EQUD &FF0D0EFF .|
00001b30  09 b0 13 45 51 55 44 20  26 46 46 30 46 30 45 46  |...EQUD &FF0F0EF|
00001b40  46 20 0d 09 ba 12 45 51  55 44 20 26 30 45 46 46  |F ....EQUD &0EFF|
00001b50  30 45 30 45 0d 09 c4 05  5d 0d 09 ce 05 ed 0d 09  |0E0E....].......|
00001b60  d8 05 e1 0d ff                                    |.....|
00001b65
18-03-89/Header.m0
18-03-89/Header.m1
18-03-89/Header.m2
18-03-89/Header.m4
18-03-89/Header.m5