aboutsummaryrefslogtreecommitdiff
path: root/include/globals.s
diff options
context:
space:
mode:
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