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

1993/0907/carrera/kbd.c (diff list | history)

1993/0907/sys/src/9/carrera/kbd.c:152,1581993/0908/sys/src/9/carrera/kbd.c:152,158 (short | long | prev | next)
1993/0907    
{ 
	int i; 
 
	l *= 21; 
1993/0908    
	l *= 21;	/* experimentally determined */ 
1993/0907    
	for(i=0; i<l; i++) 
		; 
} 
1993/0907/sys/src/9/carrera/kbd.c:167,1731993/0908/sys/src/9/carrera/kbd.c:167,172
1993/0907    
 
	for(tries = 0; tries < 2000; tries++){ 
		if(KBDCTL & Sobf){ 
			kdbdly(1); 
			return 1; 
		} 
		kdbdly(1); 
1993/0907/sys/src/9/carrera/kbd.c:193,1981993/0908/sys/src/9/carrera/kbd.c:192,198
1993/0907    
	uchar ch, code; 
	static uchar kc[5]; 
	static int shifted, ctrled, lstate; 
1993/0908    
	static int upcode; 
1993/0907    
 
	kbdwait(); 
	code = KBDDAT; 
1993/0907/sys/src/9/carrera/kbd.c:201,2181993/0908/sys/src/9/carrera/kbd.c:201,224
1993/0907    
	 *  key has gone up 
	 */ 
	if(code == Up) { 
		kbdwait(); 
		ch = keymap[KBDDAT]; 
1993/0908    
		upcode = 1; 
		return 0; 
	} 
 
	if(code > 0x87) 
		return 1; 
 
	if(upcode){ 
		ch = keymap[code]; 
1993/0907    
		if(ch == Ctrl) 
			ctrled = 0; 
		else if(ch == Shift) 
			shifted = 0; 
1993/0908    
		upcode = 0; 
1993/0907    
		return 0; 
	} 
1993/0908    
	upcode = 0; 
1993/0907    
 
	if(code > 0x87) 
		return 1; 
                 
	/* 
	 *  convert 
	 */ 
1993/0907/sys/src/9/carrera/kbd.c:220,2261993/0908/sys/src/9/carrera/kbd.c:226,231
1993/0907    
		ch = skeymap[code]; 
	else 
		ch = keymap[code]; 
iprint("code %d %d\n", code, ch); 
	/* 
 	 *  normal character 
	 */ 


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