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

1992/0502/pc/vga.c (diff list | history)

1992/0501/sys/src/9/pc/vga.c:22,291992/0502/sys/src/9/pc/vga.c:22,34 (short | long | prev | next)
1991/0730    
/* 
 *  screen dimensions 
 */ 
1992/0502    
 
/* 
1992/0430    
#define MAXX	800 
#define MAXY	600 
1992/0502    
*/ 
#define MAXX	640 
#define MAXY	480 
1991/0730    
 
#define SCREENMEM	(0xA0000 | KZERO) 
 
1992/0501/sys/src/9/pc/vga.c:72,781992/0502/sys/src/9/pc/vga.c:77,83
1992/0414    
VGAmode mode12 =  
{ 
	/* general */ 
1992/0423    
	0xe7, 0x00,  /* 0x70, 0x04, these are read-only */ 
1992/0502    
	0xe7, 0x00, 
1992/0414    
	/* sequence */ 
	0x03, 0x01, 0x0f, 0x00, 0x06, 
	/* crt */ 
1992/0501/sys/src/9/pc/vga.c:90,1061992/0502/sys/src/9/pc/vga.c:95,111
1992/0414    
}; 
1992/0418    
 
1992/0430    
/* 
1992/0501    
 *  VESA standard (?) 800x600 display, 16 bit color  
1992/0502    
 *  VESA standard (?) 800x600 display, 16 bit color.  
1992/0430    
 */ 
1992/0501    
VGAmode mode6a =  
1992/0430    
{ 
	/* general */ 
1992/0501    
	0x2f, 0x00,  /* 0x70, 0x04, these are read-only */ 
1992/0502    
	0xe3, 0x00,  /* 0x70, 0x04, these are read-only */ 
1992/0430    
	/* sequence */ 
	0x03, 0x01, 0x0f, 0x00, 0x06, 
	/* crt */ 
1992/0501    
	0x7f, 0x63, 0x64, 0x9d, 0x67, 0x92, 0x77, 0xf0, 
	0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
1992/0502    
	0x7f, 0x63, 0x64, 0x02, 0x6a, 0x1d, 0x77, 0xf0, 
	0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 
1992/0501    
	0x5d, 0x8f, 0x57, 0x32, 0x00, 0x5b, 0x74, 0xc3, 
	0xff,   
1992/0430    
	/* graphics */ 
1992/0501/sys/src/9/pc/vga.c:205,2141992/0502/sys/src/9/pc/vga.c:210,271
1991/0928    
 
1992/0423    
#ifdef VGATROUBLE 
1991/0727    
void 
1992/0423    
dumpmodes(VGAmode *v) 
{ 
1992/0502    
getmode(VGAmode *v) { 
1992/0423    
	int i; 
1992/0502    
	v->general[0] = inb(0x3cc); 
	v->general[1] = inb(0x3ca); 
	for(i = 0; i < sizeof(v->sequencer); i++) { 
		outb(SRX, i); 
		v->sequencer[i] = inb(SR); 
	} 
	for(i = 0; i < sizeof(v->crt); i++) { 
		outb(CRX, i); 
		v->crt[i] = inb(CR); 
	} 
	for(i = 0; i < sizeof(v->graphics); i++) { 
		outb(GRX, i); 
		v->graphics[i] = inb(GR); 
	} 
	for(i = 0; i < sizeof(v->attribute); i++) { 
		inb(0x3DA); 
		outb(ARW, i | 0x20); 
		v->attribute[i] = inb(ARR); 
	} 
} 
1992/0423    
 
1992/0502    
void 
printmode(VGAmode *v) { 
	int i; 
	print("general registers: %02x %02x\n", 
		v->general[0], v->general[1]); 
 
	print("sequence registers: "); 
	for(i = 0; i < sizeof(v->sequencer); i++) { 
		print(" %02x", v->sequencer[i]); 
	} 
 
	print("\nCRT registers: "); 
	for(i = 0; i < sizeof(v->crt); i++) { 
		print(" %02x", v->crt[i]); 
	} 
 
	print("\nGraphics registers: "); 
	for(i = 0; i < sizeof(v->graphics); i++) { 
		print(" %02x", v->graphics[i]); 
	} 
 
	print("\nAttribute registers: "); 
	for(i = 0; i < sizeof(v->attribute); i++) { 
		print(" %02x", v->attribute[i]); 
	} 
	print("\n"); 
} 
 
void 
dumpmodes(void) { 
	VGAmode *v; 
	int i; 
 
1992/0423    
	print("general registers: %02x %02x %02x %02x\n", 
		inb(0x3cc), inb(0x3ca), inb(0x3c2), inb(0x3da)); 
 
1992/0501/sys/src/9/pc/vga.c:236,2431992/0502/sys/src/9/pc/vga.c:293,298
1992/0423    
		outb(ARW, i | 0x20); 
		print(" %02x", inb(ARR)); 
	} 
                 
	print("\nPEL Mask Register = %02x\n\n", inb(0x3c6)&0xff); 
} 
#endif 
 
1992/0501/sys/src/9/pc/vga.c:247,2521992/0502/sys/src/9/pc/vga.c:302,308
1991/0727    
	int i, j, k; 
	int c; 
1991/0730    
	ulong *l; 
1992/0502    
	VGAmode v; 
1991/0723    
 
1992/0501    
	setmode(&mode12); 
1991/0929    
 


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