//  cga.pmi - SVPMI File for Color Graphics Adaptor
//            This is no joke!
//
//		640x200 - 2			monochrome-graphics
//		320x200 - 4 * future
//		80x25				text
//
// by: Robin Burgener, July 19, 1993

[VERSION]
	1.0;

[GRAPHICS_MODE]
	0x6;

[TEXT_MODE]
	3;

//	[ADAPTER_INFO]
//		SaveSize = 0;
//		PaletteSize = 0;

//
// 640x200 - monochrome
//
[MODE]
	0x6;

[MODEINFO]
	ModeAttributes		= 0xA10;
	WinAAttributes		= 0;
	WinBAttributes		= 0;
	WinAGranularity		= 0;
	WinASize			= 16;
	WinABase			= 0xB8000;
	BytesPerScanLine	= 80;
	XResolution			= 640;
	YResolution			= 200;
	XCharSize			= 0;
	YCharSize			= 0;
	ColorModel			= 0;
	BitsPerPixel		= 1;
	NumberOfColors		= 2;
	BitsRGB				= 0;
	NumberOfBanks		= 2;
	BankSize			= 8;
	MemoryModel			= 0x1;
	ImagePages			= 1;
	BlackPixel			= 0;
	WhitePixel			= 1;

[ADDRESSES]
	MEMORY(0xB8000 - 0xBBFFF);
	PORT(0x3D4, 0x3D5);						// for CRTC regs
	PORT(0x3D8);							// Control reg
	PORT(0x3DA);							// Status

[MODEDETECT]
	r0 = 1;

[SETMODE]
	outb( 0x3D8, 0x1A );	//	disable video
	
	// set all crtc regs

	r0 = 0x38;	r1 = 0x28;	r2 = 0x2D;	r3 = 0x0A;
	r4 = 0x7F;	r5 = 0x06;	r6 = 0x64;	r7 = 0x70;
	r8 = 0x02;	r9 = 0x01;	r10= 0x06;	r11= 0x07;
	r12= 0x00;	r13= 0x00;	
	boutb(14, 0x3D4, 0x3D5);

	outb( 0x3D8, 0x1A );	// enable video and graphics
	outb( 0x3D9, 0x0F );	// intensified white FG

//
// Text mode
//
[MODE]
	3;

[MODEINFO]
	ModeAttributes		= 0x8;
	WinAAttributes		= 0;
	WinAGranularity		= 0;
	WinASize			= 8;
	WinABase			= 0xB8000;
	BytesPerScanLine	= 80;
	XResolution			= 80;
	YResolution			= 25;
	XCharSize			= 8;
	YCharSize			= 8;
	ColorModel			= 0;
	BitsPerPixel		= 16;
	NumberOfColors		= 4;
	BitsRGB				= 0;
	NumberOfBanks		= 1;
	BankSize			= 0;
	MemoryModel			= 0;
	ImagePages			= 1;

[ADDRESSES]
	MEMORY(0xB8000 - 0xBFFFF);
	PORT(0x3D4, 0x3D5);						// for CRTC regs
	PORT(0x3D8);							// Control reg
	PORT(0x3DA);							// Status

[MODEDETECT]
	r0 = 1;

[SETMODE]
	outb( 0x3D8, 0x0A );	// disable graphics, disable 64k mode
	
	// set all crtc regs

	r0 = 0x71;	r1 = 0x50;	r2 = 0x5A;	r3 = 0x0A;
	r4 = 0x1F;	r5 = 0x06;	r6 = 0x19;	r7 = 0x1C;
	r8 = 0x02;	r9 = 0x07;	r10= 0x06;	r11= 0x07;
	r12= 0x00;	r13= 0x00;	
	boutb(14, 0x3D4, 0x3D5);

	outb( 0x3D8, 0x0A );	// enable video, text
	outb( 0x3D9, 0x00 );	// Black border


