cc65/libsrc/vic20/color.s

61 lines
1.2 KiB
ArmAsm

;
; Ullrich von Bassewitz, 06.08.1998
; Adapted for Vic20 by Steve Schmidtke 05.08.2002
;
; unsigned char __fastcall__ textcolor (unsigned char color);
; unsigned char __fastcall__ bgcolor (unsigned char color);
; unsigned char __fastcall__ bordercolor (unsigned char color);
;
.export _textcolor, _bgcolor, _bordercolor
.importzp tmp1
.include "vic20.inc"
.code
_textcolor:
ldx CHARCOLOR ; get old value
sta CHARCOLOR ; set new value
txa
rts
_bgcolor:
asl
asl
asl
asl
sta tmp1
sei ; don't want anything messing around while we update
lda VIC_COLOR ; get old value
and #$0F
tax
ora tmp1
sta VIC_COLOR ; set new value
cli
txa
lsr
lsr
lsr
lsr
rts
_bordercolor:
and #$07
sta tmp1
sei ; don't want anything messing around while we update
lda VIC_COLOR ; get old value
and #$F8
tax
ora tmp1
sta VIC_COLOR ; set new value
cli
txa
rts