Annotation of ntddk/src/video/miniport/s3/cmdcnst.h, revision 1.1.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.