Mercurial > vba-linux
comparison src/gb/gbCodesCB.h @ 1:f9f4f1b99eed
importing src directory
author | Robert McIntyre <rlm@mit.edu> |
---|---|
date | Sat, 03 Mar 2012 10:31:27 -0600 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
0:8ced16adf2e1 | 1:f9f4f1b99eed |
---|---|
1 case 0x00: | |
2 // RLC B | |
3 AF.B.B0 = (BC.B.B1 & 0x80)?C_FLAG:0; | |
4 BC.B.B1 = ((BC.B.B1<<1) | (BC.B.B1>>7)) & 0xFF; | |
5 AF.B.B0 |= ZeroTable[BC.B.B1]; | |
6 break; | |
7 case 0x01: | |
8 // RLC C | |
9 AF.B.B0 = (BC.B.B0 & 0x80)?C_FLAG:0; | |
10 BC.B.B0 = ((BC.B.B0<<1) | (BC.B.B0>>7)) & 0xFF; | |
11 AF.B.B0 |= ZeroTable[BC.B.B0]; | |
12 break; | |
13 case 0x02: | |
14 // RLC D | |
15 AF.B.B0 = (DE.B.B1 & 0x80)?C_FLAG:0; | |
16 DE.B.B1 = ((DE.B.B1<<1) | (DE.B.B1>>7)) & 0xFF; | |
17 AF.B.B0 |= ZeroTable[DE.B.B1]; | |
18 break; | |
19 case 0x03: | |
20 // RLC E | |
21 AF.B.B0 = (DE.B.B0 & 0x80)?C_FLAG:0; | |
22 DE.B.B0 = ((DE.B.B0<<1) | (DE.B.B0>>7)) & 0xFF; | |
23 AF.B.B0 |= ZeroTable[DE.B.B0]; | |
24 break; | |
25 case 0x04: | |
26 // RLC H | |
27 AF.B.B0 = (HL.B.B1 & 0x80)?C_FLAG:0; | |
28 HL.B.B1 = ((HL.B.B1<<1) | (HL.B.B1>>7)) & 0xFF; | |
29 AF.B.B0 |= ZeroTable[HL.B.B1]; | |
30 break; | |
31 case 0x05: | |
32 // RLC L | |
33 AF.B.B0 = (HL.B.B0 & 0x80)?C_FLAG:0; | |
34 HL.B.B0 = ((HL.B.B0<<1) | (HL.B.B0>>7)) & 0xFF; | |
35 AF.B.B0 |= ZeroTable[HL.B.B0]; | |
36 break; | |
37 case 0x06: | |
38 // RLC (HL) | |
39 tempValue=gbReadMemory(HL.W); | |
40 AF.B.B0 = (tempValue & 0x80)?C_FLAG:0; | |
41 tempValue = ((tempValue<<1) | (tempValue>>7)) & 0xFF; | |
42 AF.B.B0 |= ZeroTable[tempValue]; | |
43 gbWriteMemory(HL.W,tempValue); | |
44 break; | |
45 case 0x07: | |
46 // RLC A | |
47 AF.B.B0 = (AF.B.B1 & 0x80)?C_FLAG:0; | |
48 AF.B.B1 = ((AF.B.B1<<1) | (AF.B.B1>>7)) & 0xFF; | |
49 AF.B.B0 |= ZeroTable[AF.B.B1]; | |
50 break; | |
51 case 0x08: | |
52 // RRC B | |
53 AF.B.B0=(BC.B.B1&0x01 ? C_FLAG : 0); | |
54 BC.B.B1=((BC.B.B1>>1)|(BC.B.B1<<7)) & 0xFF; | |
55 AF.B.B0|=ZeroTable[BC.B.B1]; | |
56 break; | |
57 case 0x09: | |
58 // RRC C | |
59 AF.B.B0=(BC.B.B0&0x01 ? C_FLAG : 0); | |
60 BC.B.B0=((BC.B.B0>>1)|(BC.B.B0<<7)) & 0xFF; | |
61 AF.B.B0|=ZeroTable[BC.B.B0]; | |
62 break; | |
63 case 0x0a: | |
64 // RRC D | |
65 AF.B.B0=(DE.B.B1&0x01 ? C_FLAG : 0); | |
66 DE.B.B1=((DE.B.B1>>1)|(DE.B.B1<<7)) & 0xFF; | |
67 AF.B.B0|=ZeroTable[DE.B.B1]; | |
68 break; | |
69 case 0x0b: | |
70 // RRC E | |
71 AF.B.B0=(DE.B.B0&0x01 ? C_FLAG : 0); | |
72 DE.B.B0=((DE.B.B0>>1)|(DE.B.B0<<7)) & 0xFF; | |
73 AF.B.B0|=ZeroTable[DE.B.B0]; | |
74 break; | |
75 case 0x0c: | |
76 // RRC H | |
77 AF.B.B0=(HL.B.B1&0x01 ? C_FLAG : 0); | |
78 HL.B.B1=((HL.B.B1>>1)|(HL.B.B1<<7)) & 0xFF; | |
79 AF.B.B0|=ZeroTable[HL.B.B1]; | |
80 break; | |
81 case 0x0d: | |
82 // RRC L | |
83 AF.B.B0=(HL.B.B0&0x01 ? C_FLAG : 0); | |
84 HL.B.B0=((HL.B.B0>>1)|(HL.B.B0<<7)) & 0xFF; | |
85 AF.B.B0|=ZeroTable[HL.B.B0]; | |
86 break; | |
87 case 0x0e: | |
88 // RRC (HL) | |
89 tempValue=gbReadMemory(HL.W); | |
90 AF.B.B0=(tempValue&0x01 ? C_FLAG : 0); | |
91 tempValue=((tempValue>>1)|(tempValue<<7)) & 0xFF; | |
92 AF.B.B0|=ZeroTable[tempValue]; | |
93 gbWriteMemory(HL.W,tempValue); | |
94 break; | |
95 case 0x0f: | |
96 // RRC A | |
97 AF.B.B0=(AF.B.B1&0x01 ? C_FLAG : 0); | |
98 AF.B.B1=((AF.B.B1>>1)|(AF.B.B1<<7)) & 0xFF; | |
99 AF.B.B0|=ZeroTable[AF.B.B1]; | |
100 break; | |
101 case 0x10: | |
102 // RL B | |
103 if(BC.B.B1&0x80) { | |
104 BC.B.B1=((BC.B.B1<<1)|(AF.B.B0&C_FLAG ? 1 : 0)) & 0xFF; | |
105 AF.B.B0=ZeroTable[BC.B.B1]|C_FLAG; | |
106 } else { | |
107 BC.B.B1=((BC.B.B1<<1)|(AF.B.B0&C_FLAG ? 1 : 0)) & 0xFF; | |
108 AF.B.B0=ZeroTable[BC.B.B1]; | |
109 } | |
110 break; | |
111 case 0x11: | |
112 // RL C | |
113 if(BC.B.B0&0x80) { | |
114 BC.B.B0=((BC.B.B0<<1)|(AF.B.B0&C_FLAG ? 1 : 0)) & 0xFF; | |
115 AF.B.B0=ZeroTable[BC.B.B0]|C_FLAG; | |
116 } else { | |
117 BC.B.B0=((BC.B.B0<<1)|(AF.B.B0&C_FLAG ? 1 : 0)) & 0xFF; | |
118 AF.B.B0=ZeroTable[BC.B.B0]; | |
119 } | |
120 break; | |
121 case 0x12: | |
122 // RL D | |
123 if(DE.B.B1&0x80) { | |
124 DE.B.B1=((DE.B.B1<<1)|(AF.B.B0&C_FLAG ? 1 : 0)) & 0xFF; | |
125 AF.B.B0=ZeroTable[DE.B.B1]|C_FLAG; | |
126 } else { | |
127 DE.B.B1=((DE.B.B1<<1)|(AF.B.B0&C_FLAG ? 1 : 0)) & 0xFF; | |
128 AF.B.B0=ZeroTable[DE.B.B1]; | |
129 } | |
130 break; | |
131 case 0x13: | |
132 // RL E | |
133 if(DE.B.B0&0x80) { | |
134 DE.B.B0=((DE.B.B0<<1)|(AF.B.B0&C_FLAG ? 1 : 0)) & 0xFF; | |
135 AF.B.B0=ZeroTable[DE.B.B0]|C_FLAG; | |
136 } else { | |
137 DE.B.B0=((DE.B.B0<<1)|(AF.B.B0&C_FLAG ? 1 : 0)) & 0xFF; | |
138 AF.B.B0=ZeroTable[DE.B.B0]; | |
139 } | |
140 break; | |
141 case 0x14: | |
142 // RL H | |
143 if(HL.B.B1&0x80) { | |
144 HL.B.B1=((HL.B.B1<<1)|(AF.B.B0&C_FLAG ? 1 : 0)) & 0xFF; | |
145 AF.B.B0=ZeroTable[HL.B.B1]|C_FLAG; | |
146 } else { | |
147 HL.B.B1=((HL.B.B1<<1)|(AF.B.B0&C_FLAG ? 1 : 0)) & 0xFF; | |
148 AF.B.B0=ZeroTable[HL.B.B1]; | |
149 } | |
150 break; | |
151 case 0x15: | |
152 // RL L | |
153 if(HL.B.B0&0x80) { | |
154 HL.B.B0=((HL.B.B0<<1)|(AF.B.B0&C_FLAG ? 1 : 0)) & 0xFF; | |
155 AF.B.B0=ZeroTable[HL.B.B0]|C_FLAG; | |
156 } else { | |
157 HL.B.B0=((HL.B.B0<<1)|(AF.B.B0&C_FLAG ? 1 : 0)) & 0xFF; | |
158 AF.B.B0=ZeroTable[HL.B.B0]; | |
159 } | |
160 break; | |
161 case 0x16: | |
162 // RL (HL) | |
163 tempValue=gbReadMemory(HL.W); | |
164 if(tempValue&0x80) { | |
165 tempValue=((tempValue<<1)|(AF.B.B0&C_FLAG ? 1 : 0)) & 0xFF; | |
166 AF.B.B0=ZeroTable[tempValue]|C_FLAG; | |
167 } else { | |
168 tempValue=((tempValue<<1)|(AF.B.B0&C_FLAG ? 1 : 0)) & 0xFF; | |
169 AF.B.B0=ZeroTable[tempValue]; | |
170 } | |
171 gbWriteMemory(HL.W,tempValue); | |
172 break; | |
173 case 0x17: | |
174 // RL A | |
175 if(AF.B.B1&0x80) { | |
176 AF.B.B1=((AF.B.B1<<1)|(AF.B.B0&C_FLAG ? 1 : 0)) & 0xFF; | |
177 AF.B.B0=ZeroTable[AF.B.B1]|C_FLAG; | |
178 } else { | |
179 AF.B.B1=((AF.B.B1<<1)|(AF.B.B0&C_FLAG ? 1 : 0)) & 0xFF; | |
180 AF.B.B0=ZeroTable[AF.B.B1]; | |
181 } | |
182 break; | |
183 case 0x18: | |
184 // RR B | |
185 if(BC.B.B1&0x01) { | |
186 BC.B.B1=(BC.B.B1>>1)|(AF.B.B0 & C_FLAG ? 0x80:0); | |
187 AF.B.B0=ZeroTable[BC.B.B1]|C_FLAG; | |
188 } else { | |
189 BC.B.B1=(BC.B.B1>>1)|(AF.B.B0 & C_FLAG ? 0x80:0); | |
190 AF.B.B0=ZeroTable[BC.B.B1]; | |
191 } | |
192 break; | |
193 case 0x19: | |
194 // RR C | |
195 if(BC.B.B0&0x01) { | |
196 BC.B.B0=(BC.B.B0>>1)|(AF.B.B0 & C_FLAG ? 0x80:0); | |
197 AF.B.B0=ZeroTable[BC.B.B0]|C_FLAG; | |
198 } else { | |
199 BC.B.B0=(BC.B.B0>>1)|(AF.B.B0 & C_FLAG ? 0x80:0); | |
200 AF.B.B0=ZeroTable[BC.B.B0]; | |
201 } | |
202 break; | |
203 case 0x1a: | |
204 // RR D | |
205 if(DE.B.B1&0x01) { | |
206 DE.B.B1=(DE.B.B1>>1)|(AF.B.B0 & C_FLAG ? 0x80:0); | |
207 AF.B.B0=ZeroTable[DE.B.B1]|C_FLAG; | |
208 } else { | |
209 DE.B.B1=(DE.B.B1>>1)|(AF.B.B0 & C_FLAG ? 0x80:0); | |
210 AF.B.B0=ZeroTable[DE.B.B1]; | |
211 } | |
212 break; | |
213 case 0x1b: | |
214 // RR E | |
215 if(DE.B.B0&0x01) { | |
216 DE.B.B0=(DE.B.B0>>1)|(AF.B.B0 & C_FLAG ? 0x80:0); | |
217 AF.B.B0=ZeroTable[DE.B.B0]|C_FLAG; | |
218 } else { | |
219 DE.B.B0=(DE.B.B0>>1)|(AF.B.B0 & C_FLAG ? 0x80:0); | |
220 AF.B.B0=ZeroTable[DE.B.B0]; | |
221 } | |
222 break; | |
223 case 0x1c: | |
224 // RR H | |
225 if(HL.B.B1&0x01) { | |
226 HL.B.B1=(HL.B.B1>>1)|(AF.B.B0 & C_FLAG ? 0x80:0); | |
227 AF.B.B0=ZeroTable[HL.B.B1]|C_FLAG; | |
228 } else { | |
229 HL.B.B1=(HL.B.B1>>1)|(AF.B.B0 & C_FLAG ? 0x80:0); | |
230 AF.B.B0=ZeroTable[HL.B.B1]; | |
231 } | |
232 break; | |
233 case 0x1d: | |
234 // RR L | |
235 if(HL.B.B0&0x01) { | |
236 HL.B.B0=(HL.B.B0>>1)|(AF.B.B0 & C_FLAG ? 0x80:0); | |
237 AF.B.B0=ZeroTable[HL.B.B0]|C_FLAG; | |
238 } else { | |
239 HL.B.B0=(HL.B.B0>>1)|(AF.B.B0 & C_FLAG ? 0x80:0); | |
240 AF.B.B0=ZeroTable[HL.B.B0]; | |
241 } | |
242 break; | |
243 case 0x1e: | |
244 // RR (HL) | |
245 tempValue=gbReadMemory(HL.W); | |
246 if(tempValue&0x01) { | |
247 tempValue=(tempValue>>1)|(AF.B.B0 & C_FLAG ? 0x80:0); | |
248 AF.B.B0=ZeroTable[tempValue]|C_FLAG; | |
249 } else { | |
250 tempValue=(tempValue>>1)|(AF.B.B0 & C_FLAG ? 0x80:0); | |
251 AF.B.B0=ZeroTable[tempValue]; | |
252 } | |
253 gbWriteMemory(HL.W,tempValue); | |
254 break; | |
255 case 0x1f: | |
256 // RR A | |
257 if(AF.B.B1&0x01) { | |
258 AF.B.B1=(AF.B.B1>>1)|(AF.B.B0 & C_FLAG ? 0x80:0); | |
259 AF.B.B0=ZeroTable[AF.B.B1]|C_FLAG; | |
260 } else { | |
261 AF.B.B1=(AF.B.B1>>1)|(AF.B.B0 & C_FLAG ? 0x80:0); | |
262 AF.B.B0=ZeroTable[AF.B.B1]; | |
263 } | |
264 break; | |
265 case 0x20: | |
266 // SLA B | |
267 AF.B.B0=(BC.B.B1&0x80?C_FLAG : 0); | |
268 BC.B.B1<<=1; | |
269 AF.B.B0|=ZeroTable[BC.B.B1]; | |
270 break; | |
271 case 0x21: | |
272 // SLA C | |
273 AF.B.B0=(BC.B.B0&0x80?C_FLAG : 0); | |
274 BC.B.B0<<=1; | |
275 AF.B.B0|=ZeroTable[BC.B.B0]; | |
276 break; | |
277 case 0x22: | |
278 // SLA D | |
279 AF.B.B0=(DE.B.B1&0x80?C_FLAG : 0); | |
280 DE.B.B1<<=1; | |
281 AF.B.B0|=ZeroTable[DE.B.B1]; | |
282 break; | |
283 case 0x23: | |
284 // SLA E | |
285 AF.B.B0=(DE.B.B0&0x80?C_FLAG : 0); | |
286 DE.B.B0<<=1; | |
287 AF.B.B0|=ZeroTable[DE.B.B0]; | |
288 break; | |
289 case 0x24: | |
290 // SLA H | |
291 AF.B.B0=(HL.B.B1&0x80?C_FLAG : 0); | |
292 HL.B.B1<<=1; | |
293 AF.B.B0|=ZeroTable[HL.B.B1]; | |
294 break; | |
295 case 0x25: | |
296 // SLA L | |
297 AF.B.B0=(HL.B.B0&0x80?C_FLAG : 0); | |
298 HL.B.B0<<=1; | |
299 AF.B.B0|=ZeroTable[HL.B.B0]; | |
300 break; | |
301 case 0x26: | |
302 // SLA (HL) | |
303 tempValue=gbReadMemory(HL.W); | |
304 AF.B.B0=(tempValue&0x80?C_FLAG : 0); | |
305 tempValue<<=1; | |
306 AF.B.B0|=ZeroTable[tempValue]; | |
307 gbWriteMemory(HL.W,tempValue); | |
308 break; | |
309 case 0x27: | |
310 // SLA A | |
311 AF.B.B0=(AF.B.B1&0x80?C_FLAG : 0); | |
312 AF.B.B1<<=1; | |
313 AF.B.B0|=ZeroTable[AF.B.B1]; | |
314 break; | |
315 case 0x28: | |
316 // SRA B | |
317 AF.B.B0=(BC.B.B1&0x01 ? C_FLAG: 0); | |
318 BC.B.B1=(BC.B.B1>>1)|(BC.B.B1&0x80); | |
319 AF.B.B0|=ZeroTable[BC.B.B1]; | |
320 break; | |
321 case 0x29: | |
322 // SRA C | |
323 AF.B.B0=(BC.B.B0&0x01 ? C_FLAG: 0); | |
324 BC.B.B0=(BC.B.B0>>1)|(BC.B.B0&0x80); | |
325 AF.B.B0|=ZeroTable[BC.B.B0]; | |
326 break; | |
327 case 0x2a: | |
328 // SRA D | |
329 AF.B.B0=(DE.B.B1&0x01 ? C_FLAG: 0); | |
330 DE.B.B1=(DE.B.B1>>1)|(DE.B.B1&0x80); | |
331 AF.B.B0|=ZeroTable[DE.B.B1]; | |
332 break; | |
333 case 0x2b: | |
334 // SRA E | |
335 AF.B.B0=(DE.B.B0&0x01 ? C_FLAG: 0); | |
336 DE.B.B0=(DE.B.B0>>1)|(DE.B.B0&0x80); | |
337 AF.B.B0|=ZeroTable[DE.B.B0]; | |
338 break; | |
339 case 0x2c: | |
340 // SRA H | |
341 AF.B.B0=(HL.B.B1&0x01 ? C_FLAG: 0); | |
342 HL.B.B1=(HL.B.B1>>1)|(HL.B.B1&0x80); | |
343 AF.B.B0|=ZeroTable[HL.B.B1]; | |
344 break; | |
345 case 0x2d: | |
346 // SRA L | |
347 AF.B.B0=(HL.B.B0&0x01 ? C_FLAG: 0); | |
348 HL.B.B0=(HL.B.B0>>1)|(HL.B.B0&0x80); | |
349 AF.B.B0|=ZeroTable[HL.B.B0]; | |
350 break; | |
351 case 0x2e: | |
352 // SRA (HL) | |
353 tempValue=gbReadMemory(HL.W); | |
354 AF.B.B0=(tempValue&0x01 ? C_FLAG: 0); | |
355 tempValue=(tempValue>>1)|(tempValue&0x80); | |
356 AF.B.B0|=ZeroTable[tempValue]; | |
357 gbWriteMemory(HL.W,tempValue); | |
358 break; | |
359 case 0x2f: | |
360 // SRA A | |
361 AF.B.B0=(AF.B.B1&0x01 ? C_FLAG: 0); | |
362 AF.B.B1=(AF.B.B1>>1)|(AF.B.B1&0x80); | |
363 AF.B.B0|=ZeroTable[AF.B.B1]; | |
364 break; | |
365 case 0x30: | |
366 // SWAP B | |
367 BC.B.B1 = (BC.B.B1&0xf0)>>4 | (BC.B.B1&0x0f)<<4; | |
368 AF.B.B0 = ZeroTable[BC.B.B1]; | |
369 break; | |
370 case 0x31: | |
371 // SWAP C | |
372 BC.B.B0 = (BC.B.B0&0xf0)>>4 | (BC.B.B0&0x0f)<<4; | |
373 AF.B.B0 = ZeroTable[BC.B.B0]; | |
374 break; | |
375 case 0x32: | |
376 // SWAP D | |
377 DE.B.B1 = (DE.B.B1&0xf0)>>4 | (DE.B.B1&0x0f)<<4; | |
378 AF.B.B0 = ZeroTable[DE.B.B1]; | |
379 break; | |
380 case 0x33: | |
381 // SWAP E | |
382 DE.B.B0 = (DE.B.B0&0xf0)>>4 | (DE.B.B0&0x0f)<<4; | |
383 AF.B.B0 = ZeroTable[DE.B.B0]; | |
384 break; | |
385 case 0x34: | |
386 // SWAP H | |
387 HL.B.B1 = (HL.B.B1&0xf0)>>4 | (HL.B.B1&0x0f)<<4; | |
388 AF.B.B0 = ZeroTable[HL.B.B1]; | |
389 break; | |
390 case 0x35: | |
391 // SWAP L | |
392 HL.B.B0 = (HL.B.B0&0xf0)>>4 | (HL.B.B0&0x0f)<<4; | |
393 AF.B.B0 = ZeroTable[HL.B.B0]; | |
394 break; | |
395 case 0x36: | |
396 // SWAP (HL) | |
397 tempValue=gbReadMemory(HL.W); | |
398 tempValue = (tempValue&0xf0)>>4 | (tempValue&0x0f)<<4; | |
399 AF.B.B0 = ZeroTable[tempValue]; | |
400 gbWriteMemory(HL.W,tempValue); | |
401 break; | |
402 case 0x37: | |
403 // SWAP A | |
404 AF.B.B1 = (AF.B.B1&0xf0)>>4 | (AF.B.B1&0x0f)<<4; | |
405 AF.B.B0 = ZeroTable[AF.B.B1]; | |
406 break; | |
407 case 0x38: | |
408 // SRL B | |
409 AF.B.B0=(BC.B.B1&0x01)?C_FLAG:0; | |
410 BC.B.B1>>=1; | |
411 AF.B.B0|=ZeroTable[BC.B.B1]; | |
412 break; | |
413 case 0x39: | |
414 // SRL C | |
415 AF.B.B0=(BC.B.B0&0x01)?C_FLAG:0; | |
416 BC.B.B0>>=1; | |
417 AF.B.B0|=ZeroTable[BC.B.B0]; | |
418 break; | |
419 case 0x3a: | |
420 // SRL D | |
421 AF.B.B0=(DE.B.B1&0x01)?C_FLAG:0; | |
422 DE.B.B1>>=1; | |
423 AF.B.B0|=ZeroTable[DE.B.B1]; | |
424 break; | |
425 case 0x3b: | |
426 // SRL E | |
427 AF.B.B0=(DE.B.B0&0x01)?C_FLAG:0; | |
428 DE.B.B0>>=1; | |
429 AF.B.B0|=ZeroTable[DE.B.B0]; | |
430 break; | |
431 case 0x3c: | |
432 // SRL H | |
433 AF.B.B0=(HL.B.B1&0x01)?C_FLAG:0; | |
434 HL.B.B1>>=1; | |
435 AF.B.B0|=ZeroTable[HL.B.B1]; | |
436 break; | |
437 case 0x3d: | |
438 // SRL L | |
439 AF.B.B0=(HL.B.B0&0x01)?C_FLAG:0; | |
440 HL.B.B0>>=1; | |
441 AF.B.B0|=ZeroTable[HL.B.B0]; | |
442 break; | |
443 case 0x3e: | |
444 // SRL (HL) | |
445 tempValue=gbReadMemory(HL.W); | |
446 AF.B.B0=(tempValue&0x01)?C_FLAG:0; | |
447 tempValue>>=1; | |
448 AF.B.B0|=ZeroTable[tempValue]; | |
449 gbWriteMemory(HL.W,tempValue); | |
450 break; | |
451 case 0x3f: | |
452 // SRL A | |
453 AF.B.B0=(AF.B.B1&0x01)?C_FLAG:0; | |
454 AF.B.B1>>=1; | |
455 AF.B.B0|=ZeroTable[AF.B.B1]; | |
456 break; | |
457 case 0x40: | |
458 // BIT 0,B | |
459 AF.B.B0=(AF.B.B0&C_FLAG)|H_FLAG|(BC.B.B1&(1<<0)? 0:Z_FLAG); | |
460 break; | |
461 case 0x41: | |
462 // BIT 0,C | |
463 AF.B.B0=(AF.B.B0&C_FLAG)|H_FLAG|(BC.B.B0&(1<<0)? 0:Z_FLAG); | |
464 break; | |
465 case 0x42: | |
466 // BIT 0,D | |
467 AF.B.B0=(AF.B.B0&C_FLAG)|H_FLAG|(DE.B.B1&(1<<0)? 0:Z_FLAG); | |
468 break; | |
469 case 0x43: | |
470 // BIT 0,E | |
471 AF.B.B0=(AF.B.B0&C_FLAG)|H_FLAG|(DE.B.B0&(1<<0)? 0:Z_FLAG); | |
472 break; | |
473 case 0x44: | |
474 // BIT 0,H | |
475 AF.B.B0=(AF.B.B0&C_FLAG)|H_FLAG|(HL.B.B1&(1<<0)? 0:Z_FLAG); | |
476 break; | |
477 case 0x45: | |
478 // BIT 0,L | |
479 AF.B.B0=(AF.B.B0&C_FLAG)|H_FLAG|(HL.B.B0&(1<<0)? 0:Z_FLAG); | |
480 break; | |
481 case 0x46: | |
482 // BIT 0,(HL) | |
483 tempValue=gbReadMemory(HL.W); | |
484 AF.B.B0=(AF.B.B0&C_FLAG)|H_FLAG|(tempValue&(1<<0)? 0:Z_FLAG); | |
485 break; | |
486 case 0x47: | |
487 // BIT 0,A | |
488 AF.B.B0=(AF.B.B0&C_FLAG)|H_FLAG|(AF.B.B1&(1<<0)? 0:Z_FLAG); | |
489 break; | |
490 case 0x48: | |
491 // BIT 1,B | |
492 AF.B.B0=(AF.B.B0&C_FLAG)|H_FLAG|(BC.B.B1&(1<<1)? 0:Z_FLAG); | |
493 break; | |
494 case 0x49: | |
495 // BIT 1,C | |
496 AF.B.B0=(AF.B.B0&C_FLAG)|H_FLAG|(BC.B.B0&(1<<1)? 0:Z_FLAG); | |
497 break; | |
498 case 0x4a: | |
499 // BIT 1,D | |
500 AF.B.B0=(AF.B.B0&C_FLAG)|H_FLAG|(DE.B.B1&(1<<1)? 0:Z_FLAG); | |
501 break; | |
502 case 0x4b: | |
503 // BIT 1,E | |
504 AF.B.B0=(AF.B.B0&C_FLAG)|H_FLAG|(DE.B.B0&(1<<1)? 0:Z_FLAG); | |
505 break; | |
506 case 0x4c: | |
507 // BIT 1,H | |
508 AF.B.B0=(AF.B.B0&C_FLAG)|H_FLAG|(HL.B.B1&(1<<1)? 0:Z_FLAG); | |
509 break; | |
510 case 0x4d: | |
511 // BIT 1,L | |
512 AF.B.B0=(AF.B.B0&C_FLAG)|H_FLAG|(HL.B.B0&(1<<1)? 0:Z_FLAG); | |
513 break; | |
514 case 0x4e: | |
515 // BIT 1,(HL) | |
516 tempValue=gbReadMemory(HL.W); | |
517 AF.B.B0=(AF.B.B0&C_FLAG)|H_FLAG|(tempValue&(1<<1)? 0:Z_FLAG); | |
518 break; | |
519 case 0x4f: | |
520 // BIT 1,A | |
521 AF.B.B0=(AF.B.B0&C_FLAG)|H_FLAG|(AF.B.B1&(1<<1)? 0:Z_FLAG); | |
522 break; | |
523 case 0x50: | |
524 // BIT 2,B | |
525 AF.B.B0=(AF.B.B0&C_FLAG)|H_FLAG|(BC.B.B1&(1<<2)? 0:Z_FLAG); | |
526 break; | |
527 case 0x51: | |
528 // BIT 2,C | |
529 AF.B.B0=(AF.B.B0&C_FLAG)|H_FLAG|(BC.B.B0&(1<<2)? 0:Z_FLAG); | |
530 break; | |
531 case 0x52: | |
532 // BIT 2,D | |
533 AF.B.B0=(AF.B.B0&C_FLAG)|H_FLAG|(DE.B.B1&(1<<2)? 0:Z_FLAG); | |
534 break; | |
535 case 0x53: | |
536 // BIT 2,E | |
537 AF.B.B0=(AF.B.B0&C_FLAG)|H_FLAG|(DE.B.B0&(1<<2)? 0:Z_FLAG); | |
538 break; | |
539 case 0x54: | |
540 // BIT 2,H | |
541 AF.B.B0=(AF.B.B0&C_FLAG)|H_FLAG|(HL.B.B1&(1<<2)? 0:Z_FLAG); | |
542 break; | |
543 case 0x55: | |
544 // BIT 2,L | |
545 AF.B.B0=(AF.B.B0&C_FLAG)|H_FLAG|(HL.B.B0&(1<<2)? 0:Z_FLAG); | |
546 break; | |
547 case 0x56: | |
548 // BIT 2,(HL) | |
549 tempValue=gbReadMemory(HL.W); | |
550 AF.B.B0=(AF.B.B0&C_FLAG)|H_FLAG|(tempValue&(1<<2)? 0:Z_FLAG); | |
551 break; | |
552 case 0x57: | |
553 // BIT 2,A | |
554 AF.B.B0=(AF.B.B0&C_FLAG)|H_FLAG|(AF.B.B1&(1<<2)? 0:Z_FLAG); | |
555 break; | |
556 case 0x58: | |
557 // BIT 3,B | |
558 AF.B.B0=(AF.B.B0&C_FLAG)|H_FLAG|(BC.B.B1&(1<<3)? 0:Z_FLAG); | |
559 break; | |
560 case 0x59: | |
561 // BIT 3,C | |
562 AF.B.B0=(AF.B.B0&C_FLAG)|H_FLAG|(BC.B.B0&(1<<3)? 0:Z_FLAG); | |
563 break; | |
564 case 0x5a: | |
565 // BIT 3,D | |
566 AF.B.B0=(AF.B.B0&C_FLAG)|H_FLAG|(DE.B.B1&(1<<3)? 0:Z_FLAG); | |
567 break; | |
568 case 0x5b: | |
569 // BIT 3,E | |
570 AF.B.B0=(AF.B.B0&C_FLAG)|H_FLAG|(DE.B.B0&(1<<3)? 0:Z_FLAG); | |
571 break; | |
572 case 0x5c: | |
573 // BIT 3,H | |
574 AF.B.B0=(AF.B.B0&C_FLAG)|H_FLAG|(HL.B.B1&(1<<3)? 0:Z_FLAG); | |
575 break; | |
576 case 0x5d: | |
577 // BIT 3,L | |
578 AF.B.B0=(AF.B.B0&C_FLAG)|H_FLAG|(HL.B.B0&(1<<3)? 0:Z_FLAG); | |
579 break; | |
580 case 0x5e: | |
581 // BIT 3,(HL) | |
582 tempValue=gbReadMemory(HL.W); | |
583 AF.B.B0=(AF.B.B0&C_FLAG)|H_FLAG|(tempValue&(1<<3)? 0:Z_FLAG); | |
584 break; | |
585 case 0x5f: | |
586 // BIT 3,A | |
587 AF.B.B0=(AF.B.B0&C_FLAG)|H_FLAG|(AF.B.B1&(1<<3)? 0:Z_FLAG); | |
588 break; | |
589 case 0x60: | |
590 // BIT 4,B | |
591 AF.B.B0=(AF.B.B0&C_FLAG)|H_FLAG|(BC.B.B1&(1<<4)? 0:Z_FLAG); | |
592 break; | |
593 case 0x61: | |
594 // BIT 4,C | |
595 AF.B.B0=(AF.B.B0&C_FLAG)|H_FLAG|(BC.B.B0&(1<<4)? 0:Z_FLAG); | |
596 break; | |
597 case 0x62: | |
598 // BIT 4,D | |
599 AF.B.B0=(AF.B.B0&C_FLAG)|H_FLAG|(DE.B.B1&(1<<4)? 0:Z_FLAG); | |
600 break; | |
601 case 0x63: | |
602 // BIT 4,E | |
603 AF.B.B0=(AF.B.B0&C_FLAG)|H_FLAG|(DE.B.B0&(1<<4)? 0:Z_FLAG); | |
604 break; | |
605 case 0x64: | |
606 // BIT 4,H | |
607 AF.B.B0=(AF.B.B0&C_FLAG)|H_FLAG|(HL.B.B1&(1<<4)? 0:Z_FLAG); | |
608 break; | |
609 case 0x65: | |
610 // BIT 4,L | |
611 AF.B.B0=(AF.B.B0&C_FLAG)|H_FLAG|(HL.B.B0&(1<<4)? 0:Z_FLAG); | |
612 break; | |
613 case 0x66: | |
614 // BIT 4,(HL) | |
615 tempValue=gbReadMemory(HL.W); | |
616 AF.B.B0=(AF.B.B0&C_FLAG)|H_FLAG|(tempValue&(1<<4)? 0:Z_FLAG); | |
617 break; | |
618 case 0x67: | |
619 // BIT 4,A | |
620 AF.B.B0=(AF.B.B0&C_FLAG)|H_FLAG|(AF.B.B1&(1<<4)? 0:Z_FLAG); | |
621 break; | |
622 case 0x68: | |
623 // BIT 5,B | |
624 AF.B.B0=(AF.B.B0&C_FLAG)|H_FLAG|(BC.B.B1&(1<<5)? 0:Z_FLAG); | |
625 break; | |
626 case 0x69: | |
627 // BIT 5,C | |
628 AF.B.B0=(AF.B.B0&C_FLAG)|H_FLAG|(BC.B.B0&(1<<5)? 0:Z_FLAG); | |
629 break; | |
630 case 0x6a: | |
631 // BIT 5,D | |
632 AF.B.B0=(AF.B.B0&C_FLAG)|H_FLAG|(DE.B.B1&(1<<5)? 0:Z_FLAG); | |
633 break; | |
634 case 0x6b: | |
635 // BIT 5,E | |
636 AF.B.B0=(AF.B.B0&C_FLAG)|H_FLAG|(DE.B.B0&(1<<5)? 0:Z_FLAG); | |
637 break; | |
638 case 0x6c: | |
639 // BIT 5,H | |
640 AF.B.B0=(AF.B.B0&C_FLAG)|H_FLAG|(HL.B.B1&(1<<5)? 0:Z_FLAG); | |
641 break; | |
642 case 0x6d: | |
643 // BIT 5,L | |
644 AF.B.B0=(AF.B.B0&C_FLAG)|H_FLAG|(HL.B.B0&(1<<5)? 0:Z_FLAG); | |
645 break; | |
646 case 0x6e: | |
647 // BIT 5,(HL) | |
648 tempValue=gbReadMemory(HL.W); | |
649 AF.B.B0=(AF.B.B0&C_FLAG)|H_FLAG|(tempValue&(1<<5)? 0:Z_FLAG); | |
650 break; | |
651 case 0x6f: | |
652 // BIT 5,A | |
653 AF.B.B0=(AF.B.B0&C_FLAG)|H_FLAG|(AF.B.B1&(1<<5)? 0:Z_FLAG); | |
654 break; | |
655 case 0x70: | |
656 // BIT 6,B | |
657 AF.B.B0=(AF.B.B0&C_FLAG)|H_FLAG|(BC.B.B1&(1<<6)? 0:Z_FLAG); | |
658 break; | |
659 case 0x71: | |
660 // BIT 6,C | |
661 AF.B.B0=(AF.B.B0&C_FLAG)|H_FLAG|(BC.B.B0&(1<<6)? 0:Z_FLAG); | |
662 break; | |
663 case 0x72: | |
664 // BIT 6,D | |
665 AF.B.B0=(AF.B.B0&C_FLAG)|H_FLAG|(DE.B.B1&(1<<6)? 0:Z_FLAG); | |
666 break; | |
667 case 0x73: | |
668 // BIT 6,E | |
669 AF.B.B0=(AF.B.B0&C_FLAG)|H_FLAG|(DE.B.B0&(1<<6)? 0:Z_FLAG); | |
670 break; | |
671 case 0x74: | |
672 // BIT 6,H | |
673 AF.B.B0=(AF.B.B0&C_FLAG)|H_FLAG|(HL.B.B1&(1<<6)? 0:Z_FLAG); | |
674 break; | |
675 case 0x75: | |
676 // BIT 6,L | |
677 AF.B.B0=(AF.B.B0&C_FLAG)|H_FLAG|(HL.B.B0&(1<<6)? 0:Z_FLAG); | |
678 break; | |
679 case 0x76: | |
680 // BIT 6,(HL) | |
681 tempValue=gbReadMemory(HL.W); | |
682 AF.B.B0=(AF.B.B0&C_FLAG)|H_FLAG|(tempValue&(1<<6)? 0:Z_FLAG); | |
683 break; | |
684 case 0x77: | |
685 // BIT 6,A | |
686 AF.B.B0=(AF.B.B0&C_FLAG)|H_FLAG|(AF.B.B1&(1<<6)? 0:Z_FLAG); | |
687 break; | |
688 case 0x78: | |
689 // BIT 7,B | |
690 AF.B.B0=(AF.B.B0&C_FLAG)|H_FLAG|(BC.B.B1&(1<<7)? 0:Z_FLAG); | |
691 break; | |
692 case 0x79: | |
693 // BIT 7,C | |
694 AF.B.B0=(AF.B.B0&C_FLAG)|H_FLAG|(BC.B.B0&(1<<7)? 0:Z_FLAG); | |
695 break; | |
696 case 0x7a: | |
697 // BIT 7,D | |
698 AF.B.B0=(AF.B.B0&C_FLAG)|H_FLAG|(DE.B.B1&(1<<7)? 0:Z_FLAG); | |
699 break; | |
700 case 0x7b: | |
701 // BIT 7,E | |
702 AF.B.B0=(AF.B.B0&C_FLAG)|H_FLAG|(DE.B.B0&(1<<7)? 0:Z_FLAG); | |
703 break; | |
704 case 0x7c: | |
705 // BIT 7,H | |
706 AF.B.B0=(AF.B.B0&C_FLAG)|H_FLAG|(HL.B.B1&(1<<7)? 0:Z_FLAG); | |
707 break; | |
708 case 0x7d: | |
709 // BIT 7,L | |
710 AF.B.B0=(AF.B.B0&C_FLAG)|H_FLAG|(HL.B.B0&(1<<7)? 0:Z_FLAG); | |
711 break; | |
712 case 0x7e: | |
713 // BIT 7,(HL) | |
714 tempValue=gbReadMemory(HL.W); | |
715 AF.B.B0=(AF.B.B0&C_FLAG)|H_FLAG|(tempValue&(1<<7)? 0:Z_FLAG); | |
716 break; | |
717 case 0x7f: | |
718 // BIT 7,A | |
719 AF.B.B0=(AF.B.B0&C_FLAG)|H_FLAG|(AF.B.B1&(1<<7)? 0:Z_FLAG); | |
720 break; | |
721 case 0x80: | |
722 // RES 0,B | |
723 BC.B.B1&=~(1<<0); | |
724 break; | |
725 case 0x81: | |
726 // RES 0,C | |
727 BC.B.B0&=~(1<<0); | |
728 break; | |
729 case 0x82: | |
730 // RES 0,D | |
731 DE.B.B1&=~(1<<0); | |
732 break; | |
733 case 0x83: | |
734 // RES 0,E | |
735 DE.B.B0&=~(1<<0); | |
736 break; | |
737 case 0x84: | |
738 // RES 0,H | |
739 HL.B.B1&=~(1<<0); | |
740 break; | |
741 case 0x85: | |
742 // RES 0,L | |
743 HL.B.B0&=~(1<<0); | |
744 break; | |
745 case 0x86: | |
746 // RES 0,(HL) | |
747 tempValue=gbReadMemory(HL.W); | |
748 tempValue&=~(1<<0); | |
749 gbWriteMemory(HL.W,tempValue); | |
750 break; | |
751 case 0x87: | |
752 // RES 0,A | |
753 AF.B.B1&=~(1<<0); | |
754 break; | |
755 case 0x88: | |
756 // RES 1,B | |
757 BC.B.B1&=~(1<<1); | |
758 break; | |
759 case 0x89: | |
760 // RES 1,C | |
761 BC.B.B0&=~(1<<1); | |
762 break; | |
763 case 0x8a: | |
764 // RES 1,D | |
765 DE.B.B1&=~(1<<1); | |
766 break; | |
767 case 0x8b: | |
768 // RES 1,E | |
769 DE.B.B0&=~(1<<1); | |
770 break; | |
771 case 0x8c: | |
772 // RES 1,H | |
773 HL.B.B1&=~(1<<1); | |
774 break; | |
775 case 0x8d: | |
776 // RES 1,L | |
777 HL.B.B0&=~(1<<1); | |
778 break; | |
779 case 0x8e: | |
780 // RES 1,(HL) | |
781 tempValue=gbReadMemory(HL.W); | |
782 tempValue&=~(1<<1); | |
783 gbWriteMemory(HL.W,tempValue); | |
784 break; | |
785 case 0x8f: | |
786 // RES 1,A | |
787 AF.B.B1&=~(1<<1); | |
788 break; | |
789 case 0x90: | |
790 // RES 2,B | |
791 BC.B.B1&=~(1<<2); | |
792 break; | |
793 case 0x91: | |
794 // RES 2,C | |
795 BC.B.B0&=~(1<<2); | |
796 break; | |
797 case 0x92: | |
798 // RES 2,D | |
799 DE.B.B1&=~(1<<2); | |
800 break; | |
801 case 0x93: | |
802 // RES 2,E | |
803 DE.B.B0&=~(1<<2); | |
804 break; | |
805 case 0x94: | |
806 // RES 2,H | |
807 HL.B.B1&=~(1<<2); | |
808 break; | |
809 case 0x95: | |
810 // RES 2,L | |
811 HL.B.B0&=~(1<<2); | |
812 break; | |
813 case 0x96: | |
814 // RES 2,(HL) | |
815 tempValue=gbReadMemory(HL.W); | |
816 tempValue&=~(1<<2); | |
817 gbWriteMemory(HL.W,tempValue); | |
818 break; | |
819 case 0x97: | |
820 // RES 2,A | |
821 AF.B.B1&=~(1<<2); | |
822 break; | |
823 case 0x98: | |
824 // RES 3,B | |
825 BC.B.B1&=~(1<<3); | |
826 break; | |
827 case 0x99: | |
828 // RES 3,C | |
829 BC.B.B0&=~(1<<3); | |
830 break; | |
831 case 0x9a: | |
832 // RES 3,D | |
833 DE.B.B1&=~(1<<3); | |
834 break; | |
835 case 0x9b: | |
836 // RES 3,E | |
837 DE.B.B0&=~(1<<3); | |
838 break; | |
839 case 0x9c: | |
840 // RES 3,H | |
841 HL.B.B1&=~(1<<3); | |
842 break; | |
843 case 0x9d: | |
844 // RES 3,L | |
845 HL.B.B0&=~(1<<3); | |
846 break; | |
847 case 0x9e: | |
848 // RES 3,(HL) | |
849 tempValue=gbReadMemory(HL.W); | |
850 tempValue&=~(1<<3); | |
851 gbWriteMemory(HL.W,tempValue); | |
852 break; | |
853 case 0x9f: | |
854 // RES 3,A | |
855 AF.B.B1&=~(1<<3); | |
856 break; | |
857 case 0xa0: | |
858 // RES 4,B | |
859 BC.B.B1&=~(1<<4); | |
860 break; | |
861 case 0xa1: | |
862 // RES 4,C | |
863 BC.B.B0&=~(1<<4); | |
864 break; | |
865 case 0xa2: | |
866 // RES 4,D | |
867 DE.B.B1&=~(1<<4); | |
868 break; | |
869 case 0xa3: | |
870 // RES 4,E | |
871 DE.B.B0&=~(1<<4); | |
872 break; | |
873 case 0xa4: | |
874 // RES 4,H | |
875 HL.B.B1&=~(1<<4); | |
876 break; | |
877 case 0xa5: | |
878 // RES 4,L | |
879 HL.B.B0&=~(1<<4); | |
880 break; | |
881 case 0xa6: | |
882 // RES 4,(HL) | |
883 tempValue=gbReadMemory(HL.W); | |
884 tempValue&=~(1<<4); | |
885 gbWriteMemory(HL.W,tempValue); | |
886 break; | |
887 case 0xa7: | |
888 // RES 4,A | |
889 AF.B.B1&=~(1<<4); | |
890 break; | |
891 case 0xa8: | |
892 // RES 5,B | |
893 BC.B.B1&=~(1<<5); | |
894 break; | |
895 case 0xa9: | |
896 // RES 5,C | |
897 BC.B.B0&=~(1<<5); | |
898 break; | |
899 case 0xaa: | |
900 // RES 5,D | |
901 DE.B.B1&=~(1<<5); | |
902 break; | |
903 case 0xab: | |
904 // RES 5,E | |
905 DE.B.B0&=~(1<<5); | |
906 break; | |
907 case 0xac: | |
908 // RES 5,H | |
909 HL.B.B1&=~(1<<5); | |
910 break; | |
911 case 0xad: | |
912 // RES 5,L | |
913 HL.B.B0&=~(1<<5); | |
914 break; | |
915 case 0xae: | |
916 // RES 5,(HL) | |
917 tempValue=gbReadMemory(HL.W); | |
918 tempValue&=~(1<<5); | |
919 gbWriteMemory(HL.W,tempValue); | |
920 break; | |
921 case 0xaf: | |
922 // RES 5,A | |
923 AF.B.B1&=~(1<<5); | |
924 break; | |
925 case 0xb0: | |
926 // RES 6,B | |
927 BC.B.B1&=~(1<<6); | |
928 break; | |
929 case 0xb1: | |
930 // RES 6,C | |
931 BC.B.B0&=~(1<<6); | |
932 break; | |
933 case 0xb2: | |
934 // RES 6,D | |
935 DE.B.B1&=~(1<<6); | |
936 break; | |
937 case 0xb3: | |
938 // RES 6,E | |
939 DE.B.B0&=~(1<<6); | |
940 break; | |
941 case 0xb4: | |
942 // RES 6,H | |
943 HL.B.B1&=~(1<<6); | |
944 break; | |
945 case 0xb5: | |
946 // RES 6,L | |
947 HL.B.B0&=~(1<<6); | |
948 break; | |
949 case 0xb6: | |
950 // RES 6,(HL) | |
951 tempValue=gbReadMemory(HL.W); | |
952 tempValue&=~(1<<6); | |
953 gbWriteMemory(HL.W,tempValue); | |
954 break; | |
955 case 0xb7: | |
956 // RES 6,A | |
957 AF.B.B1&=~(1<<6); | |
958 break; | |
959 case 0xb8: | |
960 // RES 7,B | |
961 BC.B.B1&=~(1<<7); | |
962 break; | |
963 case 0xb9: | |
964 // RES 7,C | |
965 BC.B.B0&=~(1<<7); | |
966 break; | |
967 case 0xba: | |
968 // RES 7,D | |
969 DE.B.B1&=~(1<<7); | |
970 break; | |
971 case 0xbb: | |
972 // RES 7,E | |
973 DE.B.B0&=~(1<<7); | |
974 break; | |
975 case 0xbc: | |
976 // RES 7,H | |
977 HL.B.B1&=~(1<<7); | |
978 break; | |
979 case 0xbd: | |
980 // RES 7,L | |
981 HL.B.B0&=~(1<<7); | |
982 break; | |
983 case 0xbe: | |
984 // RES 7,(HL) | |
985 tempValue=gbReadMemory(HL.W); | |
986 tempValue&=~(1<<7); | |
987 gbWriteMemory(HL.W,tempValue); | |
988 break; | |
989 case 0xbf: | |
990 // RES 7,A | |
991 AF.B.B1&=~(1<<7); | |
992 break; | |
993 case 0xc0: | |
994 // SET 0,B | |
995 BC.B.B1|=1<<0; | |
996 break; | |
997 case 0xc1: | |
998 // SET 0,C | |
999 BC.B.B0|=1<<0; | |
1000 break; | |
1001 case 0xc2: | |
1002 // SET 0,D | |
1003 DE.B.B1|=1<<0; | |
1004 break; | |
1005 case 0xc3: | |
1006 // SET 0,E | |
1007 DE.B.B0|=1<<0; | |
1008 break; | |
1009 case 0xc4: | |
1010 // SET 0,H | |
1011 HL.B.B1|=1<<0; | |
1012 break; | |
1013 case 0xc5: | |
1014 // SET 0,L | |
1015 HL.B.B0|=1<<0; | |
1016 break; | |
1017 case 0xc6: | |
1018 // SET 0,(HL) | |
1019 tempValue=gbReadMemory(HL.W); | |
1020 tempValue|=1<<0; | |
1021 gbWriteMemory(HL.W,tempValue); | |
1022 break; | |
1023 case 0xc7: | |
1024 // SET 0,A | |
1025 AF.B.B1|=1<<0; | |
1026 break; | |
1027 case 0xc8: | |
1028 // SET 1,B | |
1029 BC.B.B1|=1<<1; | |
1030 break; | |
1031 case 0xc9: | |
1032 // SET 1,C | |
1033 BC.B.B0|=1<<1; | |
1034 break; | |
1035 case 0xca: | |
1036 // SET 1,D | |
1037 DE.B.B1|=1<<1; | |
1038 break; | |
1039 case 0xcb: | |
1040 // SET 1,E | |
1041 DE.B.B0|=1<<1; | |
1042 break; | |
1043 case 0xcc: | |
1044 // SET 1,H | |
1045 HL.B.B1|=1<<1; | |
1046 break; | |
1047 case 0xcd: | |
1048 // SET 1,L | |
1049 HL.B.B0|=1<<1; | |
1050 break; | |
1051 case 0xce: | |
1052 // SET 1,(HL) | |
1053 tempValue=gbReadMemory(HL.W); | |
1054 tempValue|=1<<1; | |
1055 gbWriteMemory(HL.W,tempValue); | |
1056 break; | |
1057 case 0xcf: | |
1058 // SET 1,A | |
1059 AF.B.B1|=1<<1; | |
1060 break; | |
1061 case 0xd0: | |
1062 // SET 2,B | |
1063 BC.B.B1|=1<<2; | |
1064 break; | |
1065 case 0xd1: | |
1066 // SET 2,C | |
1067 BC.B.B0|=1<<2; | |
1068 break; | |
1069 case 0xd2: | |
1070 // SET 2,D | |
1071 DE.B.B1|=1<<2; | |
1072 break; | |
1073 case 0xd3: | |
1074 // SET 2,E | |
1075 DE.B.B0|=1<<2; | |
1076 break; | |
1077 case 0xd4: | |
1078 // SET 2,H | |
1079 HL.B.B1|=1<<2; | |
1080 break; | |
1081 case 0xd5: | |
1082 // SET 2,L | |
1083 HL.B.B0|=1<<2; | |
1084 break; | |
1085 case 0xd6: | |
1086 // SET 2,(HL) | |
1087 tempValue=gbReadMemory(HL.W); | |
1088 tempValue|=1<<2; | |
1089 gbWriteMemory(HL.W,tempValue); | |
1090 break; | |
1091 case 0xd7: | |
1092 // SET 2,A | |
1093 AF.B.B1|=1<<2; | |
1094 break; | |
1095 case 0xd8: | |
1096 // SET 3,B | |
1097 BC.B.B1|=1<<3; | |
1098 break; | |
1099 case 0xd9: | |
1100 // SET 3,C | |
1101 BC.B.B0|=1<<3; | |
1102 break; | |
1103 case 0xda: | |
1104 // SET 3,D | |
1105 DE.B.B1|=1<<3; | |
1106 break; | |
1107 case 0xdb: | |
1108 // SET 3,E | |
1109 DE.B.B0|=1<<3; | |
1110 break; | |
1111 case 0xdc: | |
1112 // SET 3,H | |
1113 HL.B.B1|=1<<3; | |
1114 break; | |
1115 case 0xdd: | |
1116 // SET 3,L | |
1117 HL.B.B0|=1<<3; | |
1118 break; | |
1119 case 0xde: | |
1120 // SET 3,(HL) | |
1121 tempValue=gbReadMemory(HL.W); | |
1122 tempValue|=1<<3; | |
1123 gbWriteMemory(HL.W,tempValue); | |
1124 break; | |
1125 case 0xdf: | |
1126 // SET 3,A | |
1127 AF.B.B1|=1<<3; | |
1128 break; | |
1129 case 0xe0: | |
1130 // SET 4,B | |
1131 BC.B.B1|=1<<4; | |
1132 break; | |
1133 case 0xe1: | |
1134 // SET 4,C | |
1135 BC.B.B0|=1<<4; | |
1136 break; | |
1137 case 0xe2: | |
1138 // SET 4,D | |
1139 DE.B.B1|=1<<4; | |
1140 break; | |
1141 case 0xe3: | |
1142 // SET 4,E | |
1143 DE.B.B0|=1<<4; | |
1144 break; | |
1145 case 0xe4: | |
1146 // SET 4,H | |
1147 HL.B.B1|=1<<4; | |
1148 break; | |
1149 case 0xe5: | |
1150 // SET 4,L | |
1151 HL.B.B0|=1<<4; | |
1152 break; | |
1153 case 0xe6: | |
1154 // SET 4,(HL) | |
1155 tempValue=gbReadMemory(HL.W); | |
1156 tempValue|=1<<4; | |
1157 gbWriteMemory(HL.W,tempValue); | |
1158 break; | |
1159 case 0xe7: | |
1160 // SET 4,A | |
1161 AF.B.B1|=1<<4; | |
1162 break; | |
1163 case 0xe8: | |
1164 // SET 5,B | |
1165 BC.B.B1|=1<<5; | |
1166 break; | |
1167 case 0xe9: | |
1168 // SET 5,C | |
1169 BC.B.B0|=1<<5; | |
1170 break; | |
1171 case 0xea: | |
1172 // SET 5,D | |
1173 DE.B.B1|=1<<5; | |
1174 break; | |
1175 case 0xeb: | |
1176 // SET 5,E | |
1177 DE.B.B0|=1<<5; | |
1178 break; | |
1179 case 0xec: | |
1180 // SET 5,H | |
1181 HL.B.B1|=1<<5; | |
1182 break; | |
1183 case 0xed: | |
1184 // SET 5,L | |
1185 HL.B.B0|=1<<5; | |
1186 break; | |
1187 case 0xee: | |
1188 // SET 5,(HL) | |
1189 tempValue=gbReadMemory(HL.W); | |
1190 tempValue|=1<<5; | |
1191 gbWriteMemory(HL.W,tempValue); | |
1192 break; | |
1193 case 0xef: | |
1194 // SET 5,A | |
1195 AF.B.B1|=1<<5; | |
1196 break; | |
1197 case 0xf0: | |
1198 // SET 6,B | |
1199 BC.B.B1|=1<<6; | |
1200 break; | |
1201 case 0xf1: | |
1202 // SET 6,C | |
1203 BC.B.B0|=1<<6; | |
1204 break; | |
1205 case 0xf2: | |
1206 // SET 6,D | |
1207 DE.B.B1|=1<<6; | |
1208 break; | |
1209 case 0xf3: | |
1210 // SET 6,E | |
1211 DE.B.B0|=1<<6; | |
1212 break; | |
1213 case 0xf4: | |
1214 // SET 6,H | |
1215 HL.B.B1|=1<<6; | |
1216 break; | |
1217 case 0xf5: | |
1218 // SET 6,L | |
1219 HL.B.B0|=1<<6; | |
1220 break; | |
1221 case 0xf6: | |
1222 // SET 6,(HL) | |
1223 tempValue=gbReadMemory(HL.W); | |
1224 tempValue|=1<<6; | |
1225 gbWriteMemory(HL.W,tempValue); | |
1226 break; | |
1227 case 0xf7: | |
1228 // SET 6,A | |
1229 AF.B.B1|=1<<6; | |
1230 break; | |
1231 case 0xf8: | |
1232 // SET 7,B | |
1233 BC.B.B1|=1<<7; | |
1234 break; | |
1235 case 0xf9: | |
1236 // SET 7,C | |
1237 BC.B.B0|=1<<7; | |
1238 break; | |
1239 case 0xfa: | |
1240 // SET 7,D | |
1241 DE.B.B1|=1<<7; | |
1242 break; | |
1243 case 0xfb: | |
1244 // SET 7,E | |
1245 DE.B.B0|=1<<7; | |
1246 break; | |
1247 case 0xfc: | |
1248 // SET 7,H | |
1249 HL.B.B1|=1<<7; | |
1250 break; | |
1251 case 0xfd: | |
1252 // SET 7,L | |
1253 HL.B.B0|=1<<7; | |
1254 break; | |
1255 case 0xfe: | |
1256 // SET 7,(HL) | |
1257 tempValue=gbReadMemory(HL.W); | |
1258 tempValue|=1<<7; | |
1259 gbWriteMemory(HL.W,tempValue); | |
1260 break; | |
1261 case 0xff: | |
1262 // SET 7,A | |
1263 AF.B.B1|=1<<7; | |
1264 break; | |
1265 default: | |
1266 systemMessage(0, N_("Unknown opcode %02x at %04x"), | |
1267 gbReadOpcode(PC.W-1),PC.W-1); | |
1268 emulating = false; | |
1269 return; |