Home » Personal collection » Acorn ADFS disks » Electron_User_Group » EUG_15.ADF » HyperD

HyperD

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 » Personal collection » Acorn ADFS disks » Electron_User_Group » EUG_15.ADF
Filename: HyperD
Read OK:
File size: 1603 bytes
Load address: FFFFFB00
Exec address: FFFF8023
Duplicates

There are 2 duplicate copies of this file in the archive:

File contents
   10REM Hyperball Screen Designer
   20REM By Gareth Boden and James Treadwell
   30REM (C) HeadFirst PD 1992
   40*FX200,2
   50ON ERROR OSCLI"FX4":OSCLI"FX15":VDU4:CLOSE#0:IF ERR=17 PROCquit:GOTO300 ELSE PROCend
   60PROCass
   70OSCLI"LOAD DSpr "+STR$~sprdata
   80VDU23,255,255,255,255,255,255,255,255,255
   90MODE5
  100IF FNshadow=TRUE MODE7:PRINT''"Shadow RAM must be turned OFF.":z=INKEY(200):PROCend
  110VDU23,1,0;0;0;0;0;0;
  120VDU19,2,4;0;
  130PROCcolours
  140PROCborder
  150PRINTTAB(10,21);"Set: A"'
  160PRINT"Char:";SPC(5);"Screen:  1";
  170PRINT'"0 - blank";TAB(10);"1 - ";FNsprite(1)
  180PRINT'"2 - ";FNsprite(2);TAB(10);"3 - ";FNsprite(3)
  190PRINT'"4 - ";FNsprite(4);TAB(10);"5 - ";FNsprite(5)
  200PRINT'"6 - ";FNsprite(6);" (invisible)";
  210x%=1:y%=0
  220PROCus
  230VDU28,0,20,18,1
  240scr%=0:DIM screens 7600
  250FOR i=0 TO 7600 STEP 4:i!screens=0:NEXT
  260VDU28,1,19,18,1:CLS:VDU28,0,20,18,1
  270curr%=0
  280a$="A":PROCcol
  290PROCblock(1,0)
  300REPEAT
  310PROCblock(x%,y%)
  320IF INKEY-26 OR INKEY-98 x%=x%+(x%>1)
  330IF INKEY-122 OR INKEY-67 x%=x%-(x%<18)
  340IF INKEY-58 OR INKEY-73 y%=y%+(y%>0)
  350IF INKEY-42 OR INKEY-105 y%=y%-(y%<18)
  360IF INKEY-40 curr%=0
  370IF INKEY-49 curr%=1
  380IF INKEY-50 curr%=2
  390IF INKEY-18 curr%=3
  400IF INKEY-19 curr%=4
  410IF INKEY-20 curr%=5
  420IF INKEY-53 curr%=6
  430PROCpsprite(curr%,6,23)
  440IF INKEY-99 OR INKEY-90 PROCpsprite(0,x%,y%+1):screens?(scr%*380+x%+y%*20)=0
  450IF INKEY-74 PROCpsprite(curr%,x%,y%+1):screens?(scr%*380+x%+y%*20)=curr%
  460IF INKEY-35 OSCLI"FX15,0":VDU28,1,20,18,1:REPEAT:CLS:PRINT'"Which screen?":INPUT">" scr%:UNTIL scr%>0 AND scr%<21:scr%=scr%-1:PROCdispscreen(scr%)
  470IF INKEY-52 OSCLI"FX15 0":VDU28,1,20,18,1:REPEAT:CLS:PRINT'"Which set?":INPUT">" a$:UNTIL INSTR("ABCDEF",a$):VDU26:PRINTTAB(15,21);a$:PROCdispscreen(scr%)
  480IF INKEY-2 AND INKEY-17 PROCquit
  490IF INKEY-82 OSCLI"FX15,0":PROCsave
  500IF INKEY-87 OSCLI"FX15,0":PROCload
  510IF INKEY-2 AND INKEY-83 PROCclrscr(scr%)
  520IF INKEY-2 AND INKEY-67 GOTO230
  530PROCblock(x%,y%)
  540UNTIL0
  550END
  560DEFPROCass
  570address=&70
  580temp=&72
  590DIM print &100
  600FOR I=0 TO 2 STEP 2
  610P%=print
  620[OPT I
  630ASL A:ASL A:ASL A:ASL A
  640CLC:STA temp:ADC#15:TAX
  650LDY#15
  660.loop
  670LDA sprdata,X
  680STA (address),Y
  690CPY#0:BEQ endloop
  700DEY:DEX:JMP loop:.endloop
  710RTS
  720.sprdata
  730EQUD 0:EQUD 0:EQUD 0:EQUD 0
  740EQUD 0:EQUD 0:EQUD 0:EQUD 0
  750EQUD 0:EQUD 0:EQUD 0:EQUD 0
  760EQUD 0:EQUD 0:EQUD 0:EQUD 0
  770EQUD 0:EQUD 0:EQUD 0:EQUD 0
  780EQUD 0:EQUD 0:EQUD 0:EQUD 0
  790EQUD 0:EQUD 0:EQUD 0:EQUD 0
  800]
  810NEXT
  820ENDPROC
  830DEFPROCpsprite(A%,x%,y%)
  840add%=&5800+x%*&10+y%*&140
  850?address=add% MOD256
  860address?1=add% DIV256
  870CALL print
  880ENDPROC
  890DEFFNsprite(A%)
  900IF A%>0 PROCpsprite(A%,POS,VPOS)
  910=CHR$(9)
  920DEFPROCblock(x%,y%)
  930GCOL3,3:VDU5:MOVE x%*64,988-y%*32
  940VDU255,4
  950ENDPROC
  960DEFPROCdispscreen(scr%)
  970LOCAL x%,y%
  980VDU28,1,20,18,1
  990CLS
 1000VDU28,0,20,18,1
 1010PROCcol
 1020FOR y%=0 TO 18:FOR x%=1 TO 18
 1030PROCpsprite(screens?(scr%*380+y%*20+x%),x%,y%+1)
 1040NEXT,
 1050VDU26:PRINTTAB(18,23);RIGHT$(" "+STR$(scr%+1),2)
 1060VDU28,0,20,18,1
 1070ENDPROC
 1080DEFPROCquit
 1090*FX15,0
 1100VDU28,1,20,18,1
 1110CLS:PRINT"Are you sure?":z$=GET$:IF INSTR("Yy",z$) THEN PROCend ELSE PROCdispscreen(scr%)
 1120ENDPROC
 1130DEFPROCend
 1140VDU22,7:*/!Boot
 1150END:ENDPROC
 1160 
 1170DEFPROCsave
 1180LOCAL x%,y%,file$,f%,scr%
 1190VDU28,1,20,18,1
 1200file$="SET"+a$
 1210CLS
 1220PRINT''"Saving ..."'"Please wait"
 1230f%=OPENOUT file$
 1240off%=0
 1250FOR scr%=0 TO 19
 1260PRINTTAB(0,5)"Completed: ";INT(((scr%*380+off%)/7600)*100);"%"
 1270FOR off%=0 TO 379
 1280IF screens?(scr%*380+off%)=0 AND off%<361 THEN IF FNcheckif20 BPUT#f%,&1E:off%=off%+19:GOTO1320
 1290IF screens?(scr%*380+off%)=0 AND off%<377 THEN IF FNcheckif4 BPUT#f%,&14:off%=off%+3:GOTO1320
 1300byte%=screens?(scr%*380+off%)
 1310IF byte%<>6 BPUT#f%,byte% ELSE BPUT#f%,7
 1320NEXT
 1330BPUT#f%,&FF
 1340NEXT scr%
 1350CLOSE#f%
 1360scr%=0:PROCdispscreen(scr%)
 1370ENDPROC
 1380 
 1390DEFFNcheckif20
 1400LOCAL z
 1410z=-1:REPEAT:z=z+1:UNTIL z=19 OR screens?(scr%*380+off%+z)<>0
 1420 =(z=19)AND(screens?(scr%*380+off%+z))=0
 1430 
 1440DEFFNcheckif4
 1450LOCAL sum,z
 1460sum=0
 1470FOR z=0 TO 3:sum=sum+screens?(scr%*380+off%+z):NEXT
 1480=(sum=0)
 1490 
 1500DEFPROCload
 1510LOCAL file$,f%,scr%,row%,i,byte%
 1520VDU28,1,20,18,1
 1530REPEAT:CLS
 1540PRINT"Which set (A-F)?"
 1550INPUT">"a$
 1560UNTIL INSTR("ABCDEF",a$)
 1570file$="SET"+a$
 1580CLS
 1590PRINT''"Loading ..."'"Please wait"
 1600f%=OPENIN file$
 1610off%=0
 1620FOR scr%=0 TO 19
 1630PRINTTAB(0,5)"Completed: ";INT(((scr%*380+off%)/7600)*100);"%"
 1640FORoff%=0 TO 379
 1650byte%=BGET#f%
 1653IF byte%=&1E THEN PROCblank(20):GOTO1700
 1660IF byte%=&FF THEN PRINTscr%:off%=379:GOTO1710
 1670IF byte%=&14 PROCblank(4):GOTO1700
 1680IF byte%=7 byte%=6
 1690screens?(scr%*380+off%)=byte%
 1700IF off%=379 byte%=BGET#f%
 1710NEXT off%
 1720NEXT scr%
 1730CLOSE#f%
 1740scr%=0:PROCdispscreen(scr%)
 1750ENDPROC
 1760DEFPROCblank(n%)
 1770LOCAL c%
 1780FOR c%=0 TO n%-1
 1790screens?(scr%*380+off%+c%)=0
 1800NEXT
 1810off%=off%+n%-1
 1820ENDPROC
 1830 
 1840DEFPROCborder
 1850GCOL0,3
 1860MOVE 0,355:DRAW 0,1023:DRAW 1279,1023:DRAW 1279,355
 1870GCOL0,1
 1880MOVE 16,355:DRAW 16,1015:DRAW 1263,1015:DRAW 1263,355
 1890GCOL0,2
 1900MOVE 32,355:DRAW 32,1007:DRAW 1247,1007:DRAW 1247,355
 1910ENDPROC
 1920DEFPROCclrscr(scr%)
 1930VDU28,1,19,18,1:CLS
 1940VDU28,0,19,19,1
 1950FOR off%=0 TO 379
 1960screens?(scr%*380+off%)=0
 1970NEXT
 1980ENDPROC
 1990 
 2000DEFPROCus
 2010GCOL0,3
 2020VDU28,1,19,18,1
 2030PROCcentre("HYPERBALL",1)
 2040PROCcentre("Screen Designer",3)
 2050PROCcentre("By",6)
 2060PROCcentre("Gareth Boden",8)
 2070PROCcentre("and",10)
 2080PROCcentre("James Treadwell",12)
 2090PROCcentre("(C) HeadFirst 1992",15)
 2100COLOUR1:COLOUR131:PRINTTAB(2,18)"Please Wait...";:COLOUR3:COLOUR128
 2110ENDPROC
 2120 
 2130DEFPROCcentre(a$,y%)
 2140y%=1023-y%*32
 2150LOCAL x%
 2160x%=(20-LENa$)*32
 2170VDU5:MOVE x%,y%:PRINTa$+CHR$4
 2180ENDPROC
 2190DEFPROCcol
 2200IFa$="A" THEN VDU19,1,sc1(scr%);0;19,2,sc2(scr%);0;19,3,sc3(scr%);0;
 2210IFa$="B" THEN VDU19,1,sc1(scr%+1);0;19,2,sc2(scr%+1);0;19,3,sc3(scr%+1);0;
 2220IFa$="C" THEN VDU19,1,sc1(scr%+2);0;19,2,sc2(scr%+2);0;19,3,sc3(scr%+2);0;
 2230IFa$="D" THEN VDU19,1,sc1(scr%+3);0;19,2,sc2(scr%+3);0;19,3,sc3(scr%+3);0;
 2240IFa$="E" THEN VDU19,1,sc1(scr%+4);0;19,2,sc2(scr%+4);0;19,3,sc3(scr%+4);0;
 2250IFa$="F" AND scr%>2 THEN VDU19,1,sc1(scr%);0;19,2,sc2(scr%);0;19,3,sc3(scr%);0; ELSE IFa$="F" AND scr%<3 THEN VDU19,1,sc1(scr%+24);0;19,2,sc2(scr%+24);0;19,3,sc3(scr%+24);0;
 2260ENDPROC
 2270DEFPROCcolours
 2280DIM sc1(26),sc2(26),sc3(26)
 2290FORI=0TO26
 2300READ sc1(I),sc2(I),sc3(I)
 2310NEXT
 2320ENDPROC
 2330DATA 1,4,7,3,2,7,5,4,6,3,6,7,3,5,6,1,2,7,1,4,7,5,4,6,3,2,7,5,1,6,5,4,6,1,2,7,1,4,7,2,1,3,6,5,7,5,4,6,1,4,7,1,2,7,6,5,7,1,2,7,1,4,7,3,2,7,5,4,6,3,6,7,1,4,7,1,4,7,3,2,7
 2340 
 2350DEFFNshadow
 2360A%=133:X%=5:ret%=USR(&FFF4)
 2370addr%=(ret% AND &FFFF00)DIV&100
 2380?addr%=&FF
 2390=(POINT(0,1023)=0)

