//	TM8100A.pmi - SVPMI File for a NCR TM8100A
//
//	 6	480x320 - 2			monochrome-graphics
//	 3	80x25				text
//
// by: Robin Burgener, March 9, 1993

[VERSION]
	1.0;

[GRAPHICS_MODE]
	0x6;

[TEXT_MODE]
	3;

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

//
// 480x320 - monochrome
//
[MODE]
	0x6;

[MODEINFO]
	ModeAttributes		= 0xA10;
	WinAAttributes		= 0;
	WinBAttributes		= 0;
	WinAGranularity		= 0;
	WinASize			= 32;
	WinABase			= 0xB8000;
	BytesPerScanLine	= 60;
	XResolution			= 480;
	YResolution			= 320;
	XCharSize			= 0;
	YCharSize			= 0;
	ColorModel			= 0;
	BitsPerPixel		= 1;
	NumberOfColors		= 2;
	BitsRGB				= 0;
	NumberOfBanks		= 4;
	BankSize			= 8;
	MemoryModel			= 0x1;
	ImagePages			= 1;
	BlackPixel			= 0;
	WhitePixel			= 1;

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

[MODEDETECT]
	r0 = 1;

[SETMODE]
	outb( 0x3D4,  0x12 );
	inb( r63, 0x3d5 );
	outb( 0x3D4,  0x20 );
	outb( 0x3D5,  0x01 );
	
	outb( 0x3D8, 0x16 );	//	disable video
	
	// set all crtc regs

	r0 = 0x38;	r1 = 0x1E;	r2 = 0x2D;	r3 = 0x0A;
	r4 = 0x7F;	r5 = 0x06;	r6 = 0x50;	r7 = 0x70;
	r8 = 0x02;	r9 = 0x03;	r10= 0x06;	r11= 0x07;
	r12= 0x00;	r13= 0x00;	r14= 0x00;  r15= 0x00;
	boutb(16, 0x3D4, 0x3D5);
	
//	r0x18= 0x50;	r0x20= 0x01;
	outw( 0x3D4, 0x5018 );
	outb( 0x3D4,  0x20 );
	outb( 0x3D5,  0x01 );
	outb( 0x3D5,  0x01 );

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

//
// Text mode
//
[MODE]
	0x3;
[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( 0x3D4,  0x12 );
	inb( r63, 0x3d5 );
	outw( 0x3D4, 0x5818 );
	outb( 0x3D8, 0x21 );	// 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;	r14=0x00;	r15=0x00;
	boutb(16, 0x3D4, 0x3D5);

	outb( 0x3D8, 0x29 );	// enable video, text
	outb( 0x3D9, 0x30 );	// Black border


//
// Text mode
//
[MODE]
	0x23;

[MODEINFO]
	ModeAttributes		= 0x8;
	WinAAttributes		= 0;
	WinAGranularity		= 0;
	WinASize			= 8;
	WinABase			= 0xB8000;
	BytesPerScanLine	= 80;
	XResolution			= 60;
	YResolution			= 40;
	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, 0x21 );	// disable graphics, disable 64k mode
	
	// set all crtc regs

	r0 = 0x71;	r1 = 0x3C;	r2 = 0x5A;	r3 = 0x0A;
	r4 = 0x28;	r5 = 0x06;	r6 = 0x28;	r7 = 0x28;
	r8 = 0x02;	r9 = 0x07;	r10= 0x06;	r11= 0x07;
	r12= 0x00;	r13= 0x00;	r14= 0x00;	r15= 0x00;	
	boutb(16, 0x3D4, 0x3D5);

	outb( 0x3D8, 0x29 );	// enable video, text
	outb( 0x3D9, 0x30 );	// Black border


