Refactorred a CBM screen-code macro, so that we can use it as an operand.
For example: lda #scrbyte 'B'
This commit is contained in:
parent
cc6559c3f6
commit
13fa31a3bc
1 changed files with 6 additions and 6 deletions
|
@ -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
|
||||
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue