|
|
1.1 root 1: #include <jerq.h>
2: #include <queue.h>
3: #include <setup.h>
4: /*static*/ int dtr;
5: aciainit(speed)
6: char speed;
7: {
8: /* init the host side */
9: int i;
10:
11: DUART->a_cmnd=RESET_RECV|DIS_TX|DIS_RX;
12: DUART->a_cmnd=RESET_TRANS;
13: DUART->a_cmnd=RESET_ERR;
14: DUART->a_cmnd=RESET_MR;
15: DUART->mr1_2a=CHAR_ERR|NO_PAR | CBITS8;
16: DUART->mr1_2a=NRML_MOD|ONEP000SB;
17: DUART->a_sr_csr=speed;
18: DUART->a_cmnd=ENB_TX|ENB_RX; /* enable TX and RX last */
19: /* configure the output port */
20: DUART->ip_opcr=0x70;
21: DUART->scc_ropbc=0xff; /* make sure the port is reset first */
22: DUART->scc_sopbc=0x01; /* make sure DTR is on */
23: if(VALSCREENCOLOR)
24: BonW();
25: else
26: WonB();
27: for(i=0; i<255; i++)
28: ; /*delay for stupid device */
29: dtr=1;
30: }
31: rcvchar(){
32: register c=qgetc(&RCVQUEUE);
33: if(c!=-1)
34: c&=0xFF;
35: return c;
36: }
37: sendchar(c){
38: qputc(&OUTQUEUE, c);
39: aciatrint();
40: }
41: aciatrint(){
42: register sr, c;
43: sr=spl5();
44: /* should check here for carrier fail */
45: DUART->a_cmnd=ENB_TX; /* done here so flags are right */
46: if(DUART->a_sr_csr&(XMT_EMT|XMT_RDY)){
47: if((c=qgetc(&OUTQUEUE))==-1 || dtr==0)
48: DUART->a_cmnd=DIS_TX; /* forget it */
49: else
50: DUART->a_data=c; /* send the char */
51: }
52: splx(sr);
53: }
54: sendbreak(){
55: register int sr,i;
56: sr=spl5();
57: DUART->a_cmnd=(STRT_BRK|ENB_TX);
58: i= 0x27106;
59: while(--i>0)
60: ;
61: DUART->a_cmnd=(STOP_BRK|DIS_TX);
62: kbdinit();
63: splx(sr);
64: }
65: dtrctl(flg) {
66: dtr=flg;
67: aciatrint();
68: }
69: tstdcd() {
70: return((DUART->ip_opcr & 0x40) != 0);
71: }
72: aciapaws()
73: {
74: int i;
75: for(i=0 ; i<16; i++);
76: }
77: /*
78: * disconnect will drop the DTR line for approx. 1/2 second.
79: */
80: disconnect() {
81: register long i, sr;
82:
83: if(dtr==0)
84: return; /* already being disconnected */
85: sr=spl5();
86: dtr=0;
87: DUART->scc_ropbc=0x01; /* disable DTR */
88: i=0x30d48;
89: while(--i>0)
90: ;
91: DUART->scc_sopbc=0x01; /* Turn back on DTR */
92: dtr=1; /* allow disconnects again */
93: kbdinit();
94: splx(sr);
95: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.