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

2000/0708/pc/vgas3.c (diff list | history)

2000/0701/sys/src/9/pc/vgas3.c:180,2252000/0708/sys/src/9/pc/vgas3.c:180,185 (short | long | prev | next)
1994/0803    
} 
 
static void 
1997/1101    
s3enable(VGAscr* scr) 
1997/0327    
{ 
1999/1005    
	int i; 
1997/1101    
	ulong storage; 
1994/0803    
                 
1997/1101    
	s3disable(scr); 
1994/0803    
                 
	/* 
	 * Cursor colours. Set both the CR0[EF] and the colour 
	 * stack in case we are using a 16-bit RAMDAC. 
	 */ 
1995/0126    
	vgaxo(Crtx, 0x0E, Pwhite); 
	vgaxo(Crtx, 0x0F, Pblack); 
1994/0803    
	vgaxi(Crtx, 0x45); 
                 
1999/1005    
	for(i = 0; i < 3; i++) 
		vgaxo(Crtx, 0x4A, Pblack); 
	vgaxi(Crtx, 0x45); 
	for(i = 0; i < 3; i++) 
		vgaxo(Crtx, 0x4B, Pwhite); 
1998/0116    
                 
1994/0803    
	/* 
	 * Find a place for the cursor data in display memory. 
	 * Must be on a 1024-byte boundary. 
	 */ 
1997/1101    
	storage = (scr->gscreen->width*BY2WD*scr->gscreen->r.max.y+1023)/1024; 
2000/0612    
	vgaxo(Crtx, 0x4C, storage>>8); 
1994/0803    
	vgaxo(Crtx, 0x4D, storage & 0xFF); 
	storage *= 1024; 
1997/1101    
	scr->storage = storage; 
1994/0803    
                 
	/* 
1998/0116    
	 * Enable the cursor in Microsoft Windows format. 
1994/0803    
	 */ 
1998/0116    
	vgaxo(Crtx, 0x55, vgaxi(Crtx, 0x55) & ~0x10); 
1997/1101    
	s3vsyncactive(); 
1994/0803    
	vgaxo(Crtx, 0x45, 0x01); 
} 
                 
static void 
1997/1101    
s3load(VGAscr* scr, Cursor* curs) 
1994/0803    
{ 
1994/0804    
	uchar *p; 
2000/0701/sys/src/9/pc/vgas3.c:240,2462000/0708/sys/src/9/pc/vgas3.c:200,206
1999/1005    
	case 0xE18A:				/* ViRGE/[DG]X */ 
	case 0xE110:				/* ViRGE/GX2 */ 
	case 0xE13D:				/* ViRGE/VX */ 
2000/0701    
	case 0xE112:				/* Savage4/MX */ 
2000/0708    
	case 0xE112:				/* Savage4/IX-MV */ 
2000/0611    
	case 0xE122:				/* Savage4 */ 
1998/0116    
		p += scr->storage; 
		break; 
2000/0701/sys/src/9/pc/vgas3.c:288,2942000/0708/sys/src/9/pc/vgas3.c:248,254
1999/1005    
	case 0xE18A:				/* ViRGE/[DG]X */ 
	case 0xE110:				/* ViRGE/GX2 */ 
	case 0xE13D:				/* ViRGE/VX */ 
2000/0701    
	case 0xE112:				/* Savage4/MX */ 
2000/0708    
	case 0xE112:				/* Savage4/IX-MV */ 
2000/0611    
	case 0xE122:				/* Savage4 */ 
1998/0116    
		break; 
 
2000/0701/sys/src/9/pc/vgas3.c:341,3462000/0708/sys/src/9/pc/vgas3.c:301,349
1994/0804    
	vgaxo(Crtx, 0x48, (y>>8) & 0x07); 
1994/0803    
 
	return 0; 
2000/0708    
} 
 
static void 
s3enable(VGAscr* scr) 
{ 
	int i; 
	ulong storage; 
 
	s3disable(scr); 
 
	/* 
	 * Cursor colours. Set both the CR0[EF] and the colour 
	 * stack in case we are using a 16-bit RAMDAC. 
	 */ 
	vgaxo(Crtx, 0x0E, Pwhite); 
	vgaxo(Crtx, 0x0F, Pblack); 
	vgaxi(Crtx, 0x45); 
 
	for(i = 0; i < 3; i++) 
		vgaxo(Crtx, 0x4A, Pblack); 
	vgaxi(Crtx, 0x45); 
	for(i = 0; i < 3; i++) 
		vgaxo(Crtx, 0x4B, Pwhite); 
 
	/* 
	 * Find a place for the cursor data in display memory. 
	 * Must be on a 1024-byte boundary. 
	 */ 
	storage = (scr->gscreen->width*BY2WD*scr->gscreen->r.max.y+1023)/1024; 
	vgaxo(Crtx, 0x4C, storage>>8); 
	vgaxo(Crtx, 0x4D, storage & 0xFF); 
	storage *= 1024; 
	scr->storage = storage; 
 
	/* 
	 * Load, locate and enable the cursor 
	 * in Microsoft Windows format. 
	 */ 
	s3load(scr, &arrow); 
	s3move(scr, ZP); 
	vgaxo(Crtx, 0x55, vgaxi(Crtx, 0x55) & ~0x10); 
	s3vsyncactive(); 
	vgaxo(Crtx, 0x45, 0x01); 
1994/0803    
} 
 
1999/1005    
/* 


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