aboutsummaryrefslogtreecommitdiff
path: root/include/globals.s
diff options
context:
space:
mode:
authorMiquel Sabaté Solà <mikisabate@gmail.com>2025-03-12 22:38:12 +0100
committerMiquel Sabaté Solà <mikisabate@gmail.com>2025-03-12 22:38:12 +0100
commit2627b459d9a19ce7f1b7f3a359dca3b30b66b34e (patch)
treeb03e7972050d1efac8b3103036bdad2f081c2b03 /include/globals.s
downloadjetpac.nes-2627b459d9a19ce7f1b7f3a359dca3b30b66b34e.tar.gz
jetpac.nes-2627b459d9a19ce7f1b7f3a359dca3b30b66b34e.zip
Start with a skeleton for the project
Signed-off-by: Miquel Sabaté Solà <mikisabate@gmail.com>
Diffstat (limited to 'include/globals.s')
-rw-r--r--include/globals.s34
1 files changed, 34 insertions, 0 deletions
diff --git a/include/globals.s b/include/globals.s
new file mode 100644
index 0000000..d22b217
--- /dev/null
+++ b/include/globals.s
@@ -0,0 +1,34 @@
+;; Global variables used throughout the code base.
+.scope Globals
+ ;;;
+ ;; Argument values as defined in https://github.com/mssola/style.nes. Note
+ ;; that these variables can also be used as temporary variables.
+ zp_arg0 = $00
+ zp_arg1 = $01
+ 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
+
+ ;;;
+ ;; Reserve a byte of memory for preserving indices on memory. This is needed
+ ;; whenever the `x` and `y` registers might not be reliable because of
+ ;; underlying `jsr` calls that might tamper with their values. Sometimes
+ ;; saving the value in memory is enough instead of playing with the stack.
+ zp_idx = $09
+
+ ;; Flags that manage the state of the game.
+ ;;
+ ;; | Bit | Short name | Meaning when set |
+ ;; |-----+------------+-------------------------------------------------------------|
+ ;; | 7 | render | Game logic is over, block main code until NMI code is over. |
+ ;; | 6-0 | - | Unused |
+ zp_flags = $20
+.endscope