Annotation of kernel/machdep/i386/vgapriv.h, revision 1.1

1.1     ! root        1: /*
        !             2:  * Copyright (c) 1999 Apple Computer, Inc. All rights reserved.
        !             3:  *
        !             4:  * @APPLE_LICENSE_HEADER_START@
        !             5:  * 
        !             6:  * Portions Copyright (c) 1999 Apple Computer, Inc.  All Rights
        !             7:  * Reserved.  This file contains Original Code and/or Modifications of
        !             8:  * Original Code as defined in and that are subject to the Apple Public
        !             9:  * Source License Version 1.1 (the "License").  You may not use this file
        !            10:  * except in compliance with the License.  Please obtain a copy of the
        !            11:  * License at http://www.apple.com/publicsource and read it before using
        !            12:  * this file.
        !            13:  * 
        !            14:  * The Original Code and all software distributed under the License are
        !            15:  * distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER
        !            16:  * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
        !            17:  * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
        !            18:  * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT.  Please see the
        !            19:  * License for the specific language governing rights and limitations
        !            20:  * under the License.
        !            21:  * 
        !            22:  * @APPLE_LICENSE_HEADER_END@
        !            23:  */
        !            24: 
        !            25: /*     Copyright (c) 1992 NeXT Computer, Inc.  All rights reserved. 
        !            26:  *
        !            27:  * vgapriv.h - Private definitions used by vga ps driver implementation.
        !            28:  *
        !            29:  *
        !            30:  * HISTORY
        !            31:  * 28 Sep 92   Gary Crum
        !            32:  *      Created. 
        !            33:  */
        !            34: 
        !            35: // TO DO: Color palette setting will be moved into kernel driver
        !            36: // and change along with Mike Paquette's work.
        !            37: 
        !            38: // These values were computed given a gamma of 1.5.
        !            39: // For most CRT displays, gamma should be 2.2, but this driver is
        !            40: // used for flat panel LCD displays, so this 1.5 setting is a compromise.
        !            41: #define WHITE_PALETTE_VALUE 63
        !            42: #define LIGHT_GRAY_PALETTE_VALUE 48
        !            43: #define DARK_GRAY_PALETTE_VALUE 30
        !            44: #define BLACK_PALETTE_VALUE 0
        !            45: 
        !            46: #define INB(addr)              { inb(addr); }
        !            47: #define INDB(addr,data)                { data=inb(addr); }
        !            48: #define OUTB(addr,data)                { outb(addr,data); }
        !            49: 
        !            50: #define zvga_reg_out(reg,indx,data)                            \
        !            51:        {                                                       \
        !            52:        OUTB(WRIT_##reg##_ADDR, indx)                           \
        !            53:        OUTB(WRIT_##reg##_DATA, data)                           \
        !            54:        }
        !            55: 
        !            56: #define zvga_reg__in(reg,indx,data)                            \
        !            57:        {                                                       \
        !            58:        OUTB(WRIT_##reg##_ADDR, indx)                           \
        !            59:        INDB(READ_##reg##_DATA, data)                           \
        !            60:        }
        !            61: 
        !            62: 
        !            63: /*
        !            64: ***********************************************************************************************
        !            65: **                             VGA :- General registers                                     **
        !            66: ***********************************************************************************************
        !            67: */
        !            68: #define        WRIT_MONO_GEN_MISC_OP   0x03C2
        !            69: #define        WRIT_COLR_GEN_MISC_OP   0x03C2
        !            70: #define        WRIT_EIDR_GEN_MISC_OP   0x03C2
        !            71: 
        !            72: #define        READ_MONO_GEN_MISC_OP   0x03CC
        !            73: #define        READ_COLR_GEN_MISC_OP   0x03CC
        !            74: #define        READ_EIDR_GEN_MISC_OP   0x03CC
        !            75: 
        !            76: #define READ_MONO_GEN_IN_ST_0  0x03C2
        !            77: #define READ_COLR_GEN_IN_ST_0  0x03C2
        !            78: #define READ_EIDR_GEN_IN_ST_0  0x03C2
        !            79: 
        !            80: #define READ_MONO_GEN_IN_ST_1  0x03BA
        !            81: #define READ_COLR_GEN_IN_ST_1  0x03DA
        !            82: 
        !            83: #define WRIT_MONO_GEN_FEAT_CT  0x03BA
        !            84: #define WRIT_COLR_GEN_FEAT_CT  0x03DA
        !            85: 
        !            86: #define READ_MONO_GEN_FEAT_CT  0x03CA
        !            87: #define READ_COLR_GEN_FEAT_CT  0x03CA
        !            88: 
        !            89: /*
        !            90: **     Index mask  - not necessary here
        !            91: */
        !            92: #define MONO_GEN_MSK           0x00
        !            93: #define COLR_GEN_MSK           0x00
        !            94: #define EIDR_GEN_MSK           0x00
        !            95: 
        !            96: /*
        !            97: **     List of index registers
        !            98: */
        !            99: 
        !           100: /*
        !           101: **     Bitfields for misc op reg.
        !           102: */
        !           103: #define GEN_AT_VSP             0x80
        !           104: #define GEN_AT_HSP             0x40
        !           105: #define GEN_AT__PB             0x00
        !           106: #define GEN_AT_DVD             0x10
        !           107: #define GEN_AT__CS             0x0C
        !           108: #define GEN_AT__ER             0x02
        !           109: #define GEN_AT_IOA             0x01
        !           110: 
        !           111: /*
        !           112: **     Bitfields for feature control reg.
        !           113: */
        !           114: #define        GEN_AT_VSS              0x08
        !           115: 
        !           116: /*
        !           117: **     Bitfields for Input Status #0 register
        !           118: */
        !           119: #define        GEN_AT__SS              0x10
        !           120: 
        !           121: /*
        !           122: **     Bitfields for Input Status #1 register
        !           123: */
        !           124: #define        GEN_AT__VR              0x08
        !           125: #define        GEN_AT__DE              0x01
        !           126: 
        !           127: /*
        !           128: ***********************************************************************************************
        !           129: **                             VGA :- Sequencer registers                                   **
        !           130: ***********************************************************************************************
        !           131: */
        !           132: #define READ_MONO_SEQ_ADDR     0x03C4
        !           133: #define READ_COLR_SEQ_ADDR     0x03C4
        !           134: #define READ_EIDR_SEQ_ADDR     0x03C4
        !           135: 
        !           136: #define WRIT_MONO_SEQ_ADDR     0x03C4
        !           137: #define WRIT_COLR_SEQ_ADDR     0x03C4
        !           138: #define WRIT_EIDR_SEQ_ADDR     0x03C4
        !           139: 
        !           140: #define        READ_MONO_SEQ_DATA      0x03C5
        !           141: #define        READ_COLR_SEQ_DATA      0x03C5
        !           142: #define        READ_EIDR_SEQ_DATA      0x03C5
        !           143: 
        !           144: #define        WRIT_MONO_SEQ_DATA      0x03C5
        !           145: #define        WRIT_COLR_SEQ_DATA      0x03C5
        !           146: #define        WRIT_EIDR_SEQ_DATA      0x03C5
        !           147: 
        !           148: /*
        !           149: **     Index mask
        !           150: */
        !           151: #define MONO_SEQ_MSK           0x07
        !           152: #define COLR_SEQ_MSK           0x07
        !           153: #define EIDR_SEQ_MSK           0x07
        !           154: 
        !           155: /*
        !           156: **     List of index registers
        !           157: */
        !           158: #define SEQ_AT_RST             0x00
        !           159: #define SEQ_AT_CLO             0x01
        !           160: #define SEQ_AT_MPK             0x02
        !           161: #define SEQ_AT_CRS             0x03
        !           162: #define SEQ_AT_MMD             0x04
        !           163: 
        !           164: /*
        !           165: **      Bitfield - Sequencer registers - Reset
        !           166: */
        !           167: #define SEQ_AT__SR             0x02
        !           168: #define SEQ_AT__AR             0x00
        !           169: 
        !           170: /*
        !           171: **     Bitfields - Sequencer registers - Clocking Mode Register
        !           172: */
        !           173: #define        SEQ_AT__SO              0x20
        !           174: #define        SEQ_AT__S4              0x10
        !           175: #define        SEQ_AT__DC              0x08
        !           176: #define        SEQ_AT__SL              0x04
        !           177: #define        SEQ_AT__89              0x01
        !           178: 
        !           179: /*
        !           180: **      Bitfields - Sequencer registers - Map Mask Register
        !           181: */
        !           182: #define SEQ_AT_EM3             0x08
        !           183: #define SEQ_AT_EM2             0x04
        !           184: #define SEQ_AT_EM1             0x02
        !           185: #define SEQ_AT_EM0             0x01
        !           186: 
        !           187: /*
        !           188: **     Bitfields - Sequencer registers - Character Map Select Registers
        !           189: */
        !           190: #define        SEQ_AT_SAH              0x20
        !           191: #define        SEQ_AT_SBH              0x10
        !           192: #define        SEQ_AT__SA              0x0C
        !           193: #define        SEQ_AT__SB              0x03
        !           194: 
        !           195: /*
        !           196: **      Bitfields - Sequencer registers - Memory Mode Register
        !           197: */
        !           198: #define SEQ_AT__C4             0x08
        !           199: #define SEQ_AT__OE             0x04
        !           200: #define SEQ_AT__EM             0x02
        !           201: 
        !           202: /*
        !           203: ***********************************************************************************************
        !           204: **                             VGA :- CRT Controller Registers                              **
        !           205: ***********************************************************************************************
        !           206: */
        !           207: #define WRIT_MONO_CRT_ADDR     0x03B4
        !           208: #define READ_MONO_CRT_ADDR     0x03B4
        !           209: 
        !           210: #define WRIT_MONO_CRT_DATA     0x03B5
        !           211: #define READ_MONO_CRT_DATA     0x03D5
        !           212: 
        !           213: #define WRIT_COLR_CRT_ADDR     0x03D4
        !           214: #define READ_COLR_CRT_ADDR     0x03D4
        !           215: 
        !           216: #define WRIT_COLR_CRT_DATA     0x03D5
        !           217: #define READ_COLR_CRT_DATA     0x03D5
        !           218: 
        !           219: /*
        !           220: **     Index mask
        !           221: */
        !           222: #define MONO_CRT_MSK           0x3F
        !           223: #define COLR_CRT_MSK           0x3F
        !           224: 
        !           225: /*
        !           226: **     List of index registers
        !           227: */
        !           228: #define CRT_AT_HORZ_TOT                0x00
        !           229: #define CRT_AT_HORZ_DND                0x01
        !           230: #define CRT_AT_HORZ_BST                0x02
        !           231: #define CRT_AT_HORZ_BND                0x03
        !           232: #define CRT_AT_HORZ_RST                0x04
        !           233: #define CRT_AT_HORZ_RND                0x05
        !           234: #define CRT_AT_VERT_TOT                0x06
        !           235: #define CRT_AT_OVERFLOW                0x07
        !           236: #define CRT_AT_PRE_ROWS                0x08
        !           237: #define CRT_AT_MAX_SCAN                0x09
        !           238: #define CRT_AT_CURSR_ST                0x0A
        !           239: #define CRT_AT_CURSR_ND                0x0B
        !           240: #define CRT_AT_ST_ADRHI                0x0C
        !           241: #define CRT_AT_ST_ADRLO                0x0D
        !           242: #define CRT_AT_CR_LOCHI                0x0E
        !           243: #define CRT_AT_CR_LOCLO                0x0F
        !           244: #define CRT_AT_VRT_RTST                0x10
        !           245: #define CRT_AT_VRT_RTLO                0x11
        !           246: #define CRT_AT_VRT_DSND                0x12
        !           247: #define CRT_AT___OFFSET                0x13
        !           248: #define CRT_AT_UNDR_LOC                0x14
        !           249: #define CRT_AT_VBLNK_ST                0x15
        !           250: #define CRT_AT_VBLNK_ND                0x16
        !           251: #define CRT_AT_MOD_CTRL                0x17
        !           252: #define CRT_AT_LINE_CMP                0x18
        !           253: 
        !           254: /*
        !           255: **     Bitfields - CRT Controller registers - Horizontal total Register
        !           256: */
        !           257: #define CRT_AT__HT             0xFF
        !           258: 
        !           259: /*
        !           260: **     Bitfields - CRT Controller registers - Horizontal Display End Register
        !           261: */
        !           262: #define        CRT_AT_HDE              0xFF
        !           263: 
        !           264: /*
        !           265: **     Bitfields - CRT Controller registers - Start Horizontal Blanking register
        !           266: */
        !           267: #define CRT_AT_SHB             0xFF
        !           268: 
        !           269: /*
        !           270: **     Bitfields - CRT Controller registers - End Horizontal Blanking Register 
        !           271: */
        !           272: #define        CRT_AT__CR              0x80
        !           273: #define        CRT_AT_DES              0x60
        !           274: #define        CRT_AT_EHB              0x1F
        !           275: 
        !           276: /*
        !           277: **     Bitfields - CRT Controller registers - Start Horizontal Retrace Register
        !           278: */
        !           279: #define        CRT_AT_SHR              0xFF
        !           280: 
        !           281: /*
        !           282: **     Bitfields - CRT Controller registers - End Horizontal Retrace Register
        !           283: */
        !           284: #define        CRT_AT_EHB_6            0x80
        !           285: #define EGA_AT_CRT             0x80
        !           286: #define        CRT_AT_HRD              0x60
        !           287: #define        CRT_AT_EHR              0x1F
        !           288: 
        !           289: /*
        !           290: **     Bitfields - CRT Controller registers - Vertical Total Register
        !           291: */
        !           292: #define CRT_AT_VT              0xFF
        !           293: 
        !           294: /*
        !           295: **     Bitfields - CRT Controller registers - Overflow Register
        !           296: */
        !           297: #define CRT_AT_VRS_9           0x80
        !           298: #define        CRT_AT_VDE_9            0x40
        !           299: #define        EGA_AT_CRT_8            0x20
        !           300: #define        CRT_AT_VT1_8            0x20
        !           301: #define        CRT_AT__LC_8            0x10
        !           302: #define        CRT_AT_VBS_8            0x08
        !           303: #define        CRT_AT_VRS_8            0x04
        !           304: #define        CRT_AT_VDE_8            0x02
        !           305: #define        CRT_AT__VT_8            0x01
        !           306: 
        !           307: /*
        !           308: **     Bitfields - CRT Controller registers - Preset Row Scan Register
        !           309: */
        !           310: #define        CRT_AT__BP              0x60
        !           311: #define        CRT_AT_PRS              0x1F
        !           312: 
        !           313: /*
        !           314: **     Bitfields - CRT Controller registers - Maximum Scan Line Register
        !           315: */
        !           316: #define CRT_AT_2T4             0x80
        !           317: #define        CRT_AT__LC              0x40
        !           318: #define        CRT_AT_VBS_9            0x20
        !           319: #define        CRT_AT_MSL              0x1F
        !           320: 
        !           321: /*
        !           322: **     Bitfields - CRT Controller registers - Cursor Start Register
        !           323: */
        !           324: #define CRT_AT_COO             0x20
        !           325: #define CRT_AT__CS             0x1F
        !           326: 
        !           327: /*
        !           328: **     Bitfields - CRT Controller registers - Cursor End Register
        !           329: */
        !           330: #define CRT_AT_CSK             0x60
        !           331: #define        CRT_AT__CE              0x1F
        !           332: 
        !           333: /*
        !           334: **     Bitfields - CRT Controller registers - Start Address High Register
        !           335: */
        !           336: #define CRT_AT_SAH             0xFF
        !           337: 
        !           338: /*
        !           339: **     Bitfields - CRT Controller registers - Start Address Low Register
        !           340: */
        !           341: #define        CRT_AT_SAL              0xFF
        !           342: 
        !           343: /*
        !           344: **     Bitfields - CRT Controller registers - Cursor Location High Register
        !           345: */
        !           346: #define        CRT_AT_CLH              0xFF
        !           347: 
        !           348: /*
        !           349: **     Bitfields - CRT Controller registers - Cursor Location Low Register
        !           350: */
        !           351: #define        CRT_AT_CLL              0xFF
        !           352: 
        !           353: /*
        !           354: **     Bitfields - CRT Controller registers - Vertical Retrace Start Register
        !           355: */
        !           356: #define        CRT_AT_VRS              0xFF
        !           357: 
        !           358: /*
        !           359: **     Bitfields - CRT Controller registers - Vertical Retrace End Register
        !           360: */
        !           361: #define        CRT_AT__PR              0x80
        !           362: #define        CRT_AT__BW              0x40
        !           363: #define CRT_AT_DVI             0x20
        !           364: #define        CRT_AT_CVI              0x10
        !           365: #define        CRT_AT_EVR              0x0F
        !           366: 
        !           367: /*
        !           368: **     Bitfields - CRT Controller registers - Light Pen High Register 
        !           369: */
        !           370: #define        CRT_AT_LPH              0xFF
        !           371: 
        !           372: /*
        !           373: **     Bitfields - CRT Controller registers - Light Pen Low Register
        !           374: */
        !           375: #define CRT_AT_LPL             0xFF
        !           376: 
        !           377: /*
        !           378: **     Bitfields - CRT Controller registers - Vertical Display End Register
        !           379: */
        !           380: #define CRT_AT_VDE             0xFF
        !           381: 
        !           382: /*
        !           383: **     Bitfields - CRT Controller registers - Offset Register
        !           384: */
        !           385: #define        CRT_AT_OFF              0xFF
        !           386: 
        !           387: /*
        !           388: **     Bitfields - CRT Controller registers - Underline Location Register
        !           389: */
        !           390: #define        CRT_AT__DW              0x40
        !           391: #define        CRT_AT_CB4              0x20
        !           392: #define        CRT_AT__UL              0x1F
        !           393: 
        !           394: /*
        !           395: **     Bitfields - CRT Controller registers - Start vertical Blank register
        !           396: */
        !           397: #define CRT_AT_VBS             0xFF
        !           398: 
        !           399: /*
        !           400: **     Bitfields - CRT Controller registers - End Vertical Blank register
        !           401: */
        !           402: #define        CRT_AT_VBE_H            0x60
        !           403: #define        CRT_AT_VBE_L            0x1F
        !           404: 
        !           405: /*
        !           406: **     Bitfields - CRT Controller registers - Mode Control Register
        !           407: */
        !           408: #define        CRT_AT__HR              0x80
        !           409: #define        CRT_AT__WB              0x40
        !           410: #define        CRT_AT__AW              0x20
        !           411: #define        CRT_AT__OC              0x10
        !           412: #define        CRT_AT_CBT              0x08
        !           413: #define        CRT_AT_HRS              0x04
        !           414: #define        CRT_AT_SRS              0x02
        !           415: #define        CRT_AT_CMS              0x01
        !           416: 
        !           417: /*
        !           418: **     Bitfields - CRT Controller registers - Line Compare Register
        !           419: */
        !           420: #define        CRT_AT_LNC              0xFF
        !           421: 
        !           422: /*
        !           423: ***********************************************************************************************
        !           424: **                             VGA :- GCR Controller Registers                              **
        !           425: ***********************************************************************************************
        !           426: */
        !           427: #define        READ_MONO_GCR_ADDR      0x03CE
        !           428: #define        READ_COLR_GCR_ADDR      0x03CE
        !           429: #define        READ_EIDR_GCR_ADDR      0x03CE
        !           430: 
        !           431: #define        WRIT_MONO_GCR_ADDR      0x03CE
        !           432: #define        WRIT_COLR_GCR_ADDR      0x03CE
        !           433: #define        WRIT_EIDR_GCR_ADDR      0x03CE
        !           434: 
        !           435: #define        READ_MONO_GCR_DATA      0x03CF
        !           436: #define        READ_COLR_GCR_DATA      0x03CF
        !           437: #define        READ_EIDR_GCR_DATA      0x03CF
        !           438: 
        !           439: #define        WRIT_MONO_GCR_DATA      0x03CF
        !           440: #define        WRIT_COLR_GCR_DATA      0x03CF
        !           441: #define        WRIT_EIDR_GCR_DATA      0x03CF
        !           442: 
        !           443: /*
        !           444: **     Index mask
        !           445: */
        !           446: #define MONO_GCR_MSK           0x0F
        !           447: #define COLR_GCR_MSK           0x0F
        !           448: #define EIDR_GCR_MSK           0x0F
        !           449: 
        !           450: /*
        !           451: **     List of index registers
        !           452: */
        !           453: #define        GCR_AT_SET_RESET        0x00
        !           454: #define        GCR_AT_ENA_S_RST        0x01
        !           455: #define        GCR_AT_COLR_COMP        0x02
        !           456: #define        GCR_AT_DATA_ROTR        0x03
        !           457: #define        GCR_AT_READ_MAPS        0x04
        !           458: #define        GCR_AT_GCR__MODE        0x05
        !           459: #define        GCR_AT_GCR__MISC        0x06
        !           460: #define        GCR_AT_CLR_NOCAR        0x07
        !           461: #define        GCR_AT_BIT__MASK        0x08
        !           462: 
        !           463: /*
        !           464: **     Bitfields - Graphics Controller Registers - Graphics#1 Position Register
        !           465: */
        !           466: #define        GCR_AT_GP1              0x03
        !           467: 
        !           468: /*
        !           469: **     Bitfields - Graphics Controller Registers - Graphics#2 Position Register
        !           470: */
        !           471: #define        GCR_AT_GP2              0x03
        !           472: 
        !           473: /*
        !           474: **     Bitfields - Graphics Controller Registers - Set/Reset Register
        !           475: */
        !           476: #define        GCR_AT_S_R              0x0F
        !           477: 
        !           478: /*
        !           479: **     Bitfields - Graphics Controller Registers - Enable Set/Reset Register
        !           480: */
        !           481: #define        GCR_AT_ESR              0x0F
        !           482: 
        !           483: /*
        !           484: **     Bitfields - Graphics Controller Registers - Color Compare Register
        !           485: */
        !           486: #define        GCR_AT__CC              0x0F
        !           487: 
        !           488: /*
        !           489: **     Bitfields - Graphics Controller Registers - Data Rotate register
        !           490: */
        !           491: #define        GCR_AT__FS              0x30
        !           492: #define        GCR_AT__RC              0x0F
        !           493: 
        !           494: /*
        !           495: **     Bitfields - Graphics Controller Registers - Read Map Select Register
        !           496: */
        !           497: #define        GCR_AT_RMS              0x03
        !           498: 
        !           499: /*
        !           500: **     Bitfields - Graphics Controller Registers - Mode Register
        !           501: */
        !           502: #define        GCR_AT__SR              0x60
        !           503: #define        GCR_AT__OE              0x10
        !           504: #define        GCR_AT__RM              0x08
        !           505: #define        GCR_AT__TC              0x04
        !           506: #define        GCR_AT__WM              0x03
        !           507: 
        !           508: /*
        !           509: **     Bitfields - Graphics Controller Registers - Miscellaneous register
        !           510: */
        !           511: #define        GCR_AT__MM              0x0C
        !           512: #define        GCR_AT_COE              0x02
        !           513: #define        GCR_AT__GA              0x01
        !           514: 
        !           515: /*
        !           516: **     Bitfields - Graphics Controller Registers - Color Dont Care register
        !           517: */
        !           518: #define        GCR_AT_CDC              0x0F
        !           519: 
        !           520: /*
        !           521: **     Bitfields - Graphics Controller Registers - Bit Mask
        !           522: */
        !           523: #define        GCR_AT__BM              0xFF
        !           524: 
        !           525: /*
        !           526: ***********************************************************************************************
        !           527: **                             VGA :- ACR Controller Registers                              **
        !           528: ***********************************************************************************************
        !           529: */
        !           530: 
        !           531: #define        WRIT_TOGL_ACR_ADDR      0x03C0
        !           532: #define        READ_TOGL_ACR_ADDR      0x03C0
        !           533: 
        !           534: #define        WRIT_TOGL_ACR_DATA      0x03C0
        !           535: #define        READ_TOGL_ACR_DATA      0x03C1
        !           536: 
        !           537: /*
        !           538: **     Index mask
        !           539: */
        !           540: #define ACR_MSK                        0x1F
        !           541: 
        !           542: /*
        !           543: **     List of index registers
        !           544: */
        !           545: #define        ACR_AT_PALETTE_0        0x00
        !           546: #define        ACR_AT_PALETTE_1        0x01
        !           547: #define        ACR_AT_PALETTE_2        0x02
        !           548: #define        ACR_AT_PALETTE_3        0x03
        !           549: #define        ACR_AT_PALETTE_4        0x04
        !           550: #define        ACR_AT_PALETTE_5        0x05
        !           551: #define        ACR_AT_PALETTE_6        0x06
        !           552: #define        ACR_AT_PALETTE_7        0x07
        !           553: #define        ACR_AT_PALETTE_8        0x08
        !           554: #define        ACR_AT_PALETTE_9        0x09
        !           555: #define        ACR_AT_PALETTE_A        0x0A
        !           556: #define        ACR_AT_PALETTE_B        0x0B
        !           557: #define        ACR_AT_PALETTE_C        0x0C
        !           558: #define        ACR_AT_PALETTE_D        0x0D
        !           559: #define        ACR_AT_PALETTE_E        0x0E
        !           560: #define        ACR_AT_PALETTE_F        0x0F
        !           561: #define ACR_AT_MODE_CNTL       0x10
        !           562: #define        ACR_AT_OVERSCN_C        0x11
        !           563: #define        ACR_AT_CLR_PL_EN        0x12
        !           564: #define        ACR_AT_HORZ_PXPN        0x13
        !           565: #define        ACR_AT_COLOR_SEL        0x14
        !           566: 
        !           567: /*
        !           568: **     Bitfields - Attribute Controller registers - pallette registers
        !           569: */
        !           570: #define        ACR_AT__SR              0x20
        !           571: #define        ACR_AT__SG              0x10
        !           572: #define        ACR_AT__SB              0x08
        !           573: #define        ACR_AT_REG              0x04
        !           574: #define        ACR_AT_GRN              0x02
        !           575: #define        ACR_AT_BLU              0x01
        !           576: 
        !           577: /*
        !           578: **     Bitfields - Attribute Controller registers -  Mode Control register
        !           579: */
        !           580: #define        ACR_AT_IPS              0x80
        !           581: #define        ACR_AT_PCS              0x40
        !           582: #define        ACR_AT_PPC              0x20
        !           583: #define        ACR_AT__BI              0x08
        !           584: #define        ACR_AT_ELG              0x04
        !           585: #define        ACR_AT__DT              0x02
        !           586: #define        ACR_AT__GA              0x01
        !           587: 
        !           588: /*
        !           589: **     Bitfields - Attribute Controller registers -  Overscan Color Register
        !           590: */
        !           591: 
        !           592: #define        ACR_AT_OSR              0x20
        !           593: #define        ACR_AT_OSG              0x10
        !           594: #define        ACR_AT_OSB              0x08
        !           595: #define        ACR_AT_ORD              0x04
        !           596: #define        ACR_AT_OGR              0x02
        !           597: #define        ACR_AT_OBL              0x01
        !           598: /*
        !           599: **     Bitfields - Attribute Controller registers - Color Plane Enable Register
        !           600: */
        !           601: 
        !           602: #define        ACR_AT_VSM              0x30
        !           603: #define        ACR_AT_CPE              0x0F
        !           604: /*
        !           605: **     Bitfields - Attribute Controller registers - Horizontal Pixel Panning Reg
        !           606: */
        !           607: #define        ACR_AT_HPP              0x0F
        !           608: 
        !           609: /*
        !           610: **     Bitfields - Attribute Controller registers - Color Select Register
        !           611: */
        !           612: #define        ACR_AT_C67              0x0C
        !           613: #define        ACR_AT_C45              0x03
        !           614: 
        !           615: /*
        !           616: ***********************************************************************************************
        !           617: **                             VGA :- PEL Controller Registers                              **
        !           618: ***********************************************************************************************
        !           619: */
        !           620: #define        WRIT_MONO_PEL_AWMR      0x03C8
        !           621: #define        WRIT_COLR_PEL_AWMR      0x03C8
        !           622: #define        READ_MONO_PEL_AWMR      0x03C8
        !           623: #define        READ_COLR_PEL_AWMR      0x03C8
        !           624: 
        !           625: #define        WRIT_MONO_PEL_ARMR      0x03C7
        !           626: #define        WRIT_COLR_PEL_ARMR      0x03C7
        !           627: 
        !           628: #define        WRIT_MONO_PEL_DATA      0x03C9
        !           629: #define        WRIT_COLR_PEL_DATA      0x03C9
        !           630: #define        READ_MONO_PEL_DATA      0x03C9
        !           631: #define        READ_COLR_PEL_DATA      0x03C9
        !           632: 
        !           633: #define        READ_MONO_PEL_DACS      0x03C7
        !           634: #define        READ_COLR_PEL_DACS      0x03C7
        !           635: 
        !           636: #define        WRIT_MONO_PEL_MASK      0x03C6
        !           637: #define        WRIT_COLR_PEL_MASK      0x03C6
        !           638: #define        READ_MONO_PEL_MASK      0x03C6
        !           639: #define        READ_COLR_PEL_MASK      0x03C6
        !           640: 
        !           641: /*
        !           642: ***********************************************************************************************
        !           643: **                               VGA :- External Palette RAM
        !           644: ***********************************************************************************************
        !           645: */
        !           646: #define        READ_MONO_PEL_MASK      0x03C6
        !           647: #define        READ_COLR_PEL_MASK      0x03C6
        !           648: #define        READ_EIDR_PEL_MASK      0x03C6
        !           649: 
        !           650: #define        WRIT_MONO_PEL_MASK      0x03C6
        !           651: #define        WRIT_COLR_PEL_MASK      0x03C6
        !           652: #define        WRIT_EIDR_PEL_MASK      0x03C6
        !           653: 
        !           654: #define        READ_MONO_PEL_WADR      0x03C8
        !           655: #define        READ_COLR_PEL_WADR      0x03C8
        !           656: #define        READ_EIDR_PEL_WADR      0x03C8
        !           657: 
        !           658: #define        WRIT_MONO_PEL_WADR      0x03C8
        !           659: #define        WRIT_COLR_PEL_WADR      0x03C8
        !           660: #define        WRIT_EIDR_PEL_WADR      0x03C8
        !           661: 
        !           662: #define        READ_MONO_PEL_DATA      0x03C9
        !           663: #define        READ_COLR_PEL_DATA      0x03C9
        !           664: #define        READ_EIDR_PEL_DATA      0x03C9
        !           665: 
        !           666: #define        WRIT_MONO_PEL_DATA      0x03C9
        !           667: #define        WRIT_COLR_PEL_DATA      0x03C9
        !           668: #define        WRIT_EIDR_PEL_DATA      0x03C9
        !           669: 
        !           670: #define        WRIT_MONO_PEL_RADR      0x03C7
        !           671: #define        WRIT_COLR_PEL_RADR      0x03C7
        !           672: #define        WRIT_EIDR_PEL_RADR      0x03C7
        !           673: 
        !           674: #define        WRIT_MONO_PEL_DACS      0x03C7
        !           675: #define        WRIT_COLR_PEL_DACS      0x03C7
        !           676: #define        WRIT_EIDR_PEL_DACS      0x03C7
        !           677: 
        !           678: /*
        !           679: ***********************************************************************************************
        !           680: **                             VGA :- MODES                                                 **
        !           681: ***********************************************************************************************
        !           682: */
        !           683: #define        MAX_GEN_INDEX           0x01
        !           684: #define        MAX_SEQ_INDEX           SEQ_AT_MMD
        !           685: #define        MAX_CRT_INDEX           CRT_LINE_CMP
        !           686: #define        MAX_GCR_INDEX           GCR_BIT__MASK
        !           687: #define        MAX_ACR_INDEX           ACR_COLOUR_SEL
        !           688: 
        !           689: /* 
        !           690: ** There now follows a symbolic list of modes, these will be used as indeces into tables of
        !           691: ** initial values to be put into the various registers for a given mode.
        !           692: */
        !           693: 
        !           694: #define        MODE_VGA_AT_00          0x00
        !           695: #define        MODE_VGA_AT_01          0x01
        !           696: #define        MODE_VGA_AT_02          0x02
        !           697: #define        MODE_VGA_AT_03          0x03
        !           698: #define        MODE_VGA_AT_04          0x04
        !           699: #define        MODE_VGA_AT_05          0x05
        !           700: #define        MODE_VGA_AT_06          0x06
        !           701: #define        MODE_VGA_AT_07          0x07
        !           702: #define        MODE_VGA_AT_00_X        0x08
        !           703: #define        MODE_VGA_AT_01_X        0x09
        !           704: #define        MODE_VGA_AT_02_X        0x0A
        !           705: #define        MODE_VGA_AT_03_X        0x0B
        !           706: #define        MODE_VGA_AT_07_X        0x0C
        !           707: #define        MODE_VGA_AT_0D          0x0D
        !           708: #define        MODE_VGA_AT_0E          0x0E
        !           709: #define        MODE_VGA_AT_0F          0x0F
        !           710: #define        MODE_VGA_AT_10          0x10
        !           711: #define        MODE_VGA_AT_11          0x11
        !           712: #define        MODE_VGA_AT_12          0x12
        !           713: #define        MODE_VGA_AT_13          0x13
        !           714: 
        !           715: #define MIN_VGA_AT_MODE        MODE_VGA_AT_00
        !           716: #define MAX_VGA_AT_MODE        MODE_VGA_AT_13
        !           717: #define NUM_VGA_AT_MODE MAX_VGA_AT_MODE-MIN_VGA_AT_MODE
        !           718: 
        !           719: #define IS_REG_MODE(a) ((a) <= MAX_VGA_AT_MODE)
        !           720: 
        !           721: struct mode_params     {
        !           722:        char    *m_str;
        !           723:        int     p_type;
        !           724:        int     p_bpp;
        !           725:        int     p_start;
        !           726:        int     p_pages;
        !           727:        int     p_alfa_w;
        !           728:        int     p_alfa_h;
        !           729:        int     p_char_w;
        !           730:        int     p_char_h;
        !           731:        int     p_disp_w;
        !           732:        int     p_disp_h;
        !           733:        int     p_font;
        !           734:        };
        !           735: 
        !           736: /*
        !           737: ** Defines for the type of a particular mode ie - is it alphanummeric(A) or graphical(G),  
        !           738: **     color(C) or mono(M), 
        !           739: */
        !           740: 
        !           741: #define        MODE_A_M 0x00
        !           742: #define MODE_A_C 0x01
        !           743: #define MODE_G_M 0x10
        !           744: #define MODE_G_C 0x11
        !           745: 
        !           746: /*
        !           747: ***********************************************************************************************
        !           748: **                             VGA :- FONTS                                                 **
        !           749: ***********************************************************************************************
        !           750: */
        !           751: 
        !           752: #define FONT_09_BY_16  0x00
        !           753: #define FONT_09_BY_15  0x01
        !           754: #define FONT_09_BY_14  0x02
        !           755: #define FONT_09_BY_13  0x03
        !           756: #define FONT_08_BY_16  0x04
        !           757: #define FONT_08_BY_15  0x05
        !           758: #define FONT_08_BY_14  0x06
        !           759: #define FONT_08_BY_08  0x07
        !           760: 
        !           761: 
        !           762: #define VGA_AT_MAX_PLANES 0x04
        !           763: 
        !           764: 
        !           765: // Start of defines from prototype vga_ts_defs.h file.
        !           766: 
        !           767: /*
        !           768: ***********************************************************************************************
        !           769: **                               VGA :- General registers                                        **
        !           770: ***********************************************************************************************
        !           771: */
        !           772: #define WRIT_MONO_MODE_CT      0x03B8
        !           773: #define WRIT_COLR_MODE_CT      0x03D8
        !           774: #define WRIT_EIDR_MODE_CT      0x03D8
        !           775: 
        !           776: #define WRIT_MONO_GEN_VID_EN   0x46E8
        !           777: #define WRIT_COLR_GEN_VID_EN   0x46E8
        !           778: #define WRIT_EIDR_GEN_VID_EN   0x46E8
        !           779: 
        !           780: #define READ_MONO_GEN_VID_EN   0x03C3
        !           781: #define READ_COLR_GEN_VID_EN   0x03C3
        !           782: #define READ_EIDR_GEN_VID_EN   0x03C3
        !           783: 
        !           784: #define WRIT_MONO_ALT_VID_EN   0x46E8
        !           785: #define WRIT_COLR_ALT_VID_EN   0x46E8
        !           786: #define WRIT_EIDR_ALT_VID_EN   0x46E8
        !           787: 
        !           788: #define READ_MONO_ALT_VID_EN   0x46E8
        !           789: #define READ_COLR_ALT_VID_EN   0x46E8
        !           790: #define READ_EIDR_ALT_VID_EN   0x46E8
        !           791: 
        !           792: /*
        !           793: **     Bitfields for Hercules compatibility register
        !           794: */
        !           795: #define        GEN_TS_HER              0xFD
        !           796: #define        GEN_TS_ESP              0x02
        !           797: 
        !           798: /*
        !           799: **     Bitfields for Video Subsystem Register
        !           800: */
        !           801: #define        GEN_TS_WRI              0x01
        !           802: #define GEN_TS_REA             0x08
        !           803: #define        GEN_TS_VSR              0xF6
        !           804: 
        !           805: /*
        !           806: ***********************************************************************************************
        !           807: **                               VGA :- 6845 Compatibility registers                           **
        !           808: ***********************************************************************************************
        !           809: */
        !           810: #define WRIT_MONO_6845_CTL_REG 0x03B4
        !           811: #define WRIT_COLR_6845_CTL_REG 0x03D4
        !           812: #define READ_MONO_6845_CTL_REG 0x03B4
        !           813: #define READ_COLR_6845_CTL_REG 0x03D4
        !           814: 
        !           815: #define WRIT_MONO_6845_DTA_REG 0x03B5
        !           816: #define WRIT_COLR_6845_DTA_REG 0x03D5
        !           817: #define READ_MONO_6845_DTA_REG 0x03B5
        !           818: #define READ_COLR_6845_DTA_REG 0x03D5
        !           819: 
        !           820: #define WRIT_MONO_6845_DMC_REG 0x03B8
        !           821: #define WRIT_COLR_6845_DMC_REG 0x03D8
        !           822: #define READ_MONO_6845_DMC_REG 0x03B8
        !           823: #define READ_COLR_6845_DMC_REG 0x03D8
        !           824: 
        !           825: #define WRIT_6845_DCC_REG      0x03D9
        !           826: 
        !           827: #define WRIT_MONO_6845_DSC_REG 0x03BA
        !           828: #define WRIT_COLR_6845_DSC_REG 0x03DA
        !           829: #define READ_MONO_6845_DSC_REG 0x03BA
        !           830: #define READ_COLR_6845_DSC_REG 0x03DA
        !           831: 
        !           832: #define WRIT_6845_ATT_REG      0x03DE
        !           833: #define WRIT_HERCULES_REG      0x03BF
        !           834: 
        !           835: /*
        !           836: ***********************************************************************************************
        !           837: **                               VGA :- Sequencer registers                                    **
        !           838: ***********************************************************************************************
        !           839: */
        !           840: 
        !           841: /*
        !           842: **      New Registers 
        !           843: */
        !           844: 
        !           845: /*
        !           846: **      List of index registers
        !           847: */
        !           848: #define        SEQ_TS_TSS              0x06
        !           849: #define        SEQ_TS_TAM              0x07
        !           850: 
        !           851: /*
        !           852: **     Bitfields - Sequencer Registers - TS state control                              Tseng Labs
        !           853: */
        !           854: #define SEQ_TS_TSS             0x06
        !           855: 
        !           856: /*
        !           857: **     Bitfields - Sequencer Registers - TS Auxiliary mode                             Tseng Labs
        !           858: */
        !           859: #define        SEQ_TS_VGM              0x80
        !           860: #define        SEQ_TS_MC2              0x40
        !           861: #define        SEQ_TS_RO2              0x20
        !           862: #define        SEQ_TS_RO1              0x08
        !           863: #define        SEQ_TS_SC2              0x02
        !           864: #define        SEQ_TS_MC4              0x01
        !           865: #define        SEQ_TS_MSK              0x14
        !           866: 
        !           867: /*
        !           868: ***********************************************************************************************
        !           869: **                               VGA :- CRT Controller Registers                                        **
        !           870: ***********************************************************************************************
        !           871: */
        !           872: 
        !           873: /*
        !           874: **      New Registers 
        !           875: */
        !           876: 
        !           877: /*
        !           878: **      List of index registers
        !           879: */
        !           880: #define        CRT_TS_RAS              0x32
        !           881: #define        CRT_TS_ESA              0x33
        !           882: #define        CRT_TS_CTL              0x34
        !           883: #define        CRT_TS_OVH              0x35
        !           884: #define        CRT_TS_VS1              0x36
        !           885: #define        CRT_TS_VS2              0x37
        !           886: 
        !           887: /*
        !           888: **     Bitfields - CRT Controller registers - RAS/CAS Configuration Reggister  Tseng Labs
        !           889: */
        !           890: #define        CRT_TS_SCM              0x80
        !           891: #define        CRT_TS_RAL              0x40
        !           892: #define        CRT_TS_RCD              0x20
        !           893: #define        CRT_TS_RSP              0x18
        !           894: #define        CRT_TS_CSP              0x04
        !           895: #define        CRT_TS_CSW              0x03
        !           896: 
        !           897: /*
        !           898: **     Bitfields - CRT Controller registers - Extended Start Register          Tseng Labs
        !           899: */
        !           900: #define        CRT_TS_CSA              0x0C
        !           901: #define        CRT_TS_LSA              0x03
        !           902: 
        !           903: /*
        !           904: **     Bitfields - CRT Controller registers - 6845 Compatibility Control Register      Tseng Labs
        !           905: */
        !           906: #define        CRT_TS_CMP              0x80
        !           907: #define        CRT_TS_EBA              0x40
        !           908: #define        CRT_TS_EXL              0x20
        !           909: #define        CRT_TS_EXR              0x10
        !           910: #define        CRT_TS_EVS              0x08
        !           911: #define        CRT_TS_TRI              0x04
        !           912: #define        CRT_TS_MCK              0x02
        !           913: #define CRT_TS_EMK             0x01
        !           914: 
        !           915: /*
        !           916: **     Bitfields - CRT Controller registers - Overflow High                            Tseng Labs
        !           917: */
        !           918: #define CRT_TS_VIM             0x80
        !           919: #define        CRT_TS_ARW              0x40
        !           920: #define        CRT_TS_ESR              0x20
        !           921: #define        CRT_TS_LCA              0x10
        !           922: #define        CRT_TS_VSA              0x08
        !           923: #define        CRT_TS_VDA              0x04
        !           924: #define        CRT_TS_VTA              0x02
        !           925: #define        CRT_TS_VBA              0x01
        !           926: 
        !           927: /*
        !           928: **     Bitfields - CRT Controller registers - Video System Configuration 1             Tseng Labs
        !           929: */
        !           930: #define CRT_TS_RWF             0x80
        !           931: #define        CRT_TS_DMF              0x40
        !           932: #define        CRT_TS_AMD              0x20
        !           933: #define        CRT_TS_SGL              0x10
        !           934: #define        CRT_TS_FWF              0x08
        !           935: #define        CRT_TS_REF              0x07
        !           936: 
        !           937: /*
        !           938: **     Bitfields - CRT Controller registers - Video System Configuration 2             Tseng Labs
        !           939: */
        !           940: #define CRT_TS_DRM             0x80
        !           941: #define        CRT_TS_TST              0x40
        !           942: #define        CRT_TS_PTC              0x20
        !           943: #define        CRT_TS_RM8              0x10
        !           944: #define        CRT_TS_DMD              0x0C
        !           945: #define        CRT_TS_DBW              0x03
        !           946: 
        !           947: /*
        !           948: ***********************************************************************************************
        !           949: **                               VGA :- GCR Controller Registers                                 **
        !           950: ***********************************************************************************************
        !           951: */
        !           952: 
        !           953: /*
        !           954: **      New Registers 
        !           955: */
        !           956: #define        READ_MONO_GCR_SEGS      0x03CD
        !           957: #define        READ_COLR_GCR_SEGS      0x03CD
        !           958: #define        READ_EIDR_GCR_SEGS      0x03CD
        !           959: 
        !           960: #define        WRIT_MONO_GCR_SEGS      0x03CD
        !           961: #define        WRIT_COLR_GCR_SEGS      0x03CD
        !           962: #define        WRIT_EIDR_GCR_SEGS      0x03CD
        !           963: 
        !           964: /*
        !           965: **      List of index registers
        !           966: */
        !           967: 
        !           968: /*
        !           969: **     Bitfields - GCR Controller registers - Segment Select Register                  Tseng Labs
        !           970: */
        !           971: #define GCR_TS_GRD             0xF0
        !           972: #define GCR_TS_GWR             0x0F
        !           973: 
        !           974: /*
        !           975: ***********************************************************************************************
        !           976: **                               VGA :- ACR Controller Registers                                 **
        !           977: ***********************************************************************************************
        !           978: */
        !           979: 
        !           980: /*
        !           981: **      New Registers 
        !           982: */
        !           983: 
        !           984: /*
        !           985: **      List of index registers
        !           986: */
        !           987: #define        ACR_TS_MSC              0x16
        !           988: 
        !           989: /*
        !           990: **     Bitfields - Attribute Controller Registers - Miscellaneous                      Tseng Labs
        !           991: */
        !           992: #define        ACR_TS_BYP              0x80
        !           993: #define        ACR_TS_2BC              0x40
        !           994: #define        ACR_TS_SHR              0x30
        !           995: #define        ACR_TS_RES              0x0F
        !           996: 
        !           997: /*
        !           998: ***********************************************************************************************
        !           999: **                              VGA :- MODES                                                 **
        !          1000: ***********************************************************************************************
        !          1001: */
        !          1002: #define MAX_TS_GEN_INDEX       0x01
        !          1003: #define MAX_TS_SEQ_INDEX       SEQ_TS_TAM
        !          1004: #define MAX_TS_CRT_INDEX       CRT_TS_VS2
        !          1005: #define MAX_TS_GCR_INDEX       GCR_AT_BIT__MASK
        !          1006: #define MAX_TS_ACR_INDEX       ACR_TS_MISC
        !          1007: 
        !          1008: /*
        !          1009: ** There now follows a symbolic list of modes, these will be used as indeces into tables of
        !          1010: ** initial values to be put into the various registers for a given mode.
        !          1011: */
        !          1012: 
        !          1013: #define        MODE_VGA_TS_18  (MAX_VGA_AT_MODE + 0x01)
        !          1014: #define        MODE_VGA_TS_19  (MAX_VGA_AT_MODE + 0x02)
        !          1015: #define        MODE_VGA_TS_1A  (MAX_VGA_AT_MODE + 0x03)
        !          1016: #define        MODE_VGA_TS_22  (MAX_VGA_AT_MODE + 0x04)
        !          1017: #define        MODE_VGA_TS_23  (MAX_VGA_AT_MODE + 0x05)
        !          1018: #define        MODE_VGA_TS_24  (MAX_VGA_AT_MODE + 0x06)
        !          1019: #define        MODE_VGA_TS_25  (MAX_VGA_AT_MODE + 0x07)
        !          1020: #define        MODE_VGA_TS_26  (MAX_VGA_AT_MODE + 0x08)
        !          1021: #define        MODE_VGA_TS_29  (MAX_VGA_AT_MODE + 0x09)
        !          1022: #define        MODE_VGA_TS_2A  (MAX_VGA_AT_MODE + 0x0A)
        !          1023: #define        MODE_VGA_TS_2D  (MAX_VGA_AT_MODE + 0x0B)
        !          1024: #define        MODE_VGA_TS_2E  (MAX_VGA_AT_MODE + 0x0C)
        !          1025: #define        MODE_VGA_TS_30  (MAX_VGA_AT_MODE + 0x0D)
        !          1026: #define        MODE_VGA_TS_37i (MAX_VGA_AT_MODE + 0x0E)
        !          1027: #define        MODE_VGA_TS_37n (MAX_VGA_AT_MODE + 0x0F)
        !          1028: #define        MODE_VGA_TS_2F  (MAX_VGA_AT_MODE + 0x10)
        !          1029: #define        MODE_VGA_TS_38i (MAX_VGA_AT_MODE + 0x11)
        !          1030: #define        MODE_VGA_TS_38n (MAX_VGA_AT_MODE + 0x12)
        !          1031: 
        !          1032: #define MAX_VGA_TS_MODE        MODE_VGA_TS_38n
        !          1033: #define MIN_VGA_TS_MODE        MODE_VGA_TS_18
        !          1034: #define NUM_VGA_TS_MODE (MAX_VGA_TS_MODE-MIN_VGA_TS_MODE)
        !          1035: 
        !          1036: /*
        !          1037: ***********************************************************************************************
        !          1038: **                              Tseng Labs Specific                                                 **
        !          1039: ***********************************************************************************************
        !          1040: */
        !          1041: 
        !          1042: #define CHIP_IS_ET3000 0x10
        !          1043: #define CHIP_IS_ET4000 0x11
        !          1044: 
        !          1045: #define VGA_TS_MAX_SIZE 0x10000
        !          1046: 
        !          1047: 
        !          1048: extern void vga_read_bpp4planar_to_bpp2packed32(unsigned short *fb, unsigned int *dst);
        !          1049: extern void vga_write_bpp2packed32_to_bpp4planar(unsigned int *dst, unsigned short *fb);
        !          1050: 
        !          1051: // Global variables
        !          1052: // TODO: Eliminate the need for these.
        !          1053: extern unsigned int vgapriv_bpl;
        !          1054: extern unsigned int vgapriv_vgamode;
        !          1055: extern unsigned int *vgapriv_vgaAddr;
        !          1056: extern unsigned int *vgapriv_vgaVirtAddr;
        !          1057: extern int colr_mode;
        !          1058: 
        !          1059: 
        !          1060: // Alternate VGA routines
        !          1061: 
        !          1062: // Modes that we are interested in...
        !          1063: // WG_foo are Wingine modes
        !          1064: // VGA_foo are standard VGA modes.
        !          1065: 
        !          1066: #define        WG_MODE_40      0       // 640x480, 555 Non-interlaced, 50MHz dot clock
        !          1067: #define        WG_MODE_42      1       // 800x600, 555 Non-interlaced, 75MHz dot clock
        !          1068: #define        WG_MODE_50      2       // 640x480, 888 Non-interlaced, 75MHz dot clock
        !          1069: #define        WG_MODE_51      3       // 1Kx768, 555 Non-interlaced, 75MHz dot clock
        !          1070: #define        VGA_MODE_3      4       // 80x25 Alphanumeric mode
        !          1071: #define VGA_MODE_12    5       // 640x480x4 VGA mode
        !          1072: #define        N_MODES         6       // Total number of modes
        !          1073: 
        !          1074: /*
        !          1075:  * VGASetStdRegs() sets the standard VGA registers based on the supplied mode.
        !          1076:  * The modes are chosen from the above list. New modes can be added by adding
        !          1077:  * to the tables in vga_modes.c.  This routine is usually only a subset of what
        !          1078:  * needs to be done for enhanced modes.
        !          1079:  */
        !          1080: extern int VGASetStdRegs(int mode);
        !          1081: 
        !          1082: extern void fill_64K_plane(short colr);
        !          1083: extern void save_colr_data();
        !          1084: extern void save_font_data();
        !          1085: extern void set_linr_mono(char max);
        !          1086: extern void get_addr_range(short **segment_st, short **segment_nd);
        !          1087: extern void select_write_segment(char num);
        !          1088: extern void select_read_segment(char num);
        !          1089: 

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.