summaryrefslogtreecommitdiff
path: root/home/string.asm
diff options
context:
space:
mode:
authoryenatch <yenatch@gmail.com>2013-09-09 22:44:48 -0400
committeryenatch <yenatch@gmail.com>2013-09-09 22:44:48 -0400
commit84a9b3907b9db08ee38e873554d8a6b4ac1b72b4 (patch)
treee804b9ed15832481d632904f42355743d9232515 /home/string.asm
parent6439706943b53ad756d481dea683fa8ee97f4981 (diff)
rename common/ to home/
Diffstat (limited to 'home/string.asm')
-rw-r--r--home/string.asm39
1 files changed, 39 insertions, 0 deletions
diff --git a/home/string.asm b/home/string.asm
new file mode 100644
index 000000000..a871b4d2a
--- /dev/null
+++ b/home/string.asm
@@ -0,0 +1,39 @@
+InitString: ; 2ef6
+; Init a string of length c.
+ push hl
+ jr _InitString
+; 2ef9
+
+InitName: ; 2ef9
+; Intended for names, so this function is limited to ten characters.
+ push hl
+ ld c, 10
+; 2efc
+
+_InitString: ; 2efc
+; if the string pointed to by hl is empty (defined as "zero or more spaces
+; followed by a null"), then initialize it to the string pointed to by de.
+ push bc
+.loop
+ ld a, [hli]
+ cp "@"
+ jr z, .blank
+ cp " "
+ jr nz, .notblank
+ dec c
+ jr nz, .loop
+.blank
+ pop bc
+ ld l, e
+ ld h, d
+ pop de
+ ld b, 0
+ inc c
+ call CopyBytes
+ ret
+.notblank
+ pop bc
+ pop hl
+ ret
+; 2f17
+