]> 4ch.mooo.com Git - 16.git/blob - src/lib/modex16/256x192.h
going to work on this later ww
[16.git] / src / lib / modex16 / 256x192.h
1 /* Project 16 Source Code~\r
2  * Copyright (C) 2012-2015 sparky4 & pngwen & andrius4669\r
3  *\r
4  * This file is part of Project 16.\r
5  *\r
6  * Project 16 is free software; you can redistribute it and/or modify\r
7  * it under the terms of the GNU General Public License as published by\r
8  * the Free Software Foundation; either version 3 of the License, or\r
9  * (at your option) any later version.\r
10  *\r
11  * Project 16 is distributed in the hope that it will be useful,\r
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of\r
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
14  * GNU General Public License for more details.\r
15  *\r
16  * You should have received a copy of the GNU General Public License\r
17  * along with this program.  If not, see <http://www.gnu.org/licenses/>, or\r
18  * write to the Free Software Foundation, Inc., 51 Franklin Street,\r
19  * Fifth Floor, Boston, MA 02110-1301 USA.\r
20  *\r
21  */\r
22 \r
23 #ifndef _DIX_H_\r
24 #define _DIX_H_\r
25 \r
26 #include "src/lib/types.h"\r
27 \r
28 /*static const word ModeX_256x224regs[75] =\r
29 {\r
30         0x3c2, 0x00, 0xe3,\r
31         0x3d4, 0x00, 0x5f,\r
32         0x3d4, 0x01, 0x3f,\r
33         0x3d4, 0x02, 0x40,\r
34         0x3d4, 0x03, 0x82,\r
35         0x3d4, 0x04, 0x4a,\r
36         0x3d4, 0x05, 0x9a,\r
37         0x3d4, 0x06, 0x0b,\r
38         0x3d4, 0x07, 0x3e,\r
39         0x3d4, 0x08, 0x00,\r
40         0x3d4, 0x09, 0x41,\r
41         0x3d4, 0x10, 0xda,\r
42         0x3d4, 0x11, 0x9c,\r
43         0x3d4, 0x12, 0xbf,\r
44         0x3d4, 0x13, 0x20,\r
45         0x3d4, 0x14, 0x00,\r
46         0x3d4, 0x15, 0xc7,\r
47         0x3d4, 0x16, 0x04,\r
48         0x3d4, 0x17, 0xe3,\r
49         0x3c4, 0x01, 0x01,\r
50         0x3c4, 0x04, 0x06,\r
51         0x3ce, 0x05, 0x40,\r
52         0x3ce, 0x06, 0x05,\r
53         0x3c0, 0x10, 0x41,\r
54         0x3c0, 0x13, 0x00\r
55 };*/\r
56 \r
57 static const word ModeX_256x192regs[] = {\r
58         0x3200,         /* Horizontal total */\r
59         0x2701,         /* horizontal display enable end */\r
60         0x2802,         /* Start horizontal blanking */\r
61         0x2003,         /* End horizontal blanking */\r
62         0x2b04,         /* Start horizontal retrace */\r
63         0x7005,         /* End horizontal retrace */\r
64         0x0d06,          /* vertical total */\r
65         0x3e07,          /* overflow (bit 8 of vertical counts) */\r
66         0x4309,          /* cell height (2 to double-scan */\r
67         0xea10,          /* v sync start */\r
68         0xac11,          /* v sync end and protect cr0-cr7 */\r
69         0xdf12,          /* vertical displayed */\r
70         0x1413,         /* offset/logical width */\r
71         0x0014,          /* turn off dword mode */\r
72         0xe715,          /* v blank start */\r
73         0x0616,          /* v blank end */\r
74         0xe317            /* turn on byte mode */\r
75 };\r
76 \r
77 #endif /*_DIX_H_*/\r
78 /*void\r
79 tg::mode160x120()\r
80 {\r
81     int crtc11;\r
82 \r
83     outp(0x3d4, 0x11); // unlock crtc\r
84     crtc11 = inp(0x3d5) & 0x7f;\r
85     outp(0x3d4, 0x11);\r
86     outp(0x3d5, crtc11);\r
87 \r
88     width   = 160;\r
89     height  = 120;\r
90     maxx    = 159;\r
91     maxy    = 119;\r
92     pages   = 13;\r
93     lineSize = 40;\r
94     pageSize = 19200;\r
95     modeName = "160x120";\r
96 \r
97     outp(0x3c2, 0xe3);   // mor\r
98 \r
99     outp(0x3d4, 0x00); // crtc\r
100     outp(0x3d5, 0x32);\r
101 \r
102     outp(0x3d4, 0x01); // crtc\r
103     outp(0x3d5, 0x27);\r
104 \r
105     outp(0x3d4, 0x02); // crtc\r
106     outp(0x3d5, 0x28);\r
107 \r
108     outp(0x3d4, 0x03); // crtc\r
109     outp(0x3d5, 0x20);\r
110 \r
111     outp(0x3d4, 0x04); // crtc\r
112     outp(0x3d5, 0x2b);\r
113 \r
114     outp(0x3d4, 0x05); // crtc\r
115     outp(0x3d5, 0x70);\r
116 \r
117     outp(0x3d4, 0x06); // crtc\r
118     outp(0x3d5, 0x0d);\r
119 \r
120     outp(0x3d4, 0x07); // crtc\r
121     outp(0x3d5, 0x3e);\r
122 \r
123     outp(0x3d4, 0x08); // crtc\r
124     outp(0x3d5, 0x00);\r
125 \r
126     outp(0x3d4, 0x09); // crtc\r
127     outp(0x3d5, 0x43);\r
128 \r
129     outp(0x3d4, 0x10); // crtc\r
130     outp(0x3d5, 0xea);\r
131 \r
132     outp(0x3d4, 0x11); // crtc\r
133     outp(0x3d5, 0xac);\r
134 \r
135     outp(0x3d4, 0x12); // crtc\r
136     outp(0x3d5, 0xdf);\r
137 \r
138     outp(0x3d4, 0x13); // crtc\r
139     outp(0x3d5, 0x14);\r
140 \r
141     outp(0x3d4, 0x14); // crtc\r
142     outp(0x3d5, 0x00);\r
143 \r
144     outp(0x3d4, 0x15); // crtc\r
145     outp(0x3d5, 0xe7);\r
146 \r
147     outp(0x3d4, 0x16); // crtc\r
148     outp(0x3d5, 0x06);\r
149 \r
150     outp(0x3d4, 0x17); // crtc\r
151     outp(0x3d5, 0xe3);\r
152 \r
153     outp(0x3c4, 0x01); // seq\r
154     outp(0x3c5, 0x01);\r
155 \r
156     outp(0x3c4, 0x03); // seq\r
157     outp(0x3c5, 0x00);\r
158 \r
159     outp(0x3c4, 0x04); // seq\r
160     outp(0x3c5, 0x06);\r
161 \r
162     outp(0x3ce, 0x05); // gcr\r
163     outp(0x3cf, 0x40);\r
164 \r
165     outp(0x3ce, 0x06); // gcr\r
166     outp(0x3cf, 0x05);\r
167 \r
168     inp(0x3da);          // acr\r
169     outp(0x3c0, 0x10 | 0x20);\r
170     outp(0x3c0, 0x41);\r
171 \r
172     inp(0x3da);          // acr\r
173     outp(0x3c0, 0x11 | 0x20);\r
174     outp(0x3c0, 0x00);\r
175 \r
176     inp(0x3da);          // acr\r
177     outp(0x3c0, 0x12 | 0x20);\r
178     outp(0x3c0, 0x0f);\r
179 \r
180     inp(0x3da);          // acr\r
181     outp(0x3c0, 0x13 | 0x20);\r
182     outp(0x3c0, 0x00);\r
183 \r
184     inp(0x3da);          // acr\r
185     outp(0x3c0, 0x14 | 0x20);\r
186     outp(0x3c0, 0x00);\r
187 \r
188     outp(0x3d4, 0x11); // lock crtc\r
189     crtc11 = inp(0x3d5) | 0x80;\r
190     outp(0x3d4, 0x11);\r
191     outp(0x3d5, crtc11);\r
192 }*/\r