From: Greg King Date: Mon, 4 Mar 2019 15:19:27 +0000 (-0500) Subject: Refactorred a CBM screen-code macro, so that we can use it as an operand. X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=13fa31a3bcb6f304a8cc0e26de4af0f6e75ac5e3;p=cc65 Refactorred a CBM screen-code macro, so that we can use it as an operand. For example: lda #scrbyte 'B' --- diff --git a/asminc/cbm.mac b/asminc/cbm.mac index b2bfe5992..6d7ac7e8d 100644 --- a/asminc/cbm.mac +++ b/asminc/cbm.mac @@ -1,9 +1,13 @@ ; Convert characters to screen codes -; Helper macro that converts and outputs one character +; Macro that converts one character. +; scrbyte() can be used as an instruction operand +.define scrbyte(code) (<(.strat ("h@dbdlhh", code >> 5) << 4) ^ code) + +; Helper macro that stores one character .macro _scrcode char .if (char < 256) - .byte <(.strat ("h@dbdlhh", char >> 5) << 4) ^ char + .byte scrbyte {char} .else .error "scrcode: Character constant out of range" .endif @@ -38,13 +42,9 @@ ; Anything else is an error .else - .error "scrcode: invalid argument type" - .endif ; Call the macro recursively with the remaining args scrcode arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9 .endmacro - -