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 DCMP 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 VEQUD 318 ` .scr1 jEQUD 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