Home » CEEFAX disks » telesoftware16.adl » 08-07-89/Bounce
08-07-89/Bounce
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 » telesoftware16.adl |
Filename: | 08-07-89/Bounce |
Read OK: | ✔ |
File size: | 0574 bytes |
Load address: | FFFF0E00 |
Exec address: | FFFF8023 |
Duplicates
There are 2 duplicate copies of this file in the archive:
- AEW website » mu » mu_5_25_discs_Micro_User_07_04_D-MU07_04.ssd » Bounce
- AEW website » mu » mu_Micro_User_07_04_MU7-4_B.uef » Bounce
- CEEFAX disks » telesoftware16.adl » 08-07-89/Bounce
File contents
10 REM BEEBS REVENGE 20 REM By Rob Walmsley 30 REM (c) The Micro User 40 IFTOP>&1C00 PRINT"Lower PAGE!":END 50 ON ERROR PROCtv(0):MODE7:REPORT:PRINT" in line ";ERL:END 60 Rnd=RND(-TIME):Rnd=RND(256) 70 PROCtv(253):MODE4 80 PROCShow(&6700):PRINTTAB(0,12); 90 PRINT"BEEBs revenge - Please wait for 50 secs"'''"Use : Z to speed up rotation"'SPC6"X to slow down rotation"'SPC6"R to reverse direction of rotation";SPC6"Q to quit program"; 100 VDU24,0;0;1272;320; 110 VDU23;6,20;0;0;0; 120 VDU23;8202;0;0;0; 130 VDU29,640;512; 140 HIMEM=&1C00:PROCAnimate(8) 150 PROCtv(0):MODE7:END 160 : 170 DEFPROCBlobs 180 Q=Scrn%/NumOfScrns%*PI/5 190 FOR X=Q TO PI*2+Q STEP PI/5 200 R%=ABS((SINX-2)*20):X%=COSX*500 210 Y%=SINX*70+SIN(X*8)*30 220 VDU29,X%+640;Y%+160;:J%=R%*R% 230 FORI%=0TOR%STEP4:Z%=SQR(J%-I%*I%) 240 MOVE-Z%,I%:DRAWZ%,I%:MOVE-Z%,-I% 250 DRAWZ%,-I%:NEXT:NEXT:ENDPROC 260 : 270 DEFPROCAnimate(NumOfScrns%) 280 FORScrn%=1TONumOfScrns% 290 CLG:VDU29,0;0;:IF RND(-Rnd) 300 FORI%=0TO60:PLOT69,RND(1272),RND(320):NEXT 310 PROCBlobs:PROCMove(Scrn%-1):NEXT 320 D%=6:Di%=1:I%=0:VDU23;6,10;0;0;0; 330 REPEAT I%=I%+Di% 340 IF I%<0 I%=NumOfScrns%-1 350 IF I%=NumOfScrns% I%=0 360 PROCShow(&1C00+I%*3200) 370 IF D%>0 T%=TIME+D%:REPEATUNTILTIME>T% 380 IF INKEY-67 IF D%>0 D%=D%-1 390 IF INKEY-98 IF D%<10000 D%=D%+1 400 IF INKEY-52 Di%=-Di% 410 UNTIL INKEY-17 420 ENDPROC 430 : 440 DEF PROCMove(S%):LOCAL B%,C% 450 IF S%=NumOfScrns% ENDPROC 460 B%=&1C00+3200*S%:C%=&7380 470 FORJ%=0TO3199STEP4:B%!J%=C%!J% 480 NEXT:ENDPROC 490 : 500 DEFPROCShow(A%):A%=A%DIV8:*FX19 510 VDU23;12,A%DIV256;0;0;0; 520 VDU23;13,A%MOD256;0;0;0;:ENDPROC 530 : 540 DEF PROCtv(N%):LOCAL X%,Y% 550 Y%=7:$(Y%*256)="TV"+STR$N% 560 CALL&FFF7:ENDPROC
� BEEBS REVENGE � By Rob Walmsley � (c) The Micro User ( �P>&1C00 �"Lower PAGE!":� 2% � � �tv(0):�7:�:�" in line ";�:� < Rnd=�(-�):Rnd=�(256) F �tv(253):�4 P �Show(&6700):�0,12); Z� �"BEEBs revenge - Please wait for 50 secs"'''"Use : Z to speed up rotation"'�6"X to slow down rotation"'�6"R to reverse direction of rotation";�6"Q to quit program"; d �24,0;0;1272;320; n �23;6,20;0;0;0; x �23;8202;0;0;0; � �29,640;512; � �=&1C00:�Animate(8) � �tv(0):�7:� � : � ��Blobs � Q=Scrn%/NumOfScrns%*�/5 � � X=Q � �*2+Q � �/5 � R%=�((�X-2)*20):X%=�X*500 � Y%=�X*70+�(X*8)*30 � �29,X%+640;Y%+160;:J%=R%*R% � �I%=0�R%�4:Z%=�(J%-I%*I%) � �-Z%,I%:�Z%,I%:�-Z%,-I% � �Z%,-I%:�:�:� : ��Animate(NumOfScrns%) �Scrn%=1�NumOfScrns% " �:�29,0;0;:� �(-Rnd) ," �I%=0�60:�69,�(1272),�(320):� 6 �Blobs:�Move(Scrn%-1):� @$ D%=6:Di%=1:I%=0:�23;6,10;0;0;0; J � I%=I%+Di% T � I%<0 I%=NumOfScrns%-1 ^ � I%=NumOfScrns% I%=0 h �Show(&1C00+I%*3200) r � D%>0 T%=�+D%:���>T% | � �-67 � D%>0 D%=D%-1 � � �-98 � D%<10000 D%=D%+1 � � �-52 Di%=-Di% � � �-17 � � � : � � �Move(S%):� B%,C% � � S%=NumOfScrns% � � B%=&1C00+3200*S%:C%=&7380 � �J%=0�3199�4:B%!J%=C%!J% � �:� � : � ��Show(A%):A%=A%�8:*FX19 � �23;12,A%�256;0;0;0; �23;13,A%�256;0;0;0;:� : � �tv(N%):� X%,Y% & Y%=7:$(Y%*256)="TV"+�N% 0 �&FFF7:� �
00000000 0d 00 0a 14 20 f4 20 42 45 45 42 53 20 52 45 56 |.... . BEEBS REV| 00000010 45 4e 47 45 0d 00 14 16 20 f4 20 42 79 20 52 6f |ENGE.... . By Ro| 00000020 62 20 57 61 6c 6d 73 6c 65 79 0d 00 1e 19 20 f4 |b Walmsley.... .| 00000030 20 28 63 29 20 54 68 65 20 4d 69 63 72 6f 20 55 | (c) The Micro U| 00000040 73 65 72 0d 00 28 1f 20 e7 b8 50 3e 26 31 43 30 |ser..(. ..P>&1C0| 00000050 30 20 f1 22 4c 6f 77 65 72 20 50 41 47 45 21 22 |0 ."Lower PAGE!"| 00000060 3a e0 0d 00 32 25 20 ee 20 85 20 f2 74 76 28 30 |:...2% . . .tv(0| 00000070 29 3a eb 37 3a f6 3a f1 22 20 69 6e 20 6c 69 6e |):.7:.:." in lin| 00000080 65 20 22 3b 9e 3a e0 0d 00 3c 19 20 52 6e 64 3d |e ";.:...<. Rnd=| 00000090 b3 28 2d 91 29 3a 52 6e 64 3d b3 28 32 35 36 29 |.(-.):Rnd=.(256)| 000000a0 0d 00 46 10 20 f2 74 76 28 32 35 33 29 3a eb 34 |..F. .tv(253):.4| 000000b0 0d 00 50 1a 20 f2 53 68 6f 77 28 26 36 37 30 30 |..P. .Show(&6700| 000000c0 29 3a f1 8a 30 2c 31 32 29 3b 0d 00 5a aa 20 f1 |):..0,12);..Z. .| 000000d0 22 42 45 45 42 73 20 72 65 76 65 6e 67 65 20 2d |"BEEBs revenge -| 000000e0 20 50 6c 65 61 73 65 20 77 61 69 74 20 66 6f 72 | Please wait for| 000000f0 20 35 30 20 73 65 63 73 22 27 27 27 22 55 73 65 | 50 secs"'''"Use| 00000100 20 3a 20 5a 20 74 6f 20 73 70 65 65 64 20 75 70 | : Z to speed up| 00000110 20 72 6f 74 61 74 69 6f 6e 22 27 89 36 22 58 20 | rotation"'.6"X | 00000120 74 6f 20 73 6c 6f 77 20 64 6f 77 6e 20 72 6f 74 |to slow down rot| 00000130 61 74 69 6f 6e 22 27 89 36 22 52 20 74 6f 20 72 |ation"'.6"R to r| 00000140 65 76 65 72 73 65 20 64 69 72 65 63 74 69 6f 6e |everse direction| 00000150 20 6f 66 20 72 6f 74 61 74 69 6f 6e 22 3b 89 36 | of rotation";.6| 00000160 22 51 20 74 6f 20 71 75 69 74 20 70 72 6f 67 72 |"Q to quit progr| 00000170 61 6d 22 3b 0d 00 64 16 20 ef 32 34 2c 30 3b 30 |am";..d. .24,0;0| 00000180 3b 31 32 37 32 3b 33 32 30 3b 0d 00 6e 14 20 ef |;1272;320;..n. .| 00000190 32 33 3b 36 2c 32 30 3b 30 3b 30 3b 30 3b 0d 00 |23;6,20;0;0;0;..| 000001a0 78 14 20 ef 32 33 3b 38 32 30 32 3b 30 3b 30 3b |x. .23;8202;0;0;| 000001b0 30 3b 0d 00 82 11 20 ef 32 39 2c 36 34 30 3b 35 |0;.... .29,640;5| 000001c0 31 32 3b 0d 00 8c 18 20 d3 3d 26 31 43 30 30 3a |12;.... .=&1C00:| 000001d0 f2 41 6e 69 6d 61 74 65 28 38 29 0d 00 96 10 20 |.Animate(8).... | 000001e0 f2 74 76 28 30 29 3a eb 37 3a e0 0d 00 a0 06 20 |.tv(0):.7:..... | 000001f0 3a 0d 00 aa 0c 20 dd f2 42 6c 6f 62 73 0d 00 b4 |:.... ..Blobs...| 00000200 1c 20 51 3d 53 63 72 6e 25 2f 4e 75 6d 4f 66 53 |. Q=Scrn%/NumOfS| 00000210 63 72 6e 73 25 2a af 2f 35 0d 00 be 18 20 e3 20 |crns%*./5.... . | 00000220 58 3d 51 20 b8 20 af 2a 32 2b 51 20 88 20 af 2f |X=Q . .*2+Q . ./| 00000230 35 0d 00 c8 1e 20 52 25 3d 94 28 28 b5 58 2d 32 |5.... R%=.((.X-2| 00000240 29 2a 32 30 29 3a 58 25 3d 9b 58 2a 35 30 30 0d |)*20):X%=.X*500.| 00000250 00 d2 17 20 59 25 3d b5 58 2a 37 30 2b b5 28 58 |... Y%=.X*70+.(X| 00000260 2a 38 29 2a 33 30 0d 00 dc 20 20 ef 32 39 2c 58 |*8)*30... .29,X| 00000270 25 2b 36 34 30 3b 59 25 2b 31 36 30 3b 3a 4a 25 |%+640;Y%+160;:J%| 00000280 3d 52 25 2a 52 25 0d 00 e6 1e 20 e3 49 25 3d 30 |=R%*R%.... .I%=0| 00000290 b8 52 25 88 34 3a 5a 25 3d b6 28 4a 25 2d 49 25 |.R%.4:Z%=.(J%-I%| 000002a0 2a 49 25 29 0d 00 f0 1c 20 ec 2d 5a 25 2c 49 25 |*I%).... .-Z%,I%| 000002b0 3a df 5a 25 2c 49 25 3a ec 2d 5a 25 2c 2d 49 25 |:.Z%,I%:.-Z%,-I%| 000002c0 0d 00 fa 12 20 df 5a 25 2c 2d 49 25 3a ed 3a ed |.... .Z%,-I%:.:.| 000002d0 3a e1 0d 01 04 06 20 3a 0d 01 0e 1b 20 dd f2 41 |:..... :.... ..A| 000002e0 6e 69 6d 61 74 65 28 4e 75 6d 4f 66 53 63 72 6e |nimate(NumOfScrn| 000002f0 73 25 29 0d 01 18 19 20 e3 53 63 72 6e 25 3d 31 |s%).... .Scrn%=1| 00000300 b8 4e 75 6d 4f 66 53 63 72 6e 73 25 0d 01 22 19 |.NumOfScrns%..".| 00000310 20 da 3a ef 32 39 2c 30 3b 30 3b 3a e7 20 b3 28 | .:.29,0;0;:. .(| 00000320 2d 52 6e 64 29 0d 01 2c 22 20 e3 49 25 3d 30 b8 |-Rnd)..," .I%=0.| 00000330 36 30 3a f0 36 39 2c b3 28 31 32 37 32 29 2c b3 |60:.69,.(1272),.| 00000340 28 33 32 30 29 3a ed 0d 01 36 1c 20 f2 42 6c 6f |(320):...6. .Blo| 00000350 62 73 3a f2 4d 6f 76 65 28 53 63 72 6e 25 2d 31 |bs:.Move(Scrn%-1| 00000360 29 3a ed 0d 01 40 24 20 44 25 3d 36 3a 44 69 25 |):...@$ D%=6:Di%| 00000370 3d 31 3a 49 25 3d 30 3a ef 32 33 3b 36 2c 31 30 |=1:I%=0:.23;6,10| 00000380 3b 30 3b 30 3b 30 3b 0d 01 4a 11 20 f5 20 49 25 |;0;0;0;..J. . I%| 00000390 3d 49 25 2b 44 69 25 20 0d 01 54 1c 20 e7 20 49 |=I%+Di% ..T. . I| 000003a0 25 3c 30 20 49 25 3d 4e 75 6d 4f 66 53 63 72 6e |%<0 I%=NumOfScrn| 000003b0 73 25 2d 31 0d 01 5e 1a 20 e7 20 49 25 3d 4e 75 |s%-1..^. . I%=Nu| 000003c0 6d 4f 66 53 63 72 6e 73 25 20 49 25 3d 30 0d 01 |mOfScrns% I%=0..| 000003d0 68 19 20 f2 53 68 6f 77 28 26 31 43 30 30 2b 49 |h. .Show(&1C00+I| 000003e0 25 2a 33 32 30 30 29 0d 01 72 1a 20 e7 20 44 25 |%*3200)..r. . D%| 000003f0 3e 30 20 54 25 3d 91 2b 44 25 3a f5 fd 91 3e 54 |>0 T%=.+D%:...>T| 00000400 25 0d 01 7c 1a 20 e7 20 a6 2d 36 37 20 e7 20 44 |%..|. . .-67 . D| 00000410 25 3e 30 20 44 25 3d 44 25 2d 31 0d 01 86 1e 20 |%>0 D%=D%-1.... | 00000420 e7 20 a6 2d 39 38 20 e7 20 44 25 3c 31 30 30 30 |. .-98 . D%<1000| 00000430 30 20 44 25 3d 44 25 2b 31 0d 01 90 14 20 e7 20 |0 D%=D%+1.... . | 00000440 a6 2d 35 32 20 44 69 25 3d 2d 44 69 25 0d 01 9a |.-52 Di%=-Di%...| 00000450 0b 20 fd 20 a6 2d 31 37 0d 01 a4 06 20 e1 0d 01 |. . .-17.... ...| 00000460 ae 06 20 3a 0d 01 b8 18 20 dd 20 f2 4d 6f 76 65 |.. :.... . .Move| 00000470 28 53 25 29 3a ea 20 42 25 2c 43 25 0d 01 c2 17 |(S%):. B%,C%....| 00000480 20 e7 20 53 25 3d 4e 75 6d 4f 66 53 63 72 6e 73 | . S%=NumOfScrns| 00000490 25 20 e1 0d 01 cc 1e 20 42 25 3d 26 31 43 30 30 |% ..... B%=&1C00| 000004a0 2b 33 32 30 30 2a 53 25 3a 43 25 3d 26 37 33 38 |+3200*S%:C%=&738| 000004b0 30 0d 01 d6 1d 20 e3 4a 25 3d 30 b8 33 31 39 39 |0.... .J%=0.3199| 000004c0 88 34 3a 42 25 21 4a 25 3d 43 25 21 4a 25 0d 01 |.4:B%!J%=C%!J%..| 000004d0 e0 08 20 ed 3a e1 0d 01 ea 06 20 3a 0d 01 f4 1d |.. .:..... :....| 000004e0 20 dd f2 53 68 6f 77 28 41 25 29 3a 41 25 3d 41 | ..Show(A%):A%=A| 000004f0 25 81 38 3a 2a 46 58 31 39 0d 01 fe 19 20 ef 32 |%.8:*FX19.... .2| 00000500 33 3b 31 32 2c 41 25 81 32 35 36 3b 30 3b 30 3b |3;12,A%.256;0;0;| 00000510 30 3b 0d 02 08 1b 20 ef 32 33 3b 31 33 2c 41 25 |0;.... .23;13,A%| 00000520 83 32 35 36 3b 30 3b 30 3b 30 3b 3a e1 0d 02 12 |.256;0;0;0;:....| 00000530 06 20 3a 0d 02 1c 16 20 dd 20 f2 74 76 28 4e 25 |. :.... . .tv(N%| 00000540 29 3a ea 20 58 25 2c 59 25 0d 02 26 1c 20 59 25 |):. X%,Y%..&. Y%| 00000550 3d 37 3a 24 28 59 25 2a 32 35 36 29 3d 22 54 56 |=7:$(Y%*256)="TV| 00000560 22 2b c3 4e 25 0d 02 30 0d 20 d6 26 46 46 46 37 |"+.N%..0. .&FFF7| 00000570 3a e1 0d ff |:...| 00000574