Added macros for storing math registers
+ ; 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
col_x: .adv 1
; 16-bit math temporary registers
+ ; store in LE
m16_a: .adv 2
m16_b: .adv 2