plan 9 kernel history: overview | file list | diff list

1990/0830/gnot/screen.c (diff list | history)

1990/0825/sys/src/9/gnot/screen.c:22,271990/0830/sys/src/9/gnot/screen.c:22,28 (short | long | prev | next)
1990/03091    
 
1990/0329    
void	duartinit(void); 
1990/0808    
int	duartacr; 
1990/0830    
int	duartimr; 
1990/0329    
 
1990/03091    
Bitmap	screen = 
{ 
1990/0825/sys/src/9/gnot/screen.c:205,2111990/0830/sys/src/9/gnot/screen.c:206,212
1990/0329    
	duart[1].ip_opcr = 0x00; 
	duart[1].scc_ropbc = 0xFF;	/* make sure the port is reset first */ 
	duart[1].scc_sopbc = 0x04;	/* dtr = 1, pp = 01 */ 
1990/0707    
	duart[0].is_imr = IM_IPC|IM_RRDYB|IM_XRDYB|IM_RRDYA|IM_XRDYA; 
1990/0830    
	duart[0].is_imr = duartimr = IM_IPC|IM_RRDYB|IM_XRDYB|IM_RRDYA|IM_XRDYA; 
1990/0329    
	duart[0].cmnd = ENB_TX|ENB_RX;	/* enable TX and RX last */ 
	duart[1].cmnd = ENB_TX|ENB_RX; 
 
1990/0825/sys/src/9/gnot/screen.c:217,2301990/0830/sys/src/9/gnot/screen.c:218,235
1990/0329    
	duart[0].data = 0x02; 
1990/0808    
} 
 
1990/0830    
int 
duartinputport(void) 
{ 
	Duart *duart = DUARTREG; 
	return duart[1].ip_opcr; 
} 
1990/0808    
void 
duartbaud(int b) 
{ 
	int x; 
	Duart *duart; 
1990/0830    
	Duart *duart = DUARTREG; 
1990/0808    
 
	duart = DUARTREG; 
                 
	switch(b){ 
	case 38400: 
		x = BD38400; 
1990/0825/sys/src/9/gnot/screen.c:257,2621990/0830/sys/src/9/gnot/screen.c:262,293
1990/0808    
	duart[1].sr_csr = x; 
1990/0329    
} 
 
1990/0830    
void 
duartdtr(int val) 
{ 
	Duart *duart = DUARTREG; 
	if (val) 
		duart[1].scc_ropbc=0x01; 
	else 
		duart[1].scc_sopbc=0x01; 
} 
 
void 
duartbreak(int ms) 
{ 
	static QLock brk; 
	Duart *duart = DUARTREG; 
	if (ms<=0 || ms >20000) 
		error(0, Ebadarg); 
	qlock(&brk); 
	duart[0].is_imr = duartimr &= ~IM_XRDYB; 
	duart[1].cmnd = STRT_BRK|ENB_TX; 
	tsleep(&u->p->sleep, return0, 0, ms); 
	duart[1].cmnd = STOP_BRK|ENB_TX; 
	duart[0].is_imr = duartimr |= IM_XRDYB; 
	qunlock(&brk); 
} 
 
1990/0330    
enum{ 
	Kptime=200		/* about once per ms */ 
}; 
1990/0825/sys/src/9/gnot/screen.c:269,2751990/0830/sys/src/9/gnot/screen.c:300,306
1990/0330    
	duart = DUARTREG; 
	duart[0].ctur = (Kptime)>>8; 
	duart[0].ctlr = (Kptime)&255; 
	duart[0].is_imr = IM_IPC|IM_RRDYB|IM_XRDYB|IM_RRDYA|IM_CRDY; 
1990/0830    
	duart[0].is_imr = duartimr |= IM_CRDY; 
1990/0330    
	x = duart[1].scc_sopbc; 
} 
 
1990/0825/sys/src/9/gnot/screen.c:281,2871990/0830/sys/src/9/gnot/screen.c:312,318
1990/0330    
 
	duart = DUARTREG; 
	x = duart[1].scc_ropbc; 
	duart[0].is_imr = IM_IPC|IM_RRDYB|IM_XRDYB|IM_RRDYA; 
1990/0830    
	duart[0].is_imr = duartimr &= ~IM_CRDY; 
1990/0330    
} 
 
void 


source code copyright © 1990-2005 Lucent Technologies; see license
Plan 9 distribution
comments to russ cox (rsc@swtch.com)