|
|
1.1 ! root 1: /* Copyright (c) 1992 NeXT Computer, Inc. All rights reserved. ! 2: * ! 3: * SVGACommonDefines.h ! 4: * ! 5: */ ! 6: ! 7: /* ! 8: ** Color palette constants ! 9: */ ! 10: #define WHITE_INDEX 3 ! 11: #define LIGHT_GRAY_INDEX 2 ! 12: #define DARK_GRAY_INDEX 1 ! 13: #define BLACK_INDEX 0 ! 14: ! 15: /* ! 16: ** Color palette constants (gamma 2.2, for typical CRT displays) ! 17: */ ! 18: #define WHITE_PALETTE_VALUE 0x3F ! 19: #define LIGHT_GRAY_PALETTE_VALUE 0x34 ! 20: #define DARK_GRAY_PALETTE_VALUE 0x26 ! 21: #define BLACK_PALETTE_VALUE 0 ! 22: ! 23: ! 24: /* ! 25: ************************************************************************** ! 26: ** VGA :- General registers ** ! 27: ************************************************************************** ! 28: */ ! 29: #define WRIT_MONO_GEN_MISC_OP 0x03C2 ! 30: #define WRIT_COLR_GEN_MISC_OP 0x03C2 ! 31: #define WRIT_EIDR_GEN_MISC_OP 0x03C2 ! 32: ! 33: #define READ_MONO_GEN_MISC_OP 0x03CC ! 34: #define READ_COLR_GEN_MISC_OP 0x03CC ! 35: #define READ_EIDR_GEN_MISC_OP 0x03CC ! 36: ! 37: #define READ_MONO_GEN_IN_ST_0 0x03C2 ! 38: #define READ_COLR_GEN_IN_ST_0 0x03C2 ! 39: #define READ_EIDR_GEN_IN_ST_0 0x03C2 ! 40: ! 41: #define READ_MONO_GEN_IN_ST_1 0x03BA ! 42: #define READ_COLR_GEN_IN_ST_1 0x03DA ! 43: ! 44: #define WRIT_MONO_GEN_FEAT_CT 0x03BA ! 45: #define WRIT_COLR_GEN_FEAT_CT 0x03DA ! 46: ! 47: #define READ_MONO_GEN_FEAT_CT 0x03CA ! 48: #define READ_COLR_GEN_FEAT_CT 0x03CA ! 49: ! 50: /* ! 51: ** Index mask - not necessary here ! 52: */ ! 53: #define MONO_GEN_MSK 0x00 ! 54: #define COLR_GEN_MSK 0x00 ! 55: #define EIDR_GEN_MSK 0x00 ! 56: ! 57: /* ! 58: ** List of index registers ! 59: */ ! 60: ! 61: /* ! 62: ** Bitfields for misc op reg. ! 63: */ ! 64: #define GEN_AT_VSP 0x80 ! 65: #define GEN_AT_HSP 0x40 ! 66: #define GEN_AT__PB 0x00 ! 67: #define GEN_AT_DVD 0x10 ! 68: #define GEN_AT__CS 0x0C ! 69: #define GEN_AT__ER 0x02 ! 70: #define GEN_AT_IOA 0x01 ! 71: ! 72: /* ! 73: ** Bitfields for feature control reg. ! 74: */ ! 75: #define GEN_AT_VSS 0x08 ! 76: ! 77: /* ! 78: ** Bitfields for Input Status #0 register ! 79: */ ! 80: #define GEN_AT__SS 0x10 ! 81: ! 82: /* ! 83: ** Bitfields for Input Status #1 register ! 84: */ ! 85: #define GEN_AT__VR 0x08 ! 86: #define GEN_AT__DE 0x01 ! 87: ! 88: /* ! 89: ************************************************************************** ! 90: ** VGA :- Sequencer registers ** ! 91: ************************************************************************** ! 92: */ ! 93: #define MONO_SEQ_ADDR 0x03C4 ! 94: #define COLR_SEQ_ADDR 0x03C4 ! 95: #define EIDR_SEQ_ADDR 0x03C4 ! 96: ! 97: #define MONO_SEQ_DATA 0x03C5 ! 98: #define COLR_SEQ_DATA 0x03C5 ! 99: #define EIDR_SEQ_DATA 0x03C5 ! 100: ! 101: /* ! 102: ** List of index registers ! 103: */ ! 104: #define SEQ_AT_RST 0x00 ! 105: #define SEQ_AT_CLO 0x01 ! 106: #define SEQ_AT_MPK 0x02 ! 107: #define SEQ_AT_CRS 0x03 ! 108: #define SEQ_AT_MMD 0x04 ! 109: ! 110: /* ! 111: ** Bitfield - Sequencer registers - Reset ! 112: */ ! 113: #define SEQ_AT__SR 0x02 ! 114: #define SEQ_AT__AR 0x00 ! 115: ! 116: /* ! 117: ** Bitfields - Sequencer registers - Clocking Mode Register ! 118: */ ! 119: #define SEQ_AT__SO 0x20 ! 120: #define SEQ_AT__S4 0x10 ! 121: #define SEQ_AT__DC 0x08 ! 122: #define SEQ_AT__SL 0x04 ! 123: #define SEQ_AT__89 0x01 ! 124: ! 125: /* ! 126: ** Bitfields - Sequencer registers - Map Mask Register ! 127: */ ! 128: #define SEQ_AT_EM3 0x08 ! 129: #define SEQ_AT_EM2 0x04 ! 130: #define SEQ_AT_EM1 0x02 ! 131: #define SEQ_AT_EM0 0x01 ! 132: ! 133: /* ! 134: ** Bitfields - Sequencer registers - Character Map Select Registers ! 135: */ ! 136: #define SEQ_AT_SAH 0x20 ! 137: #define SEQ_AT_SBH 0x10 ! 138: #define SEQ_AT__SA 0x0C ! 139: #define SEQ_AT__SB 0x03 ! 140: ! 141: /* ! 142: ** Bitfields - Sequencer registers - Memory Mode Register ! 143: */ ! 144: #define SEQ_AT__C4 0x08 ! 145: #define SEQ_AT__OE 0x04 ! 146: #define SEQ_AT__EM 0x02 ! 147: ! 148: /* ! 149: ************************************************************************** ! 150: ** VGA :- CRT Controller Registers ** ! 151: ************************************************************************** ! 152: */ ! 153: #define MONO_CRT_ADDR 0x03B4 ! 154: #define MONO_CRT_DATA 0x03B5 ! 155: ! 156: #define COLR_CRT_ADDR 0x03D4 ! 157: #define COLR_CRT_DATA 0x03D5 ! 158: ! 159: ! 160: /* ! 161: ** List of index registers ! 162: */ ! 163: #define CRT_AT_HORZ_TOT 0x00 ! 164: #define CRT_AT_HORZ_DND 0x01 ! 165: #define CRT_AT_HORZ_BST 0x02 ! 166: #define CRT_AT_HORZ_BND 0x03 ! 167: #define CRT_AT_HORZ_RST 0x04 ! 168: #define CRT_AT_HORZ_RND 0x05 ! 169: #define CRT_AT_VERT_TOT 0x06 ! 170: #define CRT_AT_OVERFLOW 0x07 ! 171: #define CRT_AT_PRE_ROWS 0x08 ! 172: #define CRT_AT_MAX_SCAN 0x09 ! 173: #define CRT_AT_CURSR_ST 0x0A ! 174: #define CRT_AT_CURSR_ND 0x0B ! 175: #define CRT_AT_ST_ADRHI 0x0C ! 176: #define CRT_AT_ST_ADRLO 0x0D ! 177: #define CRT_AT_CR_LOCHI 0x0E ! 178: #define CRT_AT_CR_LOCLO 0x0F ! 179: #define CRT_AT_VRT_RTST 0x10 ! 180: #define CRT_AT_VRT_RTLO 0x11 ! 181: #define CRT_AT_VRT_DSND 0x12 ! 182: #define CRT_AT___OFFSET 0x13 ! 183: #define CRT_AT_UNDR_LOC 0x14 ! 184: #define CRT_AT_VBLNK_ST 0x15 ! 185: #define CRT_AT_VBLNK_ND 0x16 ! 186: #define CRT_AT_MOD_CTRL 0x17 ! 187: #define CRT_AT_LINE_CMP 0x18 ! 188: ! 189: /* ! 190: ** Bitfields - CRT Controller registers - Horizontal total Register ! 191: */ ! 192: #define CRT_AT__HT 0xFF ! 193: ! 194: /* ! 195: ** Bitfields - CRT Controller registers - Horizontal Display End Register ! 196: */ ! 197: #define CRT_AT_HDE 0xFF ! 198: ! 199: /* ! 200: ** Bitfields - CRT Controller registers - Start Horizontal Blanking register ! 201: */ ! 202: #define CRT_AT_SHB 0xFF ! 203: ! 204: /* ! 205: ** Bitfields - CRT Controller registers - End Horizontal Blanking Register ! 206: */ ! 207: #define CRT_AT__CR 0x80 ! 208: #define CRT_AT_DES 0x60 ! 209: #define CRT_AT_EHB 0x1F ! 210: ! 211: /* ! 212: ** Bitfields - CRT Controller registers - Start Horizontal Retrace Register ! 213: */ ! 214: #define CRT_AT_SHR 0xFF ! 215: ! 216: /* ! 217: ** Bitfields - CRT Controller registers - End Horizontal Retrace Register ! 218: */ ! 219: #define CRT_AT_EHB_6 0x80 ! 220: #define EGA_AT_CRT 0x80 ! 221: #define CRT_AT_HRD 0x60 ! 222: #define CRT_AT_EHR 0x1F ! 223: ! 224: /* ! 225: ** Bitfields - CRT Controller registers - Vertical Total Register ! 226: */ ! 227: #define CRT_AT_VT 0xFF ! 228: ! 229: /* ! 230: ** Bitfields - CRT Controller registers - Overflow Register ! 231: */ ! 232: #define CRT_AT_VRS_9 0x80 ! 233: #define CRT_AT_VDE_9 0x40 ! 234: #define EGA_AT_CRT_8 0x20 ! 235: #define CRT_AT_VT1_8 0x20 ! 236: #define CRT_AT__LC_8 0x10 ! 237: #define CRT_AT_VBS_8 0x08 ! 238: #define CRT_AT_VRS_8 0x04 ! 239: #define CRT_AT_VDE_8 0x02 ! 240: #define CRT_AT__VT_8 0x01 ! 241: ! 242: /* ! 243: ** Bitfields - CRT Controller registers - Preset Row Scan Register ! 244: */ ! 245: #define CRT_AT__BP 0x60 ! 246: #define CRT_AT_PRS 0x1F ! 247: ! 248: /* ! 249: ** Bitfields - CRT Controller registers - Maximum Scan Line Register ! 250: */ ! 251: #define CRT_AT_2T4 0x80 ! 252: #define CRT_AT__LC 0x40 ! 253: #define CRT_AT_VBS_9 0x20 ! 254: #define CRT_AT_MSL 0x1F ! 255: ! 256: /* ! 257: ** Bitfields - CRT Controller registers - Cursor Start Register ! 258: */ ! 259: #define CRT_AT_COO 0x20 ! 260: #define CRT_AT__CS 0x1F ! 261: ! 262: /* ! 263: ** Bitfields - CRT Controller registers - Cursor End Register ! 264: */ ! 265: #define CRT_AT_CSK 0x60 ! 266: #define CRT_AT__CE 0x1F ! 267: ! 268: /* ! 269: ** Bitfields - CRT Controller registers - Start Address High Register ! 270: */ ! 271: #define CRT_AT_SAH 0xFF ! 272: ! 273: /* ! 274: ** Bitfields - CRT Controller registers - Start Address Low Register ! 275: */ ! 276: #define CRT_AT_SAL 0xFF ! 277: ! 278: /* ! 279: ** Bitfields - CRT Controller registers - Cursor Location High Register ! 280: */ ! 281: #define CRT_AT_CLH 0xFF ! 282: ! 283: /* ! 284: ** Bitfields - CRT Controller registers - Cursor Location Low Register ! 285: */ ! 286: #define CRT_AT_CLL 0xFF ! 287: ! 288: /* ! 289: ** Bitfields - CRT Controller registers - Vertical Retrace Start Register ! 290: */ ! 291: #define CRT_AT_VRS 0xFF ! 292: ! 293: /* ! 294: ** Bitfields - CRT Controller registers - Vertical Retrace End Register ! 295: */ ! 296: #define CRT_AT__PR 0x80 ! 297: #define CRT_AT__BW 0x40 ! 298: #define CRT_AT_DVI 0x20 ! 299: #define CRT_AT_CVI 0x10 ! 300: #define CRT_AT_EVR 0x0F ! 301: ! 302: /* ! 303: ** Bitfields - CRT Controller registers - Light Pen High Register ! 304: */ ! 305: #define CRT_AT_LPH 0xFF ! 306: ! 307: /* ! 308: ** Bitfields - CRT Controller registers - Light Pen Low Register ! 309: */ ! 310: #define CRT_AT_LPL 0xFF ! 311: ! 312: /* ! 313: ** Bitfields - CRT Controller registers - Vertical Display End Register ! 314: */ ! 315: #define CRT_AT_VDE 0xFF ! 316: ! 317: /* ! 318: ** Bitfields - CRT Controller registers - Offset Register ! 319: */ ! 320: #define CRT_AT_OFF 0xFF ! 321: ! 322: /* ! 323: ** Bitfields - CRT Controller registers - Underline Location Register ! 324: */ ! 325: #define CRT_AT__DW 0x40 ! 326: #define CRT_AT_CB4 0x20 ! 327: #define CRT_AT__UL 0x1F ! 328: ! 329: /* ! 330: ** Bitfields - CRT Controller registers - Start vertical Blank register ! 331: */ ! 332: #define CRT_AT_VBS 0xFF ! 333: ! 334: /* ! 335: ** Bitfields - CRT Controller registers - End Vertical Blank register ! 336: */ ! 337: #define CRT_AT_VBE_H 0x60 ! 338: #define CRT_AT_VBE_L 0x1F ! 339: ! 340: /* ! 341: ** Bitfields - CRT Controller registers - Mode Control Register ! 342: */ ! 343: #define CRT_AT__HR 0x80 ! 344: #define CRT_AT__WB 0x40 ! 345: #define CRT_AT__AW 0x20 ! 346: #define CRT_AT__OC 0x10 ! 347: #define CRT_AT_CBT 0x08 ! 348: #define CRT_AT_HRS 0x04 ! 349: #define CRT_AT_SRS 0x02 ! 350: #define CRT_AT_CMS 0x01 ! 351: ! 352: /* ! 353: ** Bitfields - CRT Controller registers - Line Compare Register ! 354: */ ! 355: #define CRT_AT_LNC 0xFF ! 356: ! 357: /* ! 358: ************************************************************************** ! 359: ** VGA :- GCR Controller Registers ** ! 360: ************************************************************************** ! 361: */ ! 362: #define MONO_GCR_ADDR 0x03CE ! 363: #define COLR_GCR_ADDR 0x03CE ! 364: #define EIDR_GCR_ADDR 0x03CE ! 365: ! 366: #define MONO_GCR_DATA 0x03CF ! 367: #define COLR_GCR_DATA 0x03CF ! 368: #define EIDR_GCR_DATA 0x03CF ! 369: ! 370: /* ! 371: ** List of index registers ! 372: */ ! 373: #define GCR_AT_SET_RESET 0x00 ! 374: #define GCR_AT_ENA_S_RST 0x01 ! 375: #define GCR_AT_COLR_COMP 0x02 ! 376: #define GCR_AT_DATA_ROTR 0x03 ! 377: #define GCR_AT_READ_MAPS 0x04 ! 378: #define GCR_AT_GCR__MODE 0x05 ! 379: #define GCR_AT_GCR__MISC 0x06 ! 380: #define GCR_AT_CLR_NOCAR 0x07 ! 381: #define GCR_AT_BIT__MASK 0x08 ! 382: ! 383: /* ! 384: ** Bitfields - Graphics Controller Registers - Graphics#1 Position Register ! 385: */ ! 386: #define GCR_AT_GP1 0x03 ! 387: ! 388: /* ! 389: ** Bitfields - Graphics Controller Registers - Graphics#2 Position Register ! 390: */ ! 391: #define GCR_AT_GP2 0x03 ! 392: ! 393: /* ! 394: ** Bitfields - Graphics Controller Registers - Set/Reset Register ! 395: */ ! 396: #define GCR_AT_S_R 0x0F ! 397: ! 398: /* ! 399: ** Bitfields - Graphics Controller Registers - Enable Set/Reset Register ! 400: */ ! 401: #define GCR_AT_ESR 0x0F ! 402: ! 403: /* ! 404: ** Bitfields - Graphics Controller Registers - Color Compare Register ! 405: */ ! 406: #define GCR_AT__CC 0x0F ! 407: ! 408: /* ! 409: ** Bitfields - Graphics Controller Registers - Data Rotate register ! 410: */ ! 411: #define GCR_AT__FS 0x30 ! 412: #define GCR_AT__RC 0x0F ! 413: ! 414: /* ! 415: ** Bitfields - Graphics Controller Registers - Read Map Select Register ! 416: */ ! 417: #define GCR_AT_RMS 0x03 ! 418: ! 419: /* ! 420: ** Bitfields - Graphics Controller Registers - Mode Register ! 421: */ ! 422: #define GCR_AT__SR 0x60 ! 423: #define GCR_AT__OE 0x10 ! 424: #define GCR_AT__RM 0x08 ! 425: #define GCR_AT__TC 0x04 ! 426: #define GCR_AT__WM 0x03 ! 427: ! 428: /* ! 429: ** Bitfields - Graphics Controller Registers - Miscellaneous register ! 430: */ ! 431: #define GCR_AT__MM 0x0C ! 432: #define GCR_AT_COE 0x02 ! 433: #define GCR_AT__GA 0x01 ! 434: ! 435: /* ! 436: ** Bitfields - Graphics Controller Registers - Color Dont Care register ! 437: */ ! 438: #define GCR_AT_CDC 0x0F ! 439: ! 440: /* ! 441: ** Bitfields - Graphics Controller Registers - Bit Mask ! 442: */ ! 443: #define GCR_AT__BM 0xFF ! 444: ! 445: /* ! 446: ************************************************************************** ! 447: ** VGA :- ACR Controller Registers ** ! 448: ************************************************************************** ! 449: */ ! 450: #define WRIT_TOGL_ACR_ADDR 0x03C0 ! 451: #define READ_TOGL_ACR_ADDR 0x03C0 ! 452: ! 453: #define WRIT_TOGL_ACR_DATA 0x03C0 ! 454: #define READ_TOGL_ACR_DATA 0x03C1 ! 455: ! 456: /* ! 457: ** Index mask ! 458: */ ! 459: #define ACR_MSK 0x1F ! 460: ! 461: /* ! 462: ** List of index registers ! 463: */ ! 464: #define ACR_AT_PALETTE_0 0x00 ! 465: #define ACR_AT_PALETTE_1 0x01 ! 466: #define ACR_AT_PALETTE_2 0x02 ! 467: #define ACR_AT_PALETTE_3 0x03 ! 468: #define ACR_AT_PALETTE_4 0x04 ! 469: #define ACR_AT_PALETTE_5 0x05 ! 470: #define ACR_AT_PALETTE_6 0x06 ! 471: #define ACR_AT_PALETTE_7 0x07 ! 472: #define ACR_AT_PALETTE_8 0x08 ! 473: #define ACR_AT_PALETTE_9 0x09 ! 474: #define ACR_AT_PALETTE_A 0x0A ! 475: #define ACR_AT_PALETTE_B 0x0B ! 476: #define ACR_AT_PALETTE_C 0x0C ! 477: #define ACR_AT_PALETTE_D 0x0D ! 478: #define ACR_AT_PALETTE_E 0x0E ! 479: #define ACR_AT_PALETTE_F 0x0F ! 480: #define ACR_AT_MODE_CNTL 0x10 ! 481: #define ACR_AT_OVERSCN_C 0x11 ! 482: #define ACR_AT_CLR_PL_EN 0x12 ! 483: #define ACR_AT_HORZ_PXPN 0x13 ! 484: #define ACR_AT_COLOR_SEL 0x14 ! 485: ! 486: /* ! 487: ** Bitfields - Attribute Controller registers - pallette registers ! 488: */ ! 489: #define ACR_AT__SR 0x20 ! 490: #define ACR_AT__SG 0x10 ! 491: #define ACR_AT__SB 0x08 ! 492: #define ACR_AT_REG 0x04 ! 493: #define ACR_AT_GRN 0x02 ! 494: #define ACR_AT_BLU 0x01 ! 495: ! 496: /* ! 497: ** Bitfields - Attribute Controller registers - Mode Control register ! 498: */ ! 499: #define ACR_AT_IPS 0x80 ! 500: #define ACR_AT_PCS 0x40 ! 501: #define ACR_AT_PPC 0x20 ! 502: #define ACR_AT__BI 0x08 ! 503: #define ACR_AT_ELG 0x04 ! 504: #define ACR_AT__DT 0x02 ! 505: #define ACR_AT__GA 0x01 ! 506: ! 507: /* ! 508: ** Bitfields - Attribute Controller registers - Overscan Color Register ! 509: */ ! 510: ! 511: #define ACR_AT_OSR 0x20 ! 512: #define ACR_AT_OSG 0x10 ! 513: #define ACR_AT_OSB 0x08 ! 514: #define ACR_AT_ORD 0x04 ! 515: #define ACR_AT_OGR 0x02 ! 516: #define ACR_AT_OBL 0x01 ! 517: /* ! 518: ** Bitfields - Attribute Controller registers - Color Plane Enable Register ! 519: */ ! 520: ! 521: #define ACR_AT_VSM 0x30 ! 522: #define ACR_AT_CPE 0x0F ! 523: /* ! 524: ** Bitfields - Attribute Controller registers - Horizontal Pixel Panning Reg ! 525: */ ! 526: #define ACR_AT_HPP 0x0F ! 527: ! 528: /* ! 529: ** Bitfields - Attribute Controller registers - Color Select Register ! 530: */ ! 531: #define ACR_AT_C67 0x0C ! 532: #define ACR_AT_C45 0x03 ! 533: ! 534: /* ! 535: ************************************************************************** ! 536: ** VGA :- PEL Controller Registers ** ! 537: ************************************************************************** ! 538: */ ! 539: #define WRIT_MONO_PEL_AWMR 0x03C8 ! 540: #define WRIT_COLR_PEL_AWMR 0x03C8 ! 541: #define READ_MONO_PEL_AWMR 0x03C8 ! 542: #define READ_COLR_PEL_AWMR 0x03C8 ! 543: ! 544: #define WRIT_MONO_PEL_ARMR 0x03C7 ! 545: #define WRIT_COLR_PEL_ARMR 0x03C7 ! 546: ! 547: #define WRIT_MONO_PEL_DATA 0x03C9 ! 548: #define WRIT_COLR_PEL_DATA 0x03C9 ! 549: #define READ_MONO_PEL_DATA 0x03C9 ! 550: #define READ_COLR_PEL_DATA 0x03C9 ! 551: ! 552: #define READ_MONO_PEL_DACS 0x03C7 ! 553: #define READ_COLR_PEL_DACS 0x03C7 ! 554: ! 555: #define WRIT_MONO_PEL_MASK 0x03C6 ! 556: #define WRIT_COLR_PEL_MASK 0x03C6 ! 557: #define READ_MONO_PEL_MASK 0x03C6 ! 558: #define READ_COLR_PEL_MASK 0x03C6 ! 559: ! 560: /* ! 561: ************************************************************************** ! 562: ** VGA :- External Palette RAM ! 563: ************************************************************************** ! 564: */ ! 565: #define MONO_PEL_MASK 0x03C6 ! 566: #define COLR_PEL_MASK 0x03C6 ! 567: #define EIDR_PEL_MASK 0x03C6 ! 568: ! 569: #define MONO_PEL_WADR 0x03C8 ! 570: #define COLR_PEL_WADR 0x03C8 ! 571: #define EIDR_PEL_WADR 0x03C8 ! 572: ! 573: #define MONO_PEL_DATA 0x03C9 ! 574: #define COLR_PEL_DATA 0x03C9 ! 575: #define EIDR_PEL_DATA 0x03C9 ! 576: ! 577: #define MONO_PEL_RADR 0x03C7 ! 578: #define COLR_PEL_RADR 0x03C7 ! 579: #define EIDR_PEL_RADR 0x03C7 ! 580: ! 581: #define MONO_PEL_DACS 0x03C7 ! 582: #define COLR_PEL_DACS 0x03C7 ! 583: #define EIDR_PEL_DACS 0x03C7 ! 584: ! 585: /* ! 586: ************************************************************************** ! 587: ** VGA :- MODES ** ! 588: ************************************************************************** ! 589: */ ! 590: #define MAX_GEN_INDEX 0x01 ! 591: #define MAX_SEQ_INDEX SEQ_AT_MMD ! 592: #define MAX_CRT_INDEX CRT_LINE_CMP ! 593: #define MAX_GCR_INDEX GCR_BIT__MASK ! 594: #define MAX_ACR_INDEX ACR_COLOUR_SEL ! 595: ! 596: /* ! 597: ** There now follows a symbolic list of modes, these will be used as indeces into tables of ! 598: ** initial values to be put into the various registers for a given mode. ! 599: */ ! 600: ! 601: #define MODE_VGA_AT_00 0x00 ! 602: #define MODE_VGA_AT_01 0x01 ! 603: #define MODE_VGA_AT_02 0x02 ! 604: #define MODE_VGA_AT_03 0x03 ! 605: #define MODE_VGA_AT_04 0x04 ! 606: #define MODE_VGA_AT_05 0x05 ! 607: #define MODE_VGA_AT_06 0x06 ! 608: #define MODE_VGA_AT_07 0x07 ! 609: #define MODE_VGA_AT_00_X 0x08 ! 610: #define MODE_VGA_AT_01_X 0x09 ! 611: #define MODE_VGA_AT_02_X 0x0A ! 612: #define MODE_VGA_AT_03_X 0x0B ! 613: #define MODE_VGA_AT_07_X 0x0C ! 614: #define MODE_VGA_AT_0D 0x0D ! 615: #define MODE_VGA_AT_0E 0x0E ! 616: #define MODE_VGA_AT_0F 0x0F ! 617: #define MODE_VGA_AT_10 0x10 ! 618: #define MODE_VGA_AT_11 0x11 ! 619: #define MODE_VGA_AT_12 0x12 ! 620: #define MODE_VGA_AT_13 0x13 ! 621: ! 622: #define MIN_VGA_AT_MODE MODE_VGA_AT_00 ! 623: #define MAX_VGA_AT_MODE MODE_VGA_AT_13 ! 624: #define NUM_VGA_AT_MODE MAX_VGA_AT_MODE-MIN_VGA_AT_MODE ! 625: ! 626: #define IS_REG_MODE(a) ((a) <= MAX_VGA_AT_MODE) ! 627: ! 628: struct mode_params { ! 629: char *m_str; ! 630: int p_type; ! 631: int p_bpp; ! 632: int p_start; ! 633: int p_pages; ! 634: int p_alfa_w; ! 635: int p_alfa_h; ! 636: int p_char_w; ! 637: int p_char_h; ! 638: int p_disp_w; ! 639: int p_disp_h; ! 640: int p_font; ! 641: }; ! 642: ! 643: /* ! 644: ** Defines for the type of a particular mode ie - is it alphanummeric(A) or graphical(G), ! 645: ** color(C) or mono(M), ! 646: */ ! 647: ! 648: #define MODE_A_M 0x00 ! 649: #define MODE_A_C 0x01 ! 650: #define MODE_G_M 0x10 ! 651: #define MODE_G_C 0x11 ! 652: ! 653: /* ! 654: ************************************************************************** ! 655: ** VGA :- FONTS ** ! 656: ************************************************************************** ! 657: */ ! 658: ! 659: #define FONT_09_BY_16 0x00 ! 660: #define FONT_09_BY_15 0x01 ! 661: #define FONT_09_BY_14 0x02 ! 662: #define FONT_09_BY_13 0x03 ! 663: #define FONT_08_BY_16 0x04 ! 664: #define FONT_08_BY_15 0x05 ! 665: #define FONT_08_BY_14 0x06 ! 666: #define FONT_08_BY_08 0x07 ! 667: ! 668: ! 669: #define VGA_AT_MAX_PLANES 0x04 ! 670: ! 671: ! 672: // Start of defines from prototype vga_ts_defs.h file. ! 673: ! 674: /* ! 675: ************************************************************************** ! 676: ** VGA :- General registers ** ! 677: ************************************************************************** ! 678: */ ! 679: #define WRIT_MONO_MODE_CT 0x03B8 ! 680: #define WRIT_COLR_MODE_CT 0x03D8 ! 681: #define WRIT_EIDR_MODE_CT 0x03D8 ! 682: ! 683: #define WRIT_MONO_GEN_VID_EN 0x46E8 ! 684: #define WRIT_COLR_GEN_VID_EN 0x46E8 ! 685: #define WRIT_EIDR_GEN_VID_EN 0x46E8 ! 686: ! 687: #define READ_MONO_GEN_VID_EN 0x03C3 ! 688: #define READ_COLR_GEN_VID_EN 0x03C3 ! 689: #define READ_EIDR_GEN_VID_EN 0x03C3 ! 690: ! 691: #define WRIT_MONO_ALT_VID_EN 0x46E8 ! 692: #define WRIT_COLR_ALT_VID_EN 0x46E8 ! 693: #define WRIT_EIDR_ALT_VID_EN 0x46E8 ! 694: ! 695: #define READ_MONO_ALT_VID_EN 0x46E8 ! 696: #define READ_COLR_ALT_VID_EN 0x46E8 ! 697: #define READ_EIDR_ALT_VID_EN 0x46E8 ! 698: ! 699: /* ! 700: ** Bitfields for Hercules compatibility register ! 701: */ ! 702: #define GEN_TS_HER 0xFD ! 703: #define GEN_TS_ESP 0x02 ! 704: ! 705: /* ! 706: ** Bitfields for Video Subsystem Register ! 707: */ ! 708: #define GEN_TS_WRI 0x01 ! 709: #define GEN_TS_REA 0x08 ! 710: #define GEN_TS_VSR 0xF6 ! 711: ! 712: /* ! 713: ************************************************************************** ! 714: ** VGA :- 6845 Compatibility registers ** ! 715: ************************************************************************** ! 716: */ ! 717: #define MONO_6845_CTL_REG 0x03B4 ! 718: #define COLR_6845_CTL_REG 0x03D4 ! 719: ! 720: #define MONO_6845_DTA_REG 0x03B5 ! 721: #define COLR_6845_DTA_REG 0x03D5 ! 722: ! 723: #define MONO_6845_DMC_REG 0x03B8 ! 724: #define COLR_6845_DMC_REG 0x03D8 ! 725: ! 726: #define WRIT_6845_DCC_REG 0x03D9 ! 727: ! 728: #define MONO_6845_DSC_REG 0x03BA ! 729: #define COLR_6845_DSC_REG 0x03DA ! 730: ! 731: #define WRIT_6845_ATT_REG 0x03DE ! 732: #define WRIT_HERCULES_REG 0x03BF ! 733: ! 734: /* ! 735: ************************************************************************** ! 736: ** VGA :- Sequencer registers ** ! 737: ************************************************************************** ! 738: */ ! 739: ! 740: /* ! 741: ** New Registers ! 742: */ ! 743: ! 744: /* ! 745: ** List of index registers ! 746: */ ! 747: #define SEQ_TS_TSS 0x06 ! 748: #define SEQ_TS_TAM 0x07 ! 749: ! 750: /* ! 751: ** Bitfields - Sequencer Registers - TS state control Tseng Labs ! 752: */ ! 753: #define SEQ_TS_TSS 0x06 ! 754: ! 755: /* ! 756: ** Bitfields - Sequencer Registers - TS Auxiliary mode Tseng Labs ! 757: */ ! 758: #define SEQ_TS_VGM 0x80 ! 759: #define SEQ_TS_MC2 0x40 ! 760: #define SEQ_TS_RO2 0x20 ! 761: #define SEQ_TS_RO1 0x08 ! 762: #define SEQ_TS_SC2 0x02 ! 763: #define SEQ_TS_MC4 0x01 ! 764: #define SEQ_TS_MSK 0x14 ! 765: ! 766: /* ! 767: ************************************************************************** ! 768: ** VGA :- CRT Controller Registers ** ! 769: ************************************************************************** ! 770: */ ! 771: ! 772: /* ! 773: ** New Registers ! 774: */ ! 775: ! 776: /* ! 777: ** List of index registers ! 778: */ ! 779: #define CRT_TS_RAS 0x32 ! 780: #define CRT_TS_ESA 0x33 ! 781: #define CRT_TS_CTL 0x34 ! 782: #define CRT_TS_OVH 0x35 ! 783: #define CRT_TS_VS1 0x36 ! 784: #define CRT_TS_VS2 0x37 ! 785: ! 786: /* ! 787: ** Bitfields - CRT Controller registers - RAS/CAS Configuration Reggister Tseng Labs ! 788: */ ! 789: #define CRT_TS_SCM 0x80 ! 790: #define CRT_TS_RAL 0x40 ! 791: #define CRT_TS_RCD 0x20 ! 792: #define CRT_TS_RSP 0x18 ! 793: #define CRT_TS_CSP 0x04 ! 794: #define CRT_TS_CSW 0x03 ! 795: ! 796: /* ! 797: ** Bitfields - CRT Controller registers - Extended Start Register Tseng Labs ! 798: */ ! 799: #define CRT_TS_CSA 0x0C ! 800: #define CRT_TS_LSA 0x03 ! 801: ! 802: /* ! 803: ** Bitfields - CRT Controller registers - 6845 Compatibility Control Register Tseng Labs ! 804: */ ! 805: #define CRT_TS_CMP 0x80 ! 806: #define CRT_TS_EBA 0x40 ! 807: #define CRT_TS_EXL 0x20 ! 808: #define CRT_TS_EXR 0x10 ! 809: #define CRT_TS_EVS 0x08 ! 810: #define CRT_TS_TRI 0x04 ! 811: #define CRT_TS_MCK 0x02 ! 812: #define CRT_TS_EMK 0x01 ! 813: ! 814: /* ! 815: ** Bitfields - CRT Controller registers - Overflow High Tseng Labs ! 816: */ ! 817: #define CRT_TS_VIM 0x80 ! 818: #define CRT_TS_ARW 0x40 ! 819: #define CRT_TS_ESR 0x20 ! 820: #define CRT_TS_LCA 0x10 ! 821: #define CRT_TS_VSA 0x08 ! 822: #define CRT_TS_VDA 0x04 ! 823: #define CRT_TS_VTA 0x02 ! 824: #define CRT_TS_VBA 0x01 ! 825: ! 826: /* ! 827: ** Bitfields - CRT Controller registers - Video System Configuration 1 Tseng Labs ! 828: */ ! 829: #define CRT_TS_RWF 0x80 ! 830: #define CRT_TS_DMF 0x40 ! 831: #define CRT_TS_AMD 0x20 ! 832: #define CRT_TS_SGL 0x10 ! 833: #define CRT_TS_FWF 0x08 ! 834: #define CRT_TS_REF 0x07 ! 835: ! 836: /* ! 837: ** Bitfields - CRT Controller registers - Video System Configuration 2 Tseng Labs ! 838: */ ! 839: #define CRT_TS_DRM 0x80 ! 840: #define CRT_TS_TST 0x40 ! 841: #define CRT_TS_PTC 0x20 ! 842: #define CRT_TS_RM8 0x10 ! 843: #define CRT_TS_DMD 0x0C ! 844: #define CRT_TS_DBW 0x03 ! 845: ! 846: /* ! 847: ************************************************************************** ! 848: ** VGA :- GCR Controller Registers ** ! 849: ************************************************************************** ! 850: */ ! 851: ! 852: /* ! 853: ** New Registers ! 854: */ ! 855: #define MONO_GCR_SEGS 0x03CD ! 856: #define COLR_GCR_SEGS 0x03CD ! 857: #define EIDR_GCR_SEGS 0x03CD ! 858: ! 859: /* ! 860: ** List of index registers ! 861: */ ! 862: ! 863: /* ! 864: ** Bitfields - GCR Controller registers - Segment Select Register Tseng Labs ! 865: */ ! 866: #define GCR_TS_GRD 0xF0 ! 867: #define GCR_TS_GWR 0x0F ! 868: ! 869: /* ! 870: ************************************************************************** ! 871: ** VGA :- ACR Controller Registers ** ! 872: ************************************************************************** ! 873: */ ! 874: ! 875: /* ! 876: ** New Registers ! 877: */ ! 878: ! 879: /* ! 880: ** List of index registers ! 881: */ ! 882: #define ACR_TS_MSC 0x16 ! 883: ! 884: /* ! 885: ** Bitfields - Attribute Controller Registers - Miscellaneous Tseng Labs ! 886: */ ! 887: #define ACR_TS_BYP 0x80 ! 888: #define ACR_TS_2BC 0x40 ! 889: #define ACR_TS_SHR 0x30 ! 890: #define ACR_TS_RES 0x0F ! 891: ! 892: /* ! 893: ************************************************************************** ! 894: ** VGA :- MODES ** ! 895: ************************************************************************** ! 896: */ ! 897: #define MAX_TS_GEN_INDEX 0x01 ! 898: #define MAX_TS_SEQ_INDEX SEQ_TS_TAM ! 899: #define MAX_TS_CRT_INDEX CRT_TS_VS2 ! 900: #define MAX_TS_GCR_INDEX GCR_AT_BIT__MASK ! 901: #define MAX_TS_ACR_INDEX ACR_TS_MISC ! 902: ! 903:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.