Add more linker protections around variables accessed from 16bit mode.
[seabios.git] / src / font.c
1 #include "types.h" // u8
2
3 // Character Font for 320x200 & 640x200 Graphics (lower 128 characters)
4
5 /*
6  * This font comes from the fntcol16.zip package (c) by  Joseph Gil
7  * found at ftp://ftp.simtel.net/pub/simtelnet/msdos/screen/fntcol16.zip
8  * This font is public domain
9  */
10 const u8 vgafont8[128*8] __aligned(1) VAR16 = {
11     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
12     0x7e, 0x81, 0xa5, 0x81, 0xbd, 0x99, 0x81, 0x7e,
13     0x7e, 0xff, 0xdb, 0xff, 0xc3, 0xe7, 0xff, 0x7e,
14     0x6c, 0xfe, 0xfe, 0xfe, 0x7c, 0x38, 0x10, 0x00,
15     0x10, 0x38, 0x7c, 0xfe, 0x7c, 0x38, 0x10, 0x00,
16     0x38, 0x7c, 0x38, 0xfe, 0xfe, 0x7c, 0x38, 0x7c,
17     0x10, 0x10, 0x38, 0x7c, 0xfe, 0x7c, 0x38, 0x7c,
18     0x00, 0x00, 0x18, 0x3c, 0x3c, 0x18, 0x00, 0x00,
19     0xff, 0xff, 0xe7, 0xc3, 0xc3, 0xe7, 0xff, 0xff,
20     0x00, 0x3c, 0x66, 0x42, 0x42, 0x66, 0x3c, 0x00,
21     0xff, 0xc3, 0x99, 0xbd, 0xbd, 0x99, 0xc3, 0xff,
22     0x0f, 0x07, 0x0f, 0x7d, 0xcc, 0xcc, 0xcc, 0x78,
23     0x3c, 0x66, 0x66, 0x66, 0x3c, 0x18, 0x7e, 0x18,
24     0x3f, 0x33, 0x3f, 0x30, 0x30, 0x70, 0xf0, 0xe0,
25     0x7f, 0x63, 0x7f, 0x63, 0x63, 0x67, 0xe6, 0xc0,
26     0x99, 0x5a, 0x3c, 0xe7, 0xe7, 0x3c, 0x5a, 0x99,
27     0x80, 0xe0, 0xf8, 0xfe, 0xf8, 0xe0, 0x80, 0x00,
28     0x02, 0x0e, 0x3e, 0xfe, 0x3e, 0x0e, 0x02, 0x00,
29     0x18, 0x3c, 0x7e, 0x18, 0x18, 0x7e, 0x3c, 0x18,
30     0x66, 0x66, 0x66, 0x66, 0x66, 0x00, 0x66, 0x00,
31     0x7f, 0xdb, 0xdb, 0x7b, 0x1b, 0x1b, 0x1b, 0x00,
32     0x3e, 0x63, 0x38, 0x6c, 0x6c, 0x38, 0xcc, 0x78,
33     0x00, 0x00, 0x00, 0x00, 0x7e, 0x7e, 0x7e, 0x00,
34     0x18, 0x3c, 0x7e, 0x18, 0x7e, 0x3c, 0x18, 0xff,
35     0x18, 0x3c, 0x7e, 0x18, 0x18, 0x18, 0x18, 0x00,
36     0x18, 0x18, 0x18, 0x18, 0x7e, 0x3c, 0x18, 0x00,
37     0x00, 0x18, 0x0c, 0xfe, 0x0c, 0x18, 0x00, 0x00,
38     0x00, 0x30, 0x60, 0xfe, 0x60, 0x30, 0x00, 0x00,
39     0x00, 0x00, 0xc0, 0xc0, 0xc0, 0xfe, 0x00, 0x00,
40     0x00, 0x24, 0x66, 0xff, 0x66, 0x24, 0x00, 0x00,
41     0x00, 0x18, 0x3c, 0x7e, 0xff, 0xff, 0x00, 0x00,
42     0x00, 0xff, 0xff, 0x7e, 0x3c, 0x18, 0x00, 0x00,
43     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
44     0x30, 0x78, 0x78, 0x30, 0x30, 0x00, 0x30, 0x00,
45     0x6c, 0x6c, 0x6c, 0x00, 0x00, 0x00, 0x00, 0x00,
46     0x6c, 0x6c, 0xfe, 0x6c, 0xfe, 0x6c, 0x6c, 0x00,
47     0x30, 0x7c, 0xc0, 0x78, 0x0c, 0xf8, 0x30, 0x00,
48     0x00, 0xc6, 0xcc, 0x18, 0x30, 0x66, 0xc6, 0x00,
49     0x38, 0x6c, 0x38, 0x76, 0xdc, 0xcc, 0x76, 0x00,
50     0x60, 0x60, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00,
51     0x18, 0x30, 0x60, 0x60, 0x60, 0x30, 0x18, 0x00,
52     0x60, 0x30, 0x18, 0x18, 0x18, 0x30, 0x60, 0x00,
53     0x00, 0x66, 0x3c, 0xff, 0x3c, 0x66, 0x00, 0x00,
54     0x00, 0x30, 0x30, 0xfc, 0x30, 0x30, 0x00, 0x00,
55     0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x30, 0x60,
56     0x00, 0x00, 0x00, 0xfc, 0x00, 0x00, 0x00, 0x00,
57     0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x30, 0x00,
58     0x06, 0x0c, 0x18, 0x30, 0x60, 0xc0, 0x80, 0x00,
59     0x7c, 0xc6, 0xce, 0xde, 0xf6, 0xe6, 0x7c, 0x00,
60     0x30, 0x70, 0x30, 0x30, 0x30, 0x30, 0xfc, 0x00,
61     0x78, 0xcc, 0x0c, 0x38, 0x60, 0xcc, 0xfc, 0x00,
62     0x78, 0xcc, 0x0c, 0x38, 0x0c, 0xcc, 0x78, 0x00,
63     0x1c, 0x3c, 0x6c, 0xcc, 0xfe, 0x0c, 0x1e, 0x00,
64     0xfc, 0xc0, 0xf8, 0x0c, 0x0c, 0xcc, 0x78, 0x00,
65     0x38, 0x60, 0xc0, 0xf8, 0xcc, 0xcc, 0x78, 0x00,
66     0xfc, 0xcc, 0x0c, 0x18, 0x30, 0x30, 0x30, 0x00,
67     0x78, 0xcc, 0xcc, 0x78, 0xcc, 0xcc, 0x78, 0x00,
68     0x78, 0xcc, 0xcc, 0x7c, 0x0c, 0x18, 0x70, 0x00,
69     0x00, 0x30, 0x30, 0x00, 0x00, 0x30, 0x30, 0x00,
70     0x00, 0x30, 0x30, 0x00, 0x00, 0x30, 0x30, 0x60,
71     0x18, 0x30, 0x60, 0xc0, 0x60, 0x30, 0x18, 0x00,
72     0x00, 0x00, 0xfc, 0x00, 0x00, 0xfc, 0x00, 0x00,
73     0x60, 0x30, 0x18, 0x0c, 0x18, 0x30, 0x60, 0x00,
74     0x78, 0xcc, 0x0c, 0x18, 0x30, 0x00, 0x30, 0x00,
75     0x7c, 0xc6, 0xde, 0xde, 0xde, 0xc0, 0x78, 0x00,
76     0x30, 0x78, 0xcc, 0xcc, 0xfc, 0xcc, 0xcc, 0x00,
77     0xfc, 0x66, 0x66, 0x7c, 0x66, 0x66, 0xfc, 0x00,
78     0x3c, 0x66, 0xc0, 0xc0, 0xc0, 0x66, 0x3c, 0x00,
79     0xf8, 0x6c, 0x66, 0x66, 0x66, 0x6c, 0xf8, 0x00,
80     0xfe, 0x62, 0x68, 0x78, 0x68, 0x62, 0xfe, 0x00,
81     0xfe, 0x62, 0x68, 0x78, 0x68, 0x60, 0xf0, 0x00,
82     0x3c, 0x66, 0xc0, 0xc0, 0xce, 0x66, 0x3e, 0x00,
83     0xcc, 0xcc, 0xcc, 0xfc, 0xcc, 0xcc, 0xcc, 0x00,
84     0x78, 0x30, 0x30, 0x30, 0x30, 0x30, 0x78, 0x00,
85     0x1e, 0x0c, 0x0c, 0x0c, 0xcc, 0xcc, 0x78, 0x00,
86     0xe6, 0x66, 0x6c, 0x78, 0x6c, 0x66, 0xe6, 0x00,
87     0xf0, 0x60, 0x60, 0x60, 0x62, 0x66, 0xfe, 0x00,
88     0xc6, 0xee, 0xfe, 0xfe, 0xd6, 0xc6, 0xc6, 0x00,
89     0xc6, 0xe6, 0xf6, 0xde, 0xce, 0xc6, 0xc6, 0x00,
90     0x38, 0x6c, 0xc6, 0xc6, 0xc6, 0x6c, 0x38, 0x00,
91     0xfc, 0x66, 0x66, 0x7c, 0x60, 0x60, 0xf0, 0x00,
92     0x78, 0xcc, 0xcc, 0xcc, 0xdc, 0x78, 0x1c, 0x00,
93     0xfc, 0x66, 0x66, 0x7c, 0x6c, 0x66, 0xe6, 0x00,
94     0x78, 0xcc, 0xe0, 0x70, 0x1c, 0xcc, 0x78, 0x00,
95     0xfc, 0xb4, 0x30, 0x30, 0x30, 0x30, 0x78, 0x00,
96     0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xfc, 0x00,
97     0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0x78, 0x30, 0x00,
98     0xc6, 0xc6, 0xc6, 0xd6, 0xfe, 0xee, 0xc6, 0x00,
99     0xc6, 0xc6, 0x6c, 0x38, 0x38, 0x6c, 0xc6, 0x00,
100     0xcc, 0xcc, 0xcc, 0x78, 0x30, 0x30, 0x78, 0x00,
101     0xfe, 0xc6, 0x8c, 0x18, 0x32, 0x66, 0xfe, 0x00,
102     0x78, 0x60, 0x60, 0x60, 0x60, 0x60, 0x78, 0x00,
103     0xc0, 0x60, 0x30, 0x18, 0x0c, 0x06, 0x02, 0x00,
104     0x78, 0x18, 0x18, 0x18, 0x18, 0x18, 0x78, 0x00,
105     0x10, 0x38, 0x6c, 0xc6, 0x00, 0x00, 0x00, 0x00,
106     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff,
107     0x30, 0x30, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00,
108     0x00, 0x00, 0x78, 0x0c, 0x7c, 0xcc, 0x76, 0x00,
109     0xe0, 0x60, 0x60, 0x7c, 0x66, 0x66, 0xdc, 0x00,
110     0x00, 0x00, 0x78, 0xcc, 0xc0, 0xcc, 0x78, 0x00,
111     0x1c, 0x0c, 0x0c, 0x7c, 0xcc, 0xcc, 0x76, 0x00,
112     0x00, 0x00, 0x78, 0xcc, 0xfc, 0xc0, 0x78, 0x00,
113     0x38, 0x6c, 0x60, 0xf0, 0x60, 0x60, 0xf0, 0x00,
114     0x00, 0x00, 0x76, 0xcc, 0xcc, 0x7c, 0x0c, 0xf8,
115     0xe0, 0x60, 0x6c, 0x76, 0x66, 0x66, 0xe6, 0x00,
116     0x30, 0x00, 0x70, 0x30, 0x30, 0x30, 0x78, 0x00,
117     0x0c, 0x00, 0x0c, 0x0c, 0x0c, 0xcc, 0xcc, 0x78,
118     0xe0, 0x60, 0x66, 0x6c, 0x78, 0x6c, 0xe6, 0x00,
119     0x70, 0x30, 0x30, 0x30, 0x30, 0x30, 0x78, 0x00,
120     0x00, 0x00, 0xcc, 0xfe, 0xfe, 0xd6, 0xc6, 0x00,
121     0x00, 0x00, 0xf8, 0xcc, 0xcc, 0xcc, 0xcc, 0x00,
122     0x00, 0x00, 0x78, 0xcc, 0xcc, 0xcc, 0x78, 0x00,
123     0x00, 0x00, 0xdc, 0x66, 0x66, 0x7c, 0x60, 0xf0,
124     0x00, 0x00, 0x76, 0xcc, 0xcc, 0x7c, 0x0c, 0x1e,
125     0x00, 0x00, 0xdc, 0x76, 0x66, 0x60, 0xf0, 0x00,
126     0x00, 0x00, 0x7c, 0xc0, 0x78, 0x0c, 0xf8, 0x00,
127     0x10, 0x30, 0x7c, 0x30, 0x30, 0x34, 0x18, 0x00,
128     0x00, 0x00, 0xcc, 0xcc, 0xcc, 0xcc, 0x76, 0x00,
129     0x00, 0x00, 0xcc, 0xcc, 0xcc, 0x78, 0x30, 0x00,
130     0x00, 0x00, 0xc6, 0xd6, 0xfe, 0xfe, 0x6c, 0x00,
131     0x00, 0x00, 0xc6, 0x6c, 0x38, 0x6c, 0xc6, 0x00,
132     0x00, 0x00, 0xcc, 0xcc, 0xcc, 0x7c, 0x0c, 0xf8,
133     0x00, 0x00, 0xfc, 0x98, 0x30, 0x64, 0xfc, 0x00,
134     0x1c, 0x30, 0x30, 0xe0, 0x30, 0x30, 0x1c, 0x00,
135     0x18, 0x18, 0x18, 0x00, 0x18, 0x18, 0x18, 0x00,
136     0xe0, 0x30, 0x30, 0x1c, 0x30, 0x30, 0xe0, 0x00,
137     0x76, 0xdc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
138     0x00, 0x10, 0x38, 0x6c, 0xc6, 0xc6, 0xfe, 0x00,
139 };