basic palette cycling
This commit is contained in:
parent
8be03993ab
commit
6f05a9bbd0
1 changed files with 43 additions and 0 deletions
43
mandel.s
43
mandel.s
|
@ -32,6 +32,7 @@ pixel_mask = $b9 ; u8
|
|||
pixel_shift = $ba ; u8
|
||||
pixel_offset = $bb ; u8
|
||||
fill_level = $bc ; u8
|
||||
palette_offset = $bd ; u8
|
||||
|
||||
; FP registers in zero page
|
||||
FR0 = $d4 ; float48
|
||||
|
@ -87,6 +88,12 @@ SYSVBV = $E45F
|
|||
XITVBV = $E462
|
||||
SETVBV = $E45C
|
||||
|
||||
COLOR0 = $2C4
|
||||
COLOR1 = $2C5
|
||||
COLOR2 = $2C6
|
||||
COLOR3 = $2C7
|
||||
COLOR4 = $2C8
|
||||
|
||||
; Keycodes!
|
||||
KEY_PLUS = $06
|
||||
KEY_MINUS = $0e
|
||||
|
@ -205,6 +212,11 @@ color_map:
|
|||
.byte 3
|
||||
.endrepeat
|
||||
|
||||
palette:
|
||||
.byte $00
|
||||
.byte $36
|
||||
.byte $88
|
||||
.byte $d4
|
||||
.code
|
||||
|
||||
z_buffer_len = 16
|
||||
|
@ -809,9 +821,33 @@ done:
|
|||
|
||||
.proc vblank_handler
|
||||
inc count_frames
|
||||
inc palette_offset
|
||||
jmp XITVBV
|
||||
.endproc
|
||||
|
||||
.proc update_palette
|
||||
lda palette
|
||||
sta COLOR4
|
||||
|
||||
clc
|
||||
lda palette_offset
|
||||
and #$f0
|
||||
adc palette + 1
|
||||
sta COLOR0
|
||||
|
||||
clc
|
||||
lda palette_offset
|
||||
and #$f0
|
||||
adc palette + 2
|
||||
sta COLOR1
|
||||
|
||||
clc
|
||||
lda palette_offset
|
||||
and #$f0
|
||||
adc palette + 3
|
||||
sta COLOR2
|
||||
.endproc
|
||||
|
||||
.proc update_speed
|
||||
; convert frames (u16) to fp
|
||||
; add to frames_total
|
||||
|
@ -971,6 +1007,11 @@ copy_byte_loop:
|
|||
lda #$22
|
||||
sta DMACTL
|
||||
|
||||
; Initialize the palette
|
||||
lda #0
|
||||
sta palette_offset
|
||||
jsr update_palette
|
||||
|
||||
; install the vblank handler
|
||||
lda #7 ; deferred
|
||||
ldx #.hibyte(vblank_handler)
|
||||
|
@ -1122,6 +1163,8 @@ update_status:
|
|||
draw_text_indirect speed_start, speed_precision, INBUFF
|
||||
draw_text speed_start + speed_precision, str_speed_len, str_speed
|
||||
|
||||
jsr update_palette
|
||||
|
||||
skipped:
|
||||
|
||||
clc
|
||||
|
|
Loading…
Reference in a new issue