mirror of
https://github.com/deater/dos33fsprogs.git
synced 2024-05-31 21:41:32 +00:00
bubble: more optimization
This commit is contained in:
parent
1a6d39d63f
commit
7216c531ff
|
@ -22,7 +22,7 @@
|
||||||
; 9F673 = clear screen, only clear X region we use
|
; 9F673 = clear screen, only clear X region we use
|
||||||
; 9DD73 = clear screen, only clear Y region we use
|
; 9DD73 = clear screen, only clear Y region we use
|
||||||
; 906FE = inline/unroll the sines
|
; 906FE = inline/unroll the sines
|
||||||
; TODO: inline/unroll sine/cosine calls
|
; 817BE = inline/unroll the cosines
|
||||||
|
|
||||||
|
|
||||||
; soft-switches
|
; soft-switches
|
||||||
|
@ -178,7 +178,6 @@ no_rl_carry:
|
||||||
|
|
||||||
; U=SIN(I+V)+SIN(RR+X)
|
; U=SIN(I+V)+SIN(RR+X)
|
||||||
|
|
||||||
; ldy #0
|
|
||||||
lda IVL ; 3
|
lda IVL ; 3
|
||||||
sta STEMP1L ; 3
|
sta STEMP1L ; 3
|
||||||
lda IVH ; 3
|
lda IVH ; 3
|
||||||
|
@ -191,26 +190,13 @@ no_rl_carry:
|
||||||
lda sin_table_high,X ; 4
|
lda sin_table_high,X ; 4
|
||||||
sta OUT1H ; 3
|
sta OUT1H ; 3
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
; ldy #2
|
|
||||||
lda RXL ; 3
|
lda RXL ; 3
|
||||||
sta STEMP1L ; 3
|
sta STEMP1L ; 3
|
||||||
lda RXH ; 3
|
lda RXH ; 3
|
||||||
|
|
||||||
; jsr sin
|
; jsr sin
|
||||||
|
|
||||||
.include "sin_unrolled.s"
|
.include "sin_unrolled.s"
|
||||||
|
|
||||||
; lda sin_table_low,X ; 4
|
|
||||||
; sta OUT1L ; 3
|
|
||||||
; lda sin_table_high,X ; 4
|
|
||||||
; sta OUT1H ; 3
|
|
||||||
|
|
||||||
clc
|
clc
|
||||||
lda OUT1L
|
lda OUT1L
|
||||||
adc sin_table_low,X
|
adc sin_table_low,X
|
||||||
|
@ -221,17 +207,39 @@ no_rl_carry:
|
||||||
|
|
||||||
; V=COS(I+V)+COS(RR+X)
|
; V=COS(I+V)+COS(RR+X)
|
||||||
|
|
||||||
ldy #0
|
; 1.57 is roughly 0x0192 in 8.8
|
||||||
jsr cos
|
clc ; 2
|
||||||
ldy #2
|
lda IVL ; 3
|
||||||
jsr cos
|
adc #$92 ; 2
|
||||||
|
sta STEMP1L ; 3
|
||||||
|
|
||||||
|
lda IVH ; 4
|
||||||
|
adc #1 ; 2
|
||||||
|
|
||||||
|
; jsr sin
|
||||||
|
.include "sin_unrolled.s"
|
||||||
|
lda sin_table_low,X ; 4
|
||||||
|
sta OUT1L ; 3
|
||||||
|
lda sin_table_high,X ; 4
|
||||||
|
sta OUT1H ; 3
|
||||||
|
|
||||||
|
|
||||||
|
; 1.57 is roughly 0x0192 in 8.8
|
||||||
|
clc ; 2
|
||||||
|
lda RXL ; 3
|
||||||
|
adc #$92 ; 2
|
||||||
|
sta STEMP1L ; 3
|
||||||
|
lda RXH ; 3
|
||||||
|
adc #1 ; 2
|
||||||
|
; jsr cos
|
||||||
|
.include "sin_unrolled.s"
|
||||||
|
|
||||||
clc
|
clc
|
||||||
lda OUT1L
|
lda OUT1L
|
||||||
adc OUT2L
|
adc sin_table_low,X
|
||||||
sta VL
|
sta VL
|
||||||
lda OUT1H
|
lda OUT1H
|
||||||
adc OUT2H
|
adc sin_table_high,X
|
||||||
sta VH
|
sta VH
|
||||||
|
|
||||||
|
|
||||||
|
@ -359,7 +367,7 @@ flip2:
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.if 0
|
||||||
;=======================
|
;=======================
|
||||||
sin:
|
sin:
|
||||||
|
|
||||||
|
@ -421,7 +429,6 @@ already_loaded:
|
||||||
;=============================
|
;=============================
|
||||||
cos:
|
cos:
|
||||||
; 1.57 is roughly 0x0192 in 8.8
|
; 1.57 is roughly 0x0192 in 8.8
|
||||||
|
|
||||||
clc ; 2
|
clc ; 2
|
||||||
lda IVL,Y ; 4
|
lda IVL,Y ; 4
|
||||||
adc #$92 ; 2
|
adc #$92 ; 2
|
||||||
|
@ -432,7 +439,7 @@ cos:
|
||||||
; sta STEMP1H ; 3
|
; sta STEMP1H ; 3
|
||||||
|
|
||||||
jmp already_loaded ; 3
|
jmp already_loaded ; 3
|
||||||
|
.endif
|
||||||
|
|
||||||
.include "hgr_clear_part.s"
|
.include "hgr_clear_part.s"
|
||||||
.include "hgr_table.s"
|
.include "hgr_table.s"
|
||||||
|
|
Loading…
Reference in New Issue
Block a user