Multibyte constant
From GbdevWiki
A convenient way to declare a hexadecimal literal spanning multiple bytes
RGBDS
;; ; Multibyte constant declaration macro ; by ISSOtm, 2020-07-26, license: CC0 ; Example: ; hexdata 0123, 45, 6789ABCDEF ; produces this: ; db $01,$23,$45,$67,$89,$AB,$CD,$EF hexdata: macro ARG_INDEX = 1 REPT _NARG IF STRLEN("\1") % 2 == 1 FAIL "Length of argument #{d:ARG_INDEX} is not even!" ENDC I = 1 REPT STRLEN("\1") / 2 BYTE equs STRCAT("$", STRSUB("\1", I, 2)) db BYTE PURGE BYTE I = I + 2 ENDR PURGE I SHIFT ARG_INDEX = ARG_INDEX + 1 ENDR endm
External links
- Multibyte constant on NESdev Wiki