Home » Archimedes archive » Acorn User » AU 1997-10 A.adf » Regulars » StarInfo/Madams/shade/shade

StarInfo/Madams/shade/shade

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 » Archimedes archive » Acorn User » AU 1997-10 A.adf » Regulars
Filename: StarInfo/Madams/shade/shade
Read OK:
File size: 0A55 bytes
Load address: 0000
Exec address: 0000
File contents
   10MODE 12
   20MODE 9
   30ONERROR MODE 0:REPORT:PRINT ERL:END
   40OFF
   50size%=7
   60s%=2^size%
   70d%=s% DIV 2
   80
   90
  100DIM normal% (s%+1)*(s%+1)*4
  110DIM prog% 8192
  120DIM q% 8
  130
  140!q%=148
  150q%!4=-1
  160SYS "OS_ReadVduVariables",q%,q%
  170
  180OSCLI "Load 3ddata "+STR$~(normal%)
  190
  200
  210mx=0
  220my=1
  230mz=2
  240y=3
  250data=4
  260normal=5
  270adr=6
  280col=7
  290norm=8
  300screen=9
  310pos=10
  320x=11
  330
  340FOR pass%=0 TO 2 STEP 2
  350P%=prog%
  360[OPT pass%
  370
  380.screenat EQUD !q%
  390.normalat EQUD normal%
  400.mxat     EQUD 0
  410.myat     EQUD 0
  420.mzat     EQUD 0
  430
  440 STMFD R13!,{R14}
  450
  460 LDR screen,screenat
  470 LDR adr,normalat
  480 
  490 MOV y,#1
  500.yloop
  510 MOV x,#1
  520.xloop
  530 ADD pos,x,y,LSL#size%
  540 LDR normal,[adr,pos,LSL#2]
  550 MOV data,normal,LSR#24
  560 CMP data,#0
  570 MOVEQ col,#0
  580BEQ skipplot1
  590
  600 AND norm,normal,#255
  610 SUB norm,norm,#128
  620 MUL norm,mx,norm
  630 
  640 AND col,normal,#255<<8
  650 SUB col,col,#128<<8
  660 MOV col,col,ASR#8
  670 MLA norm,my,col,norm
  680 
  690 AND col,normal,#255<<16
  700 SUB col,col,#128<<16
  710 MOV col,col,ASR#16
  720 MLA norm,mz,col,norm
  730
  740 MOV col,norm,ASR#11
  750 CMP col,#1
  760 MOVLT col,#1
  770
  780.skipplot1
  790 ADD pos,pos,#1
  800 LDR normal,[adr,pos,LSL#2]
  810 MOV data,normal,LSR#24
  820 CMP data,#0
  830BEQ skipplot2
  840
  850 AND norm,normal,#255
  860 SUB norm,norm,#128
  870 MUL norm,mx,norm
  880 
  890 AND pos,normal,#255<<8
  900 SUB pos,pos,#128<<8
  910 MOV pos,pos,ASR#8
  920 MLA norm,my,pos,norm
  930 
  940 AND pos,normal,#255<<16
  950 SUB pos,pos,#128<<16
  960 MOV pos,pos,ASR#16
  970 MLA norm,mz,pos,norm
  980
  990 MOV norm,norm,ASR#11
 1000 CMP norm,#1
 1010 MOVLT norm,#1
 1020 ADD col,col,norm,LSL#4
 1030.skipplot2
 1040 ADD pos,y,y,LSL#2
 1050 MOV data,x,ASR#1
 1060 ADD pos,data,pos,LSL#5
 1070 STRB col,[screen,pos]
 1080 ADD x,x,#2
 1090 CMP x,#s%
 1100BLT xloop
 1110 ADD y,y,#1
 1120 CMP y,#s%
 1130BLT yloop
 1140
 1150 LDMFD R13!,{PC}
 1160]
 1170NEXT
 1180
 1190
 1200rxp=RND(800)/3000
 1210ryp=RND(1200)/3000
 1220rx=0
 1230ry=0
 1240rxx=0
 1250ryy=0
 1260
 1270bank%=1
 1280add%=(((127-d%)*160+80-(d% DIV 2))OR 3)-3
 1290a%=0
 1300FOR r%=0 TO 48 STEP 4
 1310a%+=1
 1320rx=rx+rxp
 1330ry=ry+ryp
 1340rxx+=(2+RND(1))/9
 1350ryy+=(1+RND(1))/9
 1360x%=rxx*32
 1370y%=ryy*32
 1380A%=COSRADx%*COSRADy%*255
 1390B%=SINRADx%*COSRADy%*255
 1400C%=SINRADy%*255
 1410!screenat=(!q%+add%)+((bank%-1)*160*256)
 1420bank%=bank% EOR 3
 1430SYS 6,113,bank%
 1440WAIT
 1450COLOUR 0,0,0,r%
 1460
 1470FOR c%=1 TO 15
 1480COLOUR c%,c%*(17/48)*r%,c%*(15/48)*r%,0
 1490NEXT
 1500CALL prog%
 1510NEXT
 1520
 1530FOR c%=1 TO 15
 1540COLOUR c%,c%*17,c%*15,0
 1550NEXT
 1560
 1570REPEAT
 1580a%+=1
 1590rx=rx+rxp
 1600ry=ry+ryp
 1610rxx+=(2+RND(1))/9
 1620ryy+=(1+RND(1))/9
 1630x%=rxx*32
 1640y%=ryy*32
 1650A%=COSRADx%*COSRADy%*255
 1660B%=SINRADx%*COSRADy%*255
 1670C%=SINRADy%*255
 1680!screenat=(!q%+add%)+((bank%-1)*160*256)
 1690bank%=bank% EOR 3
 1700SYS 6,113,bank%
 1710WAIT
 1720CALL prog%
 1730UNTIL 0

� 12
� 9
� � 0:�:� �:�
(�
2size%=7
<s%=2^size%
F
d%=s% � 2
P
Z
d� normal% (s%+1)*(s%+1)*4
n� prog% 8192
x
� q% 8
�
�!q%=148
�q%!4=-1
�"ș "OS_ReadVduVariables",q%,q%
�
� � "Load 3ddata "+�~(normal%)
�
�
�mx=0
�my=1
�mz=2
�y=3
�
data=4
normal=5
	adr=6
	col=7
"
norm=8
,screen=9
6
pos=10
@x=11
J
T� pass%=0 � 2 � 2
^P%=prog%
h[OPT pass%
r
|.screenat EQUD !q%
�.normalat EQUD normal%
�.mxat     EQUD 0
�.myat     EQUD 0
�.mzat     EQUD 0
�
� STMFD R13!,{R14}
�
� LDR screen,screenat
� LDR adr,normalat
� 
�
 MOV y,#1
�
.yloop
�
 MOV x,#1

.xloop
 ADD pos,x,y,LSL#size%
 LDR normal,[adr,pos,LSL#2]
& MOV data,normal,LSR#24
0 CMP data,#0
: �Q col,#0
DBEQ skipplot1
N
X � norm,normal,#255
b SUB norm,norm,#128
l MUL norm,mx,norm
v 
� � col,normal,#255<<8
� SUB col,col,#128<<8
� MOV col,col,ASR#8
� MLA norm,my,col,norm
� 
� � col,normal,#255<<16
� SUB col,col,#128<<16
� MOV col,col,ASR#16
� MLA norm,mz,col,norm
�
� MOV col,norm,ASR#11
� CMP col,#1
� MOVLT col,#1

.skipplot1
 ADD pos,pos,#1
  LDR normal,[adr,pos,LSL#2]
* MOV data,normal,LSR#24
4 CMP data,#0
>BEQ skipplot2
H
R � norm,normal,#255
\ SUB norm,norm,#128
f MUL norm,mx,norm
p 
z � pos,normal,#255<<8
� SUB pos,pos,#128<<8
� MOV pos,pos,ASR#8
� MLA norm,my,pos,norm
� 
� � pos,normal,#255<<16
� SUB pos,pos,#128<<16
� MOV pos,pos,ASR#16
� MLA norm,mz,pos,norm
�
� MOV norm,norm,ASR#11
� CMP norm,#1
� MOVLT norm,#1
� ADD col,col,norm,LSL#4
.skipplot2
 ADD pos,y,y,LSL#2
 MOV data,x,ASR#1
$ ADD pos,data,pos,LSL#5
. STRB col,[screen,pos]
8 ADD x,x,#2
B CMP x,#s%
L
BLT xloop
V ADD y,y,#1
` CMP y,#s%
j
BLT yloop
t
~ LDMFD R13!,{PC}
�]
��
�
�
�rxp=�(800)/3000
�ryp=�(1200)/3000
�rx=0
�ry=0
�	rxx=0
�	ryy=0
�
�bank%=1
*add%=(((127-d%)*160+80-(d% � 2))� 3)-3

a%=0
� r%=0 � 48 � 4
	a%+=1
(
rx=rx+rxp
2
ry=ry+ryp
<rxx+=(2+�(1))/9
Fryy+=(1+�(1))/9
P
x%=rxx*32
Z
y%=ryy*32
dA%=��x%*��y%*255
nB%=��x%*��y%*255
xC%=��y%*255
�,!screenat=(!q%+add%)+((bank%-1)*160*256)
�bank%=bank% � 3
�ș 6,113,bank%
�Ȗ
�� 0,0,0,r%
�
�� c%=1 � 15
�&� c%,c%*(17/48)*r%,c%*(15/48)*r%,0
��
�� prog%
��
�
�� c%=1 � 15
� c%,c%*17,c%*15,0
�

"�
,	a%+=1
6
rx=rx+rxp
@
ry=ry+ryp
Jrxx+=(2+�(1))/9
Tryy+=(1+�(1))/9
^
x%=rxx*32
h
y%=ryy*32
rA%=��x%*��y%*255
|B%=��x%*��y%*255
�C%=��y%*255
�,!screenat=(!q%+add%)+((bank%-1)*160*256)
�bank%=bank% � 3
�ș 6,113,bank%
�Ȗ
�� prog%
�� 0
�
00000000  0d 00 0a 08 eb 20 31 32  0d 00 14 07 eb 20 39 0d  |..... 12..... 9.|
00000010  00 1e 12 ee 85 20 eb 20  30 3a f6 3a f1 20 9e 3a  |..... . 0:.:. .:|
00000020  e0 0d 00 28 05 87 0d 00  32 0b 73 69 7a 65 25 3d  |...(....2.size%=|
00000030  37 0d 00 3c 0e 73 25 3d  32 5e 73 69 7a 65 25 0d  |7..<.s%=2^size%.|
00000040  00 46 0d 64 25 3d 73 25  20 81 20 32 0d 00 50 04  |.F.d%=s% . 2..P.|
00000050  0d 00 5a 04 0d 00 64 1d  de 20 6e 6f 72 6d 61 6c  |..Z...d.. normal|
00000060  25 20 28 73 25 2b 31 29  2a 28 73 25 2b 31 29 2a  |% (s%+1)*(s%+1)*|
00000070  34 0d 00 6e 10 de 20 70  72 6f 67 25 20 38 31 39  |4..n.. prog% 819|
00000080  32 0d 00 78 0a de 20 71  25 20 38 0d 00 82 04 0d  |2..x.. q% 8.....|
00000090  00 8c 0b 21 71 25 3d 31  34 38 0d 00 96 0b 71 25  |...!q%=148....q%|
000000a0  21 34 3d 2d 31 0d 00 a0  22 c8 99 20 22 4f 53 5f  |!4=-1...".. "OS_|
000000b0  52 65 61 64 56 64 75 56  61 72 69 61 62 6c 65 73  |ReadVduVariables|
000000c0  22 2c 71 25 2c 71 25 0d  00 aa 04 0d 00 b4 20 ff  |",q%,q%....... .|
000000d0  20 22 4c 6f 61 64 20 33  64 64 61 74 61 20 22 2b  | "Load 3ddata "+|
000000e0  c3 7e 28 6e 6f 72 6d 61  6c 25 29 0d 00 be 04 0d  |.~(normal%).....|
000000f0  00 c8 04 0d 00 d2 08 6d  78 3d 30 0d 00 dc 08 6d  |.......mx=0....m|
00000100  79 3d 31 0d 00 e6 08 6d  7a 3d 32 0d 00 f0 07 79  |y=1....mz=2....y|
00000110  3d 33 0d 00 fa 0a 64 61  74 61 3d 34 0d 01 04 0c  |=3....data=4....|
00000120  6e 6f 72 6d 61 6c 3d 35  0d 01 0e 09 61 64 72 3d  |normal=5....adr=|
00000130  36 0d 01 18 09 63 6f 6c  3d 37 0d 01 22 0a 6e 6f  |6....col=7..".no|
00000140  72 6d 3d 38 0d 01 2c 0c  73 63 72 65 65 6e 3d 39  |rm=8..,.screen=9|
00000150  0d 01 36 0a 70 6f 73 3d  31 30 0d 01 40 08 78 3d  |..6.pos=10..@.x=|
00000160  31 31 0d 01 4a 04 0d 01  54 15 e3 20 70 61 73 73  |11..J...T.. pass|
00000170  25 3d 30 20 b8 20 32 20  88 20 32 0d 01 5e 0c 50  |%=0 . 2 . 2..^.P|
00000180  25 3d 70 72 6f 67 25 0d  01 68 0e 5b 4f 50 54 20  |%=prog%..h.[OPT |
00000190  70 61 73 73 25 0d 01 72  04 0d 01 7c 16 2e 73 63  |pass%..r...|..sc|
000001a0  72 65 65 6e 61 74 20 45  51 55 44 20 21 71 25 0d  |reenat EQUD !q%.|
000001b0  01 86 1a 2e 6e 6f 72 6d  61 6c 61 74 20 45 51 55  |....normalat EQU|
000001c0  44 20 6e 6f 72 6d 61 6c  25 0d 01 90 14 2e 6d 78  |D normal%.....mx|
000001d0  61 74 20 20 20 20 20 45  51 55 44 20 30 0d 01 9a  |at     EQUD 0...|
000001e0  14 2e 6d 79 61 74 20 20  20 20 20 45 51 55 44 20  |..myat     EQUD |
000001f0  30 0d 01 a4 14 2e 6d 7a  61 74 20 20 20 20 20 45  |0.....mzat     E|
00000200  51 55 44 20 30 0d 01 ae  04 0d 01 b8 15 20 53 54  |QUD 0........ ST|
00000210  4d 46 44 20 52 31 33 21  2c 7b 52 31 34 7d 0d 01  |MFD R13!,{R14}..|
00000220  c2 04 0d 01 cc 18 20 4c  44 52 20 73 63 72 65 65  |...... LDR scree|
00000230  6e 2c 73 63 72 65 65 6e  61 74 0d 01 d6 15 20 4c  |n,screenat.... L|
00000240  44 52 20 61 64 72 2c 6e  6f 72 6d 61 6c 61 74 0d  |DR adr,normalat.|
00000250  01 e0 05 20 0d 01 ea 0d  20 4d 4f 56 20 79 2c 23  |... .... MOV y,#|
00000260  31 0d 01 f4 0a 2e 79 6c  6f 6f 70 0d 01 fe 0d 20  |1.....yloop.... |
00000270  4d 4f 56 20 78 2c 23 31  0d 02 08 0a 2e 78 6c 6f  |MOV x,#1.....xlo|
00000280  6f 70 0d 02 12 1a 20 41  44 44 20 70 6f 73 2c 78  |op.... ADD pos,x|
00000290  2c 79 2c 4c 53 4c 23 73  69 7a 65 25 0d 02 1c 1f  |,y,LSL#size%....|
000002a0  20 4c 44 52 20 6e 6f 72  6d 61 6c 2c 5b 61 64 72  | LDR normal,[adr|
000002b0  2c 70 6f 73 2c 4c 53 4c  23 32 5d 0d 02 26 1b 20  |,pos,LSL#2]..&. |
000002c0  4d 4f 56 20 64 61 74 61  2c 6e 6f 72 6d 61 6c 2c  |MOV data,normal,|
000002d0  4c 53 52 23 32 34 0d 02  30 10 20 43 4d 50 20 64  |LSR#24..0. CMP d|
000002e0  61 74 61 2c 23 30 0d 02  3a 0e 20 ec 51 20 63 6f  |ata,#0..:. .Q co|
000002f0  6c 2c 23 30 0d 02 44 11  42 45 51 20 73 6b 69 70  |l,#0..D.BEQ skip|
00000300  70 6c 6f 74 31 0d 02 4e  04 0d 02 58 17 20 80 20  |plot1..N...X. . |
00000310  6e 6f 72 6d 2c 6e 6f 72  6d 61 6c 2c 23 32 35 35  |norm,normal,#255|
00000320  0d 02 62 17 20 53 55 42  20 6e 6f 72 6d 2c 6e 6f  |..b. SUB norm,no|
00000330  72 6d 2c 23 31 32 38 0d  02 6c 15 20 4d 55 4c 20  |rm,#128..l. MUL |
00000340  6e 6f 72 6d 2c 6d 78 2c  6e 6f 72 6d 0d 02 76 05  |norm,mx,norm..v.|
00000350  20 0d 02 80 19 20 80 20  63 6f 6c 2c 6e 6f 72 6d  | .... . col,norm|
00000360  61 6c 2c 23 32 35 35 3c  3c 38 0d 02 8a 18 20 53  |al,#255<<8.... S|
00000370  55 42 20 63 6f 6c 2c 63  6f 6c 2c 23 31 32 38 3c  |UB col,col,#128<|
00000380  3c 38 0d 02 94 16 20 4d  4f 56 20 63 6f 6c 2c 63  |<8.... MOV col,c|
00000390  6f 6c 2c 41 53 52 23 38  0d 02 9e 19 20 4d 4c 41  |ol,ASR#8.... MLA|
000003a0  20 6e 6f 72 6d 2c 6d 79  2c 63 6f 6c 2c 6e 6f 72  | norm,my,col,nor|
000003b0  6d 0d 02 a8 05 20 0d 02  b2 1a 20 80 20 63 6f 6c  |m.... .... . col|
000003c0  2c 6e 6f 72 6d 61 6c 2c  23 32 35 35 3c 3c 31 36  |,normal,#255<<16|
000003d0  0d 02 bc 19 20 53 55 42  20 63 6f 6c 2c 63 6f 6c  |.... SUB col,col|
000003e0  2c 23 31 32 38 3c 3c 31  36 0d 02 c6 17 20 4d 4f  |,#128<<16.... MO|
000003f0  56 20 63 6f 6c 2c 63 6f  6c 2c 41 53 52 23 31 36  |V col,col,ASR#16|
00000400  0d 02 d0 19 20 4d 4c 41  20 6e 6f 72 6d 2c 6d 7a  |.... MLA norm,mz|
00000410  2c 63 6f 6c 2c 6e 6f 72  6d 0d 02 da 04 0d 02 e4  |,col,norm.......|
00000420  18 20 4d 4f 56 20 63 6f  6c 2c 6e 6f 72 6d 2c 41  |. MOV col,norm,A|
00000430  53 52 23 31 31 0d 02 ee  0f 20 43 4d 50 20 63 6f  |SR#11.... CMP co|
00000440  6c 2c 23 31 0d 02 f8 11  20 4d 4f 56 4c 54 20 63  |l,#1.... MOVLT c|
00000450  6f 6c 2c 23 31 0d 03 02  04 0d 03 0c 0e 2e 73 6b  |ol,#1.........sk|
00000460  69 70 70 6c 6f 74 31 0d  03 16 13 20 41 44 44 20  |ipplot1.... ADD |
00000470  70 6f 73 2c 70 6f 73 2c  23 31 0d 03 20 1f 20 4c  |pos,pos,#1.. . L|
00000480  44 52 20 6e 6f 72 6d 61  6c 2c 5b 61 64 72 2c 70  |DR normal,[adr,p|
00000490  6f 73 2c 4c 53 4c 23 32  5d 0d 03 2a 1b 20 4d 4f  |os,LSL#2]..*. MO|
000004a0  56 20 64 61 74 61 2c 6e  6f 72 6d 61 6c 2c 4c 53  |V data,normal,LS|
000004b0  52 23 32 34 0d 03 34 10  20 43 4d 50 20 64 61 74  |R#24..4. CMP dat|
000004c0  61 2c 23 30 0d 03 3e 11  42 45 51 20 73 6b 69 70  |a,#0..>.BEQ skip|
000004d0  70 6c 6f 74 32 0d 03 48  04 0d 03 52 17 20 80 20  |plot2..H...R. . |
000004e0  6e 6f 72 6d 2c 6e 6f 72  6d 61 6c 2c 23 32 35 35  |norm,normal,#255|
000004f0  0d 03 5c 17 20 53 55 42  20 6e 6f 72 6d 2c 6e 6f  |..\. SUB norm,no|
00000500  72 6d 2c 23 31 32 38 0d  03 66 15 20 4d 55 4c 20  |rm,#128..f. MUL |
00000510  6e 6f 72 6d 2c 6d 78 2c  6e 6f 72 6d 0d 03 70 05  |norm,mx,norm..p.|
00000520  20 0d 03 7a 19 20 80 20  70 6f 73 2c 6e 6f 72 6d  | ..z. . pos,norm|
00000530  61 6c 2c 23 32 35 35 3c  3c 38 0d 03 84 18 20 53  |al,#255<<8.... S|
00000540  55 42 20 70 6f 73 2c 70  6f 73 2c 23 31 32 38 3c  |UB pos,pos,#128<|
00000550  3c 38 0d 03 8e 16 20 4d  4f 56 20 70 6f 73 2c 70  |<8.... MOV pos,p|
00000560  6f 73 2c 41 53 52 23 38  0d 03 98 19 20 4d 4c 41  |os,ASR#8.... MLA|
00000570  20 6e 6f 72 6d 2c 6d 79  2c 70 6f 73 2c 6e 6f 72  | norm,my,pos,nor|
00000580  6d 0d 03 a2 05 20 0d 03  ac 1a 20 80 20 70 6f 73  |m.... .... . pos|
00000590  2c 6e 6f 72 6d 61 6c 2c  23 32 35 35 3c 3c 31 36  |,normal,#255<<16|
000005a0  0d 03 b6 19 20 53 55 42  20 70 6f 73 2c 70 6f 73  |.... SUB pos,pos|
000005b0  2c 23 31 32 38 3c 3c 31  36 0d 03 c0 17 20 4d 4f  |,#128<<16.... MO|
000005c0  56 20 70 6f 73 2c 70 6f  73 2c 41 53 52 23 31 36  |V pos,pos,ASR#16|
000005d0  0d 03 ca 19 20 4d 4c 41  20 6e 6f 72 6d 2c 6d 7a  |.... MLA norm,mz|
000005e0  2c 70 6f 73 2c 6e 6f 72  6d 0d 03 d4 04 0d 03 de  |,pos,norm.......|
000005f0  19 20 4d 4f 56 20 6e 6f  72 6d 2c 6e 6f 72 6d 2c  |. MOV norm,norm,|
00000600  41 53 52 23 31 31 0d 03  e8 10 20 43 4d 50 20 6e  |ASR#11.... CMP n|
00000610  6f 72 6d 2c 23 31 0d 03  f2 12 20 4d 4f 56 4c 54  |orm,#1.... MOVLT|
00000620  20 6e 6f 72 6d 2c 23 31  0d 03 fc 1b 20 41 44 44  | norm,#1.... ADD|
00000630  20 63 6f 6c 2c 63 6f 6c  2c 6e 6f 72 6d 2c 4c 53  | col,col,norm,LS|
00000640  4c 23 34 0d 04 06 0e 2e  73 6b 69 70 70 6c 6f 74  |L#4.....skipplot|
00000650  32 0d 04 10 16 20 41 44  44 20 70 6f 73 2c 79 2c  |2.... ADD pos,y,|
00000660  79 2c 4c 53 4c 23 32 0d  04 1a 15 20 4d 4f 56 20  |y,LSL#2.... MOV |
00000670  64 61 74 61 2c 78 2c 41  53 52 23 31 0d 04 24 1b  |data,x,ASR#1..$.|
00000680  20 41 44 44 20 70 6f 73  2c 64 61 74 61 2c 70 6f  | ADD pos,data,po|
00000690  73 2c 4c 53 4c 23 35 0d  04 2e 1a 20 53 54 52 42  |s,LSL#5.... STRB|
000006a0  20 63 6f 6c 2c 5b 73 63  72 65 65 6e 2c 70 6f 73  | col,[screen,pos|
000006b0  5d 0d 04 38 0f 20 41 44  44 20 78 2c 78 2c 23 32  |]..8. ADD x,x,#2|
000006c0  0d 04 42 0e 20 43 4d 50  20 78 2c 23 73 25 0d 04  |..B. CMP x,#s%..|
000006d0  4c 0d 42 4c 54 20 78 6c  6f 6f 70 0d 04 56 0f 20  |L.BLT xloop..V. |
000006e0  41 44 44 20 79 2c 79 2c  23 31 0d 04 60 0e 20 43  |ADD y,y,#1..`. C|
000006f0  4d 50 20 79 2c 23 73 25  0d 04 6a 0d 42 4c 54 20  |MP y,#s%..j.BLT |
00000700  79 6c 6f 6f 70 0d 04 74  04 0d 04 7e 14 20 4c 44  |yloop..t...~. LD|
00000710  4d 46 44 20 52 31 33 21  2c 7b 50 43 7d 0d 04 88  |MFD R13!,{PC}...|
00000720  05 5d 0d 04 92 05 ed 0d  04 9c 04 0d 04 a6 04 0d  |.]..............|
00000730  04 b0 13 72 78 70 3d b3  28 38 30 30 29 2f 33 30  |...rxp=.(800)/30|
00000740  30 30 0d 04 ba 14 72 79  70 3d b3 28 31 32 30 30  |00....ryp=.(1200|
00000750  29 2f 33 30 30 30 0d 04  c4 08 72 78 3d 30 0d 04  |)/3000....rx=0..|
00000760  ce 08 72 79 3d 30 0d 04  d8 09 72 78 78 3d 30 0d  |..ry=0....rxx=0.|
00000770  04 e2 09 72 79 79 3d 30  0d 04 ec 04 0d 04 f6 0b  |...ryy=0........|
00000780  62 61 6e 6b 25 3d 31 0d  05 00 2a 61 64 64 25 3d  |bank%=1...*add%=|
00000790  28 28 28 31 32 37 2d 64  25 29 2a 31 36 30 2b 38  |(((127-d%)*160+8|
000007a0  30 2d 28 64 25 20 81 20  32 29 29 84 20 33 29 2d  |0-(d% . 2)). 3)-|
000007b0  33 0d 05 0a 08 61 25 3d  30 0d 05 14 13 e3 20 72  |3....a%=0..... r|
000007c0  25 3d 30 20 b8 20 34 38  20 88 20 34 0d 05 1e 09  |%=0 . 48 . 4....|
000007d0  61 25 2b 3d 31 0d 05 28  0d 72 78 3d 72 78 2b 72  |a%+=1..(.rx=rx+r|
000007e0  78 70 0d 05 32 0d 72 79  3d 72 79 2b 72 79 70 0d  |xp..2.ry=ry+ryp.|
000007f0  05 3c 13 72 78 78 2b 3d  28 32 2b b3 28 31 29 29  |.<.rxx+=(2+.(1))|
00000800  2f 39 0d 05 46 13 72 79  79 2b 3d 28 31 2b b3 28  |/9..F.ryy+=(1+.(|
00000810  31 29 29 2f 39 0d 05 50  0d 78 25 3d 72 78 78 2a  |1))/9..P.x%=rxx*|
00000820  33 32 0d 05 5a 0d 79 25  3d 72 79 79 2a 33 32 0d  |32..Z.y%=ryy*32.|
00000830  05 64 14 41 25 3d 9b b2  78 25 2a 9b b2 79 25 2a  |.d.A%=..x%*..y%*|
00000840  32 35 35 0d 05 6e 14 42  25 3d b5 b2 78 25 2a 9b  |255..n.B%=..x%*.|
00000850  b2 79 25 2a 32 35 35 0d  05 78 0f 43 25 3d b5 b2  |.y%*255..x.C%=..|
00000860  79 25 2a 32 35 35 0d 05  82 2c 21 73 63 72 65 65  |y%*255...,!scree|
00000870  6e 61 74 3d 28 21 71 25  2b 61 64 64 25 29 2b 28  |nat=(!q%+add%)+(|
00000880  28 62 61 6e 6b 25 2d 31  29 2a 31 36 30 2a 32 35  |(bank%-1)*160*25|
00000890  36 29 0d 05 8c 13 62 61  6e 6b 25 3d 62 61 6e 6b  |6)....bank%=bank|
000008a0  25 20 82 20 33 0d 05 96  12 c8 99 20 36 2c 31 31  |% . 3...... 6,11|
000008b0  33 2c 62 61 6e 6b 25 0d  05 a0 06 c8 96 0d 05 aa  |3,bank%.........|
000008c0  0e fb 20 30 2c 30 2c 30  2c 72 25 0d 05 b4 04 0d  |.. 0,0,0,r%.....|
000008d0  05 be 0f e3 20 63 25 3d  31 20 b8 20 31 35 0d 05  |.... c%=1 . 15..|
000008e0  c8 26 fb 20 63 25 2c 63  25 2a 28 31 37 2f 34 38  |.&. c%,c%*(17/48|
000008f0  29 2a 72 25 2c 63 25 2a  28 31 35 2f 34 38 29 2a  |)*r%,c%*(15/48)*|
00000900  72 25 2c 30 0d 05 d2 05  ed 0d 05 dc 0b d6 20 70  |r%,0.......... p|
00000910  72 6f 67 25 0d 05 e6 05  ed 0d 05 f0 04 0d 05 fa  |rog%............|
00000920  0f e3 20 63 25 3d 31 20  b8 20 31 35 0d 06 04 16  |.. c%=1 . 15....|
00000930  fb 20 63 25 2c 63 25 2a  31 37 2c 63 25 2a 31 35  |. c%,c%*17,c%*15|
00000940  2c 30 0d 06 0e 05 ed 0d  06 18 04 0d 06 22 05 f5  |,0..........."..|
00000950  0d 06 2c 09 61 25 2b 3d  31 0d 06 36 0d 72 78 3d  |..,.a%+=1..6.rx=|
00000960  72 78 2b 72 78 70 0d 06  40 0d 72 79 3d 72 79 2b  |rx+rxp..@.ry=ry+|
00000970  72 79 70 0d 06 4a 13 72  78 78 2b 3d 28 32 2b b3  |ryp..J.rxx+=(2+.|
00000980  28 31 29 29 2f 39 0d 06  54 13 72 79 79 2b 3d 28  |(1))/9..T.ryy+=(|
00000990  31 2b b3 28 31 29 29 2f  39 0d 06 5e 0d 78 25 3d  |1+.(1))/9..^.x%=|
000009a0  72 78 78 2a 33 32 0d 06  68 0d 79 25 3d 72 79 79  |rxx*32..h.y%=ryy|
000009b0  2a 33 32 0d 06 72 14 41  25 3d 9b b2 78 25 2a 9b  |*32..r.A%=..x%*.|
000009c0  b2 79 25 2a 32 35 35 0d  06 7c 14 42 25 3d b5 b2  |.y%*255..|.B%=..|
000009d0  78 25 2a 9b b2 79 25 2a  32 35 35 0d 06 86 0f 43  |x%*..y%*255....C|
000009e0  25 3d b5 b2 79 25 2a 32  35 35 0d 06 90 2c 21 73  |%=..y%*255...,!s|
000009f0  63 72 65 65 6e 61 74 3d  28 21 71 25 2b 61 64 64  |creenat=(!q%+add|
00000a00  25 29 2b 28 28 62 61 6e  6b 25 2d 31 29 2a 31 36  |%)+((bank%-1)*16|
00000a10  30 2a 32 35 36 29 0d 06  9a 13 62 61 6e 6b 25 3d  |0*256)....bank%=|
00000a20  62 61 6e 6b 25 20 82 20  33 0d 06 a4 12 c8 99 20  |bank% . 3...... |
00000a30  36 2c 31 31 33 2c 62 61  6e 6b 25 0d 06 ae 06 c8  |6,113,bank%.....|
00000a40  96 0d 06 b8 0b d6 20 70  72 6f 67 25 0d 06 c2 07  |...... prog%....|
00000a50  fd 20 30 0d ff                                    |. 0..|
00000a55