aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorMiquel Sabaté Solà <mssola@mssola.com>2025-12-10 14:41:35 +0100
committerMiquel Sabaté Solà <mssola@mssola.com>2025-12-15 15:31:06 +0100
commit74b1003ab8abad2f8220de4f2f18a3b118f23f01 (patch)
treeb7f2d491d708fa900d4dd9649eb5bd7fab3e8686 /include
parente6d9bd9f7acfd0e40025b2d579a7faff0d04ef0a (diff)
downloadjetpac.nes-74b1003ab8abad2f8220de4f2f18a3b118f23f01.tar.gz
jetpac.nes-74b1003ab8abad2f8220de4f2f18a3b118f23f01.zip
Adapt the code to play well with nasm's asan
The address sanitizer from nasm provides quite a few goodies, so let's adapt the code more to it to benefit from those. Signed-off-by: Miquel Sabaté Solà <mssola@mssola.com>
Diffstat (limited to 'include')
-rw-r--r--include/apu.s4
-rw-r--r--include/globals.s10
-rw-r--r--include/joypad.s10
-rw-r--r--include/oam.s19
-rw-r--r--include/ppu.s12
5 files changed, 28 insertions, 27 deletions
diff --git a/include/apu.s b/include/apu.s
index 65d9876..bb0319f 100644
--- a/include/apu.s
+++ b/include/apu.s
@@ -1,4 +1,4 @@
.scope APU
- DMC = $4010
- FRAME_COUNTER = $4017
+ m_dmc = $4010
+ m_frame_counter = $4017
.endscope
diff --git a/include/globals.s b/include/globals.s
index 842de34..f9777e5 100644
--- a/include/globals.s
+++ b/include/globals.s
@@ -6,17 +6,17 @@
;; Argument values reserved passing arguments to functions in memory.
zp_arg0 = $00
zp_arg1 = $01
- zp_arg2 = $02
- zp_arg3 = $03
- zp_arg4 = $04
+ ;; zp_arg2 = $02
+ ;; zp_arg3 = $03
+ ;; zp_arg4 = $04
;;;
;; Random values that can be used inside of functions for temporary values
;; so `zp_argX` variables are not overwritten as often.
zp_tmp0 = $05
zp_tmp1 = $06
- zp_tmp2 = $07
- zp_tmp3 = $08
+ ;; zp_tmp2 = $07
+ ;; zp_tmp3 = $08
;;;
;; Reserve a byte of memory for preserving indices on memory. This is needed
diff --git a/include/joypad.s b/include/joypad.s
index 141877f..f7268e8 100644
--- a/include/joypad.s
+++ b/include/joypad.s
@@ -10,8 +10,8 @@
BUTTON_RIGHT = 1 << 0
;; Port addresses for controllers.
- JOYPAD1 = $4016
- JOYPAD2 = $4017
+ m_joypad1 = $4016
+ ;; m_joypad2 = $4017
;; After running a `read_*` function these two variables will contain the
;; given result.
@@ -49,14 +49,14 @@
.proc unsafe_read_x
;; Start the latch process.
lda #$01
- sta Joypad::JOYPAD1
+ sta Joypad::m_joypad1
sta Joypad::zp_buttons1, x ; Bit as a guard for the loop below.
lsr
- sta Joypad::JOYPAD1
+ sta Joypad::m_joypad1
;; Now the joypad is ready to accept reads.
@loop:
- lda Joypad::JOYPAD1, x
+ lda Joypad::m_joypad1, x
and #%00000011 ; Ignore bits other than controller.
cmp #$01 ; Set carry if and only if nonzero.
rol Joypad::zp_buttons1, x ; Carry -> bit 0; bit 7 -> Carry
diff --git a/include/oam.s b/include/oam.s
index 22935b2..a73494d 100644
--- a/include/oam.s
+++ b/include/oam.s
@@ -1,11 +1,12 @@
.scope OAM
- ADDRESS = $2003
- DMA = $4014
-.endscope
+ ;; Region in internal RAM where sprites are being allocated for later use in
+ ;; the DMA process. The entire page is reserved, as there are 64 sprites x 4
+ ;; bytes each = 256 bytes in total.
+ m_sprites = $200 ; asan:reserve $100
+
+ ;;;
+ ;; Actual addresses from OAM space.
-.macro OAM_WRITE_SPRITES
- lda #$00
- sta OAM::ADDR
- lda #$02
- sta OAM::DMA
-.endmacro
+ m_address = $2003
+ m_dma = $4014
+.endscope
diff --git a/include/ppu.s b/include/ppu.s
index a9c0ed2..7882809 100644
--- a/include/ppu.s
+++ b/include/ppu.s
@@ -1,10 +1,10 @@
.scope PPU
- CONTROL = $2000
- MASK = $2001
- STATUS = $2002
- SCROLL = $2005
- ADDRESS = $2006
- DATA = $2007
+ m_control = $2000
+ m_mask = $2001
+ m_status = $2002
+ m_scroll = $2005
+ m_address = $2006
+ m_data = $2007
;; Shadow for the PPU::CONTROL value. Touch this value instead of accessing
;; the PPU register directly.