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

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

1993/0907/sys/src/9/carrera/screen.c:180,1851993/0908/sys/src/9/carrera/screen.c:180,189 (short | long | prev | next)
1993/0906    
	hwcurs = 0; 
} 
 
1993/0908    
void	getvmode(VGAmode *v); 
void	writeregisters(VGAmode *v); 
VGAmode x; 
 
1993/0906    
void 
screeninit(void) 
{ 
1993/0907/sys/src/9/carrera/screen.c:187,1961993/0908/sys/src/9/carrera/screen.c:191,202
1993/0907    
	uchar *scr; 
 
1993/0906    
	setmode(&dfltmode); 
                 
1993/0908    
	getvmode(&x); 
	writeregisters(&x); 
return; 
1993/0906    
	memmove(&arrow, &fatarrow, sizeof(fatarrow)); 
 
1993/0907    
	scr = (uchar*)EISA(0xA0000); 
1993/0908    
	scr = (uchar*)EISA(0xC0000); 
1993/0907    
iprint("%lux\n", scr); 
*scr = 0xaa; 
i = *scr; 
1993/0907/sys/src/9/carrera/screen.c:383,3891993/0908/sys/src/9/carrera/screen.c:389,396
1993/0906    
} 
 
1993/0907    
uchar 
srin(ushort i) { 
1993/0908    
srin(ushort i) 
{ 
1993/0907    
        EISAOUTB(SRX, i); 
        return EISAINB(SR); 
} 
1993/0907/sys/src/9/carrera/screen.c:438,4431993/0908/sys/src/9/carrera/screen.c:445,453
1993/0906    
{ 
	int i; 
 
1993/0908    
	for(i = 0; i < sizeof(v->general); i++) 
		genout(i, v->general[i]); 
 
1993/0906    
	/* turn screen off (to avoid damage) */ 
	srout(1, 0x21); 
 
1993/0907/sys/src/9/carrera/screen.c:447,4551993/0908/sys/src/9/carrera/screen.c:457,462
1993/0907    
 
	srout(0x00, srin(0x00) & 0xFD);	/* synchronous reset*/ 
 
1993/0906    
	for(i = 0; i < sizeof(v->general); i++) 
		genout(i, v->general[i]); 
                 
	for(i = 0; i < sizeof(v->sequencer); i++) 
		if(i == 1) 
			srout(i, v->sequencer[i]|0x20); 
1993/0907/sys/src/9/carrera/screen.c:489,4921993/0908/sys/src/9/carrera/screen.c:496,595
1993/0906    
 
	/* turn screen on */ 
	srout(1, v->sequencer[1]); 
1993/0908    
} 
 
uchar 
grin(ushort i) 
{ 
	EISAOUTB(GRX, i); 
	return EISAINB(GR); 
} 
 
uchar 
arin(ushort i) 
{ 
	uchar junk; 
	junk = EISAINB(0x3DA); 
	USED(junk); 
	EISAOUTB(ARW, i | 0x20); 
	return EISAINB(ARR); 
} 
 
uchar 
crin(ushort i) { 
	EISAOUTB(CRX, i); 
	return EISAINB(CR); 
} 
 
void 
getvmode(VGAmode *v) 
{ 
	int i; 
 
	v->general[0] = EISAINB(EMISCR);	/* misc output */ 
	v->general[1] = EISAINB(EFCR);	/* feature control */ 
	for(i = 0; i < sizeof(v->sequencer); i++) 
		v->sequencer[i] = srin(i); 
	for(i = 0; i < sizeof(v->crt); i++)  
		v->crt[i] = crin(i); 
	for(i = 0; i < sizeof(v->graphics); i++)  
		v->graphics[i] = grin(i); 
	for(i = 0; i < sizeof(v->attribute); i++) 
		v->attribute[i] = arin(i); 
 
	v->tseng.viden = EISAINB(0x3c3); 
	v->tseng.sr6  = srin(6); 
	v->tseng.sr7  = srin(7); 
	v->tseng.ar16 = arin(0x16); 
	v->tseng.ar17 = arin(0x17); 
	v->tseng.crt31= crin(0x31); 
	v->tseng.crt32= crin(0x32); 
	v->tseng.crt33= crin(0x33); 
	v->tseng.crt34= crin(0x34); 
	v->tseng.crt35= crin(0x35); 
	v->tseng.crt36= crin(0x36); 
	v->tseng.crt37= crin(0x37); 
} 
 
void 
writeregisters(VGAmode *v) 
{ 
	int i; 
 
	print("\t/* general */\n\t"); 
	for (i=0; i<sizeof(v->general); i++) 
		print("0x%.2x, ", v->general[i]); 
	print("\n\t/* sequence */\n\t"); 
	for (i=0; i<sizeof(v->sequencer); i++) { 
		if (i>0 && i%8 == 0) 
			print("\n\t"); 
		print("0x%.2x, ", v->sequencer[i]); 
	} 
	print("\n\t/* crt */\n\t"); 
	for (i=0; i<sizeof(v->crt); i++) { 
		if (i>0 && i%8 == 0) 
			print("\n\t"); 
		print("0x%.2x, ", v->crt[i]); 
	} 
	print("\n\t/* graphics */\n\t"); 
	for (i=0; i<sizeof(v->graphics); i++) { 
		if (i>0 && i%8 == 0) 
			print("\n\t"); 
		print("0x%.2x, ", v->graphics[i]); 
	} 
	print("\n\t/* attribute */\n\t"); 
	for (i=0; i<sizeof(v->attribute); i++) { 
		if (i>0 && i%8 == 0) 
			print("\n\t"); 
		print("0x%.2x, ", v->attribute[i]); 
	} 
	print("\n"); 
	print("\t/* special */\n"); 
 
	for (i=0; i<12; i++) { 
		if (i%8 == 0) 
			print("\n\t"); 
		print("0x%.2x, ", ((uchar*)(&v->tseng))[i]); 
	} 
	print("\n"); 
1993/0906    
} 


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