/*	Oak Techologies OTI-067/077/087 mode definitions
 *	
 * 	12 September 1994 Christopher M. Wiles (a0017097@wsuaix.csc.wsu.edu)
 *	The below mode definitions work just fine on my '87 board.  As I
 *	do not have either a '67 or a '77 to play with, I cannot guarantee
 *	that any or all of these modes will work with cards based on those
 *	chips.  Therefore, use at your own risk (and let me know if they work).
 *
 *	NB: If any of these modes are displaced horizontally, change the fifth
 *	byte (in units of 8) of the CRTC section in the definition in 
 *	question.  Increment the value to move the screen left, decrement to
 *	move the screen right.
 */

static const unsigned char g640x480x256_regs[79] = {
	/* CRTC */
	0x63,0x4F,0x50,0x86,0x58,0x81,0x06,0x3E,0x00,0x40,0x00,0x00,
	0x00,0x00,0x00,0x00,0xE8,0x8b,0xDF,0x28,0x00,0xE4,0x01,0xC3,
	/* ATC */
	0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,
	0x0c,0x0d,0x0e,0x0f,0x01,0x00,0x0f,0x00,0x00,
	/* Graphics */
	0x00,0x00,0x00,0x00,0x00,0x40,0x05,0x0f,0xff,
	/* Sequencer */
	0x03,0x09,0x0f,0x00,0x0e,
	/* Misc. output */
	0xE3,
	/* Extended registers */
	0xC0, 0x8F, 0x80, 0x00, 0x01, 0x00, 0x00, 0xFF,
	/* 087 native registers */
	0x0f, 0x00, 0x00, 0x00, 0x0f, 0x04, 0x04, 0x00,
	0x00, 0x00, 0x00

};

static const unsigned char g800x600x16_regs[79] = {
	/* CRTC */
	0x7f,0x63,0x64,0x82,0x6c,0x1f,0x72,0xf0,0x00,0x60,0x00,0x00,
	0x00,0x00,0x00,0x00,0x58,0x8c,0x57,0x32,0x0f,0x58,0x6e,0xe3,
	/* ATC */
	0x00,0x01,0x02,0x03,0x04,0x05,0x14,0x07,0x38,0x39,0x3a,0x3b,
	0x3c,0x3d,0x3e,0x3f,0x01,0x00,0x0f,0x00,0x00,
	/* Graphics */
	0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x0f,0xff,
	/* Sequencer */
	0x03,0x01,0x0f,0x00,0x06,
	/* Misc. output */
	0xeb,
	/* Extended registers */
	0x00, 0x28, 0xff, 0x00, 0xff, 0x00, 0x00, 0xff,
	/* 087 Native registers */
	0x06, 0x00, 0x40, 0x00, 0x0f, 0x03, 0x00, 0x08,
	0x00, 0x00, 0x00

};

static const unsigned char g800x600x256_regs[79] = {
	/* CRTC */
	0x7f,0x63,0x64,0x82,0x6c,0x1f,0x72,0xf0,0x00,0x60,0x00,0x00,
	0x00,0x00,0x00,0x00,0x58,0x8c,0x57,0x32,0x0f,0x58,0x6e,0xe3,
	/* ATC */
	0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,
	0x0c,0x0d,0x0e,0x0f,0x01,0x00,0x0f,0x00,0x00,
	/* Graphics */
	0x00,0x00,0x00,0x00,0x00,0x40,0x05,0x0f,0xff,
	/* Sequencer */
	0x03,0x01,0x0f,0x00,0x0e,
	/* Misc. output */
	0xeb,
	/* Extended registers */
	0x00, 0x2e, 0xff, 0x00, 0xff, 0x00, 0x40, 0xff,
	/* 087 native registers */
	0x06, 0x00, 0x40, 0x00, 0x0f, 0x06, 0x04, 0x08,
	0x00, 0x00, 0x00

};

