2018-09-28 20:35:51 +02:00
|
|
|
/*******************************************************************************/
|
|
|
|
/* COS2000 - Compatible Operating System - LGPL v3 - Hordé Nicolas */
|
|
|
|
/* */
|
|
|
|
|
2018-08-17 16:46:56 +02:00
|
|
|
/* definition des registres de la carte VGA pour differents modes */
|
|
|
|
|
2018-10-12 20:37:26 +02:00
|
|
|
#define nbmodes 9
|
|
|
|
|
|
|
|
static capabilities vgacapabilities[nbmodes] = {
|
|
|
|
{0x00, 80, 25,false, 4, 0},
|
|
|
|
{0x01, 80, 50,false, 4, 0},
|
|
|
|
{0x80,640,480,true , 1, 0},
|
|
|
|
{0x81,320,200,true , 2, 0},
|
|
|
|
{0x82,640,480,true , 4, 0},
|
|
|
|
{0x83,320,200,true , 8, 0},
|
|
|
|
{0x84,320,400,true , 8, 0},
|
|
|
|
{0x85,320,480,true , 8, 0},
|
|
|
|
{0x86,360,480,true , 8, 0},
|
|
|
|
{0xFF,000,000,false, 0, 0},
|
|
|
|
};
|
2018-08-17 16:46:56 +02:00
|
|
|
|
|
|
|
|
2018-10-12 20:37:26 +02:00
|
|
|
static vgamode modes[nbmodes] = {
|
2018-08-17 16:46:56 +02:00
|
|
|
|
2018-10-12 20:37:26 +02:00
|
|
|
/*80*25 16 couleurs mode 0x00 */
|
|
|
|
{{0x67},
|
|
|
|
{0x03, 0x00, 0x03, 0x00, 0x02},
|
|
|
|
{0x5F, 0x4F, 0x50, 0x82, 0x55, 0x81, 0xBF, 0x1F, 0x00,
|
2018-08-17 16:46:56 +02:00
|
|
|
0x4F, 0x0D, 0x0E, 0x00, 0x00, 0x00, 0x00,
|
2018-10-12 20:37:26 +02:00
|
|
|
0x9C, 0x0E, 0x8F, 0x28, 0x1F, 0x96, 0xB9, 0xA3, 0xFF},
|
|
|
|
{0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x02, 0x00, 0xFF},
|
|
|
|
{0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x14, 0x07, 0x38, 0x39, 0x3A, 0x3B,
|
2018-08-17 16:46:56 +02:00
|
|
|
0x3C, 0x3D, 0x3E, 0x3F,
|
2018-10-12 20:37:26 +02:00
|
|
|
0x0C, 0x00, 0x0F, 0x08, 0x00}},
|
2018-08-17 16:46:56 +02:00
|
|
|
|
2018-10-12 20:37:26 +02:00
|
|
|
/*80*50 16 couleurs mode 0x01 */
|
|
|
|
{{0x63},
|
|
|
|
{0x03, 0x01, 0x03, 0x05, 0x02},
|
|
|
|
{0x5F, 0x4F, 0x50, 0x82, 0x55, 0x81, 0xBF, 0x1F, 0x00,
|
2018-08-17 16:46:56 +02:00
|
|
|
0x47, 0x06, 0x07, 0x00, 0x00, 0x00, 0x00,
|
2018-10-12 20:37:26 +02:00
|
|
|
0x9C, 0x8E, 0x8F, 0x28, 0x1F, 0x96, 0xB9, 0xA3, 0xFF},
|
|
|
|
{0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x02, 0x00, 0xFF},
|
|
|
|
{0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x14, 0x07, 0x38, 0x39, 0x3A, 0x3B,
|
2018-08-17 16:46:56 +02:00
|
|
|
0x3C, 0x3D, 0x3E, 0x3F,
|
2018-10-12 20:37:26 +02:00
|
|
|
0x0C, 0x00, 0x0F, 0x00, 0x00}},
|
2018-08-17 16:46:56 +02:00
|
|
|
|
|
|
|
/*640*480 n&b mode 0x80 */
|
2018-10-12 20:37:26 +02:00
|
|
|
{{0xE3},
|
|
|
|
{0x03, 0x01, 0x0F, 0x00, 0x06},
|
|
|
|
{0x5F, 0x4F, 0x50, 0x82, 0x54, 0x80, 0x0B, 0x3E, 0x00,
|
2018-08-17 16:46:56 +02:00
|
|
|
0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
2018-10-12 20:37:26 +02:00
|
|
|
0xEA, 0x0C, 0xDF, 0x28, 0x00, 0xE7, 0x04, 0xE3, 0xFF},
|
|
|
|
{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x0F, 0xFF},
|
|
|
|
{0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x10, 0x11, 0x3A, 0x3B,
|
2018-08-17 16:46:56 +02:00
|
|
|
0x3C, 0x3D, 0x3E, 0x3F,
|
2018-10-12 20:37:26 +02:00
|
|
|
0x01, 0x00, 0x0F, 0x00, 0x00}},
|
2018-08-17 16:46:56 +02:00
|
|
|
|
|
|
|
/*320*200 4 couleurs mode 0x81 */
|
2018-10-12 20:37:26 +02:00
|
|
|
{{0x63},
|
|
|
|
{0x03, 0x09, 0x03, 0x00, 0x02},
|
|
|
|
{0x2D, 0x27, 0x28, 0x90, 0x2B, 0x80, 0xBF, 0x1F, 0x00,
|
2018-08-17 16:46:56 +02:00
|
|
|
0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
2018-10-12 20:37:26 +02:00
|
|
|
0x9C, 0x0E, 0x8F, 0x14, 0x00, 0x96, 0xB9, 0xA3, 0xFF},
|
|
|
|
{0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x02, 0x00, 0xFF},
|
|
|
|
{0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x10, 0x11, 0x3A, 0x3B,
|
2018-08-17 16:46:56 +02:00
|
|
|
0x3C, 0x3D, 0x3E, 0x3F,
|
2018-10-12 20:37:26 +02:00
|
|
|
0x01, 0x00, 0x03, 0x00, 0x00}},
|
2018-08-17 16:46:56 +02:00
|
|
|
|
|
|
|
/*640*480 16 couleurs mode 0x82 */
|
2018-10-12 20:37:26 +02:00
|
|
|
{{0xE3},
|
|
|
|
{0x03, 0x01, 0x0F, 0x00, 0x06},
|
|
|
|
{0x5F, 0x4F, 0x50, 0x82, 0x53, 0x9F, 0x0B, 0x3E, 0x00,
|
2018-08-17 16:46:56 +02:00
|
|
|
0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
2018-10-12 20:37:26 +02:00
|
|
|
0xE9, 0x8B, 0xDF, 0x28, 0x00, 0xE7, 0x04, 0xE3, 0xFF},
|
|
|
|
{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x0F, 0xFF},
|
|
|
|
{0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x10, 0x11, 0x3A, 0x3B,
|
2018-08-17 16:46:56 +02:00
|
|
|
0x3C, 0x3D, 0x3E, 0x3F,
|
2018-10-12 20:37:26 +02:00
|
|
|
0x01, 0x00, 0x0F, 0x00, 0x00}},
|
2018-08-17 16:46:56 +02:00
|
|
|
|
2018-10-12 20:37:26 +02:00
|
|
|
/*320*200 256 couleurs RAPIDE mode 0x83 */
|
|
|
|
{{0x63},
|
|
|
|
{0x03, 0x01, 0x0F, 0x00, 0x0E},
|
|
|
|
{0x5F, 0x4F, 0x50, 0x82, 0x54, 0x80, 0xBF, 0x1F, 0x00,
|
2018-08-17 16:46:56 +02:00
|
|
|
0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
2018-10-12 20:37:26 +02:00
|
|
|
0x9C, 0x0E, 0x8F, 0x28, 0x40, 0x96, 0xB9, 0xA3, 0xFF},
|
|
|
|
{0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x05, 0x0F, 0xFF},
|
|
|
|
{0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B,
|
2018-08-17 16:46:56 +02:00
|
|
|
0x0C, 0x0D, 0x0E, 0x0F,
|
2018-10-12 20:37:26 +02:00
|
|
|
0x41, 0x00, 0x0F, 0x00, 0x00}},
|
2018-08-17 16:46:56 +02:00
|
|
|
|
2018-10-12 20:37:26 +02:00
|
|
|
/*320*400 256 couleurs mode 0x84 */
|
|
|
|
{{0x63},
|
|
|
|
{0x03, 0x01, 0x0F, 0x00, 0x06},
|
|
|
|
{0x5F, 0x4F, 0x50, 0x82, 0x54, 0x80, 0xBF, 0x1F, 0x00,
|
2018-08-17 16:46:56 +02:00
|
|
|
0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
2018-10-12 20:37:26 +02:00
|
|
|
0x9C, 0x8E, 0x8F, 0x28, 0x00, 0x96, 0xB9, 0xE3, 0xFF},
|
|
|
|
{0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x05, 0x0F, 0xFF},
|
|
|
|
{0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B,
|
2018-08-17 16:46:56 +02:00
|
|
|
0x0C, 0x0D, 0x0E, 0x0F,
|
2018-10-12 20:37:26 +02:00
|
|
|
0x41, 0x00, 0x0F, 0x00, 0x00}},
|
2018-08-17 16:46:56 +02:00
|
|
|
|
2018-10-12 20:37:26 +02:00
|
|
|
/*320*480 256 couleurs mode 0x85 */
|
|
|
|
{{0xE3},
|
|
|
|
{0x03, 0x01, 0x0F, 0x00, 0x06},
|
|
|
|
{0x5F, 0x4F, 0x50, 0x82, 0x54, 0x80, 0x0B, 0x3E, 0x00,
|
2018-08-17 16:46:56 +02:00
|
|
|
0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
2018-10-12 20:37:26 +02:00
|
|
|
0xEA, 0xAC, 0xDF, 0x28, 0x00, 0xE7, 0x06, 0xE3, 0xFF},
|
|
|
|
{0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x05, 0x0F, 0xFF},
|
|
|
|
{0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B,
|
2018-08-17 16:46:56 +02:00
|
|
|
0x0C, 0x0D, 0x0E, 0x0F,
|
2018-10-12 20:37:26 +02:00
|
|
|
0x41, 0x00, 0x0F, 0x00, 0x00}},
|
2018-08-17 16:46:56 +02:00
|
|
|
|
2018-10-12 20:37:26 +02:00
|
|
|
/*360*480 256 couleurs mode 0x86 */
|
|
|
|
{{0xE7},
|
|
|
|
{0x03, 0x01, 0x0F, 0x00, 0x06},
|
|
|
|
{0x6B, 0x59, 0x5A, 0x8E, 0x5E, 0x8A, 0x0D, 0x3E, 0x00,
|
2018-08-17 16:46:56 +02:00
|
|
|
0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
2018-10-12 20:37:26 +02:00
|
|
|
0xEA, 0xAC, 0xDF, 0x2D, 0x00, 0xE7, 0x06, 0xE3, 0xFF},
|
|
|
|
{0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x05, 0x0F, 0xFF},
|
|
|
|
{0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B,
|
2018-08-17 16:46:56 +02:00
|
|
|
0x0C, 0x0D, 0x0E, 0x0F,
|
2018-10-12 20:37:26 +02:00
|
|
|
0x41, 0x00, 0x0F, 0x00, 0x00}},
|
2018-08-17 16:46:56 +02:00
|
|
|
};
|