|
|
1.1 ! root 1: /* ! 2: * ! 3: * BIOS Memory ! 4: * ! 5: */ ! 6: #define BIOSMEM_SEG 0x40 ! 7: ! 8: #define BIOSMEM_INITIAL_MODE 0x10 ! 9: #define BIOSMEM_CURRENT_MODE 0x49 ! 10: #define BIOSMEM_NB_COLS 0x4A ! 11: #define BIOSMEM_PAGE_SIZE 0x4C ! 12: #define BIOSMEM_CURRENT_START 0x4E ! 13: #define BIOSMEM_CURSOR_POS 0x50 ! 14: #define BIOSMEM_CURSOR_TYPE 0x60 ! 15: #define BIOSMEM_CURRENT_PAGE 0x62 ! 16: #define BIOSMEM_CRTC_ADDRESS 0x63 ! 17: #define BIOSMEM_CURRENT_MSR 0x65 ! 18: #define BIOSMEM_CURRENT_PAL 0x66 ! 19: #define BIOSMEM_NB_ROWS 0x84 ! 20: #define BIOSMEM_CHAR_HEIGHT 0x85 ! 21: #define BIOSMEM_VIDEO_CTL 0x87 ! 22: #define BIOSMEM_SWITCHES 0x88 ! 23: #define BIOSMEM_MODESET_CTL 0x89 ! 24: #define BIOSMEM_DCC_INDEX 0x8A ! 25: #define BIOSMEM_VS_POINTER 0xA8 ! 26: #define BIOSMEM_VBE_FLAG 0xB9 ! 27: #define BIOSMEM_VBE_MODE 0xBA ! 28: ! 29: ! 30: /* ! 31: * ! 32: * VGA registers ! 33: * ! 34: */ ! 35: #define VGAREG_ACTL_ADDRESS 0x3c0 ! 36: #define VGAREG_ACTL_WRITE_DATA 0x3c0 ! 37: #define VGAREG_ACTL_READ_DATA 0x3c1 ! 38: ! 39: #define VGAREG_INPUT_STATUS 0x3c2 ! 40: #define VGAREG_WRITE_MISC_OUTPUT 0x3c2 ! 41: #define VGAREG_VIDEO_ENABLE 0x3c3 ! 42: #define VGAREG_SEQU_ADDRESS 0x3c4 ! 43: #define VGAREG_SEQU_DATA 0x3c5 ! 44: ! 45: #define VGAREG_PEL_MASK 0x3c6 ! 46: #define VGAREG_DAC_STATE 0x3c7 ! 47: #define VGAREG_DAC_READ_ADDRESS 0x3c7 ! 48: #define VGAREG_DAC_WRITE_ADDRESS 0x3c8 ! 49: #define VGAREG_DAC_DATA 0x3c9 ! 50: ! 51: #define VGAREG_READ_FEATURE_CTL 0x3ca ! 52: #define VGAREG_READ_MISC_OUTPUT 0x3cc ! 53: ! 54: #define VGAREG_GRDC_ADDRESS 0x3ce ! 55: #define VGAREG_GRDC_DATA 0x3cf ! 56: ! 57: #define VGAREG_MDA_CRTC_ADDRESS 0x3b4 ! 58: #define VGAREG_MDA_CRTC_DATA 0x3b5 ! 59: #define VGAREG_VGA_CRTC_ADDRESS 0x3d4 ! 60: #define VGAREG_VGA_CRTC_DATA 0x3d5 ! 61: ! 62: #define VGAREG_MDA_WRITE_FEATURE_CTL 0x3ba ! 63: #define VGAREG_VGA_WRITE_FEATURE_CTL 0x3da ! 64: #define VGAREG_ACTL_RESET 0x3da ! 65: ! 66: #define VGAREG_MDA_MODECTL 0x3b8 ! 67: #define VGAREG_CGA_MODECTL 0x3d8 ! 68: #define VGAREG_CGA_PALETTE 0x3d9 ! 69: ! 70: /* Video memory */ ! 71: #define VGAMEM_GRAPH 0xA000 ! 72: #define VGAMEM_CTEXT 0xB800 ! 73: #define VGAMEM_MTEXT 0xB000 ! 74: ! 75: /* ! 76: * ! 77: * Tables of default values for each mode ! 78: * ! 79: */ ! 80: #define MODE_MAX 15 ! 81: #define TEXT 0x00 ! 82: #define GRAPH 0x01 ! 83: ! 84: #define CTEXT 0x00 ! 85: #define MTEXT 0x01 ! 86: #define CGA 0x02 ! 87: #define PLANAR1 0x03 ! 88: #define PLANAR4 0x04 ! 89: #define LINEAR8 0x05 ! 90: ! 91: // for SVGA ! 92: #define LINEAR15 0x10 ! 93: #define LINEAR16 0x11 ! 94: #define LINEAR24 0x12 ! 95: #define LINEAR32 0x13 ! 96: ! 97: typedef struct ! 98: {Bit8u svgamode; ! 99: Bit8u class; /* TEXT, GRAPH */ ! 100: Bit8u memmodel; /* CTEXT,MTEXT,CGA,PL1,PL2,PL4,P8,P15,P16,P24,P32 */ ! 101: Bit8u pixbits; ! 102: Bit16u sstart; ! 103: Bit8u pelmask; ! 104: Bit8u dacmodel; /* 0 1 2 3 */ ! 105: } VGAMODES; ! 106: ! 107: static VGAMODES vga_modes[MODE_MAX+1]= ! 108: {//mode class model bits sstart pelm dac ! 109: {0x00, TEXT, CTEXT, 4, 0xB800, 0xFF, 0x02}, ! 110: {0x01, TEXT, CTEXT, 4, 0xB800, 0xFF, 0x02}, ! 111: {0x02, TEXT, CTEXT, 4, 0xB800, 0xFF, 0x02}, ! 112: {0x03, TEXT, CTEXT, 4, 0xB800, 0xFF, 0x02}, ! 113: {0x04, GRAPH, CGA, 2, 0xB800, 0xFF, 0x01}, ! 114: {0x05, GRAPH, CGA, 2, 0xB800, 0xFF, 0x01}, ! 115: {0x06, GRAPH, CGA, 1, 0xB800, 0xFF, 0x01}, ! 116: {0x07, TEXT, MTEXT, 4, 0xB000, 0xFF, 0x00}, ! 117: {0x0D, GRAPH, PLANAR4, 4, 0xA000, 0xFF, 0x01}, ! 118: {0x0E, GRAPH, PLANAR4, 4, 0xA000, 0xFF, 0x01}, ! 119: {0x0F, GRAPH, PLANAR1, 1, 0xA000, 0xFF, 0x00}, ! 120: {0x10, GRAPH, PLANAR4, 4, 0xA000, 0xFF, 0x02}, ! 121: {0x11, GRAPH, PLANAR1, 1, 0xA000, 0xFF, 0x02}, ! 122: {0x12, GRAPH, PLANAR4, 4, 0xA000, 0xFF, 0x02}, ! 123: {0x13, GRAPH, LINEAR8, 8, 0xA000, 0xFF, 0x03}, ! 124: {0x6A, GRAPH, PLANAR4, 4, 0xA000, 0xFF, 0x02} ! 125: }; ! 126: ! 127: /* convert index in vga_modes[] to index in video_param_table[] */ ! 128: static Bit8u line_to_vpti[MODE_MAX+1]={ ! 129: 0x17, 0x17, 0x18, 0x18, 0x04, 0x05, 0x06, 0x07, ! 130: 0x0d, 0x0e, 0x11, 0x12, 0x1a, 0x1b, 0x1c, 0x1d, ! 131: }; ! 132: ! 133: /* Default Palette */ ! 134: #define DAC_MAX_MODEL 3 ! 135: ! 136: static Bit8u dac_regs[DAC_MAX_MODEL+1]= ! 137: {0x3f,0x3f,0x3f,0xff}; ! 138: ! 139: /* standard BIOS Video Parameter Table */ ! 140: typedef struct { ! 141: Bit8u twidth; ! 142: Bit8u theightm1; ! 143: Bit8u cheight; ! 144: Bit8u slength_l; ! 145: Bit8u slength_h; ! 146: Bit8u sequ_regs[4]; ! 147: Bit8u miscreg; ! 148: Bit8u crtc_regs[25]; ! 149: Bit8u actl_regs[20]; ! 150: Bit8u grdc_regs[9]; ! 151: } VideoParamTableEntry; ! 152: ! 153: static VideoParamTableEntry video_param_table[30] = { ! 154: { ! 155: /* index=0x00 no mode defined */ ! 156: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 157: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 158: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 159: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 160: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 161: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 162: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 163: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 164: }, ! 165: { ! 166: /* index=0x01 no mode defined */ ! 167: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 168: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 169: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 170: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 171: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 172: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 173: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 174: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 175: }, ! 176: { ! 177: /* index=0x02 no mode defined */ ! 178: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 179: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 180: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 181: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 182: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 183: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 184: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 185: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 186: }, ! 187: { ! 188: /* index=0x03 no mode defined */ ! 189: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 190: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 191: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 192: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 193: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 194: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 195: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 196: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 197: }, ! 198: { ! 199: /* index=0x04 vga mode 0x04 */ ! 200: 40, 24, 8, 0x00, 0x08, /* tw, th-1, ch, slength */ ! 201: 0x09, 0x03, 0x00, 0x02, /* sequ_regs */ ! 202: 0x63, /* miscreg */ ! 203: 0x2d, 0x27, 0x28, 0x90, 0x2b, 0x80, 0xbf, 0x1f, ! 204: 0x00, 0xc1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 205: 0x9c, 0x8e, 0x8f, 0x14, 0x00, 0x96, 0xb9, 0xa2, ! 206: 0xff, /* crtc_regs */ ! 207: 0x00, 0x13, 0x15, 0x17, 0x02, 0x04, 0x06, 0x07, ! 208: 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, ! 209: 0x01, 0x00, 0x03, 0x00, /* actl_regs */ ! 210: 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x0f, 0x0f, 0xff, /* grdc_regs */ ! 211: }, ! 212: { ! 213: /* index=0x05 vga mode 0x05 */ ! 214: 40, 24, 8, 0x00, 0x08, /* tw, th-1, ch, slength */ ! 215: 0x09, 0x03, 0x00, 0x02, /* sequ_regs */ ! 216: 0x63, /* miscreg */ ! 217: 0x2d, 0x27, 0x28, 0x90, 0x2b, 0x80, 0xbf, 0x1f, ! 218: 0x00, 0xc1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 219: 0x9c, 0x8e, 0x8f, 0x14, 0x00, 0x96, 0xb9, 0xa2, ! 220: 0xff, /* crtc_regs */ ! 221: 0x00, 0x13, 0x15, 0x17, 0x02, 0x04, 0x06, 0x07, ! 222: 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, ! 223: 0x01, 0x00, 0x03, 0x00, /* actl_regs */ ! 224: 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x0f, 0x0f, 0xff, /* grdc_regs */ ! 225: }, ! 226: { ! 227: /* index=0x06 vga mode 0x06 */ ! 228: 80, 24, 8, 0x00, 0x10, /* tw, th-1, ch, slength */ ! 229: 0x01, 0x01, 0x00, 0x06, /* sequ_regs */ ! 230: 0x63, /* miscreg */ ! 231: 0x5f, 0x4f, 0x50, 0x82, 0x54, 0x80, 0xbf, 0x1f, ! 232: 0x00, 0xc1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 233: 0x9c, 0x8e, 0x8f, 0x28, 0x00, 0x96, 0xb9, 0xc2, ! 234: 0xff, /* crtc_regs */ ! 235: 0x00, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, ! 236: 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, ! 237: 0x01, 0x00, 0x01, 0x00, /* actl_regs */ ! 238: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0d, 0x0f, 0xff, /* grdc_regs */ ! 239: }, ! 240: { ! 241: /* index=0x07 vga mode 0x07 */ ! 242: 80, 24, 16, 0x00, 0x10, /* tw, th-1, ch, slength */ ! 243: 0x00, 0x03, 0x00, 0x02, /* sequ_regs */ ! 244: 0x66, /* miscreg */ ! 245: 0x5f, 0x4f, 0x50, 0x82, 0x55, 0x81, 0xbf, 0x1f, ! 246: 0x00, 0x4f, 0x0d, 0x0e, 0x00, 0x00, 0x00, 0x00, ! 247: 0x9c, 0x8e, 0x8f, 0x28, 0x0f, 0x96, 0xb9, 0xa3, ! 248: 0xff, /* crtc_regs */ ! 249: 0x00, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, ! 250: 0x10, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, ! 251: 0x0e, 0x00, 0x0f, 0x08, /* actl_regs */ ! 252: 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x0a, 0x0f, 0xff, /* grdc_regs */ ! 253: }, ! 254: { ! 255: /* index=0x08 no mode defined */ ! 256: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 257: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 258: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 259: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 260: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 261: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 262: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 263: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 264: }, ! 265: { ! 266: /* index=0x09 no mode defined */ ! 267: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 268: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 269: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 270: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 271: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 272: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 273: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 274: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 275: }, ! 276: { ! 277: /* index=0x0a no mode defined */ ! 278: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 279: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 280: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 281: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 282: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 283: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 284: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 285: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 286: }, ! 287: { ! 288: /* index=0x0b no mode defined */ ! 289: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 290: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 291: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 292: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 293: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 294: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 295: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 296: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 297: }, ! 298: { ! 299: /* index=0x0c no mode defined */ ! 300: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 301: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 302: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 303: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 304: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 305: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 306: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 307: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 308: }, ! 309: { ! 310: /* index=0x0d vga mode 0x0d */ ! 311: 40, 24, 8, 0x00, 0x20, /* tw, th-1, ch, slength */ ! 312: 0x09, 0x0f, 0x00, 0x06, /* sequ_regs */ ! 313: 0x63, /* miscreg */ ! 314: 0x2d, 0x27, 0x28, 0x90, 0x2b, 0x80, 0xbf, 0x1f, ! 315: 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 316: 0x9c, 0x8e, 0x8f, 0x14, 0x00, 0x96, 0xb9, 0xe3, ! 317: 0xff, /* crtc_regs */ ! 318: 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, ! 319: 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, ! 320: 0x01, 0x00, 0x0f, 0x00, /* actl_regs */ ! 321: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x0f, 0xff, /* grdc_regs */ ! 322: }, ! 323: { ! 324: /* index=0x0e vga mode 0x0e */ ! 325: 80, 24, 8, 0x00, 0x40, /* tw, th-1, ch, slength */ ! 326: 0x01, 0x0f, 0x00, 0x06, /* sequ_regs */ ! 327: 0x63, /* miscreg */ ! 328: 0x5f, 0x4f, 0x50, 0x82, 0x54, 0x80, 0xbf, 0x1f, ! 329: 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 330: 0x9c, 0x8e, 0x8f, 0x28, 0x00, 0x96, 0xb9, 0xe3, ! 331: 0xff, /* crtc_regs */ ! 332: 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, ! 333: 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, ! 334: 0x01, 0x00, 0x0f, 0x00, /* actl_regs */ ! 335: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x0f, 0xff, /* grdc_regs */ ! 336: }, ! 337: { ! 338: /* index=0x0f no mode defined */ ! 339: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 340: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 341: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 342: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 343: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 344: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 345: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 346: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 347: }, ! 348: { ! 349: /* index=0x10 no mode defined */ ! 350: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 351: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 352: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 353: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 354: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 355: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 356: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 357: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 358: }, ! 359: { ! 360: /* index=0x11 vga mode 0x0f */ ! 361: 80, 24, 14, 0x00, 0x80, /* tw, th-1, ch, slength */ ! 362: 0x01, 0x0f, 0x00, 0x06, /* sequ_regs */ ! 363: 0xa3, /* miscreg */ ! 364: 0x5f, 0x4f, 0x50, 0x82, 0x54, 0x80, 0xbf, 0x1f, ! 365: 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 366: 0x83, 0x85, 0x5d, 0x28, 0x0f, 0x63, 0xba, 0xe3, ! 367: 0xff, /* crtc_regs */ ! 368: 0x00, 0x08, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, ! 369: 0x00, 0x08, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, ! 370: 0x01, 0x00, 0x01, 0x00, /* actl_regs */ ! 371: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x0f, 0xff, /* grdc_regs */ ! 372: }, ! 373: { ! 374: /* index=0x12 vga mode 0x10 */ ! 375: 80, 24, 14, 0x00, 0x80, /* tw, th-1, ch, slength */ ! 376: 0x01, 0x0f, 0x00, 0x06, /* sequ_regs */ ! 377: 0xa3, /* miscreg */ ! 378: 0x5f, 0x4f, 0x50, 0x82, 0x54, 0x80, 0xbf, 0x1f, ! 379: 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 380: 0x83, 0x85, 0x5d, 0x28, 0x0f, 0x63, 0xba, 0xe3, ! 381: 0xff, /* crtc_regs */ ! 382: 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x14, 0x07, ! 383: 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, ! 384: 0x01, 0x00, 0x0f, 0x00, /* actl_regs */ ! 385: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x0f, 0xff, /* grdc_regs */ ! 386: }, ! 387: { ! 388: /* index=0x13 no mode defined */ ! 389: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 390: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 391: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 392: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 393: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 394: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 395: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 396: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 397: }, ! 398: { ! 399: /* index=0x14 no mode defined */ ! 400: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 401: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 402: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 403: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 404: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 405: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 406: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 407: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 408: }, ! 409: { ! 410: /* index=0x15 no mode defined */ ! 411: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 412: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 413: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 414: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 415: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 416: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 417: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 418: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 419: }, ! 420: { ! 421: /* index=0x16 no mode defined */ ! 422: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 423: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 424: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 425: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 426: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 427: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 428: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 429: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 430: }, ! 431: { ! 432: /* index=0x17 vga mode 0x01 */ ! 433: 40, 24, 16, 0x00, 0x08, /* tw, th-1, ch, slength */ ! 434: 0x08, 0x03, 0x00, 0x02, /* sequ_regs */ ! 435: 0x67, /* miscreg */ ! 436: 0x2d, 0x27, 0x28, 0x90, 0x2b, 0xa0, 0xbf, 0x1f, ! 437: 0x00, 0x4f, 0x0d, 0x0e, 0x00, 0x00, 0x00, 0x00, ! 438: 0x9c, 0x8e, 0x8f, 0x14, 0x1f, 0x96, 0xb9, 0xa3, ! 439: 0xff, /* crtc_regs */ ! 440: 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x14, 0x07, ! 441: 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, ! 442: 0x0c, 0x00, 0x0f, 0x08, /* actl_regs */ ! 443: 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x0e, 0x0f, 0xff, /* grdc_regs */ ! 444: }, ! 445: { ! 446: /* index=0x18 vga mode 0x03 */ ! 447: 80, 24, 16, 0x00, 0x10, /* tw, th-1, ch, slength */ ! 448: 0x00, 0x03, 0x00, 0x02, /* sequ_regs */ ! 449: 0x67, /* miscreg */ ! 450: 0x5f, 0x4f, 0x50, 0x82, 0x55, 0x81, 0xbf, 0x1f, ! 451: 0x00, 0x4f, 0x0d, 0x0e, 0x00, 0x00, 0x00, 0x00, ! 452: 0x9c, 0x8e, 0x8f, 0x28, 0x1f, 0x96, 0xb9, 0xa3, ! 453: 0xff, /* crtc_regs */ ! 454: 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x14, 0x07, ! 455: 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, ! 456: 0x0c, 0x00, 0x0f, 0x08, /* actl_regs */ ! 457: 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x0e, 0x0f, 0xff, /* grdc_regs */ ! 458: }, ! 459: { ! 460: /* index=0x19 vga mode 0x07 */ ! 461: 80, 24, 16, 0x00, 0x10, /* tw, th-1, ch, slength */ ! 462: 0x00, 0x03, 0x00, 0x02, /* sequ_regs */ ! 463: 0x66, /* miscreg */ ! 464: 0x5f, 0x4f, 0x50, 0x82, 0x55, 0x81, 0xbf, 0x1f, ! 465: 0x00, 0x4f, 0x0d, 0x0e, 0x00, 0x00, 0x00, 0x00, ! 466: 0x9c, 0x8e, 0x8f, 0x28, 0x0f, 0x96, 0xb9, 0xa3, ! 467: 0xff, /* crtc_regs */ ! 468: 0x00, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, ! 469: 0x10, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, ! 470: 0x0e, 0x00, 0x0f, 0x08, /* actl_regs */ ! 471: 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x0a, 0x0f, 0xff, /* grdc_regs */ ! 472: }, ! 473: { ! 474: /* index=0x1a vga mode 0x11 */ ! 475: 80, 29, 16, 0x00, 0x00, /* tw, th-1, ch, slength */ ! 476: 0x01, 0x0f, 0x00, 0x06, /* sequ_regs */ ! 477: 0xe3, /* miscreg */ ! 478: 0x5f, 0x4f, 0x50, 0x82, 0x54, 0x80, 0x0b, 0x3e, ! 479: 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 480: 0xea, 0x8c, 0xdf, 0x28, 0x00, 0xe7, 0x04, 0xe3, ! 481: 0xff, /* crtc_regs */ ! 482: 0x00, 0x3f, 0x00, 0x3f, 0x00, 0x3f, 0x00, 0x3f, ! 483: 0x00, 0x3f, 0x00, 0x3f, 0x00, 0x3f, 0x00, 0x3f, ! 484: 0x01, 0x00, 0x0f, 0x00, /* actl_regs */ ! 485: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x0f, 0xff, /* grdc_regs */ ! 486: }, ! 487: { ! 488: /* index=0x1b vga mode 0x12 */ ! 489: 80, 29, 16, 0x00, 0x00, /* tw, th-1, ch, slength */ ! 490: 0x01, 0x0f, 0x00, 0x06, /* sequ_regs */ ! 491: 0xe3, /* miscreg */ ! 492: 0x5f, 0x4f, 0x50, 0x82, 0x54, 0x80, 0x0b, 0x3e, ! 493: 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 494: 0xea, 0x8c, 0xdf, 0x28, 0x00, 0xe7, 0x04, 0xe3, ! 495: 0xff, /* crtc_regs */ ! 496: 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x14, 0x07, ! 497: 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, ! 498: 0x01, 0x00, 0x0f, 0x00, /* actl_regs */ ! 499: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x0f, 0xff, /* grdc_regs */ ! 500: }, ! 501: { ! 502: /* index=0x1c vga mode 0x13 */ ! 503: 40, 24, 8, 0x00, 0x00, /* tw, th-1, ch, slength */ ! 504: 0x01, 0x0f, 0x00, 0x0e, /* sequ_regs */ ! 505: 0x63, /* miscreg */ ! 506: 0x5f, 0x4f, 0x50, 0x82, 0x54, 0x80, 0xbf, 0x1f, ! 507: 0x00, 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 508: 0x9c, 0x8e, 0x8f, 0x28, 0x40, 0x96, 0xb9, 0xa3, ! 509: 0xff, /* crtc_regs */ ! 510: 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, ! 511: 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, ! 512: 0x41, 0x00, 0x0f, 0x00, /* actl_regs */ ! 513: 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x05, 0x0f, 0xff, /* grdc_regs */ ! 514: }, ! 515: { ! 516: /* index=0x1d vga mode 0x6a */ ! 517: 100, 36, 16, 0x00, 0x00, /* tw, th-1, ch, slength */ ! 518: 0x01, 0x0f, 0x00, 0x06, /* sequ_regs */ ! 519: 0xe3, /* miscreg */ ! 520: 0x7f, 0x63, 0x63, 0x83, 0x6b, 0x1b, 0x72, 0xf0, ! 521: 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ! 522: 0x59, 0x8d, 0x57, 0x32, 0x00, 0x57, 0x73, 0xe3, ! 523: 0xff, /* crtc_regs */ ! 524: 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x14, 0x07, ! 525: 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, ! 526: 0x01, 0x00, 0x0f, 0x00, /* actl_regs */ ! 527: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x0f, 0xff, /* grdc_regs */ ! 528: }, ! 529: }; ! 530: ! 531: /* Mono */ ! 532: static Bit8u palette0[63+1][3]= ! 533: { ! 534: 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, ! 535: 0x2a,0x2a,0x2a, 0x2a,0x2a,0x2a, 0x2a,0x2a,0x2a, 0x2a,0x2a,0x2a, 0x2a,0x2a,0x2a, 0x2a,0x2a,0x2a, 0x2a,0x2a,0x2a, 0x2a,0x2a,0x2a, ! 536: 0x2a,0x2a,0x2a, 0x2a,0x2a,0x2a, 0x2a,0x2a,0x2a, 0x2a,0x2a,0x2a, 0x2a,0x2a,0x2a, 0x2a,0x2a,0x2a, 0x2a,0x2a,0x2a, 0x2a,0x2a,0x2a, ! 537: 0x3f,0x3f,0x3f, 0x3f,0x3f,0x3f, 0x3f,0x3f,0x3f, 0x3f,0x3f,0x3f, 0x3f,0x3f,0x3f, 0x3f,0x3f,0x3f, 0x3f,0x3f,0x3f, 0x3f,0x3f,0x3f, ! 538: 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, ! 539: 0x2a,0x2a,0x2a, 0x2a,0x2a,0x2a, 0x2a,0x2a,0x2a, 0x2a,0x2a,0x2a, 0x2a,0x2a,0x2a, 0x2a,0x2a,0x2a, 0x2a,0x2a,0x2a, 0x2a,0x2a,0x2a, ! 540: 0x2a,0x2a,0x2a, 0x2a,0x2a,0x2a, 0x2a,0x2a,0x2a, 0x2a,0x2a,0x2a, 0x2a,0x2a,0x2a, 0x2a,0x2a,0x2a, 0x2a,0x2a,0x2a, 0x2a,0x2a,0x2a, ! 541: 0x3f,0x3f,0x3f, 0x3f,0x3f,0x3f, 0x3f,0x3f,0x3f, 0x3f,0x3f,0x3f, 0x3f,0x3f,0x3f, 0x3f,0x3f,0x3f, 0x3f,0x3f,0x3f, 0x3f,0x3f,0x3f ! 542: }; ! 543: ! 544: static Bit8u palette1[63+1][3]= ! 545: { ! 546: 0x00,0x00,0x00, 0x00,0x00,0x2a, 0x00,0x2a,0x00, 0x00,0x2a,0x2a, 0x2a,0x00,0x00, 0x2a,0x00,0x2a, 0x2a,0x15,0x00, 0x2a,0x2a,0x2a, ! 547: 0x00,0x00,0x00, 0x00,0x00,0x2a, 0x00,0x2a,0x00, 0x00,0x2a,0x2a, 0x2a,0x00,0x00, 0x2a,0x00,0x2a, 0x2a,0x15,0x00, 0x2a,0x2a,0x2a, ! 548: 0x15,0x15,0x15, 0x15,0x15,0x3f, 0x15,0x3f,0x15, 0x15,0x3f,0x3f, 0x3f,0x15,0x15, 0x3f,0x15,0x3f, 0x3f,0x3f,0x15, 0x3f,0x3f,0x3f, ! 549: 0x15,0x15,0x15, 0x15,0x15,0x3f, 0x15,0x3f,0x15, 0x15,0x3f,0x3f, 0x3f,0x15,0x15, 0x3f,0x15,0x3f, 0x3f,0x3f,0x15, 0x3f,0x3f,0x3f, ! 550: 0x00,0x00,0x00, 0x00,0x00,0x2a, 0x00,0x2a,0x00, 0x00,0x2a,0x2a, 0x2a,0x00,0x00, 0x2a,0x00,0x2a, 0x2a,0x15,0x00, 0x2a,0x2a,0x2a, ! 551: 0x00,0x00,0x00, 0x00,0x00,0x2a, 0x00,0x2a,0x00, 0x00,0x2a,0x2a, 0x2a,0x00,0x00, 0x2a,0x00,0x2a, 0x2a,0x15,0x00, 0x2a,0x2a,0x2a, ! 552: 0x15,0x15,0x15, 0x15,0x15,0x3f, 0x15,0x3f,0x15, 0x15,0x3f,0x3f, 0x3f,0x15,0x15, 0x3f,0x15,0x3f, 0x3f,0x3f,0x15, 0x3f,0x3f,0x3f, ! 553: 0x15,0x15,0x15, 0x15,0x15,0x3f, 0x15,0x3f,0x15, 0x15,0x3f,0x3f, 0x3f,0x15,0x15, 0x3f,0x15,0x3f, 0x3f,0x3f,0x15, 0x3f,0x3f,0x3f ! 554: }; ! 555: ! 556: static Bit8u palette2[63+1][3]= ! 557: { ! 558: 0x00,0x00,0x00, 0x00,0x00,0x2a, 0x00,0x2a,0x00, 0x00,0x2a,0x2a, 0x2a,0x00,0x00, 0x2a,0x00,0x2a, 0x2a,0x2a,0x00, 0x2a,0x2a,0x2a, ! 559: 0x00,0x00,0x15, 0x00,0x00,0x3f, 0x00,0x2a,0x15, 0x00,0x2a,0x3f, 0x2a,0x00,0x15, 0x2a,0x00,0x3f, 0x2a,0x2a,0x15, 0x2a,0x2a,0x3f, ! 560: 0x00,0x15,0x00, 0x00,0x15,0x2a, 0x00,0x3f,0x00, 0x00,0x3f,0x2a, 0x2a,0x15,0x00, 0x2a,0x15,0x2a, 0x2a,0x3f,0x00, 0x2a,0x3f,0x2a, ! 561: 0x00,0x15,0x15, 0x00,0x15,0x3f, 0x00,0x3f,0x15, 0x00,0x3f,0x3f, 0x2a,0x15,0x15, 0x2a,0x15,0x3f, 0x2a,0x3f,0x15, 0x2a,0x3f,0x3f, ! 562: 0x15,0x00,0x00, 0x15,0x00,0x2a, 0x15,0x2a,0x00, 0x15,0x2a,0x2a, 0x3f,0x00,0x00, 0x3f,0x00,0x2a, 0x3f,0x2a,0x00, 0x3f,0x2a,0x2a, ! 563: 0x15,0x00,0x15, 0x15,0x00,0x3f, 0x15,0x2a,0x15, 0x15,0x2a,0x3f, 0x3f,0x00,0x15, 0x3f,0x00,0x3f, 0x3f,0x2a,0x15, 0x3f,0x2a,0x3f, ! 564: 0x15,0x15,0x00, 0x15,0x15,0x2a, 0x15,0x3f,0x00, 0x15,0x3f,0x2a, 0x3f,0x15,0x00, 0x3f,0x15,0x2a, 0x3f,0x3f,0x00, 0x3f,0x3f,0x2a, ! 565: 0x15,0x15,0x15, 0x15,0x15,0x3f, 0x15,0x3f,0x15, 0x15,0x3f,0x3f, 0x3f,0x15,0x15, 0x3f,0x15,0x3f, 0x3f,0x3f,0x15, 0x3f,0x3f,0x3f ! 566: }; ! 567: ! 568: static Bit8u palette3[256][3]= ! 569: { ! 570: 0x00,0x00,0x00, 0x00,0x00,0x2a, 0x00,0x2a,0x00, 0x00,0x2a,0x2a, 0x2a,0x00,0x00, 0x2a,0x00,0x2a, 0x2a,0x15,0x00, 0x2a,0x2a,0x2a, ! 571: 0x15,0x15,0x15, 0x15,0x15,0x3f, 0x15,0x3f,0x15, 0x15,0x3f,0x3f, 0x3f,0x15,0x15, 0x3f,0x15,0x3f, 0x3f,0x3f,0x15, 0x3f,0x3f,0x3f, ! 572: 0x00,0x00,0x00, 0x05,0x05,0x05, 0x08,0x08,0x08, 0x0b,0x0b,0x0b, 0x0e,0x0e,0x0e, 0x11,0x11,0x11, 0x14,0x14,0x14, 0x18,0x18,0x18, ! 573: 0x1c,0x1c,0x1c, 0x20,0x20,0x20, 0x24,0x24,0x24, 0x28,0x28,0x28, 0x2d,0x2d,0x2d, 0x32,0x32,0x32, 0x38,0x38,0x38, 0x3f,0x3f,0x3f, ! 574: 0x00,0x00,0x3f, 0x10,0x00,0x3f, 0x1f,0x00,0x3f, 0x2f,0x00,0x3f, 0x3f,0x00,0x3f, 0x3f,0x00,0x2f, 0x3f,0x00,0x1f, 0x3f,0x00,0x10, ! 575: 0x3f,0x00,0x00, 0x3f,0x10,0x00, 0x3f,0x1f,0x00, 0x3f,0x2f,0x00, 0x3f,0x3f,0x00, 0x2f,0x3f,0x00, 0x1f,0x3f,0x00, 0x10,0x3f,0x00, ! 576: 0x00,0x3f,0x00, 0x00,0x3f,0x10, 0x00,0x3f,0x1f, 0x00,0x3f,0x2f, 0x00,0x3f,0x3f, 0x00,0x2f,0x3f, 0x00,0x1f,0x3f, 0x00,0x10,0x3f, ! 577: 0x1f,0x1f,0x3f, 0x27,0x1f,0x3f, 0x2f,0x1f,0x3f, 0x37,0x1f,0x3f, 0x3f,0x1f,0x3f, 0x3f,0x1f,0x37, 0x3f,0x1f,0x2f, 0x3f,0x1f,0x27, ! 578: ! 579: 0x3f,0x1f,0x1f, 0x3f,0x27,0x1f, 0x3f,0x2f,0x1f, 0x3f,0x37,0x1f, 0x3f,0x3f,0x1f, 0x37,0x3f,0x1f, 0x2f,0x3f,0x1f, 0x27,0x3f,0x1f, ! 580: 0x1f,0x3f,0x1f, 0x1f,0x3f,0x27, 0x1f,0x3f,0x2f, 0x1f,0x3f,0x37, 0x1f,0x3f,0x3f, 0x1f,0x37,0x3f, 0x1f,0x2f,0x3f, 0x1f,0x27,0x3f, ! 581: 0x2d,0x2d,0x3f, 0x31,0x2d,0x3f, 0x36,0x2d,0x3f, 0x3a,0x2d,0x3f, 0x3f,0x2d,0x3f, 0x3f,0x2d,0x3a, 0x3f,0x2d,0x36, 0x3f,0x2d,0x31, ! 582: 0x3f,0x2d,0x2d, 0x3f,0x31,0x2d, 0x3f,0x36,0x2d, 0x3f,0x3a,0x2d, 0x3f,0x3f,0x2d, 0x3a,0x3f,0x2d, 0x36,0x3f,0x2d, 0x31,0x3f,0x2d, ! 583: 0x2d,0x3f,0x2d, 0x2d,0x3f,0x31, 0x2d,0x3f,0x36, 0x2d,0x3f,0x3a, 0x2d,0x3f,0x3f, 0x2d,0x3a,0x3f, 0x2d,0x36,0x3f, 0x2d,0x31,0x3f, ! 584: 0x00,0x00,0x1c, 0x07,0x00,0x1c, 0x0e,0x00,0x1c, 0x15,0x00,0x1c, 0x1c,0x00,0x1c, 0x1c,0x00,0x15, 0x1c,0x00,0x0e, 0x1c,0x00,0x07, ! 585: 0x1c,0x00,0x00, 0x1c,0x07,0x00, 0x1c,0x0e,0x00, 0x1c,0x15,0x00, 0x1c,0x1c,0x00, 0x15,0x1c,0x00, 0x0e,0x1c,0x00, 0x07,0x1c,0x00, ! 586: 0x00,0x1c,0x00, 0x00,0x1c,0x07, 0x00,0x1c,0x0e, 0x00,0x1c,0x15, 0x00,0x1c,0x1c, 0x00,0x15,0x1c, 0x00,0x0e,0x1c, 0x00,0x07,0x1c, ! 587: ! 588: 0x0e,0x0e,0x1c, 0x11,0x0e,0x1c, 0x15,0x0e,0x1c, 0x18,0x0e,0x1c, 0x1c,0x0e,0x1c, 0x1c,0x0e,0x18, 0x1c,0x0e,0x15, 0x1c,0x0e,0x11, ! 589: 0x1c,0x0e,0x0e, 0x1c,0x11,0x0e, 0x1c,0x15,0x0e, 0x1c,0x18,0x0e, 0x1c,0x1c,0x0e, 0x18,0x1c,0x0e, 0x15,0x1c,0x0e, 0x11,0x1c,0x0e, ! 590: 0x0e,0x1c,0x0e, 0x0e,0x1c,0x11, 0x0e,0x1c,0x15, 0x0e,0x1c,0x18, 0x0e,0x1c,0x1c, 0x0e,0x18,0x1c, 0x0e,0x15,0x1c, 0x0e,0x11,0x1c, ! 591: 0x14,0x14,0x1c, 0x16,0x14,0x1c, 0x18,0x14,0x1c, 0x1a,0x14,0x1c, 0x1c,0x14,0x1c, 0x1c,0x14,0x1a, 0x1c,0x14,0x18, 0x1c,0x14,0x16, ! 592: 0x1c,0x14,0x14, 0x1c,0x16,0x14, 0x1c,0x18,0x14, 0x1c,0x1a,0x14, 0x1c,0x1c,0x14, 0x1a,0x1c,0x14, 0x18,0x1c,0x14, 0x16,0x1c,0x14, ! 593: 0x14,0x1c,0x14, 0x14,0x1c,0x16, 0x14,0x1c,0x18, 0x14,0x1c,0x1a, 0x14,0x1c,0x1c, 0x14,0x1a,0x1c, 0x14,0x18,0x1c, 0x14,0x16,0x1c, ! 594: 0x00,0x00,0x10, 0x04,0x00,0x10, 0x08,0x00,0x10, 0x0c,0x00,0x10, 0x10,0x00,0x10, 0x10,0x00,0x0c, 0x10,0x00,0x08, 0x10,0x00,0x04, ! 595: 0x10,0x00,0x00, 0x10,0x04,0x00, 0x10,0x08,0x00, 0x10,0x0c,0x00, 0x10,0x10,0x00, 0x0c,0x10,0x00, 0x08,0x10,0x00, 0x04,0x10,0x00, ! 596: ! 597: 0x00,0x10,0x00, 0x00,0x10,0x04, 0x00,0x10,0x08, 0x00,0x10,0x0c, 0x00,0x10,0x10, 0x00,0x0c,0x10, 0x00,0x08,0x10, 0x00,0x04,0x10, ! 598: 0x08,0x08,0x10, 0x0a,0x08,0x10, 0x0c,0x08,0x10, 0x0e,0x08,0x10, 0x10,0x08,0x10, 0x10,0x08,0x0e, 0x10,0x08,0x0c, 0x10,0x08,0x0a, ! 599: 0x10,0x08,0x08, 0x10,0x0a,0x08, 0x10,0x0c,0x08, 0x10,0x0e,0x08, 0x10,0x10,0x08, 0x0e,0x10,0x08, 0x0c,0x10,0x08, 0x0a,0x10,0x08, ! 600: 0x08,0x10,0x08, 0x08,0x10,0x0a, 0x08,0x10,0x0c, 0x08,0x10,0x0e, 0x08,0x10,0x10, 0x08,0x0e,0x10, 0x08,0x0c,0x10, 0x08,0x0a,0x10, ! 601: 0x0b,0x0b,0x10, 0x0c,0x0b,0x10, 0x0d,0x0b,0x10, 0x0f,0x0b,0x10, 0x10,0x0b,0x10, 0x10,0x0b,0x0f, 0x10,0x0b,0x0d, 0x10,0x0b,0x0c, ! 602: 0x10,0x0b,0x0b, 0x10,0x0c,0x0b, 0x10,0x0d,0x0b, 0x10,0x0f,0x0b, 0x10,0x10,0x0b, 0x0f,0x10,0x0b, 0x0d,0x10,0x0b, 0x0c,0x10,0x0b, ! 603: 0x0b,0x10,0x0b, 0x0b,0x10,0x0c, 0x0b,0x10,0x0d, 0x0b,0x10,0x0f, 0x0b,0x10,0x10, 0x0b,0x0f,0x10, 0x0b,0x0d,0x10, 0x0b,0x0c,0x10, ! 604: 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00 ! 605: }; ! 606: ! 607: static Bit8u static_functionality[0x10]= ! 608: { ! 609: /* 0 */ 0xff, // All modes supported #1 ! 610: /* 1 */ 0xe0, // All modes supported #2 ! 611: /* 2 */ 0x0f, // All modes supported #3 ! 612: /* 3 */ 0x00, 0x00, 0x00, 0x00, // reserved ! 613: /* 7 */ 0x07, // 200, 350, 400 scan lines ! 614: /* 8 */ 0x02, // mamimum number of visible charsets in text mode ! 615: /* 9 */ 0x08, // total number of charset blocks in text mode ! 616: /* a */ 0xe7, // Change to add new functions ! 617: /* b */ 0x0c, // Change to add new functions ! 618: /* c */ 0x00, // reserved ! 619: /* d */ 0x00, // reserved ! 620: /* e */ 0x00, // Change to add new functions ! 621: /* f */ 0x00 // reserved ! 622: };
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.