Home » CEEFAX disks » telesoftware11.adl » 16-12-88/LOADER

16-12-88/LOADER

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 » telesoftware11.adl
Filename: 16-12-88/LOADER
Read OK:
File size: 19DC bytes
Load address: FFFF1900
Exec address: FFFF8023
File contents
   10REM"�(C) Jeremy Brayshaw
   20REM"�March 1988
   30REM"�Modified by Gordon Horsington
   40REM"�For use with ATS�and mouse
   50:
   60ONERROR CLS:REPORT:PRINT" at line ";ERL:GOTO380
   70MODE7
   80VDU23;8202;0;0;0;
   90*TTXON
  100*BBC2
  110*HON
  120PROCmove_oshwm
  130PROCmcode
  140DIM space 20,name 12,line 15
  150DIMpage%(40),fname$(40),load%(40),exec%(40),pages$(40),mag%(40),D(5),flag%(40)
  160PROCheading("File:�Catalogue")
  170A%=TIME:REPEAT:UNTILTIME>A%+200
  180PROCfindcat(FNgetlink)
  190IFM%>9 ORN%>&FE PROCheading("�Error�- No Catalogue"):GOTO380
  200PROCheading("File:�Catalogue    �Page:�"+STR$(M%)+RIGHT$("00"+STR$~(N%),2))
  210PRINTTAB(1,0);"P";STR$(M%);RIGHT$("00"+STR$~(N%),2)
  220PROCdownload(M%,N%,"",0,0,FALSE,TRUE)
  230PROCinterpret
  240IFZ%=0 MODE7:PROCheading("�No BBC files broadcast this week"):GOTO380
  250MODE7:VDU23;8202;0;0;0;:PROCselect
  260N%=0
  270FORW%=1TOZ%
  280IF NOT flag%(W%) GOTO350
  290N%=N%+1
  300MODE7:VDU23;8202;0;0;0;
  310PROCheading("File:�"+fname$(W%)+STRING$((12-LEN(fname$(W%)))," ")+"�Length:�"+pages$(W%))
  320PRINTTAB(1,0);"P";mag%(W%);RIGHT$("00"+STR$~(page%(W%)),2)
  330PROCdownload(mag%(W%),page%(W%),fname$(W%),load%(W%),exec%(W%),TRUE,TRUE)
  340REM PROCdownload(mag%,page%,fname$,load%,exec%,file%,reset%)
  350NEXT
  360MODE7
  370PROCheading(" "+STR$(N%)+" out of "+STR$(Z%)+" files downloaded.")
  380*TTXOFF
  390PROCreturn_oshwm
  400CALL mcode
  410END
  420:
  430DEFPROCmove_oshwm
  440S%=&5000
  450A%=&B4:X%=S%DIV256:Y%=0:CALL&FFF4
  460ENDPROC
  470:
  480DEFPROCdownload(magazine%,page%,filename$,load%,exec%,save%,reset%)
  490PROCoscli("MAGAZINE "+STR$(magazine%))
  500space?0=24
  510space?1=name MOD256:space?2=name DIV256
  520$name=filename$
  530space!3=load%
  540space!7=exec%
  550space?11=magazine%
  560space?12=page%
  570IFsave%=TRUE space?13=1 ELSE space?13=0
  580IFreset%=TRUE space?14=0 ELSE space?14=1
  590A%=&7A:X%=space MOD256:Y%=space DIV256
  600CALL&FFF1
  610ENDPROC
  620:
  630DEFPROCoscli(text$)
  640$line=text$:X%=line MOD256:Y%=line DIV256
  650CALL&FFF7
  660ENDPROC
  670:
  680DEFPROCheading(fname$)
  690CLS
  700PRINT'CHR$132;CHR$157;CHR$141;"�BBC Telesoftware file downloader"
  710PRINTCHR$132;CHR$157;CHR$141;"�BBC Telesoftware file downloader"
  720PRINTTAB(1,3)fname$
  730ENDPROC
  740:
  750DEFPROCreturn_oshwm
  760A%=&B4:X%=PAGE DIV256:Y%=0:CALL&FFF4
  770ENDPROC
  780:
  790DEFPROCinterpret
  800sta%=S%:Z%=0
  810sta%=sta%+1+?sta%:sta%=sta%+1+?sta%
  820Z=0:REPEAT
  830REM"�m/c:
  840len%=?sta%
  850FORA%=sta%TOsta%+len%:?A%=(?A%)AND&7F:NEXT
  860T%=?(sta%+len%+1):?(sta%+len%+1)=13:sta$=$(sta%+1):?(sta%+len%+1)=T%
  870sta%=sta%+1+?sta%
  880IFsta$<>"BBC" AND sta$<>"ANY" use%=FALSE ELSE use%=TRUE
  890IFsta$="***" GOTO1090
  900REM"�filename:
  910len%=?sta%
  920FORA%=sta%TOsta%+len%:?A%=(?A%)AND&7F
  930IF?A%>&40 ?A%=(?A%)AND&DF
  940NEXT
  950T%=?(sta%+len%+1):?(sta%+len%+1)=13:sta$=$(sta%+2):?(sta%+len%+1)=T%
  960sta%=sta%+1+?sta%
  970REM"�File type:
  980len%=?sta%
  990FORA%=sta%TOsta%+len%:?A%=((?A%)AND&7F)AND&DF:NEXT
 1000T%=?(sta%+len%+1):?(sta%+len%+1)=13:sta2$=$(sta%+1):?(sta%+len%+1)=T%
 1010sta%=sta%+1+?sta%
 1020len%=?sta%
 1030FORA%=sta%TOsta%+len%:?A%=(?A%)AND&7F:NEXT
 1040T%=?(sta%+len%+1):?(sta%+len%+1)=13:sta3$=$(sta%+1):?(sta%+len%+1)=T%
 1050sta%=sta%+1+?sta%
 1060REM"�TEST FOR DOWNLOADING:
 1070IFuse% Z%=Z%+1:fname$(Z%)=sta$:pages$(Z%)=sta3$:load%(Z%)=FNaddr(sta%):exec%(Z%)=FNaddr(sta%+4):mag%(Z%)=?(sta%+8):page%(Z%)=?(sta%+9):flag%(Z%)=TRUE
 1080sta%=sta%+10
 1090UNTILsta$="***"
 1100ENDPROC
 1110:
 1120DEFFNaddr(st%)
 1130=EVAL("&"+STR$~(?st%)+STR$~((st%?1*256 + st%?2)*256 + st%?3))
 1140DEFFNgetlink
 1150space?0=15:A%=&7A:X%=space MOD256:Y%=space DIV256:CALL&FFF1
 1160IF((space?1)*100)+space?2>999 PROCheading("�Error�- No Catalogue"):GOTO380
 1170=((space?1)*100)+space?2
 1180:
 1190DEFPROCfindcat(O%)
 1200PROCoscli("PAGE "+STR$(O%))
 1210LOCALa%,pn$,row%
 1220*DATA 5000
 1230a%=&5000-42
 1240REPEAT
 1250a%=a%+42
 1260UNTIL(a%?1=27 AND FNdeham(a%?2)=0) ORa%>&5800
 1270IFa%>&5800 M%=0:PROCheading("�Error�-no catalogue"):GOTO380
 1280FORV%=0TO5
 1290D(V%)=27+V%
 1300D(V%)=FNdeham(a%?D(V%))
 1310NEXT
 1320M%=(((D(5) AND12)DIV2)OR(D(3) DIV8))EOR(O%DIV100)
 1330N%=(D(1)*16)+(D(0))
 1340ENDPROC
 1350:
 1360DEFFNdeham(byte%)
 1370space?0=25:space?1=byte%:A%=&7A:X%=space MOD256:Y%=space DIV256:CALL&FFF1
 1380=(space?2)AND&F
 1390:
 1400DEFPROCselect
 1410PROCheading("�S�= save : �N�= ignore"):FORA%=1TOZ%:PRINTTAB((A%DIV17)*20,(A%MOD17)+5);
 1420PRINT"� �";LEFT$(fname$(A%)+STRING$(8," "),8);"�";"S�"
 1430NEXT
 1440PRINTTAB(0,23)"�Keyboard�/�Mouse�:�Space�Left�= toggle"'"�Return�Centre�= download chosen files.";
 1450Q=FALSE
 1460cursor%=1
 1470PRINTTAB(1,6)"]"
 1480REPEAT
 1490PROCdelay
 1500IF INKEY(-58) PROCcursor_up
 1510IF INKEY(-42) PROCcursor_down
 1520IF INKEY(-99) PROCtoggle(cursor%)
 1530IF INKEY(-74) Q=TRUE
 1540UNTIL Q
 1550*FX21,0
 1560ENDPROC
 1570:
 1580DEFPROCtoggle(no%):flag%(no%)=NOT flag%(no%)
 1590PRINTTAB(((no%DIV17)*20)+2,(no%MOD17)+5);:IFflag%(no%):PRINT"�" ELSE PRINT"�"
 1600PRINTTAB(((no%DIV17)*20)+11,(no%MOD17)+5);
 1610IFflag%(no%):PRINT"�S" ELSE PRINT"�N"
 1620PROCdelay
 1630ENDPROC
 1640:
 1650DEFPROCcursor_up
 1660IF cursor%=1 ENDPROC
 1670PRINTTAB((cursor% DIV 17)*20+1,(cursor% MOD 17)+5);" "
 1680cursor%=cursor%-1
 1690PRINTTAB((cursor% DIV 17)*20+1,(cursor% MOD 17)+5);"]"
 1700ENDPROC
 1710:
 1720DEFPROCcursor_down
 1730IF cursor%=Z% ENDPROC
 1740PRINTTAB((cursor% DIV 17)*20+1,(cursor% MOD 17)+5);" "
 1750cursor%=cursor%+1
 1760PRINTTAB((cursor% DIV 17)*20+1,(cursor% MOD 17)+5);"]"
 1770ENDPROC
 1780:
 1790DEFPROCdelay
 1800TIME=0
 1810REPEAT UNTIL TIME > 10
 1820ENDPROC
 1830:
 1840DEFPROCmcode
 1850userv=&200
 1860irq1v=&204
 1870bytev=&20A
 1880mcode=&A00
 1890ddrb=&FE62
 1900drb=&FE60
 1910pcr=&FE6C
 1920ifr=&FE6D
 1930ier=&FE6E
 1940osword=&FFF1
 1950osbyte=&FFF4
 1960FOR pass=0 TO 2 STEP 2
 1970P%=mcode
 1980[OPT pass
 1990LDX irq1v
 2000LDY irq1v+1
 2010CPY #interrupt DIV 256
 2020BEQ disable
 2030STX oldirq1v
 2040STY oldirq1v+1
 2050LDX bytev
 2060LDY bytev+1
 2070STX oldbytev
 2080STY oldbytev+1
 2090LDX #interrupt MOD 256
 2100LDY #interrupt DIV 256
 2110SEI
 2120STX irq1v
 2130STY irq1v+1
 2140CLI
 2150LDX #newinkey MOD 256
 2160LDY #newinkey DIV 256
 2170STX bytev
 2180STY bytev+1
 2190LDA #&88
 2200STA ier
 2210LDA pcr
 2220AND #&0F
 2230ORA #&40
 2240STA pcr
 2250LDA #&00
 2260STA ddrb
 2270RTS
 2280.disable
 2290LDA #&08
 2300LDX oldirq1v
 2310LDY oldirq1v+1
 2320SEI
 2330STA ier
 2340LDA pcr
 2350AND #&0F
 2360STA pcr
 2370STX irq1v
 2380STY irq1v+1
 2390CLI
 2400LDX oldbytev
 2410LDY oldbytev+1
 2420STX bytev
 2430STY bytev+1
 2440RTS
 2450.interrupt
 2460LDA &FC
 2470PHA
 2480LDA ifr
 2490BPL notuser
 2500AND #&08
 2510BEQ notuser
 2520LDA drb
 2530AND #&04
 2540BNE ydown
 2550INC ycoord
 2560BNE exit
 2570BEQ decy
 2580.ydown
 2590LDA ycoord
 2600BEQ exit
 2610.decy
 2620DEC ycoord
 2630.exit
 2640PLA
 2650STA &FC
 2660RTI
 2670.notuser
 2680PLA
 2690STA &FC
 2700JMP (oldirq1v)
 2710.newinkey
 2720PHP
 2730CMP #&81
 2740BNE notinkey
 2750CPY #&FF
 2760BEQ inkey
 2770.notinkey
 2780PLP
 2790.oldcode
 2800JMP (oldbytev)
 2810.inkey
 2820TXA
 2830PHA
 2840LDA #&81
 2850JSR oldcode
 2860CPX #&FF
 2870BNE notpressed
 2880PLA
 2890.pullout
 2900LDA #&81
 2910PLP
 2920RTS
 2930.notpressed
 2940PLA
 2950CMP up
 2960BNE trydown
 2970LDA ycoord
 2980CMP #&88
 2990BCC pullout
 3000BCS resety
 3010.trydown
 3020CMP down
 3030BNE trybuttons
 3040LDA ycoord
 3050CMP #&78
 3060BCS pullout
 3070.resety
 3080LDA #&80
 3090STA ycoord
 3100BNE found
 3110.trybuttons
 3120CMP centrebutton
 3130BNE tryleft
 3140LDA drb
 3150JMP two
 3160.tryleft
 3170CMP leftbutton
 3180BNE pullout
 3190LDA drb
 3200ROL A
 3210.two
 3220ROL A
 3230ROL A
 3240BCS pullout
 3250.found
 3260LDA #&81
 3270LDX #&FF
 3280LDY #&FF
 3290PLP
 3300RTS
 3310.centrebutton
 3320EQUB -74
 3330.leftbutton
 3340EQUB -99
 3350.up
 3360EQUB -58
 3370.down
 3380EQUB -42
 3390.oldirq1v
 3400EQUW &00
 3410.oldbytev
 3420EQUW &00
 3430.ycoord
 3440EQUB &80
 3450]
 3460NEXT
 3470CALL mcode
 3480ENDPROC

