1
0
mirror of https://github.com/cc65/cc65.git synced 2024-07-05 21:29:03 +00:00
cc65/libsrc/c128/color.s
cuz 8775a9da8a Add 80 column mode
git-svn-id: svn://svn.cc65.org/cc65/trunk@1788 b7a2c559-68d2-44c3-8de9-860c34a00d81
2002-12-19 21:22:22 +00:00

59 lines
1.3 KiB
ArmAsm

;
; Ullrich von Bassewitz, 06.08.1998
;
; 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
.include "c128.inc"
.proc _textcolor
bit MODE ; Check 80/40 column mode
bmi @L1 ; Jump if 40 columns
ldx CHARCOLOR ; get old value
sta CHARCOLOR ; set new value
txa
ldx #$00
rts
@L1: tax ; Move new color to X
lda CHARCOLOR ; Get old color + attributes
and #$F0 ; Keep old attributes
ora $CE5C,x ; Translate VIC color -> VDC color
ldx CHARCOLOR ; Get the old color
sta CHARCOLOR ; Set the new color + old attributes
txa ; Old color -> A
and #$0F ; Mask out attributes
ldx #$00 ; Load high byte
rts
.endproc
.proc _bgcolor
ldx VIC_BG_COLOR0 ; get old value
sta VIC_BG_COLOR0 ; set new value
txa
ldx #$00
rts
.endproc
.proc _bordercolor
ldx VIC_BORDERCOLOR ; get old value
sta VIC_BORDERCOLOR ; set new value
txa
ldx #$00
rts
.endproc