stlx mac bank;addr hex 9f da ]2 db ]1 <<< ldlx mac bank;addr hex bf da ]2 db ]1 <<< ************************************************** ************************************************** ************************************************** clc xce sep $30 ;axy lda #%00011110 sta $C035 ;shadow reg lda #$41 sta $C029 ;SH reg rep $30 ;AXY * Clear scan line control byte table * and palette 0 to black lda #$0000 ldx #$011E :scbclr dex dex stlx $E1;$9D00 bne :scbclr * Now move data over ldx #$2000 ldy #$2000 lda #32000-1 phb mvn 1,$E1 plb * Turn on Super Hires mode sep $20 lda #$C1 sta $C029 rep $20 * Move desired palette over to PalFade area ldx #$9E00 ;aux mem ldy #new_palette lda #32-1 phb mvn 1,0 ;aux to main plb * Now fade in the picture jsr PalFade * Do something here... LIKE play some music * Clear the "destination" palette back to zero ldx #32 lda #$0000 :palclr dex dex sta new_palette,x bne :palclr * Now fade out jsr PalFade * All done... bra * *------------------------------------------------- PalFade * * Given current palette at $E19E00.1F, fade to * new palette given in new_palette * new_palette ds 32 PalFade dum 0 :green ds 1 :blue ds 1 dend sep $30 bit $C019 bmi *-3 ldy #16 :fadein ldx #3 :fadein2 bit $C019 bpl *-3 bit $C019 bmi *-3 dex bne :fadein2 ldx #30 :palloop ldlx $E1;$9E01 cmp new_palette+1,x beq :red_ok inc blt :red_ok dec dec :red_ok stlx $E1;$9E01 lda new_palette,x and #$F0 sta :green ldlx $E1;$9E00 and #$F0 cmp :green beq :green_ok blt :grn_add sbc #$20 :grn_add clc adc #$10 :green_ok sta :green lda new_palette,x and #$0F sta :blue ldlx $E1;$9E00 and #$0F cmp :blue beq :blue_ok inc blt :blue_ok dec dec :blue_ok ora :green stlx $E1;$9E00 dex dex bpl :palloop dey bpl :fadein rep $30 rts *-------------------------------------------------