|
|
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
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.