�"�(C) Jeremy Brayshaw
�"�March 1988
$�"�Modified by Gordon Horsington
(!�"�For use with ATS�and mouse
2:
<� �:�:�" at line ";�:�D|A
F�7
P�23;8202;0;0;0;
Z
*TTXON
d	*BBC2
n*HON
x�move_oshwm
�
�mcode
�� space 20,name 12,line 15
�P�page%(40),fname$(40),load%(40),exec%(40),pages$(40),mag%(40),D(5),flag%(40)
��heading("File:�Catalogue")
�A%=�:�:��>A%+200
��findcat(�getlink)
�9�M%>9 �N%>&FE �heading("�Error�- No Catalogue"):�D|A
�@�heading("File:�Catalogue    �Page:�"+�(M%)+�"00"+�~(N%),2))
�$�1,0);"P";�(M%);�"00"+�~(N%),2)
��download(M%,N%,"",0,0,�,�)
��interpret
�@�Z%=0 �7:�heading("�No BBC files broadcast this week"):�D|A
��7:�23;8202;0;0;0;:�select
N%=0
�W%=1�Z%
� � flag%(W%) �D^A
"N%=N%+1
,�7:�23;8202;0;0;0;
6Q�heading("File:�"+fname$(W%)+�(12-�(fname$(W%)))," ")+"�Length:�"+pages$(W%))
@.�1,0);"P";mag%(W%);�"00"+�~(page%(W%)),2)
JD�download(mag%(W%),page%(W%),fname$(W%),load%(W%),exec%(W%),�,�)
T>� PROCdownload(mag%,page%,fname$,load%,exec%,file%,reset%)
^�
h�7
r=�heading(" "+�(N%)+" out of "+�(Z%)+" files downloaded.")
|*TTXOFF
��return_oshwm
�� mcode
��
�:
���move_oshwm
�S%=&5000
� A%=&B4:X%=S%�256:Y%=0:�&FFF4
��
�:
�B��download(magazine%,page%,filename$,load%,exec%,save%,reset%)
�$�oscli("MAGAZINE "+�(magazine%))
�space?0=24
�'space?1=name �256:space?2=name �256
$name=filename$
space!3=load%
space!7=exec%
&space?11=magazine%
0space?12=page%
:$�save%=� space?13=1 � space?13=0
D%�reset%=� space?14=0 � space?14=1
N&A%=&7A:X%=space �256:Y%=space �256
X
�&FFF1
b�
l:
v��oscli(text$)
�)$line=text$:X%=line �256:Y%=line �256
�
�&FFF7
��
�:
���heading(fname$)
��
�8�'�132;�157;�141;"�BBC Telesoftware file downloader"
�7�132;�157;�141;"�BBC Telesoftware file downloader"
��1,3)fname$
��
�:
���return_oshwm
� A%=&B4:X%=� �256:Y%=0:�&FFF4
�
:
��interpret
 sta%=S%:Z%=0
*'sta%=sta%+1+?sta%:sta%=sta%+1+?sta%
4	Z=0:�
>�"�m/c:
Hlen%=?sta%
R&�A%=sta%�sta%+len%:?A%=(?A%)�&7F:�
\HT%=?(sta%+len%+1):?(sta%+len%+1)=13:sta$=$(sta%+1):?(sta%+len%+1)=T%
fsta%=sta%+1+?sta%
p.�sta$<>"BBC" � sta$<>"ANY" use%=� � use%=�
z�sta$="***" �DBD
��"�filename:
�len%=?sta%
�$�A%=sta%�sta%+len%:?A%=(?A%)�&7F
��?A%>&40 ?A%=(?A%)�&DF
��
�HT%=?(sta%+len%+1):?(sta%+len%+1)=13:sta$=$(sta%+2):?(sta%+len%+1)=T%
�sta%=sta%+1+?sta%
��"�File type:
�len%=?sta%
�,�A%=sta%�sta%+len%:?A%=((?A%)�&7F)�&DF:�
�IT%=?(sta%+len%+1):?(sta%+len%+1)=13:sta2$=$(sta%+1):?(sta%+len%+1)=T%
�sta%=sta%+1+?sta%
�len%=?sta%
&�A%=sta%�sta%+len%:?A%=(?A%)�&7F:�
IT%=?(sta%+len%+1):?(sta%+len%+1)=13:sta3$=$(sta%+1):?(sta%+len%+1)=T%
sta%=sta%+1+?sta%
$�"�TEST FOR DOWNLOADING:
.��use% Z%=Z%+1:fname$(Z%)=sta$:pages$(Z%)=sta3$:load%(Z%)=�addr(sta%):exec%(Z%)=�addr(sta%+4):mag%(Z%)=?(sta%+8):page%(Z%)=?(sta%+9):flag%(Z%)=�
8sta%=sta%+10
B�sta$="***"
L�
V:
`ݤaddr(st%)
j8=�("&"+�~(?st%)+�~((st%?1*256 + st%?2)*256 + st%?3))
t
ݤgetlink
~8space?0=15:A%=&7A:X%=space �256:Y%=space �256:�&FFF1
�H�((space?1)*100)+space?2>999 �heading("�Error�- No Catalogue"):�D|A
�=((space?1)*100)+space?2
�:
���findcat(O%)
��oscli("PAGE "+�(O%))
��a%,pn$,row%
�*DATA 5000
�a%=&5000-42
��
�a%=a%+42
�)�(a%?1=27 � �deham(a%?2)=0) �a%>&5800
�9�a%>&5800 M%=0:�heading("�Error�-no catalogue"):�D|A
�V%=0�5

D(V%)=27+V%
D(V%)=�deham(a%?D(V%))
�
(*M%=(((D(5) �12)�2)�(D(3) �8))�(O%�100)
2N%=(D(1)*16)+(D(0))
<�
F:
Pݤdeham(byte%)
ZFspace?0=25:space?1=byte%:A%=&7A:X%=space �256:Y%=space �256:�&FFF1
d=(space?2)�&F
n:
x��select
�I�heading("�S�= save : �N�= ignore"):�A%=1�Z%:�(A%�17)*20,(A%�17)+5);
�*�"� �";�fname$(A%)+�8," "),8);"�";"S�"
��
�_�0,23)"�Keyboard�/�Mouse�:�Space�Left�= toggle"'"�Return�Centre�= download chosen files.";
�Q=�
�
cursor%=1
�
�1,6)"]"
��
�
�delay
�� �(-58) �cursor_up
�� �(-42) �cursor_down
�� �(-99) �toggle(cursor%)
�� �(-74) Q=�
� Q
*FX21,0
�
":
,)��toggle(no%):flag%(no%)=� flag%(no%)
6:�((no%�17)*20)+2,(no%�17)+5);:�flag%(no%):�"�" � �"�"
@#�((no%�17)*20)+11,(no%�17)+5);
J�flag%(no%):�"�S" � �"�N"
T
�delay
^�
h:
r��cursor_up
|� cursor%=1 �
�/�(cursor% � 17)*20+1,(cursor% � 17)+5);" "
�cursor%=cursor%-1
�/�(cursor% � 17)*20+1,(cursor% � 17)+5);"]"
��
�:
���cursor_down
�� cursor%=Z% �
�/�(cursor% � 17)*20+1,(cursor% � 17)+5);" "
�cursor%=cursor%+1
�/�(cursor% � 17)*20+1,(cursor% � 17)+5);"]"
��
�:
���delay
�=0
� � � > 10
�
&:
0��mcode
:userv=&200
Dirq1v=&204
Nbytev=&20A
Xmcode=&A00
bddrb=&FE62
l
drb=&FE60
v
pcr=&FE6C
�
ifr=&FE6D
�
ier=&FE6E
�osword=&FFF1
�osbyte=&FFF4
�� pass=0 � 2 � 2
�P%=mcode
�
[OPT pass
�
LDX irq1v
�LDY irq1v+1
�CPY #interrupt � 256
�BEQ disable
�STX oldirq1v
�STY oldirq1v+1

LDX bytev
LDY bytev+1
STX oldbytev
 STY oldbytev+1
*LDX #interrupt � 256
4LDY #interrupt � 256
>SEI
H
STX irq1v
RSTY irq1v+1
\CLI
fLDX #newinkey � 256
pLDY #newinkey � 256
z
STX bytev
�STY bytev+1
�LDA #&88
�STA ier
�LDA pcr
�
� #&0F
��A #&40
�STA pcr
�LDA #&00
�STA ddrb
�RTS
�.disable
�LDA #&08
�LDX oldirq1v
	LDY oldirq1v+1
	SEI
	STA ier
	$LDA pcr
	.
� #&0F
	8STA pcr
	B
STX irq1v
	LSTY irq1v+1
	VCLI
	`LDX oldbytev
	jLDY oldbytev+1
	t
