00100 * COLOR MODE TEST 00101 * LAUREN, 2026 1AA0 12 00170 ZSTART NOP 1AA1 CE 1BA3 00180 LDU #USTACK 1AA4 33 C8 1F 00190 LEAU 31,U 1AA7 108E 1BC3 00200 LDY #PBLOCK 1AAB CC 3400 00210 LDD #$3400 1AAE ED A4 00220 STD ,Y 1AB0 BD 1BEC 00230 JSR MAIN 1AB3 3F 00280 SWI 01000 * CVRAM: CLEAR VRAM 1AB4 34 10 01015 CVRAM PSHS X 1AB6 BE 1B96 01020 LDX VRAM 1AB9 6F 80 01025 CVRAM1 CLR ,X+ 1ABB 8C 3FFF 01030 CMPX #$3FFF TOP OF RAM 1ABE 26 F9 01040 BNE CVRAM1 1AC0 35 10 01045 PULS X 1AC2 39 01050 RTS 01055 * SET SAM REGS. START ADDR IN X, 01056 * SIZE OF VAL IN A, VAL IN B 1AC3 34 36 01100 SETSAM PSHS X,Y,B,A 1AC5 B7 1BCD 01110 STA TMP8A 1AC8 4F 01120 SETSA1 CLRA 1AC9 54 01130 LSRB 1ACA 24 01 01140 BCC SETSA2 1ACC 4C 01150 INCA 1ACD 31 86 01160 SETSA2 LEAY A,X 1ACF A7 A4 01170 STA ,Y 1AD1 30 02 01180 LEAX 2,X 1AD3 7A 1BCD 01190 DEC TMP8A 1AD6 27 02 01200 BEQ SETSA3 1AD8 20 EE 01210 BRA SETSA1 1ADA 35 36 01220 SETSA3 PULS A,B,Y,X 1ADC 39 01230 RTS 01900 * BLIT: DRAW A SPRITE TO SCREEN 01910 * SPRITE ADDR IN Y 01920 * USES VARS DRAWX,DRAWY,BLITW,BLITH 1ADD 34 36 01930 BLIT PSHS Y,X,B,A 1ADF B6 1B99 01940 LDA DRAWX 1AE2 F6 1B9A 01950 LDB DRAWY 1AE5 B7 1B9D 01960 STA TMPX STORE ORIG X 1AE8 F7 1B9E 01970 STB TMPY STORE ORIG Y 1AEB EC A1 01980 LDD ,Y++ GET W AND H 1AED B7 1B9B 01990 STA BLITW 1AF0 F7 1B9C 02000 STB BLITH 1AF3 A6 A0 02010 BLIT1 LDA ,Y+ LOAD A BYTE 1AF5 1F 89 02020 TFR A,B 1AF7 84 07 02030 ANDA #7 COLOR VALUE 1AF9 B7 1BCE 02040 STA TMP8B SAVE COLOR FOR PSET 1AFC 54 02050 LSRB 1AFD 54 02060 LSRB 1AFE 54 02070 LSRB COUNT IN B 1AFF 5C 02080 INCB 1B00 B6 1BCE 02090 BLIT2 LDA TMP8B 1B03 BD 1B3C 02100 JSR PSET SET PIXEL 1B06 7C 1B99 02110 INC DRAWX 1B09 B6 1B99 02120 LDA DRAWX 1B0C B0 1B9D 02130 SUBA TMPX 1B0F B1 1B9B 02140 CMPA BLITW END OF ROW? 1B12 26 14 02150 BNE BLIT3 IF NOT... 1B14 B6 1B9D 02160 LDA TMPX OTHERWISE RESET X 1B17 B7 1B99 02170 STA DRAWX 1B1A 7C 1B9A 02180 INC DRAWY 1B1D B6 1B9A 02190 LDA DRAWY 1B20 B0 1B9E 02200 SUBA TMPY 1B23 B1 1B9C 02210 CMPA BLITH 1B26 27 05 02220 BEQ BLIT4 1B28 5A 02230 BLIT3 DECB 1B29 27 C8 02240 BEQ BLIT1 1B2B 20 D3 02250 BRA BLIT2 1B2D B6 1B9D 02260 BLIT4 LDA TMPX 1B30 B7 1B99 02270 STA DRAWX 1B33 B6 1B9E 02280 LDA TMPY 1B36 B7 1B9A 02290 STA DRAWY 1B39 35 36 02300 PULS A,B,X,Y 1B3B 39 02310 RTS 02700 * SET PIXEL AT DRAWX,DRAWY WITH COLOR IN A 1B3C 34 36 02710 PSET PSHS A,B,X,Y 1B3E 36 02 02720 PSHU A SAVE COLOR ON STACK 1B40 8D 1A 02730 BSR PIXADR 1B42 8D 33 02740 BSR PIXELM 1B44 37 04 02750 PULU B GET COLOR 1B46 36 02 02760 PSHU A SAVE EXPONENT 1B48 3D 02770 MUL 1B49 37 02 02780 PULU A 1B4B 36 04 02790 PSHU B 1B4D C6 03 02800 LDB #3 1B4F 3D 02810 MUL 1B50 53 02820 COMB 1B51 E4 84 02830 ANDB ,X 1B53 EA C4 02840 ORB ,U 1B55 E7 84 02850 STB ,X 1B57 37 04 02860 PULU B 1B59 35 36 02870 PULS Y,X,B,A 1B5B 39 02880 RTS 02900 * PIXADR: CALCULATE THE ADDRESS OF THE BYTE CONTAINING A GIVEN PIXEL 1B5C 34 06 02910 PIXADR PSHS A,B 1B5E B6 1B98 02920 LDA MODEW 1B61 F6 1B9A 02930 LDB DRAWY 1B64 3D 02940 MUL 1B65 1F 01 02950 TFR D,X 1B67 F6 1B99 02960 LDB DRAWX 1B6A 54 02970 LSRB 1B6B 54 02980 LSRB 1B6C 3A 02990 ABX 1B6D 1F 10 03000 TFR X,D 1B6F F3 1B96 03010 ADDD VRAM 1B72 1F 01 03020 TFR D,X 1B74 35 06 03030 PULS B,A 1B76 39 03040 RTS 03100 * PIXELM: RETURN ELEMENT NUM OF A PIXEL WITHIN ITS BYTE IN B 03110 * ALSO RETURNS CORRESPONDING EXPONENT IN A 1B77 34 10 03120 PIXELM PSHS X 1B79 86 FC 03130 LDA #$FC 1B7B B4 1B99 03140 ANDA DRAWX 1B7E B7 1BCD 03150 STA TMP8A 1B81 F6 1B99 03160 LDB DRAWX 1B84 F0 1BCD 03170 SUBB TMP8A 1B87 53 03180 COMB 1B88 C4 03 03190 ANDB #3 1B8A 30 8D 0011 03200 LEAX POW,PCR 1B8E 3A 03210 ABX 1B8F A6 84 03220 LDA ,X 1B91 35 10 03230 PULS X 1B93 39 03240 RTS 03300 * VARS ETC 1B94 12 03310 ZVARS NOP 1B95 00 03315 GOFF FCB $0 GRAPHICS OFF FLAG FOR DEBUG 1B96 03320 VRAM RMB 2 VRAM ADDR 1B98 03330 MODEW RMB 1 MODE WIDTH, BYTES 1B99 03340 DRAWX RMB 1 CURRENT DRAW XPOS 1B9A 03350 DRAWY RMB 1 CURRENT DRAW YPOS 1B9B 03360 BLITW RMB 1 1B9C 03370 BLITH RMB 1 1B9D 03380 TMPX RMB 1 1B9E 03390 TMPY RMB 1 1B9F 01 03400 POW FCB 1 EXPONENT TABLE 1BA0 04 03410 FCB 4 1BA1 10 03420 FCB 16 1BA2 40 03430 FCB 64 1BA3 03440 USTACK RMB 32 USER STACK 1BC3 03450 PBLOCK RMB 10 PARAM BLOC A000 03460 POLCAT EQU $A000 A002 03470 CHROUT EQU $A002 A00A 03480 JOYIN EQU $A00A 1BCD 03500 TMP8A RMB 1 8BIT SCRATCH 1BCE 03510 TMP8B RMB 1 8BIT SCRATCH 1BCF 03520 TMP16A RMB 2 16BIT SCRATCH 03530 * SPRITE DATA 03540 * SPRITE: BOMB 1BD1 07 03550 SPR015 FCB 7 1BD2 0B 03560 FCB 11 1BD3 0001 03570 FDB $0001 1BD5 0001 03580 FDB $0001 1BD7 2003 03590 FDB $2003 1BD9 2001 03600 FDB $2001 1BDB 0003 03610 FDB $0003 1BDD 2803 03620 FDB $2803 1BDF 2012 03630 FDB $2012 1BE1 1023 03640 FDB $1023 1BE3 008B 03650 FDB $008B 1BE5 010B 03660 FDB $010B 1BE7 0023 03670 FDB $0023 1BE9 1013 03680 FDB $1013 1BEB 08 03690 FCB $08 1BEC 12 05000 MAIN NOP 1BED 108E 1BD1 05010 LDY #SPR015 1BF1 86 14 05020 LDA #20 1BF3 B7 1B99 05030 STA DRAWX 1BF6 F7 1B9A 05040 STB DRAWY 1BF9 BD 1C3F 05060 JSR MODG1C 1BFC BD 1ADD 05070 JSR BLIT 1BFF BD 1D1F 05080 JSR WKEY 1C02 BD 1D28 05082 JSR CCHG 1C05 BD 1D1F 05084 JSR WKEY 1C08 BD 1C70 05100 JSR MODG2C 1C0B BD 1ADD 05110 JSR BLIT 1C0E BD 1D1F 05120 JSR WKEY 1C11 BD 1D28 05122 JSR CCHG 1C14 BD 1D1F 05124 JSR WKEY 1C17 BD 1AB4 05130 JSR CVRAM 1C1A BD 1CA1 05140 JSR MODG3C 1C1D BD 1ADD 05150 JSR BLIT 1C20 BD 1D1F 05160 JSR WKEY 1C23 BD 1D28 05162 JSR CCHG 1C26 BD 1D1F 05164 JSR WKEY 1C29 BD 1AB4 05170 JSR CVRAM 1C2C BD 1CD2 05180 JSR MODG6C 1C2F BD 1ADD 05190 JSR BLIT 1C32 BD 1D1F 05200 JSR WKEY 1C35 BD 1D28 05202 JSR CCHG 1C38 BD 1D1F 05204 JSR WKEY 1C3B BD 1D03 05210 JSR MODTXT 1C3E 39 05220 RTS 1C3F 34 16 10000 MODG1C PSHS X,B,A 1C41 CC 3C00 10002 LDD #$3C00 1C44 FD 1B96 10004 STD VRAM 1C47 BD 1AB4 10006 JSR CVRAM 1C4A 86 10 10010 LDA #16 1C4C B7 1B98 10020 STA MODEW 1C4F 8E FFC0 10030 LDX #$FFC0 MODE SELECT 1C52 86 03 10040 LDA #3 1C54 C6 01 10050 LDB #1 1C56 BD 1AC3 10060 JSR SETSAM 1C59 F6 FF22 10070 LDB $FF22 VDG CTRL REG 1C5C C4 07 10080 ANDB #7 1C5E CA 80 10090 ORB #128 1C60 F7 FF22 10100 STB $FF22 1C63 8E FFC6 10110 LDX #$FFC6 PAGE SEL 1C66 86 07 10120 LDA #7 1C68 C6 1E 10130 LDB #$1E 1C6A BD 1AC3 10140 JSR SETSAM 1C6D 35 16 10150 PULS A,B,X 1C6F 39 10160 RTS 1C70 34 16 10340 MODG2C PSHS X,B,A 1C72 CC 3800 10342 LDD #$3800 1C75 FD 1B96 10344 STD VRAM 1C78 BD 1AB4 10346 JSR CVRAM 1C7B 86 20 10350 LDA #32 1C7D B7 1B98 10360 STA MODEW 1C80 8E FFC0 10370 LDX #$FFC0 1C83 86 03 10380 LDA #3 1C85 C6 02 10390 LDB #2 1C87 BD 1AC3 10400 JSR SETSAM 1C8A F6 FF22 10410 LDB $FF22 1C8D C4 07 10420 ANDB #7 1C8F CA A0 10430 ORB #160 1C91 F7 FF22 10440 STB $FF22 1C94 8E FFC6 10450 LDX #$FFC6 1C97 86 07 10460 LDA #7 1C99 C6 1C 10470 LDB #$1C 1C9B BD 1AC3 10480 JSR SETSAM 1C9E 35 16 10490 PULS A,B,X 1CA0 39 10500 RTS 1CA1 34 16 10680 MODG3C PSHS X,B,A 1CA3 CC 3400 10682 LDD #$3400 1CA6 FD 1B96 10684 STD VRAM 1CA9 BD 1AB4 10686 JSR CVRAM 1CAC 86 20 10690 LDA #32 1CAE B7 1B98 10700 STA MODEW 1CB1 8E FFC0 10710 LDX #$FFC0 1CB4 86 03 10720 LDA #3 1CB6 C6 04 10730 LDB #4 1CB8 BD 1AC3 10740 JSR SETSAM 1CBB F6 FF22 10750 LDB $FF22 1CBE C4 07 10760 ANDB #7 1CC0 CA C0 10770 ORB #192 1CC2 F7 FF22 10780 STB $FF22 1CC5 8E FFC6 10790 LDX #$FFC6 1CC8 86 07 10800 LDA #7 1CCA C6 1A 10810 LDB #$1A 1CCC BD 1AC3 10820 JSR SETSAM 1CCF 35 16 10830 PULS A,B,X 1CD1 39 10840 RTS 1CD2 34 16 11020 MODG6C PSHS X,B,A 1CD4 CC 2800 11022 LDD #$2800 1CD7 FD 1B96 11024 STD VRAM 1CDA BD 1AB4 11026 JSR CVRAM 1CDD 86 20 11030 LDA #32 1CDF B7 1B98 11040 STA MODEW 1CE2 8E FFC0 11050 LDX #$FFC0 1CE5 86 03 11060 LDA #3 1CE7 C6 06 11070 LDB #6 1CE9 BD 1AC3 11080 JSR SETSAM 1CEC F6 FF22 11090 LDB $FF22 1CEF C4 07 11100 ANDB #7 1CF1 CA E0 11110 ORB #224 1CF3 F7 FF22 11120 STB $FF22 1CF6 8E FFC6 11130 LDX #$FFC6 1CF9 86 07 11140 LDA #7 1CFB C6 14 11150 LDB #$14 1CFD BD 1AC3 11160 JSR SETSAM 1D00 35 16 11170 PULS A,B,X 1D02 39 11180 RTS 1D03 34 16 11190 MODTXT PSHS X,B,A 1D05 8E FFC0 11200 LDX #$FFC0 1D08 86 03 11210 LDA #3 1D0A C6 00 11220 LDB #0 1D0C BD 1AC3 11230 JSR SETSAM 1D0F 7F FF22 11240 CLR $FF22 1D12 8E FFC6 11250 LDX #$FFC6 1D15 86 07 11260 LDA #7 1D17 C6 04 11270 LDB #4 1D19 BD 1AC3 11280 JSR SETSAM 1D1C 35 16 11290 PULS A,B,X 1D1E 39 11300 RTS 12000 * WAIT FOR KEYPRESS 1D1F AD 9F A000 12010 WKEY JSR [POLCAT] 1D23 26 02 12020 BNE WKEY1 1D25 20 F8 12030 BRA WKEY 1D27 39 12040 WKEY1 RTS 12100 * SWITCH COLOR PALETTE 1D28 34 02 12110 CCHG PSHS A 1D2A B6 FF22 12120 LDA $FF22 1D2D 88 08 12130 EORA #8 1D2F B7 FF22 12140 STA $FF22 1D32 35 02 12150 PULS A 1D34 39 12160 RTS 1D35 12 13520 ZZEND NOP 0000 13530 END 00000 TOTAL ERRORS BLIT 1ADD BLIT1 1AF3 BLIT2 1B00 BLIT3 1B28 BLIT4 1B2D BLITH 1B9C BLITW 1B9B CCHG 1D28 CHROUT A002 CVRAM 1AB4 CVRAM1 1AB9 DRAWX 1B99 DRAWY 1B9A GOFF 1B95 JOYIN A00A MAIN 1BEC MODEW 1B98 MODG1C 1C3F MODG2C 1C70 MODG3C 1CA1 MODG6C 1CD2 MODTXT 1D03 PBLOCK 1BC3 PIXADR 1B5C PIXELM 1B77 POLCAT A000 POW 1B9F PSET 1B3C SETSA1 1AC8 SETSA2 1ACD SETSA3 1ADA SETSAM 1AC3 SPR015 1BD1 TMP16A 1BCF TMP8A 1BCD TMP8B 1BCE TMPX 1B9D TMPY 1B9E USTACK 1BA3 VRAM 1B96 WKEY 1D1F WKEY1 1D27 ZSTART 1AA0 ZVARS 1B94 ZZEND 1D35