|
|
1.1 root 1: #ifndef lint
2: static char *rcsid_pqd_c = "$Header: pqd.c,v 10.1 86/11/19 10:43:30 jg Exp $";
3: #endif lint
4: /*
5: * pqd.c device initialization
6: *
7: * pqd_init pqd initialization routine
8: *
9: * Author:
10: * Scott Bates
11: * Brown University
12: * IRIS, Box 1946
13: * Providence, RI 02912
14: *
15: *
16: * Copyright (c) 1986 Brown University
17: *
18: * Permission to use, copy, modify and distribute this software and its
19: * documentation for any purpose and without fee is hereby granted, provided
20: * that the above copyright notice appear in all copies, and that both
21: * that copyright notice and this permission notice appear in supporting
22: * documentation, and that the name of Brown University not be used in
23: * advertising or publicity pertaining to distribution of the software
24: * without specific, written prior permission. Brown University makes no
25: * representations about the suitability of this software for any purpose.
26: * It is provided "as-is" without express or implied warranty.
27: */
28:
29: #include "private.h"
30: #include "bitblt.h"
31: #include "pqd.h"
32:
33: /*
34: * This routine resets and then tests for the PQD screen.
35: */
36:
37: pqd_init()
38: {
39: register unsigned short *screen;
40: register i,j;
41:
42: #ifdef TRACE_X
43: fprintf (stderr, "In pqd_init\n");
44: fflush (stderr);
45: #endif TRACE_X
46:
47: /*
48: * Initialize all registers then clear (or set) each plane not to be
49: * used.
50: */
51:
52: *(u_short *)PQD_WM1 = 0xFFFF;
53: *(u_short *)PQD_WM0 = 0xFFFF;
54: *(u_short *)PQD_VCR = 0x1F00;
55: *(u_short *)PQD_WCR = 0x8000;
56:
57: SET_PLANE(RW_PLANE2 | RW_PLANE3);
58:
59: /*
60: * Test for the screen.
61: */
62:
63: *(u_short *)SCREEN_BASE = 0x0F0F;
64: if (*(u_short *)SCREEN_BASE != 0x0F0F) {
65: DeviceError("pqd not found !!");
66: exit(2);
67: } else {
68: /*
69: * Clear every plane.
70: */
71:
72: for (i = 0; i < 4; i++) {
73: SELECT_PLANE(i);
74: screen = (u_short *)SCREEN_BASE;
75: j = (REAL_SCREEN_WIDTH >> 4) * REAL_SCREEN_HEIGHT;
76: for (; j > 0; j--)
77: *screen++ = 0;
78: }
79: SET_PLANE(RW_PLANE2 | RW_PLANE3);
80: }
81: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.