STX bytev
	~STY bytev+1
	�RTS
	�.interrupt
	�LDA &FC
	�PHA
	�LDA ifr
	�BPL notuser
	�
� #&08
	�BEQ notuser
	�LDA drb
	�
� #&04
	�
BNE ydown
	�INC ycoord
BNE exit

BEQ decy

.ydown
LDA ycoord
(BEQ exit
2	.decy
<DEC ycoord
F	.exit
PPLA
ZSTA &FC
dRTI
n.notuser
xPLA
�STA &FC
�JMP (oldirq1v)
�
.newinkey
�PHP
�CMP #&81
�BNE notinkey
�CPY #&FF
�
BEQ inkey
�
.notinkey
�PLP
�.oldcode
�JMP (oldbytev)
�
.inkey
TXA
PHA
LDA #&81
"JSR oldcode
,CPX #&FF
6BNE notpressed
@PLA
J.pullout
TLDA #&81
^PLP
hRTS
r.notpressed
|PLA
�
CMP up
�BNE trydown
�LDA ycoord
�CMP #&88
�BCC pullout
�BCS resety
�.trydown
�CMP down
�BNE trybuttons
�LDA ycoord
�CMP #&78
�BCS pullout
�.resety
LDA #&80
STA ycoord

BNE found
&.trybuttons
0CMP centrebutton
:BNE tryleft
DLDA drb
NJMP two
X.tryleft
bCMP leftbutton
lBNE pullout
vLDA drb
�	ROL A
�.two
�	ROL A
�	ROL A
�BCS pullout
�
.found
�LDA #&81
�LDX #&FF
�LDY #&FF
�PLP
�RTS
�.centrebutton
�EQUB -74

.leftbutton

EQUB -99

.up

 EQUB -58

*	.down

4EQUB -42

>
.oldirq1v

HEQUW &00

R
.oldbytev

\EQUW &00

f.ycoord

pEQUB &80

z]

��

�� mcode

