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