diff options
Diffstat (limited to 'home/compare.asm')
-rw-r--r-- | home/compare.asm | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/home/compare.asm b/home/compare.asm new file mode 100644 index 000000000..26b7567fd --- /dev/null +++ b/home/compare.asm @@ -0,0 +1,35 @@ +CompareBytes:: +; Compare c bytes at de and hl. +; Return z if they all match. +.loop + ld a, [de] + cp [hl] + ret nz + inc de + inc hl + dec c + jr nz, .loop + ret + +CompareBytesLong:: +; Compare bc bytes at de and hl. +; Return carry if they all match. +.loop + ld a, [de] + cp [hl] + jr nz, .diff + + inc de + inc hl + dec bc + + ld a, b + or c + jr nz, .loop + + scf + ret + +.diff: + and a + ret |