ReactOS  0.4.13-dev-242-g611e6d7
cmdcnst.h
Go to the documentation of this file.
1 /*
2  * PROJECT: ReactOS VGA Miniport Driver
3  * LICENSE: Microsoft NT4 DDK Sample Code License
4  * FILE: win32ss/drivers/miniport/vga_new/cmdcnst.h
5  * PURPOSE: Command Code Definitions for VGA Command Streams
6  * PROGRAMMERS: Copyright (c) 1992 Microsoft Corporation
7  */
8 
9 #pragma once
10 
11 //--------------------------------------------------------------------------
12 // Definition of the set/clear mode command language.
13 //
14 // Each command is composed of a major portion and a minor portion.
15 // The major portion of a command can be found in the most significant
16 // nibble of a command byte, while the minor portion is in the least
17 // significant portion of a command byte.
18 //
19 // maj minor Description
20 // ---- ----- --------------------------------------------
21 // 00 End of data
22 //
23 // 10 in and out type commands as described by flags
24 // flags:
25 //
26 // xxxx
27 // ||||
28 // |||+-------- unused
29 // ||+--------- 0/1 single/multiple values to output (in's are always
30 // |+---------- 0/1 8/16 bit operation single)
31 // +----------- 0/1 out/in instruction
32 //
33 // Outs
34 // ----------------------------------------------
35 // 0 reg:W val:B
36 // 2 reg:W cnt:W val1:B val2:B...valN:B
37 // 4 reg:W val:W
38 // 6 reg:W cnt:W val1:W val2:W...valN:W
39 //
40 // Ins
41 // ----------------------------------------------
42 // 8 reg:W
43 // a reg:W cnt:W
44 // c reg:W
45 // e reg:W cnt:W
46 //
47 // 20 Special purpose outs
48 // 00 do indexed outs for seq, crtc, and gdc
49 // indexreg:W cnt:B startindex:B val1:B val2:B...valN:B
50 // 01 do indexed outs for atc
51 // index-data_reg:W cnt:B startindex:B val1:B val2:B...valN:B
52 // 02 do masked outs
53 // indexreg:W andmask:B xormask:B
54 //
55 // F0 Nop
56 //
57 //---------------------------------------------------------------------------
58 
59 // some useful equates - major commands
60 
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 
67 // flags for INOUT major command
68 
69 //#define UNUSED 0x01 // reserved
70 #define MULTI 0x02 // multiple or single outs
71 #define BW 0x04 // byte/word size of operation
72 #define IO 0x08 // out/in instruction
73 
74 // minor commands for metout
75 
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 
81 // composite inout type commands
82 
83 #define OB (INOUT) // output 8 bit value
84 #define OBM (INOUT+MULTI) // output multiple bytes
85 #define OW (INOUT+BW) // output single word value
86 #define OWM (INOUT+BW+MULTI) // output multiple words
87 
88 #define IB (INOUT+IO) // input byte
89 #define IBM (INOUT+IO+MULTI) // input multiple bytes
90 #define IW (INOUT+IO+BW) // input word
91 #define IWM (INOUT+IO+BW+MULTI) // input multiple words
92 
93 /* EOF */