� Hyperball Screen Designer
)� By Gareth Boden and James Treadwell
� (C) HeadFirst PD 1992
(*FX200,2
27� � �"FX4":�"FX15":�4:�#0:� �=17 �quit:�TlA � �end
<�ass
F�"LOAD DSpr "+�~sprdata
P+�23,255,255,255,255,255,255,255,255,255
Z�5
dD� �shadow=� �7:�''"Shadow RAM must be turned OFF.":z=�(200):�end
n�23,1,0;0;0;0;0;0;
x�19,2,4;0;
��colours
��border
��10,21);"Set: A"'
��"Char:";�(5);"Screen:  1";
�(�'"0 - blank";�10);"1 - ";�sprite(1)
�.�'"2 - ";�sprite(2);�10);"3 - ";�sprite(3)
�.�'"4 - ";�sprite(4);�10);"5 - ";�sprite(5)
�'�'"6 - ";�sprite(6);" (invisible)";
�
x%=1:y%=0
��us
��28,0,20,18,1
�scr%=0:� screens 7600
�"� i=0 � 7600 � 4:i!screens=0:�
!�28,1,19,18,1:�:�28,0,20,18,1
curr%=0
a$="A":�col
"�block(1,0)
,�
6�block(x%,y%)
@� �-26 � �-98 x%=x%+(x%>1)
J � �-122 � �-67 x%=x%-(x%<18)
T� �-58 � �-73 y%=y%+(y%>0)
^ � �-42 � �-105 y%=y%-(y%<18)
h� �-40 curr%=0
r� �-49 curr%=1
|� �-50 curr%=2
�� �-18 curr%=3
�� �-19 curr%=4
�� �-20 curr%=5
�� �-53 curr%=6
��psprite(curr%,6,23)
�C� �-99 � �-90 �psprite(0,x%,y%+1):screens?(scr%*380+x%+y%*20)=0
�D� �-74 �psprite(curr%,x%,y%+1):screens?(scr%*380+x%+y%*20)=curr%
�s� �-35 �"FX15,0":�28,1,20,18,1:�:�:�'"Which screen?":�">" scr%:� scr%>0 � scr%<21:scr%=scr%-1:�dispscreen(scr%)
�o� �-52 �"FX15 0":�28,1,20,18,1:�:�:�'"Which set?":�">" a$:� �"ABCDEF",a$):�26:�15,21);a$:�dispscreen(scr%)
�� �-2 � �-17 �quit
�� �-82 �"FX15,0":�save
�� �-87 �"FX15,0":�load
�� �-2 � �-83 �clrscr(scr%)
� �-2 � �-67 �df@
�block(x%,y%)
�0
&�
0	��ass
:address=&70
Dtemp=&72
N� print &100
X� I=0 � 2 � 2
bP%=print
l
[OPT I
vASL A:ASL A:ASL A:ASL A
�CLC:STA temp:ADC#15:TAX
�
LDY#15
�	.loop
�LDA sprdata,X
�STA (address),Y
�CPY#0:BEQ endloop
�DEY:DEX:JMP loop:.endloop
�RTS
�.sprdata
�EQUD 0:EQUD 0:EQUD 0:EQUD 0
�EQUD 0:EQUD 0:EQUD 0:EQUD 0
�EQUD 0:EQUD 0:EQUD 0:EQUD 0
�EQUD 0:EQUD 0:EQUD 0:EQUD 0
EQUD 0:EQUD 0:EQUD 0:EQUD 0
EQUD 0:EQUD 0:EQUD 0:EQUD 0
EQUD 0:EQUD 0:EQUD 0:EQUD 0
 ]
*�
4�
>��psprite(A%,x%,y%)
Hadd%=&5800+x%*&10+y%*&140
R?address=add% �256
\address?1=add% �256
f� print
p�
zݤsprite(A%)
�� A%>0 �psprite(A%,�,�)
�	=�(9)
���block(x%,y%)
��3,3:�5:� x%*64,988-y%*32
�
�255,4
��
���dispscreen(scr%)
�� x%,y%
��28,1,20,18,1
��
��28,0,20,18,1
��col
�� y%=0 � 18:� x%=1 � 18
1�psprite(screens?(scr%*380+y%*20+x%),x%,y%+1)
�,
"�26:�18,23);�" "+�(scr%+1),2)
$�28,0,20,18,1
.�
8
��quit
B*FX15,0
L�28,1,20,18,1
VB�:�"Are you sure?":z$=�:� �"Yy",z$) � �end � �dispscreen(scr%)
`�
j	��end
t�22,7:*/!Boot
~�:�
� 
�
��save
�� x%,y%,file$,f%,scr%
��28,1,20,18,1
�file$="SET"+a$
��
�!�''"Saving ..."'"Please wait"
�f%=� file$
�
off%=0
�� scr%=0 � 19
�9�0,5)"Completed: ";�(((scr%*380+off%)/7600)*100);"%"
�� off%=0 � 379
U� screens?(scr%*380+off%)=0 � off%<361 � � �checkif20 �#f%,&1E:off%=off%+19:�ThE

S� screens?(scr%*380+off%)=0 � off%<377 � � �checkif4 �#f%,&14:off%=off%+3:�ThE
!byte%=screens?(scr%*380+off%)
"� byte%<>6 �#f%,byte% � �#f%,7
(�
2�#f%,&FF
<
� scr%
F�#f%
Pscr%=0:�dispscreen(scr%)
Z�
d 
nݤcheckif20
x� z
�6z=-1:�:z=z+1:� z=19 � screens?(scr%*380+off%+z)<>0
�* =(z=19)�(screens?(scr%*380+off%+z))=0
� 
�ݤcheckif4
�� sum,z
�	sum=0
�1� z=0 � 3:sum=sum+screens?(scr%*380+off%+z):�
�=(sum=0)
� 
�
��load
� � file$,f%,scr%,row%,i,byte%
��28,1,20,18,1
��:�
�"Which set (A-F)?"

�">"a$
� �"ABCDEF",a$)
"file$="SET"+a$
,�
6"�''"Loading ..."'"Please wait"
@f%=� file$
J
off%=0
T� scr%=0 � 19
^9�0,5)"Completed: ";�(((scr%*380+off%)/7600)*100);"%"
h�off%=0 � 379
rbyte%=�#f%
u"� byte%=&1E � �blank(20):�tdF
|&� byte%=&FF � �scr%:off%=379:�tnF
�� byte%=&14 �blank(4):�tdF
�� byte%=7 byte%=6
�!screens?(scr%*380+off%)=byte%
�� off%=379 byte%=�#f%
�
� off%
�
� scr%
��#f%
�scr%=0:�dispscreen(scr%)
��
���blank(n%)
�� c%
�� c%=0 � n%-1
� screens?(scr%*380+off%+c%)=0
�
off%=off%+n%-1
�
& 
0��border
:�0,3
D+� 0,355:� 0,1023:� 1279,1023:� 1279,355
N�0,1
X-� 16,355:� 16,1015:� 1263,1015:� 1263,355
b�0,2
l-� 32,355:� 32,1007:� 1247,1007:� 1247,355
v�
���clrscr(scr%)
��28,1,19,18,1:�
��28,0,19,19,1
�� off%=0 � 379
�screens?(scr%*380+off%)=0
��
��
� 
���us
��0,3
��28,1,19,18,1
��centre("HYPERBALL",1)
� �centre("Screen Designer",3)
�centre("By",6)
�centre("Gareth Boden",8)
�centre("and",10)
 !�centre("James Treadwell",12)
*$�centre("(C) HeadFirst 1992",15)
4,�1:�131:�2,18)"Please Wait...";:�3:�128
>�
H 
R��centre(a$,y%)
\y%=1023-y%*32
f� x%
px%=(20-�a$)*32
z�5:� x%,y%:�a$+�4
��
�	��col
�B�a$="A" � �19,1,sc1(scr%);0;19,2,sc2(scr%);0;19,3,sc3(scr%);0;
�H�a$="B" � �19,1,sc1(scr%+1);0;19,2,sc2(scr%+1);0;19,3,sc3(scr%+1);0;
�H�a$="C" � �19,1,sc1(scr%+2);0;19,2,sc2(scr%+2);0;19,3,sc3(scr%+2);0;
�H�a$="D" � �19,1,sc1(scr%+3);0;19,2,sc2(scr%+3);0;19,3,sc3(scr%+3);0;
�H�a$="E" � �19,1,sc1(scr%+4);0;19,2,sc2(scr%+4);0;19,3,sc3(scr%+4);0;
ʞ�a$="F" � scr%>2 � �19,1,sc1(scr%);0;19,2,sc2(scr%);0;19,3,sc3(scr%);0; � �a$="F" � scr%<3 � �19,1,sc1(scr%+24);0;19,2,sc2(scr%+24);0;19,3,sc3(scr%+24);0;
��
�
��colours
�� sc1(26),sc2(26),sc3(26)
��I=0�26
�� sc1(I),sc2(I),sc3(I)
	�
	�
	�� 1,4,7,3,2,7,5,4,6,3,6,7,3,5,6,1,2,7,1,4,7,5,4,6,3,2,7,5,1,6,5,4,6,1,2,7,1,4,7,2,1,3,6,5,7,5,4,6,1,4,7,1,2,7,6,5,7,1,2,7,1,4,7,3,2,7,5,4,6,3,6,7,1,4,7,1,4,7,3,2,7
	$ 
	.ݤshadow
	8A%=133:X%=5:ret%=�(&FFF4)
	Baddr%=(ret% � &FFFF00)�&100
	L?addr%=&FF
	V=(�0,1023)=0)
�
00000000  0d 00 0a 1f f4 20 48 79  70 65 72 62 61 6c 6c 20  |..... Hyperball |
00000010  53 63 72 65 65 6e 20 44  65 73 69 67 6e 65 72 0d  |Screen Designer.|
00000020  00 14 29 f4 20 42 79 20  47 61 72 65 74 68 20 42  |..). By Gareth B|
00000030  6f 64 65 6e 20 61 6e 64  20 4a 61 6d 65 73 20 54  |oden and James T|
00000040  72 65 61 64 77 65 6c 6c  0d 00 1e 1b f4 20 28 43  |readwell..... (C|
00000050  29 20 48 65 61 64 46 69  72 73 74 20 50 44 20 31  |) HeadFirst PD 1|
00000060  39 39 32 0d 00 28 0c 2a  46 58 32 30 30 2c 32 0d  |992..(.*FX200,2.|
00000070  00 32 37 ee 20 85 20 ff  22 46 58 34 22 3a ff 22  |.27. . ."FX4":."|
00000080  46 58 31 35 22 3a ef 34  3a d9 23 30 3a e7 20 9f  |FX15":.4:.#0:. .|
00000090  3d 31 37 20 f2 71 75 69  74 3a e5 8d 54 6c 41 20  |=17 .quit:..TlA |
000000a0  8b 20 f2 65 6e 64 0d 00  3c 08 f2 61 73 73 0d 00  |. .end..<..ass..|
000000b0  46 1b ff 22 4c 4f 41 44  20 44 53 70 72 20 22 2b  |F.."LOAD DSpr "+|
000000c0  c3 7e 73 70 72 64 61 74  61 0d 00 50 2b ef 32 33  |.~sprdata..P+.23|
000000d0  2c 32 35 35 2c 32 35 35  2c 32 35 35 2c 32 35 35  |,255,255,255,255|
*
000000f0  2c 32 35 35 0d 00 5a 06  eb 35 0d 00 64 44 e7 20  |,255..Z..5..dD. |
00000100  a4 73 68 61 64 6f 77 3d  b9 20 eb 37 3a f1 27 27  |.shadow=. .7:.''|
00000110  22 53 68 61 64 6f 77 20  52 41 4d 20 6d 75 73 74  |"Shadow RAM must|
00000120  20 62 65 20 74 75 72 6e  65 64 20 4f 46 46 2e 22  | be turned OFF."|
00000130  3a 7a 3d a6 28 32 30 30  29 3a f2 65 6e 64 0d 00  |:z=.(200):.end..|
00000140  6e 16 ef 32 33 2c 31 2c  30 3b 30 3b 30 3b 30 3b  |n..23,1,0;0;0;0;|
00000150  30 3b 30 3b 0d 00 78 0e  ef 31 39 2c 32 2c 34 3b  |0;0;..x..19,2,4;|
00000160  30 3b 0d 00 82 0c f2 63  6f 6c 6f 75 72 73 0d 00  |0;.....colours..|
00000170  8c 0b f2 62 6f 72 64 65  72 0d 00 96 16 f1 8a 31  |...border......1|
00000180  30 2c 32 31 29 3b 22 53  65 74 3a 20 41 22 27 0d  |0,21);"Set: A"'.|
00000190  00 a0 1f f1 22 43 68 61  72 3a 22 3b 89 28 35 29  |...."Char:";.(5)|
000001a0  3b 22 53 63 72 65 65 6e  3a 20 20 31 22 3b 0d 00  |;"Screen:  1";..|
000001b0  aa 28 f1 27 22 30 20 2d  20 62 6c 61 6e 6b 22 3b  |.(.'"0 - blank";|
000001c0  8a 31 30 29 3b 22 31 20  2d 20 22 3b a4 73 70 72  |.10);"1 - ";.spr|
000001d0  69 74 65 28 31 29 0d 00  b4 2e f1 27 22 32 20 2d  |ite(1).....'"2 -|
000001e0  20 22 3b a4 73 70 72 69  74 65 28 32 29 3b 8a 31  | ";.sprite(2);.1|
000001f0  30 29 3b 22 33 20 2d 20  22 3b a4 73 70 72 69 74  |0);"3 - ";.sprit|
00000200  65 28 33 29 0d 00 be 2e  f1 27 22 34 20 2d 20 22  |e(3).....'"4 - "|
00000210  3b a4 73 70 72 69 74 65  28 34 29 3b 8a 31 30 29  |;.sprite(4);.10)|
00000220  3b 22 35 20 2d 20 22 3b  a4 73 70 72 69 74 65 28  |;"5 - ";.sprite(|
00000230  35 29 0d 00 c8 27 f1 27  22 36 20 2d 20 22 3b a4  |5)...'.'"6 - ";.|
00000240  73 70 72 69 74 65 28 36  29 3b 22 20 28 69 6e 76  |sprite(6);" (inv|
00000250  69 73 69 62 6c 65 29 22  3b 0d 00 d2 0d 78 25 3d  |isible)";....x%=|
00000260  31 3a 79 25 3d 30 0d 00  dc 07 f2 75 73 0d 00 e6  |1:y%=0.....us...|
00000270  11 ef 32 38 2c 30 2c 32  30 2c 31 38 2c 31 0d 00  |..28,0,20,18,1..|
00000280  f0 19 73 63 72 25 3d 30  3a de 20 73 63 72 65 65  |..scr%=0:. scree|
00000290  6e 73 20 37 36 30 30 0d  00 fa 22 e3 20 69 3d 30  |ns 7600...". i=0|
000002a0  20 b8 20 37 36 30 30 20  88 20 34 3a 69 21 73 63  | . 7600 . 4:i!sc|
000002b0  72 65 65 6e 73 3d 30 3a  ed 0d 01 04 21 ef 32 38  |reens=0:....!.28|
000002c0  2c 31 2c 31 39 2c 31 38  2c 31 3a db 3a ef 32 38  |,1,19,18,1:.:.28|
000002d0  2c 30 2c 32 30 2c 31 38  2c 31 0d 01 0e 0b 63 75  |,0,20,18,1....cu|
000002e0  72 72 25 3d 30 0d 01 18  0f 61 24 3d 22 41 22 3a  |rr%=0....a$="A":|
000002f0  f2 63 6f 6c 0d 01 22 0f  f2 62 6c 6f 63 6b 28 31  |.col.."..block(1|
00000300  2c 30 29 0d 01 2c 05 f5  0d 01 36 11 f2 62 6c 6f  |,0)..,....6..blo|
00000310  63 6b 28 78 25 2c 79 25  29 0d 01 40 1e e7 20 a6  |ck(x%,y%)..@.. .|
00000320  2d 32 36 20 84 20 a6 2d  39 38 20 78 25 3d 78 25  |-26 . .-98 x%=x%|
00000330  2b 28 78 25 3e 31 29 0d  01 4a 20 e7 20 a6 2d 31  |+(x%>1)..J . .-1|
00000340  32 32 20 84 20 a6 2d 36  37 20 78 25 3d 78 25 2d  |22 . .-67 x%=x%-|
00000350  28 78 25 3c 31 38 29 0d  01 54 1e e7 20 a6 2d 35  |(x%<18)..T.. .-5|
00000360  38 20 84 20 a6 2d 37 33  20 79 25 3d 79 25 2b 28  |8 . .-73 y%=y%+(|
00000370  79 25 3e 30 29 0d 01 5e  20 e7 20 a6 2d 34 32 20  |y%>0)..^ . .-42 |
00000380  84 20 a6 2d 31 30 35 20  79 25 3d 79 25 2d 28 79  |. .-105 y%=y%-(y|
00000390  25 3c 31 38 29 0d 01 68  12 e7 20 a6 2d 34 30 20  |%<18)..h.. .-40 |
000003a0  63 75 72 72 25 3d 30 0d  01 72 12 e7 20 a6 2d 34  |curr%=0..r.. .-4|
000003b0  39 20 63 75 72 72 25 3d  31 0d 01 7c 12 e7 20 a6  |9 curr%=1..|.. .|
000003c0  2d 35 30 20 63 75 72 72  25 3d 32 0d 01 86 12 e7  |-50 curr%=2.....|
000003d0  20 a6 2d 31 38 20 63 75  72 72 25 3d 33 0d 01 90  | .-18 curr%=3...|
000003e0  12 e7 20 a6 2d 31 39 20  63 75 72 72 25 3d 34 0d  |.. .-19 curr%=4.|
000003f0  01 9a 12 e7 20 a6 2d 32  30 20 63 75 72 72 25 3d  |.... .-20 curr%=|
00000400  35 0d 01 a4 12 e7 20 a6  2d 35 33 20 63 75 72 72  |5..... .-53 curr|
00000410  25 3d 36 0d 01 ae 18 f2  70 73 70 72 69 74 65 28  |%=6.....psprite(|
00000420  63 75 72 72 25 2c 36 2c  32 33 29 0d 01 b8 43 e7  |curr%,6,23)...C.|
00000430  20 a6 2d 39 39 20 84 20  a6 2d 39 30 20 f2 70 73  | .-99 . .-90 .ps|
00000440  70 72 69 74 65 28 30 2c  78 25 2c 79 25 2b 31 29  |prite(0,x%,y%+1)|
00000450  3a 73 63 72 65 65 6e 73  3f 28 73 63 72 25 2a 33  |:screens?(scr%*3|
00000460  38 30 2b 78 25 2b 79 25  2a 32 30 29 3d 30 0d 01  |80+x%+y%*20)=0..|
00000470  c2 44 e7 20 a6 2d 37 34  20 f2 70 73 70 72 69 74  |.D. .-74 .psprit|
00000480  65 28 63 75 72 72 25 2c  78 25 2c 79 25 2b 31 29  |e(curr%,x%,y%+1)|
00000490  3a 73 63 72 65 65 6e 73  3f 28 73 63 72 25 2a 33  |:screens?(scr%*3|
000004a0  38 30 2b 78 25 2b 79 25  2a 32 30 29 3d 63 75 72  |80+x%+y%*20)=cur|
000004b0  72 25 0d 01 cc 73 e7 20  a6 2d 33 35 20 ff 22 46  |r%...s. .-35 ."F|
000004c0  58 31 35 2c 30 22 3a ef  32 38 2c 31 2c 32 30 2c  |X15,0":.28,1,20,|
000004d0  31 38 2c 31 3a f5 3a db  3a f1 27 22 57 68 69 63  |18,1:.:.:.'"Whic|
000004e0  68 20 73 63 72 65 65 6e  3f 22 3a e8 22 3e 22 20  |h screen?":.">" |
000004f0  73 63 72 25 3a fd 20 73  63 72 25 3e 30 20 80 20  |scr%:. scr%>0 . |
00000500  73 63 72 25 3c 32 31 3a  73 63 72 25 3d 73 63 72  |scr%<21:scr%=scr|
00000510  25 2d 31 3a f2 64 69 73  70 73 63 72 65 65 6e 28  |%-1:.dispscreen(|
00000520  73 63 72 25 29 0d 01 d6  6f e7 20 a6 2d 35 32 20  |scr%)...o. .-52 |
00000530  ff 22 46 58 31 35 20 30  22 3a ef 32 38 2c 31 2c  |."FX15 0":.28,1,|
00000540  32 30 2c 31 38 2c 31 3a  f5 3a db 3a f1 27 22 57  |20,18,1:.:.:.'"W|
00000550  68 69 63 68 20 73 65 74  3f 22 3a e8 22 3e 22 20  |hich set?":.">" |
00000560  61 24 3a fd 20 a7 22 41  42 43 44 45 46 22 2c 61  |a$:. ."ABCDEF",a|
00000570  24 29 3a ef 32 36 3a f1  8a 31 35 2c 32 31 29 3b  |$):.26:..15,21);|
00000580  61 24 3a f2 64 69 73 70  73 63 72 65 65 6e 28 73  |a$:.dispscreen(s|
00000590  63 72 25 29 0d 01 e0 16  e7 20 a6 2d 32 20 80 20  |cr%)..... .-2 . |
000005a0  a6 2d 31 37 20 f2 71 75  69 74 0d 01 ea 1a e7 20  |.-17 .quit..... |
000005b0  a6 2d 38 32 20 ff 22 46  58 31 35 2c 30 22 3a f2  |.-82 ."FX15,0":.|
000005c0  73 61 76 65 0d 01 f4 1a  e7 20 a6 2d 38 37 20 ff  |save..... .-87 .|
000005d0  22 46 58 31 35 2c 30 22  3a f2 6c 6f 61 64 0d 01  |"FX15,0":.load..|
000005e0  fe 1e e7 20 a6 2d 32 20  80 20 a6 2d 38 33 20 f2  |... .-2 . .-83 .|
000005f0  63 6c 72 73 63 72 28 73  63 72 25 29 0d 02 08 16  |clrscr(scr%)....|
00000600  e7 20 a6 2d 32 20 80 20  a6 2d 36 37 20 e5 8d 64  |. .-2 . .-67 ..d|
00000610  66 40 0d 02 12 11 f2 62  6c 6f 63 6b 28 78 25 2c  |f@.....block(x%,|
00000620  79 25 29 0d 02 1c 06 fd  30 0d 02 26 05 e0 0d 02  |y%).....0..&....|
00000630  30 09 dd f2 61 73 73 0d  02 3a 0f 61 64 64 72 65  |0...ass..:.addre|
00000640  73 73 3d 26 37 30 0d 02  44 0c 74 65 6d 70 3d 26  |ss=&70..D.temp=&|
00000650  37 32 0d 02 4e 10 de 20  70 72 69 6e 74 20 26 31  |72..N.. print &1|
00000660  30 30 0d 02 58 11 e3 20  49 3d 30 20 b8 20 32 20  |00..X.. I=0 . 2 |
00000670  88 20 32 0d 02 62 0c 50  25 3d 70 72 69 6e 74 0d  |. 2..b.P%=print.|
00000680  02 6c 0a 5b 4f 50 54 20  49 0d 02 76 1b 41 53 4c  |.l.[OPT I..v.ASL|
00000690  20 41 3a 41 53 4c 20 41  3a 41 53 4c 20 41 3a 41  | A:ASL A:ASL A:A|
000006a0  53 4c 20 41 0d 02 80 1b  43 4c 43 3a 53 54 41 20  |SL A....CLC:STA |
000006b0  74 65 6d 70 3a 41 44 43  23 31 35 3a 54 41 58 0d  |temp:ADC#15:TAX.|
000006c0  02 8a 0a 4c 44 59 23 31  35 0d 02 94 09 2e 6c 6f  |...LDY#15.....lo|
000006d0  6f 70 0d 02 9e 11 4c 44  41 20 73 70 72 64 61 74  |op....LDA sprdat|
000006e0  61 2c 58 0d 02 a8 13 53  54 41 20 28 61 64 64 72  |a,X....STA (addr|
000006f0  65 73 73 29 2c 59 0d 02  b2 15 43 50 59 23 30 3a  |ess),Y....CPY#0:|
00000700  42 45 51 20 65 6e 64 6c  6f 6f 70 0d 02 bc 1d 44  |BEQ endloop....D|
00000710  45 59 3a 44 45 58 3a 4a  4d 50 20 6c 6f 6f 70 3a  |EY:DEX:JMP loop:|
00000720  2e 65 6e 64 6c 6f 6f 70  0d 02 c6 07 52 54 53 0d  |.endloop....RTS.|
00000730  02 d0 0c 2e 73 70 72 64  61 74 61 0d 02 da 1f 45  |....sprdata....E|
00000740  51 55 44 20 30 3a 45 51  55 44 20 30 3a 45 51 55  |QUD 0:EQUD 0:EQU|
00000750  44 20 30 3a 45 51 55 44  20 30 0d 02 e4 1f 45 51  |D 0:EQUD 0....EQ|
00000760  55 44 20 30 3a 45 51 55  44 20 30 3a 45 51 55 44  |UD 0:EQUD 0:EQUD|
00000770  20 30 3a 45 51 55 44 20  30 0d 02 ee 1f 45 51 55  | 0:EQUD 0....EQU|
00000780  44 20 30 3a 45 51 55 44  20 30 3a 45 51 55 44 20  |D 0:EQUD 0:EQUD |
00000790  30 3a 45 51 55 44 20 30  0d 02 f8 1f 45 51 55 44  |0:EQUD 0....EQUD|
000007a0  20 30 3a 45 51 55 44 20  30 3a 45 51 55 44 20 30  | 0:EQUD 0:EQUD 0|
000007b0  3a 45 51 55 44 20 30 0d  03 02 1f 45 51 55 44 20  |:EQUD 0....EQUD |
000007c0  30 3a 45 51 55 44 20 30  3a 45 51 55 44 20 30 3a  |0:EQUD 0:EQUD 0:|
000007d0  45 51 55 44 20 30 0d 03  0c 1f 45 51 55 44 20 30  |EQUD 0....EQUD 0|
000007e0  3a 45 51 55 44 20 30 3a  45 51 55 44 20 30 3a 45  |:EQUD 0:EQUD 0:E|
000007f0  51 55 44 20 30 0d 03 16  1f 45 51 55 44 20 30 3a  |QUD 0....EQUD 0:|
00000800  45 51 55 44 20 30 3a 45  51 55 44 20 30 3a 45 51  |EQUD 0:EQUD 0:EQ|
00000810  55 44 20 30 0d 03 20 05  5d 0d 03 2a 05 ed 0d 03  |UD 0.. .]..*....|
00000820  34 05 e1 0d 03 3e 17 dd  f2 70 73 70 72 69 74 65  |4....>...psprite|
00000830  28 41 25 2c 78 25 2c 79  25 29 0d 03 48 1d 61 64  |(A%,x%,y%)..H.ad|
00000840  64 25 3d 26 35 38 30 30  2b 78 25 2a 26 31 30 2b  |d%=&5800+x%*&10+|
00000850  79 25 2a 26 31 34 30 0d  03 52 16 3f 61 64 64 72  |y%*&140..R.?addr|
00000860  65 73 73 3d 61 64 64 25  20 83 32 35 36 0d 03 5c  |ess=add% .256..\|
00000870  17 61 64 64 72 65 73 73  3f 31 3d 61 64 64 25 20  |.address?1=add% |
00000880  81 32 35 36 0d 03 66 0b  d6 20 70 72 69 6e 74 0d  |.256..f.. print.|
00000890  03 70 05 e1 0d 03 7a 10  dd a4 73 70 72 69 74 65  |.p....z...sprite|
000008a0  28 41 25 29 0d 03 84 1b  e7 20 41 25 3e 30 20 f2  |(A%)..... A%>0 .|
000008b0  70 73 70 72 69 74 65 28  41 25 2c b1 2c bc 29 0d  |psprite(A%,.,.).|
000008c0  03 8e 09 3d bd 28 39 29  0d 03 98 12 dd f2 62 6c  |...=.(9)......bl|
000008d0  6f 63 6b 28 78 25 2c 79  25 29 0d 03 a2 1d e6 33  |ock(x%,y%).....3|
000008e0  2c 33 3a ef 35 3a ec 20  78 25 2a 36 34 2c 39 38  |,3:.5:. x%*64,98|
000008f0  38 2d 79 25 2a 33 32 0d  03 ac 0a ef 32 35 35 2c  |8-y%*32.....255,|
00000900  34 0d 03 b6 05 e1 0d 03  c0 16 dd f2 64 69 73 70  |4...........disp|
00000910  73 63 72 65 65 6e 28 73  63 72 25 29 0d 03 ca 0b  |screen(scr%)....|
00000920  ea 20 78 25 2c 79 25 0d  03 d4 11 ef 32 38 2c 31  |. x%,y%.....28,1|
00000930  2c 32 30 2c 31 38 2c 31  0d 03 de 05 db 0d 03 e8  |,20,18,1........|
00000940  11 ef 32 38 2c 30 2c 32  30 2c 31 38 2c 31 0d 03  |..28,0,20,18,1..|
00000950  f2 08 f2 63 6f 6c 0d 03  fc 1b e3 20 79 25 3d 30  |...col..... y%=0|
00000960  20 b8 20 31 38 3a e3 20  78 25 3d 31 20 b8 20 31  | . 18:. x%=1 . 1|
00000970  38 0d 04 06 31 f2 70 73  70 72 69 74 65 28 73 63  |8...1.psprite(sc|
00000980  72 65 65 6e 73 3f 28 73  63 72 25 2a 33 38 30 2b  |reens?(scr%*380+|
00000990  79 25 2a 32 30 2b 78 25  29 2c 78 25 2c 79 25 2b  |y%*20+x%),x%,y%+|
000009a0  31 29 0d 04 10 06 ed 2c  0d 04 1a 22 ef 32 36 3a  |1).....,...".26:|
000009b0  f1 8a 31 38 2c 32 33 29  3b c2 22 20 22 2b c3 28  |..18,23);." "+.(|
000009c0  73 63 72 25 2b 31 29 2c  32 29 0d 04 24 11 ef 32  |scr%+1),2)..$..2|
000009d0  38 2c 30 2c 32 30 2c 31  38 2c 31 0d 04 2e 05 e1  |8,0,20,18,1.....|
000009e0  0d 04 38 0a dd f2 71 75  69 74 0d 04 42 0b 2a 46  |..8...quit..B.*F|
000009f0  58 31 35 2c 30 0d 04 4c  11 ef 32 38 2c 31 2c 32  |X15,0..L..28,1,2|
00000a00  30 2c 31 38 2c 31 0d 04  56 42 db 3a f1 22 41 72  |0,18,1..VB.:."Ar|
00000a10  65 20 79 6f 75 20 73 75  72 65 3f 22 3a 7a 24 3d  |e you sure?":z$=|
00000a20  be 3a e7 20 a7 22 59 79  22 2c 7a 24 29 20 8c 20  |.:. ."Yy",z$) . |
00000a30  f2 65 6e 64 20 8b 20 f2  64 69 73 70 73 63 72 65  |.end . .dispscre|
00000a40  65 6e 28 73 63 72 25 29  0d 04 60 05 e1 0d 04 6a  |en(scr%)..`....j|
00000a50  09 dd f2 65 6e 64 0d 04  74 11 ef 32 32 2c 37 3a  |...end..t..22,7:|
00000a60  2a 2f 21 42 6f 6f 74 0d  04 7e 07 e0 3a e1 0d 04  |*/!Boot..~..:...|
00000a70  88 05 20 0d 04 92 0a dd  f2 73 61 76 65 0d 04 9c  |.. ......save...|
00000a80  19 ea 20 78 25 2c 79 25  2c 66 69 6c 65 24 2c 66  |.. x%,y%,file$,f|
00000a90  25 2c 73 63 72 25 0d 04  a6 11 ef 32 38 2c 31 2c  |%,scr%.....28,1,|
00000aa0  32 30 2c 31 38 2c 31 0d  04 b0 12 66 69 6c 65 24  |20,18,1....file$|
00000ab0  3d 22 53 45 54 22 2b 61  24 0d 04 ba 05 db 0d 04  |="SET"+a$.......|
00000ac0  c4 21 f1 27 27 22 53 61  76 69 6e 67 20 2e 2e 2e  |.!.''"Saving ...|
00000ad0  22 27 22 50 6c 65 61 73  65 20 77 61 69 74 22 0d  |"'"Please wait".|
00000ae0  04 ce 0e 66 25 3d ae 20  66 69 6c 65 24 0d 04 d8  |...f%=. file$...|
00000af0  0a 6f 66 66 25 3d 30 0d  04 e2 11 e3 20 73 63 72  |.off%=0..... scr|
00000b00  25 3d 30 20 b8 20 31 39  0d 04 ec 39 f1 8a 30 2c  |%=0 . 19...9..0,|
00000b10  35 29 22 43 6f 6d 70 6c  65 74 65 64 3a 20 22 3b  |5)"Completed: ";|
00000b20  a8 28 28 28 73 63 72 25  2a 33 38 30 2b 6f 66 66  |.(((scr%*380+off|
00000b30  25 29 2f 37 36 30 30 29  2a 31 30 30 29 3b 22 25  |%)/7600)*100);"%|
00000b40  22 0d 04 f6 12 e3 20 6f  66 66 25 3d 30 20 b8 20  |"..... off%=0 . |
00000b50  33 37 39 0d 05 00 55 e7  20 73 63 72 65 65 6e 73  |379...U. screens|
00000b60  3f 28 73 63 72 25 2a 33  38 30 2b 6f 66 66 25 29  |?(scr%*380+off%)|
00000b70  3d 30 20 80 20 6f 66 66  25 3c 33 36 31 20 8c 20  |=0 . off%<361 . |
00000b80  e7 20 a4 63 68 65 63 6b  69 66 32 30 20 d5 23 66  |. .checkif20 .#f|
00000b90  25 2c 26 31 45 3a 6f 66  66 25 3d 6f 66 66 25 2b  |%,&1E:off%=off%+|
00000ba0  31 39 3a e5 8d 54 68 45  0d 05 0a 53 e7 20 73 63  |19:..ThE...S. sc|
00000bb0  72 65 65 6e 73 3f 28 73  63 72 25 2a 33 38 30 2b  |reens?(scr%*380+|
00000bc0  6f 66 66 25 29 3d 30 20  80 20 6f 66 66 25 3c 33  |off%)=0 . off%<3|
00000bd0  37 37 20 8c 20 e7 20 a4  63 68 65 63 6b 69 66 34  |77 . . .checkif4|
00000be0  20 d5 23 66 25 2c 26 31  34 3a 6f 66 66 25 3d 6f  | .#f%,&14:off%=o|
00000bf0  66 66 25 2b 33 3a e5 8d  54 68 45 0d 05 14 21 62  |ff%+3:..ThE...!b|
00000c00  79 74 65 25 3d 73 63 72  65 65 6e 73 3f 28 73 63  |yte%=screens?(sc|
00000c10  72 25 2a 33 38 30 2b 6f  66 66 25 29 0d 05 1e 22  |r%*380+off%)..."|
00000c20  e7 20 62 79 74 65 25 3c  3e 36 20 d5 23 66 25 2c  |. byte%<>6 .#f%,|
00000c30  62 79 74 65 25 20 8b 20  d5 23 66 25 2c 37 0d 05  |byte% . .#f%,7..|
00000c40  28 05 ed 0d 05 32 0c d5  23 66 25 2c 26 46 46 0d  |(....2..#f%,&FF.|
00000c50  05 3c 0a ed 20 73 63 72  25 0d 05 46 08 d9 23 66  |.<.. scr%..F..#f|
00000c60  25 0d 05 50 1c 73 63 72  25 3d 30 3a f2 64 69 73  |%..P.scr%=0:.dis|
00000c70  70 73 63 72 65 65 6e 28  73 63 72 25 29 0d 05 5a  |pscreen(scr%)..Z|
00000c80  05 e1 0d 05 64 05 20 0d  05 6e 0f dd a4 63 68 65  |....d. ..n...che|
00000c90  63 6b 69 66 32 30 0d 05  78 07 ea 20 7a 0d 05 82  |ckif20..x.. z...|
00000ca0  36 7a 3d 2d 31 3a f5 3a  7a 3d 7a 2b 31 3a fd 20  |6z=-1:.:z=z+1:. |
00000cb0  7a 3d 31 39 20 84 20 73  63 72 65 65 6e 73 3f 28  |z=19 . screens?(|
00000cc0  73 63 72 25 2a 33 38 30  2b 6f 66 66 25 2b 7a 29  |scr%*380+off%+z)|
00000cd0  3c 3e 30 0d 05 8c 2a 20  3d 28 7a 3d 31 39 29 80  |<>0...* =(z=19).|
00000ce0  28 73 63 72 65 65 6e 73  3f 28 73 63 72 25 2a 33  |(screens?(scr%*3|
00000cf0  38 30 2b 6f 66 66 25 2b  7a 29 29 3d 30 0d 05 96  |80+off%+z))=0...|
00000d00  05 20 0d 05 a0 0e dd a4  63 68 65 63 6b 69 66 34  |. ......checkif4|
00000d10  0d 05 aa 0b ea 20 73 75  6d 2c 7a 0d 05 b4 09 73  |..... sum,z....s|
00000d20  75 6d 3d 30 0d 05 be 31  e3 20 7a 3d 30 20 b8 20  |um=0...1. z=0 . |
00000d30  33 3a 73 75 6d 3d 73 75  6d 2b 73 63 72 65 65 6e  |3:sum=sum+screen|
00000d40  73 3f 28 73 63 72 25 2a  33 38 30 2b 6f 66 66 25  |s?(scr%*380+off%|
00000d50  2b 7a 29 3a ed 0d 05 c8  0c 3d 28 73 75 6d 3d 30  |+z):.....=(sum=0|
00000d60  29 0d 05 d2 05 20 0d 05  dc 0a dd f2 6c 6f 61 64  |).... ......load|
00000d70  0d 05 e6 20 ea 20 66 69  6c 65 24 2c 66 25 2c 73  |... . file$,f%,s|
00000d80  63 72 25 2c 72 6f 77 25  2c 69 2c 62 79 74 65 25  |cr%,row%,i,byte%|
00000d90  0d 05 f0 11 ef 32 38 2c  31 2c 32 30 2c 31 38 2c  |.....28,1,20,18,|
00000da0  31 0d 05 fa 07 f5 3a db  0d 06 04 17 f1 22 57 68  |1.....:......"Wh|
00000db0  69 63 68 20 73 65 74 20  28 41 2d 46 29 3f 22 0d  |ich set (A-F)?".|
00000dc0  06 0e 0a e8 22 3e 22 61  24 0d 06 18 13 fd 20 a7  |....">"a$..... .|
00000dd0  22 41 42 43 44 45 46 22  2c 61 24 29 0d 06 22 12  |"ABCDEF",a$)..".|
00000de0  66 69 6c 65 24 3d 22 53  45 54 22 2b 61 24 0d 06  |file$="SET"+a$..|
00000df0  2c 05 db 0d 06 36 22 f1  27 27 22 4c 6f 61 64 69  |,....6".''"Loadi|
00000e00  6e 67 20 2e 2e 2e 22 27  22 50 6c 65 61 73 65 20  |ng ..."'"Please |
00000e10  77 61 69 74 22 0d 06 40  0e 66 25 3d 8e 20 66 69  |wait"..@.f%=. fi|
00000e20  6c 65 24 0d 06 4a 0a 6f  66 66 25 3d 30 0d 06 54  |le$..J.off%=0..T|
00000e30  11 e3 20 73 63 72 25 3d  30 20 b8 20 31 39 0d 06  |.. scr%=0 . 19..|
00000e40  5e 39 f1 8a 30 2c 35 29  22 43 6f 6d 70 6c 65 74  |^9..0,5)"Complet|
00000e50  65 64 3a 20 22 3b a8 28  28 28 73 63 72 25 2a 33  |ed: ";.(((scr%*3|
00000e60  38 30 2b 6f 66 66 25 29  2f 37 36 30 30 29 2a 31  |80+off%)/7600)*1|
00000e70  30 30 29 3b 22 25 22 0d  06 68 11 e3 6f 66 66 25  |00);"%"..h..off%|
00000e80  3d 30 20 b8 20 33 37 39  0d 06 72 0e 62 79 74 65  |=0 . 379..r.byte|
00000e90  25 3d 9a 23 66 25 0d 06  75 22 e7 20 62 79 74 65  |%=.#f%..u". byte|
00000ea0  25 3d 26 31 45 20 8c 20  f2 62 6c 61 6e 6b 28 32  |%=&1E . .blank(2|
00000eb0  30 29 3a e5 8d 74 64 46  0d 06 7c 26 e7 20 62 79  |0):..tdF..|&. by|
00000ec0  74 65 25 3d 26 46 46 20  8c 20 f1 73 63 72 25 3a  |te%=&FF . .scr%:|
00000ed0  6f 66 66 25 3d 33 37 39  3a e5 8d 74 6e 46 0d 06  |off%=379:..tnF..|
00000ee0  86 1f e7 20 62 79 74 65  25 3d 26 31 34 20 f2 62  |... byte%=&14 .b|
00000ef0  6c 61 6e 6b 28 34 29 3a  e5 8d 74 64 46 0d 06 90  |lank(4):..tdF...|
00000f00  15 e7 20 62 79 74 65 25  3d 37 20 62 79 74 65 25  |.. byte%=7 byte%|
00000f10  3d 36 0d 06 9a 21 73 63  72 65 65 6e 73 3f 28 73  |=6...!screens?(s|
00000f20  63 72 25 2a 33 38 30 2b  6f 66 66 25 29 3d 62 79  |cr%*380+off%)=by|
00000f30  74 65 25 0d 06 a4 19 e7  20 6f 66 66 25 3d 33 37  |te%..... off%=37|
00000f40  39 20 62 79 74 65 25 3d  9a 23 66 25 0d 06 ae 0a  |9 byte%=.#f%....|
00000f50  ed 20 6f 66 66 25 0d 06  b8 0a ed 20 73 63 72 25  |. off%..... scr%|
00000f60  0d 06 c2 08 d9 23 66 25  0d 06 cc 1c 73 63 72 25  |.....#f%....scr%|
00000f70  3d 30 3a f2 64 69 73 70  73 63 72 65 65 6e 28 73  |=0:.dispscreen(s|
00000f80  63 72 25 29 0d 06 d6 05  e1 0d 06 e0 0f dd f2 62  |cr%)...........b|
00000f90  6c 61 6e 6b 28 6e 25 29  0d 06 ea 08 ea 20 63 25  |lank(n%)..... c%|
00000fa0  0d 06 f4 11 e3 20 63 25  3d 30 20 b8 20 6e 25 2d  |..... c%=0 . n%-|
00000fb0  31 0d 06 fe 20 73 63 72  65 65 6e 73 3f 28 73 63  |1... screens?(sc|
00000fc0  72 25 2a 33 38 30 2b 6f  66 66 25 2b 63 25 29 3d  |r%*380+off%+c%)=|
00000fd0  30 0d 07 08 05 ed 0d 07  12 12 6f 66 66 25 3d 6f  |0.........off%=o|
00000fe0  66 66 25 2b 6e 25 2d 31  0d 07 1c 05 e1 0d 07 26  |ff%+n%-1.......&|
00000ff0  05 20 0d 07 30 0c dd f2  62 6f 72 64 65 72 0d 07  |. ..0...border..|
00001000  3a 08 e6 30 2c 33 0d 07  44 2b ec 20 30 2c 33 35  |:..0,3..D+. 0,35|
00001010  35 3a df 20 30 2c 31 30  32 33 3a df 20 31 32 37  |5:. 0,1023:. 127|
00001020  39 2c 31 30 32 33 3a df  20 31 32 37 39 2c 33 35  |9,1023:. 1279,35|
00001030  35 0d 07 4e 08 e6 30 2c  31 0d 07 58 2d ec 20 31  |5..N..0,1..X-. 1|
00001040  36 2c 33 35 35 3a df 20  31 36 2c 31 30 31 35 3a  |6,355:. 16,1015:|
00001050  df 20 31 32 36 33 2c 31  30 31 35 3a df 20 31 32  |. 1263,1015:. 12|
00001060  36 33 2c 33 35 35 0d 07  62 08 e6 30 2c 32 0d 07  |63,355..b..0,2..|
00001070  6c 2d ec 20 33 32 2c 33  35 35 3a df 20 33 32 2c  |l-. 32,355:. 32,|
00001080  31 30 30 37 3a df 20 31  32 34 37 2c 31 30 30 37  |1007:. 1247,1007|
00001090  3a df 20 31 32 34 37 2c  33 35 35 0d 07 76 05 e1  |:. 1247,355..v..|
000010a0  0d 07 80 12 dd f2 63 6c  72 73 63 72 28 73 63 72  |......clrscr(scr|
000010b0  25 29 0d 07 8a 13 ef 32  38 2c 31 2c 31 39 2c 31  |%).....28,1,19,1|
000010c0  38 2c 31 3a db 0d 07 94  11 ef 32 38 2c 30 2c 31  |8,1:......28,0,1|
000010d0  39 2c 31 39 2c 31 0d 07  9e 12 e3 20 6f 66 66 25  |9,19,1..... off%|
000010e0  3d 30 20 b8 20 33 37 39  0d 07 a8 1d 73 63 72 65  |=0 . 379....scre|
000010f0  65 6e 73 3f 28 73 63 72  25 2a 33 38 30 2b 6f 66  |ens?(scr%*380+of|
00001100  66 25 29 3d 30 0d 07 b2  05 ed 0d 07 bc 05 e1 0d  |f%)=0...........|
00001110  07 c6 05 20 0d 07 d0 08  dd f2 75 73 0d 07 da 08  |... ......us....|
00001120  e6 30 2c 33 0d 07 e4 11  ef 32 38 2c 31 2c 31 39  |.0,3.....28,1,19|
00001130  2c 31 38 2c 31 0d 07 ee  1a f2 63 65 6e 74 72 65  |,18,1.....centre|
00001140  28 22 48 59 50 45 52 42  41 4c 4c 22 2c 31 29 0d  |("HYPERBALL",1).|
00001150  07 f8 20 f2 63 65 6e 74  72 65 28 22 53 63 72 65  |.. .centre("Scre|
00001160  65 6e 20 44 65 73 69 67  6e 65 72 22 2c 33 29 0d  |en Designer",3).|
00001170  08 02 13 f2 63 65 6e 74  72 65 28 22 42 79 22 2c  |....centre("By",|
00001180  36 29 0d 08 0c 1d f2 63  65 6e 74 72 65 28 22 47  |6).....centre("G|
00001190  61 72 65 74 68 20 42 6f  64 65 6e 22 2c 38 29 0d  |areth Boden",8).|
000011a0  08 16 15 f2 63 65 6e 74  72 65 28 22 61 6e 64 22  |....centre("and"|
000011b0  2c 31 30 29 0d 08 20 21  f2 63 65 6e 74 72 65 28  |,10).. !.centre(|
000011c0  22 4a 61 6d 65 73 20 54  72 65 61 64 77 65 6c 6c  |"James Treadwell|
000011d0  22 2c 31 32 29 0d 08 2a  24 f2 63 65 6e 74 72 65  |",12)..*$.centre|
000011e0  28 22 28 43 29 20 48 65  61 64 46 69 72 73 74 20  |("(C) HeadFirst |
000011f0  31 39 39 32 22 2c 31 35  29 0d 08 34 2c fb 31 3a  |1992",15)..4,.1:|
00001200  fb 31 33 31 3a f1 8a 32  2c 31 38 29 22 50 6c 65  |.131:..2,18)"Ple|
00001210  61 73 65 20 57 61 69 74  2e 2e 2e 22 3b 3a fb 33  |ase Wait...";:.3|
00001220  3a fb 31 32 38 0d 08 3e  05 e1 0d 08 48 05 20 0d  |:.128..>....H. .|
00001230  08 52 13 dd f2 63 65 6e  74 72 65 28 61 24 2c 79  |.R...centre(a$,y|
00001240  25 29 0d 08 5c 11 79 25  3d 31 30 32 33 2d 79 25  |%)..\.y%=1023-y%|
00001250  2a 33 32 0d 08 66 08 ea  20 78 25 0d 08 70 12 78  |*32..f.. x%..p.x|
00001260  25 3d 28 32 30 2d a9 61  24 29 2a 33 32 0d 08 7a  |%=(20-.a$)*32..z|
00001270  15 ef 35 3a ec 20 78 25  2c 79 25 3a f1 61 24 2b  |..5:. x%,y%:.a$+|
00001280  bd 34 0d 08 84 05 e1 0d  08 8e 09 dd f2 63 6f 6c  |.4...........col|
00001290  0d 08 98 42 e7 61 24 3d  22 41 22 20 8c 20 ef 31  |...B.a$="A" . .1|
000012a0  39 2c 31 2c 73 63 31 28  73 63 72 25 29 3b 30 3b  |9,1,sc1(scr%);0;|
000012b0  31 39 2c 32 2c 73 63 32  28 73 63 72 25 29 3b 30  |19,2,sc2(scr%);0|
000012c0  3b 31 39 2c 33 2c 73 63  33 28 73 63 72 25 29 3b  |;19,3,sc3(scr%);|
000012d0  30 3b 0d 08 a2 48 e7 61  24 3d 22 42 22 20 8c 20  |0;...H.a$="B" . |
000012e0  ef 31 39 2c 31 2c 73 63  31 28 73 63 72 25 2b 31  |.19,1,sc1(scr%+1|
000012f0  29 3b 30 3b 31 39 2c 32  2c 73 63 32 28 73 63 72  |);0;19,2,sc2(scr|
00001300  25 2b 31 29 3b 30 3b 31  39 2c 33 2c 73 63 33 28  |%+1);0;19,3,sc3(|
00001310  73 63 72 25 2b 31 29 3b  30 3b 0d 08 ac 48 e7 61  |scr%+1);0;...H.a|
00001320  24 3d 22 43 22 20 8c 20  ef 31 39 2c 31 2c 73 63  |$="C" . .19,1,sc|
00001330  31 28 73 63 72 25 2b 32  29 3b 30 3b 31 39 2c 32  |1(scr%+2);0;19,2|
00001340  2c 73 63 32 28 73 63 72  25 2b 32 29 3b 30 3b 31  |,sc2(scr%+2);0;1|
00001350  39 2c 33 2c 73 63 33 28  73 63 72 25 2b 32 29 3b  |9,3,sc3(scr%+2);|
00001360  30 3b 0d 08 b6 48 e7 61  24 3d 22 44 22 20 8c 20  |0;...H.a$="D" . |
00001370  ef 31 39 2c 31 2c 73 63  31 28 73 63 72 25 2b 33  |.19,1,sc1(scr%+3|
00001380  29 3b 30 3b 31 39 2c 32  2c 73 63 32 28 73 63 72  |);0;19,2,sc2(scr|
00001390  25 2b 33 29 3b 30 3b 31  39 2c 33 2c 73 63 33 28  |%+3);0;19,3,sc3(|
000013a0  73 63 72 25 2b 33 29 3b  30 3b 0d 08 c0 48 e7 61  |scr%+3);0;...H.a|
000013b0  24 3d 22 45 22 20 8c 20  ef 31 39 2c 31 2c 73 63  |$="E" . .19,1,sc|
000013c0  31 28 73 63 72 25 2b 34  29 3b 30 3b 31 39 2c 32  |1(scr%+4);0;19,2|
000013d0  2c 73 63 32 28 73 63 72  25 2b 34 29 3b 30 3b 31  |,sc2(scr%+4);0;1|
000013e0  39 2c 33 2c 73 63 33 28  73 63 72 25 2b 34 29 3b  |9,3,sc3(scr%+4);|
000013f0  30 3b 0d 08 ca 9e e7 61  24 3d 22 46 22 20 80 20  |0;.....a$="F" . |
00001400  73 63 72 25 3e 32 20 8c  20 ef 31 39 2c 31 2c 73  |scr%>2 . .19,1,s|
00001410  63 31 28 73 63 72 25 29  3b 30 3b 31 39 2c 32 2c  |c1(scr%);0;19,2,|
00001420  73 63 32 28 73 63 72 25  29 3b 30 3b 31 39 2c 33  |sc2(scr%);0;19,3|
00001430  2c 73 63 33 28 73 63 72  25 29 3b 30 3b 20 8b 20  |,sc3(scr%);0; . |
00001440  e7 61 24 3d 22 46 22 20  80 20 73 63 72 25 3c 33  |.a$="F" . scr%<3|
00001450  20 8c 20 ef 31 39 2c 31  2c 73 63 31 28 73 63 72  | . .19,1,sc1(scr|
00001460  25 2b 32 34 29 3b 30 3b  31 39 2c 32 2c 73 63 32  |%+24);0;19,2,sc2|
00001470  28 73 63 72 25 2b 32 34  29 3b 30 3b 31 39 2c 33  |(scr%+24);0;19,3|
00001480  2c 73 63 33 28 73 63 72  25 2b 32 34 29 3b 30 3b  |,sc3(scr%+24);0;|
00001490  0d 08 d4 05 e1 0d 08 de  0d dd f2 63 6f 6c 6f 75  |...........colou|
000014a0  72 73 0d 08 e8 1d de 20  73 63 31 28 32 36 29 2c  |rs..... sc1(26),|
000014b0  73 63 32 28 32 36 29 2c  73 63 33 28 32 36 29 0d  |sc2(26),sc3(26).|
000014c0  08 f2 0b e3 49 3d 30 b8  32 36 0d 08 fc 1a f3 20  |....I=0.26..... |
000014d0  73 63 31 28 49 29 2c 73  63 32 28 49 29 2c 73 63  |sc1(I),sc2(I),sc|
000014e0  33 28 49 29 0d 09 06 05  ed 0d 09 10 05 e1 0d 09  |3(I)............|
000014f0  1a a7 dc 20 31 2c 34 2c  37 2c 33 2c 32 2c 37 2c  |... 1,4,7,3,2,7,|
00001500  35 2c 34 2c 36 2c 33 2c  36 2c 37 2c 33 2c 35 2c  |5,4,6,3,6,7,3,5,|
00001510  36 2c 31 2c 32 2c 37 2c  31 2c 34 2c 37 2c 35 2c  |6,1,2,7,1,4,7,5,|
00001520  34 2c 36 2c 33 2c 32 2c  37 2c 35 2c 31 2c 36 2c  |4,6,3,2,7,5,1,6,|
00001530  35 2c 34 2c 36 2c 31 2c  32 2c 37 2c 31 2c 34 2c  |5,4,6,1,2,7,1,4,|
00001540  37 2c 32 2c 31 2c 33 2c  36 2c 35 2c 37 2c 35 2c  |7,2,1,3,6,5,7,5,|
00001550  34 2c 36 2c 31 2c 34 2c  37 2c 31 2c 32 2c 37 2c  |4,6,1,4,7,1,2,7,|
00001560  36 2c 35 2c 37 2c 31 2c  32 2c 37 2c 31 2c 34 2c  |6,5,7,1,2,7,1,4,|
00001570  37 2c 33 2c 32 2c 37 2c  35 2c 34 2c 36 2c 33 2c  |7,3,2,7,5,4,6,3,|
00001580  36 2c 37 2c 31 2c 34 2c  37 2c 31 2c 34 2c 37 2c  |6,7,1,4,7,1,4,7,|
00001590  33 2c 32 2c 37 0d 09 24  05 20 0d 09 2e 0c dd a4  |3,2,7..$. ......|
000015a0  73 68 61 64 6f 77 0d 09  38 1d 41 25 3d 31 33 33  |shadow..8.A%=133|
000015b0  3a 58 25 3d 35 3a 72 65  74 25 3d ba 28 26 46 46  |:X%=5:ret%=.(&FF|
000015c0  46 34 29 0d 09 42 1f 61  64 64 72 25 3d 28 72 65  |F4)..B.addr%=(re|
000015d0  74 25 20 80 20 26 46 46  46 46 30 30 29 81 26 31  |t% . &FFFF00).&1|
000015e0  30 30 0d 09 4c 0e 3f 61  64 64 72 25 3d 26 46 46  |00..L.?addr%=&FF|
000015f0  0d 09 56 11 3d 28 b0 30  2c 31 30 32 33 29 3d 30  |..V.=(.0,1023)=0|
00001600  29 0d ff                                          |)..|
00001603
HyperD.m0
HyperD.m1
HyperD.m2
HyperD.m4
HyperD.m5