0100 JSR SETFLG0 ;RETURN 0110 KKK1 RTS 0120 ; 0130 UPLEFT0 JSR FIG3 ;SHAPE... 0140 LDA #1 0150 STA MOVFLG 0160 JSR LEFT0 ;MOVE... 0170 JSR UP0 0180 JSR UP0 0190 DEC COUNT1 ;DONE??? 0200 BNE LLL1 0210 JSR SETFLG0 ;SETFLG... 0220 LLL1 RTS 0230 ; 0240 UPRIGHT0 JSR FIG4 ;SHAPE... 0250 LDA #1 0260 STA MOVFLG 0270 JSR RIGHT0 ;MOVE... 0280 JSR UP0 0290 JSR UP0 0300 DEC COUNT1 ;DONE??? 0310 BNE MMM1 0320 JSR SETFLG0 0330 MMM1 RTS 0340 ; 0350 LEFT0 DEC PXPOS ;MOVE MAN LEFT 0360 LDA PXPOS 0370 STA HPOSP0 0380 RTS 0390 ; 0400 RIGHT0 INC PXPOS ;MOVE MAN RIGHT 0410 LDA PXPOS 0420 STA HPOSP0 0430 RTS 0440 ; 0450 UP0 LDY PYPOS ;MOVE MAN UP 0460 LDX #$00 0470 NNN1 LDA PLAY0,Y 0480 STA PLAY0-1,Y 0490 INX 0500 INY 0510 CPX #17 0520 BNE NNN1 0530 DEC PYPOS 0540 RTS 0550 ; 0560 DOWN0 LDX #0 ;MOVE MAN DOWN 0570 CLC 0580 LDA PYPOS 0590 ADC #14 0600 TAY 0610 OOO1 LDA PLAY0,Y 0620 STA PLAY0+1,Y 0630 DEY 0640 INX 0650 CPX #17 0660 BNE OOO1 0670 INC PYPOS 0680 RTS 0690 ; 0700 ;ROCK 1 MOVEMENT 0710 ; 0720 DNLEFT1 JSR LEFT1 ;MOVE LEFT, 0730 JSR DOWN1 ;MOVE DOWN... 0740 JSR DOWN1 ;2 TIMES 0750 DEC COUNT2 0760 BNE PPP1 0770 LDX #0 0780 JSR SETFLG ;SET UP SOUND 0790 PPP1 RTS 0800 ; 0810 DNRIGHT1 JSR RIGHT1 ;MOVE RIGHT, 0820 JSR DOWN1 ;MOVE DOWN... 0830 JSR DOWN1 ;2 TIMES 0840 DEC COUNT2 0850 BNE QQQ1 0860 LDX #0 0870 JSR SETFLG ;SET UP SOUND 0880 QQQ1 RTS 0890 ; 0900 LEFT1 DEC XPOSP1 ;MOVE ROCK 1 LEFT 0910 LDA XPOSP1 0920 STA HPOSP1 0930 RTS 0940 ; 0950 RIGHT1 INC XPOSP1 ;MOVE ROCK 1 RIGHT 0960 LDA XPOSP1 0970 STA HPOSP1 0980 RTS 0990 ; 1000 ; 1010 DOWN1 LDX #0 ;MOVE PLAYER 1 DOWN 1020 CLC 1030 LDA YPOSP1 1040 ADC #8 1050 TAY 1060 RRR1 LDA PLAY1,Y 1070 STA PLAY1+1,Y 1080 DEY 1090 INX 1100 CPX #10 1110 BNE RRR1 1120 INC YPOSP1 1130 RTS 1140 ; 1150 ; 1160 ;ROCK 2 MOVEMENT 1170 ; 1180 ;SAME AS ROCK 1, BUT FOR ROCK 2 1190 ; 1200 DNLEFT2 JSR LEFT2 1210 JSR DOWN2 1220 JSR DOWN2 1230 DEC COUNT3 1240 BNE SSS1 1250 LDX #1 1260 JSR SETFLG 1270 SSS1 RTS 1280 ; 1290 DNRIGHT2 JSR RIGHT2 1300 JSR DOWN2 1310 JSR DOWN2 1320 DEC COUNT3 1330 BNE TTT1 1340 LDX #1 1350 JSR SETFLG 1360 TTT1 RTS 1370 ; 1380 LEFT2 DEC XPOSP2 1390 LDA XPOSP2 1400 STA HPOSP2 1410 RTS 1420 ; 1430 RIGHT2 INC XPOSP2 1440 LDA XPOSP2 1450 STA HPOSP2 1460 RTS 1470 ; 1480 DOWN2 LDX #0 1490 CLC 1500 LDA YPOSP2 1510 ADC ADDNUM 1520 TAY 1530 UUU1 LDA PLAY2,Y 1540 STA PLAY2+1,Y 1550 DEY 1560 INX 1570 CPX LENGTH 1580 BNE UUU1 1590 INC YPOSP2 1600 RTS 1610 ; 1620 ;ROCK 3 MOVEMENT 1630 ; 1640 ;SAME AS ROCK 1, BUT FOR ROCK 3 1650 ; 1660 DNLEFT3 JSR LEFT3 1670 JSR DOWN3 1680 JSR DOWN3 1690 DEC COUNT4 1700 BNE VVV1 1710 LDX #2 1720 JSR SETFLG 1730 VVV1 RTS 1740 ; 1750 DNRIGHT3 JSR RIGHT3 1760 JSR DOWN3 1770 JSR DOWN3 1780 DEC COUNT4 1790 BNE WWW1 1800 LDX #2 1810 JSR SETFLG 1820 WWW1 RTS 1830 ; 1840 UPLEFT3 JSR LEFT3 1850 JSR UP3 1860 JSR UP3 1870 DEC COUNT4 1880 BNE XXX1 1890 LDX #2 1900 JSR SETFLG 1910 XXX1 RTS 1920 ; 1930 UPRIGHT3 JSR RIGHT3 1940 JSR UP3 1950 JSR UP3 1960 DEC COUNT4 1970 BNE YYY1 1980 LDX #2 1990 JSR SETFLG 2000 YYY1 RTS 2010 ; 2020 LEFT3 DEC XPOSP3 2030 LDA XPOSP3 2040 STA HPOSP3 2050 RTS 2060 ; 2070 RIGHT3 INC XPOSP3 2080 LDA XPOSP3 2090 STA HPOSP3 2100 RTS 2110 ; 2120 UP3 LDY YPOSP3 2130 LDX #0 2140 ZZZ1 LDA PLAY3,Y 2150 STA PLAY3-1,Y 2160 INY 2170 INX 2180 CPX LENGTH3 2190 BNE ZZZ1 2200 DEC YPOSP3 2210 RTS 2220 ; 2230 DOWN3 LDX #0 2240 CLC 2250 LDA YPOSP3 2260 ADC ADDNUM3 2270 TAY 2280 AAAA1 LDA PLAY3,Y 2290 STA PLAY3+1,Y 2300 DEY 2310 INX 2320 CPX LENGTH3 2330 BNE AAAA1 2340 INC YPOSP3 2350 RTS 2360 ; 2370 SETFLG0 LDA #1 ;SET FLG 2380 STA SO1FLG 2390 STA MOVFLG 2400 LDA #$AF 2410 STA PITCH1 ;PITCH... 2420 LDA DIRECT 2430 STA DIRFLG 2440 RTS 2450 ; 2460 SETFLG LDA #1 2470 STA SO2FLG,X 2480 LDA #$AF 2490 STA PITCH2,X ;PITCH... 2500 RTS 2510 ; 2520 PLAYFLD0 LDA # PF0 2550 DOSQUARE STA FILE+1 2560 JSR ADD25 ;ADD 25 POINTS 2570 JSR PCUBPOS ;GET CUBE POS 2580 JSR CHANGE ;CHANGE COLOR 2590 RTS 2600 ; 2610 PLAYFLD1 LDA # PF1 2640 JMP DOSQUARE ;DO MISC STUFF 2650 ; 2660 PLAYFLD2 LDA # PF2 2690 JMP DOSQUARE ;DO MISC STUFF 2700 ; 2710 PLAYFLD3 LDA # PF3 2740 JMP DOSQUARE ;ETC. 2750 ; 2760 CLEAR LDA #$01 ;RESET COLLISIONS 2770 STA HITCLR 2780 RTS 2790 ; 2800 TURNOFF LDA #$00 ;NO AUDIO... 2810 STA AUDC2 ;ON CHANNELS... 2820 STA AUDF2 ;2, 3, 4! 2830 STA AUDC3 2840 STA AUDF3 2850 STA AUDC4 2860 STA AUDF4 2870 RTS 2880 ; 2890 PL.PL LDA P0PL ;DID MAN... 2900 CMP #1 ;HIT PLAYER 0? 2910 BCC BBBB1 ;NO! 2920 CMP #4 ;HIT PLAYER 2? 2930 BNE BBBB2 ;NO! 2940 LDA GRNFLG ;GREEN MAN ACTIVE? 2950 CMP #1 2960 BNE BBBB2 ;NO! 2970 JSR HITGRN ;CLOBBER GREEN MAN! 2980 LDA #2 ;AWARD 200 POINTS! 2990 STA SUM 3000 JSR ADD200 3010 JMP BBBB1 3020 BBBB2 LDA P0PL ;DID MAN HIT... 3030 CMP #8 ;PLAYER 3? 3040 BNE BBBB8 ;NO! 3050 LDA GRGFLG ;GEORGE ACTIVE? 3060 CMP #1 3070 BEQ BBBB1 ;YES! 3080 BBBB8 LDA WARN1 3090 CMP #4 3100 BEQ BBBB7 3110 INC WARN1 3120 RTS 3130 BBBB7 LDA #2 ;DEATH DUE TO... 3140 STA BACK ;GEORGE! 3150 RTS 3160 BBBB1 LDA #0 3170 STA WARN1 3180 LDA GRGFLG 3190 CMP #1 3200 BNE RET 3210 LDA P3PL 3220 CMP #1 3230 BNE BBBB5 3240 LDA WARN 3250 CMP #4 3260 BEQ BBBB6 3270 INC WARN 3280 RTS 3290 BBBB6 LDA #2 3300 STA BACK 3310 RTS 3320 BBBB5 LDA #0 3330 STA WARN 3340 LDA P3PL 3350 CMP #2 3360 BCC RET 3370 CMP #4 3380 BNE RESET 3390 LDA GRNFLG 3400 CMP #1 3410 BEQ RET 3420 RESET JSR ERASEGRG ;ERASE GEORGE 3430 LDA #0 ;CLEAR GEORGE... 3440 STA GRGFLG ;VARIABLES 3450 STA SO4FLG 3460 STA FNGRDRP 3470 STA GRGDRP 3480 STA OUTFLG 3490 STA GRGMOV 3500 LDA #10 3510 STA SCOL 3520 STA SROW 3530 LDA #8 3540 STA COUNT4 3550 LDA #45 3560 STA YPOSP3 3570 LDA #132 3580 STA XPOSP3 3590 STA HPOSP3 3600 RET RTS 3610 ; 3620 ; 3630 CHECK LDA NUMSQ ;GET SQUARES HIT 3640 CMP #28 ;ALL DONE? 3650 BNE CCCC1 ;NO! 3660 LDA #1 ;ROUND COMPLETED! 3670 STA BACK 3680 CCCC1 RTS 3690 ; 3700 ;--------------- 3710 ;SCORE ROUTINES 3720 ;--------------- 3730 ADD25 LDY #5 ;ADD 25 POINTS 3740 CLC ;TO SCORE 3750 LDA SCORE,Y 3760 ADC #5 3770 CMP #$1A 3780 BNE DDDD1 3790 LDA #$10 3800 STA DISP,Y 3810 STA SCORE,Y 3820 DEY 3830 LDA SCORE,Y 3840 CLC 3850 ADC #1 3860 STA SCORE,Y 3870 JMP DDDD2 3880 DDDD1 LDA #$15 3890 STA DISP,Y 3900 STA SCORE,Y 3910 DEY 3920 DDDD2 LDA SCORE,Y 3930 CLC 3940 ADC #2 3950 CMP #$1A 3960 BEQ DDDD3 3970 STA DISP,Y 3980 STA SCORE,Y 3990 RTS 4000 DDDD3 LDA #$10 4010 STA DISP,Y 4020 STA SCORE,Y 4030 DEY 4040 LDA SCORE,Y 4050 CLC 4060 ADC #1 4070 CMP #$1A 4080 BEQ DDDD3 4090 STA DISP,Y 4100 STA SCORE,Y 4110 RTS 4120 ; 4130 ADD200 LDY #3 ;ADD SUM * 100... 4140 CLC ;TO SCORE 4150 LDA SCORE,Y 4160 ADC SUM 4170 CMP #$1A 4180 BCC EEEE1 4190 EEEE2 SEC 4200 SBC #$1A 4210 STA ADD 4220 EEEE3 CLC 4230 LDA #$10 4240 ADC ADD 4250 STA DISP,Y 4260 STA SCORE,Y 4270 LDA #0 4280 STA ADD 4290 DEY 4300 CLC 4310 LDA SCORE,Y 4320 ADC #1 4330 CMP #$1A 4340 BEQ EEEE3 4350 EEEE1 STA DISP,Y 4360 STA SCORE,Y 4370 RTS 4380 ; 4390 ;CHARACTER IMAGES 4400 ;(MAN, GREEN MAN, GEORGE, ROCKS) 4410 ; 4420 FIG1DAT .BYTE 12,30,63,43,43,63 4430 .BYTE 43,55,30,30,18,18,27 4440 .BYTE 54,108,72 4450 FIG2DAT .BYTE 48,120,252,212,212 4460 .BYTE 252,212,236,120,120,72 4470 .BYTE 72,216,108,54,18 4480 FIG3DAT .BYTE 14,31,55,55,31,15 4490 .BYTE 31,31,14,10,46,62,27 4500 .BYTE 13,4 4510 FIG4DAT .BYTE 112,248,236,236,248 4520 .BYTE 240,248,248,112,80,116 4530 .BYTE 124,216,176,32 4540 GRN1DAT .BYTE 160,80,40,60,126,106 4550 .BYTE 126,118,60,60,36,54 4560 GRN2DAT .BYTE 5,10,20,60,126,86 4570 .BYTE 126,110,60,60,36,108 4580 GRG0DAT .BYTE 12,30,30,255,43 4590 .BYTE 43,255,255,45,51,63 4600 .BYTE 30,18,18,27,54,108,0 4610 GRG1DAT .BYTE 48,120,120,255,212,212 4620 .BYTE 255,255,180,204,252,120 4630 .BYTE 72,72,216,108,54,0 4640 GRG2DAT .BYTE 12,30,30,255,47 4650 .BYTE 47,255,127,47,31,63 4660 .BYTE 30,18,18,126,54,27,0 4670 GRG3DAT .BYTE 48,120,120,255,244 4680 .BYTE 244,255,254,244,248,252 4690 .BYTE 120,72,72,126,108,216,0 4700 BALDAT .BYTE 24,60,126,255,255 4710 .BYTE 255,126,60,24,0 4720 ; 4730 ;SQUARES !!! 4740 ; 4750 PF0 .BYTE $03,$04 4760 PF1 .BYTE $43,$44 4770 PF2 .BYTE $83,$84 4780 PF3 .BYTE $C3,$C4 4790 ; 4800 ;DISPLAY LIST 4810 ; 4820 DLIST .BYTE $70,$70,$70,$46 4830 .WORD DISP 4840 .BYTE 6,6,$86,6,$86,$86,$86,6,6,6 4850 .BYTE 6,6,6,6,6,6,6,6,6,6 4860 .BYTE 6,6,6,$41 4870 .WORD DLIST 4880 RDYMSG .SBYTE +$80,"READY %%" 4890 LVMSG .SBYTE "LeVeL" 4900 ENDMSG .SBYTE +$80,"GAME OVER" 4910 CHGMSG .SBYTE "CHANGE" 4920 LVLMSG .SBYTE +$80,"level:" 4930 RNDMSG .SBYTE +$80,"round:" 4940 BONMSG .SBYTE +$80,"BONUS" 4950 .SBYTE " 1000" 4960 TITLE .SBYTE " AVALANCHE " 4970 AUTHOR .SBYTE "BY TOMMY BENNETT" 4980 MAGMSG .SBYTE +$80,"ANALOG COMPUTING" 4990 ; 5000 ;MISC. DATA 5010 ; 5020 R1SET .BYTE 0,15,90,4,156 5030 R2SET .BYTE 0,134,246,12,146 5040 R3SET .BYTE 0,26,164,118,84 5050 R4SET .BYTE 0,196,66,34,102 5060 ; 5070 ;CHAR SET DATA 5080 ; 5090 NEWCHR .BYTE 3,15,63,127,63,15,3,0 5100 .BYTE 192,240,252,254,252,240,192,0 5110 .BYTE 0,6,12,24,48,0,96,0 5120 .BYTE 12,30,63,43,63,30,18,54 5130 .BYTE 8,12,126,127,126,12,8,0 5140 .BYTE 16,48,126,254,126,48,16,0 5150 ; 5160 ;JUMPING PADS 5170 ; 5180 PADATA .BYTE 3,4,3,4,3,4,3,4 5190 .BYTE 3,4,3,4,3,4 5200 ; 5210 ;MUSIC DATA 5220 ; 5230 NOTE .BYTE 60,47,0,47,60,72,60,0 5240 .BYTE 72,64,72,64,72,64,0,81 5250 .BYTE 72,81,72,81,72 5260 DUR .BYTE 11,14,7,11,7,7,7,7 5270 .BYTE 7,7,7,7,7,7,7,7 5280 .BYTE 7,7,7,7,7