mirror of
https://github.com/alonf/Apple_IIe_Snake.git
synced 2024-12-27 18:30:45 +00:00
Uploaded the binary disk and the assembly file
This commit is contained in:
parent
2855045e8c
commit
7eab312519
972
snake_asm.txt
Normal file
972
snake_asm.txt
Normal file
@ -0,0 +1,972 @@
|
|||||||
|
1010 .TF GAME
|
||||||
|
1020 *--------------------------------
|
||||||
|
1030 * CONSTANT
|
||||||
|
1040 *--------------------------------
|
||||||
|
1050 GETKEY .EQ $C000
|
||||||
|
1060 CLRKEY .EQ $C010
|
||||||
|
1070 PRTHEX .EQ $FDDA
|
||||||
|
1080 PRTCHR .EQ $FDED
|
||||||
|
1090 *--------------------------------
|
||||||
|
1100 * START PROGRAM
|
||||||
|
1110 *--------------------------------
|
||||||
|
1120 SET LDA #$00
|
||||||
|
1130 TAX
|
||||||
|
1140 .1 STA SROW,X
|
||||||
|
1150 INX
|
||||||
|
1160 BNE .1
|
||||||
|
1170 LDA #$31
|
||||||
|
1180 STA ROMNUM
|
||||||
|
1190 LDA #$03
|
||||||
|
1200 STA LIFE
|
||||||
|
1210 LDA #$C0
|
||||||
|
1220 STA SOUND+13
|
||||||
|
1230 LDX #3
|
||||||
|
1240 .2 LDA KEYSTR,X
|
||||||
|
1250 STA KEYDAT,X
|
||||||
|
1260 DEX
|
||||||
|
1270 BPL .2
|
||||||
|
1280 *--------------------------------
|
||||||
|
1290 * PRINT SCREEN
|
||||||
|
1300 *--------------------------------
|
||||||
|
1310 LDA $C051
|
||||||
|
1320 LDA $C052
|
||||||
|
1330 JSR PRINT
|
||||||
|
1340 .HS 80800D04
|
||||||
|
1350 .AS "BLOAD HIGH SCORE"
|
||||||
|
1360 .HS 8D
|
||||||
|
1370 JSR PRINT
|
||||||
|
1380 .HS FF0A00
|
||||||
|
1390 .AS "THE ANNOYING SNAKE"
|
||||||
|
1400 .HS 0D
|
||||||
|
1410 .AS "MADE BY ALON FLIESS 1987 WHITEFISH BAY"
|
||||||
|
1420 .HS 0D0D
|
||||||
|
1430 .AS " HIGH SCORE TABLE"
|
||||||
|
1440 .HS 0D
|
||||||
|
1450 .AS " NAME ROOM LEVEL SCORE"
|
||||||
|
1460 .HS 0D
|
||||||
|
1470 .AS " ---- ---- ----- -----"
|
||||||
|
1480 .HS 8D
|
||||||
|
1490 LDA #10
|
||||||
|
1500 STA NCOUNT
|
||||||
|
1510 PTBLE LDX #00
|
||||||
|
1520 .2 LDY #14
|
||||||
|
1530 .1 LDA $2000,X
|
||||||
|
1540 JSR PRTCHR
|
||||||
|
1550 INX
|
||||||
|
1560 DEY
|
||||||
|
1570 BNE .1
|
||||||
|
1580 LDA #$A0
|
||||||
|
1590 JSR PRTCHR
|
||||||
|
1600 JSR PRTCHR
|
||||||
|
1610 LDA $2000,X
|
||||||
|
1620 JSR PRTCHR
|
||||||
|
1630 LDA #$A0
|
||||||
|
1640 LDY #9
|
||||||
|
1650 .3 JSR PRTCHR
|
||||||
|
1660 DEY
|
||||||
|
1670 BNE .3
|
||||||
|
1680 INX
|
||||||
|
1690 LDA $2000,X
|
||||||
|
1700 JSR PRTCHR
|
||||||
|
1710 INX
|
||||||
|
1720 LDA #$A0
|
||||||
|
1730 LDY #7
|
||||||
|
1740 .4 JSR PRTCHR
|
||||||
|
1750 DEY
|
||||||
|
1760 BNE .4
|
||||||
|
1770 LDA $2000,X
|
||||||
|
1780 JSR PRTHEX
|
||||||
|
1790 INX
|
||||||
|
1800 LDA $2000,X
|
||||||
|
1810 JSR PRTHEX
|
||||||
|
1820 INX
|
||||||
|
1830 LDA #$8D
|
||||||
|
1840 JSR PRTCHR
|
||||||
|
1850 DEC NCOUNT
|
||||||
|
1860 BNE .2
|
||||||
|
1870 JSR PRINT
|
||||||
|
1880 .HS 80800D0D
|
||||||
|
1890 .AS "MOVE-"
|
||||||
|
1900 .HS 0D
|
||||||
|
1910 .AS " I"
|
||||||
|
1920 .HS 0D
|
||||||
|
1930 .AS " J L"
|
||||||
|
1940 .HS 0D
|
||||||
|
1950 .AS " M"
|
||||||
|
1960 .HS 0D0D
|
||||||
|
1970 .AS "LEVEL (1-5)"
|
||||||
|
1972 .AS -"?"
|
||||||
|
1980 *--------------------------------
|
||||||
|
1990 * GET LEVEL
|
||||||
|
2000 *--------------------------------
|
||||||
|
2010 GET.LEVEL
|
||||||
|
2020 .2 LDA GETKEY
|
||||||
|
2030 BPL .2
|
||||||
|
2040 STA CLRKEY
|
||||||
|
2050 CMP #$B6
|
||||||
|
2060 BCS .2
|
||||||
|
2070 CMP #$B1
|
||||||
|
2080 BCC .2
|
||||||
|
2090 STA SLEVEL
|
||||||
|
2100 JSR PRTCHR
|
||||||
|
2110 AND #$07
|
||||||
|
2120 TAX
|
||||||
|
2130 DEX
|
||||||
|
2140 LDA LEVELT,X
|
||||||
|
2150 STA LEVEL
|
||||||
|
2160
|
||||||
|
2170 *--------------------------------
|
||||||
|
2180 * GET NEW KEYS
|
||||||
|
2190 *--------------------------------
|
||||||
|
2200 DEFKEY JSR PRINT
|
||||||
|
2210 .HS FF8080
|
||||||
|
2220 .AS "DO YOU WANT TO CHANGE KEYS"
|
||||||
|
2225 .AS -"?"
|
||||||
|
2230 .1 LDA GETKEY
|
||||||
|
2240 BPL .1
|
||||||
|
2250 STA CLRKEY
|
||||||
|
2260 JSR PRTCHR
|
||||||
|
2270 CMP #$D9
|
||||||
|
2280 BEQ .2
|
||||||
|
2290 JMP STRTGM
|
||||||
|
2300 .2 JSR PRINT
|
||||||
|
2310 .HS 80800D0D
|
||||||
|
2320 .AS "DOWN"
|
||||||
|
2325 .AS -"?"
|
||||||
|
2330 .3 LDA GETKEY
|
||||||
|
2340 BPL.3
|
||||||
|
2350 STA CLRKEY
|
||||||
|
2360 STA KEYDAT
|
||||||
|
2370 JSR PRTCHR
|
||||||
|
2380 JSR PRINT
|
||||||
|
2390 .HS 80800D
|
||||||
|
2400 .AS "RIGHT"
|
||||||
|
2405 .AS -"?"
|
||||||
|
2410 .4 LDA GETKEY
|
||||||
|
2420 BPL .4
|
||||||
|
2430 STA CLRKEY
|
||||||
|
2440 STA KEYDAT+1
|
||||||
|
2450 JSR PRTCHR
|
||||||
|
2460 JSR PRINT
|
||||||
|
2470 .HS 80800D
|
||||||
|
2480 .AS "UP"
|
||||||
|
2485 .AS -"?"
|
||||||
|
2490 .5 LDA GETKEY
|
||||||
|
2500 BPL .5
|
||||||
|
2510 STA CLRKEY
|
||||||
|
2520 STA KEYDAT+2
|
||||||
|
2530 JSR PRTCHR
|
||||||
|
2540 JSR PRINT
|
||||||
|
2550 .HS 80800D
|
||||||
|
2560 .AS "LEFT"
|
||||||
|
2565 .AS -"?"
|
||||||
|
2570 .6 LDA GETKEY
|
||||||
|
2580 BPL .6
|
||||||
|
2590 STA CLRKEY
|
||||||
|
2600 STA KEYDAT+3
|
||||||
|
2610 JSR PRTCHR
|
||||||
|
2620 JSR PRINT
|
||||||
|
2630 .HS 80800D0D0D0D0D
|
||||||
|
2640 .AS "PRESS SPACE BAR TO CONTINU"
|
||||||
|
2645 .AS -"E"
|
||||||
|
2650 .7 LDA GETKEY
|
||||||
|
2660 BPL .7
|
||||||
|
2670 STA CLRKEY
|
||||||
|
2680 CMP #$A0
|
||||||
|
2690 BNE .7
|
||||||
|
2700 *--------------------------------
|
||||||
|
2710 * START GAME
|
||||||
|
2720 *--------------------------------
|
||||||
|
2730 STRTGM LDA $C050
|
||||||
|
2740 LDA $C053
|
||||||
|
2750 LDA $C054
|
||||||
|
2760 LDA $C056
|
||||||
|
2770 START JSR SETSCR
|
||||||
|
2780 LDA ROMNUM
|
||||||
|
2790 AND #$0F
|
||||||
|
2800 ASL
|
||||||
|
2810 STA LENGTH
|
||||||
|
2820 *--------------------------------
|
||||||
|
2830 * MAIN LOOP
|
||||||
|
2840 *--------------------------------
|
||||||
|
2850 LOOP LDA TAIL
|
||||||
|
2860 CLC
|
||||||
|
2870 ADC LENGTH
|
||||||
|
2880 CMP HEAD
|
||||||
|
2890 BNE .1
|
||||||
|
2900 LDX TAIL
|
||||||
|
2910 LDA ARRAYX,X
|
||||||
|
2920 STA COLOMN
|
||||||
|
2930 LDA ARRAYY,X
|
||||||
|
2940 STA SROW
|
||||||
|
2950 LDA #$00
|
||||||
|
2960 STA SCOLOR
|
||||||
|
2970 SEC
|
||||||
|
2980 JSR SPLOT
|
||||||
|
2990 INC TAIL
|
||||||
|
3000 .1 LDX HEAD
|
||||||
|
3010 DEX
|
||||||
|
3020 LDA ARRAYX,X
|
||||||
|
3030 STA COLOMN
|
||||||
|
3040 LDA ARRAYY,X
|
||||||
|
3050 STA SROW
|
||||||
|
3060 LDA #$0F
|
||||||
|
3070 STA SCOLOR
|
||||||
|
3080 SEC
|
||||||
|
3090 JSR SPLOT
|
||||||
|
3100 LDX HEAD
|
||||||
|
3110 LDA ARRAYX,X
|
||||||
|
3120 STA COLOMN
|
||||||
|
3130 LDA ARRAYY,X
|
||||||
|
3140 STA SROW
|
||||||
|
3150 LDA #$01
|
||||||
|
3160 STA SCOLOR
|
||||||
|
3170 SEC
|
||||||
|
3180 JSR SPLOT
|
||||||
|
3190 BCC .3
|
||||||
|
3200 CMP #$03
|
||||||
|
3210 BNE .4
|
||||||
|
3220 JMP NXTSCR
|
||||||
|
3230 .4 CMP #$02
|
||||||
|
3240 BEQ .5
|
||||||
|
3250 CMP #$0F
|
||||||
|
3260 BNE .6
|
||||||
|
3270 .5 JMP CRASH
|
||||||
|
3280 .6 JSR EATBOX
|
||||||
|
3290 .3 LDA ROMNUM
|
||||||
|
3300 AND #$0F
|
||||||
|
3310 ASL
|
||||||
|
3320 ASL
|
||||||
|
3330 ASL
|
||||||
|
3340 ADC LEVEL
|
||||||
|
3350 EOR #$FF
|
||||||
|
3360 CLC
|
||||||
|
3370 ADC #$01
|
||||||
|
3380 STA DUR
|
||||||
|
3390 LDX SCOUNT
|
||||||
|
3400 LDA MUSICT,X
|
||||||
|
3410 STA FREQ
|
||||||
|
3420 INC SCOUNT
|
||||||
|
3430 LDA SCOUNT
|
||||||
|
3440 CMP #41
|
||||||
|
3450 BNE .8
|
||||||
|
3460 LDA #$00
|
||||||
|
3470 STA SCOUNT
|
||||||
|
3480 .8 JSR SOUND
|
||||||
|
3490 LDA GETKEY
|
||||||
|
3500 BPL .7
|
||||||
|
3510 JSR GETDIR
|
||||||
|
3520 .7 STA CLRKEY
|
||||||
|
3530 LDX HEAD
|
||||||
|
3540 LDA ARRAYX,X
|
||||||
|
3550 CLC
|
||||||
|
3560 ADC DX
|
||||||
|
3570 INX
|
||||||
|
3580 STA ARRAYX,X
|
||||||
|
3590 DEX
|
||||||
|
3600 LDA ARRAYY,X
|
||||||
|
3610 CLC
|
||||||
|
3620 ADC DY
|
||||||
|
3630 INX
|
||||||
|
3640 STA ARRAYY,X
|
||||||
|
3650 STX HEAD
|
||||||
|
3660 JMP LOOP
|
||||||
|
3670 *--------------------------------
|
||||||
|
3680 * GET DIRECTION
|
||||||
|
3690 *--------------------------------
|
||||||
|
3700 GETDIR LDX #$03
|
||||||
|
3710 .2 CMP KEYDAT,X
|
||||||
|
3720 BEQ .1
|
||||||
|
3730 DEX
|
||||||
|
3740 BPL .2
|
||||||
|
3750 CMP #147
|
||||||
|
3760 BNE .3
|
||||||
|
3770 LDA #$FF
|
||||||
|
3780 EOR SOUND+13
|
||||||
|
3790 STA SOUND+13
|
||||||
|
3800 .3 RTS
|
||||||
|
3810 .1 LDA DIRX,X
|
||||||
|
3820 STA DX
|
||||||
|
3830 LDA DIRY,X
|
||||||
|
3840 STA DY
|
||||||
|
3850 RTS
|
||||||
|
3860 KEYDAT .HS CDCCC9CA
|
||||||
|
3870 DIRX .HS 000100FF
|
||||||
|
3880 DIRY .HS 0100FF00
|
||||||
|
3890 *--------------------------------
|
||||||
|
3900 * SET SCREEN
|
||||||
|
3910 *--------------------------------
|
||||||
|
3920 SETSCR JSR PRINT
|
||||||
|
3930 .HS FF80800D04
|
||||||
|
3940 .AS "BLOAD ROOM "
|
||||||
|
3950 ROMNUM .HS 008D
|
||||||
|
3960 SETBOX JSR HOME
|
||||||
|
3970 LDA ROMNUM
|
||||||
|
3980 AND #$0F
|
||||||
|
3990 CLC
|
||||||
|
4000 ADC #$02
|
||||||
|
4010 STA COUNT
|
||||||
|
4020 STA BOXNUM
|
||||||
|
4030 .2 LDY #$01
|
||||||
|
4040 .1 JSR RANDOM
|
||||||
|
4050 LSR
|
||||||
|
4060 LSR
|
||||||
|
4070 CMP #40
|
||||||
|
4080 BCS .1
|
||||||
|
4090 STA SROW,Y
|
||||||
|
4100 DEY
|
||||||
|
4110 BPL .1
|
||||||
|
4120 CLC
|
||||||
|
4130 JSR SPLOT
|
||||||
|
4140 BCS .2
|
||||||
|
4150 LDA COUNT
|
||||||
|
4160 ADC #$04
|
||||||
|
4170 STA SCOLOR
|
||||||
|
4180 SEC
|
||||||
|
4190 JSR SPLOT
|
||||||
|
4200 DEC COUNT
|
||||||
|
4210 BNE .2
|
||||||
|
4220 JSR SCOREP
|
||||||
|
4230 JSR BOXP
|
||||||
|
4240 JSR LIFEP
|
||||||
|
4250 JSR ROOMP
|
||||||
|
4260 LDA #38
|
||||||
|
4270 STA ARRAYX+1
|
||||||
|
4280 STA ARRAYX
|
||||||
|
4290 STA ARRAYY
|
||||||
|
4300 LDA #37
|
||||||
|
4310 STA ARRAYY+1
|
||||||
|
4320 LDA #$FF
|
||||||
|
4330 STA DY
|
||||||
|
4340 LDA #$00
|
||||||
|
4350 STA DX
|
||||||
|
4360 STA TAIL
|
||||||
|
4370 LDA #$01
|
||||||
|
4380 STA HEAD
|
||||||
|
4390 STA CLRKEY
|
||||||
|
4400 RTS
|
||||||
|
4410 *--------------------------------
|
||||||
|
4420 * HOME/CLEAR TEXT SCREEN
|
||||||
|
4430 *--------------------------------
|
||||||
|
4440 HOME LDX #20
|
||||||
|
4450 .2 LDA TBLELO,X
|
||||||
|
4460 STA $F9
|
||||||
|
4470 LDA TBLEHI,X
|
||||||
|
4480 STA $FA
|
||||||
|
4490 LDY #39
|
||||||
|
4500 LDA #$A0
|
||||||
|
4510 .1 STA ($F9),Y
|
||||||
|
4520 DEY
|
||||||
|
4530 BPL .1
|
||||||
|
4540 INX
|
||||||
|
4550 CPX #24
|
||||||
|
4560 BNE .2
|
||||||
|
4570 RTS
|
||||||
|
4580 *-------------------------------
|
||||||
|
4590 * PRINT THE SCORE
|
||||||
|
4600 *-------------------------------
|
||||||
|
4610 SCOREP JSR PRINT
|
||||||
|
4620 .HS 0015
|
||||||
|
4630 .AS "SCORE"
|
||||||
|
4635 .AS -":"
|
||||||
|
4640 LDA SCORE+1
|
||||||
|
4650 JSR PRTHEX
|
||||||
|
4660 LDA SCORE
|
||||||
|
4670 JSR PRTHEX
|
||||||
|
4680 RTS
|
||||||
|
4690 *-------------------------------
|
||||||
|
4700 * PRINT NUMBER OF BOX
|
||||||
|
4710 *-------------------------------
|
||||||
|
4720 BOXP JSR PRINT
|
||||||
|
4730 .HS 1E17
|
||||||
|
4740 .AS "BOX"
|
||||||
|
4745 .AS -":"
|
||||||
|
4750 SED
|
||||||
|
4760 LDA BOXNUM
|
||||||
|
4770 CLC
|
||||||
|
4780 ADC #$00
|
||||||
|
4790 CLD
|
||||||
|
4800 JSR PRTHEX
|
||||||
|
4810 RTS
|
||||||
|
4820 *-------------------------------
|
||||||
|
4830 * PRINT NUMBER OF LIFE
|
||||||
|
4840 *-------------------------------
|
||||||
|
4850 LIFEP JSR PRINT
|
||||||
|
4860 .HS 0C17
|
||||||
|
4870 .AS "LIFE"
|
||||||
|
4875 .AS -":"
|
||||||
|
4880 LDA LIFE
|
||||||
|
4890 ORA #$B0
|
||||||
|
4900 JSR PRTCHR
|
||||||
|
4910 RTS
|
||||||
|
4920 *-------------------------------
|
||||||
|
4930 * PRINT ROOM NUMBER
|
||||||
|
4940 *-------------------------------
|
||||||
|
4950 ROOMP JSR PRINT
|
||||||
|
4960 .HS 1517
|
||||||
|
4970 .AS "ROOM"
|
||||||
|
4975 .AS -":"
|
||||||
|
4980 LDA ROMNUM
|
||||||
|
4990 ORA #$80
|
||||||
|
5000 JSR PRTCHR
|
||||||
|
5010 RTS
|
||||||
|
5020 *-------------------------------
|
||||||
|
5030 * COLLISION
|
||||||
|
5040 *-------------------------------
|
||||||
|
5050 CRASH LDX #$04
|
||||||
|
5060 LDA #200
|
||||||
|
5070 STA FREQ
|
||||||
|
5080 .1 LDA #$02
|
||||||
|
5090 STA DUR
|
||||||
|
5100 JSR SOUND
|
||||||
|
5110 INC FREQ
|
||||||
|
5120 LDA FREQ
|
||||||
|
5130 CMP #230
|
||||||
|
5140 BNE .1
|
||||||
|
5150 .2 LDA #$02
|
||||||
|
5160 STA DUR
|
||||||
|
5170 JSR SOUND
|
||||||
|
5180 DEC FREQ
|
||||||
|
5190 LDA FREQ
|
||||||
|
5200 CMP #200
|
||||||
|
5210 BNE .2
|
||||||
|
5220 DEX
|
||||||
|
5230 BNE .1
|
||||||
|
5240 JSR ERASES
|
||||||
|
5250 DEC LIFE
|
||||||
|
5260 LDA LIFE
|
||||||
|
5270 CMP #$FF
|
||||||
|
5280 BNE .3
|
||||||
|
5310 JMP GMOVER
|
||||||
|
5320 .3 JMP START
|
||||||
|
5330 *-------------------------------
|
||||||
|
5340 * ERASE THE SNAKE
|
||||||
|
5350 *-------------------------------
|
||||||
|
5360 ERASES LDX TAIL
|
||||||
|
5370 LDA #230
|
||||||
|
5380 STA FREQ
|
||||||
|
5390 LDA #$00
|
||||||
|
5400 STA SCOLOR
|
||||||
|
5410 .1 LDA ARRAYX,X
|
||||||
|
5420 STA COLOMN
|
||||||
|
5430 LDA ARRAYY,X
|
||||||
|
5440 STA SROW
|
||||||
|
5450 STX TEMP2
|
||||||
|
5460 SEC
|
||||||
|
5470 JSR SPLOT
|
||||||
|
5480 LDX TEMP2
|
||||||
|
5490 LDA #$08
|
||||||
|
5500 STA DUR
|
||||||
|
5510 JSR SOUND
|
||||||
|
5520 DEC FREQ
|
||||||
|
5530 INX
|
||||||
|
5540 CPX HEAD
|
||||||
|
5550 BNE .1
|
||||||
|
5560 RTS
|
||||||
|
5570 *-------------------------------
|
||||||
|
5580 * NEXT SCREEN
|
||||||
|
5590 *-------------------------------
|
||||||
|
5600 NXTSCR JSR ERASES
|
||||||
|
5610 INC ROMNUM
|
||||||
|
5620 LDA ROMNUM
|
||||||
|
5630 CMP #$39
|
||||||
|
5640 BNE .2
|
||||||
|
5650 DEC ROMNUM
|
||||||
|
5680 JMP END
|
||||||
|
5690 .2 LDA SLEVEL
|
||||||
|
5700 AND #$07
|
||||||
|
5710 CMP LIFE
|
||||||
|
5720 BCC .3
|
||||||
|
5730 INC LIFE
|
||||||
|
5740 .3 JMP START
|
||||||
|
5750 *-------------------------------
|
||||||
|
5760 * COLLISION IN BOX
|
||||||
|
5770 *-------------------------------
|
||||||
|
5780 EATBOX LDX #50
|
||||||
|
5790 STX FREQ
|
||||||
|
5800 .1 LDX #$02
|
||||||
|
5810 STX DUR
|
||||||
|
5820 JSR SOUND
|
||||||
|
5830 DEC FREQ
|
||||||
|
5840 LDX FREQ
|
||||||
|
5850 CPX #$20
|
||||||
|
5860 BNE .1
|
||||||
|
5870 .2 LDX #$02
|
||||||
|
5880 STX DUR
|
||||||
|
5890 JSR SOUND
|
||||||
|
5900 INC FREQ
|
||||||
|
5910 LDX FREQ
|
||||||
|
5920 CPX #50
|
||||||
|
5930 BNE .2
|
||||||
|
5940 PHA
|
||||||
|
5950 SED
|
||||||
|
5960 CLC
|
||||||
|
5970 ADC #$00
|
||||||
|
5980 ADC SCORE
|
||||||
|
5990 STA SCORE
|
||||||
|
6000 LDA #$00
|
||||||
|
6010 ADC SCORE+1
|
||||||
|
6020 STA SCORE+1
|
||||||
|
6030 CLD
|
||||||
|
6040 JSR SCOREP
|
||||||
|
6050 PLA
|
||||||
|
6060 CLC
|
||||||
|
6070 ADC LENGTH
|
||||||
|
6080 STA LENGTH
|
||||||
|
6090 DEC BOXNUM
|
||||||
|
6100 BNE .3
|
||||||
|
6110 JSR BOXP
|
||||||
|
6120 LDA #$F5
|
||||||
|
6130 STA FREQ
|
||||||
|
6140 LDA #$D0
|
||||||
|
6150 STA DUR
|
||||||
|
6160 JSR SOUND
|
||||||
|
6170 LDA #$03
|
||||||
|
6180 STA SCOLOR
|
||||||
|
6190 LDX #$03
|
||||||
|
6200 .4 LDA OPENX,X
|
||||||
|
6210 STA COLOMN
|
||||||
|
6220 LDA OPENY,X
|
||||||
|
6230 STA SROW
|
||||||
|
6240 SEC
|
||||||
|
6250 STX TEMP2
|
||||||
|
6260 JSR SPLOT
|
||||||
|
6270 LDX TEMP2
|
||||||
|
6280 DEX
|
||||||
|
6290 BPL .4
|
||||||
|
6300 LDA #$05
|
||||||
|
6310 STA FREQ
|
||||||
|
6320 STA DUR
|
||||||
|
6330 JSR SOUND
|
||||||
|
6340 RTS
|
||||||
|
6350 .3 JSR BOXP
|
||||||
|
6360 RTS
|
||||||
|
6370 OPENX .HS 18271000
|
||||||
|
6380 OPENY .HS 00182710
|
||||||
|
6390 *------------------------------
|
||||||
|
6400 * GAME OVER
|
||||||
|
6410 *------------------------------
|
||||||
|
6420 GMOVER LDA $C051
|
||||||
|
6430 LDA $C052
|
||||||
|
6440 JSR PRINT
|
||||||
|
6450 .HS FF0000
|
||||||
|
6460 .AS " ***********"
|
||||||
|
6470 .HS 0D
|
||||||
|
6480 .AS " *GAME OVER*"
|
||||||
|
6490 .HS 0D
|
||||||
|
6500 .AS " ***********"
|
||||||
|
6510 .HS 0D0D0D
|
||||||
|
6520 .AS "YOU DIDN'T FINISH, MAYBE NEXT TIME."
|
||||||
|
6530 .HS 0D
|
||||||
|
6540 .AS "TRY AGAIN!!!"
|
||||||
|
6550 .HS 0D0D80
|
||||||
|
6560 JSR ROOMP
|
||||||
|
6570 JSR SCOREP
|
||||||
|
6580 JMP HSCORE
|
||||||
|
6590 *-------------------------------
|
||||||
|
6600 * END OF GAME
|
||||||
|
6610 *-------------------------------
|
||||||
|
6620 END LDA $C051
|
||||||
|
6630 LDA $C052
|
||||||
|
6635 JSR HOME
|
||||||
|
6640 JSR PRINT
|
||||||
|
6650 .HS FF0000
|
||||||
|
6660 .AS " ************"
|
||||||
|
6670 .HS 0D
|
||||||
|
6680 .AS " *YOU DID IT*"
|
||||||
|
6690 .HS 0D
|
||||||
|
6700 .AS " ************"
|
||||||
|
6710 .HS 0D0D
|
||||||
|
6720 .AS "LEVEL"
|
||||||
|
6725 .AS -" "
|
||||||
|
6730 LDA SLEVEL
|
||||||
|
6740 JSR PRTCHR
|
||||||
|
6750 CMP #$B5
|
||||||
|
6760 BEQ .1
|
||||||
|
6770 JSR PRINT
|
||||||
|
6780 .HS 80800D0D
|
||||||
|
6790 .AS "TRY NOW LEVEL"
|
||||||
|
6795 .AS -" "
|
||||||
|
6800 LDX SLEVEL
|
||||||
|
6810 INX
|
||||||
|
6820 TXA
|
||||||
|
6830 JSR PRTCHR
|
||||||
|
6840 .1 JSR SCOREP
|
||||||
|
6850 JSR ROOMP
|
||||||
|
6860 HSCORE LDA SCORE+1
|
||||||
|
6870 STA CLRKEY
|
||||||
|
6880 CMP $20B2
|
||||||
|
6890 BCS .2
|
||||||
|
6900 .4 JMP .12
|
||||||
|
6910 .2 BNE .3
|
||||||
|
6920 LDA SCORE
|
||||||
|
6930 CMP $20B3
|
||||||
|
6940 BCC .4
|
||||||
|
6950 BEQ .4
|
||||||
|
6960 .3 JSR PRINT
|
||||||
|
6970 .HS 000B0D
|
||||||
|
6980 .AS "NEW HIGH SCORE!!"
|
||||||
|
6985 .AS -"!"
|
||||||
|
6990 LDX #162
|
||||||
|
7000 .7 LDA SCORE+1
|
||||||
|
7010 CMP $2000+16,X
|
||||||
|
7020 BCC .6
|
||||||
|
7030 BNE .5
|
||||||
|
7040 LDA SCORE
|
||||||
|
7050 CMP $2000+17,X
|
||||||
|
7060 BCC .6
|
||||||
|
7070 .5 STX TEMP
|
||||||
|
7080 LDY #18
|
||||||
|
7090 .14 LDA $2000,X
|
||||||
|
7100 STA $2000+18,X
|
||||||
|
7110 INX
|
||||||
|
7120 DEY
|
||||||
|
7130 BNE .14
|
||||||
|
7140 LDA TEMP
|
||||||
|
7150 SEC
|
||||||
|
7160 SBC #18
|
||||||
|
7170 TAX
|
||||||
|
7180 BCS .7
|
||||||
|
7190 LDX #$00
|
||||||
|
7200 JMP VERYFH
|
||||||
|
7210 .6 JSR PRINT
|
||||||
|
7220 .HS 80800D0D
|
||||||
|
7230 .AS "INPUT YOUR NAME. (UP TO 14 LETTERS)."
|
||||||
|
7240 .HS 0D
|
||||||
|
7250 .AS -"?"
|
||||||
|
7260 LDY #14
|
||||||
|
7270 .8 LDA GETKEY
|
||||||
|
7280 BPL .8
|
||||||
|
7290 STA CLRKEY
|
||||||
|
7300 CMP #$8D
|
||||||
|
7310 BEQ .9
|
||||||
|
7320 STA $2000+18,X
|
||||||
|
7330 JSR PRTCHR
|
||||||
|
7340 INX
|
||||||
|
7350 DEY
|
||||||
|
7360 BNE .8
|
||||||
|
7370 .9 CPY #$00
|
||||||
|
7380 BEQ .10
|
||||||
|
7390 LDA #$A0
|
||||||
|
7400 .11 STA $2000+18,X
|
||||||
|
7410 INX
|
||||||
|
7420 DEY
|
||||||
|
7430 BNE .11
|
||||||
|
7440 .10 LDA ROMNUM
|
||||||
|
7450 ORA #$80
|
||||||
|
7460 STA $2000+18,X
|
||||||
|
7470 INX
|
||||||
|
7480 LDA SLEVEL
|
||||||
|
7490 STA $2000+18,X
|
||||||
|
7500 INX
|
||||||
|
7510 LDA SCORE+1
|
||||||
|
7520 STA $2000+18,X
|
||||||
|
7530 INX
|
||||||
|
7540 LDA SCORE
|
||||||
|
7550 STA $2000+18,X
|
||||||
|
7560 JSR PRINT
|
||||||
|
7570 .HS 80800D04
|
||||||
|
7580 .AS "BSAVE HIGH SCORE,A$2000,L$B4"
|
||||||
|
7590 .HS 8D
|
||||||
|
7600 .12 JSR PRINT
|
||||||
|
7610 .HS 0012
|
||||||
|
7620 .AS "PRESS SPACE BAR TO CONTINU"
|
||||||
|
7625 .AS -"E"
|
||||||
|
7630 L13 LDA GETKEY
|
||||||
|
7640 BPL L13
|
||||||
|
7650 STA CLRKEY
|
||||||
|
7660 CMP #$A0
|
||||||
|
7670 BNE L13
|
||||||
|
7680 JMP SET
|
||||||
|
7690 *-------------------------------
|
||||||
|
7700 * WRITE THE FIRST HIGH SCORE
|
||||||
|
7710 *-------------------------------
|
||||||
|
7720 VERYFH JSR PRINT
|
||||||
|
7730 .HS 80800D0D
|
||||||
|
7740 .AS "INPUT YOUR NAME. (UP TO 14 LETTERS)."
|
||||||
|
7750 .HS 0D
|
||||||
|
7760 .AS -"?"
|
||||||
|
7770 LDY #14
|
||||||
|
7780 .8 LDA GETKEY
|
||||||
|
7790 BPL .8
|
||||||
|
7800 STA CLRKEY
|
||||||
|
7810 CMP #$8D
|
||||||
|
7820 BEQ .9
|
||||||
|
7830 STA $2000,X
|
||||||
|
7840 JSR PRTCHR
|
||||||
|
7850 INX
|
||||||
|
7860 DEY
|
||||||
|
7870 BNE .8
|
||||||
|
7880 .9 CPY #$00
|
||||||
|
7890 BEQ .10
|
||||||
|
7900 LDA #$A0
|
||||||
|
7910 .11 STA $2000,X
|
||||||
|
7920 INX
|
||||||
|
7930 DEY
|
||||||
|
7940 BNE .11
|
||||||
|
7950 .10 LDA ROMNUM
|
||||||
|
7960 ORA #$80
|
||||||
|
7970 STA $2000,X
|
||||||
|
7980 INX
|
||||||
|
7990 LDA SLEVEL
|
||||||
|
8000 STA $2000,X
|
||||||
|
8010 INX
|
||||||
|
8020 LDA SCORE+1
|
||||||
|
8030 STA $2000,X
|
||||||
|
8040 INX
|
||||||
|
8050 LDA SCORE
|
||||||
|
8060 STA $2000,X
|
||||||
|
8070 JSR PRINT
|
||||||
|
8080 .HS 80800D04
|
||||||
|
8090 .AS "BSAVE HIGH SCORE,A$2000,L$B4"
|
||||||
|
8100 .HS 8D
|
||||||
|
8110 .12 JSR PRINT
|
||||||
|
8120 .HS 0012
|
||||||
|
8130 .AS "PRESS SPACE BAR TO CONTINU"
|
||||||
|
8135 .AS -"E"
|
||||||
|
8140 V13 LDA GETKEY
|
||||||
|
8150 BPL V13
|
||||||
|
8160 STA CLRKEY
|
||||||
|
8170 CMP #$A0
|
||||||
|
8180 BNE V13
|
||||||
|
8190 JMP SET
|
||||||
|
8200 *--------------------------------
|
||||||
|
8210 * RANDOM
|
||||||
|
8220 *--------------------------------
|
||||||
|
8230 RANDOM STX TEMP
|
||||||
|
8240 SEC
|
||||||
|
8250 LDA R
|
||||||
|
8260 ADC R+3
|
||||||
|
8270 ADC R+4
|
||||||
|
8280 STA R
|
||||||
|
8290 LDX #3
|
||||||
|
8300 .1 LDA R,X
|
||||||
|
8310 STA R+1,X
|
||||||
|
8320 DEX
|
||||||
|
8330 BPL .1
|
||||||
|
8340 LDX TEMP
|
||||||
|
8350 RTS
|
||||||
|
8360 R .BS 5
|
||||||
|
8370 *--------------------------------
|
||||||
|
8380 * SOUND ROUTINE
|
||||||
|
8390 *--------------------------------
|
||||||
|
8400 SOUND PHP
|
||||||
|
8410 PHA
|
||||||
|
8420 TXA
|
||||||
|
8430 PHA
|
||||||
|
8440 TYA
|
||||||
|
8450 PHA
|
||||||
|
8460 LDY #$00
|
||||||
|
8470 .1 LDX FREQ
|
||||||
|
8480 LDA BEEP
|
||||||
|
8490 .2 NOP
|
||||||
|
8500 DEX
|
||||||
|
8510 BEQ .1
|
||||||
|
8520 DEY
|
||||||
|
8530 BNE .2
|
||||||
|
8540 DEC DUR
|
||||||
|
8550 BNE .2
|
||||||
|
8560 PLA
|
||||||
|
8570 TAY
|
||||||
|
8580 PLA
|
||||||
|
8590 TAX
|
||||||
|
8600 PLA
|
||||||
|
8610 PLP
|
||||||
|
8620 RTS
|
||||||
|
8630 BEEP .EQ $C030
|
||||||
|
8640 FREQ .HS 00
|
||||||
|
8650 DUR .HS 00
|
||||||
|
8660 *-------------------------------
|
||||||
|
8670 * PLOT/GET COLOR ROUTINE
|
||||||
|
8680 *-------------------------------
|
||||||
|
8690 SPLOT PHP
|
||||||
|
8700 LDA SROW
|
||||||
|
8710 LSR
|
||||||
|
8720 TAX
|
||||||
|
8730 LDA TBLELO,X
|
||||||
|
8740 STA $F9
|
||||||
|
8750 LDA TBLEHI,X
|
||||||
|
8760 STA $FA
|
||||||
|
8770 LDY COLOMN
|
||||||
|
8780 LDA ($F9),Y
|
||||||
|
8790 BCC .1
|
||||||
|
8800 AND #$F0
|
||||||
|
8810 STA TEMP
|
||||||
|
8820 LDA ($F9),Y
|
||||||
|
8830 AND #$0F
|
||||||
|
8840 STA TEMP3
|
||||||
|
8850 LDA SCOLOR
|
||||||
|
8860 ASL
|
||||||
|
8870 ASL
|
||||||
|
8880 ASL
|
||||||
|
8890 ASL
|
||||||
|
8900 PLP
|
||||||
|
8910 BCC .2
|
||||||
|
8920 ORA TEMP3
|
||||||
|
8930 STA ($F9),Y
|
||||||
|
8940 .2 CLC
|
||||||
|
8950 LDA TEMP
|
||||||
|
8960 LSR
|
||||||
|
8970 LSR
|
||||||
|
8980 LSR
|
||||||
|
8990 LSR
|
||||||
|
9000 BEQ .3
|
||||||
|
9010 SEC
|
||||||
|
9020 .3 RTS
|
||||||
|
9040 .1 AND #$0F
|
||||||
|
9050 STA TEMP
|
||||||
|
9060 LDA ($F9),Y
|
||||||
|
9070 AND #$F0
|
||||||
|
9080 STA TEMP3
|
||||||
|
9090 LDA SCOLOR
|
||||||
|
9100 PLP
|
||||||
|
9110 BCC .4
|
||||||
|
9120 ORA TEMP3
|
||||||
|
9130 STA ($F9),Y
|
||||||
|
9140 CLC
|
||||||
|
9150 .4 LDA TEMP
|
||||||
|
9160 BEQ .5
|
||||||
|
9170 SEC
|
||||||
|
9180 .5 RTS
|
||||||
|
9190 *-------------------------------
|
||||||
|
9200 * PRINT SUBROUTINE
|
||||||
|
9210 *-------------------------------
|
||||||
|
9220 *
|
||||||
|
9230 * GET RETURN ADDRESS FROM THE STACK
|
||||||
|
9240 * AND USE IT AS A POINTER TO THE DATA
|
||||||
|
9250 *
|
||||||
|
9260 PRINT PLA
|
||||||
|
9270 STA $CE
|
||||||
|
9280 PLA
|
||||||
|
9290 STA $CF
|
||||||
|
9300 *
|
||||||
|
9310 * CHECK FIRST NUMBER FOR HOME
|
||||||
|
9320 *
|
||||||
|
9330 LDY #$01 ;INDEX TO DATA
|
||||||
|
9340 .1 LDA ($CE),Y ;GET CHARACTER
|
||||||
|
9350 CMP #$FF ;$FF IS CODE FOR HOME
|
||||||
|
9360 BNE .2
|
||||||
|
9370 JSR $FC58 ;HOME
|
||||||
|
9380 LDY #2 ;HOME SETS Y = 0
|
||||||
|
9390 BNE .1 ;ALWAYS!
|
||||||
|
9400 *
|
||||||
|
9410 * NEXT TWO BYTES ARE X,Y POSITION OF CURSOR
|
||||||
|
9420 *
|
||||||
|
9430 .2 BMI .10
|
||||||
|
9440 STA $24 ;CURRENT HORIZONTAL POSITION
|
||||||
|
9450 .10 INY ;NEXT CHARACTER
|
||||||
|
9460 LDA ($CE),Y ;VERTICAL POSITION
|
||||||
|
9470 BMI .11
|
||||||
|
9480 JSR $FB58 ;VERTICAL TAB
|
||||||
|
9490 .11 INY ;NEXT CHARACTER
|
||||||
|
9500 *
|
||||||
|
9510 * PRINT DATA
|
||||||
|
9520 *
|
||||||
|
9530 .3 LDA ($CE),Y ;GET CHARACTER
|
||||||
|
9540 ORA #$80 ;SET HIGH BIT
|
||||||
|
9550 JSR $FDED ;COUT
|
||||||
|
9560 LDA ($CE),Y ;GET CHARACTER AGAIN
|
||||||
|
9570 BMI .5 ;NEGATIVE = DONE
|
||||||
|
9580 INC $CE ;NEXT CHARACTER
|
||||||
|
9590 BNE .3
|
||||||
|
9600 INC $CF
|
||||||
|
9610 .4 BNE .3 ;ALWAYS!
|
||||||
|
9620 *
|
||||||
|
9630 * STORE RETURN ADDRESS ON STACK
|
||||||
|
9640 *
|
||||||
|
9650 .5 TYA ;ADD Y TO $CE
|
||||||
|
9660 CLC
|
||||||
|
9670 ADC $CE
|
||||||
|
9680 STA $CE
|
||||||
|
9690 BCC .6
|
||||||
|
9700 INC $CF
|
||||||
|
9710 .6 LDA $CF ;RESTORE STACK
|
||||||
|
9720 PHA
|
||||||
|
9730 LDA $CE
|
||||||
|
9740 PHA
|
||||||
|
9750 RTS
|
||||||
|
9760 *-------------------------------
|
||||||
|
9770 * LO-RES GRAPHIC ADDRESS TABLE
|
||||||
|
9780 *-------------------------------
|
||||||
|
9790 TBLEHI .DA #$04
|
||||||
|
9792 .DA #$04
|
||||||
|
9794 .DA #$05
|
||||||
|
9796 .DA #$05
|
||||||
|
9800 .DA #$06
|
||||||
|
9802 .DA #$06
|
||||||
|
9804 .DA #$07
|
||||||
|
9806 .DA #$07
|
||||||
|
9810 .DA #$04
|
||||||
|
9812 .DA #$04
|
||||||
|
9814 .DA #$05
|
||||||
|
9816 .DA #$05
|
||||||
|
9820 .DA #$06
|
||||||
|
9822 .DA #$06
|
||||||
|
9824 .DA #$07
|
||||||
|
9826 .DA #$07
|
||||||
|
9830 .DA #$04
|
||||||
|
9832 .DA #$04
|
||||||
|
9834 .DA #$05
|
||||||
|
9836 .DA #$05
|
||||||
|
9840 .DA #$06
|
||||||
|
9842 .DA #$06
|
||||||
|
9844 .DA #$07
|
||||||
|
9846 .DA #$07
|
||||||
|
9850 TBLELO .DA #$00
|
||||||
|
9852 .DA #$80
|
||||||
|
9854 .DA #$00
|
||||||
|
9856 .DA #$80
|
||||||
|
9860 .DA #$00
|
||||||
|
9862 .DA #$80
|
||||||
|
9864 .DA #$00
|
||||||
|
9866 .DA #$80
|
||||||
|
9870 .DA #$28
|
||||||
|
9872 .DA #$A8
|
||||||
|
9874 .DA #$28
|
||||||
|
9876 .DA #$A8
|
||||||
|
9880 .DA #$28
|
||||||
|
9882 .DA #$A8
|
||||||
|
9884 .DA #$28
|
||||||
|
9886 .DA #$A8
|
||||||
|
9890 .DA #$50
|
||||||
|
9892 .DA #$D0
|
||||||
|
9894 .DA #$50
|
||||||
|
9896 .DA #$D0
|
||||||
|
9900 .DA #$50
|
||||||
|
9902 .DA #$D0
|
||||||
|
9904 .DA #$50
|
||||||
|
9906 .DA #$D0
|
||||||
|
9910 *-------------------------------
|
||||||
|
9912 * DATA
|
||||||
|
9914 *-------------------------------
|
||||||
|
9916 SROW .HS 00
|
||||||
|
9918 COLOMN .HS 00
|
||||||
|
9920 SCOLOR .HS 00
|
||||||
|
9922 DOTE .HS 00
|
||||||
|
9924 COLDOT .HS 00
|
||||||
|
9926 LIFE .HS 00
|
||||||
|
9928 LEVEL .HS 00
|
||||||
|
9930 LENGTH .HS 00
|
||||||
|
9932 TAIL .HS 00
|
||||||
|
9934 HEAD .HS 00
|
||||||
|
9936 DX .HS 00
|
||||||
|
9938 DY .HS 00
|
||||||
|
9940 COUNT .HS 00
|
||||||
|
9942 BOXNUM .HS 00
|
||||||
|
9944 SCORE .HS 0000
|
||||||
|
9946 TEMP .HS 00
|
||||||
|
9948 TEMP2 .HS 00
|
||||||
|
9950 SCOUNT .HS 00
|
||||||
|
9952 SLEVEL .HS 00
|
||||||
|
9954 NCOUNT .HS 00
|
||||||
|
9956 TEMP3 .HS 00
|
||||||
|
9958 ARRAYX .BS 256
|
||||||
|
9960 ARRAYY .BS 256
|
||||||
|
9962 MUSICT .HS 161617171A1A1D
|
||||||
|
9964 .HS 1A1A1D1A1A1D16
|
||||||
|
9966 .HS 1617171A1A1D1A
|
||||||
|
9968 .HS 1A171716161617
|
||||||
|
9970 .HS 1A1D1A1D1A1D16
|
||||||
|
9972 .HS 171A1D1A1716
|
||||||
|
9974 KEYSTR .HS CDCCC9CA
|
||||||
|
9976 LEVELT .HS 78828C96BE
|
Loading…
Reference in New Issue
Block a user