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

1993/1230/carrera/screen.c (diff list | history)

1993/1228/sys/src/9/carrera/screen.c:172,1851993/1230/sys/src/9/carrera/screen.c:172,185 (short | long | prev | next)
1993/0906    
{ 
1993/1222    
	int i, x; 
1993/0907    
 
1993/1230    
	gscreen.ldepth = 0; 
 
1993/0906    
	setmode(&dfltmode); 
 
1993/1222    
	gscreen.ldepth = 3; 
	for(i = 0; i < 16; i++){ 
		x = x6to32((i*63)/15); 
		setcolor(i, x, x, x); 
	} 
	gscreen.ldepth = 0; 
 
1993/0918    
	/* allocate a new soft bitmap area */ 
	gscreen.base = xalloc(1024*1024); 
1993/1228/sys/src/9/carrera/screen.c:303,3091993/1230/sys/src/9/carrera/screen.c:303,320
1993/0906    
void 
getcolor(ulong p, ulong *pr, ulong *pg, ulong *pb) 
{ 
1993/0918    
	p &= (1<<(1<<gscreen.ldepth))-1; 
1993/1230    
	ulong x; 
 
	switch(gscreen.ldepth){ 
	default: 
		x = 0xf; 
		break; 
	case 3: 
		x = 0xff; 
		break; 
	} 
	p &= x; 
	p ^= x; 
1993/0918    
	*pr = colormap[p][0]; 
	*pg = colormap[p][1]; 
	*pb = colormap[p][2]; 
1993/1228/sys/src/9/carrera/screen.c:312,3181993/1230/sys/src/9/carrera/screen.c:323,340
1993/0906    
int 
setcolor(ulong p, ulong r, ulong g, ulong b) 
{ 
1993/0918    
	p &= (1<<(1<<gscreen.ldepth))-1; 
1993/1230    
	ulong x; 
 
	switch(gscreen.ldepth){ 
	default: 
		x = 0xf; 
		break; 
	case 3: 
		x = 0xff; 
		break; 
	} 
	p &= x; 
	p ^= x; 
1993/0918    
	colormap[p][0] = r; 
	colormap[p][1] = g; 
	colormap[p][2] = b; 
1993/1228/sys/src/9/carrera/screen.c:442,4481993/1230/sys/src/9/carrera/screen.c:464,477
1993/0906    
	for(i = 0; i < sizeof(v->attribute); i++) 
		arout(i, v->attribute[i]); 
1993/0907    
 
1993/1224    
	EISAOUTB(0x3C6, 0x0F);	/* pel mask */ 
1993/1230    
	switch(gscreen.ldepth){ 
	case 3: 
		EISAOUTB(0x3C6, 0xFF);	/* pel mask */ 
		break; 
	default: 
		EISAOUTB(0x3C6, 0x0F);	/* pel mask */ 
		break; 
	} 
1993/0907    
	EISAOUTB(0x3C8, 0x00);	/* pel write address */ 
1993/0918    
 
1993/0907    
	EISAOUTB(0x3bf, 0x03);	/* hercules compatibility reg */ 
1993/1228/sys/src/9/carrera/screen.c:522,5291993/1230/sys/src/9/carrera/screen.c:551,558
1993/1003    
		for(i = 0; i < len; i += 8) { 
			s = (ulong*)(sp+i); 
			h = (ulong*)(hp+i); 
1993/1224    
			in1 = ~s[0]; 
			in2 = ~s[1]; 
1993/1230    
			in1 = s[0]; 
			in2 = s[1]; 
1993/1003    
			h[0] = swiz(in2); 
			h[1] = swiz(in1); 
		} 


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