Home » Personal collection » Commodore disks » disk45a_galaxy64.d64 » bouncecode2
bouncecode2
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 » disk45a_galaxy64.d64 |
| Filename: | bouncecode2 |
| Read OK: | ✔ |
| File size: | 1108 bytes |
| Load address: | 0801 |
| Exec address: | 0000 |
File contents
10 REM BOUNCE
20 REM BY DOMINIC FORD
30 REM
40 REM BASIC - 1ST JUNE 1993
50 REM MACHINE CODE - 13TH MAY 1995
70 GOTO 6000
100 *=$3C80
110 XS=$3C00
120 YS=$3C08
130 XP=$3C10
140 YP=$3C18
150 RND=$0002
160 XST=$3C20
170 YST=$3C21
180 ADRP=$3C22
190 EX=$3C23
200 ; LINE 10 (SEE PRINTOUT OF BASIC)
210 L10 LDA #$93
220 JSR $AB47
230 LDA #$13
240 JSR $AB47
250 LDA #$09
260 STA $D020
270 LDA #$00
280 STA $D021
290 LDA #$05
300 STA $DBE7
310 ; LINE 20
320 L20 LDX #$00
330 WOOPNT LDY #$05
340 WOOLOP LDA WOOZY,Y
350 JSR $AB47
360 DEY
370 BNE WOOLOP
380 INX
390 CPX #$C7
400 BNE WOOPNT
410 LDY #$05
420 WOOB LDA WOOZY,Y
430 JSR $AB47
440 DEY
450 CPY #$01
460 BNE WOOB
470 ; LINE 30
480 L30 LDA #$19
490 STA $07E7
500 LDA #$00
510 STA $D015
520 ; LINE 40
530 L40 STA $D017
540 STA $D01D
550 STA $D010
560 ; LINE 50
570 L50 STA $D01C
580 STA $D01B
590 ; LINE 60 (NOTHING)
600 ; LINE 70 (NOTHING)
610 ; LINE 80+90
620 L80 LDX #$08
630 LDA #$F1
640 POSLOP STA $07F7,X
650 DEX
660 BNE POSLOP
670 ; LINE 100
680 L100 LDX #$01
690 COLLOP TXA
700 STA $D026,X
710 INX
720 CPX #$09
730 BNE COLLOP
740 ; LINE 110
750 L110 LDA #$00
755 STA $FD
760 ; LINE 120
770 L120 LDA #<L120B
780 STA $FB
790 LDA #>L120B
800 STA $FC
810 RTS
820 L120B LDA $02
830 CMP #$38
840 BCC L120
850 CMP #$AA
860 BCS L120
870 LDX $FD
880 STA YP,X
890 TAY
900 TXA
910 ASL A
920 TAX
930 TYA
940 STA $D001,X
950 ; LINE 130
960 L130 LDA #<L130B
970 STA $FB
980 LDA #>L130B
990 STA $FC
1000 RTS
1010 WOOZY TXT "!YZOOW"
1020 L130B LDA $02
1030 CMP #$38
1040 BCC L130
1050 LDX $FD
1060 STA XP,X
1070 TAY
1080 TXA
1090 ASL A
1100 TAX
1110 TYA
1120 STA $D000,X
1130 LDX $FD
1140 INX
1150 STX $FD
1160 CPX #$08
1170 BNE L120
1180 LDA #$00
1190 STA $D01E
1200 ; LINE 140
1210 L140 LDX #$00
1220 STX $FD
1230 F140L LDA XP,X
1240 TAY
1250 TXA
1260 ASL A
1270 TAX
1280 TYA
1290 STA $D000,X
1300 ; LINE 145
1310 L145 LDX $FD
1320 LDA YP,X
1330 TAY
1340 TXA
1350 ASL A
1360 TAX
1370 TYA
1380 STA $D001,X
1390 LDX $FD
1400 INX
1410 STX $FD
1420 CPX #$08
1430 BNE F140L
1440 ; LINE 150
1450 L150 LDA $D01E
1460 BNE L110
1470 ; LINE 160
1480 L160 LDA #$00
1490 STA $D015
1500 LDX #$00
1510 L170 LDA $A2
1520 AND #$01
1530 CMP #$01
1540 BEQ L170B
1550 LDA #$FF
1560 L170B STA XS,X
1570 ; LINE 180
1580 L180 LDA $A1
1590 AND #$01
1600 CMP #$01
1610 BEQ L180B
1620 LDA #$FF
1630 L180B STA YS,X
1640 ; LINE 190 (NOTHING)
1650 ; LINE 200 (NOTHING)
1660 L210 INX
1670 CPX #$08
1680 BNE L170
1690 LDA #$FF
1700 STA $D015
1710 ; LINE 220 (MAIN PROGRAM LOOP)
1720 L220 LDX #$00
1725 LDY #$01
1730 L220LOP STX XST
1735 STY YST
1740 TXA
1750 ASL A
1760 STA ADRP
1770 LDA $D010
1780 AND YST
1790 STA EX
1800 L230 LDX ADRP
1810 LDA $D000,X
1820 CMP #$FF
1830 BNE L240
1840 LDA EX
1850 BNE L240
1860 LDX XST
1870 LDA XS,X
1880 CMP #$01
1890 BNE L240
1900 LDA $D010
1910 ORA YST
1920 STA $D010
1930 LDA #$02
1940 STA EX
1942 LDX ADRP
1944 LDA #$00
1946 STA $D000,X
1950 L240 LDX ADRP
1960 LDA $D000,X
1970 BNE L250
1980 LDA EX
1990 CMP #$01
2000 BNE L250
2010 LDX XST
2020 LDA XS,X
2030 CMP #$00
2040 BNE L250
2050 LDX ADRP
2060 LDA #$FF
2070 STA $D000,X
2080 LDA $D010
2090 SEC
2100 SBC YST
2110 STA $D010
2120 LDA #$02
2130 STA EX
2140 L250 LDX ADRP
2150 LDY XST
2160 LDA $D000,X
2170 CLC
2180 ADC XS,Y
2190 STA $D000,X
2200 L260 CMP #$1A
2210 BCS L270
2220 LDA EX
2230 BNE L270
2240 LDA #$01
2250 STA XS,Y
2260 L270 CMP #$2D
2270 BCC L280
2280 LDA EX
2300 BEQ L280
2310 LDA #$FF
2320 STA XS,Y
2330 L280 JSR L1000
2350 CMP #$00
2360 BEQ L290
2370 LDA XS,Y
2380 CMP #$01
2390 BEQ L280B
2400 LDA #$01
2410 JMP L280C
2420 L280B LDA #$FF
2430 L280C STA XS,Y
2440 L290 INX
2450 LDA $D000,X
2460 CLC
2470 ADC YS,Y
2480 STA $D000,X
2490 L300 CMP #$E6
2500 BCC L310
2510 LDA #$FF
2520 STA YS,Y
2530 L310 CMP #$32
2540 BCS L320
2550 LDA #$01
2560 STA YS
2570 L320 JSR L1000
2590 CMP #$00
2600 BEQ L330
2610 LDA YS,Y
2620 CMP #$01
2630 BEQ L320B
2640 LDA #$01
2650 JMP L320C
2660 L320B LDA #$FF
2670 L320C STA YS,Y
2680 L330 LDX XST
2690 INX
2700 LDA YST
2710 ASL A
2720 TAY
2730 CPX #$08
2740 BEQ L330B
2750 JMP L220LOP
2760 L330B JMP L220
2800 L1000 LDA $D01E
2810 LDA $D01E
2820 AND YST
2830 RTS
5000 ; SPRITE DATA (340-400)
5005 *=$3C40
5010 TXT 0,127,0,1,255,192,7,255,224
5020 TXT 15,255,240,31,255,248,63,255
5030 TXT 252,63,255,252,127,255,254,127
5040 TXT 255,254,127,255,254,127,255
5050 TXT 254,127,255,254,127,255,254
5060 TXT 127,255,254,63,255,252,63,255
5070 TXT 252,31,255,248,31,255,248,15
5080 TXT 255,240,7,255,224,1,255,128
5100 END
6000 REM CONTROLLER
6020 SYS $3C80
6030 POKE 2,INT(RND(1)*255)
6040 SYS (PEEK($FB)+PEEK($FC)*256)
6050 GOTO 6030
� BOUNCE : � BY DOMINIC FORD @ � e( � BASIC - 1ST JUNE 1993 �2 � MACHINE CODE - 13TH MAY 1995 �F � 6000 �d ��$3C80 �n XS�$3C00 �x YS�$3C08 �� XP�$3C10 �� YP�$3C18 �� ��$0002 �� XST�$3C20 �� YST�$3C21 � ADRP�$3C22 � EX�$3C23 ; � ; LINE 10 (SEE �OUT OF BASIC) L � L10 LDA #$93 Z � JSR $AB47 g � LDA #$13 u � JSR $AB47 � � LDA #$09 � STA $D020 � LDA #$00 � STA $D021 � "LDA #$05 � ,STA $DBE7 � 6; LINE 20 � @L20 LDX #$00 � JWOOPNT LDY #$05
TWOOLOP LDA WOOZY,Y
^JSR $AB47 &
hDEY 5
rBNE WOOLOP =
|INX J
�CPX #$C7 Y
�BNE WOOPNT f
�LDY #$05 {
�WOOB LDA WOOZY,Y �
�JSR $AB47 �
�DEY �
�CPY #$01 �
�BNE WOOB �
�; LINE 30 �
�L30 LDA #$19 �
�STA $07E7 �
�LDA #$00 �
�STA $D015 ; LINE 40 L40 STA $D017 !STA $D01D /&STA $D010 =0; LINE 50 O:L50 STA $D01C ]DSTA $D01B sN; LINE 60 (�HING) �X; LINE 70 (�HING) �b; LINE 80�90 �lL80 LDX #$08 �vLDA #$F1 ���LOP STA $07F7,X ��DEX ��BNE �LOP ��; LINE 100 �L100 LDX #$01 �COLLOP TXA "�STA $D026,X *�INX 7�CPX #$09 F�BNE COLLOP U�; LINE 110 g�L110 LDA #$00 s�STA $FD ��; LINE 120 �L120 LDA #�L120B �STA $FB �LDA #�L120B � STA $FC �*RTS �4L120B LDA $02 �>CMP #$38 �HBCC L120
RCMP #$AA
\BCS L120
fLDX $FD &
pSTA YP,X .
zTAY 6
�TXA @
�ASL A H
�TAX P
�TYA `
�STA $D001,X o
�; LINE 130 �
�L130 LDA #�L130B �
�STA $FB �
�LDA #�L130B �
�STA $FC �
�RTS �
�WOOZY TXT "!YZOOW"