Files
rgbds/test/asm/bytelen-strbyte.asm
2025-07-14 21:46:35 -04:00

37 lines
881 B
NASM
Raw Permalink Blame History

assert bytelen("") == 0
assert bytelen("ABC") == 3
assert strbyte("ABC", 0) == $41
assert strbyte("ABC", -1) == $43
charmap "ABC", 42
assert bytelen("ABC") == 3
; characters:
; 1: U+72AC kanji (0xE7 0x8A 0xAC)
; 2: U+1F499 emoji (0xF0 0x9F 0x92 0x99)
; 3: U+0021
def utf8 equs "犬💙!"
assert bytelen(#utf8) == 8
assert strbyte(#utf8, 0) == $e7
assert strbyte(#utf8, 4) == $9f
assert strbyte(#utf8, -2) == $99
assert strbyte(#utf8, -1) == $21
; characters:
; 1: U+0041 A
; 2: U+0020 space
; 3: invalid byte 0xFE
; 4: invalid byte 0x81
; 5: invalid byte 0xFF
; 6: U+0020 space
; 7: U+6F22 kanji (0xE6 0xBC 0xA2)
def invalid EQUS "A þ<>ÿ æ¼¢"
assert bytelen(#invalid) == 9
assert strbyte(#invalid, 0) == $41
assert strbyte(#invalid, 4) == $ff
assert strbyte(#invalid, 8) == $a2
; out of bounds
assert strbyte("abc", -10) == $61 ; -10 clamped to 0
assert strbyte("abc", 10) == 0