mirror of https://github.com/stid/woz64.git
120 lines
2.7 KiB
NASM
120 lines
2.7 KiB
NASM
#importonce
|
|
#import "../hardware/mem_map.asm"
|
|
#import "../core/module.asm"
|
|
|
|
|
|
// ========================================================
|
|
// ////// PSEUDO MACROS ///////////////////////////////////
|
|
// ========================================================
|
|
|
|
.macro bitSet(bitMask, address) {
|
|
lda #bitMask
|
|
ora address
|
|
sta address
|
|
}
|
|
|
|
.macro bitClear(bitMask, address) {
|
|
lda #~bitMask
|
|
and address
|
|
sta address
|
|
}
|
|
|
|
.macro bitToggle(bitMask, address) {
|
|
lda #bitMask
|
|
eor address
|
|
sta address
|
|
}
|
|
|
|
.macro bitTest(bitMask, address) {
|
|
lda #bitMask
|
|
bit address
|
|
}
|
|
|
|
|
|
// ========================================================
|
|
// ////// PSEUDO COMMANDS /////////////////////////////////
|
|
// ========================================================
|
|
|
|
.pseudocommand phy {
|
|
sta MemMap.CORE.tmpA
|
|
tya
|
|
pha
|
|
lda MemMap.CORE.tmpA
|
|
}
|
|
|
|
.pseudocommand ply {
|
|
sta MemMap.CORE.tmpA
|
|
pla
|
|
tay
|
|
lda MemMap.CORE.tmpA
|
|
}
|
|
|
|
.pseudocommand phx {
|
|
sta MemMap.CORE.tmpA
|
|
txa
|
|
pha
|
|
lda MemMap.CORE.tmpA
|
|
}
|
|
|
|
.pseudocommand plx {
|
|
sta MemMap.CORE.tmpA
|
|
pla
|
|
tax
|
|
lda MemMap.CORE.tmpA}
|
|
|
|
.pseudocommand phr {
|
|
sta MemMap.CORE.tmpA
|
|
pha
|
|
txa
|
|
pha
|
|
tya
|
|
pha
|
|
lda MemMap.CORE.tmpA
|
|
}
|
|
|
|
.pseudocommand plr {
|
|
pla
|
|
tay
|
|
pla
|
|
txa
|
|
pla
|
|
}
|
|
|
|
.filenamespace Pseudo
|
|
// ========================================================
|
|
// ////// METHODS /////////////////////////////////////////
|
|
// ========================================================
|
|
|
|
* = * "Pseudo Commands"
|
|
|
|
// --------------------------------------------------------
|
|
// init -
|
|
// Module Init.
|
|
// --------------------------------------------------------
|
|
init: {
|
|
rts
|
|
}
|
|
|
|
// --------------------------------------------------------
|
|
// toDebug -
|
|
// Print debug info.
|
|
// --------------------------------------------------------
|
|
toDebug: {
|
|
ModuleToDebug(module_type, module_name, version)
|
|
rts
|
|
}
|
|
|
|
|
|
// ========================================================
|
|
// ////// DATA ////////////////////////////////////////////
|
|
// ========================================================
|
|
|
|
* = * "Pseudo Data"
|
|
module_type: .byte Module.TYPES.CORE
|
|
version: .byte 1, 1, 0
|
|
|
|
.encoding "screencode_mixed"
|
|
module_name:
|
|
.text "pseudo"
|
|
.byte 0
|