��
�
00000000  0d 00 0a 1a f4 22 81 28  43 29 20 4a 65 72 65 6d  |.....".(C) Jerem|
00000010  79 20 42 72 61 79 73 68  61 77 0d 00 14 11 f4 22  |y Brayshaw....."|
00000020  86 4d 61 72 63 68 20 31  39 38 38 0d 00 1e 24 f4  |.March 1988...$.|
00000030  22 81 4d 6f 64 69 66 69  65 64 20 62 79 20 47 6f  |".Modified by Go|
00000040  72 64 6f 6e 20 48 6f 72  73 69 6e 67 74 6f 6e 0d  |rdon Horsington.|
00000050  00 28 21 f4 22 85 46 6f  72 20 75 73 65 20 77 69  |.(!.".For use wi|
00000060  74 68 20 41 54 53 81 61  6e 64 20 6d 6f 75 73 65  |th ATS.and mouse|
00000070  0d 00 32 05 3a 0d 00 3c  1f ee 85 20 db 3a f6 3a  |..2.:..<... .:.:|
00000080  f1 22 20 61 74 20 6c 69  6e 65 20 22 3b 9e 3a e5  |." at line ";.:.|
00000090  8d 44 7c 41 0d 00 46 06  eb 37 0d 00 50 13 ef 32  |.D|A..F..7..P..2|
000000a0  33 3b 38 32 30 32 3b 30  3b 30 3b 30 3b 0d 00 5a  |3;8202;0;0;0;..Z|
000000b0  0a 2a 54 54 58 4f 4e 0d  00 64 09 2a 42 42 43 32  |.*TTXON..d.*BBC2|
000000c0  0d 00 6e 08 2a 48 4f 4e  0d 00 78 0f f2 6d 6f 76  |..n.*HON..x..mov|
000000d0  65 5f 6f 73 68 77 6d 0d  00 82 0a f2 6d 63 6f 64  |e_oshwm.....mcod|
000000e0  65 0d 00 8c 1e de 20 73  70 61 63 65 20 32 30 2c  |e..... space 20,|
000000f0  6e 61 6d 65 20 31 32 2c  6c 69 6e 65 20 31 35 0d  |name 12,line 15.|
00000100  00 96 50 de 70 61 67 65  25 28 34 30 29 2c 66 6e  |..P.page%(40),fn|
00000110  61 6d 65 24 28 34 30 29  2c 6c 6f 61 64 25 28 34  |ame$(40),load%(4|
00000120  30 29 2c 65 78 65 63 25  28 34 30 29 2c 70 61 67  |0),exec%(40),pag|
00000130  65 73 24 28 34 30 29 2c  6d 61 67 25 28 34 30 29  |es$(40),mag%(40)|
00000140  2c 44 28 35 29 2c 66 6c  61 67 25 28 34 30 29 0d  |,D(5),flag%(40).|
00000150  00 a0 1f f2 68 65 61 64  69 6e 67 28 22 46 69 6c  |....heading("Fil|
00000160  65 3a 86 43 61 74 61 6c  6f 67 75 65 22 29 0d 00  |e:.Catalogue")..|
00000170  aa 14 41 25 3d 91 3a f5  3a fd 91 3e 41 25 2b 32  |..A%=.:.:..>A%+2|
00000180  30 30 0d 00 b4 16 f2 66  69 6e 64 63 61 74 28 a4  |00.....findcat(.|
00000190  67 65 74 6c 69 6e 6b 29  0d 00 be 39 e7 4d 25 3e  |getlink)...9.M%>|
000001a0  39 20 84 4e 25 3e 26 46  45 20 f2 68 65 61 64 69  |9 .N%>&FE .headi|
000001b0  6e 67 28 22 81 45 72 72  6f 72 86 2d 20 4e 6f 20  |ng(".Error.- No |
000001c0  43 61 74 61 6c 6f 67 75  65 22 29 3a e5 8d 44 7c  |Catalogue"):..D||
000001d0  41 0d 00 c8 40 f2 68 65  61 64 69 6e 67 28 22 46  |A...@.heading("F|
000001e0  69 6c 65 3a 86 43 61 74  61 6c 6f 67 75 65 20 20  |ile:.Catalogue  |
000001f0  20 20 87 50 61 67 65 3a  86 22 2b c3 28 4d 25 29  |  .Page:."+.(M%)|
00000200  2b c2 22 30 30 22 2b c3  7e 28 4e 25 29 2c 32 29  |+."00"+.~(N%),2)|
00000210  29 0d 00 d2 24 f1 8a 31  2c 30 29 3b 22 50 22 3b  |)...$..1,0);"P";|
00000220  c3 28 4d 25 29 3b c2 22  30 30 22 2b c3 7e 28 4e  |.(M%);."00"+.~(N|
00000230  25 29 2c 32 29 0d 00 dc  1f f2 64 6f 77 6e 6c 6f  |%),2).....downlo|
00000240  61 64 28 4d 25 2c 4e 25  2c 22 22 2c 30 2c 30 2c  |ad(M%,N%,"",0,0,|
00000250  a3 2c b9 29 0d 00 e6 0e  f2 69 6e 74 65 72 70 72  |.,.).....interpr|
00000260  65 74 0d 00 f0 40 e7 5a  25 3d 30 20 eb 37 3a f2  |et...@.Z%=0 .7:.|
00000270  68 65 61 64 69 6e 67 28  22 81 4e 6f 20 42 42 43  |heading(".No BBC|
00000280  20 66 69 6c 65 73 20 62  72 6f 61 64 63 61 73 74  | files broadcast|
00000290  20 74 68 69 73 20 77 65  65 6b 22 29 3a e5 8d 44  | this week"):..D|
000002a0  7c 41 0d 00 fa 1e eb 37  3a ef 32 33 3b 38 32 30  ||A.....7:.23;820|
000002b0  32 3b 30 3b 30 3b 30 3b  3a f2 73 65 6c 65 63 74  |2;0;0;0;:.select|
000002c0  0d 01 04 08 4e 25 3d 30  0d 01 0e 0c e3 57 25 3d  |....N%=0.....W%=|
000002d0  31 b8 5a 25 0d 01 18 17  e7 20 ac 20 66 6c 61 67  |1.Z%..... . flag|
000002e0  25 28 57 25 29 20 e5 8d  44 5e 41 0d 01 22 0b 4e  |%(W%) ..D^A..".N|
000002f0  25 3d 4e 25 2b 31 0d 01  2c 16 eb 37 3a ef 32 33  |%=N%+1..,..7:.23|
00000300  3b 38 32 30 32 3b 30 3b  30 3b 30 3b 0d 01 36 51  |;8202;0;0;0;..6Q|
00000310  f2 68 65 61 64 69 6e 67  28 22 46 69 6c 65 3a 86  |.heading("File:.|
00000320  22 2b 66 6e 61 6d 65 24  28 57 25 29 2b c4 28 31  |"+fname$(W%)+.(1|
00000330  32 2d a9 28 66 6e 61 6d  65 24 28 57 25 29 29 29  |2-.(fname$(W%)))|
00000340  2c 22 20 22 29 2b 22 87  4c 65 6e 67 74 68 3a 86  |," ")+".Length:.|
00000350  22 2b 70 61 67 65 73 24  28 57 25 29 29 0d 01 40  |"+pages$(W%))..@|
00000360  2e f1 8a 31 2c 30 29 3b  22 50 22 3b 6d 61 67 25  |...1,0);"P";mag%|
00000370  28 57 25 29 3b c2 22 30  30 22 2b c3 7e 28 70 61  |(W%);."00"+.~(pa|
00000380  67 65 25 28 57 25 29 29  2c 32 29 0d 01 4a 44 f2  |ge%(W%)),2)..JD.|
00000390  64 6f 77 6e 6c 6f 61 64  28 6d 61 67 25 28 57 25  |download(mag%(W%|
000003a0  29 2c 70 61 67 65 25 28  57 25 29 2c 66 6e 61 6d  |),page%(W%),fnam|
000003b0  65 24 28 57 25 29 2c 6c  6f 61 64 25 28 57 25 29  |e$(W%),load%(W%)|
000003c0  2c 65 78 65 63 25 28 57  25 29 2c b9 2c b9 29 0d  |,exec%(W%),.,.).|
000003d0  01 54 3e f4 20 50 52 4f  43 64 6f 77 6e 6c 6f 61  |.T>. PROCdownloa|
000003e0  64 28 6d 61 67 25 2c 70  61 67 65 25 2c 66 6e 61  |d(mag%,page%,fna|
000003f0  6d 65 24 2c 6c 6f 61 64  25 2c 65 78 65 63 25 2c  |me$,load%,exec%,|
00000400  66 69 6c 65 25 2c 72 65  73 65 74 25 29 0d 01 5e  |file%,reset%)..^|
00000410  05 ed 0d 01 68 06 eb 37  0d 01 72 3d f2 68 65 61  |....h..7..r=.hea|
00000420  64 69 6e 67 28 22 20 22  2b c3 28 4e 25 29 2b 22  |ding(" "+.(N%)+"|
00000430  20 6f 75 74 20 6f 66 20  22 2b c3 28 5a 25 29 2b  | out of "+.(Z%)+|
00000440  22 20 66 69 6c 65 73 20  64 6f 77 6e 6c 6f 61 64  |" files download|
00000450  65 64 2e 22 29 0d 01 7c  0b 2a 54 54 58 4f 46 46  |ed.")..|.*TTXOFF|
00000460  0d 01 86 11 f2 72 65 74  75 72 6e 5f 6f 73 68 77  |.....return_oshw|
00000470  6d 0d 01 90 0b d6 20 6d  63 6f 64 65 0d 01 9a 05  |m..... mcode....|
00000480  e0 0d 01 a4 05 3a 0d 01  ae 10 dd f2 6d 6f 76 65  |.....:......move|
00000490  5f 6f 73 68 77 6d 0d 01  b8 0c 53 25 3d 26 35 30  |_oshwm....S%=&50|
000004a0  30 30 0d 01 c2 20 41 25  3d 26 42 34 3a 58 25 3d  |00... A%=&B4:X%=|
000004b0  53 25 81 32 35 36 3a 59  25 3d 30 3a d6 26 46 46  |S%.256:Y%=0:.&FF|
000004c0  46 34 0d 01 cc 05 e1 0d  01 d6 05 3a 0d 01 e0 42  |F4.........:...B|
000004d0  dd f2 64 6f 77 6e 6c 6f  61 64 28 6d 61 67 61 7a  |..download(magaz|
000004e0  69 6e 65 25 2c 70 61 67  65 25 2c 66 69 6c 65 6e  |ine%,page%,filen|
000004f0  61 6d 65 24 2c 6c 6f 61  64 25 2c 65 78 65 63 25  |ame$,load%,exec%|
00000500  2c 73 61 76 65 25 2c 72  65 73 65 74 25 29 0d 01  |,save%,reset%)..|
00000510  ea 24 f2 6f 73 63 6c 69  28 22 4d 41 47 41 5a 49  |.$.oscli("MAGAZI|
00000520  4e 45 20 22 2b c3 28 6d  61 67 61 7a 69 6e 65 25  |NE "+.(magazine%|
00000530  29 29 0d 01 f4 0e 73 70  61 63 65 3f 30 3d 32 34  |))....space?0=24|
00000540  0d 01 fe 27 73 70 61 63  65 3f 31 3d 6e 61 6d 65  |...'space?1=name|
00000550  20 83 32 35 36 3a 73 70  61 63 65 3f 32 3d 6e 61  | .256:space?2=na|
00000560  6d 65 20 81 32 35 36 0d  02 08 13 24 6e 61 6d 65  |me .256....$name|
00000570  3d 66 69 6c 65 6e 61 6d  65 24 0d 02 12 11 73 70  |=filename$....sp|
00000580  61 63 65 21 33 3d 6c 6f  61 64 25 0d 02 1c 11 73  |ace!3=load%....s|
00000590  70 61 63 65 21 37 3d 65  78 65 63 25 0d 02 26 16  |pace!7=exec%..&.|
000005a0  73 70 61 63 65 3f 31 31  3d 6d 61 67 61 7a 69 6e  |space?11=magazin|
000005b0  65 25 0d 02 30 12 73 70  61 63 65 3f 31 32 3d 70  |e%..0.space?12=p|
000005c0  61 67 65 25 0d 02 3a 24  e7 73 61 76 65 25 3d b9  |age%..:$.save%=.|
000005d0  20 73 70 61 63 65 3f 31  33 3d 31 20 8b 20 73 70  | space?13=1 . sp|
000005e0  61 63 65 3f 31 33 3d 30  0d 02 44 25 e7 72 65 73  |ace?13=0..D%.res|
000005f0  65 74 25 3d b9 20 73 70  61 63 65 3f 31 34 3d 30  |et%=. space?14=0|
00000600  20 8b 20 73 70 61 63 65  3f 31 34 3d 31 0d 02 4e  | . space?14=1..N|
00000610  26 41 25 3d 26 37 41 3a  58 25 3d 73 70 61 63 65  |&A%=&7A:X%=space|
00000620  20 83 32 35 36 3a 59 25  3d 73 70 61 63 65 20 81  | .256:Y%=space .|
00000630  32 35 36 0d 02 58 0a d6  26 46 46 46 31 0d 02 62  |256..X..&FFF1..b|
00000640  05 e1 0d 02 6c 05 3a 0d  02 76 12 dd f2 6f 73 63  |....l.:..v...osc|
00000650  6c 69 28 74 65 78 74 24  29 0d 02 80 29 24 6c 69  |li(text$)...)$li|
00000660  6e 65 3d 74 65 78 74 24  3a 58 25 3d 6c 69 6e 65  |ne=text$:X%=line|
00000670  20 83 32 35 36 3a 59 25  3d 6c 69 6e 65 20 81 32  | .256:Y%=line .2|
00000680  35 36 0d 02 8a 0a d6 26  46 46 46 37 0d 02 94 05  |56.....&FFF7....|
00000690  e1 0d 02 9e 05 3a 0d 02  a8 15 dd f2 68 65 61 64  |.....:......head|
000006a0  69 6e 67 28 66 6e 61 6d  65 24 29 0d 02 b2 05 db  |ing(fname$).....|
000006b0  0d 02 bc 38 f1 27 bd 31  33 32 3b bd 31 35 37 3b  |...8.'.132;.157;|
000006c0  bd 31 34 31 3b 22 83 42  42 43 20 54 65 6c 65 73  |.141;".BBC Teles|
000006d0  6f 66 74 77 61 72 65 20  66 69 6c 65 20 64 6f 77  |oftware file dow|
000006e0  6e 6c 6f 61 64 65 72 22  0d 02 c6 37 f1 bd 31 33  |nloader"...7..13|
000006f0  32 3b bd 31 35 37 3b bd  31 34 31 3b 22 83 42 42  |2;.157;.141;".BB|
00000700  43 20 54 65 6c 65 73 6f  66 74 77 61 72 65 20 66  |C Telesoftware f|
00000710  69 6c 65 20 64 6f 77 6e  6c 6f 61 64 65 72 22 0d  |ile downloader".|
00000720  02 d0 10 f1 8a 31 2c 33  29 66 6e 61 6d 65 24 0d  |.....1,3)fname$.|
00000730  02 da 05 e1 0d 02 e4 05  3a 0d 02 ee 12 dd f2 72  |........:......r|
00000740  65 74 75 72 6e 5f 6f 73  68 77 6d 0d 02 f8 20 41  |eturn_oshwm... A|
00000750  25 3d 26 42 34 3a 58 25  3d 90 20 81 32 35 36 3a  |%=&B4:X%=. .256:|
00000760  59 25 3d 30 3a d6 26 46  46 46 34 0d 03 02 05 e1  |Y%=0:.&FFF4.....|
00000770  0d 03 0c 05 3a 0d 03 16  0f dd f2 69 6e 74 65 72  |....:......inter|
00000780  70 72 65 74 0d 03 20 10  73 74 61 25 3d 53 25 3a  |pret.. .sta%=S%:|
00000790  5a 25 3d 30 0d 03 2a 27  73 74 61 25 3d 73 74 61  |Z%=0..*'sta%=sta|
000007a0  25 2b 31 2b 3f 73 74 61  25 3a 73 74 61 25 3d 73  |%+1+?sta%:sta%=s|
000007b0  74 61 25 2b 31 2b 3f 73  74 61 25 0d 03 34 09 5a  |ta%+1+?sta%..4.Z|
000007c0  3d 30 3a f5 0d 03 3e 0b  f4 22 81 6d 2f 63 3a 0d  |=0:...>..".m/c:.|
000007d0  03 48 0e 6c 65 6e 25 3d  3f 73 74 61 25 0d 03 52  |.H.len%=?sta%..R|
000007e0  26 e3 41 25 3d 73 74 61  25 b8 73 74 61 25 2b 6c  |&.A%=sta%.sta%+l|
000007f0  65 6e 25 3a 3f 41 25 3d  28 3f 41 25 29 80 26 37  |en%:?A%=(?A%).&7|
00000800  46 3a ed 0d 03 5c 48 54  25 3d 3f 28 73 74 61 25  |F:...\HT%=?(sta%|
00000810  2b 6c 65 6e 25 2b 31 29  3a 3f 28 73 74 61 25 2b  |+len%+1):?(sta%+|
00000820  6c 65 6e 25 2b 31 29 3d  31 33 3a 73 74 61 24 3d  |len%+1)=13:sta$=|
00000830  24 28 73 74 61 25 2b 31  29 3a 3f 28 73 74 61 25  |$(sta%+1):?(sta%|
00000840  2b 6c 65 6e 25 2b 31 29  3d 54 25 0d 03 66 15 73  |+len%+1)=T%..f.s|
00000850  74 61 25 3d 73 74 61 25  2b 31 2b 3f 73 74 61 25  |ta%=sta%+1+?sta%|
00000860  0d 03 70 2e e7 73 74 61  24 3c 3e 22 42 42 43 22  |..p..sta$<>"BBC"|
00000870  20 80 20 73 74 61 24 3c  3e 22 41 4e 59 22 20 75  | . sta$<>"ANY" u|
00000880  73 65 25 3d a3 20 8b 20  75 73 65 25 3d b9 0d 03  |se%=. . use%=...|
00000890  7a 15 e7 73 74 61 24 3d  22 2a 2a 2a 22 20 e5 8d  |z..sta$="***" ..|
000008a0  44 42 44 0d 03 84 10 f4  22 81 66 69 6c 65 6e 61  |DBD.....".filena|
000008b0  6d 65 3a 0d 03 8e 0e 6c  65 6e 25 3d 3f 73 74 61  |me:....len%=?sta|
000008c0  25 0d 03 98 24 e3 41 25  3d 73 74 61 25 b8 73 74  |%...$.A%=sta%.st|
000008d0  61 25 2b 6c 65 6e 25 3a  3f 41 25 3d 28 3f 41 25  |a%+len%:?A%=(?A%|
000008e0  29 80 26 37 46 0d 03 a2  1a e7 3f 41 25 3e 26 34  |).&7F.....?A%>&4|
000008f0  30 20 3f 41 25 3d 28 3f  41 25 29 80 26 44 46 0d  |0 ?A%=(?A%).&DF.|
00000900  03 ac 05 ed 0d 03 b6 48  54 25 3d 3f 28 73 74 61  |.......HT%=?(sta|
00000910  25 2b 6c 65 6e 25 2b 31  29 3a 3f 28 73 74 61 25  |%+len%+1):?(sta%|
00000920  2b 6c 65 6e 25 2b 31 29  3d 31 33 3a 73 74 61 24  |+len%+1)=13:sta$|
00000930  3d 24 28 73 74 61 25 2b  32 29 3a 3f 28 73 74 61  |=$(sta%+2):?(sta|
00000940  25 2b 6c 65 6e 25 2b 31  29 3d 54 25 0d 03 c0 15  |%+len%+1)=T%....|
00000950  73 74 61 25 3d 73 74 61  25 2b 31 2b 3f 73 74 61  |sta%=sta%+1+?sta|
00000960  25 0d 03 ca 11 f4 22 81  46 69 6c 65 20 74 79 70  |%.....".File typ|
00000970  65 3a 0d 03 d4 0e 6c 65  6e 25 3d 3f 73 74 61 25  |e:....len%=?sta%|
00000980  0d 03 de 2c e3 41 25 3d  73 74 61 25 b8 73 74 61  |...,.A%=sta%.sta|
00000990  25 2b 6c 65 6e 25 3a 3f  41 25 3d 28 28 3f 41 25  |%+len%:?A%=((?A%|
000009a0  29 80 26 37 46 29 80 26  44 46 3a ed 0d 03 e8 49  |).&7F).&DF:....I|
000009b0  54 25 3d 3f 28 73 74 61  25 2b 6c 65 6e 25 2b 31  |T%=?(sta%+len%+1|
000009c0  29 3a 3f 28 73 74 61 25  2b 6c 65 6e 25 2b 31 29  |):?(sta%+len%+1)|
000009d0  3d 31 33 3a 73 74 61 32  24 3d 24 28 73 74 61 25  |=13:sta2$=$(sta%|
000009e0  2b 31 29 3a 3f 28 73 74  61 25 2b 6c 65 6e 25 2b  |+1):?(sta%+len%+|
000009f0  31 29 3d 54 25 0d 03 f2  15 73 74 61 25 3d 73 74  |1)=T%....sta%=st|
00000a00  61 25 2b 31 2b 3f 73 74  61 25 0d 03 fc 0e 6c 65  |a%+1+?sta%....le|
00000a10  6e 25 3d 3f 73 74 61 25  0d 04 06 26 e3 41 25 3d  |n%=?sta%...&.A%=|
00000a20  73 74 61 25 b8 73 74 61  25 2b 6c 65 6e 25 3a 3f  |sta%.sta%+len%:?|
00000a30  41 25 3d 28 3f 41 25 29  80 26 37 46 3a ed 0d 04  |A%=(?A%).&7F:...|
00000a40  10 49 54 25 3d 3f 28 73  74 61 25 2b 6c 65 6e 25  |.IT%=?(sta%+len%|
00000a50  2b 31 29 3a 3f 28 73 74  61 25 2b 6c 65 6e 25 2b  |+1):?(sta%+len%+|
00000a60  31 29 3d 31 33 3a 73 74  61 33 24 3d 24 28 73 74  |1)=13:sta3$=$(st|
00000a70  61 25 2b 31 29 3a 3f 28  73 74 61 25 2b 6c 65 6e  |a%+1):?(sta%+len|
00000a80  25 2b 31 29 3d 54 25 0d  04 1a 15 73 74 61 25 3d  |%+1)=T%....sta%=|
00000a90  73 74 61 25 2b 31 2b 3f  73 74 61 25 0d 04 24 1c  |sta%+1+?sta%..$.|
00000aa0  f4 22 86 54 45 53 54 20  46 4f 52 20 44 4f 57 4e  |.".TEST FOR DOWN|
00000ab0  4c 4f 41 44 49 4e 47 3a  0d 04 2e 93 e7 75 73 65  |LOADING:.....use|
00000ac0  25 20 5a 25 3d 5a 25 2b  31 3a 66 6e 61 6d 65 24  |% Z%=Z%+1:fname$|
00000ad0  28 5a 25 29 3d 73 74 61  24 3a 70 61 67 65 73 24  |(Z%)=sta$:pages$|
00000ae0  28 5a 25 29 3d 73 74 61  33 24 3a 6c 6f 61 64 25  |(Z%)=sta3$:load%|
00000af0  28 5a 25 29 3d a4 61 64  64 72 28 73 74 61 25 29  |(Z%)=.addr(sta%)|
00000b00  3a 65 78 65 63 25 28 5a  25 29 3d a4 61 64 64 72  |:exec%(Z%)=.addr|
00000b10  28 73 74 61 25 2b 34 29  3a 6d 61 67 25 28 5a 25  |(sta%+4):mag%(Z%|
00000b20  29 3d 3f 28 73 74 61 25  2b 38 29 3a 70 61 67 65  |)=?(sta%+8):page|
00000b30  25 28 5a 25 29 3d 3f 28  73 74 61 25 2b 39 29 3a  |%(Z%)=?(sta%+9):|
00000b40  66 6c 61 67 25 28 5a 25  29 3d b9 0d 04 38 10 73  |flag%(Z%)=...8.s|
00000b50  74 61 25 3d 73 74 61 25  2b 31 30 0d 04 42 0f fd  |ta%=sta%+10..B..|
00000b60  73 74 61 24 3d 22 2a 2a  2a 22 0d 04 4c 05 e1 0d  |sta$="***"..L...|
00000b70  04 56 05 3a 0d 04 60 0f  dd a4 61 64 64 72 28 73  |.V.:..`...addr(s|
00000b80  74 25 29 0d 04 6a 38 3d  a0 28 22 26 22 2b c3 7e  |t%)..j8=.("&"+.~|
00000b90  28 3f 73 74 25 29 2b c3  7e 28 28 73 74 25 3f 31  |(?st%)+.~((st%?1|
00000ba0  2a 32 35 36 20 2b 20 73  74 25 3f 32 29 2a 32 35  |*256 + st%?2)*25|
00000bb0  36 20 2b 20 73 74 25 3f  33 29 29 0d 04 74 0d dd  |6 + st%?3))..t..|
00000bc0  a4 67 65 74 6c 69 6e 6b  0d 04 7e 38 73 70 61 63  |.getlink..~8spac|
00000bd0  65 3f 30 3d 31 35 3a 41  25 3d 26 37 41 3a 58 25  |e?0=15:A%=&7A:X%|
00000be0  3d 73 70 61 63 65 20 83  32 35 36 3a 59 25 3d 73  |=space .256:Y%=s|
00000bf0  70 61 63 65 20 81 32 35  36 3a d6 26 46 46 46 31  |pace .256:.&FFF1|
00000c00  0d 04 88 48 e7 28 28 73  70 61 63 65 3f 31 29 2a  |...H.((space?1)*|
00000c10  31 30 30 29 2b 73 70 61  63 65 3f 32 3e 39 39 39  |100)+space?2>999|
00000c20  20 f2 68 65 61 64 69 6e  67 28 22 81 45 72 72 6f  | .heading(".Erro|
00000c30  72 86 2d 20 4e 6f 20 43  61 74 61 6c 6f 67 75 65  |r.- No Catalogue|
00000c40  22 29 3a e5 8d 44 7c 41  0d 04 92 1c 3d 28 28 73  |"):..D|A....=((s|
00000c50  70 61 63 65 3f 31 29 2a  31 30 30 29 2b 73 70 61  |pace?1)*100)+spa|
00000c60  63 65 3f 32 0d 04 9c 05  3a 0d 04 a6 11 dd f2 66  |ce?2....:......f|
00000c70  69 6e 64 63 61 74 28 4f  25 29 0d 04 b0 19 f2 6f  |indcat(O%).....o|
00000c80  73 63 6c 69 28 22 50 41  47 45 20 22 2b c3 28 4f  |scli("PAGE "+.(O|
00000c90  25 29 29 0d 04 ba 10 ea  61 25 2c 70 6e 24 2c 72  |%)).....a%,pn$,r|
00000ca0  6f 77 25 0d 04 c4 0e 2a  44 41 54 41 20 35 30 30  |ow%....*DATA 500|
00000cb0  30 0d 04 ce 0f 61 25 3d  26 35 30 30 30 2d 34 32  |0....a%=&5000-42|
00000cc0  0d 04 d8 05 f5 0d 04 e2  0c 61 25 3d 61 25 2b 34  |.........a%=a%+4|
00000cd0  32 0d 04 ec 29 fd 28 61  25 3f 31 3d 32 37 20 80  |2...).(a%?1=27 .|
00000ce0  20 a4 64 65 68 61 6d 28  61 25 3f 32 29 3d 30 29  | .deham(a%?2)=0)|
00000cf0  20 84 61 25 3e 26 35 38  30 30 0d 04 f6 39 e7 61  | .a%>&5800...9.a|
00000d00  25 3e 26 35 38 30 30 20  4d 25 3d 30 3a f2 68 65  |%>&5800 M%=0:.he|
00000d10  61 64 69 6e 67 28 22 81  45 72 72 6f 72 86 2d 6e  |ading(".Error.-n|
00000d20  6f 20 63 61 74 61 6c 6f  67 75 65 22 29 3a e5 8d  |o catalogue"):..|
00000d30  44 7c 41 0d 05 00 0b e3  56 25 3d 30 b8 35 0d 05  |D|A.....V%=0.5..|
00000d40  0a 0f 44 28 56 25 29 3d  32 37 2b 56 25 0d 05 14  |..D(V%)=27+V%...|
00000d50  1a 44 28 56 25 29 3d a4  64 65 68 61 6d 28 61 25  |.D(V%)=.deham(a%|
00000d60  3f 44 28 56 25 29 29 0d  05 1e 05 ed 0d 05 28 2a  |?D(V%)).......(*|
00000d70  4d 25 3d 28 28 28 44 28  35 29 20 80 31 32 29 81  |M%=(((D(5) .12).|
00000d80  32 29 84 28 44 28 33 29  20 81 38 29 29 82 28 4f  |2).(D(3) .8)).(O|
00000d90  25 81 31 30 30 29 0d 05  32 17 4e 25 3d 28 44 28  |%.100)..2.N%=(D(|
00000da0  31 29 2a 31 36 29 2b 28  44 28 30 29 29 0d 05 3c  |1)*16)+(D(0))..<|
00000db0  05 e1 0d 05 46 05 3a 0d  05 50 12 dd a4 64 65 68  |....F.:..P...deh|
00000dc0  61 6d 28 62 79 74 65 25  29 0d 05 5a 46 73 70 61  |am(byte%)..ZFspa|
00000dd0  63 65 3f 30 3d 32 35 3a  73 70 61 63 65 3f 31 3d  |ce?0=25:space?1=|
00000de0  62 79 74 65 25 3a 41 25  3d 26 37 41 3a 58 25 3d  |byte%:A%=&7A:X%=|
00000df0  73 70 61 63 65 20 83 32  35 36 3a 59 25 3d 73 70  |space .256:Y%=sp|
00000e00  61 63 65 20 81 32 35 36  3a d6 26 46 46 46 31 0d  |ace .256:.&FFF1.|
00000e10  05 64 11 3d 28 73 70 61  63 65 3f 32 29 80 26 46  |.d.=(space?2).&F|
00000e20  0d 05 6e 05 3a 0d 05 78  0c dd f2 73 65 6c 65 63  |..n.:..x...selec|
00000e30  74 0d 05 82 49 f2 68 65  61 64 69 6e 67 28 22 83  |t...I.heading(".|
00000e40  53 86 3d 20 73 61 76 65  20 3a 20 81 4e 86 3d 20  |S.= save : .N.= |
00000e50  69 67 6e 6f 72 65 22 29  3a e3 41 25 3d 31 b8 5a  |ignore"):.A%=1.Z|
00000e60  25 3a f1 8a 28 41 25 81  31 37 29 2a 32 30 2c 28  |%:..(A%.17)*20,(|
00000e70  41 25 83 31 37 29 2b 35  29 3b 0d 05 8c 2a f1 22  |A%.17)+5);...*."|
00000e80  82 20 86 22 3b c0 66 6e  61 6d 65 24 28 41 25 29  |. .";.fname$(A%)|
00000e90  2b c4 38 2c 22 20 22 29  2c 38 29 3b 22 83 22 3b  |+.8," "),8);".";|
00000ea0  22 53 87 22 0d 05 96 05  ed 0d 05 a0 5f f1 8a 30  |"S."........_..0|
00000eb0  2c 32 33 29 22 82 4b 65  79 62 6f 61 72 64 87 2f  |,23)".Keyboard./|
00000ec0  83 4d 6f 75 73 65 87 3a  82 53 70 61 63 65 83 4c  |.Mouse.:.Space.L|
00000ed0  65 66 74 86 3d 20 74 6f  67 67 6c 65 22 27 22 82  |eft.= toggle"'".|
00000ee0  52 65 74 75 72 6e 83 43  65 6e 74 72 65 86 3d 20  |Return.Centre.= |
00000ef0  64 6f 77 6e 6c 6f 61 64  20 63 68 6f 73 65 6e 20  |download chosen |
00000f00  66 69 6c 65 73 2e 22 3b  0d 05 aa 07 51 3d a3 0d  |files.";....Q=..|
00000f10  05 b4 0d 63 75 72 73 6f  72 25 3d 31 0d 05 be 0d  |...cursor%=1....|
00000f20  f1 8a 31 2c 36 29 22 5d  22 0d 05 c8 05 f5 0d 05  |..1,6)"]".......|
00000f30  d2 0a f2 64 65 6c 61 79  0d 05 dc 17 e7 20 a6 28  |...delay..... .(|
00000f40  2d 35 38 29 20 f2 63 75  72 73 6f 72 5f 75 70 0d  |-58) .cursor_up.|
00000f50  05 e6 19 e7 20 a6 28 2d  34 32 29 20 f2 63 75 72  |.... .(-42) .cur|
00000f60  73 6f 72 5f 64 6f 77 6e  0d 05 f0 1d e7 20 a6 28  |sor_down..... .(|
00000f70  2d 39 39 29 20 f2 74 6f  67 67 6c 65 28 63 75 72  |-99) .toggle(cur|
00000f80  73 6f 72 25 29 0d 05 fa  10 e7 20 a6 28 2d 37 34  |sor%)..... .(-74|
00000f90  29 20 51 3d b9 0d 06 04  07 fd 20 51 0d 06 0e 0b  |) Q=...... Q....|
00000fa0  2a 46 58 32 31 2c 30 0d  06 18 05 e1 0d 06 22 05  |*FX21,0.......".|
00000fb0  3a 0d 06 2c 29 dd f2 74  6f 67 67 6c 65 28 6e 6f  |:..,)..toggle(no|
00000fc0  25 29 3a 66 6c 61 67 25  28 6e 6f 25 29 3d ac 20  |%):flag%(no%)=. |
00000fd0  66 6c 61 67 25 28 6e 6f  25 29 0d 06 36 3a f1 8a  |flag%(no%)..6:..|
00000fe0  28 28 6e 6f 25 81 31 37  29 2a 32 30 29 2b 32 2c  |((no%.17)*20)+2,|
00000ff0  28 6e 6f 25 83 31 37 29  2b 35 29 3b 3a e7 66 6c  |(no%.17)+5);:.fl|
00001000  61 67 25 28 6e 6f 25 29  3a f1 22 86 22 20 8b 20  |ag%(no%):."." . |
00001010  f1 22 81 22 0d 06 40 23  f1 8a 28 28 6e 6f 25 81  |."."..@#..((no%.|
00001020  31 37 29 2a 32 30 29 2b  31 31 2c 28 6e 6f 25 83  |17)*20)+11,(no%.|
00001030  31 37 29 2b 35 29 3b 0d  06 4a 1d e7 66 6c 61 67  |17)+5);..J..flag|
00001040  25 28 6e 6f 25 29 3a f1  22 83 53 22 20 8b 20 f1  |%(no%):.".S" . .|
00001050  22 81 4e 22 0d 06 54 0a  f2 64 65 6c 61 79 0d 06  |".N"..T..delay..|
00001060  5e 05 e1 0d 06 68 05 3a  0d 06 72 0f dd f2 63 75  |^....h.:..r...cu|
00001070  72 73 6f 72 5f 75 70 0d  06 7c 11 e7 20 63 75 72  |rsor_up..|.. cur|
00001080  73 6f 72 25 3d 31 20 e1  0d 06 86 2f f1 8a 28 63  |sor%=1 ..../..(c|
00001090  75 72 73 6f 72 25 20 81  20 31 37 29 2a 32 30 2b  |ursor% . 17)*20+|
000010a0  31 2c 28 63 75 72 73 6f  72 25 20 83 20 31 37 29  |1,(cursor% . 17)|
000010b0  2b 35 29 3b 22 20 22 0d  06 90 15 63 75 72 73 6f  |+5);" "....curso|
000010c0  72 25 3d 63 75 72 73 6f  72 25 2d 31 0d 06 9a 2f  |r%=cursor%-1.../|
000010d0  f1 8a 28 63 75 72 73 6f  72 25 20 81 20 31 37 29  |..(cursor% . 17)|
000010e0  2a 32 30 2b 31 2c 28 63  75 72 73 6f 72 25 20 83  |*20+1,(cursor% .|
000010f0  20 31 37 29 2b 35 29 3b  22 5d 22 0d 06 a4 05 e1  | 17)+5);"]".....|
00001100  0d 06 ae 05 3a 0d 06 b8  11 dd f2 63 75 72 73 6f  |....:......curso|
00001110  72 5f 64 6f 77 6e 0d 06  c2 12 e7 20 63 75 72 73  |r_down..... curs|
00001120  6f 72 25 3d 5a 25 20 e1  0d 06 cc 2f f1 8a 28 63  |or%=Z% ..../..(c|
00001130  75 72 73 6f 72 25 20 81  20 31 37 29 2a 32 30 2b  |ursor% . 17)*20+|
00001140  31 2c 28 63 75 72 73 6f  72 25 20 83 20 31 37 29  |1,(cursor% . 17)|
00001150  2b 35 29 3b 22 20 22 0d  06 d6 15 63 75 72 73 6f  |+5);" "....curso|
00001160  72 25 3d 63 75 72 73 6f  72 25 2b 31 0d 06 e0 2f  |r%=cursor%+1.../|
00001170  f1 8a 28 63 75 72 73 6f  72 25 20 81 20 31 37 29  |..(cursor% . 17)|
00001180  2a 32 30 2b 31 2c 28 63  75 72 73 6f 72 25 20 83  |*20+1,(cursor% .|
00001190  20 31 37 29 2b 35 29 3b  22 5d 22 0d 06 ea 05 e1  | 17)+5);"]".....|
000011a0  0d 06 f4 05 3a 0d 06 fe  0b dd f2 64 65 6c 61 79  |....:......delay|
000011b0  0d 07 08 07 d1 3d 30 0d  07 12 0e f5 20 fd 20 91  |.....=0..... . .|
000011c0  20 3e 20 31 30 0d 07 1c  05 e1 0d 07 26 05 3a 0d  | > 10.......&.:.|
000011d0  07 30 0b dd f2 6d 63 6f  64 65 0d 07 3a 0e 75 73  |.0...mcode..:.us|
000011e0  65 72 76 3d 26 32 30 30  0d 07 44 0e 69 72 71 31  |erv=&200..D.irq1|
000011f0  76 3d 26 32 30 34 0d 07  4e 0e 62 79 74 65 76 3d  |v=&204..N.bytev=|
00001200  26 32 30 41 0d 07 58 0e  6d 63 6f 64 65 3d 26 41  |&20A..X.mcode=&A|
00001210  30 30 0d 07 62 0e 64 64  72 62 3d 26 46 45 36 32  |00..b.ddrb=&FE62|
00001220  0d 07 6c 0d 64 72 62 3d  26 46 45 36 30 0d 07 76  |..l.drb=&FE60..v|
00001230  0d 70 63 72 3d 26 46 45  36 43 0d 07 80 0d 69 66  |.pcr=&FE6C....if|
00001240  72 3d 26 46 45 36 44 0d  07 8a 0d 69 65 72 3d 26  |r=&FE6D....ier=&|
00001250  46 45 36 45 0d 07 94 10  6f 73 77 6f 72 64 3d 26  |FE6E....osword=&|
00001260  46 46 46 31 0d 07 9e 10  6f 73 62 79 74 65 3d 26  |FFF1....osbyte=&|
00001270  46 46 46 34 0d 07 a8 14  e3 20 70 61 73 73 3d 30  |FFF4..... pass=0|
00001280  20 b8 20 32 20 88 20 32  0d 07 b2 0c 50 25 3d 6d  | . 2 . 2....P%=m|
00001290  63 6f 64 65 0d 07 bc 0d  5b 4f 50 54 20 70 61 73  |code....[OPT pas|
000012a0  73 0d 07 c6 0d 4c 44 58  20 69 72 71 31 76 0d 07  |s....LDX irq1v..|
000012b0  d0 0f 4c 44 59 20 69 72  71 31 76 2b 31 0d 07 da  |..LDY irq1v+1...|
000012c0  18 43 50 59 20 23 69 6e  74 65 72 72 75 70 74 20  |.CPY #interrupt |
000012d0  81 20 32 35 36 0d 07 e4  0f 42 45 51 20 64 69 73  |. 256....BEQ dis|
000012e0  61 62 6c 65 0d 07 ee 10  53 54 58 20 6f 6c 64 69  |able....STX oldi|
000012f0  72 71 31 76 0d 07 f8 12  53 54 59 20 6f 6c 64 69  |rq1v....STY oldi|
00001300  72 71 31 76 2b 31 0d 08  02 0d 4c 44 58 20 62 79  |rq1v+1....LDX by|
00001310  74 65 76 0d 08 0c 0f 4c  44 59 20 62 79 74 65 76  |tev....LDY bytev|
00001320  2b 31 0d 08 16 10 53 54  58 20 6f 6c 64 62 79 74  |+1....STX oldbyt|
00001330  65 76 0d 08 20 12 53 54  59 20 6f 6c 64 62 79 74  |ev.. .STY oldbyt|
00001340  65 76 2b 31 0d 08 2a 18  4c 44 58 20 23 69 6e 74  |ev+1..*.LDX #int|
00001350  65 72 72 75 70 74 20 83  20 32 35 36 0d 08 34 18  |errupt . 256..4.|
00001360  4c 44 59 20 23 69 6e 74  65 72 72 75 70 74 20 81  |LDY #interrupt .|
00001370  20 32 35 36 0d 08 3e 07  53 45 49 0d 08 48 0d 53  | 256..>.SEI..H.S|
00001380  54 58 20 69 72 71 31 76  0d 08 52 0f 53 54 59 20  |TX irq1v..R.STY |
00001390  69 72 71 31 76 2b 31 0d  08 5c 07 43 4c 49 0d 08  |irq1v+1..\.CLI..|
000013a0  66 17 4c 44 58 20 23 6e  65 77 69 6e 6b 65 79 20  |f.LDX #newinkey |
000013b0  83 20 32 35 36 0d 08 70  17 4c 44 59 20 23 6e 65  |. 256..p.LDY #ne|
000013c0  77 69 6e 6b 65 79 20 81  20 32 35 36 0d 08 7a 0d  |winkey . 256..z.|
000013d0  53 54 58 20 62 79 74 65  76 0d 08 84 0f 53 54 59  |STX bytev....STY|
000013e0  20 62 79 74 65 76 2b 31  0d 08 8e 0c 4c 44 41 20  | bytev+1....LDA |
000013f0  23 26 38 38 0d 08 98 0b  53 54 41 20 69 65 72 0d  |#&88....STA ier.|
00001400  08 a2 0b 4c 44 41 20 70  63 72 0d 08 ac 0a 80 20  |...LDA pcr..... |
00001410  23 26 30 46 0d 08 b6 0b  84 41 20 23 26 34 30 0d  |#&0F.....A #&40.|
00001420  08 c0 0b 53 54 41 20 70  63 72 0d 08 ca 0c 4c 44  |...STA pcr....LD|
00001430  41 20 23 26 30 30 0d 08  d4 0c 53 54 41 20 64 64  |A #&00....STA dd|
00001440  72 62 0d 08 de 07 52 54  53 0d 08 e8 0c 2e 64 69  |rb....RTS.....di|
00001450  73 61 62 6c 65 0d 08 f2  0c 4c 44 41 20 23 26 30  |sable....LDA #&0|
00001460  38 0d 08 fc 10 4c 44 58  20 6f 6c 64 69 72 71 31  |8....LDX oldirq1|
00001470  76 0d 09 06 12 4c 44 59  20 6f 6c 64 69 72 71 31  |v....LDY oldirq1|
00001480  76 2b 31 0d 09 10 07 53  45 49 0d 09 1a 0b 53 54  |v+1....SEI....ST|
00001490  41 20 69 65 72 0d 09 24  0b 4c 44 41 20 70 63 72  |A ier..$.LDA pcr|
000014a0  0d 09 2e 0a 80 20 23 26  30 46 0d 09 38 0b 53 54  |..... #&0F..8.ST|
000014b0  41 20 70 63 72 0d 09 42  0d 53 54 58 20 69 72 71  |A pcr..B.STX irq|
000014c0  31 76 0d 09 4c 0f 53 54  59 20 69 72 71 31 76 2b  |1v..L.STY irq1v+|
000014d0  31 0d 09 56 07 43 4c 49  0d 09 60 10 4c 44 58 20  |1..V.CLI..`.LDX |
000014e0  6f 6c 64 62 79 74 65 76  0d 09 6a 12 4c 44 59 20  |oldbytev..j.LDY |
000014f0  6f 6c 64 62 79 74 65 76  2b 31 0d 09 74 0d 53 54  |oldbytev+1..t.ST|
00001500  58 20 62 79 74 65 76 0d  09 7e 0f 53 54 59 20 62  |X bytev..~.STY b|
00001510  79 74 65 76 2b 31 0d 09  88 07 52 54 53 0d 09 92  |ytev+1....RTS...|
00001520  0e 2e 69 6e 74 65 72 72  75 70 74 0d 09 9c 0b 4c  |..interrupt....L|
00001530  44 41 20 26 46 43 0d 09  a6 07 50 48 41 0d 09 b0  |DA &FC....PHA...|
00001540  0b 4c 44 41 20 69 66 72  0d 09 ba 0f 42 50 4c 20  |.LDA ifr....BPL |
00001550  6e 6f 74 75 73 65 72 0d  09 c4 0a 80 20 23 26 30  |notuser..... #&0|
00001560  38 0d 09 ce 0f 42 45 51  20 6e 6f 74 75 73 65 72  |8....BEQ notuser|
00001570  0d 09 d8 0b 4c 44 41 20  64 72 62 0d 09 e2 0a 80  |....LDA drb.....|
00001580  20 23 26 30 34 0d 09 ec  0d 42 4e 45 20 79 64 6f  | #&04....BNE ydo|
00001590  77 6e 0d 09 f6 0e 49 4e  43 20 79 63 6f 6f 72 64  |wn....INC ycoord|
000015a0  0d 0a 00 0c 42 4e 45 20  65 78 69 74 0d 0a 0a 0c  |....BNE exit....|
000015b0  42 45 51 20 64 65 63 79  0d 0a 14 0a 2e 79 64 6f  |BEQ decy.....ydo|
000015c0  77 6e 0d 0a 1e 0e 4c 44  41 20 79 63 6f 6f 72 64  |wn....LDA ycoord|
000015d0  0d 0a 28 0c 42 45 51 20  65 78 69 74 0d 0a 32 09  |..(.BEQ exit..2.|
000015e0  2e 64 65 63 79 0d 0a 3c  0e 44 45 43 20 79 63 6f  |.decy..<.DEC yco|
000015f0  6f 72 64 0d 0a 46 09 2e  65 78 69 74 0d 0a 50 07  |ord..F..exit..P.|
00001600  50 4c 41 0d 0a 5a 0b 53  54 41 20 26 46 43 0d 0a  |PLA..Z.STA &FC..|
00001610  64 07 52 54 49 0d 0a 6e  0c 2e 6e 6f 74 75 73 65  |d.RTI..n..notuse|
00001620  72 0d 0a 78 07 50 4c 41  0d 0a 82 0b 53 54 41 20  |r..x.PLA....STA |
00001630  26 46 43 0d 0a 8c 12 4a  4d 50 20 28 6f 6c 64 69  |&FC....JMP (oldi|
00001640  72 71 31 76 29 0d 0a 96  0d 2e 6e 65 77 69 6e 6b  |rq1v).....newink|
00001650  65 79 0d 0a a0 07 50 48  50 0d 0a aa 0c 43 4d 50  |ey....PHP....CMP|
00001660  20 23 26 38 31 0d 0a b4  10 42 4e 45 20 6e 6f 74  | #&81....BNE not|
00001670  69 6e 6b 65 79 0d 0a be  0c 43 50 59 20 23 26 46  |inkey....CPY #&F|
00001680  46 0d 0a c8 0d 42 45 51  20 69 6e 6b 65 79 0d 0a  |F....BEQ inkey..|
00001690  d2 0d 2e 6e 6f 74 69 6e  6b 65 79 0d 0a dc 07 50  |...notinkey....P|
000016a0  4c 50 0d 0a e6 0c 2e 6f  6c 64 63 6f 64 65 0d 0a  |LP.....oldcode..|
000016b0  f0 12 4a 4d 50 20 28 6f  6c 64 62 79 74 65 76 29  |..JMP (oldbytev)|
000016c0  0d 0a fa 0a 2e 69 6e 6b  65 79 0d 0b 04 07 54 58  |.....inkey....TX|
000016d0  41 0d 0b 0e 07 50 48 41  0d 0b 18 0c 4c 44 41 20  |A....PHA....LDA |
000016e0  23 26 38 31 0d 0b 22 0f  4a 53 52 20 6f 6c 64 63  |#&81..".JSR oldc|
000016f0  6f 64 65 0d 0b 2c 0c 43  50 58 20 23 26 46 46 0d  |ode..,.CPX #&FF.|
00001700  0b 36 12 42 4e 45 20 6e  6f 74 70 72 65 73 73 65  |.6.BNE notpresse|
00001710  64 0d 0b 40 07 50 4c 41  0d 0b 4a 0c 2e 70 75 6c  |d..@.PLA..J..pul|
00001720  6c 6f 75 74 0d 0b 54 0c  4c 44 41 20 23 26 38 31  |lout..T.LDA #&81|
00001730  0d 0b 5e 07 50 4c 50 0d  0b 68 07 52 54 53 0d 0b  |..^.PLP..h.RTS..|
00001740  72 0f 2e 6e 6f 74 70 72  65 73 73 65 64 0d 0b 7c  |r..notpressed..||
00001750  07 50 4c 41 0d 0b 86 0a  43 4d 50 20 75 70 0d 0b  |.PLA....CMP up..|
00001760  90 0f 42 4e 45 20 74 72  79 64 6f 77 6e 0d 0b 9a  |..BNE trydown...|
00001770  0e 4c 44 41 20 79 63 6f  6f 72 64 0d 0b a4 0c 43  |.LDA ycoord....C|
00001780  4d 50 20 23 26 38 38 0d  0b ae 0f 42 43 43 20 70  |MP #&88....BCC p|
00001790  75 6c 6c 6f 75 74 0d 0b  b8 0e 42 43 53 20 72 65  |ullout....BCS re|
000017a0  73 65 74 79 0d 0b c2 0c  2e 74 72 79 64 6f 77 6e  |sety.....trydown|
000017b0  0d 0b cc 0c 43 4d 50 20  64 6f 77 6e 0d 0b d6 12  |....CMP down....|
000017c0  42 4e 45 20 74 72 79 62  75 74 74 6f 6e 73 0d 0b  |BNE trybuttons..|
000017d0  e0 0e 4c 44 41 20 79 63  6f 6f 72 64 0d 0b ea 0c  |..LDA ycoord....|
000017e0  43 4d 50 20 23 26 37 38  0d 0b f4 0f 42 43 53 20  |CMP #&78....BCS |
000017f0  70 75 6c 6c 6f 75 74 0d  0b fe 0b 2e 72 65 73 65  |pullout.....rese|
00001800  74 79 0d 0c 08 0c 4c 44  41 20 23 26 38 30 0d 0c  |ty....LDA #&80..|
00001810  12 0e 53 54 41 20 79 63  6f 6f 72 64 0d 0c 1c 0d  |..STA ycoord....|
00001820  42 4e 45 20 66 6f 75 6e  64 0d 0c 26 0f 2e 74 72  |BNE found..&..tr|
00001830  79 62 75 74 74 6f 6e 73  0d 0c 30 14 43 4d 50 20  |ybuttons..0.CMP |
00001840  63 65 6e 74 72 65 62 75  74 74 6f 6e 0d 0c 3a 0f  |centrebutton..:.|
00001850  42 4e 45 20 74 72 79 6c  65 66 74 0d 0c 44 0b 4c  |BNE tryleft..D.L|
00001860  44 41 20 64 72 62 0d 0c  4e 0b 4a 4d 50 20 74 77  |DA drb..N.JMP tw|
00001870  6f 0d 0c 58 0c 2e 74 72  79 6c 65 66 74 0d 0c 62  |o..X..tryleft..b|
00001880  12 43 4d 50 20 6c 65 66  74 62 75 74 74 6f 6e 0d  |.CMP leftbutton.|
00001890  0c 6c 0f 42 4e 45 20 70  75 6c 6c 6f 75 74 0d 0c  |.l.BNE pullout..|
000018a0  76 0b 4c 44 41 20 64 72  62 0d 0c 80 09 52 4f 4c  |v.LDA drb....ROL|
000018b0  20 41 0d 0c 8a 08 2e 74  77 6f 0d 0c 94 09 52 4f  | A.....two....RO|
000018c0  4c 20 41 0d 0c 9e 09 52  4f 4c 20 41 0d 0c a8 0f  |L A....ROL A....|
000018d0  42 43 53 20 70 75 6c 6c  6f 75 74 0d 0c b2 0a 2e  |BCS pullout.....|
000018e0  66 6f 75 6e 64 0d 0c bc  0c 4c 44 41 20 23 26 38  |found....LDA #&8|
000018f0  31 0d 0c c6 0c 4c 44 58  20 23 26 46 46 0d 0c d0  |1....LDX #&FF...|
00001900  0c 4c 44 59 20 23 26 46  46 0d 0c da 07 50 4c 50  |.LDY #&FF....PLP|
00001910  0d 0c e4 07 52 54 53 0d  0c ee 11 2e 63 65 6e 74  |....RTS.....cent|
00001920  72 65 62 75 74 74 6f 6e  0d 0c f8 0c 45 51 55 42  |rebutton....EQUB|
00001930  20 2d 37 34 0d 0d 02 0f  2e 6c 65 66 74 62 75 74  | -74.....leftbut|
00001940  74 6f 6e 0d 0d 0c 0c 45  51 55 42 20 2d 39 39 0d  |ton....EQUB -99.|
00001950  0d 16 07 2e 75 70 0d 0d  20 0c 45 51 55 42 20 2d  |....up.. .EQUB -|
00001960  35 38 0d 0d 2a 09 2e 64  6f 77 6e 0d 0d 34 0c 45  |58..*..down..4.E|
00001970  51 55 42 20 2d 34 32 0d  0d 3e 0d 2e 6f 6c 64 69  |QUB -42..>..oldi|
00001980  72 71 31 76 0d 0d 48 0c  45 51 55 57 20 26 30 30  |rq1v..H.EQUW &00|
00001990  0d 0d 52 0d 2e 6f 6c 64  62 79 74 65 76 0d 0d 5c  |..R..oldbytev..\|
000019a0  0c 45 51 55 57 20 26 30  30 0d 0d 66 0b 2e 79 63  |.EQUW &00..f..yc|
000019b0  6f 6f 72 64 0d 0d 70 0c  45 51 55 42 20 26 38 30  |oord..p.EQUB &80|
000019c0  0d 0d 7a 05 5d 0d 0d 84  05 ed 0d 0d 8e 0b d6 20  |..z.].......... |
000019d0  6d 63 6f 64 65 0d 0d 98  05 e1 0d ff              |mcode.......|
000019dc
16-12-88/LOADER.m0
16-12-88/LOADER.m1
16-12-88/LOADER.m2
16-12-88/LOADER.m4
16-12-88/LOADER.m5