math: Addd 16 bit add
authorLukas Krickl <lukas@krickl.dev>
Sun, 1 Feb 2026 07:31:37 +0000 (08:31 +0100)
committerLukas Krickl <lukas@krickl.dev>
Sun, 1 Feb 2026 07:31:37 +0000 (08:31 +0100)
Added macros for storing math registers

src/math.s
src/wram.s

index 8231515ca02847ab89ba1151a5d906b6464fabe2..22e0f6474d9314a763962045a81bfb848ffba08d 100644 (file)
@@ -1,10 +1,49 @@
 
+       ; writes a 16 bit register
+       ; to an m16 regsiter
+       ; inputs:
+       ;               $1: m16_a/b
+#macro m16_write_bc
+       ld a, c
+       ld [$1], a
+       ld a, b
+       ld [$1+1], c
+#endmacro
+#macro m16_write_de
+       ld a, e
+       ld [$1], a
+       ld a, d
+       ld [$1+1], c
+#endmacro
+#macro m16_write_hl
+       ld a, l
+       ld [$1], a
+       ld a, h
+       ld [$1+1], c
+#endmacro
+
        ; 16 bit add
        ; inputs:
        ;               m16_a/m16_b
        ;       returns:
        ;               m16_a: m16_a + m16_b
 m16_add:
+       ld a, [m16_b]
+       ld b, a
+       ld a, [m16_a]
+       
+       ; low is stored
+       add a, b
+       ld [m16_a], a
+
+       ld a, [m16_b+1]
+       ld b, a
+       ld a, [m16_a+1]
+
+       ; high + carry stored
+       adc a, b
+       ld [m16_a+1], a
+
        ret
 
        ; 16 bit sub
index 6678babac3a18e254fa5427e4102b09624943c9e..b30b9a17def482af99f31bfd011ecd45e739946d 100644 (file)
@@ -143,6 +143,7 @@ col_y: .adv 1
 col_x: .adv 1
 
        ; 16-bit math temporary registers
+       ; store in LE
 m16_a: .adv 2
 m16_b: .adv 2