mirror of
https://github.com/cc65/cc65.git
synced 2024-11-19 06:31:31 +00:00
47 lines
1.0 KiB
ArmAsm
47 lines
1.0 KiB
ArmAsm
; 2018-04-13, Jede (jede@oric.org)
|
|
;
|
|
|
|
; void cputc (char c);
|
|
;
|
|
|
|
.export _cputc, CHARCOLOR, CHARCOLOR_CHANGE, BGCOLOR, BGCOLOR_CHANGE
|
|
|
|
.include "telestrat.inc"
|
|
|
|
.proc _cputc
|
|
ldx CHARCOLOR_CHANGE
|
|
beq do_not_change_color_foreground
|
|
|
|
pha
|
|
lda CHARCOLOR
|
|
BRK_TELEMON $4E ; Change color on the screen (foreground)
|
|
lda #$00
|
|
sta CHARCOLOR_CHANGE
|
|
pla
|
|
|
|
do_not_change_color_foreground:
|
|
ldx BGCOLOR_CHANGE
|
|
beq do_not_change_color
|
|
|
|
pha
|
|
lda BGCOLOR
|
|
ORA #%00010000 ; Add 16 because background color is an attribute between 16 and 23. 17 is red background for example
|
|
BRK_TELEMON XFWR ; Change color on the screen (background)
|
|
lda #$00
|
|
sta BGCOLOR_CHANGE
|
|
|
|
pla
|
|
|
|
do_not_change_color:
|
|
BRK_TELEMON XFWR ; Macro send char to screen (channel 0)
|
|
rts
|
|
.endproc
|
|
CHARCOLOR:
|
|
.res 1
|
|
CHARCOLOR_CHANGE:
|
|
.res 1
|
|
BGCOLOR:
|
|
.res 1
|
|
BGCOLOR_CHANGE:
|
|
.res 1
|