/* : Link veralten (gelöscht),v 1.15 2007/01/07 15:13:52 miod Exp $ */
2
3 /*
4 * Copyright (c) 2005, Miodrag Vallat
5 *
6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions
8 * are met:
9 * 1. Redistributions of source code must retain the above copyright
10 * notice, this list of conditions and the following disclaimer.
11 * 2. Redistributions in binary form must reproduce the above copyright
12 * notice, this list of conditions and the following disclaimer in the
13 * documentation Link veralten (gelöscht)/Link veralten (gelöscht) other materials provided with the distribution.
14 *
15 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
16 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
17 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
18 * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
19 * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
20 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
21 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
22 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
23 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
24 * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
25 * POSSIBILITY OF SUCH DAMAGE.
26 */
27 /*
28 * Copyright (c) 1996 Jason R. Thorpe. All rights reserved.
29 * Copyright (c) 1988 University of Utah.
30 * Copyright (c) 1990, 1993
31 * The Regents of the University of California. All rights reserved.
32 *
33 * This code is derived from software contributed to Berkeley by
34 * the Systems Programming Group of the University of Utah Computer
35 * Science Department.
36 *
37 * Redistribution and use in source and binary forms, with or without
38 * modification, are permitted provided that the following conditions
39 * are met:
40 * 1. Redistributions of source code must retain the above copyright
41 * notice, this list of conditions and the following disclaimer.
42 * 2. Redistributions in binary form must reproduce the above copyright
43 * notice, this list of conditions and the following disclaimer in the
44 * documentation Link veralten (gelöscht)/Link veralten (gelöscht) other materials provided with the distribution.
45 * 3. Neither the name of the University nor the names of its contributors
46 * may be used to endorse or promote products derived from this software
47 * without specific prior written permission.
48 *
49 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
50 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
51 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
52 * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
53 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
54 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
55 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
56 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
57 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
58 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
59 * SUCH DAMAGE.
60 *
61 * from: Utah : Link veralten (gelöscht) 1.18 93/08/13$
62 *
63 * @(#)Link veralten (gelöscht) 8.4 (Berkeley) 1/12/94
64 */
65
66 /*
67 * Graphics routines for the Gatorbox.
68 *
69 * Note: In the context of this system, "gator" and "gatorbox" both refer to
70 * HP 987x0 graphics systems. "Gator" is not used for high res mono.
71 * (as in 9837 Gator systems)
72 */
73
74 #[B]include[/B] <Link veralten (gelöscht)>
75 #[B]include[/B] <Link veralten (gelöscht)>
76 #[B]include[/B] <Link veralten (gelöscht)>
77 #[B]include[/B] <Link veralten (gelöscht)>
78 #[B]include[/B] <Link veralten (gelöscht)>
79 #[B]include[/B] <Link veralten (gelöscht)>
80
81 #[B]include[/B] <Link veralten (gelöscht)>
82 #[B]include[/B] <Link veralten (gelöscht)>
83 #[B]include[/B] <Link veralten (gelöscht)>
84
85 #[B]include[/B] <Link veralten (gelöscht)>
86 #[B]include[/B] <Link veralten (gelöscht)>
87 #[B]include[/B] <Link veralten (gelöscht)>
88 #[B]include[/B] <Link veralten (gelöscht)>
89
90 #[B]include[/B] <Link veralten (gelöscht)>
91 #[B]include[/B] <Link veralten (gelöscht)>
92 #[B]include[/B] <Link veralten (gelöscht)>
93
94 #[B]include[/B] <Link veralten (gelöscht)>
95 #[B]include[/B] <Link veralten (gelöscht)>
96 #[B]include[/B] <Link veralten (gelöscht)>
97
98 [B]struct[/B] gbox_softc {
99 [B]struct[/B] Link veralten (gelöscht) sc_dev;
100 [B]struct[/B] Link veralten (gelöscht) *sc_fb;
101 [B]struct[/B] Link veralten (gelöscht) sc_fb_store;
102 [B]int[/B] sc_scode;
103 };
104
105 [B]int[/B] Link veralten (gelöscht)([B]struct[/B] Link veralten (gelöscht) *, [B]void[/B] *, [B]void[/B] *);
106 [B]void[/B] Link veralten (gelöscht)([B]struct[/B] Link veralten (gelöscht) *, [B]struct[/B] Link veralten (gelöscht) *, [B]void[/B] *);
107 [B]int[/B] Link veralten (gelöscht)([B]struct[/B] Link veralten (gelöscht) *, [B]void[/B] *, [B]void[/B] *);
108 [B]void[/B] Link veralten (gelöscht)([B]struct[/B] Link veralten (gelöscht) *, [B]struct[/B] Link veralten (gelöscht) *, [B]void[/B] *);
109
110 [B]struct[/B] Link veralten (gelöscht) gbox_dio_ca = {
111 [B]sizeof[/B]([B]struct[/B] Link veralten (gelöscht)), Link veralten (gelöscht), Link veralten (gelöscht)
112 };
113
114 [B]struct[/B] Link veralten (gelöscht) gbox_intio_ca = {
115 [B]sizeof[/B]([B]struct[/B] Link veralten (gelöscht)), Link veralten (gelöscht), Link veralten (gelöscht)
116 };
117
118 [B]struct[/B] Link veralten (gelöscht) gbox_cd = {
119 Link veralten (gelöscht), "gbox", Link veralten (gelöscht)
120 };
121
122 [B]int[/B] Link veralten (gelöscht)([B]struct[/B] Link veralten (gelöscht) *, [B]int[/B], [B]struct[/B] Link veralten (gelöscht) *);
123 [B]void[/B] Link veralten (gelöscht)([B]struct[/B] Link veralten (gelöscht) *);
124 [B]int[/B] Link veralten (gelöscht)([B]struct[/B] Link veralten (gelöscht) *, [B]struct[/B] Link veralten (gelöscht) *);
125 [B]void[/B] Link veralten (gelöscht)([B]struct[/B] Link veralten (gelöscht) *, Link veralten (gelöscht));
126 [B]int[/B] Link veralten (gelöscht)([B]struct[/B] Link veralten (gelöscht) *, Link veralten (gelöscht), Link veralten (gelöscht), Link veralten (gelöscht),
127 Link veralten (gelöscht), Link veralten (gelöscht), Link veralten (gelöscht), Link veralten (gelöscht), Link veralten (gelöscht));
128
129 [B]int[/B] Link veralten (gelöscht)([B]void[/B] *, Link veralten (gelöscht), Link veralten (gelöscht), [B]int[/B], [B]struct[/B] Link veralten (gelöscht) *);
130 [B]void[/B] Link veralten (gelöscht)([B]void[/B] *, Link veralten (gelöscht), Link veralten (gelöscht));
131
132 [B]struct[/B] Link veralten (gelöscht) gbox_accessops = {
133 Link veralten (gelöscht),
134 Link veralten (gelöscht),
135 Link veralten (gelöscht),
136 Link veralten (gelöscht),
137 Link veralten (gelöscht),
138 Link veralten (gelöscht), /* load_font */
139 Link veralten (gelöscht), /* scrollback */
140 Link veralten (gelöscht), /* getchar */
141 Link veralten (gelöscht)
142 };
143
144 /*
145 * Attachment glue
146 */
147 [B]int[/B]
148 gbox_intio_match([B]struct[/B] Link veralten (gelöscht) *Link veralten (gelöscht), [B]void[/B] *Link veralten (gelöscht), [B]void[/B] *Link veralten (gelöscht))
149 {
150 [B]struct[/B] Link veralten (gelöscht) *ia = Link veralten (gelöscht);
151 [B]struct[/B] Link veralten (gelöscht) *fbr;
152
153 fbr = ([B]struct[/B] Link veralten (gelöscht) *)Link veralten (gelöscht)(Link veralten (gelöscht));
154
155 [B]if[/B] (Link veralten (gelöscht)((Link veralten (gelöscht))fbr))
156 [B]return[/B] (0);
157
158 [B]if[/B] (fbr->Link veralten (gelöscht) == Link veralten (gelöscht) && fbr->Link veralten (gelöscht) == Link veralten (gelöscht)) {
159 Link veralten (gelöscht)->Link veralten (gelöscht) = (Link veralten (gelöscht))Link veralten (gelöscht);
160 [B]return[/B] (1);
161 }
162
163 [B]return[/B] (0);
164 }
165
166 [B]void[/B]
167 gbox_intio_attach([B]struct[/B] Link veralten (gelöscht) *Link veralten (gelöscht), [B]struct[/B] Link veralten (gelöscht) *Link veralten (gelöscht), [B]void[/B] *Link veralten (gelöscht))
168 {
169 [B]struct[/B] Link veralten (gelöscht) *sc = ([B]struct[/B] Link veralten (gelöscht) *)Link veralten (gelöscht);
170 [B]struct[/B] Link veralten (gelöscht) *fbr;
171
172 fbr = ([B]struct[/B] Link veralten (gelöscht) *)Link veralten (gelöscht)(Link veralten (gelöscht));
173 sc->Link veralten (gelöscht) = Link veralten (gelöscht);
174
175 [B]if[/B] (sc->Link veralten (gelöscht) == Link veralten (gelöscht)) {
176 sc->Link veralten (gelöscht) = &Link veralten (gelöscht);
177 } [B]else[/B] {
178 sc->Link veralten (gelöscht) = &sc->Link veralten (gelöscht);
179 Link veralten (gelöscht)(sc->Link veralten (gelöscht), sc->Link veralten (gelöscht), fbr);
180 }
181
182 Link veralten (gelöscht)(sc, &Link veralten (gelöscht), sc->Link veralten (gelöscht),
183 sc->Link veralten (gelöscht) == Link veralten (gelöscht), Link veralten (gelöscht));
184 }
185
186 [B]int[/B]
187 gbox_dio_match([B]struct[/B] Link veralten (gelöscht) *Link veralten (gelöscht), [B]void[/B] *Link veralten (gelöscht), [B]void[/B] *Link veralten (gelöscht))
188 {
189 [B]struct[/B] Link veralten (gelöscht) *da = Link veralten (gelöscht);
190
191 /* We can not appear in DIO-II space */
192 [B]if[/B] (Link veralten (gelöscht)(da->Link veralten (gelöscht)))
193 [B]return[/B] (0);
194
195 [B]if[/B] (da->Link veralten (gelöscht) == Link veralten (gelöscht) &&
196 da->Link veralten (gelöscht) == Link veralten (gelöscht))
197 [B]return[/B] (1);
198
199 [B]return[/B] (0);
200 }
201
202 [B]void[/B]
203 gbox_dio_attach([B]struct[/B] Link veralten (gelöscht) *Link veralten (gelöscht), [B]struct[/B] Link veralten (gelöscht) *Link veralten (gelöscht), [B]void[/B] *Link veralten (gelöscht))
204 {
205 [B]struct[/B] Link veralten (gelöscht) *sc = ([B]struct[/B] Link veralten (gelöscht) *)Link veralten (gelöscht);
206 [B]struct[/B] Link veralten (gelöscht) *da = Link veralten (gelöscht);
207 [B]struct[/B] Link veralten (gelöscht) * fbr;
208
209 sc->Link veralten (gelöscht) = da->Link veralten (gelöscht);
210 [B]if[/B] (sc->Link veralten (gelöscht) == Link veralten (gelöscht)) {
211 fbr = ([B]struct[/B] Link veralten (gelöscht) *)Link veralten (gelöscht); /* already mapped */
212 sc->Link veralten (gelöscht) = &Link veralten (gelöscht);
213 } [B]else[/B] {
214 sc->Link veralten (gelöscht) = &sc->Link veralten (gelöscht);
215 fbr = ([B]struct[/B] Link veralten (gelöscht) *)
216 Link veralten (gelöscht)(Link veralten (gelöscht)(sc->Link veralten (gelöscht)), da->Link veralten (gelöscht));
217 [B]if[/B] (fbr == Link veralten (gelöscht) ||
218 Link veralten (gelöscht)(sc->Link veralten (gelöscht), sc->Link veralten (gelöscht), fbr) != 0) {
219 Link veralten (gelöscht)(": can't map framebuffern");
220 [B]return[/B];
221 }
222 }
223
224 Link veralten (gelöscht)(sc, &Link veralten (gelöscht), sc->Link veralten (gelöscht),
225 sc->Link veralten (gelöscht) == Link veralten (gelöscht), Link veralten (gelöscht));
226 }
227
228 /*
229 * Initialize hardware and display routines.
230 */
231
232 [B]const[/B] Link veralten (gelöscht) crtc_init_data[] = {
233 0x29, 0x20, 0x23, 0x04, 0x30, 0x0b, 0x30,
234 0x30, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00
235 };
236
237 [B]int[/B]
238 gbox_reset([B]struct[/B] Link veralten (gelöscht) *fb, [B]int[/B] Link veralten (gelöscht), [B]struct[/B] Link veralten (gelöscht) *fbr)
239 {
240 [B]int[/B] rc;
241 Link veralten (gelöscht) i;
242
243 /* XXX don't trust hardware, force defaults */
244 fb->Link veralten (gelöscht) = 1024;
245 fb->Link veralten (gelöscht) = 1024;
246 fb->Link veralten (gelöscht) = 1024;
247 fb->Link veralten (gelöscht) = 768;
248 [B]if[/B] ((Link veralten (gelöscht) = Link veralten (gelöscht)(fb, Link veralten (gelöscht), fbr)) != 0)
249 [B]return[/B] (Link veralten (gelöscht));
250
251 fb->Link veralten (gelöscht) = Link veralten (gelöscht);
252 Link veralten (gelöscht)(fb);
253
254 /*
255 * Find out how many colors are available by determining
256 * which planes are installed. That is, write all ones to
257 * a frame buffer location, see how many ones are read back.
258 */
259 [B]if[/B] (1 /* fb->planes == 0 */) {
260 [B]volatile[/B] Link veralten (gelöscht) *fbp;
261 Link veralten (gelöscht) save;
262
263 Link veralten (gelöscht) = (Link veralten (gelöscht) *)fb->Link veralten (gelöscht);
264 Link veralten (gelöscht) = *Link veralten (gelöscht);
265 *Link veralten (gelöscht) = 0xff;
266 fb->Link veralten (gelöscht) = *Link veralten (gelöscht);
267 *Link veralten (gelöscht) = Link veralten (gelöscht);
268
269 [B]for[/B] (fb->Link veralten (gelöscht) = 1; fb->Link veralten (gelöscht) >= (1 << fb->Link veralten (gelöscht));
270 fb->Link veralten (gelöscht)++);
271 [B]if[/B] (fb->Link veralten (gelöscht) > 8)
272 fb->Link veralten (gelöscht) = 8;
273 fb->Link veralten (gelöscht) = (1 << fb->Link veralten (gelöscht)) - 1;
274 }
275
276 Link veralten (gelöscht)(fb);
277 [B]for[/B] (i = 0; i <= fb->Link veralten (gelöscht); i++)
278 Link veralten (gelöscht)(fb, i);
279
280 [B]return[/B] (0);
281 }
282
283 [B]void[/B]
284 gbox_restore([B]struct[/B] Link veralten (gelöscht) *fb)
285 {
286 [B]volatile[/B] [B]struct[/B] Link veralten (gelöscht) *gb = ([B]struct[/B] Link veralten (gelöscht) *)fb->Link veralten (gelöscht);
287 Link veralten (gelöscht) i;
288
289 /*
290 * The minimal info here is from the Gatorbox X driver.
291 */
292 gb->Link veralten (gelöscht) = 0x0;
293 gb->Link veralten (gelöscht).Link veralten (gelöscht) = 0x4;
294 gb->Link veralten (gelöscht) = Link veralten (gelöscht);
295 gb->Link veralten (gelöscht) = 0xff;
296 gb->Link veralten (gelöscht) = 0xff;
297
298 /*
299 * Program the 6845.
300 */
301 [B]for[/B] (i = 0; i < [B]sizeof[/B](Link veralten (gelöscht)); i++) {
302 gb->Link veralten (gelöscht) = i;
303 gb->Link veralten (gelöscht) = Link veralten (gelöscht)[i];
304 }
305
306 Link veralten (gelöscht)(gb);
307
308 /* Enable display */
309 gb->Link veralten (gelöscht).Link veralten (gelöscht) = 0x01;
310 }
311
312 [B]int[/B]
313 gbox_ioctl([B]void[/B] *v, Link veralten (gelöscht) Link veralten (gelöscht), Link veralten (gelöscht) Link veralten (gelöscht), [B]int[/B] Link veralten (gelöscht), [B]struct[/B] Link veralten (gelöscht) *p)
314 {
315 [B]struct[/B] Link veralten (gelöscht) *fb = v;
316 [B]struct[/B] Link veralten (gelöscht) *wdf;
317 Link veralten (gelöscht) i;
318
319 [B]switch[/B] (Link veralten (gelöscht)) {
320 [B]case[/B] Link veralten (gelöscht):
321 *(Link veralten (gelöscht) *)Link veralten (gelöscht) = Link veralten (gelöscht);
322 [B]break[/B];
323 [B]case[/B] Link veralten (gelöscht):
324 fb->Link veralten (gelöscht) = *(Link veralten (gelöscht) *)Link veralten (gelöscht);
325 [B]if[/B] (fb->Link veralten (gelöscht) == Link veralten (gelöscht)) {
326 Link veralten (gelöscht)(fb);
327 [B]for[/B] (i = 0; i <= fb->Link veralten (gelöscht); i++)
328 Link veralten (gelöscht)(fb, i);
329 }
330 [B]break[/B];
331 [B]case[/B] Link veralten (gelöscht):
332 Link veralten (gelöscht) = ([B]void[/B] *)Link veralten (gelöscht);
333 Link veralten (gelöscht)->Link veralten (gelöscht) = fb->Link veralten (gelöscht).Link veralten (gelöscht);
334 Link veralten (gelöscht)->Link veralten (gelöscht) = fb->Link veralten (gelöscht).Link veralten (gelöscht);
335 Link veralten (gelöscht)->Link veralten (gelöscht) = fb->Link veralten (gelöscht).Link veralten (gelöscht);
336 Link veralten (gelöscht)->Link veralten (gelöscht) = 1 << fb->Link veralten (gelöscht);
337 [B]break[/B];
338 [B]case[/B] Link veralten (gelöscht):
339 *(Link veralten (gelöscht) *)Link veralten (gelöscht) = fb->Link veralten (gelöscht).Link veralten (gelöscht);
340 [B]break[/B];
341 [B]case[/B] Link veralten (gelöscht):
342 [B]return[/B] (Link veralten (gelöscht)(fb, ([B]struct[/B] Link veralten (gelöscht) *)Link veralten (gelöscht)));
343 [B]case[/B] Link veralten (gelöscht):
344 [B]return[/B] (Link veralten (gelöscht)(fb, ([B]struct[/B] Link veralten (gelöscht) *)Link veralten (gelöscht)));
345 [B]case[/B] Link veralten (gelöscht):
346 [B]case[/B] Link veralten (gelöscht):
347 [B]break[/B];
348 [B]default[/B]:
349 [B]return[/B] (-1);
350 }
351
352 [B]return[/B] (0);
353 }
354
355 [B]void[/B]
356 gbox_burner([B]void[/B] *v, Link veralten (gelöscht) Link veralten (gelöscht), Link veralten (gelöscht) Link veralten (gelöscht))
357 {
358 [B]struct[/B] Link veralten (gelöscht) *fb = v;
359 [B]volatile[/B] [B]struct[/B] Link veralten (gelöscht) *gb = ([B]struct[/B] Link veralten (gelöscht) *)fb->Link veralten (gelöscht);
360
361 [B]if[/B] (Link veralten (gelöscht))
362 gb->Link veralten (gelöscht).Link veralten (gelöscht) = 0x01;
363 [B]else[/B]
364 gb->Link veralten (gelöscht).Link veralten (gelöscht) = 0x00;
365 }
366
367 [B]void[/B]
368 gbox_setcolor([B]struct[/B] Link veralten (gelöscht) *fb, Link veralten (gelöscht) Link veralten (gelöscht))
369 {
370 [B]volatile[/B] [B]struct[/B] Link veralten (gelöscht) *gb = ([B]struct[/B] Link veralten (gelöscht) *)fb->Link veralten (gelöscht);
371
372 gb->Link veralten (gelöscht) = Link veralten (gelöscht);
373 gb->Link veralten (gelöscht) = fb->Link veralten (gelöscht).r[Link veralten (gelöscht)];
374 gb->Link veralten (gelöscht) = fb->Link veralten (gelöscht).g[Link veralten (gelöscht)];
375 gb->Link veralten (gelöscht) = fb->Link veralten (gelöscht).b[Link veralten (gelöscht)];
376 gb->Link veralten (gelöscht) = !!Link veralten (gelöscht);
377 Link veralten (gelöscht)(gb);
378 }
379
380 [B]int[/B]
381 gbox_setcmap([B]struct[/B] Link veralten (gelöscht) *fb, [B]struct[/B] Link veralten (gelöscht) *Link veralten (gelöscht))
382 {
383 Link veralten (gelöscht) r[256], g[256], b[256];
384 Link veralten (gelöscht) index = Link veralten (gelöscht)->index, count = Link veralten (gelöscht)->count;
385 Link veralten (gelöscht) colcount = 1 << fb->Link veralten (gelöscht);
386 [B]int[/B] error;
387
388 [B]if[/B] (Link veralten (gelöscht) >= Link veralten (gelöscht) || Link veralten (gelöscht) > Link veralten (gelöscht) - Link veralten (gelöscht))
389 [B]return[/B] (Link veralten (gelöscht));
390
391 [B]if[/B] ((Link veralten (gelöscht) = Link veralten (gelöscht)(Link veralten (gelöscht)->Link veralten (gelöscht), r, Link veralten (gelöscht))) != 0)
392 [B]return[/B] (Link veralten (gelöscht));
393 [B]if[/B] ((Link veralten (gelöscht) = Link veralten (gelöscht)(Link veralten (gelöscht)->Link veralten (gelöscht), g, Link veralten (gelöscht))) != 0)
394 [B]return[/B] (Link veralten (gelöscht));
395 [B]if[/B] ((Link veralten (gelöscht) = Link veralten (gelöscht)(Link veralten (gelöscht)->Link veralten (gelöscht), b, Link veralten (gelöscht))) != 0)
396 [B]return[/B] (Link veralten (gelöscht));
397
398 Link veralten (gelöscht)(r, fb->Link veralten (gelöscht).r + Link veralten (gelöscht), Link veralten (gelöscht));
399 Link veralten (gelöscht)(g, fb->Link veralten (gelöscht).g + Link veralten (gelöscht), Link veralten (gelöscht));
400 Link veralten (gelöscht)(b, fb->Link veralten (gelöscht).b + Link veralten (gelöscht), Link veralten (gelöscht));
401
402 [B]while[/B] (Link veralten (gelöscht)-- != 0)
403 Link veralten (gelöscht)(fb, Link veralten (gelöscht)++);
404
405 [B]return[/B] (0);
406 }
407
408 [B]int[/B]
409 gbox_windowmove([B]struct[/B] Link veralten (gelöscht) *fb, Link veralten (gelöscht) Link veralten (gelöscht), Link veralten (gelöscht) Link veralten (gelöscht),
410 Link veralten (gelöscht) Link veralten (gelöscht), Link veralten (gelöscht) Link veralten (gelöscht), Link veralten (gelöscht) Link veralten (gelöscht), Link veralten (gelöscht) Link veralten (gelöscht), Link veralten (gelöscht) Link veralten (gelöscht),
411 Link veralten (gelöscht) Link veralten (gelöscht))
412 {
413 [B]volatile[/B] [B]struct[/B] Link veralten (gelöscht) *gb = ([B]struct[/B] Link veralten (gelöscht) *)fb->Link veralten (gelöscht);
414 [B]int[/B] src, dest;
415
416 [B]if[/B] (Link veralten (gelöscht) != 0xff)
417 [B]return[/B] (Link veralten (gelöscht));
418
419 Link veralten (gelöscht) = (Link veralten (gelöscht) * 1024) + Link veralten (gelöscht); /* upper left corner in pixels */
420 Link veralten (gelöscht) = (Link veralten (gelöscht) * 1024) + Link veralten (gelöscht);
421
422 Link veralten (gelöscht)(gb);
423
424 gb->Link veralten (gelöscht) = -(Link veralten (gelöscht) / 4);
425 gb->Link veralten (gelöscht) = -(Link veralten (gelöscht) / 4);
426 [B]if[/B] (Link veralten (gelöscht) < Link veralten (gelöscht))
427 gb->Link veralten (gelöscht) = Link veralten (gelöscht) | Link veralten (gelöscht);
428 [B]else[/B] {
429 gb->Link veralten (gelöscht) = Link veralten (gelöscht) | Link veralten (gelöscht);
430 /*
431 * Adjust to top of lower right tile of the block.
432 */
433 Link veralten (gelöscht) = Link veralten (gelöscht) + ((Link veralten (gelöscht) - 4) * 1024) + (Link veralten (gelöscht) - 4);
434 Link veralten (gelöscht)= Link veralten (gelöscht) + ((Link veralten (gelöscht) - 4) * 1024) + (Link veralten (gelöscht) - 4);
435 }
436 *([B]volatile[/B] Link veralten (gelöscht) *)(fb->Link veralten (gelöscht) + Link veralten (gelöscht)) =
437 *([B]volatile[/B] Link veralten (gelöscht) *)(fb->Link veralten (gelöscht) + Link veralten (gelöscht));
438
439 Link veralten (gelöscht)(gb);
440
441 [B]return[/B] (0);
442 }
443
444 /*
445 * Gatorbox console support
446 */
447
448 [B]void[/B]
449 gboxcninit()
450 {
451 Link veralten (gelöscht)(&Link veralten (gelöscht), Link veralten (gelöscht), ([B]struct[/B] Link veralten (gelöscht) *)Link veralten (gelöscht));
452 Link veralten (gelöscht)(&Link veralten (gelöscht));
453 }
454