some obvious optimizations
This commit is contained in:
@@ -524,58 +524,77 @@ DrawPendantCrystalDiagram:
|
|||||||
REP #$30 ; Set 16-bit accumulator & index registers
|
REP #$30 ; Set 16-bit accumulator & index registers
|
||||||
LDX.w #$0000 ; Paint entire box black & draw empty pendants and crystals
|
LDX.w #$0000 ; Paint entire box black & draw empty pendants and crystals
|
||||||
-
|
-
|
||||||
LDA.l .row0, X : STA $12EA, X
|
LDA.l .row0, X : STA $12EA, X
|
||||||
LDA.l .row1, X : STA $132A, X
|
LDA.l .row1, X : STA $132A, X
|
||||||
LDA.l .row2, X : STA $136A, X
|
LDA.l .row2, X : STA $136A, X
|
||||||
LDA.l .row3, X : STA $13AA, X
|
LDA.l .row3, X : STA $13AA, X
|
||||||
LDA.l .row4, X : STA $13EA, X
|
LDA.l .row4, X : STA $13EA, X
|
||||||
LDA.l .row5, X : STA $142A, X
|
LDA.l .row5, X : STA $142A, X
|
||||||
LDA.l .row6, X : STA $146A, X
|
LDA.l .row6, X : STA $146A, X
|
||||||
LDA.l .row7, X : STA $14AA, X
|
LDA.l .row7, X : STA $14AA, X
|
||||||
LDA.l .row8, X : STA $14EA, X
|
LDA.l .row8, X : STA $14EA, X
|
||||||
INX #2 : CPX.w #$0014 : BCC -
|
INX #2 : CPX.w #$0014 : BCC -
|
||||||
|
|
||||||
;pendants
|
; pendants
|
||||||
LDA $7EF374 : AND.w #$0004 : BEQ + ; pendant of courage (green)
|
LDA $7EF374
|
||||||
LDA.w #$3D2B : STA $1332
|
|
||||||
LDA.w #$3D2C : STA $1334
|
LSR : BCC + ; pendant of wisdom (red)
|
||||||
LDA.w #$3D2D : STA $1372
|
LDX.w #$252B
|
||||||
LDA.w #$3D2E : STA $1374
|
STX.w $13B6
|
||||||
+ LDA $7EF374 : AND.w #$0002 : BEQ + ; pendant of power (blue)
|
INX : STX.w $13B8
|
||||||
LDA.w #$2D2B : STA $13AE
|
INX : STX.w $13F6
|
||||||
LDA.w #$2D2C : STA $13B0
|
INX : STX.w $13F8
|
||||||
LDA.w #$2D2D : STA $13EE
|
|
||||||
LDA.w #$2D2E : STA $13F0
|
+ LSR : BCC + ; pendant of power (blue)
|
||||||
+ LDA $7EF374 : AND.w #$0001 : BEQ + ; pendant of wisdom (red)
|
LDX.w #$2D2B
|
||||||
LDA.w #$252B : STA $13B6
|
STX.w $13AE
|
||||||
LDA.w #$252C : STA $13B8
|
INX : STX.w $13B0
|
||||||
LDA.w #$252D : STA $13F6
|
INX : STX.w $13EE
|
||||||
LDA.w #$252E : STA $13F8
|
INX : STX.w $13F0
|
||||||
|
|
||||||
|
+ LSR : BCC + ; pendant of courage (green)
|
||||||
|
LDX.w #$3D2B
|
||||||
|
STX.w $1332
|
||||||
|
INX : STX.w $1334
|
||||||
|
INX : STX.w $1372
|
||||||
|
INX : STX.w $1374
|
||||||
+
|
+
|
||||||
|
|
||||||
;crystals
|
|
||||||
LDA $7EF37A : AND.w #$0002 : BEQ + ; crystal 1
|
|
||||||
LDA.w #$2D44 : STA $14AC
|
; crystals
|
||||||
LDA.w #$2D45 : STA $14AE
|
LDA $7EF37A
|
||||||
+ LDA $7EF37A : AND.w #$0010 : BEQ + ; crystal 2
|
LDX.w #$2D44
|
||||||
LDA.w #$2D44 : STA $146E
|
LDY.w #$2D45
|
||||||
LDA.w #$2D45 : STA $1470
|
|
||||||
+ LDA $7EF37A : AND.w #$0040 : BEQ + ; crystal 3
|
BIT.w #$0002 : BEQ + ; crystal 1
|
||||||
LDA.w #$2D44 : STA $14B0
|
STX.w $14AC
|
||||||
LDA.w #$2D45 : STA $14B2
|
STY.w $14AE
|
||||||
+ LDA $7EF37A : AND.w #$0020 : BEQ + ; crystal 4
|
+ BIT.w #$0010 : BEQ + ; crystal 2
|
||||||
LDA.w #$2D44 : STA $1472
|
STX.w $146E
|
||||||
LDA.w #$2D45 : STA $1474
|
STY.w $1470
|
||||||
+ LDA $7EF37A : AND.w #$0004 : BEQ + ; crystal 5
|
+ BIT.w #$0040 : BEQ + ; crystal 3
|
||||||
LDA.w #$2544 : STA $14B4
|
STX.w $14B0
|
||||||
LDA.w #$2545 : STA $14B6
|
STY.w $14B2
|
||||||
+ LDA $7EF37A : AND.w #$0001 : BEQ + ; crystal 6
|
+ BIT.w #$0020 : BEQ + ; crystal 4
|
||||||
LDA.w #$2544 : STA $1476
|
STX.w $1472
|
||||||
LDA.w #$2545 : STA $1478
|
STY.w $1474
|
||||||
+ LDA $7EF37A : AND.w #$0008 : BEQ + ; crystal 7
|
+ BIT.w #$0008 : BEQ + ; crystal 7
|
||||||
LDA.w #$2D44 : STA $14B8
|
STX.w $14B8
|
||||||
LDA.w #$2D45 : STA $14BA
|
STY.w $14BA
|
||||||
+
|
+
|
||||||
|
|
||||||
|
LDX.w #$2544
|
||||||
|
LDY.w #$2545
|
||||||
|
|
||||||
|
BIT.w #$0004 : BEQ + ; crystal 5
|
||||||
|
STX.w $14B4
|
||||||
|
STY.w $14B6
|
||||||
|
+ BIT.w #$0001 : BEQ + ; crystal 6
|
||||||
|
STX.w $1476
|
||||||
|
STY.w $1478
|
||||||
|
+
|
||||||
|
|
||||||
PLB : PLP
|
PLB : PLP
|
||||||
RTL
|
RTL
|
||||||
;================================================================================
|
;================================================================================
|
||||||
|
|||||||
@@ -627,16 +627,15 @@ RTL
|
|||||||
; caller is responsible for setting 8-bit mode and preserving X and Y
|
; caller is responsible for setting 8-bit mode and preserving X and Y
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
CountBits:
|
CountBits:
|
||||||
PHB : PHK : PLB
|
TAX ; Save a copy of value
|
||||||
TAX ; Save a copy of value
|
LSR #4 ; Shift down hi nybble, Leave <3> in C
|
||||||
LSR #4 ; Shift down hi nybble, Leave <3> in C
|
TAY ; And save <7:4> in Y
|
||||||
TAY ; And save <7:4> in Y
|
TXA ; Recover value
|
||||||
TXA ; Recover value
|
AND.b #$07 ; Put out <2:0> in X
|
||||||
AND.b #$07 ; Put out <2:0> in X
|
TAX ; And save in X
|
||||||
TAX ; And save in X
|
LDA.l NybbleBitCounts, X ; Fetch count for <2:0>
|
||||||
LDA NybbleBitCounts, Y; Fetch count for Y
|
TYX ; get <7:4>
|
||||||
ADC.l NybbleBitCounts, X; Add count for X & C
|
ADC.l NybbleBitCounts, X ; Add count for Y & C
|
||||||
PLB
|
|
||||||
RTL
|
RTL
|
||||||
|
|
||||||
; Look up table of bit counts in the values $00-$0F
|
; Look up table of bit counts in the values $00-$0F
|
||||||
|
|||||||
Reference in New Issue
Block a user