summaryrefslogtreecommitdiff
path: root/home/array.asm
diff options
context:
space:
mode:
authorlibjet <libj3t@gmail.com>2020-03-15 00:17:02 +0000
committerlibjet <libj3t@gmail.com>2020-03-15 00:17:02 +0000
commit76216e6ce5de8a78cfd9312eb08dbb127b4d34d0 (patch)
treedaa241c9541bd7f66aea7220cd4da5efb9a8069a /home/array.asm
parent1ddf04da73b8784a08c679b73f576923768f97cf (diff)
Small home/ reorganization
Diffstat (limited to 'home/array.asm')
-rwxr-xr-xhome/array.asm44
1 files changed, 44 insertions, 0 deletions
diff --git a/home/array.asm b/home/array.asm
new file mode 100755
index 00000000..0abf9b7d
--- /dev/null
+++ b/home/array.asm
@@ -0,0 +1,44 @@
+IsInArray::
+; Find value a for every de bytes in array hl.
+; Return index in b and carry if found.
+
+ ld b, 0
+ ld c, a
+.loop
+ ld a, [hl]
+ cp -1
+ jr z, .NotInArray
+ cp c
+ jr z, .InArray
+ inc b
+ add hl, de
+ jr .loop
+
+.NotInArray:
+ and a
+ ret
+
+.InArray:
+ scf
+ ret
+
+SkipNames::
+; Skip a names.
+ ld bc, NAME_LENGTH
+ and a
+ ret z
+.loop
+ add hl, bc
+ dec a
+ jr nz, .loop
+ ret
+
+AddNTimes::
+; Add bc * a to hl.
+ and a
+ ret z
+.loop
+ add hl, bc
+ dec a
+ jr nz, .loop
+ ret