PicoVGA  1.0-cmake
VGA/TV display on Raspberry Pico
All Data Structures Files Functions Variables Enumerator Modules Pages
vga_pal.h
Go to the documentation of this file.
1 
8 #ifndef _VGA_PAL_H
9 #define _VGA_PAL_H
10 
16 #define MULTICOL(a,b,c,d) ((a)|((b)<<8)|((c)<<16)|((d)<<24))
18 
19 // CGA colors
20 #define CGACOL_0 0
21 #define CGACOL_1 2
22 #define CGACOL_2 20
23 #define CGACOL_3 22
24 #define CGACOL_4 160
25 #define CGACOL_5 162
26 #define CGACOL_6 168
27 #define CGACOL_7 182
28 #define CGACOL_8 73
29 #define CGACOL_9 75
30 #define CGACOL_10 93
31 #define CGACOL_11 95
32 #define CGACOL_12 233
33 #define CGACOL_13 235
34 #define CGACOL_14 253
35 #define CGACOL_15 255
36 
37 // ZX Spectrum color
38 #define ZXCOL_0 0
39 #define ZXCOL_1 2
40 #define ZXCOL_2 160
41 #define ZXCOL_3 162
42 #define ZXCOL_4 20
43 #define ZXCOL_5 22
44 #define ZXCOL_6 180
45 #define ZXCOL_7 182
46 #define ZXCOL_8 73
47 #define ZXCOL_9 3
48 #define ZXCOL_10 224
49 #define ZXCOL_11 227
50 #define ZXCOL_12 28
51 #define ZXCOL_13 31
52 #define ZXCOL_14 252
53 #define ZXCOL_15 255
54 
55 // Colors
56 // GP0 ... B0 ... VGA B0 blue
57 // GP1 ... B1 ... VGA B1
58 // GP2 ... B2 ... VGA G0 green
59 // GP3 ... B3 ... VGA G1
60 // GP4 ... B4 ... VGA G2
61 // GP5 ... B5 ... VGA R0 red
62 // GP6 ... B6 ... VGA R1
63 // GP7 ... B7 ... VGA R2
64 
65 #define COL_BLACK 0
66 
67 #define COL_DARKBLUE B0
68 #define COL_SEMIBLUE B1
69 #define COL_BLUE (B0+B1)
70 #define COL_MOREBLUE (COL_BLUE+B3+B6)
71 #define COL_LIGHTBLUE (COL_BLUE+B4+B7)
72 
73 #define COL_DARKGREEN B3
74 #define COL_SEMIGREEN B4
75 #define COL_GREEN (B2+B3+B4)
76 #define COL_MOREGREEN (COL_GREEN+B0+B6)
77 #define COL_LIGHTGREEN (COL_GREEN+B1+B7)
78 
79 #define COL_DARKRED B6
80 #define COL_SEMIRED B7
81 #define COL_RED (B5+B6+B7)
82 #define COL_MORERED (COL_RED+B0+B3)
83 #define COL_LIGHTRED (COL_RED+B1+B4)
84 
85 #define COL_DARKCYAN (B0+B3)
86 #define COL_SEMICYAN (B1+B4)
87 #define COL_CYAN (B0+B1+B2+B3+B4)
88 
89 #define COL_DARKMAGENTA (B0+B6)
90 #define COL_SEMIMAGENTA (B1+B7)
91 #define COL_MAGENTA (B0+B1+B5+B6+B7)
92 
93 #define COL_DARKYELLOW (B3+B6)
94 #define COL_SEMIYELLOW (B4+B7)
95 #define COL_YELLOW (B2+B3+B4+B5+B6+B7)
96 
97 #define COL_GRAY0 0
98 #define COL_GRAY1 (B2+B5)
99 #define COL_GRAY2 (B0+B3+B6)
100 #define COL_GRAY3 (B0+B2+B3+B5+B6)
101 #define COL_GRAY4 (B1+B4+B7)
102 #define COL_GRAY5 (B1+B2+B4+B5+B7)
103 #define COL_GRAY6 (B0+B1+B3+B4+B6+B7)
104 #define COL_GRAY7 (B0+B1+B2+B3+B4+B5+B6+B7)
105 
106 #define COL_WHITE COL_GRAY7
107 
109 #define COLRGB(r,g,b) ((u8)(((r)&0xe0)|(((g)&0xe0)>>3)|((b)>>6)))
110 
112 extern u8 DefPal16[16]; // - do not set "const", to stay in faster RAM
113 
115 extern u8 ZXPal16[16]; // - do not set "const", to stay in faster RAM
116 
117 // 4-color palettes (CGA colors)
118 // - do not set "const", to stay in faster RAM
119 extern u8 PalCGA1[4];
120 extern u8 PalCGA2[4];
121 extern u8 PalCGA3[4];
122 extern u8 PalCGA4[4];
123 extern u8 PalCGA5[4];
124 extern u8 PalCGA6[4];
125 
126 // 4-color palette translation table
127 //extern u32 Pal4Trans[256];
128 //extern u32 Pal4Plane[256];
129 
130 // 16-color palette translation table
131 //extern u16 Pal16Trans[256];
132 //extern u16 ZX16Trans[256];
133 
134 // values of color components
135 extern u8 RGVal[8];
136 extern u8 BVal[4];
137 
144 int ColDist(u8 col1, u8 col2);
145 
151 void GenGrad(u8* dst, int w);
152 
154 
155 #endif // _VGA_PAL_H
PalCGA6
u8 PalCGA6[4]
4-color CGA palette 1, high intensity (black, light cyan, light red, white)
Definition: vga_pal.cpp:61
PalCGA2
u8 PalCGA2[4]
4-color CGA palette 0, high intensity (black, light green, light red, yellow)
Definition: vga_pal.cpp:57
ColDist
int ColDist(u8 col1, u8 col2)
Distance of 2 colors in 332 format (R3G3B2)
Definition: vga_pal.cpp:77
PalCGA3
u8 PalCGA3[4]
4-color CGA palette 1, low intensity (black, dark cyan, dark magenta, light gray)
Definition: vga_pal.cpp:58
GenGrad
void GenGrad(u8 *dst, int w)
Generate gradient.
Definition: vga_pal.cpp:119
PalCGA5
u8 PalCGA5[4]
4-color CGA palette 1, low intensity (black, dark cyan, dark red, light gray)
Definition: vga_pal.cpp:60
BVal
u8 BVal[4]
Values of Blue components.
Definition: vga_pal.cpp:73
RGVal
u8 RGVal[8]
Values of Red and Green components.
Definition: vga_pal.cpp:72
DefPal16
u8 DefPal16[16]
default 16-color palettes (CGA colors)
Definition: vga_pal.cpp:13
PalCGA4
u8 PalCGA4[4]
4-color CGA palette 1, high intensity (black, light cyan, light magenta, white)
Definition: vga_pal.cpp:59
PalCGA1
u8 PalCGA1[4]
4-color CGA palette 0, low intensity (black, dark green, brown)
Definition: vga_pal.cpp:56
ZXPal16
u8 ZXPal16[16]
ZX Spectrum color palettes.
Definition: vga_pal.cpp:35