Home » Personal collection » Commodore disks » disk65a_programs_1.d64 » bounce
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 » Personal collection » Commodore disks » disk65a_programs_1.d64 |
| Filename: | bounce |
| Read OK: | ✔ |
| File size: | 067F bytes |
| Load address: | 0801 |
| Exec address: | 0000 |
File contents
1 REM *******************
2 REM * BOUNCE *
3 REM *******************
4 REM * BY DOMINIC FORD *
5 REM *******************
6 REM * 1ST JUNE 1993 *
7 REM *******************
8 REM
10 PRINTCHR$(147);CHR$(30);:POKE53280,9:POKE53281,0:POKE56295,5:SP=-1
20 FORR=1TO199:PRINT"WOOZY";:NEXT:PRINT"WOOZ";
30 POKE2023,25:VC=53248:POKEVC+21,0
40 POKEVC+23,0:POKEVC+29,0:POKEVC+16,0
50 POKEVC+28,0:POKEVC+27,0:R=PEEK(VC+30)
60 DIMXS(7),YS(7),BP(7,1)
70 FORR=0TO62:READVA:POKER+16320,VA:NEXT
80 FORR=2040TO2047
90 POKER,255:NEXT
100 FORR=1TO8:POKEVC+R+38,R:NEXT:POKEVC+21,255
110 FL=0:FORR=0TO7
120 BP(R,0)=INT(RND(1)*170)+50:POKER*2+1+VC,BP(R,0)
130 BP(R,1)=INT(RND(1)*200)+55:POKER*2+VC,BP(R,1):NEXT:POKEVC+30,0
140 FORR=0TO7:POKER*2+1+VC,BP(R,0)
145 POKER*2+VC,BP(R,1):NEXT
150 IF PEEK(VC+30)<>0 THEN 110
160 POKEVC+21,0:FORR=0TO7
170 XS(R)=INT(RND(1)*2) AND 1
180 YS(R)=INT(RND(1)*2) AND 1
190 IF XS(R)=0 THEN XS(R)=-1
200 IF YS(R)=0 THEN YS(R)=-1
210 NEXT:POKEVC+21,255
220 FORSP=0TO7:V=VC+2*SP:EX=PEEK(VC+16) AND (2^SP)
230 IF PEEK(V)=255 AND EX=0 THEN POKEV,0:POKEVC+16,PEEK(VC+16)+2^SP
240 IF PEEK(V)=0 AND EX<>0 THEN POKE V,255:POKEVC+16,PEEK(VC+16)-EX:GOTO 290
250 POKEV,PEEK(V)+XS(SP):IF P=1 THEN P=0:GOTO 250
260 IF PEEK(V)<26 AND EX=0 THEN XS(SP)=1:P=1:GOTO250
270 IF PEEK(V)>45 AND EX<>0 THEN XS(SP)=-1:P=1:GOTO 250
280 GOSUB1000:IF CO<>0 THEN XS(SP)=-XS(SP):P=1:GOTO 250
290 POKEV+1,PEEK(V+1)+YS(SP):IF P=1 THEN P=0:GOTO 290
300 IF PEEK(V+1)>230 THEN YS(SP)=-1:P=1:GOTO 290
310 IF PEEK(V+1)<50 THEN YS(SP)=1:P=1:GOTO 290
320 GOSUB1000:IF CO<>0 THEN YS(SP)=-YS(SP):P=1:GOTO 290
330 NEXT:GOTO 220
340 DATA 0,127,0,1,255,192,7,255,224
350 DATA 15,255,240,31,255,248,63,255,252
360 DATA 63,255,252,127,255,254,127,255,254
370 DATA 127,255,254,127,255,254,127,255,254
380 DATA 127,255,254,127,255,254,63,255,252
390 DATA 63,255,252,31,255,248,31,255,248
400 DATA 15,255,240,7,255,224,1,255,128
1000 IF SP=-1 THEN CO=PEEK(VC+30):RETURN
1010 CO=PEEK(VC+30) AND (2^SP)
1020 CO=PEEK(VC+30) AND (2^SP)
1030 RETURN
� ******************* 5 � * BOUNCE * O � ******************* i � * BY DOMINIC FORD * � � ******************* � � * 1ST JUNE 1993 * � � ******************* � � � ��(147);�(30);:�53280,9:�53281,0:�56295,5:SP��1 �R�1�199:�"WOOZY";:�:�"WOOZ"; 2 �2023,25:VC�53248:�VC�21,0 Q ( �VC�23,0:�VC�29,0:�VC�16,0 r 2 �VC�28,0:�VC�27,0:R��(VC�30) � <