|
|
1.1 root 1: /*
2: * Copyright (c) 1988 University of Utah.
3: * Copyright (c) 1990 The Regents of the University of California.
4: * All rights reserved.
5: *
6: * This code is derived from software contributed to Berkeley by
7: * the Systems Programming Group of the University of Utah Computer
8: * Science Department.
9: *
10: * Redistribution and use in source and binary forms, with or without
11: * modification, are permitted provided that the following conditions
12: * are met:
13: * 1. Redistributions of source code must retain the above copyright
14: * notice, this list of conditions and the following disclaimer.
15: * 2. Redistributions in binary form must reproduce the above copyright
16: * notice, this list of conditions and the following disclaimer in the
17: * documentation and/or other materials provided with the distribution.
18: * 3. All advertising materials mentioning features or use of this software
19: * must display the following acknowledgement:
20: * This product includes software developed by the University of
21: * California, Berkeley and its contributors.
22: * 4. Neither the name of the University nor the names of its contributors
23: * may be used to endorse or promote products derived from this software
24: * without specific prior written permission.
25: *
26: * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
27: * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
28: * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
29: * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
30: * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
31: * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
32: * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
33: * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
34: * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
35: * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
36: * SUCH DAMAGE.
37: *
1.1.1.2 ! root 38: * from: @(#)dca.c 7.3 (Berkeley) 5/7/91
! 39: * dca.c,v 1.2 1993/05/22 07:58:50 cgd Exp
1.1 root 40: */
41:
42: #ifdef DCACONSOLE
43: #include "sys/param.h"
44: #include "../dev/dcareg.h"
45: #include "../include/cpu.h"
46: #include "../hp300/cons.h"
47:
48: struct dcadevice *dcacnaddr = 0;
49:
50: dcaprobe(cp)
51: struct consdev *cp;
52: {
53: register struct dcadevice *dca;
54:
55: dcacnaddr = (struct dcadevice *) sctoaddr(CONSCODE);
56: if (badaddr((char *)dcacnaddr)) {
57: cp->cn_pri = CN_DEAD;
58: return;
59: }
60: dca = dcacnaddr;
61: switch (dca->dca_irid) {
62: case DCAID0:
63: case DCAID1:
64: cp->cn_pri = CN_NORMAL;
65: break;
66: case DCAREMID0:
67: case DCAREMID1:
68: cp->cn_pri = CN_REMOTE;
69: break;
70: default:
71: cp->cn_pri = CN_DEAD;
72: break;
73: }
74: }
75:
76: dcainit(cp)
77: struct consdev *cp;
78: {
79: register struct dcadevice *dca = dcacnaddr;
80:
81: dca->dca_irid = 0xFF;
82: DELAY(100);
83: dca->dca_ic = 0;
84: dca->dca_cfcr = CFCR_DLAB;
85: dca->dca_data = DCABRD(9600) & 0xFF;
86: dca->dca_ier = DCABRD(9600) >> 8;
87: dca->dca_cfcr = CFCR_8BITS;
88: }
89:
90: #ifndef SMALL
91: dcagetchar()
92: {
93: register struct dcadevice *dca = dcacnaddr;
94: short stat;
95: int c;
96:
97: if (((stat = dca->dca_lsr) & LSR_RXRDY) == 0)
98: return(0);
99: c = dca->dca_data;
100: return(c);
101: }
102: #else
103: dcagetchar()
104: {
105: return(0);
106: }
107: #endif
108:
109: dcaputchar(c)
110: register int c;
111: {
112: register struct dcadevice *dca = dcacnaddr;
113: register int timo;
114: short stat;
115:
116: /* wait a reasonable time for the transmitter to come ready */
117: timo = 50000;
118: while (((stat = dca->dca_lsr) & LSR_TXRDY) == 0 && --timo)
119: ;
120: dca->dca_data = c;
121: /* wait for this transmission to complete */
122: timo = 1000000;
123: while (((stat = dca->dca_lsr) & LSR_TXRDY) == 0 && --timo)
124: ;
125: }
126: #endif
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.