Home » Recent acquisitions » Acorn ADFS disks » adfs_AcornUser_199611.adf » Regulars » StarInfo/Boham/Fireworks

StarInfo/Boham/Fireworks

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 » Recent acquisitions » Acorn ADFS disks » adfs_AcornUser_199611.adf » Regulars
Filename: StarInfo/Boham/Fireworks
Read OK:
File size: 0776 bytes
Load address: 0000
Exec address: 0000
File contents
   10total_stars=500
   20MODE 13:OFF
   30DIM star_data total_stars*24,code% 4024
   40PROCass
   50CALL setup
   60REPEAT
   70xpos=RND(320)
   80ypos=RND(255)
   90PROCrandomize(xpos,ypos)
  100CALL do_it
  110UNTIL 0=1
  120:
  130END
  140:
  150DEF PROCass
  160base=12:pos=11:top=10:x=4:y=5:xs=6:ys=7:col=8:old=9
  170FOR pass=0 TO 2 STEP 2
  180P%=code%
  190[OPT pass
  200.setup
  210ADR R0,scr1
  220ADR R1,scr2
  230SWI &31
  240MOV PC,R14
  250
  260.do_it
  270LDR base,scr2
  280
  290.mega_loop
  300MOV R0,#1
  310STR R0,finished
  320
  330LDR pos,star_addr
  340LDR top,max
  350ADD top,top,pos
  360MOV R0,#19
  370SWI "OS_Byte"
  380.loop
  390LDMIA pos,{x,y,xs,ys,col,old}
  400MOV R0,#0
  410
  420LDR R1,three20
  430ADD R1,R1,#2
  440
  450STRB R0,[old,#1]
  460ADD old,old,R1
  470STRB R0,[old]
  480STRB R0,[old,#1]
  490STRB R0,[old,#2]
  500ADD old,old,R1
  510STRB R0,[old,#1]
  520
  530
  540
  550
  560
  570LDR R1,three20
  580CMP y,#0
  590BLT no_plot
  600
  610STR R0,finished
  620
  630ADD x,x,xs
  640ADD y,y,ys
  650SUB ys,ys,#1
  660
  670CMP x,#0
  680BLT no_plot
  690
  700CMP y,#255
  710BGE no_plot
  720
  730CMP x,R1
  740BGE no_plot
  750
  760
  770MOV old,#160
  780MOV old,old,LSL #1
  790RSB R0,y,#255
  800MUL old,R0,old
  810ADD old,old,x
  820ADD old,old,base
  830
  840LDR R1,three20
  850ADD R1,R1,#2
  860
  870STRB col,[old,#1]
  880ADD old,old,R1
  890STRB col,[old]
  900STRB col,[old,#1]
  910STRB col,[old,#2]
  920ADD old,old,R1
  930STRB col,[old,#1]
  940SUB old,old,R1
  950SUB old,old,R1
  960
  970.no_plot
  980
  990STMIA (pos)!,{x,y,xs,ys,col,old}
 1000CMP pos,top
 1010BLT loop
 1020
 1030LDR R1,finished
 1040CMP R1,#1
 1050
 1060BNE mega_loop
 1070
 1080
 1090MOV PC,R14
 1100.three20
 1110EQUD 318
 1120.scr1
 1130EQUD 148
 1140EQUD -1
 1150.scr2
 1160EQUD 0
 1170EQUD 0
 1180.star_addr
 1190EQUD star_data
 1200.max
 1210EQUD total_stars*24
 1220.finished
 1230EQUD 0
 1240]
 1250NEXT pass
 1260ENDPROC
 1270:
 1280DEF PROCrandomize(x%,y%)
 1290
 1300FOR n=0 TO total_stars
 1310q=star_data+(n*24)
 1320a=RND(360)
 1330q!0=x%+(SIN RAD a)*(8+RND(24))
 1340q!4=y%+(COS RAD a)*(10+RND(20))
 1350q!8=(SIN RAD a)*RND(10)
 1360q!12=(COS RAD a)*RND(10)
 1370q!16=RND(255)
 1380q!20=!scr2
 1390NEXT n
 1400ENDPROC

total_stars=500

� 13:�
)� star_data total_stars*24,code% 4024
(�ass
2� setup
<�
Fxpos=�(320)
Pypos=�(255)
Z�randomize(xpos,ypos)
d� do_it
n	� 0=1
x:
��
�:
�
� �ass
�7base=12:pos=11:top=10:x=4:y=5:xs=6:ys=7:col=8:old=9
�� pass=0 � 2 � 2
�P%=code%
�
[OPT pass
�
.setup
�ADR R0,scr1
�ADR R1,scr2
�SWI &31
�MOV PC,R14
�

.do_it
LDR base,scr2

".mega_loop
,
MOV R0,#1
6STR R0,finished
@
JLDR pos,star_addr
TLDR top,max
^ADD top,top,pos
hMOV R0,#19
rSWI "OS_Byte"
|	.loop
�!LDMIA pos,{x,y,xs,ys,col,old}
�
MOV R0,#0
�
�LDR R1,three20
�ADD R1,R1,#2
�
�STRB R0,[old,#1]
�ADD old,old,R1
�STRB R0,[old]
�STRB R0,[old,#1]
�STRB R0,[old,#2]
�ADD old,old,R1
�STRB R0,[old,#1]



&
0
:LDR R1,three20
DCMP y,#0
NBLT no_plot
X
bSTR R0,finished
l
vADD x,x,xs
�ADD y,y,ys
�SUB ys,ys,#1
�
�CMP x,#0
�BLT no_plot
�
�CMP y,#255
�BGE no_plot
�
�CMP x,R1
�BGE no_plot
�
�
MOV old,#160
MOV old,old,LSL #1
RSB R0,y,#255
 MUL old,R0,old
*ADD old,old,x
4ADD old,old,base
>
HLDR R1,three20
RADD R1,R1,#2
\
fSTRB col,[old,#1]
pADD old,old,R1
zSTRB col,[old]
�STRB col,[old,#1]
�STRB col,[old,#2]
�ADD old,old,R1
�STRB col,[old,#1]
�SUB old,old,R1
�SUB old,old,R1
�
�.no_plot
�
�$STMIA (pos)!,{x,y,xs,ys,col,old}
�CMP pos,top
�BLT loop
�
LDR R1,finished

CMP R1,#1

$BNE mega_loop
.
8
BMOV PC,R14
L.three20
VEQUD 318
`	.scr1
jEQUD 148
tEQUD -1
~	.scr2
�
EQUD 0
�
EQUD 0
�.star_addr
�EQUD star_data
�.max
�EQUD total_stars*24
�
.finished
�
EQUD 0
�]
�
� pass
��
�:
� �randomize(x%,y%)


� n=0 � total_stars
q=star_data+(n*24)
(a=�(360)
2q!0=x%+(� � a)*(8+�(24))
<q!4=y%+(� � a)*(10+�(20))
Fq!8=(� � a)*�(10)
Pq!12=(� � a)*�(10)
Zq!16=�(255)
dq!20=!scr2
n� n
x�
�
00000000  0d 00 0a 13 74 6f 74 61  6c 5f 73 74 61 72 73 3d  |....total_stars=|
00000010  35 30 30 0d 00 14 0a eb  20 31 33 3a 87 0d 00 1e  |500..... 13:....|
00000020  29 de 20 73 74 61 72 5f  64 61 74 61 20 74 6f 74  |). star_data tot|
00000030  61 6c 5f 73 74 61 72 73  2a 32 34 2c 63 6f 64 65  |al_stars*24,code|
00000040  25 20 34 30 32 34 0d 00  28 08 f2 61 73 73 0d 00  |% 4024..(..ass..|
00000050  32 0b d6 20 73 65 74 75  70 0d 00 3c 05 f5 0d 00  |2.. setup..<....|
00000060  46 0f 78 70 6f 73 3d b3  28 33 32 30 29 0d 00 50  |F.xpos=.(320)..P|
00000070  0f 79 70 6f 73 3d b3 28  32 35 35 29 0d 00 5a 19  |.ypos=.(255)..Z.|
00000080  f2 72 61 6e 64 6f 6d 69  7a 65 28 78 70 6f 73 2c  |.randomize(xpos,|
00000090  79 70 6f 73 29 0d 00 64  0b d6 20 64 6f 5f 69 74  |ypos)..d.. do_it|
000000a0  0d 00 6e 09 fd 20 30 3d  31 0d 00 78 05 3a 0d 00  |..n.. 0=1..x.:..|
000000b0  82 05 e0 0d 00 8c 05 3a  0d 00 96 0a dd 20 f2 61  |.......:..... .a|
000000c0  73 73 0d 00 a0 37 62 61  73 65 3d 31 32 3a 70 6f  |ss...7base=12:po|
000000d0  73 3d 31 31 3a 74 6f 70  3d 31 30 3a 78 3d 34 3a  |s=11:top=10:x=4:|
000000e0  79 3d 35 3a 78 73 3d 36  3a 79 73 3d 37 3a 63 6f  |y=5:xs=6:ys=7:co|
000000f0  6c 3d 38 3a 6f 6c 64 3d  39 0d 00 aa 14 e3 20 70  |l=8:old=9..... p|
00000100  61 73 73 3d 30 20 b8 20  32 20 88 20 32 0d 00 b4  |ass=0 . 2 . 2...|
00000110  0c 50 25 3d 63 6f 64 65  25 0d 00 be 0d 5b 4f 50  |.P%=code%....[OP|
00000120  54 20 70 61 73 73 0d 00  c8 0a 2e 73 65 74 75 70  |T pass.....setup|
00000130  0d 00 d2 0f 41 44 52 20  52 30 2c 73 63 72 31 0d  |....ADR R0,scr1.|
00000140  00 dc 0f 41 44 52 20 52  31 2c 73 63 72 32 0d 00  |...ADR R1,scr2..|
00000150  e6 0b 53 57 49 20 26 33  31 0d 00 f0 0e 4d 4f 56  |..SWI &31....MOV|
00000160  20 50 43 2c 52 31 34 0d  00 fa 04 0d 01 04 0a 2e  | PC,R14.........|
00000170  64 6f 5f 69 74 0d 01 0e  11 4c 44 52 20 62 61 73  |do_it....LDR bas|
00000180  65 2c 73 63 72 32 0d 01  18 04 0d 01 22 0e 2e 6d  |e,scr2......"..m|
00000190  65 67 61 5f 6c 6f 6f 70  0d 01 2c 0d 4d 4f 56 20  |ega_loop..,.MOV |
000001a0  52 30 2c 23 31 0d 01 36  13 53 54 52 20 52 30 2c  |R0,#1..6.STR R0,|
000001b0  66 69 6e 69 73 68 65 64  0d 01 40 04 0d 01 4a 15  |finished..@...J.|
000001c0  4c 44 52 20 70 6f 73 2c  73 74 61 72 5f 61 64 64  |LDR pos,star_add|
000001d0  72 0d 01 54 0f 4c 44 52  20 74 6f 70 2c 6d 61 78  |r..T.LDR top,max|
000001e0  0d 01 5e 13 41 44 44 20  74 6f 70 2c 74 6f 70 2c  |..^.ADD top,top,|
000001f0  70 6f 73 0d 01 68 0e 4d  4f 56 20 52 30 2c 23 31  |pos..h.MOV R0,#1|
00000200  39 0d 01 72 11 53 57 49  20 22 4f 53 5f 42 79 74  |9..r.SWI "OS_Byt|
00000210  65 22 0d 01 7c 09 2e 6c  6f 6f 70 0d 01 86 21 4c  |e"..|..loop...!L|
00000220  44 4d 49 41 20 70 6f 73  2c 7b 78 2c 79 2c 78 73  |DMIA pos,{x,y,xs|
00000230  2c 79 73 2c 63 6f 6c 2c  6f 6c 64 7d 0d 01 90 0d  |,ys,col,old}....|
00000240  4d 4f 56 20 52 30 2c 23  30 0d 01 9a 04 0d 01 a4  |MOV R0,#0.......|
00000250  12 4c 44 52 20 52 31 2c  74 68 72 65 65 32 30 0d  |.LDR R1,three20.|
00000260  01 ae 10 41 44 44 20 52  31 2c 52 31 2c 23 32 0d  |...ADD R1,R1,#2.|
00000270  01 b8 04 0d 01 c2 14 53  54 52 42 20 52 30 2c 5b  |.......STRB R0,[|
00000280  6f 6c 64 2c 23 31 5d 0d  01 cc 12 41 44 44 20 6f  |old,#1]....ADD o|
00000290  6c 64 2c 6f 6c 64 2c 52  31 0d 01 d6 11 53 54 52  |ld,old,R1....STR|
000002a0  42 20 52 30 2c 5b 6f 6c  64 5d 0d 01 e0 14 53 54  |B R0,[old]....ST|
000002b0  52 42 20 52 30 2c 5b 6f  6c 64 2c 23 31 5d 0d 01  |RB R0,[old,#1]..|
000002c0  ea 14 53 54 52 42 20 52  30 2c 5b 6f 6c 64 2c 23  |..STRB R0,[old,#|
000002d0  32 5d 0d 01 f4 12 41 44  44 20 6f 6c 64 2c 6f 6c  |2]....ADD old,ol|
000002e0  64 2c 52 31 0d 01 fe 14  53 54 52 42 20 52 30 2c  |d,R1....STRB R0,|
000002f0  5b 6f 6c 64 2c 23 31 5d  0d 02 08 04 0d 02 12 04  |[old,#1]........|
00000300  0d 02 1c 04 0d 02 26 04  0d 02 30 04 0d 02 3a 12  |......&...0...:.|
00000310  4c 44 52 20 52 31 2c 74  68 72 65 65 32 30 0d 02  |LDR R1,three20..|
00000320  44 0c 43 4d 50 20 79 2c  23 30 0d 02 4e 0f 42 4c  |D.CMP y,#0..N.BL|
00000330  54 20 6e 6f 5f 70 6c 6f  74 0d 02 58 04 0d 02 62  |T no_plot..X...b|
00000340  13 53 54 52 20 52 30 2c  66 69 6e 69 73 68 65 64  |.STR R0,finished|
00000350  0d 02 6c 04 0d 02 76 0e  41 44 44 20 78 2c 78 2c  |..l...v.ADD x,x,|
00000360  78 73 0d 02 80 0e 41 44  44 20 79 2c 79 2c 79 73  |xs....ADD y,y,ys|
00000370  0d 02 8a 10 53 55 42 20  79 73 2c 79 73 2c 23 31  |....SUB ys,ys,#1|
00000380  0d 02 94 04 0d 02 9e 0c  43 4d 50 20 78 2c 23 30  |........CMP x,#0|
00000390  0d 02 a8 0f 42 4c 54 20  6e 6f 5f 70 6c 6f 74 0d  |....BLT no_plot.|
000003a0  02 b2 04 0d 02 bc 0e 43  4d 50 20 79 2c 23 32 35  |.......CMP y,#25|
000003b0  35 0d 02 c6 0f 42 47 45  20 6e 6f 5f 70 6c 6f 74  |5....BGE no_plot|
000003c0  0d 02 d0 04 0d 02 da 0c  43 4d 50 20 78 2c 52 31  |........CMP x,R1|
000003d0  0d 02 e4 0f 42 47 45 20  6e 6f 5f 70 6c 6f 74 0d  |....BGE no_plot.|
000003e0  02 ee 04 0d 02 f8 04 0d  03 02 10 4d 4f 56 20 6f  |...........MOV o|
000003f0  6c 64 2c 23 31 36 30 0d  03 0c 16 4d 4f 56 20 6f  |ld,#160....MOV o|
00000400  6c 64 2c 6f 6c 64 2c 4c  53 4c 20 23 31 0d 03 16  |ld,old,LSL #1...|
00000410  11 52 53 42 20 52 30 2c  79 2c 23 32 35 35 0d 03  |.RSB R0,y,#255..|
00000420  20 12 4d 55 4c 20 6f 6c  64 2c 52 30 2c 6f 6c 64  | .MUL old,R0,old|
00000430  0d 03 2a 11 41 44 44 20  6f 6c 64 2c 6f 6c 64 2c  |..*.ADD old,old,|
00000440  78 0d 03 34 14 41 44 44  20 6f 6c 64 2c 6f 6c 64  |x..4.ADD old,old|
00000450  2c 62 61 73 65 0d 03 3e  04 0d 03 48 12 4c 44 52  |,base..>...H.LDR|
00000460  20 52 31 2c 74 68 72 65  65 32 30 0d 03 52 10 41  | R1,three20..R.A|
00000470  44 44 20 52 31 2c 52 31  2c 23 32 0d 03 5c 04 0d  |DD R1,R1,#2..\..|
00000480  03 66 15 53 54 52 42 20  63 6f 6c 2c 5b 6f 6c 64  |.f.STRB col,[old|
00000490  2c 23 31 5d 0d 03 70 12  41 44 44 20 6f 6c 64 2c  |,#1]..p.ADD old,|
000004a0  6f 6c 64 2c 52 31 0d 03  7a 12 53 54 52 42 20 63  |old,R1..z.STRB c|
000004b0  6f 6c 2c 5b 6f 6c 64 5d  0d 03 84 15 53 54 52 42  |ol,[old]....STRB|
000004c0  20 63 6f 6c 2c 5b 6f 6c  64 2c 23 31 5d 0d 03 8e  | col,[old,#1]...|
000004d0  15 53 54 52 42 20 63 6f  6c 2c 5b 6f 6c 64 2c 23  |.STRB col,[old,#|
000004e0  32 5d 0d 03 98 12 41 44  44 20 6f 6c 64 2c 6f 6c  |2]....ADD old,ol|
000004f0  64 2c 52 31 0d 03 a2 15  53 54 52 42 20 63 6f 6c  |d,R1....STRB col|
00000500  2c 5b 6f 6c 64 2c 23 31  5d 0d 03 ac 12 53 55 42  |,[old,#1]....SUB|
00000510  20 6f 6c 64 2c 6f 6c 64  2c 52 31 0d 03 b6 12 53  | old,old,R1....S|
00000520  55 42 20 6f 6c 64 2c 6f  6c 64 2c 52 31 0d 03 c0  |UB old,old,R1...|
00000530  04 0d 03 ca 0c 2e 6e 6f  5f 70 6c 6f 74 0d 03 d4  |......no_plot...|
00000540  04 0d 03 de 24 53 54 4d  49 41 20 28 70 6f 73 29  |....$STMIA (pos)|
00000550  21 2c 7b 78 2c 79 2c 78  73 2c 79 73 2c 63 6f 6c  |!,{x,y,xs,ys,col|
00000560  2c 6f 6c 64 7d 0d 03 e8  0f 43 4d 50 20 70 6f 73  |,old}....CMP pos|
00000570  2c 74 6f 70 0d 03 f2 0c  42 4c 54 20 6c 6f 6f 70  |,top....BLT loop|
00000580  0d 03 fc 04 0d 04 06 13  4c 44 52 20 52 31 2c 66  |........LDR R1,f|
00000590  69 6e 69 73 68 65 64 0d  04 10 0d 43 4d 50 20 52  |inished....CMP R|
000005a0  31 2c 23 31 0d 04 1a 04  0d 04 24 11 42 4e 45 20  |1,#1......$.BNE |
000005b0  6d 65 67 61 5f 6c 6f 6f  70 0d 04 2e 04 0d 04 38  |mega_loop......8|
000005c0  04 0d 04 42 0e 4d 4f 56  20 50 43 2c 52 31 34 0d  |...B.MOV PC,R14.|
000005d0  04 4c 0c 2e 74 68 72 65  65 32 30 0d 04 56 0c 45  |.L..three20..V.E|
000005e0  51 55 44 20 33 31 38 0d  04 60 09 2e 73 63 72 31  |QUD 318..`..scr1|
000005f0  0d 04 6a 0c 45 51 55 44  20 31 34 38 0d 04 74 0b  |..j.EQUD 148..t.|
00000600  45 51 55 44 20 2d 31 0d  04 7e 09 2e 73 63 72 32  |EQUD -1..~..scr2|
00000610  0d 04 88 0a 45 51 55 44  20 30 0d 04 92 0a 45 51  |....EQUD 0....EQ|
00000620  55 44 20 30 0d 04 9c 0e  2e 73 74 61 72 5f 61 64  |UD 0.....star_ad|
00000630  64 72 0d 04 a6 12 45 51  55 44 20 73 74 61 72 5f  |dr....EQUD star_|
00000640  64 61 74 61 0d 04 b0 08  2e 6d 61 78 0d 04 ba 17  |data.....max....|
00000650  45 51 55 44 20 74 6f 74  61 6c 5f 73 74 61 72 73  |EQUD total_stars|
00000660  2a 32 34 0d 04 c4 0d 2e  66 69 6e 69 73 68 65 64  |*24.....finished|
00000670  0d 04 ce 0a 45 51 55 44  20 30 0d 04 d8 05 5d 0d  |....EQUD 0....].|
00000680  04 e2 0a ed 20 70 61 73  73 0d 04 ec 05 e1 0d 04  |.... pass.......|
00000690  f6 05 3a 0d 05 00 17 dd  20 f2 72 61 6e 64 6f 6d  |..:..... .random|
000006a0  69 7a 65 28 78 25 2c 79  25 29 0d 05 0a 04 0d 05  |ize(x%,y%)......|
000006b0  14 17 e3 20 6e 3d 30 20  b8 20 74 6f 74 61 6c 5f  |... n=0 . total_|
000006c0  73 74 61 72 73 0d 05 1e  16 71 3d 73 74 61 72 5f  |stars....q=star_|
000006d0  64 61 74 61 2b 28 6e 2a  32 34 29 0d 05 28 0c 61  |data+(n*24)..(.a|
000006e0  3d b3 28 33 36 30 29 0d  05 32 1c 71 21 30 3d 78  |=.(360)..2.q!0=x|
000006f0  25 2b 28 b5 20 b2 20 61  29 2a 28 38 2b b3 28 32  |%+(. . a)*(8+.(2|
00000700  34 29 29 0d 05 3c 1d 71  21 34 3d 79 25 2b 28 9b  |4))..<.q!4=y%+(.|
00000710  20 b2 20 61 29 2a 28 31  30 2b b3 28 32 30 29 29  | . a)*(10+.(20))|
00000720  0d 05 46 15 71 21 38 3d  28 b5 20 b2 20 61 29 2a  |..F.q!8=(. . a)*|
00000730  b3 28 31 30 29 0d 05 50  16 71 21 31 32 3d 28 9b  |.(10)..P.q!12=(.|
00000740  20 b2 20 61 29 2a b3 28  31 30 29 0d 05 5a 0f 71  | . a)*.(10)..Z.q|
00000750  21 31 36 3d b3 28 32 35  35 29 0d 05 64 0e 71 21  |!16=.(255)..d.q!|
00000760  32 30 3d 21 73 63 72 32  0d 05 6e 07 ed 20 6e 0d  |20=!scr2..n.. n.|
00000770  05 78 05 e1 0d ff                                 |.x....|
00000776