static const unsigned char g1024x768x256_regs[79] = {
	/* CRTC */
	0xa3,0x7f,0x80,0x86,0x89,0x9a,0x24,0xfd,0x00,0x60,0x00,0x00,
	0x00,0x00,0x00,0x00,0x02,0x88,0xff,0x40,0x0f,0x02,0x20,0xe3,
	/* ATC */
	0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,
	0x0c,0x0d,0x0e,0x0f,0x01,0x00,0x0f,0x00,0x00,
	/* Graphics */
	0x00,0x00,0x00,0x00,0x00,0x40,0x05,0x0f,0xff,
	/* Sequencer */
	0x03,0x01,0x0f,0x00,0x0e,
	/* Misc. output */
	0x2b,
	/* Extended registers */
	0x00, 0x0d, 0xff, 0x00, 0xff, 0x00, 0x4f, 0xff,
	/* 087 native registers */
	0x0b, 0x00, 0x4f, 0x00, 0x0f, 0x05, 0x04, 0x04,
	0x00, 0x00, 0x00

};

static const unsigned char g640x480x32K_regs[79] = {
	/* CRTC */
	0xcb,0x9f,0xa1,0x8d,0xad,0x0f,0x0b,0x3e,0x00,0x40,0x00,0x00,
	0x00,0x00,0x00,0x00,0xe8,0x8b,0xdf,0x50,0x00,0xe4,0x01,0xc3,
	/* ATC */
	0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,
	0x0c,0x0d,0x0e,0x0f,0x01,0x00,0x0f,0x00,0x00,
	/* Graphics */
	0x00,0x00,0x00,0x00,0x00,0x40,0x05,0x0f,0xff,
	/* Sequencer */
	0x03,0x01,0x0f,0x00,0x0e,
	/* Misc. output */
	0xe3,
	/* Extended registers */
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
	/* 087 native registers */
	0x0f, 0x00, 0x00, 0x00, 0x0f, 0x08, 0x04, 0x08,
	0x00, 0x00, 0xa0
};

static const unsigned char g800x600x32K_regs[79] = {
	/* CRTC */
	0xff,0xc7,0xc9,0x81,0xd9,0x04,0x72,0xf0,0x00,0x60,0x00,0x00,
 	0x00,0x00,0x00,0x00,0x58,0x8c,0x57,0x64,0x0f,0x58,0x6e,0xe3,
	/* ATC */
 	0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,
 	0x0c,0x0d,0x0e,0x0f,0x01,0x00,0x0f,0x00,0x00,
	/* Graphics */
 	0x00,0x00,0x00,0x00,0x00,0x40,0x05,0x0f,0xff,
	/* Sequencer */
 	0x03,0x01,0x0f,0x00,0x0e,
	/* Misc. output */
 	0xeb,
	/* Extended registers */
 	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
	/* 087 native registers */
	0x0a, 0x00, 0x00, 0x00, 0x0f, 0x0a, 0x04, 0x08,
 	0x00, 0x00, 0xa0

};

static const unsigned char g1280x1024x16_regs[79] = {
	/* CRTC */
	0xc3,0x9f,0xa0,0x86,0xa2,0x17,0x2e,0xb2,0x00,0x60,0x00,0x00,
	0x00,0x00,0x00,0x00,0x0d,0x9c,0xff,0x50,0x0f,0x04,0x29,0xe3,
	/* ATC */
	0x00,0x01,0x02,0x03,0x04,0x05,0x14,0x07,0x38,0x39,0x3a,0x3b,
	0x3c,0x3d,0x3e,0x3f,0x01,0x00,0x0f,0x00,0x00,
	/* Graphics */
	0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x0f,0xff,
	/* Sequencer */
	0x03,0x01,0x0f,0x00,0x06,
	/* Misc. output */
	0x2b,
	/* Extended registers */
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
	/* 087 native registers */
	0x0a, 0x80, 0x4f, 0x00, 0x0f, 0x05, 0x00, 0x08,
	0x00, 0x00, 0x00	

};

/* HighRes 16 color modes based on 256 color modes */
#define g1024x768x16_regs g1024x768x256_regs
