c62d2810 |
1 | /* This file is "#include"d from dos-video.c and svga-video.c */ |
2 | |
3 | typedef struct { |
4 | uint8 p; |
5 | uint8 i; |
6 | uint8 v; |
7 | } vgareg; |
8 | |
9 | vgareg v256x224_103[25] = |
10 | { |
11 | { 0xc2, 0x0, 0xe7}, |
12 | { 0xd4, 0x0, 0x45}, |
13 | { 0xd4, 0x1, 0x3f}, |
14 | { 0xd4, 0x2, 0x40}, |
15 | { 0xd4, 0x3, 0x86}, |
16 | { 0xd4, 0x4, 0x3f}, |
17 | { 0xd4, 0x5, 0x10}, |
18 | { 0xd4, 0x6, 0xcd}, |
19 | { 0xd4, 0x7, 0x1f}, |
20 | { 0xd4, 0x8, 0x0}, |
21 | { 0xd4, 0x9, 0x41}, |
22 | { 0xd4, 0x10, 0xc0}, |
23 | { 0xd4, 0x11, 0xac}, |
24 | { 0xd4, 0x12, 0xbf}, |
25 | { 0xd4, 0x13, 0x20}, |
26 | { 0xd4, 0x14, 0x40}, // |
27 | { 0xd4, 0x15, 0xe7}, |
28 | { 0xd4, 0x16, 0x06}, // |
29 | { 0xd4, 0x17, 0xa3}, |
30 | { 0xc4, 0x1, 0x1}, |
31 | { 0xc4, 0x4, 0xe}, // |
32 | { 0xce, 0x5, 0x40}, |
33 | { 0xce, 0x6, 0x5}, |
34 | { 0xc0, 0x10, 0x41}, |
35 | { 0xc0, 0x13, 0x0}, |
36 | }; |
37 | |
38 | vgareg v256x240[25] = |
39 | { |
40 | { 0xc2, 0x0, 0xe3}, |
41 | { 0xd4, 0x0, 0x4f}, |
42 | { 0xd4, 0x1, 0x3f}, |
43 | { 0xd4, 0x2, 0x40}, |
44 | { 0xd4, 0x3, 0x92}, |
45 | { 0xd4, 0x4, 0x44}, |
46 | { 0xd4, 0x5, 0x10}, |
47 | { 0xd4, 0x6, 0x0a}, |
48 | { 0xd4, 0x7, 0x3e}, |
49 | { 0xd4, 0x8, 0x00}, |
50 | { 0xd4, 0x9, 0x41}, |
51 | { 0xd4, 0x10, 0xea}, |
52 | { 0xd4, 0x11, 0xac}, |
53 | { 0xd4, 0x12, 0xdf}, |
54 | { 0xd4, 0x13, 0x20}, |
55 | { 0xd4, 0x14, 0x40}, |
56 | { 0xd4, 0x15, 0xe7}, |
57 | { 0xd4, 0x16, 0x06}, |
58 | { 0xd4, 0x17, 0xa3}, |
59 | { 0xc4, 0x1, 0x1}, |
60 | { 0xc4, 0x4, 0xe}, |
61 | { 0xce, 0x5, 0x40}, |
62 | { 0xce, 0x6, 0x5}, |
63 | { 0xc0, 0x10, 0x41}, |
64 | { 0xc0, 0x13, 0x0} |
65 | }; |
66 | |
67 | vgareg v256x224S[25] = |
68 | { |
69 | { 0xc2, 0x0, 0xe3}, |
70 | { 0xd4, 0x0, 0x5f}, |
71 | { 0xd4, 0x1, 0x3f}, |
72 | { 0xd4, 0x2, 0x40}, |
73 | { 0xd4, 0x3, 0x82}, |
74 | { 0xd4, 0x4, 0x4e}, |
75 | { 0xd4, 0x5, 0x96}, |
76 | { 0xd4, 0x6, 0x5}, |
77 | { 0xd4, 0x7, 0x1}, |
78 | { 0xd4, 0x8, 0x0}, |
79 | { 0xd4, 0x9, 0x40}, |
80 | { 0xd4, 0x10, 0xea}, |
81 | { 0xd4, 0x11, 0xac}, |
82 | { 0xd4, 0x12, 0xdf}, |
83 | { 0xd4, 0x13, 0x20}, |
84 | { 0xd4, 0x14, 0x40}, |
85 | { 0xd4, 0x15, 0xe7}, |
86 | { 0xd4, 0x16, 0x0}, |
87 | { 0xd4, 0x17, 0xe3}, |
88 | { 0xc4, 0x1, 0x1}, |
89 | { 0xc4, 0x4, 0xe}, |
90 | { 0xce, 0x5, 0x40}, |
91 | { 0xce, 0x6, 0x5}, |
92 | { 0xc0, 0x10, 0x41}, |
93 | { 0xc0, 0x13, 0x0} |
94 | }; |
95 | |
96 | vgareg v256x256[25] = |
97 | { |
98 | { 0xc2, 0x0, 0xe7}, |
99 | { 0xd4, 0x0, 0x5f}, |
100 | { 0xd4, 0x1, 0x3f}, |
101 | { 0xd4, 0x2, 0x40}, |
102 | { 0xd4, 0x3, 0x82}, |
103 | { 0xd4, 0x4, 0x4a}, |
104 | { 0xd4, 0x5, 0x9a}, |
105 | { 0xd4, 0x6, 0x23}, |
106 | { 0xd4, 0x7, 0xb2}, |
107 | { 0xd4, 0x8, 0x0}, |
108 | { 0xd4, 0x9, 0x61}, |
109 | { 0xd4, 0x10, 0xa}, |
110 | { 0xd4, 0x11, 0xac}, |
111 | { 0xd4, 0x12, 0xff}, |
112 | { 0xd4, 0x13, 0x20}, |
113 | { 0xd4, 0x14, 0x40}, |
114 | { 0xd4, 0x15, 0x7}, |
115 | { 0xd4, 0x16, 0x1a}, |
116 | { 0xd4, 0x17, 0xa3}, |
117 | { 0xc4, 0x1, 0x1}, |
118 | { 0xc4, 0x4, 0xe}, |
119 | { 0xce, 0x5, 0x40}, |
120 | { 0xce, 0x6, 0x5}, |
121 | { 0xc0, 0x10, 0x41}, |
122 | { 0xc0, 0x13, 0x0} |
123 | }; |
124 | |
125 | vgareg v256x256S[25] = |
126 | { |
127 | { 0xc2, 0x00, 0xe7},{ 0xd4, 0x00, 0x5F},{ 0xd4, 0x01, 0x3f}, |
128 | { 0xd4, 0x02, 0x40},{ 0xd4, 0x03, 0x82},{ 0xd4, 0x04, 0x4a}, |
129 | { 0xd4, 0x05, 0x9a},{ 0xd4, 0x06, 0x25},{ 0xd4, 0x07, 0x15}, |
130 | { 0xd4, 0x08, 0x00},{ 0xd4, 0x09, 0x60},{ 0xd4, 0x10, 0x0a}, |
131 | { 0xd4, 0x11, 0xac},{ 0xd4, 0x12, 0xff},{ 0xd4, 0x13, 0x20}, |
132 | { 0xd4, 0x14, 0x40},{ 0xd4, 0x15, 0x07},{ 0xd4, 0x16, 0x1a}, |
133 | { 0xd4, 0x17, 0xa3},{ 0xc4, 0x01, 0x01},{ 0xc4, 0x04, 0x0e}, |
134 | { 0xce, 0x05, 0x40},{ 0xce, 0x06, 0x05},{ 0xc0, 0x10, 0x41}, |
135 | { 0xc0, 0x13, 0x00} |
136 | }; |
137 | |
138 | static void VGAPortSet(vgareg R) |
139 | { |
140 | int p,i,v; |
141 | |
142 | p=0x300|R.p; |
143 | i=R.i; |
144 | v=R.v; |
145 | |
146 | switch(p) |
147 | { |
148 | case 0x3C0: inportb(0x3DA); |
149 | outportb(0x3C0,i); |
150 | outportb(0x3C0,v); |
151 | break; |
152 | case 0x3C2: |
153 | case 0x3C3: |
154 | default: outportb(p, v); |
155 | break; |
156 | case 0x3C4: if(i==1) |
157 | { |
158 | outportw(0x3c4,0x100); |
159 | outportw(0x3c4,(v<<8)|1); |
160 | outportw(0x3c4,0x300); |
161 | break; |
162 | } |
163 | case 0x3CE: |
164 | case 0x3D4: outportw(p,i|(v<<8)); |
165 | break; |
166 | } |
167 | } |
168 | |