mirror of
https://github.com/deater/dos33fsprogs.git
synced 2024-12-31 14:30:17 +00:00
xmas2016: optimizing a little
This commit is contained in:
parent
816edd964a
commit
067f1c53fc
@ -304,15 +304,14 @@ scroll_done:
|
|||||||
;
|
;
|
||||||
; 2 init
|
; 2 init
|
||||||
; 40*
|
; 40*
|
||||||
; hgr_scroll_line_loop: 20
|
; hgr_scroll_line_loop: 25
|
||||||
; high bit 22
|
; high bit 20
|
||||||
; get_offpage_byte: 5
|
|
||||||
; prepare bits: 18
|
; prepare bits: 18
|
||||||
; output new byte: 21
|
; output new byte: 21
|
||||||
; increment and loop: 7
|
; increment and loop: 7
|
||||||
; 5 return
|
; 5 return
|
||||||
;
|
;
|
||||||
; original total = (93*40)+7=3727
|
; (93*40)+7=3727 -- original total
|
||||||
;
|
;
|
||||||
hgr_scroll_line:
|
hgr_scroll_line:
|
||||||
|
|
||||||
@ -323,36 +322,35 @@ hgr_scroll_line:
|
|||||||
hgr_scroll_line_loop:
|
hgr_scroll_line_loop:
|
||||||
lda (OUTL),Y ; get pixel block of interest ; 5
|
lda (OUTL),Y ; get pixel block of interest ; 5
|
||||||
sta CURRENT ; 3
|
sta CURRENT ; 3
|
||||||
iny ; 2
|
|
||||||
lda (OUTL),Y ; get subsequent pixel block ; 5/6 if off end
|
|
||||||
sta NEXT ; 3
|
|
||||||
dey ; restore Y ; 2
|
|
||||||
;============
|
|
||||||
; 20
|
|
||||||
get_offpage_byte:
|
|
||||||
cpy #39 ; 2
|
cpy #39 ; 2
|
||||||
bne not_thirtynine ; 3
|
bne not_thirtynine ; 3
|
||||||
sty TEMPY ; 3
|
thirtynine:
|
||||||
|
; -1
|
||||||
|
sty TEMPY ; save Y ; 3
|
||||||
ldy #0 ; 2
|
ldy #0 ; 2
|
||||||
lda (INL),Y ; 5
|
lda (INL),Y ; 5
|
||||||
sta NEXT ; 3
|
ldy TEMPY ; restore Y ; 3
|
||||||
ldy TEMPY ; 3
|
jmp done_thirtynine ; 3
|
||||||
not_thirtynine:
|
not_thirtynine:
|
||||||
|
iny ; 2
|
||||||
|
lda (OUTL),Y ; get subsequent pixel block ; 5
|
||||||
|
dey ; 2
|
||||||
|
done_thirtynine:
|
||||||
|
sta NEXT ; 3
|
||||||
;===================
|
;===================
|
||||||
; usually: 5
|
; usually: 25
|
||||||
|
; rarely: 31
|
||||||
|
|
||||||
; if in bit 2 or 6 of horiz scroll, shift the color bit over
|
; if in bit 2 or 6 of horiz scroll, shift the color bit over
|
||||||
; makes some color flicker, is there a better way?
|
; makes some color flicker, is there a better way?
|
||||||
high_bit:
|
high_bit:
|
||||||
lda COUNTL ; 3
|
lda COUNTL ; 3
|
||||||
|
and #$3 ; 2
|
||||||
cmp #2 ; 2
|
cmp #2 ; 2
|
||||||
beq move_high_bit ; 3
|
bne keep_high_bit ; 3
|
||||||
cmp #6 ; -1,2
|
|
||||||
beq move_high_bit ; 3
|
|
||||||
bne keep_high_bit ; -1,3
|
|
||||||
|
|
||||||
move_high_bit:
|
move_high_bit:
|
||||||
|
; -1
|
||||||
lda NEXT ; 3
|
lda NEXT ; 3
|
||||||
jmp done_high_bit ; 3
|
jmp done_high_bit ; 3
|
||||||
keep_high_bit:
|
keep_high_bit:
|
||||||
@ -361,7 +359,8 @@ done_high_bit:
|
|||||||
and #$80 ; 2
|
and #$80 ; 2
|
||||||
sta HIGH ; 3
|
sta HIGH ; 3
|
||||||
;===================
|
;===================
|
||||||
; worst: 22
|
; 2or6: 20
|
||||||
|
; else: 18
|
||||||
|
|
||||||
|
|
||||||
prepare_bits:
|
prepare_bits:
|
||||||
|
Loading…
Reference in New Issue
Block a user