mirror of
https://github.com/a2-4am/4cade.git
synced 2024-12-25 13:33:13 +00:00
64K compatibility and some notes
This commit is contained in:
parent
d826236cc7
commit
9fa12ea6e8
@ -10,6 +10,7 @@ fracv = $F9 ; byte
|
|||||||
incv = $FA ; byte
|
incv = $FA ; byte
|
||||||
src = $FC ; word
|
src = $FC ; word
|
||||||
dst = $FE ; word
|
dst = $FE ; word
|
||||||
|
palettes = $BD00 ; $200 bytes
|
||||||
|
|
||||||
!source "src/fx/macros.a"
|
!source "src/fx/macros.a"
|
||||||
|
|
||||||
@ -31,14 +32,26 @@ dst = $FE ; word
|
|||||||
;Y=0
|
;Y=0
|
||||||
- lda $9D00, y ; copy SCB
|
- lda $9D00, y ; copy SCB
|
||||||
sta $9D00, y
|
sta $9D00, y
|
||||||
|
iny
|
||||||
|
bne -
|
||||||
|
|
||||||
|
sta $C004
|
||||||
|
- lda $9E00, y ; Back up palettes to alternate location in main memory.
|
||||||
|
sta palettes, y ; The CPU in a 64K Apple ][+/][e w/VidHD ignores STA $C004/5
|
||||||
|
lda $9F00, y ; but VidHD respects them, so we can't clear the palettes
|
||||||
|
sta palettes+$100, y ; in auxmem until we copy them in mainmem. Whee.
|
||||||
|
iny
|
||||||
|
bne -
|
||||||
|
|
||||||
|
sta $C005
|
||||||
lda #0
|
lda #0
|
||||||
sta $9E00, y ; clear palettes
|
- sta $9E00, y ; now clear the palettes
|
||||||
sta $9F00, y
|
sta $9F00, y
|
||||||
iny
|
iny
|
||||||
bne -
|
bne -
|
||||||
|
|
||||||
sta $C004
|
sta $C004
|
||||||
lda #$9E
|
lda #>palettes
|
||||||
sta src+1
|
sta src+1
|
||||||
ldx #$0F ; palette counter ($0F -> $00, not used as index)
|
ldx #$0F ; palette counter ($0F -> $00, not used as index)
|
||||||
rb_palette_loop
|
rb_palette_loop
|
||||||
@ -51,7 +64,7 @@ rb_color_loop
|
|||||||
sta dst
|
sta dst
|
||||||
lda src+1
|
lda src+1
|
||||||
sec
|
sec
|
||||||
sbc #$3E
|
sbc #>(palettes-$6000)
|
||||||
sta dst+1
|
sta dst+1
|
||||||
lda (src), y ; get final Red or Blue value for this color in this palette
|
lda (src), y ; get final Red or Blue value for this color in this palette
|
||||||
asl ; Red or Blue value is bits 0-3, shift them into bits 4-7
|
asl ; Red or Blue value is bits 0-3, shift them into bits 4-7
|
||||||
@ -83,7 +96,7 @@ rb_step_loop
|
|||||||
+ dex
|
+ dex
|
||||||
bpl rb_palette_loop
|
bpl rb_palette_loop
|
||||||
|
|
||||||
lda #$9E
|
lda #>palettes
|
||||||
sta src+1
|
sta src+1
|
||||||
ldx #$0F ; palette counter ($0F -> $00, not used as index)
|
ldx #$0F ; palette counter ($0F -> $00, not used as index)
|
||||||
g_palette_loop
|
g_palette_loop
|
||||||
@ -96,7 +109,7 @@ g_color_loop
|
|||||||
sta dst
|
sta dst
|
||||||
lda src+1
|
lda src+1
|
||||||
sec
|
sec
|
||||||
sbc #$3E
|
sbc #>(palettes-$6000)
|
||||||
sta dst+1
|
sta dst+1
|
||||||
lda (src), y ; get final Green value for this color in this palette
|
lda (src), y ; get final Green value for this color in this palette
|
||||||
and #$F0 ; Green value is bits 4-7, mask out other bits
|
and #$F0 ; Green value is bits 4-7, mask out other bits
|
||||||
|
Loading…
Reference in New Issue
Block a user