SHSTUFF.S (1919B)
1 2 stlx mac bank;addr 3 hex 9f 4 da ]2 5 db ]1 6 <<< 7 ldlx mac bank;addr 8 hex bf 9 da ]2 10 db ]1 11 <<< 12 13 ************************************************** 14 ************************************************** 15 ************************************************** 16 17 clc 18 xce 19 20 sep $30 ;axy 21 22 lda #%00011110 23 sta $C035 ;shadow reg 24 lda #$41 25 sta $C029 ;SH reg 26 27 rep $30 ;AXY 28 29 * Clear scan line control byte table 30 * and palette 0 to black 31 32 lda #$0000 33 ldx #$011E 34 :scbclr dex 35 dex 36 stlx $E1;$9D00 37 bne :scbclr 38 39 * Now move data over 40 41 ldx #$2000 42 ldy #$2000 43 lda #32000-1 44 phb 45 mvn 1,$E1 46 plb 47 48 * Turn on Super Hires mode 49 50 sep $20 51 lda #$C1 52 sta $C029 53 rep $20 54 55 * Move desired palette over to PalFade area 56 57 ldx #$9E00 ;aux mem 58 ldy #new_palette 59 lda #32-1 60 phb 61 mvn 1,0 ;aux to main 62 plb 63 64 * Now fade in the picture 65 66 jsr PalFade 67 68 * Do something here... LIKE play some music 69 70 * Clear the "destination" palette back to zero 71 72 ldx #32 73 lda #$0000 74 :palclr dex 75 dex 76 sta new_palette,x 77 bne :palclr 78 79 * Now fade out 80 81 jsr PalFade 82 83 * All done... 84 85 bra * 86 87 *------------------------------------------------- PalFade 88 * 89 * Given current palette at $E19E00.1F, fade to 90 * new palette given in new_palette 91 * 92 93 new_palette ds 32 94 95 PalFade dum 0 96 :green ds 1 97 :blue ds 1 98 dend 99 100 sep $30 101 102 bit $C019 103 bmi *-3 104 105 ldy #16 106 107 :fadein ldx #3 108 109 :fadein2 bit $C019 110 bpl *-3 111 112 bit $C019 113 bmi *-3 114 115 dex 116 bne :fadein2 117 118 ldx #30 119 :palloop ldlx $E1;$9E01 120 cmp new_palette+1,x 121 beq :red_ok 122 inc 123 blt :red_ok 124 dec 125 dec 126 127 :red_ok stlx $E1;$9E01 128 129 lda new_palette,x 130 and #$F0 131 sta :green 132 133 ldlx $E1;$9E00 134 and #$F0 135 cmp :green 136 beq :green_ok 137 blt :grn_add 138 sbc #$20 139 :grn_add clc 140 adc #$10 141 142 :green_ok sta :green 143 144 lda new_palette,x 145 and #$0F 146 sta :blue 147 148 ldlx $E1;$9E00 149 and #$0F 150 cmp :blue 151 beq :blue_ok 152 inc 153 blt :blue_ok 154 dec 155 dec 156 157 :blue_ok ora :green 158 stlx $E1;$9E00 159 160 dex 161 dex 162 bpl :palloop 163 164 dey 165 bpl :fadein 166 167 rep $30 168 169 rts 170 171 *-------------------------------------------------