Annotation of ntddk/src/video/miniport/s3/cmdcnst.h, revision 1.1

1.1     ! root        1: /*++
        !             2: 
        !             3: Copyright (c) 1992  Microsoft Corporation
        !             4: 
        !             5: Module Name:
        !             6: 
        !             7:     cmdcnst.h
        !             8: 
        !             9: Abstract:
        !            10: 
        !            11:     This is the command string interpreter definitions
        !            12: 
        !            13: Environment:
        !            14: 
        !            15:     kernel mode only
        !            16: 
        !            17: Notes:
        !            18: 
        !            19: Revision History:
        !            20: 
        !            21: --*/
        !            22: 
        !            23: //--------------------------------------------------------------------------
        !            24: //   Definition of the set/clear mode command language.
        !            25: //
        !            26: //   Each command is composed of a major portion and a minor portion.
        !            27: //   The major portion of a command can be found in the most significant
        !            28: //   nibble of a command byte, while the minor portion is in the least
        !            29: //   significant portion of a command byte.
        !            30: //
        !            31: //   maj  minor      Description
        !            32: //   ---- -----      --------------------------------------------
        !            33: //   00              End of data
        !            34: //
        !            35: //   10              in and out type commands as described by flags
        !            36: //        flags:
        !            37: //
        !            38: //        xxxx
        !            39: //        ||||
        !            40: //        |||+-------- unused
        !            41: //        ||+--------- 0/1 single/multiple values to output
        !            42: //        |+---------- 0/1 8/16 bit operation
        !            43: //        +----------- 0/1 out/in instruction
        !            44: //
        !            45: //       Outs
        !            46: //       ----------------------------------------------
        !            47: //       0           reg:W val:B
        !            48: //       2           reg:W cnt:W val1:B val2:B...valN:B
        !            49: //       4           reg:W val:W
        !            50: //       6           reg:W cnt:W val1:W val2:W...valN:W
        !            51: //
        !            52: //       Ins
        !            53: //       ----------------------------------------------
        !            54: //       8           reg:W
        !            55: //       a           reg:W cnt:W
        !            56: //       c           reg:W
        !            57: //       e           reg:W cnt:W
        !            58: //
        !            59: //   20              Special purpose outs
        !            60: //       00          do indexed outs for seq, crtc, and gdc
        !            61: //                   indexreg:W cnt:B startindex:B val1:B val2:B...valN:B
        !            62: //       01          do indexed outs for atc
        !            63: //                   index-data_reg:W cnt:B startindex:B val1:B val2:B...valN:B
        !            64: //       02          do masked outs
        !            65: //                   indexreg:W andmask:B xormask:B
        !            66: //
        !            67: //   40              Select Access Range
        !            68: //       00            Registers is range 3c0-3cf
        !            69: //       01            Registers in range 3d4-3df
        !            70: //       02            Registers in range 4ae8-4ae9
        !            71: //
        !            72: //   F0              Nop
        !            73: //
        !            74: //---------------------------------------------------------------------------
        !            75: 
        !            76: // some useful equates - major commands
        !            77: 
        !            78: #define EOD                 0x000       // end of data
        !            79: #define INOUT               0x010       // do ins or outs
        !            80: #define METAOUT             0x020       // do special types of outs
        !            81: #define SELECTACCESSRANGE   0x040       // select access range
        !            82: #define NCMD                0x0f0       // Nop command
        !            83: 
        !            84: 
        !            85: // flags for INOUT major command
        !            86: 
        !            87: //#define UNUSED    0x01                    // reserved
        !            88: #define MULTI   0x02                    // multiple or single ins/outs
        !            89: #define BW      0x04                    // byte/word size of operation
        !            90: #define IO      0x08                    // out/in instruction
        !            91: 
        !            92: // minor commands for metout
        !            93: 
        !            94: #define INDXOUT 0x00                    // do indexed outs
        !            95: #define ATCOUT  0x01                    // do indexed outs for atc
        !            96: #define MASKOUT 0x02                    // do masked outs using and-xor masks
        !            97: #define VBLANK  0x03                    // Wait for Vertical Blank Interval
        !            98: #define SETCLK  0x04                    // Set the OEM Clock.
        !            99: #define SETCRTC 0x05                    // Set the OEM CRTC values.
        !           100: #define BUSTEST 0x06                    // 928 bus test
        !           101: #define DELAY   0x07                    // delay in microseconds
        !           102: #define BT485RESET 0x08                 // Reset the Bt485 for VGA
        !           103: 
        !           104: // Register ranges for the select access range command
        !           105: 
        !           106: #define VARIOUSVGA              0x00    // registers in range 3c0-3cf
        !           107: #define SYSTEMCONTROL           0x01    // registers in range 3d4-3df
        !           108: #define ADVANCEDFUNCTIONCONTROL 0x02    // registers in range 4ae8-4ae9
        !           109: 
        !           110: // composite inout type commands
        !           111: 
        !           112: #define OB      (INOUT)                 // output 8 bit value
        !           113: #define OBM     (INOUT+MULTI)           // output multiple bytes
        !           114: #define OW      (INOUT+BW)              // output single word value
        !           115: #define OWM     (INOUT+BW+MULTI)        // output multiple words
        !           116: 
        !           117: #define IB      (INOUT+IO)              // input byte
        !           118: #define IBM     (INOUT+IO+MULTI)        // input multiple bytes
        !           119: #define IW      (INOUT+IO+BW)           // input word
        !           120: #define IWM     (INOUT+IO+BW+MULTI)     // input multiple words

unix.superglobalmegacorp.com

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