mirror of
https://github.com/deater/dos33fsprogs.git
synced 2024-06-28 14:29:42 +00:00
gr: plasma: optimize interference2 some more
This commit is contained in:
parent
c9afbb2443
commit
0f121ce524
|
@ -3,7 +3,6 @@
|
||||||
.include "hardware.inc"
|
.include "hardware.inc"
|
||||||
|
|
||||||
; zero page
|
; zero page
|
||||||
COLOR = $30
|
|
||||||
YY = $69
|
YY = $69
|
||||||
|
|
||||||
COLOR_MASK=$F8
|
COLOR_MASK=$F8
|
||||||
|
@ -30,7 +29,7 @@ oval:
|
||||||
sta DRAW_PAGE
|
sta DRAW_PAGE
|
||||||
|
|
||||||
draw_oval_loop:
|
draw_oval_loop:
|
||||||
inc FRAME ; increment frame
|
inc FRAME ; increment frame
|
||||||
|
|
||||||
ldx #47 ; YY from 47 downto zero
|
ldx #47 ; YY from 47 downto zero
|
||||||
|
|
||||||
|
@ -69,23 +68,34 @@ create_xloop:
|
||||||
tax
|
tax
|
||||||
lda colorlookup,X
|
lda colorlookup,X
|
||||||
|
|
||||||
; jsr SETCOL
|
sta color_smc+1
|
||||||
|
|
||||||
sta COLOR
|
|
||||||
|
|
||||||
txa
|
|
||||||
pha
|
|
||||||
tya
|
tya
|
||||||
pha
|
pha
|
||||||
|
|
||||||
jsr plot1
|
|
||||||
|
;================================
|
||||||
|
; plot1
|
||||||
|
;================================
|
||||||
|
|
||||||
|
plot1:
|
||||||
|
mask_invert_smc1:
|
||||||
|
lda #$ff ; load mask ; 2
|
||||||
|
gbasl_smc1:
|
||||||
|
and $400,Y ; mask to preserve on-screen color ; 4+
|
||||||
|
sta COLOR_MASK ; save temporarily ; 3
|
||||||
|
color_smc:
|
||||||
|
lda #$FF ; load color ; 2
|
||||||
|
mask_smc2:
|
||||||
|
and #$FF ; mask so only hi/lo we want ; 2
|
||||||
|
ora COLOR_MASK ; combine with on-screen color ; 3
|
||||||
|
gbasl_smc2:
|
||||||
|
sta $400,Y ; save back out ; 5
|
||||||
|
|
||||||
|
;=================================
|
||||||
|
|
||||||
pla
|
pla
|
||||||
tay
|
tay
|
||||||
pla
|
|
||||||
tax
|
|
||||||
|
|
||||||
; jsr PLOT1 ; PLOT (GBASL),Y
|
|
||||||
|
|
||||||
ldx SAVEX
|
ldx SAVEX
|
||||||
|
|
||||||
|
@ -193,8 +203,10 @@ plot_odd:
|
||||||
plot_even:
|
plot_even:
|
||||||
lda #$0f ; 2
|
lda #$0f ; 2
|
||||||
plot_c_done:
|
plot_c_done:
|
||||||
sta mask_smc1+1 ;
|
|
||||||
sta mask_smc2+1 ;
|
sta mask_smc2+1 ;
|
||||||
|
eor #$FF ; 2
|
||||||
|
sta mask_invert_smc1+1 ;
|
||||||
|
|
||||||
|
|
||||||
lda gr_offsets_l,Y ; lookup low-res memory address ; 4
|
lda gr_offsets_l,Y ; lookup low-res memory address ; 4
|
||||||
sta gbasl_smc1+1
|
sta gbasl_smc1+1
|
||||||
|
@ -211,30 +223,6 @@ plot_c_done:
|
||||||
rts
|
rts
|
||||||
|
|
||||||
|
|
||||||
;================================
|
|
||||||
; plot1
|
|
||||||
;================================
|
|
||||||
; plots pixel of COLOR at GBASL/GBASH:Y
|
|
||||||
; Xcoord in Y
|
|
||||||
|
|
||||||
plot1:
|
|
||||||
mask_smc1:
|
|
||||||
lda #$ff ; 2
|
|
||||||
eor #$ff ; 2
|
|
||||||
|
|
||||||
gbasl_smc1:
|
|
||||||
and $400,Y ; 4+
|
|
||||||
sta COLOR_MASK ; 3
|
|
||||||
|
|
||||||
lda COLOR ; 3
|
|
||||||
mask_smc2:
|
|
||||||
and #$FF ; 2
|
|
||||||
ora COLOR_MASK ; 3
|
|
||||||
gbasl_smc2:
|
|
||||||
sta $400,Y ; 5
|
|
||||||
|
|
||||||
rts ; 6
|
|
||||||
|
|
||||||
gr_offsets_l:
|
gr_offsets_l:
|
||||||
.byte <$400,<$480,<$500,<$580,<$600,<$680,<$700,<$780
|
.byte <$400,<$480,<$500,<$580,<$600,<$680,<$700,<$780
|
||||||
.byte <$428,<$4a8,<$528,<$5a8,<$628,<$6a8,<$728,<$7a8
|
.byte <$428,<$4a8,<$528,<$5a8,<$628,<$6a8,<$728,<$7a8
|
||||||
|
|
Loading…
Reference in New Issue
Block a user