]> git.sur5r.net Git - cc65/blob - libsrc/pce/color.s
45eb9ffcd80d6b5fc5e68c74457250914dcf8cae
[cc65] / libsrc / pce / color.s
1 ;
2 ; unsigned char __fastcall__ textcolor (unsigned char color);
3 ; unsigned char __fastcall__ bgcolor (unsigned char color);
4 ; unsigned char __fastcall__ bordercolor (unsigned char color);
5 ;
6
7         .export         _textcolor, _bgcolor, _bordercolor
8         .export         colors
9
10         .import         return0
11
12         .include        "pce.inc"
13         .include        "extzp.inc"
14
15 _bordercolor    := return0              ; always black
16
17 _textcolor:
18         ldx     CHARCOLOR               ; get old value
19         sta     CHARCOLOR               ; set new value
20         txa
21         rts
22
23 _bgcolor:
24         ldx     BGCOLOR                 ; get old value
25         sta     BGCOLOR                 ; set new value
26         asl     a
27         tay
28
29         stz     VCE_ADDR_LO
30         stz     VCE_ADDR_HI
31         lda     colors,y
32         sta     VCE_DATA_LO
33         lda     colors+1,y
34         sta     VCE_DATA_HI
35
36         txa
37         rts
38
39 .rodata
40
41         ;         G      R      B
42 colors: .word   ((0<<6)+(0<<3)+(0))     ; $0 black
43         .word   ((7<<6)+(7<<3)+(7))     ; $1 white
44         .word   ((0<<6)+(7<<3)+(0))     ; $2 red
45         .word   ((7<<6)+(0<<3)+(7))     ; $3 cyan
46         .word   ((0<<6)+(5<<3)+(7))     ; $4 violet
47         .word   ((7<<6)+(0<<3)+(0))     ; $5 green
48         .word   ((0<<6)+(0<<3)+(7))     ; $6 blue
49         .word   ((7<<6)+(7<<3)+(0))     ; $7 yellow
50         .word   ((5<<6)+(7<<3)+(0))     ; $8 orange
51         .word   ((3<<6)+(4<<3)+(3))     ; $9 brown
52         .word   ((4<<6)+(7<<3)+(4))     ; $A light red
53         .word   ((3<<6)+(3<<3)+(3))     ; $B dark grey
54         .word   ((4<<6)+(4<<3)+(4))     ; $C middle grey
55         .word   ((7<<6)+(4<<3)+(4))     ; $D light green
56         .word   ((4<<6)+(4<<3)+(7))     ; $E light blue
57         .word   ((6<<6)+(6<<3)+(6))     ; $F light gray
58
59 ;-------------------------------------------------------------------------------
60 ; force the init constructor to be imported
61
62         .import initconio
63 conio_init      = initconio