mirror of https://github.com/stid/woz64.git
Optimize pl[X] ph[X]
This commit is contained in:
parent
5866f3d804
commit
e32bd19b47
|
@ -36,30 +36,47 @@
|
||||||
// ========================================================
|
// ========================================================
|
||||||
|
|
||||||
.pseudocommand phy {
|
.pseudocommand phy {
|
||||||
jsr Pseudo._phy
|
sta MemMap.CORE.tmpA
|
||||||
|
tya
|
||||||
|
pha
|
||||||
|
lda MemMap.CORE.tmpA
|
||||||
}
|
}
|
||||||
|
|
||||||
.pseudocommand ply {
|
.pseudocommand ply {
|
||||||
jsr Pseudo._ply
|
sta MemMap.CORE.tmpA
|
||||||
|
pla
|
||||||
|
tay
|
||||||
|
lda MemMap.CORE.tmpA
|
||||||
}
|
}
|
||||||
|
|
||||||
.pseudocommand phx {
|
.pseudocommand phx {
|
||||||
jsr Pseudo._phx
|
sta MemMap.CORE.tmpA
|
||||||
|
txa
|
||||||
|
pha
|
||||||
|
lda MemMap.CORE.tmpA
|
||||||
}
|
}
|
||||||
|
|
||||||
.pseudocommand plx {
|
.pseudocommand plx {
|
||||||
jsr Pseudo._plx
|
sta MemMap.CORE.tmpA
|
||||||
}
|
pla
|
||||||
|
tax
|
||||||
|
lda MemMap.CORE.tmpA}
|
||||||
|
|
||||||
.pseudocommand phr {
|
.pseudocommand phr {
|
||||||
|
sta MemMap.CORE.tmpA
|
||||||
pha
|
pha
|
||||||
phx
|
txa
|
||||||
phy
|
pha
|
||||||
|
tya
|
||||||
|
pha
|
||||||
|
lda MemMap.CORE.tmpA
|
||||||
}
|
}
|
||||||
|
|
||||||
.pseudocommand plr {
|
.pseudocommand plr {
|
||||||
plx
|
pla
|
||||||
ply
|
tay
|
||||||
|
pla
|
||||||
|
txa
|
||||||
pla
|
pla
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -75,9 +92,6 @@
|
||||||
// Module Init.
|
// Module Init.
|
||||||
// --------------------------------------------------------
|
// --------------------------------------------------------
|
||||||
init: {
|
init: {
|
||||||
lda #$FF
|
|
||||||
sta MemMap.CORE.xStackOffset
|
|
||||||
sta MemMap.CORE.yStackOffset
|
|
||||||
rts
|
rts
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -90,60 +104,6 @@ toDebug: {
|
||||||
rts
|
rts
|
||||||
}
|
}
|
||||||
|
|
||||||
_phx: {
|
|
||||||
pha // Save A
|
|
||||||
tya // Tansfer Y in A
|
|
||||||
pha // Save Y as A
|
|
||||||
inc MemMap.CORE.xStackOffset // Increment Stack offset
|
|
||||||
ldy MemMap.CORE.xStackOffset // Load new Stack offset in Y
|
|
||||||
txa // Move X in A
|
|
||||||
sta MemMap.CORE.XStack, y // Save X (as A) in YStack + offset (y)
|
|
||||||
pla // Load saved A (was Y)
|
|
||||||
tay // restore Y from A
|
|
||||||
pla // restore A
|
|
||||||
rts
|
|
||||||
}
|
|
||||||
|
|
||||||
_plx: {
|
|
||||||
pha // Save A
|
|
||||||
tya // Tansfer X in A
|
|
||||||
pha // Save X as A
|
|
||||||
ldx MemMap.CORE.xStackOffset // Load Stack offset
|
|
||||||
lda MemMap.CORE.XStack, x // Load Y from stack
|
|
||||||
tax
|
|
||||||
dec MemMap.CORE.xStackOffset // Dcrement stack offset
|
|
||||||
pla // Load saved A (was X)
|
|
||||||
tay // restore X from A
|
|
||||||
pla
|
|
||||||
rts
|
|
||||||
}
|
|
||||||
|
|
||||||
_phy: {
|
|
||||||
pha // Save A
|
|
||||||
txa // Tansfer X in A
|
|
||||||
pha // Save X as A
|
|
||||||
inc MemMap.CORE.yStackOffset // Increment Stack offset
|
|
||||||
ldx MemMap.CORE.yStackOffset // Load new Stack offset in X
|
|
||||||
tya // Move Y in A
|
|
||||||
sta MemMap.CORE.YStack, x // Save Y (as A) in XStack + offset (x)
|
|
||||||
pla // Load saved A (was X)
|
|
||||||
tax // restore X from A
|
|
||||||
pla // restore A
|
|
||||||
rts
|
|
||||||
}
|
|
||||||
|
|
||||||
_ply: {
|
|
||||||
pha // Save A
|
|
||||||
txa // Tansfer X in A
|
|
||||||
pha // Save X as A
|
|
||||||
ldx MemMap.CORE.yStackOffset // Load Stack offset
|
|
||||||
ldy MemMap.CORE.YStack, x // Load Y from stack
|
|
||||||
dec MemMap.CORE.yStackOffset // Dcrement stack offset
|
|
||||||
pla // Load saved A (was X)
|
|
||||||
tax // restore X from A
|
|
||||||
pla // restore A
|
|
||||||
rts
|
|
||||||
}
|
|
||||||
|
|
||||||
// ========================================================
|
// ========================================================
|
||||||
// ////// DATA ////////////////////////////////////////////
|
// ////// DATA ////////////////////////////////////////////
|
||||||
|
@ -151,7 +111,7 @@ _ply: {
|
||||||
|
|
||||||
* = * "Pseudo Data"
|
* = * "Pseudo Data"
|
||||||
module_type: .byte Module.TYPES.CORE
|
module_type: .byte Module.TYPES.CORE
|
||||||
version: .byte 1, 0, 1
|
version: .byte 1, 1, 0
|
||||||
|
|
||||||
.encoding "screencode_mixed"
|
.encoding "screencode_mixed"
|
||||||
module_name:
|
module_name:
|
||||||
|
|
|
@ -10,10 +10,7 @@
|
||||||
|
|
||||||
.namespace CORE {
|
.namespace CORE {
|
||||||
// PHx/PLx pseudo commands
|
// PHx/PLx pseudo commands
|
||||||
yStackOffset: .byte 0 // Y Stack offset used by phy/ply
|
tmpA: .byte 0 // TMP A
|
||||||
xStackOffset: .byte 0 // X Stack offset used by phx/plx
|
|
||||||
.label XStack = XSTACK_ADDRESS // 256 bytes phy/ply stack buffer pointer
|
|
||||||
.label YStack = YSTACK_ADDRESS // 256 bytes phx/plx stack buffer pointer
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.namespace PRINT {
|
.namespace PRINT {
|
||||||
|
|
Loading…
Reference in New Issue