Home » CEEFAX disks » telesoftware15.adl » 21-02-89/Datcast

21-02-89/Datcast

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 » telesoftware15.adl
Filename: 21-02-89/Datcast
Read OK:
File size: 1D58 bytes
Load address: FFFF1A00
Exec address: FFFF8023
File contents
   10REM> DATCAST
   20MODE3
   30DIM mcode &500 :REM: space for machine code
   40PROCmcode :REM: assemble machine code
   50INPUT"TV channel (1-4) = "answer$
   60channel?0=EVAL("&"+LEFT$(answer$,1))+&1B :REM: TTX enable, Int enable, AFC
   70IF channel?0 < &1C THEN channel?0 = &1C
   80IF channel?0 > &1F THEN channel?0 = &1F
   90CALL mcode
  100END
  110DEFPROCmcode
  120magazine=&70 :REM: magazine number of current page
  130packet=&71 :REM: row number of current packet
  140grabflag=&72 :REM: 0=searching, &80=loaded
  150channel=&73 :REM: TV channel
  160datalen=&74 :REM: datacast data length
  170temp=&75 :REM: temporary store
  180savereg=&FC :REM: interrupt accumulator save register
  190escape=&FF :REM: escape flag
  200irq2v=&206 :REM: irq2 vector
  210ttxcontrol=&FC10 :REM: TTX control register, write only
  220ttxstatus=&FC10 :REM: TTX status register, read only
  230rowreg=&FC11 :REM: TTX row register, write only
  240datareg=&FC12 :REM: TTX data register, read & write
  250statclr=&FC13 :REM: TTX clear status register, read & write
  260oswrch=&FFEE
  270osbyte=&FFF4
  280FOR pass=0 TO 2 STEP 2
  290P%=mcode
  300[OPT pass
  310LDA #&00
  320STA grabflag \ grabflag = searching
  330LDX irq2v \ load secondary interrupt vector
  340LDY irq2v+1
  350STX oldirq2v \ save secondary interrupt vector
  360STY oldirq2v+1
  370LDX #interrupt MOD 256 \ install new interrupt routine
  380LDY #interrupt DIV 256
  390SEI \ disable interrupts when altering vectors
  400STX irq2v
  410STY irq2v+1
  420CLI \ re-enable interrupts
  430LDA channel \ load (channel number + #&1C)
  440STA ttxcontrol \ enable TTX
  450.mainloop
  460LDA grabflag
  470BPL continue \ branch if searching
  480LDY #&03 \ data starts at byte 3 if no control bytes
  490LDA buffer \ format type
  500AND #&02 \ is repeat indicator in use?
  510BEQ checkci \ branch if not used
  520INY \ increment pointer to start of data
  530.checkci
  540LDA buffer \ format type
  550AND #&04 \ is continuity indicator in use?
  560BEQ checkdl \ branch if not used
  570INY \ increment pointer to start of data
  580.checkdl
  590LDA buffer \ format type
  600AND #&08 \ is data length in use?
  610BEQ loadnumber \ branch if not used
  620LDA buffer,Y \ load data length
  630INY \ increment pointer to start of data
  640AND #&3F \ data length is a 6 bit number
  650STA temp \ number of data bytes
  660TYA \ offset to start of data
  670CLC
  680ADC temp \ add offset to number of data bytes
  690CMP #&26 \ maximum length
  700BCC safenumber
  710.loadnumber
  720LDA #&26
  730.safenumber
  740STA datalen \ last data byte in buffer
  750.printloop
  760LDA buffer,Y \ load data byte
  770AND #&7F \ clear bit 7
  780CMP #&0A \ is this byte a line feed?
  790BEQ printok \ ok to print line feed
  800CMP #&0D \ is this byte a return?
  810BEQ printok \ ok to print return
  820CMP #ASC(" ") \ is it any other control byte?
  830BCC nextprint \ don't print control characters
  840CMP #&7F \ is it delete and backspace?
  850BEQ nextprint \ don't print delete and backspace
  860.printok
  870JSR oswrch \ print byte on screen
  880.nextprint
  890INY \ point offset to next byte
  900CPY datalen \ print to the end of the packet
  910BCC printloop
  920LDA #&00 \ clear grabflag and start
  930STA grabflag \ searching again
  940.continue
  950LDA escape \ poll escape flag
  960BPL mainloop \ loop if escape not pressed
  970LDA #&7E \ decimal 126
  980JSR osbyte \ acknowledge escape
  990LDA #&00
 1000STA ttxcontrol \ disable TTX
 1010LDX oldirq2v \ load original vector
 1020LDY oldirq2v+1
 1030SEI \ diable interrupts when altering vector
 1040STX irq2v \ restore original vector
 1050STY irq2v+1
 1060CLI \ re-enable interrupts
 1070RTS \ return to BASIC
 1080.interrupt
 1090BIT ttxstatus \ poll TTX hardware
 1100BMI ttxinter \ branch if TTX interrupt
 1110JMP (oldirq2v) \ not TTX interrupt
 1120.ttxinter
 1130LDA savereg \ interrupt accumulator save register
 1140PHA \ push interrupt accumulator save register
 1150TXA
 1160PHA \ push X
 1170TYA
 1180PHA \ push Y
 1190LDA grabflag \ is a page ready for display?
 1200BMI clearstatus \ clear status and RTI if page grabbed
 1210CLD \ clear decimal flag
 1220LDY #&00 \ start with row 0
 1230.readttxt
 1240STY rowreg \ try rows 0 to 15
 1250LDA datareg \ load framing code
 1260BEQ emptyrow \ if zero try next row
 1270TYA
 1280PHA \ save row number
 1290JSR readpacket
 1300PLA
 1310TAY \ restore row number
 1320.emptyrow
 1330INY \ increment row number
 1340CPY #&10 \ try rows 0 - 15
 1350BNE readttxt
 1360.clearstatus
 1370LDA #&00
 1380LDY #&0F \ clear 16 rows in adaptor
 1390.clearloop
 1400STY rowreg
 1410STA datareg
 1420DEY
 1430BPL clearloop
 1440STA statclr \ clear status flags before returning
 1450PLA
 1460TAY \ restore Y
 1470PLA
 1480TAX \ restore X
 1490PLA
 1500STA savereg \ restore interrupt accumulator save register
 1510RTI \ return from interrupt
 1520.readpacket
 1530LDY datareg \ read magazine number
 1540LDA hamtable,Y \ de-ham it
 1550BMI return \ stop loading if error
 1560STA magazine \ save magazine number
 1570LDY datareg \ read packet number
 1580LDA hamtable,Y \ de-ham it
 1590BMI return \ stop loading if error
 1600STA packet \ save packet number
 1610LDA magazine \ load magazine number
 1620CMP #&08 \ bit 3 of mag. number is bit 0 of packet number
 1630ROL packet \ 5 bit packet number
 1640AND #&07 \ use only bits 0-2
 1650STA magazine \ 3 bit magazine number
 1660LDA packet
 1670CMP #&1F \ ignore all except packet 31
 1680BNE return
 1690LDA channel \ TV channel
 1700CMP #&1E \ is this ITV?
 1710BCS carryon \ branch if ITV or CH4
 1720LDA magazine \ this must be BBC1 or BBC2
 1730CMP #&03 \ ignore all except channel 11
 1740BNE return
 1750.carryon
 1760LDY #&00 \ read bytes 0 - 2
 1770.first3
 1780LDX datareg \ read byte from adaptor
 1790LDA hamtable,X \ de-hammed
 1800BMI return \ branch if error
 1810STA buffer,Y \ store de-hammed byte in buffer
 1820INY
 1830CPY #&03
 1840BNE first3 \ de-hamm first three bytes
 1850LDA buffer \ load format type
 1860AND #&01 \ is it type "A"
 1870BNE return \ exclude all but type A
 1880LDA channel \ TV channel
 1890CMP #&1E \ is this ITV?
 1900BCS readmore \ branch if ITV or CH4
 1910LDA buffer+1 \ load address length
 1920CMP #&01 \ test channel has a 1 nybble address length
 1930BNE return \ exclude all other address lengths
 1940LDA buffer+2 \ load the address
 1950CMP #&07 \ test channel has address 7
 1960BNE return \ exclude all other addresses
 1970.readmore
 1980LDA datareg \ read byte from adaptor
 1990STA buffer,Y \ store in buffer
 2000INY \ increment index
 2010CPY #&28 \ decimal 40
 2020BNE readmore \ go back for more
 2030LDA #&80 \ decimal 128
 2040STA grabflag \ packet loaded
 2050.return
 2060RTS
 2070.oldirq2v
 2080EQUW &00
 2090.hamtable
 2100EQUD &0101FF01
 2110EQUD &FF0100FF
 2120EQUD &FF0102FF
 2130EQUD &07FFFF0A
 2140EQUD &FF0100FF
 2150EQUD &00FF0000
 2160EQUD &0BFFFF06
 2170EQUD &FF0300FF
 2180EQUD &FF010CFF
 2190EQUD &07FFFF04
 2200EQUD &07FFFF06
 2210EQUD &070707FF
 2220EQUD &05FFFF06
 2230EQUD &FF0D00FF
 2240EQUD &FF060606
 2250EQUD &07FFFF06
 2260EQUD &FF0102FF
 2270EQUD &09FFFF04
 2280EQUD &02FF0202
 2290EQUD &FF0302FF
 2300EQUD &05FFFF08
 2310EQUD &FF0300FF
 2320EQUD &FF0302FF
 2330EQUD &0303FF03
 2340EQUD &05FFFF04
 2350EQUD &FF040404
 2360EQUD &FF0F02FF
 2370EQUD &07FFFF04
 2380EQUD &050505FF
 2390EQUD &05FFFF04
 2400EQUD &05FFFF06
 2410EQUD &FF030EFF
 2420EQUD &FF010CFF
 2430EQUD &09FFFF0A
 2440EQUD &0BFFFF0A
 2450EQUD &FF0A0A0A
 2460EQUD &0BFFFF08
 2470EQUD &FF0D00FF
 2480EQUD &0B0B0BFF
 2490EQUD &0BFFFF0A
 2500EQUD &0CFF0C0C
 2510EQUD &FF0D0CFF
 2520EQUD &FF0F0CFF
 2530EQUD &07FFFF0A
 2540EQUD &FF0D0CFF
 2550EQUD &0D0DFF0D
 2560EQUD &0BFFFF06
 2570EQUD &FF0D0EFF
 2580EQUD &09FFFF08
 2590EQUD &090909FF
 2600EQUD &FF0F02FF
 2610EQUD &09FFFF0A
 2620EQUD &FF080808
 2630EQUD &09FFFF08
 2640EQUD &0BFFFF08
 2650EQUD &FF030EFF
 2660EQUD &FF0F0CFF
 2670EQUD &09FFFF04
 2680EQUD &0F0FFF0F
 2690EQUD &FF0F0EFF
 2700EQUD &05FFFF08
 2710EQUD &FF0D0EFF
 2720EQUD &FF0F0EFF
 2730EQUD &0EFF0E0E
 2740.buffer
 2750EQUS STRING$(40," ")
 2760]
 2770NEXT
 2780ENDPROC

�> DATCAST
�3
+� mcode &500 :�: space for machine code
($�mcode :�: assemble machine code
2!�"TV channel (1-4) = "answer$
<Dchannel?0=�("&"+�answer$,1))+&1B :�: TTX enable, Int enable, AFC
F'� channel?0 < &1C � channel?0 = &1C
P'� channel?0 > &1F � channel?0 = &1F
Z� mcode
d�
n��mcode
x4magazine=&70 :�: magazine number of current page
�/packet=&71 :�: row number of current packet
�,grabflag=&72 :�: 0=searching, &80=loaded
�channel=&73 :�: TV channel
�(datalen=&74 :�: datacast data length
� temp=&75 :�: temporary store
�7savereg=&FC :�: interrupt accumulator save register
�escape=&FF :�: escape flag
�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
oswrch=&FFEE
osbyte=&FFF4
� pass=0 � 2 � 2
"P%=mcode
,
[OPT pass
6LDA #&00
@'STA grabflag \ grabflag = searching
J/LDX irq2v \ load secondary interrupt vector
TLDY irq2v+1
^2STX oldirq2v \ save secondary interrupt vector
hSTY oldirq2v+1
r8LDX #interrupt � 256 \ install new interrupt routine
|LDY #interrupt � 256
�2SEI \ disable interrupts when altering vectors
�
STX irq2v
�STY irq2v+1
�CLI \ re-enable interrupts
�.LDA channel \ load (channel number + #&1C)
�STA ttxcontrol \ enable TTX
�
.mainloop
�LDA grabflag
�&BPL continue \ branch if searching
�8LDY #&03 \ data starts at byte 3 if no control bytes
�LDA buffer \ format type
�(� #&02 \ is repeat indicator in use?
�$BEQ checkci \ branch if not used
,INY \ increment pointer to start of data
.checkci
LDA buffer \ format type
&,� #&04 \ is continuity indicator in use?
0$BEQ checkdl \ branch if not used
:,INY \ increment pointer to start of data
D.checkdl
NLDA buffer \ format type
X#� #&08 \ is data length in use?
b'BEQ loadnumber \ branch if not used
l#LDA buffer,Y \ load data length
v,INY \ increment pointer to start of data
�*� #&3F \ data length is a 6 bit number
�#STA temp \ number of data bytes
�!TYA \ offset to start of data
�CLC
�1ADC temp \ add offset to number of data bytes
�CMP #&26 \ maximum length
�BCC safenumber
�.loadnumber
�LDA #&26
�.safenumber
�*STA datalen \ last data byte in buffer
�.printloop
�!LDA buffer,Y \ load data byte
� #&7F \ clear bit 7
(CMP #&0A \ is this byte a line feed?
'BEQ printok \ ok to print line feed
 %CMP #&0D \ is this byte a return?
*$BEQ printok \ ok to print return
4/CMP #�(" ") \ is it any other control byte?
>2BCC nextprint \ don't print control characters
H*CMP #&7F \ is it delete and backspace?
R4BEQ nextprint \ don't print delete and backspace
\.printok
f%JSR oswrch \ print byte on screen
p.nextprint
z#INY \ point offset to next byte
�0CPY datalen \ print to the end of the packet
�BCC printloop
�'LDA #&00 \ clear grabflag and start
�"STA grabflag \ searching again
�
.continue
�!LDA escape \ poll escape flag
�-BPL mainloop \ loop if escape not pressed
�LDA #&7E \ decimal 126
�#JSR osbyte \ acknowledge escape
�LDA #&00
� STA ttxcontrol \ disable TTX
�'LDX oldirq2v \ load original vector
�LDY oldirq2v+1
0SEI \ diable interrupts when altering vector
'STX irq2v \ restore original vector
STY irq2v+1
$CLI \ re-enable interrupts
.RTS \ return to BASIC
8.interrupt
B%BIT ttxstatus \ poll TTX hardware
L*BMI ttxinter \ branch if TTX interrupt
V&JMP (oldirq2v) \ not TTX interrupt
`
.ttxinter
j5LDA savereg \ interrupt accumulator save register
t2PHA \ push interrupt accumulator save register
~TXA
�PHA \ push X
�TYA
�PHA \ push Y
�/LDA grabflag \ is a page ready for display?
�:BMI clearstatus \ clear status and RTI if page grabbed
�CLD \ clear decimal flag
�LDY #&00 \ start with row 0
�
.readttxt
�!STY rowreg \ try rows 0 to 15
�#LDA datareg \ load framing code
�'BEQ emptyrow \ if zero try next row
�TYA
PHA \ save row number

JSR readpacket
PLA
TAY \ restore row number
(
.emptyrow
2INY \ increment row number
<CPY #&10 \ try rows 0 - 15
FBNE readttxt
P.clearstatus
ZLDA #&00
d'LDY #&0F \ clear 16 rows in adaptor
n.clearloop
xSTY rowreg
�STA datareg
�DEY
�BPL clearloop
�5STA statclr \ clear status flags before returning
�PLA
�TAY \ restore Y
�PLA
�TAX \ restore X
�PLA
�=STA savereg \ restore interrupt accumulator save register
�RTI \ return from interrupt
�.readpacket
�&LDY datareg \ read magazine number
LDA 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
6&BMI return \ stop loading if error
@#STA packet \ save packet number
J'LDA magazine \ load magazine number
T=CMP #&08 \ bit 3 of mag. number is bit 0 of packet number
^$ROL packet \ 5 bit packet number
h� #&07 \ use only bits 0-2
r(STA magazine \ 3 bit magazine number
|LDA packet
�*CMP #&1F \ ignore all except packet 31
�BNE return
�LDA channel \ TV channel
�CMP #&1E \ is this ITV?
�&BCS carryon \ branch if ITV or CH4
�,LDA magazine \ this must be BBC1 or BBC2
�+CMP #&03 \ ignore all except channel 11
�BNE return
�.carryon
�LDY #&00 \ read bytes 0 - 2
�.first3
�(LDX datareg \ read byte from adaptor
�LDA hamtable,X \ de-hammed
 BMI return \ branch if error
1STA buffer,Y \ store de-hammed byte in buffer
INY
&CPY #&03
0*BNE first3 \ de-hamm first three bytes
:!LDA buffer \ load format type
D� #&01 \ is it type "A"
N'BNE return \ exclude all but type A
XLDA channel \ TV channel
bCMP #&1E \ is this ITV?
l'BCS readmore \ branch if ITV or CH4
v&LDA buffer+1 \ load address length
�9CMP #&01 \ test channel has a 1 nybble address length
�2BNE return \ exclude all other address lengths
�#LDA buffer+2 \ load the address
�)CMP #&07 \ test channel has address 7
�,BNE return \ exclude all other addresses
�
.readmore
�(LDA datareg \ read byte from adaptor
�"STA buffer,Y \ store in buffer
�INY \ increment index
�CPY #&28 \ decimal 40
�#BNE readmore \ go back for more
�LDA #&80 \ decimal 128
� STA grabflag \ packet loaded
.return
RTS

.oldirq2v
 EQUW &00
*
.hamtable
4EQUD &0101FF01
>EQUD &FF0100FF
HEQUD &FF0102FF
REQUD &07FFFF0A
\EQUD &FF0100FF
fEQUD &00FF0000
pEQUD &0BFFFF06
zEQUD &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
	$EQUD &05FFFF04
	.EQUD &FF040404
	8EQUD &FF0F02FF
	BEQUD &07FFFF04
	LEQUD &050505FF
	VEQUD &05FFFF04
	`EQUD &05FFFF06
	jEQUD &FF030EFF
	tEQUD &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
(EQUD &FF0F02FF
2EQUD &09FFFF0A
<EQUD &FF080808
FEQUD &09FFFF08
PEQUD &0BFFFF08
ZEQUD &FF030EFF
dEQUD &FF0F0CFF
nEQUD &09FFFF04
xEQUD &0F0FFF0F
�EQUD &FF0F0EFF
�EQUD &05FFFF08
�EQUD &FF0D0EFF
�EQUD &FF0F0EFF
�EQUD &0EFF0E0E
�.buffer
�EQUS �40," ")
�]
��
��
�
00000000  0d 00 0a 0e f4 3e 20 44  41 54 43 41 53 54 0d 00  |.....> DATCAST..|
00000010  14 06 eb 33 0d 00 1e 2b  de 20 6d 63 6f 64 65 20  |...3...+. mcode |
00000020  26 35 30 30 20 3a f4 3a  20 73 70 61 63 65 20 66  |&500 :.: space f|
00000030  6f 72 20 6d 61 63 68 69  6e 65 20 63 6f 64 65 0d  |or machine code.|
00000040  00 28 24 f2 6d 63 6f 64  65 20 3a f4 3a 20 61 73  |.($.mcode :.: as|
00000050  73 65 6d 62 6c 65 20 6d  61 63 68 69 6e 65 20 63  |semble machine c|
00000060  6f 64 65 0d 00 32 21 e8  22 54 56 20 63 68 61 6e  |ode..2!."TV chan|
00000070  6e 65 6c 20 28 31 2d 34  29 20 3d 20 22 61 6e 73  |nel (1-4) = "ans|
00000080  77 65 72 24 0d 00 3c 44  63 68 61 6e 6e 65 6c 3f  |wer$..<Dchannel?|
00000090  30 3d a0 28 22 26 22 2b  c0 61 6e 73 77 65 72 24  |0=.("&"+.answer$|
000000a0  2c 31 29 29 2b 26 31 42  20 3a f4 3a 20 54 54 58  |,1))+&1B :.: TTX|
000000b0  20 65 6e 61 62 6c 65 2c  20 49 6e 74 20 65 6e 61  | enable, Int ena|
000000c0  62 6c 65 2c 20 41 46 43  0d 00 46 27 e7 20 63 68  |ble, AFC..F'. ch|
000000d0  61 6e 6e 65 6c 3f 30 20  3c 20 26 31 43 20 8c 20  |annel?0 < &1C . |
000000e0  63 68 61 6e 6e 65 6c 3f  30 20 3d 20 26 31 43 0d  |channel?0 = &1C.|
000000f0  00 50 27 e7 20 63 68 61  6e 6e 65 6c 3f 30 20 3e  |.P'. channel?0 >|
00000100  20 26 31 46 20 8c 20 63  68 61 6e 6e 65 6c 3f 30  | &1F . channel?0|
00000110  20 3d 20 26 31 46 0d 00  5a 0b d6 20 6d 63 6f 64  | = &1F..Z.. mcod|
00000120  65 0d 00 64 05 e0 0d 00  6e 0b dd f2 6d 63 6f 64  |e..d....n...mcod|
00000130  65 0d 00 78 34 6d 61 67  61 7a 69 6e 65 3d 26 37  |e..x4magazine=&7|
00000140  30 20 3a f4 3a 20 6d 61  67 61 7a 69 6e 65 20 6e  |0 :.: magazine n|
00000150  75 6d 62 65 72 20 6f 66  20 63 75 72 72 65 6e 74  |umber of current|
00000160  20 70 61 67 65 0d 00 82  2f 70 61 63 6b 65 74 3d  | page.../packet=|
00000170  26 37 31 20 3a f4 3a 20  72 6f 77 20 6e 75 6d 62  |&71 :.: row numb|
00000180  65 72 20 6f 66 20 63 75  72 72 65 6e 74 20 70 61  |er of current pa|
00000190  63 6b 65 74 0d 00 8c 2c  67 72 61 62 66 6c 61 67  |cket...,grabflag|
000001a0  3d 26 37 32 20 3a f4 3a  20 30 3d 73 65 61 72 63  |=&72 :.: 0=searc|
000001b0  68 69 6e 67 2c 20 26 38  30 3d 6c 6f 61 64 65 64  |hing, &80=loaded|
000001c0  0d 00 96 1e 63 68 61 6e  6e 65 6c 3d 26 37 33 20  |....channel=&73 |
000001d0  3a f4 3a 20 54 56 20 63  68 61 6e 6e 65 6c 0d 00  |:.: TV channel..|
000001e0  a0 28 64 61 74 61 6c 65  6e 3d 26 37 34 20 3a f4  |.(datalen=&74 :.|
000001f0  3a 20 64 61 74 61 63 61  73 74 20 64 61 74 61 20  |: datacast data |
00000200  6c 65 6e 67 74 68 0d 00  aa 20 74 65 6d 70 3d 26  |length... temp=&|
00000210  37 35 20 3a f4 3a 20 74  65 6d 70 6f 72 61 72 79  |75 :.: temporary|
00000220  20 73 74 6f 72 65 0d 00  b4 37 73 61 76 65 72 65  | store...7savere|
00000230  67 3d 26 46 43 20 3a f4  3a 20 69 6e 74 65 72 72  |g=&FC :.: interr|
00000240  75 70 74 20 61 63 63 75  6d 75 6c 61 74 6f 72 20  |upt accumulator |
00000250  73 61 76 65 20 72 65 67  69 73 74 65 72 0d 00 be  |save register...|
00000260  1e 65 73 63 61 70 65 3d  26 46 46 20 3a f4 3a 20  |.escape=&FF :.: |
00000270  65 73 63 61 70 65 20 66  6c 61 67 0d 00 c8 1e 69  |escape flag....i|
00000280  72 71 32 76 3d 26 32 30  36 20 3a f4 3a 20 69 72  |rq2v=&206 :.: ir|
00000290  71 32 20 76 65 63 74 6f  72 0d 00 d2 39 74 74 78  |q2 vector...9ttx|
000002a0  63 6f 6e 74 72 6f 6c 3d  26 46 43 31 30 20 3a f4  |control=&FC10 :.|
000002b0  3a 20 54 54 58 20 63 6f  6e 74 72 6f 6c 20 72 65  |: TTX control re|
000002c0  67 69 73 74 65 72 2c 20  77 72 69 74 65 20 6f 6e  |gister, write on|
000002d0  6c 79 0d 00 dc 36 74 74  78 73 74 61 74 75 73 3d  |ly...6ttxstatus=|
000002e0  26 46 43 31 30 20 3a f4  3a 20 54 54 58 20 73 74  |&FC10 :.: TTX st|
000002f0  61 74 75 73 20 72 65 67  69 73 74 65 72 2c 20 72  |atus register, r|
00000300  65 61 64 20 6f 6e 6c 79  0d 00 e6 31 72 6f 77 72  |ead only...1rowr|
00000310  65 67 3d 26 46 43 31 31  20 3a f4 3a 20 54 54 58  |eg=&FC11 :.: TTX|
00000320  20 72 6f 77 20 72 65 67  69 73 74 65 72 2c 20 77  | row register, w|
00000330  72 69 74 65 20 6f 6e 6c  79 0d 00 f0 35 64 61 74  |rite only...5dat|
00000340  61 72 65 67 3d 26 46 43  31 32 20 3a f4 3a 20 54  |areg=&FC12 :.: T|
00000350  54 58 20 64 61 74 61 20  72 65 67 69 73 74 65 72  |TX data register|
00000360  2c 20 72 65 61 64 20 26  20 77 72 69 74 65 0d 00  |, read & write..|
00000370  fa 3d 73 74 61 74 63 6c  72 3d 26 46 43 31 33 20  |.=statclr=&FC13 |
00000380  3a f4 3a 20 54 54 58 20  63 6c 65 61 72 20 73 74  |:.: TTX clear st|
00000390  61 74 75 73 20 72 65 67  69 73 74 65 72 2c 20 72  |atus register, r|
000003a0  65 61 64 20 26 20 77 72  69 74 65 0d 01 04 10 6f  |ead & write....o|
000003b0  73 77 72 63 68 3d 26 46  46 45 45 0d 01 0e 10 6f  |swrch=&FFEE....o|
000003c0  73 62 79 74 65 3d 26 46  46 46 34 0d 01 18 14 e3  |sbyte=&FFF4.....|
000003d0  20 70 61 73 73 3d 30 20  b8 20 32 20 88 20 32 0d  | pass=0 . 2 . 2.|
000003e0  01 22 0c 50 25 3d 6d 63  6f 64 65 0d 01 2c 0d 5b  |.".P%=mcode..,.[|
000003f0  4f 50 54 20 70 61 73 73  0d 01 36 0c 4c 44 41 20  |OPT pass..6.LDA |
00000400  23 26 30 30 0d 01 40 27  53 54 41 20 67 72 61 62  |#&00..@'STA grab|
00000410  66 6c 61 67 20 5c 20 67  72 61 62 66 6c 61 67 20  |flag \ grabflag |
00000420  3d 20 73 65 61 72 63 68  69 6e 67 0d 01 4a 2f 4c  |= searching..J/L|
00000430  44 58 20 69 72 71 32 76  20 5c 20 6c 6f 61 64 20  |DX irq2v \ load |
00000440  73 65 63 6f 6e 64 61 72  79 20 69 6e 74 65 72 72  |secondary interr|
00000450  75 70 74 20 76 65 63 74  6f 72 0d 01 54 0f 4c 44  |upt vector..T.LD|
00000460  59 20 69 72 71 32 76 2b  31 0d 01 5e 32 53 54 58  |Y irq2v+1..^2STX|
00000470  20 6f 6c 64 69 72 71 32  76 20 5c 20 73 61 76 65  | oldirq2v \ save|
00000480  20 73 65 63 6f 6e 64 61  72 79 20 69 6e 74 65 72  | secondary inter|
00000490  72 75 70 74 20 76 65 63  74 6f 72 0d 01 68 12 53  |rupt vector..h.S|
000004a0  54 59 20 6f 6c 64 69 72  71 32 76 2b 31 0d 01 72  |TY oldirq2v+1..r|
000004b0  38 4c 44 58 20 23 69 6e  74 65 72 72 75 70 74 20  |8LDX #interrupt |
000004c0  83 20 32 35 36 20 5c 20  69 6e 73 74 61 6c 6c 20  |. 256 \ install |
000004d0  6e 65 77 20 69 6e 74 65  72 72 75 70 74 20 72 6f  |new interrupt ro|
000004e0  75 74 69 6e 65 0d 01 7c  18 4c 44 59 20 23 69 6e  |utine..|.LDY #in|
000004f0  74 65 72 72 75 70 74 20  81 20 32 35 36 0d 01 86  |terrupt . 256...|
00000500  32 53 45 49 20 5c 20 64  69 73 61 62 6c 65 20 69  |2SEI \ disable i|
00000510  6e 74 65 72 72 75 70 74  73 20 77 68 65 6e 20 61  |nterrupts when a|
00000520  6c 74 65 72 69 6e 67 20  76 65 63 74 6f 72 73 0d  |ltering vectors.|
00000530  01 90 0d 53 54 58 20 69  72 71 32 76 0d 01 9a 0f  |...STX irq2v....|
00000540  53 54 59 20 69 72 71 32  76 2b 31 0d 01 a4 1e 43  |STY irq2v+1....C|
00000550  4c 49 20 5c 20 72 65 2d  65 6e 61 62 6c 65 20 69  |LI \ re-enable i|
00000560  6e 74 65 72 72 75 70 74  73 0d 01 ae 2e 4c 44 41  |nterrupts....LDA|
00000570  20 63 68 61 6e 6e 65 6c  20 5c 20 6c 6f 61 64 20  | channel \ load |
00000580  28 63 68 61 6e 6e 65 6c  20 6e 75 6d 62 65 72 20  |(channel number |
00000590  2b 20 23 26 31 43 29 0d  01 b8 1f 53 54 41 20 74  |+ #&1C)....STA t|
000005a0  74 78 63 6f 6e 74 72 6f  6c 20 5c 20 65 6e 61 62  |txcontrol \ enab|
000005b0  6c 65 20 54 54 58 0d 01  c2 0d 2e 6d 61 69 6e 6c  |le TTX.....mainl|
000005c0  6f 6f 70 0d 01 cc 10 4c  44 41 20 67 72 61 62 66  |oop....LDA grabf|
000005d0  6c 61 67 0d 01 d6 26 42  50 4c 20 63 6f 6e 74 69  |lag...&BPL conti|
000005e0  6e 75 65 20 5c 20 62 72  61 6e 63 68 20 69 66 20  |nue \ branch if |
000005f0  73 65 61 72 63 68 69 6e  67 0d 01 e0 38 4c 44 59  |searching...8LDY|
00000600  20 23 26 30 33 20 5c 20  64 61 74 61 20 73 74 61  | #&03 \ data sta|
00000610  72 74 73 20 61 74 20 62  79 74 65 20 33 20 69 66  |rts at byte 3 if|
00000620  20 6e 6f 20 63 6f 6e 74  72 6f 6c 20 62 79 74 65  | no control byte|
00000630  73 0d 01 ea 1c 4c 44 41  20 62 75 66 66 65 72 20  |s....LDA buffer |
00000640  5c 20 66 6f 72 6d 61 74  20 74 79 70 65 0d 01 f4  |\ format type...|
00000650  28 80 20 23 26 30 32 20  5c 20 69 73 20 72 65 70  |(. #&02 \ is rep|
00000660  65 61 74 20 69 6e 64 69  63 61 74 6f 72 20 69 6e  |eat indicator in|
00000670  20 75 73 65 3f 0d 01 fe  24 42 45 51 20 63 68 65  | use?...$BEQ che|
00000680  63 6b 63 69 20 5c 20 62  72 61 6e 63 68 20 69 66  |ckci \ branch if|
00000690  20 6e 6f 74 20 75 73 65  64 0d 02 08 2c 49 4e 59  | not used...,INY|
000006a0  20 5c 20 69 6e 63 72 65  6d 65 6e 74 20 70 6f 69  | \ increment poi|
000006b0  6e 74 65 72 20 74 6f 20  73 74 61 72 74 20 6f 66  |nter to start of|
000006c0  20 64 61 74 61 0d 02 12  0c 2e 63 68 65 63 6b 63  | data.....checkc|
000006d0  69 0d 02 1c 1c 4c 44 41  20 62 75 66 66 65 72 20  |i....LDA buffer |
000006e0  5c 20 66 6f 72 6d 61 74  20 74 79 70 65 0d 02 26  |\ format type..&|
000006f0  2c 80 20 23 26 30 34 20  5c 20 69 73 20 63 6f 6e  |,. #&04 \ is con|
00000700  74 69 6e 75 69 74 79 20  69 6e 64 69 63 61 74 6f  |tinuity indicato|
00000710  72 20 69 6e 20 75 73 65  3f 0d 02 30 24 42 45 51  |r in use?..0$BEQ|
00000720  20 63 68 65 63 6b 64 6c  20 5c 20 62 72 61 6e 63  | checkdl \ branc|
00000730  68 20 69 66 20 6e 6f 74  20 75 73 65 64 0d 02 3a  |h if not used..:|
00000740  2c 49 4e 59 20 5c 20 69  6e 63 72 65 6d 65 6e 74  |,INY \ increment|
00000750  20 70 6f 69 6e 74 65 72  20 74 6f 20 73 74 61 72  | pointer to star|
00000760  74 20 6f 66 20 64 61 74  61 0d 02 44 0c 2e 63 68  |t of data..D..ch|
00000770  65 63 6b 64 6c 0d 02 4e  1c 4c 44 41 20 62 75 66  |eckdl..N.LDA buf|
00000780  66 65 72 20 5c 20 66 6f  72 6d 61 74 20 74 79 70  |fer \ format typ|
00000790  65 0d 02 58 23 80 20 23  26 30 38 20 5c 20 69 73  |e..X#. #&08 \ is|
000007a0  20 64 61 74 61 20 6c 65  6e 67 74 68 20 69 6e 20  | data length in |
000007b0  75 73 65 3f 0d 02 62 27  42 45 51 20 6c 6f 61 64  |use?..b'BEQ load|
000007c0  6e 75 6d 62 65 72 20 5c  20 62 72 61 6e 63 68 20  |number \ branch |
000007d0  69 66 20 6e 6f 74 20 75  73 65 64 0d 02 6c 23 4c  |if not used..l#L|
000007e0  44 41 20 62 75 66 66 65  72 2c 59 20 5c 20 6c 6f  |DA buffer,Y \ lo|
000007f0  61 64 20 64 61 74 61 20  6c 65 6e 67 74 68 0d 02  |ad data length..|
00000800  76 2c 49 4e 59 20 5c 20  69 6e 63 72 65 6d 65 6e  |v,INY \ incremen|
00000810  74 20 70 6f 69 6e 74 65  72 20 74 6f 20 73 74 61  |t pointer to sta|
00000820  72 74 20 6f 66 20 64 61  74 61 0d 02 80 2a 80 20  |rt of data...*. |
00000830  23 26 33 46 20 5c 20 64  61 74 61 20 6c 65 6e 67  |#&3F \ data leng|
00000840  74 68 20 69 73 20 61 20  36 20 62 69 74 20 6e 75  |th is a 6 bit nu|
00000850  6d 62 65 72 0d 02 8a 23  53 54 41 20 74 65 6d 70  |mber...#STA temp|
00000860  20 5c 20 6e 75 6d 62 65  72 20 6f 66 20 64 61 74  | \ number of dat|
00000870  61 20 62 79 74 65 73 0d  02 94 21 54 59 41 20 5c  |a bytes...!TYA \|
00000880  20 6f 66 66 73 65 74 20  74 6f 20 73 74 61 72 74  | offset to start|
00000890  20 6f 66 20 64 61 74 61  0d 02 9e 07 43 4c 43 0d  | of data....CLC.|
000008a0  02 a8 31 41 44 43 20 74  65 6d 70 20 5c 20 61 64  |..1ADC temp \ ad|
000008b0  64 20 6f 66 66 73 65 74  20 74 6f 20 6e 75 6d 62  |d offset to numb|
000008c0  65 72 20 6f 66 20 64 61  74 61 20 62 79 74 65 73  |er of data bytes|
000008d0  0d 02 b2 1d 43 4d 50 20  23 26 32 36 20 5c 20 6d  |....CMP #&26 \ m|
000008e0  61 78 69 6d 75 6d 20 6c  65 6e 67 74 68 0d 02 bc  |aximum length...|
000008f0  12 42 43 43 20 73 61 66  65 6e 75 6d 62 65 72 0d  |.BCC safenumber.|
00000900  02 c6 0f 2e 6c 6f 61 64  6e 75 6d 62 65 72 0d 02  |....loadnumber..|
00000910  d0 0c 4c 44 41 20 23 26  32 36 0d 02 da 0f 2e 73  |..LDA #&26.....s|
00000920  61 66 65 6e 75 6d 62 65  72 0d 02 e4 2a 53 54 41  |afenumber...*STA|
00000930  20 64 61 74 61 6c 65 6e  20 5c 20 6c 61 73 74 20  | datalen \ last |
00000940  64 61 74 61 20 62 79 74  65 20 69 6e 20 62 75 66  |data byte in buf|
00000950  66 65 72 0d 02 ee 0e 2e  70 72 69 6e 74 6c 6f 6f  |fer.....printloo|
00000960  70 0d 02 f8 21 4c 44 41  20 62 75 66 66 65 72 2c  |p...!LDA buffer,|
00000970  59 20 5c 20 6c 6f 61 64  20 64 61 74 61 20 62 79  |Y \ load data by|
00000980  74 65 0d 03 02 18 80 20  23 26 37 46 20 5c 20 63  |te..... #&7F \ c|
00000990  6c 65 61 72 20 62 69 74  20 37 0d 03 0c 28 43 4d  |lear bit 7...(CM|
000009a0  50 20 23 26 30 41 20 5c  20 69 73 20 74 68 69 73  |P #&0A \ is this|
000009b0  20 62 79 74 65 20 61 20  6c 69 6e 65 20 66 65 65  | byte a line fee|
000009c0  64 3f 0d 03 16 27 42 45  51 20 70 72 69 6e 74 6f  |d?...'BEQ printo|
000009d0  6b 20 5c 20 6f 6b 20 74  6f 20 70 72 69 6e 74 20  |k \ ok to print |
000009e0  6c 69 6e 65 20 66 65 65  64 0d 03 20 25 43 4d 50  |line feed.. %CMP|
000009f0  20 23 26 30 44 20 5c 20  69 73 20 74 68 69 73 20  | #&0D \ is this |
00000a00  62 79 74 65 20 61 20 72  65 74 75 72 6e 3f 0d 03  |byte a return?..|
00000a10  2a 24 42 45 51 20 70 72  69 6e 74 6f 6b 20 5c 20  |*$BEQ printok \ |
00000a20  6f 6b 20 74 6f 20 70 72  69 6e 74 20 72 65 74 75  |ok to print retu|
00000a30  72 6e 0d 03 34 2f 43 4d  50 20 23 97 28 22 20 22  |rn..4/CMP #.(" "|
00000a40  29 20 5c 20 69 73 20 69  74 20 61 6e 79 20 6f 74  |) \ is it any ot|
00000a50  68 65 72 20 63 6f 6e 74  72 6f 6c 20 62 79 74 65  |her control byte|
00000a60  3f 0d 03 3e 32 42 43 43  20 6e 65 78 74 70 72 69  |?..>2BCC nextpri|
00000a70  6e 74 20 5c 20 64 6f 6e  27 74 20 70 72 69 6e 74  |nt \ don't print|
00000a80  20 63 6f 6e 74 72 6f 6c  20 63 68 61 72 61 63 74  | control charact|
00000a90  65 72 73 0d 03 48 2a 43  4d 50 20 23 26 37 46 20  |ers..H*CMP #&7F |
00000aa0  5c 20 69 73 20 69 74 20  64 65 6c 65 74 65 20 61  |\ is it delete a|
00000ab0  6e 64 20 62 61 63 6b 73  70 61 63 65 3f 0d 03 52  |nd backspace?..R|
00000ac0  34 42 45 51 20 6e 65 78  74 70 72 69 6e 74 20 5c  |4BEQ nextprint \|
00000ad0  20 64 6f 6e 27 74 20 70  72 69 6e 74 20 64 65 6c  | don't print del|
00000ae0  65 74 65 20 61 6e 64 20  62 61 63 6b 73 70 61 63  |ete and backspac|
00000af0  65 0d 03 5c 0c 2e 70 72  69 6e 74 6f 6b 0d 03 66  |e..\..printok..f|
00000b00  25 4a 53 52 20 6f 73 77  72 63 68 20 5c 20 70 72  |%JSR oswrch \ pr|
00000b10  69 6e 74 20 62 79 74 65  20 6f 6e 20 73 63 72 65  |int byte on scre|
00000b20  65 6e 0d 03 70 0e 2e 6e  65 78 74 70 72 69 6e 74  |en..p..nextprint|
00000b30  0d 03 7a 23 49 4e 59 20  5c 20 70 6f 69 6e 74 20  |..z#INY \ point |
00000b40  6f 66 66 73 65 74 20 74  6f 20 6e 65 78 74 20 62  |offset to next b|
00000b50  79 74 65 0d 03 84 30 43  50 59 20 64 61 74 61 6c  |yte...0CPY datal|
00000b60  65 6e 20 5c 20 70 72 69  6e 74 20 74 6f 20 74 68  |en \ print to th|
00000b70  65 20 65 6e 64 20 6f 66  20 74 68 65 20 70 61 63  |e end of the pac|
00000b80  6b 65 74 0d 03 8e 11 42  43 43 20 70 72 69 6e 74  |ket....BCC print|
00000b90  6c 6f 6f 70 0d 03 98 27  4c 44 41 20 23 26 30 30  |loop...'LDA #&00|
00000ba0  20 5c 20 63 6c 65 61 72  20 67 72 61 62 66 6c 61  | \ clear grabfla|
00000bb0  67 20 61 6e 64 20 73 74  61 72 74 0d 03 a2 22 53  |g and start..."S|
00000bc0  54 41 20 67 72 61 62 66  6c 61 67 20 5c 20 73 65  |TA grabflag \ se|
00000bd0  61 72 63 68 69 6e 67 20  61 67 61 69 6e 0d 03 ac  |arching again...|
00000be0  0d 2e 63 6f 6e 74 69 6e  75 65 0d 03 b6 21 4c 44  |..continue...!LD|
00000bf0  41 20 65 73 63 61 70 65  20 5c 20 70 6f 6c 6c 20  |A escape \ poll |
00000c00  65 73 63 61 70 65 20 66  6c 61 67 0d 03 c0 2d 42  |escape flag...-B|
00000c10  50 4c 20 6d 61 69 6e 6c  6f 6f 70 20 5c 20 6c 6f  |PL mainloop \ lo|
00000c20  6f 70 20 69 66 20 65 73  63 61 70 65 20 6e 6f 74  |op if escape not|
00000c30  20 70 72 65 73 73 65 64  0d 03 ca 1a 4c 44 41 20  | pressed....LDA |
00000c40  23 26 37 45 20 5c 20 64  65 63 69 6d 61 6c 20 31  |#&7E \ decimal 1|
00000c50  32 36 0d 03 d4 23 4a 53  52 20 6f 73 62 79 74 65  |26...#JSR osbyte|
00000c60  20 5c 20 61 63 6b 6e 6f  77 6c 65 64 67 65 20 65  | \ acknowledge e|
00000c70  73 63 61 70 65 0d 03 de  0c 4c 44 41 20 23 26 30  |scape....LDA #&0|
00000c80  30 0d 03 e8 20 53 54 41  20 74 74 78 63 6f 6e 74  |0... STA ttxcont|
00000c90  72 6f 6c 20 5c 20 64 69  73 61 62 6c 65 20 54 54  |rol \ disable TT|
00000ca0  58 0d 03 f2 27 4c 44 58  20 6f 6c 64 69 72 71 32  |X...'LDX oldirq2|
00000cb0  76 20 5c 20 6c 6f 61 64  20 6f 72 69 67 69 6e 61  |v \ load origina|
00000cc0  6c 20 76 65 63 74 6f 72  0d 03 fc 12 4c 44 59 20  |l vector....LDY |
00000cd0  6f 6c 64 69 72 71 32 76  2b 31 0d 04 06 30 53 45  |oldirq2v+1...0SE|
00000ce0  49 20 5c 20 64 69 61 62  6c 65 20 69 6e 74 65 72  |I \ diable inter|
00000cf0  72 75 70 74 73 20 77 68  65 6e 20 61 6c 74 65 72  |rupts when alter|
00000d00  69 6e 67 20 76 65 63 74  6f 72 0d 04 10 27 53 54  |ing vector...'ST|
00000d10  58 20 69 72 71 32 76 20  5c 20 72 65 73 74 6f 72  |X irq2v \ restor|
00000d20  65 20 6f 72 69 67 69 6e  61 6c 20 76 65 63 74 6f  |e original vecto|
00000d30  72 0d 04 1a 0f 53 54 59  20 69 72 71 32 76 2b 31  |r....STY irq2v+1|
00000d40  0d 04 24 1e 43 4c 49 20  5c 20 72 65 2d 65 6e 61  |..$.CLI \ re-ena|
00000d50  62 6c 65 20 69 6e 74 65  72 72 75 70 74 73 0d 04  |ble interrupts..|
00000d60  2e 19 52 54 53 20 5c 20  72 65 74 75 72 6e 20 74  |..RTS \ return t|
00000d70  6f 20 42 41 53 49 43 0d  04 38 0e 2e 69 6e 74 65  |o BASIC..8..inte|
00000d80  72 72 75 70 74 0d 04 42  25 42 49 54 20 74 74 78  |rrupt..B%BIT ttx|
00000d90  73 74 61 74 75 73 20 5c  20 70 6f 6c 6c 20 54 54  |status \ poll TT|
00000da0  58 20 68 61 72 64 77 61  72 65 0d 04 4c 2a 42 4d  |X hardware..L*BM|
00000db0  49 20 74 74 78 69 6e 74  65 72 20 5c 20 62 72 61  |I ttxinter \ bra|
00000dc0  6e 63 68 20 69 66 20 54  54 58 20 69 6e 74 65 72  |nch if TTX inter|
00000dd0  72 75 70 74 0d 04 56 26  4a 4d 50 20 28 6f 6c 64  |rupt..V&JMP (old|
00000de0  69 72 71 32 76 29 20 5c  20 6e 6f 74 20 54 54 58  |irq2v) \ not TTX|
00000df0  20 69 6e 74 65 72 72 75  70 74 0d 04 60 0d 2e 74  | interrupt..`..t|
00000e00  74 78 69 6e 74 65 72 0d  04 6a 35 4c 44 41 20 73  |txinter..j5LDA s|
00000e10  61 76 65 72 65 67 20 5c  20 69 6e 74 65 72 72 75  |avereg \ interru|
00000e20  70 74 20 61 63 63 75 6d  75 6c 61 74 6f 72 20 73  |pt accumulator s|
00000e30  61 76 65 20 72 65 67 69  73 74 65 72 0d 04 74 32  |ave register..t2|
00000e40  50 48 41 20 5c 20 70 75  73 68 20 69 6e 74 65 72  |PHA \ push inter|
00000e50  72 75 70 74 20 61 63 63  75 6d 75 6c 61 74 6f 72  |rupt accumulator|
00000e60  20 73 61 76 65 20 72 65  67 69 73 74 65 72 0d 04  | save register..|
00000e70  7e 07 54 58 41 0d 04 88  10 50 48 41 20 5c 20 70  |~.TXA....PHA \ p|
00000e80  75 73 68 20 58 0d 04 92  07 54 59 41 0d 04 9c 10  |ush X....TYA....|
00000e90  50 48 41 20 5c 20 70 75  73 68 20 59 0d 04 a6 2f  |PHA \ push Y.../|
00000ea0  4c 44 41 20 67 72 61 62  66 6c 61 67 20 5c 20 69  |LDA grabflag \ i|
00000eb0  73 20 61 20 70 61 67 65  20 72 65 61 64 79 20 66  |s a page ready f|
00000ec0  6f 72 20 64 69 73 70 6c  61 79 3f 0d 04 b0 3a 42  |or display?...:B|
00000ed0  4d 49 20 63 6c 65 61 72  73 74 61 74 75 73 20 5c  |MI clearstatus \|
00000ee0  20 63 6c 65 61 72 20 73  74 61 74 75 73 20 61 6e  | clear status an|
00000ef0  64 20 52 54 49 20 69 66  20 70 61 67 65 20 67 72  |d RTI if page gr|
00000f00  61 62 62 65 64 0d 04 ba  1c 43 4c 44 20 5c 20 63  |abbed....CLD \ c|
00000f10  6c 65 61 72 20 64 65 63  69 6d 61 6c 20 66 6c 61  |lear decimal fla|
00000f20  67 0d 04 c4 1f 4c 44 59  20 23 26 30 30 20 5c 20  |g....LDY #&00 \ |
00000f30  73 74 61 72 74 20 77 69  74 68 20 72 6f 77 20 30  |start with row 0|
00000f40  0d 04 ce 0d 2e 72 65 61  64 74 74 78 74 0d 04 d8  |.....readttxt...|
00000f50  21 53 54 59 20 72 6f 77  72 65 67 20 5c 20 74 72  |!STY rowreg \ tr|
00000f60  79 20 72 6f 77 73 20 30  20 74 6f 20 31 35 0d 04  |y rows 0 to 15..|
00000f70  e2 23 4c 44 41 20 64 61  74 61 72 65 67 20 5c 20  |.#LDA datareg \ |
00000f80  6c 6f 61 64 20 66 72 61  6d 69 6e 67 20 63 6f 64  |load framing cod|
00000f90  65 0d 04 ec 27 42 45 51  20 65 6d 70 74 79 72 6f  |e...'BEQ emptyro|
00000fa0  77 20 5c 20 69 66 20 7a  65 72 6f 20 74 72 79 20  |w \ if zero try |
00000fb0  6e 65 78 74 20 72 6f 77  0d 04 f6 07 54 59 41 0d  |next row....TYA.|
00000fc0  05 00 19 50 48 41 20 5c  20 73 61 76 65 20 72 6f  |...PHA \ save ro|
00000fd0  77 20 6e 75 6d 62 65 72  0d 05 0a 12 4a 53 52 20  |w number....JSR |
00000fe0  72 65 61 64 70 61 63 6b  65 74 0d 05 14 07 50 4c  |readpacket....PL|
00000ff0  41 0d 05 1e 1c 54 41 59  20 5c 20 72 65 73 74 6f  |A....TAY \ resto|
00001000  72 65 20 72 6f 77 20 6e  75 6d 62 65 72 0d 05 28  |re row number..(|
00001010  0d 2e 65 6d 70 74 79 72  6f 77 0d 05 32 1e 49 4e  |..emptyrow..2.IN|
00001020  59 20 5c 20 69 6e 63 72  65 6d 65 6e 74 20 72 6f  |Y \ increment ro|
00001030  77 20 6e 75 6d 62 65 72  0d 05 3c 1e 43 50 59 20  |w number..<.CPY |
00001040  23 26 31 30 20 5c 20 74  72 79 20 72 6f 77 73 20  |#&10 \ try rows |
00001050  30 20 2d 20 31 35 0d 05  46 10 42 4e 45 20 72 65  |0 - 15..F.BNE re|
00001060  61 64 74 74 78 74 0d 05  50 10 2e 63 6c 65 61 72  |adttxt..P..clear|
00001070  73 74 61 74 75 73 0d 05  5a 0c 4c 44 41 20 23 26  |status..Z.LDA #&|
00001080  30 30 0d 05 64 27 4c 44  59 20 23 26 30 46 20 5c  |00..d'LDY #&0F \|
00001090  20 63 6c 65 61 72 20 31  36 20 72 6f 77 73 20 69  | clear 16 rows i|
000010a0  6e 20 61 64 61 70 74 6f  72 0d 05 6e 0e 2e 63 6c  |n adaptor..n..cl|
000010b0  65 61 72 6c 6f 6f 70 0d  05 78 0e 53 54 59 20 72  |earloop..x.STY r|
000010c0  6f 77 72 65 67 0d 05 82  0f 53 54 41 20 64 61 74  |owreg....STA dat|
000010d0  61 72 65 67 0d 05 8c 07  44 45 59 0d 05 96 11 42  |areg....DEY....B|
000010e0  50 4c 20 63 6c 65 61 72  6c 6f 6f 70 0d 05 a0 35  |PL clearloop...5|
000010f0  53 54 41 20 73 74 61 74  63 6c 72 20 5c 20 63 6c  |STA statclr \ cl|
00001100  65 61 72 20 73 74 61 74  75 73 20 66 6c 61 67 73  |ear status flags|
00001110  20 62 65 66 6f 72 65 20  72 65 74 75 72 6e 69 6e  | before returnin|
00001120  67 0d 05 aa 07 50 4c 41  0d 05 b4 13 54 41 59 20  |g....PLA....TAY |
00001130  5c 20 72 65 73 74 6f 72  65 20 59 0d 05 be 07 50  |\ restore Y....P|
00001140  4c 41 0d 05 c8 13 54 41  58 20 5c 20 72 65 73 74  |LA....TAX \ rest|
00001150  6f 72 65 20 58 0d 05 d2  07 50 4c 41 0d 05 dc 3d  |ore X....PLA...=|
00001160  53 54 41 20 73 61 76 65  72 65 67 20 5c 20 72 65  |STA savereg \ re|
00001170  73 74 6f 72 65 20 69 6e  74 65 72 72 75 70 74 20  |store interrupt |
00001180  61 63 63 75 6d 75 6c 61  74 6f 72 20 73 61 76 65  |accumulator save|
00001190  20 72 65 67 69 73 74 65  72 0d 05 e6 1f 52 54 49  | register....RTI|
000011a0  20 5c 20 72 65 74 75 72  6e 20 66 72 6f 6d 20 69  | \ return from i|
000011b0  6e 74 65 72 72 75 70 74  0d 05 f0 0f 2e 72 65 61  |nterrupt.....rea|
000011c0  64 70 61 63 6b 65 74 0d  05 fa 26 4c 44 59 20 64  |dpacket...&LDY d|
000011d0  61 74 61 72 65 67 20 5c  20 72 65 61 64 20 6d 61  |atareg \ read ma|
000011e0  67 61 7a 69 6e 65 20 6e  75 6d 62 65 72 0d 06 04  |gazine number...|
000011f0  1e 4c 44 41 20 68 61 6d  74 61 62 6c 65 2c 59 20  |.LDA hamtable,Y |
00001200  5c 20 64 65 2d 68 61 6d  20 69 74 0d 06 0e 26 42  |\ de-ham it...&B|
00001210  4d 49 20 72 65 74 75 72  6e 20 5c 20 73 74 6f 70  |MI return \ stop|
00001220  20 6c 6f 61 64 69 6e 67  20 69 66 20 65 72 72 6f  | loading if erro|
00001230  72 0d 06 18 27 53 54 41  20 6d 61 67 61 7a 69 6e  |r...'STA magazin|
00001240  65 20 5c 20 73 61 76 65  20 6d 61 67 61 7a 69 6e  |e \ save magazin|
00001250  65 20 6e 75 6d 62 65 72  0d 06 22 24 4c 44 59 20  |e number.."$LDY |
00001260  64 61 74 61 72 65 67 20  5c 20 72 65 61 64 20 70  |datareg \ read p|
00001270  61 63 6b 65 74 20 6e 75  6d 62 65 72 0d 06 2c 1e  |acket number..,.|
00001280  4c 44 41 20 68 61 6d 74  61 62 6c 65 2c 59 20 5c  |LDA hamtable,Y \|
00001290  20 64 65 2d 68 61 6d 20  69 74 0d 06 36 26 42 4d  | de-ham it..6&BM|
000012a0  49 20 72 65 74 75 72 6e  20 5c 20 73 74 6f 70 20  |I return \ stop |
000012b0  6c 6f 61 64 69 6e 67 20  69 66 20 65 72 72 6f 72  |loading if error|
000012c0  0d 06 40 23 53 54 41 20  70 61 63 6b 65 74 20 5c  |..@#STA packet \|
000012d0  20 73 61 76 65 20 70 61  63 6b 65 74 20 6e 75 6d  | save packet num|
000012e0  62 65 72 0d 06 4a 27 4c  44 41 20 6d 61 67 61 7a  |ber..J'LDA magaz|
000012f0  69 6e 65 20 5c 20 6c 6f  61 64 20 6d 61 67 61 7a  |ine \ load magaz|
00001300  69 6e 65 20 6e 75 6d 62  65 72 0d 06 54 3d 43 4d  |ine number..T=CM|
00001310  50 20 23 26 30 38 20 5c  20 62 69 74 20 33 20 6f  |P #&08 \ bit 3 o|
00001320  66 20 6d 61 67 2e 20 6e  75 6d 62 65 72 20 69 73  |f mag. number is|
00001330  20 62 69 74 20 30 20 6f  66 20 70 61 63 6b 65 74  | bit 0 of packet|
00001340  20 6e 75 6d 62 65 72 0d  06 5e 24 52 4f 4c 20 70  | number..^$ROL p|
00001350  61 63 6b 65 74 20 5c 20  35 20 62 69 74 20 70 61  |acket \ 5 bit pa|
00001360  63 6b 65 74 20 6e 75 6d  62 65 72 0d 06 68 1e 80  |cket number..h..|
00001370  20 23 26 30 37 20 5c 20  75 73 65 20 6f 6e 6c 79  | #&07 \ use only|
00001380  20 62 69 74 73 20 30 2d  32 0d 06 72 28 53 54 41  | bits 0-2..r(STA|
00001390  20 6d 61 67 61 7a 69 6e  65 20 5c 20 33 20 62 69  | magazine \ 3 bi|
000013a0  74 20 6d 61 67 61 7a 69  6e 65 20 6e 75 6d 62 65  |t magazine numbe|
000013b0  72 0d 06 7c 0e 4c 44 41  20 70 61 63 6b 65 74 0d  |r..|.LDA packet.|
000013c0  06 86 2a 43 4d 50 20 23  26 31 46 20 5c 20 69 67  |..*CMP #&1F \ ig|
000013d0  6e 6f 72 65 20 61 6c 6c  20 65 78 63 65 70 74 20  |nore all except |
000013e0  70 61 63 6b 65 74 20 33  31 0d 06 90 0e 42 4e 45  |packet 31....BNE|
000013f0  20 72 65 74 75 72 6e 0d  06 9a 1c 4c 44 41 20 63  | return....LDA c|
00001400  68 61 6e 6e 65 6c 20 5c  20 54 56 20 63 68 61 6e  |hannel \ TV chan|
00001410  6e 65 6c 0d 06 a4 1b 43  4d 50 20 23 26 31 45 20  |nel....CMP #&1E |
00001420  5c 20 69 73 20 74 68 69  73 20 49 54 56 3f 0d 06  |\ is this ITV?..|
00001430  ae 26 42 43 53 20 63 61  72 72 79 6f 6e 20 5c 20  |.&BCS carryon \ |
00001440  62 72 61 6e 63 68 20 69  66 20 49 54 56 20 6f 72  |branch if ITV or|
00001450  20 43 48 34 0d 06 b8 2c  4c 44 41 20 6d 61 67 61  | CH4...,LDA maga|
00001460  7a 69 6e 65 20 5c 20 74  68 69 73 20 6d 75 73 74  |zine \ this must|
00001470  20 62 65 20 42 42 43 31  20 6f 72 20 42 42 43 32  | be BBC1 or BBC2|
00001480  0d 06 c2 2b 43 4d 50 20  23 26 30 33 20 5c 20 69  |...+CMP #&03 \ i|
00001490  67 6e 6f 72 65 20 61 6c  6c 20 65 78 63 65 70 74  |gnore all except|
000014a0  20 63 68 61 6e 6e 65 6c  20 31 31 0d 06 cc 0e 42  | channel 11....B|
000014b0  4e 45 20 72 65 74 75 72  6e 0d 06 d6 0c 2e 63 61  |NE return.....ca|
000014c0  72 72 79 6f 6e 0d 06 e0  1f 4c 44 59 20 23 26 30  |rryon....LDY #&0|
000014d0  30 20 5c 20 72 65 61 64  20 62 79 74 65 73 20 30  |0 \ read bytes 0|
000014e0  20 2d 20 32 0d 06 ea 0b  2e 66 69 72 73 74 33 0d  | - 2.....first3.|
000014f0  06 f4 28 4c 44 58 20 64  61 74 61 72 65 67 20 5c  |..(LDX datareg \|
00001500  20 72 65 61 64 20 62 79  74 65 20 66 72 6f 6d 20  | read byte from |
00001510  61 64 61 70 74 6f 72 0d  06 fe 1e 4c 44 41 20 68  |adaptor....LDA h|
00001520  61 6d 74 61 62 6c 65 2c  58 20 5c 20 64 65 2d 68  |amtable,X \ de-h|
00001530  61 6d 6d 65 64 0d 07 08  20 42 4d 49 20 72 65 74  |ammed... BMI ret|
00001540  75 72 6e 20 5c 20 62 72  61 6e 63 68 20 69 66 20  |urn \ branch if |
00001550  65 72 72 6f 72 0d 07 12  31 53 54 41 20 62 75 66  |error...1STA buf|
00001560  66 65 72 2c 59 20 5c 20  73 74 6f 72 65 20 64 65  |fer,Y \ store de|
00001570  2d 68 61 6d 6d 65 64 20  62 79 74 65 20 69 6e 20  |-hammed byte in |
00001580  62 75 66 66 65 72 0d 07  1c 07 49 4e 59 0d 07 26  |buffer....INY..&|
00001590  0c 43 50 59 20 23 26 30  33 0d 07 30 2a 42 4e 45  |.CPY #&03..0*BNE|
000015a0  20 66 69 72 73 74 33 20  5c 20 64 65 2d 68 61 6d  | first3 \ de-ham|
000015b0  6d 20 66 69 72 73 74 20  74 68 72 65 65 20 62 79  |m first three by|
000015c0  74 65 73 0d 07 3a 21 4c  44 41 20 62 75 66 66 65  |tes..:!LDA buffe|
000015d0  72 20 5c 20 6c 6f 61 64  20 66 6f 72 6d 61 74 20  |r \ load format |
000015e0  74 79 70 65 0d 07 44 1b  80 20 23 26 30 31 20 5c  |type..D.. #&01 \|
000015f0  20 69 73 20 69 74 20 74  79 70 65 20 22 41 22 0d  | is it type "A".|
00001600  07 4e 27 42 4e 45 20 72  65 74 75 72 6e 20 5c 20  |.N'BNE return \ |
00001610  65 78 63 6c 75 64 65 20  61 6c 6c 20 62 75 74 20  |exclude all but |
00001620  74 79 70 65 20 41 0d 07  58 1c 4c 44 41 20 63 68  |type A..X.LDA ch|
00001630  61 6e 6e 65 6c 20 5c 20  54 56 20 63 68 61 6e 6e  |annel \ TV chann|
00001640  65 6c 0d 07 62 1b 43 4d  50 20 23 26 31 45 20 5c  |el..b.CMP #&1E \|
00001650  20 69 73 20 74 68 69 73  20 49 54 56 3f 0d 07 6c  | is this ITV?..l|
00001660  27 42 43 53 20 72 65 61  64 6d 6f 72 65 20 5c 20  |'BCS readmore \ |
00001670  62 72 61 6e 63 68 20 69  66 20 49 54 56 20 6f 72  |branch if ITV or|
00001680  20 43 48 34 0d 07 76 26  4c 44 41 20 62 75 66 66  | CH4..v&LDA buff|
00001690  65 72 2b 31 20 5c 20 6c  6f 61 64 20 61 64 64 72  |er+1 \ load addr|
000016a0  65 73 73 20 6c 65 6e 67  74 68 0d 07 80 39 43 4d  |ess length...9CM|
000016b0  50 20 23 26 30 31 20 5c  20 74 65 73 74 20 63 68  |P #&01 \ test ch|
000016c0  61 6e 6e 65 6c 20 68 61  73 20 61 20 31 20 6e 79  |annel has a 1 ny|
000016d0  62 62 6c 65 20 61 64 64  72 65 73 73 20 6c 65 6e  |bble address len|
000016e0  67 74 68 0d 07 8a 32 42  4e 45 20 72 65 74 75 72  |gth...2BNE retur|
000016f0  6e 20 5c 20 65 78 63 6c  75 64 65 20 61 6c 6c 20  |n \ exclude all |
00001700  6f 74 68 65 72 20 61 64  64 72 65 73 73 20 6c 65  |other address le|
00001710  6e 67 74 68 73 0d 07 94  23 4c 44 41 20 62 75 66  |ngths...#LDA buf|
00001720  66 65 72 2b 32 20 5c 20  6c 6f 61 64 20 74 68 65  |fer+2 \ load the|
00001730  20 61 64 64 72 65 73 73  0d 07 9e 29 43 4d 50 20  | address...)CMP |
00001740  23 26 30 37 20 5c 20 74  65 73 74 20 63 68 61 6e  |#&07 \ test chan|
00001750  6e 65 6c 20 68 61 73 20  61 64 64 72 65 73 73 20  |nel has address |
00001760  37 0d 07 a8 2c 42 4e 45  20 72 65 74 75 72 6e 20  |7...,BNE return |
00001770  5c 20 65 78 63 6c 75 64  65 20 61 6c 6c 20 6f 74  |\ exclude all ot|
00001780  68 65 72 20 61 64 64 72  65 73 73 65 73 0d 07 b2  |her addresses...|
00001790  0d 2e 72 65 61 64 6d 6f  72 65 0d 07 bc 28 4c 44  |..readmore...(LD|
000017a0  41 20 64 61 74 61 72 65  67 20 5c 20 72 65 61 64  |A datareg \ read|
000017b0  20 62 79 74 65 20 66 72  6f 6d 20 61 64 61 70 74  | byte from adapt|
000017c0  6f 72 0d 07 c6 22 53 54  41 20 62 75 66 66 65 72  |or..."STA buffer|
000017d0  2c 59 20 5c 20 73 74 6f  72 65 20 69 6e 20 62 75  |,Y \ store in bu|
000017e0  66 66 65 72 0d 07 d0 19  49 4e 59 20 5c 20 69 6e  |ffer....INY \ in|
000017f0  63 72 65 6d 65 6e 74 20  69 6e 64 65 78 0d 07 da  |crement index...|
00001800  19 43 50 59 20 23 26 32  38 20 5c 20 64 65 63 69  |.CPY #&28 \ deci|
00001810  6d 61 6c 20 34 30 0d 07  e4 23 42 4e 45 20 72 65  |mal 40...#BNE re|
00001820  61 64 6d 6f 72 65 20 5c  20 67 6f 20 62 61 63 6b  |admore \ go back|
00001830  20 66 6f 72 20 6d 6f 72  65 0d 07 ee 1a 4c 44 41  | for more....LDA|
00001840  20 23 26 38 30 20 5c 20  64 65 63 69 6d 61 6c 20  | #&80 \ decimal |
00001850  31 32 38 0d 07 f8 20 53  54 41 20 67 72 61 62 66  |128... STA grabf|
00001860  6c 61 67 20 5c 20 70 61  63 6b 65 74 20 6c 6f 61  |lag \ packet loa|
00001870  64 65 64 0d 08 02 0b 2e  72 65 74 75 72 6e 0d 08  |ded.....return..|
00001880  0c 07 52 54 53 0d 08 16  0d 2e 6f 6c 64 69 72 71  |..RTS.....oldirq|
00001890  32 76 0d 08 20 0c 45 51  55 57 20 26 30 30 0d 08  |2v.. .EQUW &00..|
000018a0  2a 0d 2e 68 61 6d 74 61  62 6c 65 0d 08 34 12 45  |*..hamtable..4.E|
000018b0  51 55 44 20 26 30 31 30  31 46 46 30 31 0d 08 3e  |QUD &0101FF01..>|
000018c0  12 45 51 55 44 20 26 46  46 30 31 30 30 46 46 0d  |.EQUD &FF0100FF.|
000018d0  08 48 12 45 51 55 44 20  26 46 46 30 31 30 32 46  |.H.EQUD &FF0102F|
000018e0  46 0d 08 52 12 45 51 55  44 20 26 30 37 46 46 46  |F..R.EQUD &07FFF|
000018f0  46 30 41 0d 08 5c 12 45  51 55 44 20 26 46 46 30  |F0A..\.EQUD &FF0|
00001900  31 30 30 46 46 0d 08 66  12 45 51 55 44 20 26 30  |100FF..f.EQUD &0|
00001910  30 46 46 30 30 30 30 0d  08 70 12 45 51 55 44 20  |0FF0000..p.EQUD |
00001920  26 30 42 46 46 46 46 30  36 0d 08 7a 12 45 51 55  |&0BFFFF06..z.EQU|
00001930  44 20 26 46 46 30 33 30  30 46 46 0d 08 84 12 45  |D &FF0300FF....E|
00001940  51 55 44 20 26 46 46 30  31 30 43 46 46 0d 08 8e  |QUD &FF010CFF...|
00001950  12 45 51 55 44 20 26 30  37 46 46 46 46 30 34 0d  |.EQUD &07FFFF04.|
00001960  08 98 12 45 51 55 44 20  26 30 37 46 46 46 46 30  |...EQUD &07FFFF0|
00001970  36 0d 08 a2 12 45 51 55  44 20 26 30 37 30 37 30  |6....EQUD &07070|
00001980  37 46 46 0d 08 ac 12 45  51 55 44 20 26 30 35 46  |7FF....EQUD &05F|
00001990  46 46 46 30 36 0d 08 b6  12 45 51 55 44 20 26 46  |FFF06....EQUD &F|
000019a0  46 30 44 30 30 46 46 0d  08 c0 12 45 51 55 44 20  |F0D00FF....EQUD |
000019b0  26 46 46 30 36 30 36 30  36 0d 08 ca 12 45 51 55  |&FF060606....EQU|
000019c0  44 20 26 30 37 46 46 46  46 30 36 0d 08 d4 12 45  |D &07FFFF06....E|
000019d0  51 55 44 20 26 46 46 30  31 30 32 46 46 0d 08 de  |QUD &FF0102FF...|
000019e0  12 45 51 55 44 20 26 30  39 46 46 46 46 30 34 0d  |.EQUD &09FFFF04.|
000019f0  08 e8 12 45 51 55 44 20  26 30 32 46 46 30 32 30  |...EQUD &02FF020|
00001a00  32 0d 08 f2 12 45 51 55  44 20 26 46 46 30 33 30  |2....EQUD &FF030|
00001a10  32 46 46 0d 08 fc 12 45  51 55 44 20 26 30 35 46  |2FF....EQUD &05F|
00001a20  46 46 46 30 38 0d 09 06  12 45 51 55 44 20 26 46  |FFF08....EQUD &F|
00001a30  46 30 33 30 30 46 46 0d  09 10 12 45 51 55 44 20  |F0300FF....EQUD |
00001a40  26 46 46 30 33 30 32 46  46 0d 09 1a 12 45 51 55  |&FF0302FF....EQU|
00001a50  44 20 26 30 33 30 33 46  46 30 33 0d 09 24 12 45  |D &0303FF03..$.E|
00001a60  51 55 44 20 26 30 35 46  46 46 46 30 34 0d 09 2e  |QUD &05FFFF04...|
00001a70  12 45 51 55 44 20 26 46  46 30 34 30 34 30 34 0d  |.EQUD &FF040404.|
00001a80  09 38 12 45 51 55 44 20  26 46 46 30 46 30 32 46  |.8.EQUD &FF0F02F|
00001a90  46 0d 09 42 12 45 51 55  44 20 26 30 37 46 46 46  |F..B.EQUD &07FFF|
00001aa0  46 30 34 0d 09 4c 12 45  51 55 44 20 26 30 35 30  |F04..L.EQUD &050|
00001ab0  35 30 35 46 46 0d 09 56  12 45 51 55 44 20 26 30  |505FF..V.EQUD &0|
00001ac0  35 46 46 46 46 30 34 0d  09 60 12 45 51 55 44 20  |5FFFF04..`.EQUD |
00001ad0  26 30 35 46 46 46 46 30  36 0d 09 6a 12 45 51 55  |&05FFFF06..j.EQU|
00001ae0  44 20 26 46 46 30 33 30  45 46 46 0d 09 74 12 45  |D &FF030EFF..t.E|
00001af0  51 55 44 20 26 46 46 30  31 30 43 46 46 0d 09 7e  |QUD &FF010CFF..~|
00001b00  12 45 51 55 44 20 26 30  39 46 46 46 46 30 41 0d  |.EQUD &09FFFF0A.|
00001b10  09 88 12 45 51 55 44 20  26 30 42 46 46 46 46 30  |...EQUD &0BFFFF0|
00001b20  41 0d 09 92 12 45 51 55  44 20 26 46 46 30 41 30  |A....EQUD &FF0A0|
00001b30  41 30 41 0d 09 9c 12 45  51 55 44 20 26 30 42 46  |A0A....EQUD &0BF|
00001b40  46 46 46 30 38 0d 09 a6  12 45 51 55 44 20 26 46  |FFF08....EQUD &F|
00001b50  46 30 44 30 30 46 46 0d  09 b0 12 45 51 55 44 20  |F0D00FF....EQUD |
00001b60  26 30 42 30 42 30 42 46  46 0d 09 ba 12 45 51 55  |&0B0B0BFF....EQU|
00001b70  44 20 26 30 42 46 46 46  46 30 41 0d 09 c4 12 45  |D &0BFFFF0A....E|
00001b80  51 55 44 20 26 30 43 46  46 30 43 30 43 0d 09 ce  |QUD &0CFF0C0C...|
00001b90  12 45 51 55 44 20 26 46  46 30 44 30 43 46 46 0d  |.EQUD &FF0D0CFF.|
00001ba0  09 d8 12 45 51 55 44 20  26 46 46 30 46 30 43 46  |...EQUD &FF0F0CF|
00001bb0  46 0d 09 e2 12 45 51 55  44 20 26 30 37 46 46 46  |F....EQUD &07FFF|
00001bc0  46 30 41 0d 09 ec 12 45  51 55 44 20 26 46 46 30  |F0A....EQUD &FF0|
00001bd0  44 30 43 46 46 0d 09 f6  12 45 51 55 44 20 26 30  |D0CFF....EQUD &0|
00001be0  44 30 44 46 46 30 44 0d  0a 00 12 45 51 55 44 20  |D0DFF0D....EQUD |
00001bf0  26 30 42 46 46 46 46 30  36 0d 0a 0a 12 45 51 55  |&0BFFFF06....EQU|
00001c00  44 20 26 46 46 30 44 30  45 46 46 0d 0a 14 12 45  |D &FF0D0EFF....E|
00001c10  51 55 44 20 26 30 39 46  46 46 46 30 38 0d 0a 1e  |QUD &09FFFF08...|
00001c20  12 45 51 55 44 20 26 30  39 30 39 30 39 46 46 0d  |.EQUD &090909FF.|
00001c30  0a 28 12 45 51 55 44 20  26 46 46 30 46 30 32 46  |.(.EQUD &FF0F02F|
00001c40  46 0d 0a 32 12 45 51 55  44 20 26 30 39 46 46 46  |F..2.EQUD &09FFF|
00001c50  46 30 41 0d 0a 3c 12 45  51 55 44 20 26 46 46 30  |F0A..<.EQUD &FF0|
00001c60  38 30 38 30 38 0d 0a 46  12 45 51 55 44 20 26 30  |80808..F.EQUD &0|
00001c70  39 46 46 46 46 30 38 0d  0a 50 12 45 51 55 44 20  |9FFFF08..P.EQUD |
00001c80  26 30 42 46 46 46 46 30  38 0d 0a 5a 12 45 51 55  |&0BFFFF08..Z.EQU|
00001c90  44 20 26 46 46 30 33 30  45 46 46 0d 0a 64 12 45  |D &FF030EFF..d.E|
00001ca0  51 55 44 20 26 46 46 30  46 30 43 46 46 0d 0a 6e  |QUD &FF0F0CFF..n|
00001cb0  12 45 51 55 44 20 26 30  39 46 46 46 46 30 34 0d  |.EQUD &09FFFF04.|
00001cc0  0a 78 12 45 51 55 44 20  26 30 46 30 46 46 46 30  |.x.EQUD &0F0FFF0|
00001cd0  46 0d 0a 82 12 45 51 55  44 20 26 46 46 30 46 30  |F....EQUD &FF0F0|
00001ce0  45 46 46 0d 0a 8c 12 45  51 55 44 20 26 30 35 46  |EFF....EQUD &05F|
00001cf0  46 46 46 30 38 0d 0a 96  12 45 51 55 44 20 26 46  |FFF08....EQUD &F|
00001d00  46 30 44 30 45 46 46 0d  0a a0 12 45 51 55 44 20  |F0D0EFF....EQUD |
00001d10  26 46 46 30 46 30 45 46  46 0d 0a aa 12 45 51 55  |&FF0F0EFF....EQU|
00001d20  44 20 26 30 45 46 46 30  45 30 45 0d 0a b4 0b 2e  |D &0EFF0E0E.....|
00001d30  62 75 66 66 65 72 0d 0a  be 11 45 51 55 53 20 c4  |buffer....EQUS .|
00001d40  34 30 2c 22 20 22 29 0d  0a c8 05 5d 0d 0a d2 05  |40," ")....]....|
00001d50  ed 0d 0a dc 05 e1 0d ff                           |........|
00001d58
21-02-89/Datcast.m0
21-02-89/Datcast.m1
21-02-89/Datcast.m2
21-02-89/Datcast.m4
21-02-89/Datcast.m5