|
|
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.