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

1993/1113/pc/kbd.c (diff list | history)

1993/0915/sys/src/9/pc/kbd.c:115,1251993/1113/sys/src/9/pc/kbd.c:115,120 (short | long | prev | next)
1991/0703    
[0x58]	No,	No,	No,	No,	No,	No,	No,	No, 
}; 
 
1991/0905    
/* 
 *  keyboard input q 
 */ 
1991/0703    
KIOQ	kbdq; 
1991/0905    
                 
1992/0811    
static int keybuttons; 
1992/1015    
static uchar ccc; 
1992/1017    
static int shift; 
1993/0915/sys/src/9/pc/kbd.c:138,1451993/1113/sys/src/9/pc/kbd.c:133,141
1991/0703    
 
1992/1017    
static void	kbdintr(Ureg*); 
1993/0915    
static void	ctps2intr(Ureg*); 
1992/1017    
static int	ps2mouseputc(IOQ*, int); 
1992/1015    
 
1993/1113    
extern int m3mouseputc(IOQ*, int); 
 
1991/0803    
/* 
 *  wait for output no longer busy 
 */ 
1993/0915/sys/src/9/pc/kbd.c:246,2511993/1113/sys/src/9/pc/kbd.c:242,249
1991/0703    
{ 
1992/0711    
	int c; 
1991/0730    
 
1993/1113    
	kbdq = qopen(4*1024, 0, 0, 0); 
 
1991/0716    
	setvec(Kbdvec, kbdintr); 
1992/1017    
	bigcursor(); 
1991/0730    
 
1993/0915/sys/src/9/pc/kbd.c:287,2951993/1113/sys/src/9/pc/kbd.c:285,296
1992/1020    
		error(Ebadarg); 
 
1992/0904    
	/* set up /dev/eia0 as the mouse */ 
1992/1017    
	uartspecial(port, 0, &mouseq, setspeed ? 1200 : 0); 
1993/1113    
	if(setspeed) 
		setspeed = 1200; 
1992/1017    
	if(type && *type == 'M') 
		mouseq.putc = m3mouseputc; 
1993/1113    
		NS16552special(port, setspeed, 0, 0, m3mouseputc); 
	else 
		NS16552special(port, setspeed, 0, 0, 0); 
1992/0904    
	mousetype = Mouseserial; 
} 
1992/0408    
 
1993/0915/sys/src/9/pc/kbd.c:390,3961993/1113/sys/src/9/pc/kbd.c:391,397
1992/0918    
 *  shift & left button is the same as middle button 
1991/0731    
 */ 
1992/1015    
static int 
1992/1017    
ps2mouseputc(IOQ *q, int c) 
1993/1113    
ps2mouseputc(int c) 
1991/0731    
{ 
	static short msg[3]; 
	static int nb; 
1993/0915/sys/src/9/pc/kbd.c:397,4031993/1113/sys/src/9/pc/kbd.c:398,403
1992/0918    
	static uchar b[] = {0, 1, 4, 5, 2, 3, 6, 7, 0, 1, 2, 5, 2, 3, 6, 7 }; 
1993/0226    
	int buttons, dx, dy; 
1991/0731    
 
1992/1015    
	USED(q);		/* not */ 
1991/0731    
	/*  
	 *  check byte 0 for consistency 
	 */ 
1993/0915/sys/src/9/pc/kbd.c:508,5141993/1113/sys/src/9/pc/kbd.c:508,514
1991/0730    
	 *  if it's the mouse... 
	 */ 
	if(s & Minready){ 
1992/1017    
		ps2mouseputc(&mouseq, c); 
1993/1113    
		ps2mouseputc(c); 
1991/0731    
		return 0; 
1991/0730    
	} 
1991/0703    
 
1993/0915/sys/src/9/pc/kbd.c:579,5871993/1113/sys/src/9/pc/kbd.c:579,587
1991/1211    
		putit: 
1991/0703    
			lstate = 0; 
1991/1211    
			if(c != -1) 
				kbdputc(&kbdq, c); 
1993/1113    
				kbdputc(kbdq, c); 
1991/1211    
			else for(i=0; i<nk; i++) 
				kbdputc(&kbdq, kc[i]); 
1993/1113    
				kbdputc(kbdq, kc[i]); 
1991/1211    
			break; 
		case 3: 
		case 4: 
1993/0915/sys/src/9/pc/kbd.c:595,6011993/1113/sys/src/9/pc/kbd.c:595,601
1991/1211    
			nk = 5; 
			goto putit; 
1991/0703    
		default: 
1991/1211    
			kbdputc(&kbdq, c); 
1993/1113    
			kbdputc(kbdq, c); 
1991/0703    
			break; 
		} 
1991/1211    
		return 0; 
1993/0915/sys/src/9/pc/kbd.c:618,6241993/1113/sys/src/9/pc/kbd.c:618,624
1991/0731    
			return 0; 
1991/0703    
		} 
	} 
	kbdputc(&kbdq, c); 
1993/1113    
	kbdputc(kbdq, c); 
1991/0731    
	return 0; 
1992/0222    
} 
 
1993/0915/sys/src/9/pc/kbd.c:641,6451993/1113/sys/src/9/pc/kbd.c:641,645
1993/0915    
	if((c & Rready) == 0) 
		return; 
	c = inb(ctport + CTdata); 
	ps2mouseputc(&mouseq, c); 
1993/1113    
	ps2mouseputc(c); 
1991/0703    
} 


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