Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

125 lines
4.3 KiB

  1. /*++
  2. Copyright (c) 1992 Microsoft Corporation
  3. Copyright (c) 1993 Compaq Computer Corporation
  4. Module Name:
  5. cmdcnst.h
  6. Abstract:
  7. This is the command string interpreter definitions
  8. Environment:
  9. kernel mode only
  10. Notes:
  11. Revision History:
  12. --*/
  13. //--------------------------------------------------------------------------
  14. // Definition of the set/clear mode command language.
  15. //
  16. // Each command is composed of a major portion and a minor portion.
  17. // The major portion of a command can be found in the most significant
  18. // nibble of a command byte, while the minor portion is in the least
  19. // significant portion of a command byte.
  20. //
  21. // maj minor Description
  22. // ---- ----- --------------------------------------------
  23. // 00 End of data
  24. //
  25. // 10 in and out type commands as described by flags
  26. // flags:
  27. //
  28. // xxxx
  29. // ||||
  30. // |||+-------- unused
  31. // ||+--------- 0/1 single/multiple values to output (in's are always
  32. // |+---------- 0/1 8/16 bit operation single)
  33. // +----------- 0/1 out/in instruction
  34. //
  35. // Outs
  36. // ----------------------------------------------
  37. // 0 reg:W val:B
  38. // 2 reg:W cnt:W val1:B val2:B...valN:B
  39. // 4 reg:W val:W
  40. // 6 reg:W cnt:W val1:W val2:W...valN:W
  41. //
  42. // Ins
  43. // ----------------------------------------------
  44. // 8 reg:W
  45. // a reg:W cnt:W
  46. // c reg:W
  47. // e reg:W cnt:W
  48. //
  49. // 20 Special purpose outs
  50. // 00 do indexed outs for seq, crtc, and gdc
  51. // indexreg:W cnt:B startindex:B val1:B val2:B...valN:B
  52. // 01 do indexed outs for atc
  53. // index-data_reg:W cnt:B startindex:B val1:B val2:B...valN:B
  54. // 02 do masked outs
  55. // indexreg:W andmask:B xormask:B
  56. //
  57. // F0 Nop
  58. //
  59. //---------------------------------------------------------------------------
  60. // some useful equates - major commands
  61. #define EOD 0x000 // end of data
  62. #define INOUT 0x010 // do ins or outs
  63. #define METAOUT 0x020 // do special types of outs
  64. #define NCMD 0x0f0 // Nop command
  65. //
  66. // QVision specific commands.
  67. //
  68. #define QVCMD 0x040 // QVision specific commands
  69. #define QVNEW 0x080 // QVision set ARIES RAM
  70. // flags for INOUT major command
  71. //#define UNUSED 0x01 // reserved
  72. #define MULTI 0x02 // multiple or single outs
  73. #define BW 0x04 // byte/word size of operation
  74. #define IO 0x08 // out/in instruction
  75. // minor commands for metout
  76. #define INDXOUT 0x00 // do indexed outs
  77. #define ATCOUT 0x01 // do indexed outs for atc
  78. #define MASKOUT 0x02 // do masked outs using and-xor masks
  79. //
  80. // QVision specific commands. QVCMD Major code
  81. //
  82. #define SETMONCRTC 0x01 // set monitor dependent CRTC registers
  83. #define SETMONOVFLW 0x02 // set monitor dependent Overflow2 registers
  84. #define SETMISCOUT 0x04 // set monitor dependent Misc registers
  85. #define BYTE2PORT 0x08 // write one or more bytes to a specific address
  86. #define SETRAM 0x01 // Initialize QVision RAM
  87. #define ARIES 0x02 // Aries specific stuff
  88. #define V32 0x04 // Check for V32 and set the
  89. // V32 specific registers
  90. #define V35 0x08 // V35 Check for V35 stuff
  91. // composite inout type commands
  92. #define OB (INOUT) // output 8 bit value
  93. #define OBM (INOUT+MULTI) // output multiple bytes
  94. #define OW (INOUT+BW) // output single word value
  95. #define OWM (INOUT+BW+MULTI) // output multiple words
  96. #define IB (INOUT+IO) // input byte
  97. #define IBM (INOUT+IO+MULTI) // input multiple bytes
  98. #define IW (INOUT+IO+BW) // input word
  99. #define IWM (INOUT+IO+BW+MULTI) // input multiple words
  100.