4 * Windows NT Device Driver Kit
6 * This file is part of the ReactOS DDK package.
9 * Hermes Belusca-Maito (hermes.belusca@sfr.fr)
11 * THIS SOFTWARE IS NOT COPYRIGHTED
13 * This source code is offered for use in the public domain. You may
14 * use, modify or distribute it freely.
16 * This code is distributed in the hope that it will be useful but
17 * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
18 * DISCLAIMED. This includes but is not limited to warranties of
19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
44 #define VDDSimulateInterrupt(ms, line, count) \
45 call_ica_hw_interrupt((ms), (line), (count)) // Windows specifies a count of 1 ...
49 * Registers manipulation
51 PVOID WINAPI
getIntelRegistersPointer(VOID
);
55 ULONG WINAPI
getEAX(VOID
);
56 VOID WINAPI
setEAX(ULONG
);
57 USHORT WINAPI
getAX(VOID
);
58 VOID WINAPI
setAX(USHORT
);
59 UCHAR WINAPI
getAH(VOID
);
60 VOID WINAPI
setAH(UCHAR
);
61 UCHAR WINAPI
getAL(VOID
);
62 VOID WINAPI
setAL(UCHAR
);
64 ULONG WINAPI
getEBX(VOID
);
65 VOID WINAPI
setEBX(ULONG
);
66 USHORT WINAPI
getBX(VOID
);
67 VOID WINAPI
setBX(USHORT
);
68 UCHAR WINAPI
getBH(VOID
);
69 VOID WINAPI
setBH(UCHAR
);
70 UCHAR WINAPI
getBL(VOID
);
71 VOID WINAPI
setBL(UCHAR
);
73 ULONG WINAPI
getECX(VOID
);
74 VOID WINAPI
setECX(ULONG
);
75 USHORT WINAPI
getCX(VOID
);
76 VOID WINAPI
setCX(USHORT
);
77 UCHAR WINAPI
getCH(VOID
);
78 VOID WINAPI
setCH(UCHAR
);
79 UCHAR WINAPI
getCL(VOID
);
80 VOID WINAPI
setCL(UCHAR
);
82 ULONG WINAPI
getEDX(VOID
);
83 VOID WINAPI
setEDX(ULONG
);
84 USHORT WINAPI
getDX(VOID
);
85 VOID WINAPI
setDX(USHORT
);
86 UCHAR WINAPI
getDH(VOID
);
87 VOID WINAPI
setDH(UCHAR
);
88 UCHAR WINAPI
getDL(VOID
);
89 VOID WINAPI
setDL(UCHAR
);
93 ULONG WINAPI
getESP(VOID
);
94 VOID WINAPI
setESP(ULONG
);
95 USHORT WINAPI
getSP(VOID
);
96 VOID WINAPI
setSP(USHORT
);
98 ULONG WINAPI
getEBP(VOID
);
99 VOID WINAPI
setEBP(ULONG
);
100 USHORT WINAPI
getBP(VOID
);
101 VOID WINAPI
setBP(USHORT
);
103 ULONG WINAPI
getESI(VOID
);
104 VOID WINAPI
setESI(ULONG
);
105 USHORT WINAPI
getSI(VOID
);
106 VOID WINAPI
setSI(USHORT
);
108 ULONG WINAPI
getEDI(VOID
);
109 VOID WINAPI
setEDI(ULONG
);
110 USHORT WINAPI
getDI(VOID
);
111 VOID WINAPI
setDI(USHORT
);
113 ULONG WINAPI
getEIP(VOID
);
114 VOID WINAPI
setEIP(ULONG
);
115 USHORT WINAPI
getIP(VOID
);
116 VOID WINAPI
setIP(USHORT
);
118 USHORT WINAPI
getCS(VOID
);
119 VOID WINAPI
setCS(USHORT
);
120 USHORT WINAPI
getSS(VOID
);
121 VOID WINAPI
setSS(USHORT
);
122 USHORT WINAPI
getDS(VOID
);
123 VOID WINAPI
setDS(USHORT
);
124 USHORT WINAPI
getES(VOID
);
125 VOID WINAPI
setES(USHORT
);
126 USHORT WINAPI
getFS(VOID
);
127 VOID WINAPI
setFS(USHORT
);
128 USHORT WINAPI
getGS(VOID
);
129 VOID WINAPI
setGS(USHORT
);
131 ULONG WINAPI
getCF(VOID
);
132 VOID WINAPI
setCF(ULONG
);
133 ULONG WINAPI
getPF(VOID
);
134 VOID WINAPI
setPF(ULONG
);
135 ULONG WINAPI
getAF(VOID
);
136 VOID WINAPI
setAF(ULONG
);
137 ULONG WINAPI
getZF(VOID
);
138 VOID WINAPI
setZF(ULONG
);
139 ULONG WINAPI
getSF(VOID
);
140 VOID WINAPI
setSF(ULONG
);
141 ULONG WINAPI
getIF(VOID
);
142 VOID WINAPI
setIF(ULONG
);
143 ULONG WINAPI
getDF(VOID
);
144 VOID WINAPI
setDF(ULONG
);
145 ULONG WINAPI
getOF(VOID
);
146 VOID WINAPI
setOF(ULONG
);
148 ULONG WINAPI
getEFLAGS(VOID
);
149 VOID WINAPI
setEFLAGS(ULONG
);
151 USHORT WINAPI
getMSW(VOID
);
152 VOID WINAPI
setMSW(USHORT
);
156 ULONG WINAPI
c_getEAX(VOID
);
157 VOID WINAPI
c_setEAX(ULONG
);
158 USHORT WINAPI
c_getAX(VOID
);
159 VOID WINAPI
c_setAX(USHORT
);
160 UCHAR WINAPI
c_getAH(VOID
);
161 VOID WINAPI
c_setAH(UCHAR
);
162 UCHAR WINAPI
c_getAL(VOID
);
163 VOID WINAPI
c_setAL(UCHAR
);
165 ULONG WINAPI
c_getEBX(VOID
);
166 VOID WINAPI
c_setEBX(ULONG
);
167 USHORT WINAPI
c_getBX(VOID
);
168 VOID WINAPI
c_setBX(USHORT
);
169 UCHAR WINAPI
c_getBH(VOID
);
170 VOID WINAPI
c_setBH(UCHAR
);
171 UCHAR WINAPI
c_getBL(VOID
);
172 VOID WINAPI
c_setBL(UCHAR
);
174 ULONG WINAPI
c_getECX(VOID
);
175 VOID WINAPI
c_setECX(ULONG
);
176 USHORT WINAPI
c_getCX(VOID
);
177 VOID WINAPI
c_setCX(USHORT
);
178 UCHAR WINAPI
c_getCH(VOID
);
179 VOID WINAPI
c_setCH(UCHAR
);
180 UCHAR WINAPI
c_getCL(VOID
);
181 VOID WINAPI
c_setCL(UCHAR
);
183 ULONG WINAPI
c_getEDX(VOID
);
184 VOID WINAPI
c_setEDX(ULONG
);
185 USHORT WINAPI
c_getDX(VOID
);
186 VOID WINAPI
c_setDX(USHORT
);
187 UCHAR WINAPI
c_getDH(VOID
);
188 VOID WINAPI
c_setDH(UCHAR
);
189 UCHAR WINAPI
c_getDL(VOID
);
190 VOID WINAPI
c_setDL(UCHAR
);
194 ULONG WINAPI
c_getESP(VOID
);
195 VOID WINAPI
c_setESP(ULONG
);
196 USHORT WINAPI
c_getSP(VOID
);
197 VOID WINAPI
c_setSP(USHORT
);
199 ULONG WINAPI
c_getEBP(VOID
);
200 VOID WINAPI
c_setEBP(ULONG
);
201 USHORT WINAPI
c_getBP(VOID
);
202 VOID WINAPI
c_setBP(USHORT
);
204 ULONG WINAPI
c_getESI(VOID
);
205 VOID WINAPI
c_setESI(ULONG
);
206 USHORT WINAPI
c_getSI(VOID
);
207 VOID WINAPI
c_setSI(USHORT
);
209 ULONG WINAPI
c_getEDI(VOID
);
210 VOID WINAPI
c_setEDI(ULONG
);
211 USHORT WINAPI
c_getDI(VOID
);
212 VOID WINAPI
c_setDI(USHORT
);
214 ULONG WINAPI
c_getEIP(VOID
);
215 VOID WINAPI
c_setEIP(ULONG
);
216 USHORT WINAPI
c_getIP(VOID
);
217 VOID WINAPI
c_setIP(USHORT
);
219 USHORT WINAPI
c_getCS(VOID
);
220 VOID WINAPI
c_setCS(USHORT
);
221 USHORT WINAPI
c_getSS(VOID
);
222 VOID WINAPI
c_setSS(USHORT
);
223 USHORT WINAPI
c_getDS(VOID
);
224 VOID WINAPI
c_setDS(USHORT
);
225 USHORT WINAPI
c_getES(VOID
);
226 VOID WINAPI
c_setES(USHORT
);
227 USHORT WINAPI
c_getFS(VOID
);
228 VOID WINAPI
c_setFS(USHORT
);
229 USHORT WINAPI
c_getGS(VOID
);
230 VOID WINAPI
c_setGS(USHORT
);
232 ULONG WINAPI
c_getCF(VOID
);
233 VOID WINAPI
c_setCF(ULONG
);
234 ULONG WINAPI
c_getPF(VOID
);
235 VOID WINAPI
c_setPF(ULONG
);
236 ULONG WINAPI
c_getAF(VOID
);
237 VOID WINAPI
c_setAF(ULONG
);
238 ULONG WINAPI
c_getZF(VOID
);
239 VOID WINAPI
c_setZF(ULONG
);
240 ULONG WINAPI
c_getSF(VOID
);
241 VOID WINAPI
c_setSF(ULONG
);
242 ULONG WINAPI
c_getIF(VOID
);
243 VOID WINAPI
c_setIF(ULONG
);
244 ULONG WINAPI
c_getDF(VOID
);
245 VOID WINAPI
c_setDF(ULONG
);
246 ULONG WINAPI
c_getOF(VOID
);
247 VOID WINAPI
c_setOF(ULONG
);
249 USHORT WINAPI
c_getMSW(VOID
);
250 VOID WINAPI
c_setMSW(USHORT
);