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

1991/0724/pc/vga.c (diff list | history)

pc/vga.c on 1991/0723
1991/0723    
#include	"u.h" 
#include	"lib.h" 
#include	"mem.h" 
#include	"dat.h" 
#include	"fns.h" 
#include	"io.h" 
 
enum 
{ 
	GRX=		0x3CE,		/* index to graphics registers */ 
	GR=		0x3CF,		/* graphics registers 0-8 */ 
1991/0724    
	SRX=		0x3C4,		/* index to sequence registers */ 
	SR=		0x3C5,		/* sequence registers 0-7 */ 
1991/0723    
}; 
 
1991/0724    
void 
srout(int reg, int val) 
{ 
	outb(SRX, reg); 
	outb(SR, val); 
} 
 
void 
grout(int reg, int val) 
{ 
	outb(GRX, reg); 
	outb(GR, val); 
} 
 
1991/0723    
/* 
 *  look at VGA registers 
 */ 
void 
vgainit(void) 
{ 
1991/0724    
	uchar *display; 
1991/0723    
	int i; 
 
1991/0724    
	srout(2, 0x0f);		/* enable all 4 color planes */ 
	srout(4, 0x08);		/* quad mode */ 
	grout(5, 0x40);		/* pixel bits are sequential */ 
	grout(6, 0x01);		/* graphics mode - display starts at 0xA0000 */ 
 
	for(;;); 
	display = (uchar*)(0xA0000 | KZERO); 
	for(i = 0; i < 128*1024; i++) 
		display[i] = 0x00; 
 
	for(i = 0; i < 4*640; i++) 
		display[i] = 0xff; 
1991/0723    
} 


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