summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTauwasser <Tauwasser@tauwasser.eu>2018-06-02 18:25:42 +0200
committerTauwasser <Tauwasser@tauwasser.eu>2018-06-02 18:26:17 +0200
commit3fc9a8f05e08547838a37246649d9230c0e9ed31 (patch)
tree7353e23bbab489ddc78bdeb9a3817a2419dfd2f0
parent50f26bc1ec9581b86ec6f4eccb09c208596395ae (diff)
home: disassemble print hexadecimal fns
Signed-off-by: Tauwasser <Tauwasser@tauwasser.eu>
-rw-r--r--charmap.asm3
-rw-r--r--home/print_hex.asm38
2 files changed, 41 insertions, 0 deletions
diff --git a/charmap.asm b/charmap.asm
index 228bb6b..575a8eb 100644
--- a/charmap.asm
+++ b/charmap.asm
@@ -116,6 +116,9 @@
charmap "▲", $61
charmap "☎", $62
+ charmap "A", $60
+ charmap "B", $61
+ charmap "C", $62
charmap "D", $63
charmap "E", $64
charmap "F", $65
diff --git a/home/print_hex.asm b/home/print_hex.asm
new file mode 100644
index 0000000..3f50467
--- /dev/null
+++ b/home/print_hex.asm
@@ -0,0 +1,38 @@
+INCLUDE "constants.asm"
+
+SECTION "Print Hexadecimal functions", ROM0[$3597]
+
+PrintHexBytes: ; 3597 (0:3597)
+.loop
+ push bc
+ call PrintHexByte
+ pop bc
+ dec c
+ jr nz, .loop
+ ret
+
+PrintHexByte:: ; 35a0 (0:35a0)
+ ld a, [de]
+ swap a
+ and $0f
+ call PrintHexDigit
+ ld [hli], a
+ ld a, [de]
+ and $0f
+ call PrintHexDigit
+ ld [hli], a
+ inc de
+ ret
+
+PrintHexDigit: ; 35b2 (0:35b2)
+ ld bc, .hexDigitTable
+ add c
+ ld c, a
+ ld a, $00
+ adc b
+ ld b, a
+ ld a, [bc]
+ ret
+
+.hexDigitTable:
+ db "0123456789ABCDEF"