1 *= 8192 2 .D !ML176 3 JMP START 5 NAME1 .BYTE "CH.BLDR" 6 NAME2 .BYTE "SC.SCRN" 7 NAME3 .BYTE "CO.SCRN" 8 NAME4 .BYTE "MP.LV00" 9 NAME5 .BYTE "DT.COLR" 12 START LDA #15:STA 54296 14 LDA #$31:STA 788:LDA #$EA:STA 789 20 LDA #0 24 JSR $FE18:JSR SETRND 40 LDX #NAME1 44 JSR LOAD 50 LDX #NAME2 54 JSR LOAD 60 LDX #NAME3 64 JSR LOAD 65 LDX #NAME5 67 JSR LOAD 69 LDA 788:LDX 789:STA EXIT+1:STX EXIT+2 70 LDA #SLIDE:SEI:STA 788:STX 789:CLI 78 JMP TITLE 80 LOAD LDA 53265:STA 2 82 LDA #0:STA 53265 84 LDA #7:JSR $FDF9 86 LDA #8:TAX:LDY #1:JSR $FE00 87 LDA #0:JSR $F49E 88 LDA 2:STA 53265:RTS 100 FALL LDA #$1D:STA 254 102 LDA #$FF:STA 253 104 L104 LDX #0:LDA (253,X) 105 CMP #68:BEQ L118 106 CMP #72:BEQ L118 107 CMP #65:BEQ L118 108 CMP #67:BEQ L118 109 L108 LDA 253:SEC:SBC #1:STA 253 110 LDA 254:SBC #0:STA 254:LDA #0:STA 3 112 LDA 254:CMP #$11:BEQ L116 114 JMP L104 116 L116 JMP SOUNDS 118 L118 LDA 253:CLC:ADC #64:STA 36 120 LDA 254:ADC #0:STA 37 122 LDX #0:LDA (36,X) 123 CMP #72:BEQ L144 124 CMP #32:BEQ L150 125 CMP #68:BEQ L144 126 CMP #88:BEQ L146 127 LDA 36:CLC:ADC #1:STA 36 128 LDA 37:ADC #0:STA 37 130 LDX #0:LDA (36,X) 131 CMP #72:BEQ L144 132 CMP #32:BEQ L147 133 CMP #68:BEQ L144 134 CMP #88:BEQ L146 135 L135 LDA 36:SEC:SBC #2:STA 36 136 LDA 37:SBC #0:STA 37 138 LDX #0:LDA (36,X) 139 CMP #72:BEQ L144 140 CMP #88:BEQ L146 141 CMP #32:BEQ L148 142 CMP #68:BEQ L144 143 L142 JMP L108 144 L144 JSR EXPLODE:JMP L108 146 L146 JSR ENCHANT:JMP L108 147 L147 JSR FALLDI:CMP #1:BNE L156:JMP L150 148 L148 JSR FALLDI:CMP #1:BNE L142:LDA #1:STA 3:JMP L150 149 L149 JMP L108 150 L150 LDX #0:LDA (253,X):STA (36,X):CMP #65:BNE L151:STA 30 151 L151 CMP #67:BNE L152:STA 31 152 L152 LDA #32:STA (253,X) 154 LDA 3:CMP #1:BEQ L155:JMP L108 155 L155 LDA 253:SEC:SBC #1:STA 253:LDA 254:SBC #0:STA 254:JMP L108 156 L156 LDA 36:CLC:ADC #64:STA 36:LDA 37:ADC #0:STA 37:JMP L135 160 SLIDE LDA 2560:CLC:ASL:ADC #0:CLC:ASL:ADC #0:STA 14 161 LDA 2561:CLC:ASL:ADC #0:CLC:ASL:ADC #0:STA 2560:STA 2608:JSR SCR:STA 2608,Y 162 LDA 2562:CLC:ASL:ADC #0:CLC:ASL:ADC #0:STA 2561:STA 2609:JSR SCR:STA 2609,Y 163 LDA 2563:CLC:ASL:ADC #0:CLC:ASL:ADC #0:STA 2562:STA 2610:JSR SCR:STA 2610,Y 164 LDA 2564:CLC:ASL:ADC #0:CLC:ASL:ADC #0:STA 2563:STA 2611:JSR SCR:STA 2611,Y 165 LDA 2565:CLC:ASL:ADC #0:CLC:ASL:ADC #0:STA 2564:STA 2612:JSR SCR:STA 2612,Y 166 LDA 2566:CLC:ASL:ADC #0:CLC:ASL:ADC #0:STA 2565:STA 2613:JSR SCR:STA 2613,Y 167 LDA 2567:CLC:ASL:ADC #0:CLC:ASL:ADC #0:STA 2566:STA 2614:JSR SCR:STA 2614,Y 168 LDA 14:STA 2567:STA 2615:JSR SCR:STA 2615,Y:JMP L172 169 SCR LDY #0:LDX 34:CPX #1:BEQ L170:LDY #8 170 L170 STY 35:LDX 35:RTS 172 L172 LDA 2411:CLC:ASL:ADC #0:ASL:ADC #0:STA 2411:LDA #255:SBC 2411:STA 3435 174 JSR AMOEBA 175 EXIT JMP $EA31 200 MAP LDA 7:LDX 8:CLC 202 ADC #$00 204 STA $4 206 LDA #$10 208 ADC #$0 210 STA $5 212 CPX #$0 214 BEQ L234 216 L216 LDA $4 218 CLC 220 ADC #$40 222 STA $4 224 LDA $5 226 ADC #$0 228 STA $5 230 DEX 232 BNE L216 234 L234 LDA #$29 236 STA $2 238 LDA #$4 240 STA $3 242 LDX #$10 244 L244 LDY #$18 246 L246 LDA ($4),Y 248 STA ($2),Y 250 DEY 252 BPL L246 254 LDA $2 256 CLC 258 ADC #$28 260 STA $2 262 LDA $3 264 ADC #$0 266 STA $3 268 LDA $4 270 CLC 272 ADC #$40 274 STA $4 276 LDA $5 278 ADC #$0 280 STA $5 282 DEX 284 BPL L244 286 RTS 290 SCORE .BYTE "000000" 292 MEN .BYTE "00" 294 LEVEL .BYTE "00" 296 GEMS .BYTE "00" 298 TIME .BYTE "00000" 300 L300 LDA #48:LDX #0:SEI:LDA #0:STA 41 302 L302 STA SCORE,X 304 INX:CPX #17:BNE L302 310 LDA #53:STA MEN+1 312 LDA #49:STA LEVEL+1:CLI 320 LOADLEV LDA LEVEL:STA NAME4+5:LDA #0:STA 53280 322 LDA LEVEL+1:STA NAME4+6 324 LDY #>NAME4:LDX #NAME4:JSR LOAD 702 L701 LDA #1:STA 34:LDA #8:STA 7:LDA #8:STA 8:JSR MAP 703 JSR WAIT:LDA 2:CMP #1:BNE L710:JMP L300 710 L710 JSR DOWN 712 JSR WAIT:LDA 2:CMP #1:BNE L720:JMP L300 720 L720 JSR DOWN 724 JSR WAIT:LDA 2:CMP #1:BNE L701:JMP L300 730 DOWN LDA 8:CLC:ADC #15:STA 8:JSR MAP:RTS 740 UP LDA 8:SEC:SBC #15:STA 8:JSR MAP:RTS 750 WAIT2 LDX #15 752 L752 STX 36:JSR FALL:JSR MAP:LDX 36 753 LDA #255:SEC:SBC 56320:AND #16:CMP #16:BNE L754:RTS 754 L754 DEX:CPX #0:BNE L752 756 RTS 760 WAIT LDX #8 762 L762 STX 30:JSR DELAY 766 LDA #255:SEC:SBC 56320 768 STA 2:AND #16:CMP #16:BNE L770 769 LDA #1:STA 2:RTS 770 L770 JSR $F13E 772 CMP #133:BEQ L790 780 L780 LDX 30:DEX:CPX #0:BNE L762:RTS 790 L790 JMP START 800 CHEATER JSR $F13E:CMP #0:BEQ L804 802 JMP L810 804 L804 JMP MOVE 810 L810 LDX #0:STX 198:STA 2:CMP #14:BEQ CHEAT1 812 CMP #7:BEQ CHEAT2 813 CMP #11:BEQ CHEAT6 814 CMP #9:BEQ CHEAT3 815 CMP #32:BEQ CHEAT5 816 CMP #133:BEQ CHEAT4 818 JMP L804 820 CHEAT1 JMP L424 822 CHEAT2 JMP L414 824 CHEAT3 JMP TI100 826 CHEAT6 JMP PLUSMEN 828 CHEAT4 JMP TITLE 829 CHEAT5 JMP PAUSE 830 TI100 LDA #49:STA TIME+1:JMP L804 840 SNDROCK LDA #0:STA 54272:LDA #10:STA 54273 842 LDA #31:STA 54277:LDA #5:STA 54278 844 LDA #129:STA 54276 846 LDA #128:STA 54276 848 RTS 850 SNDGEM LDA #0:STA 54279:LDA 53266:STA 54280 852 LDA #31:STA 54284:LDA #5:STA 54285:LDA 53266:STA 54282 854 LDA #65:STA 54283 856 L856 LDA #64:STA 54283 858 RTS 860 SOUNDS LDA 30:CMP #0:BNE SOUNDR 862 L862 LDA 31:CMP #0:BNE SOUNDG 864 RTS 870 SOUNDR LDA #0:STA 30:JSR SNDROCK:JMP L862 872 SOUNDG LDA #0:STA 31:JMP SNDGEM 880 PAUSE INC 53280:JSR $F13E:CMP #0:BEQ PAUSE 881 LDA #0:STA 53280:JMP MOVE 882 PLUSMEN LDA MEN+1:CLC:ADC #1:STA MEN+1:CMP #58:BEQ L884 883 JMP MOVE 884 L884 LDA #48:STA MEN+1:LDA MEN:CLC:ADC #1:STA MEN:CMP #58:BEQ L886 885 JMP MOVE 886 L886 LDA #57:STA MEN:STA MEN+1:JMP MOVE 900 EXPLODE STA 32:LDX #67:CMP #72:BNE L902:LDX #32 902 L902 JSR BANG:LDA 253:SEC:SBC #65:STA 253:LDA 254:SBC #0:STA 254 904 TXA:LDX #0:STA (253,X):TAX 906 LDA 253:CLC:ADC #1:STA 253:LDA 254:ADC #0:STA 254 908 TXA:LDX #0:STA (253,X):TAX 910 LDA 253:CLC:ADC #1:STA 253:LDA 254:ADC #0:STA 254 912 TXA:LDX #0:STA (253,X):TAX 914 LDA 253:CLC:ADC #62:STA 253:LDA 254:ADC #0:STA 254 916 TXA:LDX #0:STA (253,X):TAX 918 LDA 253:CLC:ADC #1:STA 253:LDA 254:ADC #0:STA 254 920 TXA:LDX #0:STA (253,X):TAX 922 LDA 253:CLC:ADC #1:STA 253:LDA 254:ADC #0:STA 254 924 TXA:LDX #0:STA (253,X):TAX 926 LDA 253:CLC:ADC #62:STA 253:LDA 254:ADC #0:STA 254 928 TXA:LDX #0:STA (253,X):TAX 930 LDA 253:CLC:ADC #1:STA 253:LDA 254:ADC #0:STA 254 932 TXA:LDX #0:STA (253,X):TAX 934 LDA 253:CLC:ADC #1:STA 253:LDA 254:ADC #0:STA 254 936 TXA:LDX #0:STA (253,X):TAX 938 LDA 253:SEC:SBC #65:STA 253:LDA 254:SBC #0:STA 254 939 RTS 940 BANG LDA #0:STA 54272:LDA #50:STA 54273:LDA #31:STA 54277:LDA #9:STA 54278 942 LDA #129:STA 54276:LDA #128:STA 54276:RTS 944 STOPSCR LDA GEMS:CMP #48:BNE L946:LDA GEMS+1:CMP #48:BNE L946 945 LDA 34:CMP #1:BEQ L946:LDA #1:STA 53281:JSR BANG:JSR DLY1 946 LDA #11:STA 53281:LDA #1:STA 34 947 L946 RTS 950 ENCHANT LDX #0:LDA (253,X):STA 37 952 CMP #65:BNE L956 954 LDA #67:JMP L958 956 L956 LDA #65 958 L958 STA 38 960 LDA 253:CLC:ADC #128:STA 253:LDA 254:ADC #0:STA 254 962 LDX #0:LDA (253,X) 964 CMP #32:BEQ L970 968 JMP L976 970 L970 LDA 38:LDX #0:STA (253,X) 972 L972 LDA 253:SEC:SBC #128:STA 253:LDA 254:SBC #0:STA 254 974 LDX #0:LDA #32:STA (253,X):RTS 976 L976 LDA 253:SEC:SBC #128:STA 253:LDA 254:SBC #0:STA 254:RTS 980 TRUP LDA #16:STA 3:LDA #0:STA 2:STA 4:STA 53265 982 LDA #192:STA 5 984 L984 LDX #0:LDA (2,X):STA (4,X):STA 53280 986 LDA 2:CLC:ADC #1:STA 2:LDA 3:ADC #0:STA 3 988 LDA 4:CLC:ADC #1:STA 4:LDA 5:ADC #0:STA 5 989 LDA 3:CMP #32:BNE L984:LDA #27:STA 53265:STX 53280:JSR SIDE:RTS 990 TRDN LDA #16:STA 3:LDA #0:STA 2:STA 4:STA 53265 992 LDA #192:STA 5 994 L994 LDX #0:LDA (4,X):STA (2,X):STA 53280 996 LDA 2:CLC:ADC #1:STA 2:LDA 3:ADC #0:STA 3 998 LDA 4:CLC:ADC #1:STA 4:LDA 5:ADC #0:STA 5 999 LDA 3:CMP #32:BNE L994:LDA #27:STA 53265:STX 53280:JSR SIDE:RTS 1000 DLY1 LDX #15:STX 2 1002 L1002 JSR $EEB3:JSR $EEB3:LDX 2:DEX:STX 2:CPX #0:BNE L1002 1004 RTS 1010 FALLDI LDA 36:SEC:SBC #64:STA 36:LDA 37:SBC #0:STA 37 1012 LDX #0:LDA (36,X):CMP #32:BEQ L1014:LDX #0:JMP L1018 1014 L1014 LDX #1 1018 L1018 TXA:RTS 1020 CHECK LDX #0:LDA (12,X) 1021 CMP #32:BNE L1022:JMP L1030 1022 L1022 CMP #65:BNE L1024:JMP DIE 1024 L1024 CMP #67:BNE L1026:JMP DIE 1026 L1026 CMP #68:BNE L1028:JMP DIE 1028 L1028 CMP #72:BNE L1030:JMP DIE 1030 L1030 RTS 1032 SETRND LDA #255:STA 54287:LDA #128:STA 54290:RTS 1040 AMOEBA LDA 41:CMP #1:BNE L1041:RTS 1041 L1041 LDA 54299:STA 39:LDA 54299:CMP #18:BCC L1041 1042 L1042 CMP #30:BCC L1044:SEC:SBC #16:JMP L1042 1044 L1044 STA 40 1046 LDX #0:LDA (39,X):CMP #87:BNE L1072 1048 LDA 39:SEC:SBC #64:STA 39:LDA 40:SBC #0:STA 40:LDA (39,X) 1050 CMP #32:BEQ L1074 1052 CMP #84:BEQ L1074 1054 LDA 39:CLC:ADC #63:STA 39:LDA 40:ADC #0:STA 40:LDA (39,X) 1056 CMP #32:BEQ L1074 1058 CMP #84:BEQ L1074 1060 LDA 39:CLC:ADC #2:STA 39:LDA 40:ADC #0:STA 40:LDX #0:LDA (39,X) 1062 CMP #32:BEQ L1074 1064 CMP #84:BEQ L1074 1066 LDA 39:CLC:ADC #63:STA 39:LDA 40:ADC #0:STA 40:LDX #0:LDA (39,X) 1068 CMP #32:BEQ L1074 1070 CMP #84:BEQ L1074 1072 L1072 RTS 1074 L1074 LDA #87:STA (39,X):RTS 9999 .END !TEXT176