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 {
|
||||
jsr Pseudo._phy
|
||||
sta MemMap.CORE.tmpA
|
||||
tya
|
||||
pha
|
||||
lda MemMap.CORE.tmpA
|
||||
}
|
||||
|
||||
.pseudocommand ply {
|
||||
jsr Pseudo._ply
|
||||
sta MemMap.CORE.tmpA
|
||||
pla
|
||||
tay
|
||||
lda MemMap.CORE.tmpA
|
||||
}
|
||||
|
||||
.pseudocommand phx {
|
||||
jsr Pseudo._phx
|
||||
sta MemMap.CORE.tmpA
|
||||
txa
|
||||
pha
|
||||
lda MemMap.CORE.tmpA
|
||||
}
|
||||
|
||||
.pseudocommand plx {
|
||||
jsr Pseudo._plx
|
||||
}
|
||||
sta MemMap.CORE.tmpA
|
||||
pla
|
||||
tax
|
||||
lda MemMap.CORE.tmpA}
|
||||
|
||||
.pseudocommand phr {
|
||||
sta MemMap.CORE.tmpA
|
||||
pha
|
||||
phx
|
||||
phy
|
||||
txa
|
||||
pha
|
||||
tya
|
||||
pha
|
||||
lda MemMap.CORE.tmpA
|
||||
}
|
||||
|
||||
.pseudocommand plr {
|
||||
plx
|
||||
ply
|
||||
pla
|
||||
tay
|
||||
pla
|
||||
txa
|
||||
pla
|
||||
}
|
||||
|
||||
|
@ -75,9 +92,6 @@
|
|||
// Module Init.
|
||||
// --------------------------------------------------------
|
||||
init: {
|
||||
lda #$FF
|
||||
sta MemMap.CORE.xStackOffset
|
||||
sta MemMap.CORE.yStackOffset
|
||||
rts
|
||||
}
|
||||
|
||||
|
@ -90,60 +104,6 @@ toDebug: {
|
|||
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 ////////////////////////////////////////////
|
||||
|
@ -151,7 +111,7 @@ _ply: {
|
|||
|
||||
* = * "Pseudo Data"
|
||||
module_type: .byte Module.TYPES.CORE
|
||||
version: .byte 1, 0, 1
|
||||
version: .byte 1, 1, 0
|
||||
|
||||
.encoding "screencode_mixed"
|
||||
module_name:
|
||||
|
|
|
@ -10,10 +10,7 @@
|
|||
|
||||
.namespace CORE {
|
||||
// PHx/PLx pseudo commands
|
||||
yStackOffset: .byte 0 // Y Stack offset used by phy/ply
|
||||
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
|
||||
tmpA: .byte 0 // TMP A
|
||||
}
|
||||
|
||||
.namespace PRINT {
|
||||
|
|
Loading…
Reference in New Issue