/[VRac]/Z80/src/CodesXX.h
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Contents of /Z80/src/CodesXX.h

Parent Directory Parent Directory | Revision Log Revision Log


Revision 111 - (show annotations)
Fri Aug 3 12:50:08 2007 UTC (16 years, 8 months ago) by dpavlin
File MIME type: text/plain
File size: 15042 byte(s)
import upstream Z80-010807
1 /** Z80: portable Z80 emulator *******************************/
2 /** **/
3 /** CodesXX.h **/
4 /** **/
5 /** This file contains implementation for FD/DD tables of **/
6 /** Z80 commands. It is included from Z80.c. **/
7 /** **/
8 /** Copyright (C) Marat Fayzullin 1994-2007 **/
9 /** You are not allowed to distribute this software **/
10 /** commercially. Please, notify me, if you make any **/
11 /** changes to this file. **/
12 /*************************************************************/
13
14 case JR_NZ: if(R->AF.B.l&Z_FLAG) R->PC.W++; else { R->ICount-=5;M_JR; } break;
15 case JR_NC: if(R->AF.B.l&C_FLAG) R->PC.W++; else { R->ICount-=5;M_JR; } break;
16 case JR_Z: if(R->AF.B.l&Z_FLAG) { R->ICount-=5;M_JR; } else R->PC.W++; break;
17 case JR_C: if(R->AF.B.l&C_FLAG) { R->ICount-=5;M_JR; } else R->PC.W++; break;
18
19 case JP_NZ: if(R->AF.B.l&Z_FLAG) R->PC.W+=2; else { M_JP; } break;
20 case JP_NC: if(R->AF.B.l&C_FLAG) R->PC.W+=2; else { M_JP; } break;
21 case JP_PO: if(R->AF.B.l&P_FLAG) R->PC.W+=2; else { M_JP; } break;
22 case JP_P: if(R->AF.B.l&S_FLAG) R->PC.W+=2; else { M_JP; } break;
23 case JP_Z: if(R->AF.B.l&Z_FLAG) { M_JP; } else R->PC.W+=2; break;
24 case JP_C: if(R->AF.B.l&C_FLAG) { M_JP; } else R->PC.W+=2; break;
25 case JP_PE: if(R->AF.B.l&P_FLAG) { M_JP; } else R->PC.W+=2; break;
26 case JP_M: if(R->AF.B.l&S_FLAG) { M_JP; } else R->PC.W+=2; break;
27
28 case RET_NZ: if(!(R->AF.B.l&Z_FLAG)) { R->ICount-=6;M_RET; } break;
29 case RET_NC: if(!(R->AF.B.l&C_FLAG)) { R->ICount-=6;M_RET; } break;
30 case RET_PO: if(!(R->AF.B.l&P_FLAG)) { R->ICount-=6;M_RET; } break;
31 case RET_P: if(!(R->AF.B.l&S_FLAG)) { R->ICount-=6;M_RET; } break;
32 case RET_Z: if(R->AF.B.l&Z_FLAG) { R->ICount-=6;M_RET; } break;
33 case RET_C: if(R->AF.B.l&C_FLAG) { R->ICount-=6;M_RET; } break;
34 case RET_PE: if(R->AF.B.l&P_FLAG) { R->ICount-=6;M_RET; } break;
35 case RET_M: if(R->AF.B.l&S_FLAG) { R->ICount-=6;M_RET; } break;
36
37 case CALL_NZ: if(R->AF.B.l&Z_FLAG) R->PC.W+=2; else { R->ICount-=7;M_CALL; } break;
38 case CALL_NC: if(R->AF.B.l&C_FLAG) R->PC.W+=2; else { R->ICount-=7;M_CALL; } break;
39 case CALL_PO: if(R->AF.B.l&P_FLAG) R->PC.W+=2; else { R->ICount-=7;M_CALL; } break;
40 case CALL_P: if(R->AF.B.l&S_FLAG) R->PC.W+=2; else { R->ICount-=7;M_CALL; } break;
41 case CALL_Z: if(R->AF.B.l&Z_FLAG) { R->ICount-=7;M_CALL; } else R->PC.W+=2; break;
42 case CALL_C: if(R->AF.B.l&C_FLAG) { R->ICount-=7;M_CALL; } else R->PC.W+=2; break;
43 case CALL_PE: if(R->AF.B.l&P_FLAG) { R->ICount-=7;M_CALL; } else R->PC.W+=2; break;
44 case CALL_M: if(R->AF.B.l&S_FLAG) { R->ICount-=7;M_CALL; } else R->PC.W+=2; break;
45
46 case ADD_B: M_ADD(R->BC.B.h);break;
47 case ADD_C: M_ADD(R->BC.B.l);break;
48 case ADD_D: M_ADD(R->DE.B.h);break;
49 case ADD_E: M_ADD(R->DE.B.l);break;
50 case ADD_H: M_ADD(R->XX.B.h);break;
51 case ADD_L: M_ADD(R->XX.B.l);break;
52 case ADD_A: M_ADD(R->AF.B.h);break;
53 case ADD_xHL: I=RdZ80(R->XX.W+(offset)RdZ80(R->PC.W++));
54 M_ADD(I);break;
55 case ADD_BYTE: I=RdZ80(R->PC.W++);M_ADD(I);break;
56
57 case SUB_B: M_SUB(R->BC.B.h);break;
58 case SUB_C: M_SUB(R->BC.B.l);break;
59 case SUB_D: M_SUB(R->DE.B.h);break;
60 case SUB_E: M_SUB(R->DE.B.l);break;
61 case SUB_H: M_SUB(R->XX.B.h);break;
62 case SUB_L: M_SUB(R->XX.B.l);break;
63 case SUB_A: R->AF.B.h=0;R->AF.B.l=N_FLAG|Z_FLAG;break;
64 case SUB_xHL: I=RdZ80(R->XX.W+(offset)RdZ80(R->PC.W++));
65 M_SUB(I);break;
66 case SUB_BYTE: I=RdZ80(R->PC.W++);M_SUB(I);break;
67
68 case AND_B: M_AND(R->BC.B.h);break;
69 case AND_C: M_AND(R->BC.B.l);break;
70 case AND_D: M_AND(R->DE.B.h);break;
71 case AND_E: M_AND(R->DE.B.l);break;
72 case AND_H: M_AND(R->XX.B.h);break;
73 case AND_L: M_AND(R->XX.B.l);break;
74 case AND_A: M_AND(R->AF.B.h);break;
75 case AND_xHL: I=RdZ80(R->XX.W+(offset)RdZ80(R->PC.W++));
76 M_AND(I);break;
77 case AND_BYTE: I=RdZ80(R->PC.W++);M_AND(I);break;
78
79 case OR_B: M_OR(R->BC.B.h);break;
80 case OR_C: M_OR(R->BC.B.l);break;
81 case OR_D: M_OR(R->DE.B.h);break;
82 case OR_E: M_OR(R->DE.B.l);break;
83 case OR_H: M_OR(R->XX.B.h);break;
84 case OR_L: M_OR(R->XX.B.l);break;
85 case OR_A: M_OR(R->AF.B.h);break;
86 case OR_xHL: I=RdZ80(R->XX.W+(offset)RdZ80(R->PC.W++));
87 M_OR(I);break;
88 case OR_BYTE: I=RdZ80(R->PC.W++);M_OR(I);break;
89
90 case ADC_B: M_ADC(R->BC.B.h);break;
91 case ADC_C: M_ADC(R->BC.B.l);break;
92 case ADC_D: M_ADC(R->DE.B.h);break;
93 case ADC_E: M_ADC(R->DE.B.l);break;
94 case ADC_H: M_ADC(R->XX.B.h);break;
95 case ADC_L: M_ADC(R->XX.B.l);break;
96 case ADC_A: M_ADC(R->AF.B.h);break;
97 case ADC_xHL: I=RdZ80(R->XX.W+(offset)RdZ80(R->PC.W++));
98 M_ADC(I);break;
99 case ADC_BYTE: I=RdZ80(R->PC.W++);M_ADC(I);break;
100
101 case SBC_B: M_SBC(R->BC.B.h);break;
102 case SBC_C: M_SBC(R->BC.B.l);break;
103 case SBC_D: M_SBC(R->DE.B.h);break;
104 case SBC_E: M_SBC(R->DE.B.l);break;
105 case SBC_H: M_SBC(R->XX.B.h);break;
106 case SBC_L: M_SBC(R->XX.B.l);break;
107 case SBC_A: M_SBC(R->AF.B.h);break;
108 case SBC_xHL: I=RdZ80(R->XX.W+(offset)RdZ80(R->PC.W++));
109 M_SBC(I);break;
110 case SBC_BYTE: I=RdZ80(R->PC.W++);M_SBC(I);break;
111
112 case XOR_B: M_XOR(R->BC.B.h);break;
113 case XOR_C: M_XOR(R->BC.B.l);break;
114 case XOR_D: M_XOR(R->DE.B.h);break;
115 case XOR_E: M_XOR(R->DE.B.l);break;
116 case XOR_H: M_XOR(R->XX.B.h);break;
117 case XOR_L: M_XOR(R->XX.B.l);break;
118 case XOR_A: R->AF.B.h=0;R->AF.B.l=P_FLAG|Z_FLAG;break;
119 case XOR_xHL: I=RdZ80(R->XX.W+(offset)RdZ80(R->PC.W++));
120 M_XOR(I);break;
121 case XOR_BYTE: I=RdZ80(R->PC.W++);M_XOR(I);break;
122
123 case CP_B: M_CP(R->BC.B.h);break;
124 case CP_C: M_CP(R->BC.B.l);break;
125 case CP_D: M_CP(R->DE.B.h);break;
126 case CP_E: M_CP(R->DE.B.l);break;
127 case CP_H: M_CP(R->XX.B.h);break;
128 case CP_L: M_CP(R->XX.B.l);break;
129 case CP_A: R->AF.B.l=N_FLAG|Z_FLAG;break;
130 case CP_xHL: I=RdZ80(R->XX.W+(offset)RdZ80(R->PC.W++));
131 M_CP(I);break;
132 case CP_BYTE: I=RdZ80(R->PC.W++);M_CP(I);break;
133
134 case LD_BC_WORD: M_LDWORD(BC);break;
135 case LD_DE_WORD: M_LDWORD(DE);break;
136 case LD_HL_WORD: M_LDWORD(XX);break;
137 case LD_SP_WORD: M_LDWORD(SP);break;
138
139 case LD_PC_HL: R->PC.W=R->XX.W;JumpZ80(R->PC.W);break;
140 case LD_SP_HL: R->SP.W=R->XX.W;break;
141 case LD_A_xBC: R->AF.B.h=RdZ80(R->BC.W);break;
142 case LD_A_xDE: R->AF.B.h=RdZ80(R->DE.W);break;
143
144 case ADD_HL_BC: M_ADDW(XX,BC);break;
145 case ADD_HL_DE: M_ADDW(XX,DE);break;
146 case ADD_HL_HL: M_ADDW(XX,XX);break;
147 case ADD_HL_SP: M_ADDW(XX,SP);break;
148
149 case DEC_BC: R->BC.W--;break;
150 case DEC_DE: R->DE.W--;break;
151 case DEC_HL: R->XX.W--;break;
152 case DEC_SP: R->SP.W--;break;
153
154 case INC_BC: R->BC.W++;break;
155 case INC_DE: R->DE.W++;break;
156 case INC_HL: R->XX.W++;break;
157 case INC_SP: R->SP.W++;break;
158
159 case DEC_B: M_DEC(R->BC.B.h);break;
160 case DEC_C: M_DEC(R->BC.B.l);break;
161 case DEC_D: M_DEC(R->DE.B.h);break;
162 case DEC_E: M_DEC(R->DE.B.l);break;
163 case DEC_H: M_DEC(R->XX.B.h);break;
164 case DEC_L: M_DEC(R->XX.B.l);break;
165 case DEC_A: M_DEC(R->AF.B.h);break;
166 case DEC_xHL: I=RdZ80(R->XX.W+(offset)RdZ80(R->PC.W));M_DEC(I);
167 WrZ80(R->XX.W+(offset)RdZ80(R->PC.W++),I);
168 break;
169
170 case INC_B: M_INC(R->BC.B.h);break;
171 case INC_C: M_INC(R->BC.B.l);break;
172 case INC_D: M_INC(R->DE.B.h);break;
173 case INC_E: M_INC(R->DE.B.l);break;
174 case INC_H: M_INC(R->XX.B.h);break;
175 case INC_L: M_INC(R->XX.B.l);break;
176 case INC_A: M_INC(R->AF.B.h);break;
177 case INC_xHL: I=RdZ80(R->XX.W+(offset)RdZ80(R->PC.W));M_INC(I);
178 WrZ80(R->XX.W+(offset)RdZ80(R->PC.W++),I);
179 break;
180
181 case RLCA:
182 I=(R->AF.B.h&0x80? C_FLAG:0);
183 R->AF.B.h=(R->AF.B.h<<1)|I;
184 R->AF.B.l=(R->AF.B.l&~(C_FLAG|N_FLAG|H_FLAG))|I;
185 break;
186 case RLA:
187 I=(R->AF.B.h&0x80? C_FLAG:0);
188 R->AF.B.h=(R->AF.B.h<<1)|(R->AF.B.l&C_FLAG);
189 R->AF.B.l=(R->AF.B.l&~(C_FLAG|N_FLAG|H_FLAG))|I;
190 break;
191 case RRCA:
192 I=R->AF.B.h&0x01;
193 R->AF.B.h=(R->AF.B.h>>1)|(I? 0x80:0);
194 R->AF.B.l=(R->AF.B.l&~(C_FLAG|N_FLAG|H_FLAG))|I;
195 break;
196 case RRA:
197 I=R->AF.B.h&0x01;
198 R->AF.B.h=(R->AF.B.h>>1)|(R->AF.B.l&C_FLAG? 0x80:0);
199 R->AF.B.l=(R->AF.B.l&~(C_FLAG|N_FLAG|H_FLAG))|I;
200 break;
201
202 case RST00: M_RST(0x0000);break;
203 case RST08: M_RST(0x0008);break;
204 case RST10: M_RST(0x0010);break;
205 case RST18: M_RST(0x0018);break;
206 case RST20: M_RST(0x0020);break;
207 case RST28: M_RST(0x0028);break;
208 case RST30: M_RST(0x0030);break;
209 case RST38: M_RST(0x0038);break;
210
211 case PUSH_BC: M_PUSH(BC);break;
212 case PUSH_DE: M_PUSH(DE);break;
213 case PUSH_HL: M_PUSH(XX);break;
214 case PUSH_AF: M_PUSH(AF);break;
215
216 case POP_BC: M_POP(BC);break;
217 case POP_DE: M_POP(DE);break;
218 case POP_HL: M_POP(XX);break;
219 case POP_AF: M_POP(AF);break;
220
221 case DJNZ: if(--R->BC.B.h) { R->ICount-=5;M_JR; } else R->PC.W++;break;
222 case JP: M_JP;break;
223 case JR: M_JR;break;
224 case CALL: M_CALL;break;
225 case RET: M_RET;break;
226 case SCF: S(C_FLAG);R(N_FLAG|H_FLAG);break;
227 case CPL: R->AF.B.h=~R->AF.B.h;S(N_FLAG|H_FLAG);break;
228 case NOP: break;
229 case OUTA: I=RdZ80(R->PC.W++);OutZ80(I|(R->AF.W&0xFF00),R->AF.B.h);break;
230 case INA: I=RdZ80(R->PC.W++);R->AF.B.h=InZ80(I|(R->AF.W&0xFF00));break;
231
232 case HALT:
233 R->PC.W--;
234 R->IFF|=IFF_HALT;
235 R->IBackup=0;
236 R->ICount=0;
237 break;
238
239 case DI:
240 if(R->IFF&IFF_EI) R->ICount+=R->IBackup-1;
241 R->IFF&=~(IFF_1|IFF_2|IFF_EI);
242 break;
243
244 case EI:
245 if(!(R->IFF&(IFF_1|IFF_EI)))
246 {
247 R->IFF|=IFF_2|IFF_EI;
248 R->IBackup=R->ICount;
249 R->ICount=1;
250 }
251 break;
252
253 case CCF:
254 R->AF.B.l^=C_FLAG;R(N_FLAG|H_FLAG);
255 R->AF.B.l|=R->AF.B.l&C_FLAG? 0:H_FLAG;
256 break;
257
258 case EXX:
259 J.W=R->BC.W;R->BC.W=R->BC1.W;R->BC1.W=J.W;
260 J.W=R->DE.W;R->DE.W=R->DE1.W;R->DE1.W=J.W;
261 J.W=R->HL.W;R->HL.W=R->HL1.W;R->HL1.W=J.W;
262 break;
263
264 case EX_DE_HL: J.W=R->DE.W;R->DE.W=R->HL.W;R->HL.W=J.W;break;
265 case EX_AF_AF: J.W=R->AF.W;R->AF.W=R->AF1.W;R->AF1.W=J.W;break;
266
267 case LD_B_B: R->BC.B.h=R->BC.B.h;break;
268 case LD_C_B: R->BC.B.l=R->BC.B.h;break;
269 case LD_D_B: R->DE.B.h=R->BC.B.h;break;
270 case LD_E_B: R->DE.B.l=R->BC.B.h;break;
271 case LD_H_B: R->XX.B.h=R->BC.B.h;break;
272 case LD_L_B: R->XX.B.l=R->BC.B.h;break;
273 case LD_A_B: R->AF.B.h=R->BC.B.h;break;
274 case LD_xHL_B: J.W=R->XX.W+(offset)RdZ80(R->PC.W++);
275 WrZ80(J.W,R->BC.B.h);break;
276
277 case LD_B_C: R->BC.B.h=R->BC.B.l;break;
278 case LD_C_C: R->BC.B.l=R->BC.B.l;break;
279 case LD_D_C: R->DE.B.h=R->BC.B.l;break;
280 case LD_E_C: R->DE.B.l=R->BC.B.l;break;
281 case LD_H_C: R->XX.B.h=R->BC.B.l;break;
282 case LD_L_C: R->XX.B.l=R->BC.B.l;break;
283 case LD_A_C: R->AF.B.h=R->BC.B.l;break;
284 case LD_xHL_C: J.W=R->XX.W+(offset)RdZ80(R->PC.W++);
285 WrZ80(J.W,R->BC.B.l);break;
286
287 case LD_B_D: R->BC.B.h=R->DE.B.h;break;
288 case LD_C_D: R->BC.B.l=R->DE.B.h;break;
289 case LD_D_D: R->DE.B.h=R->DE.B.h;break;
290 case LD_E_D: R->DE.B.l=R->DE.B.h;break;
291 case LD_H_D: R->XX.B.h=R->DE.B.h;break;
292 case LD_L_D: R->XX.B.l=R->DE.B.h;break;
293 case LD_A_D: R->AF.B.h=R->DE.B.h;break;
294 case LD_xHL_D: J.W=R->XX.W+(offset)RdZ80(R->PC.W++);
295 WrZ80(J.W,R->DE.B.h);break;
296
297 case LD_B_E: R->BC.B.h=R->DE.B.l;break;
298 case LD_C_E: R->BC.B.l=R->DE.B.l;break;
299 case LD_D_E: R->DE.B.h=R->DE.B.l;break;
300 case LD_E_E: R->DE.B.l=R->DE.B.l;break;
301 case LD_H_E: R->XX.B.h=R->DE.B.l;break;
302 case LD_L_E: R->XX.B.l=R->DE.B.l;break;
303 case LD_A_E: R->AF.B.h=R->DE.B.l;break;
304 case LD_xHL_E: J.W=R->XX.W+(offset)RdZ80(R->PC.W++);
305 WrZ80(J.W,R->DE.B.l);break;
306
307 case LD_B_H: R->BC.B.h=R->XX.B.h;break;
308 case LD_C_H: R->BC.B.l=R->XX.B.h;break;
309 case LD_D_H: R->DE.B.h=R->XX.B.h;break;
310 case LD_E_H: R->DE.B.l=R->XX.B.h;break;
311 case LD_H_H: R->XX.B.h=R->XX.B.h;break;
312 case LD_L_H: R->XX.B.l=R->XX.B.h;break;
313 case LD_A_H: R->AF.B.h=R->XX.B.h;break;
314 case LD_xHL_H: J.W=R->XX.W+(offset)RdZ80(R->PC.W++);
315 WrZ80(J.W,R->HL.B.h);break;
316
317 case LD_B_L: R->BC.B.h=R->XX.B.l;break;
318 case LD_C_L: R->BC.B.l=R->XX.B.l;break;
319 case LD_D_L: R->DE.B.h=R->XX.B.l;break;
320 case LD_E_L: R->DE.B.l=R->XX.B.l;break;
321 case LD_H_L: R->XX.B.h=R->XX.B.l;break;
322 case LD_L_L: R->XX.B.l=R->XX.B.l;break;
323 case LD_A_L: R->AF.B.h=R->XX.B.l;break;
324 case LD_xHL_L: J.W=R->XX.W+(offset)RdZ80(R->PC.W++);
325 WrZ80(J.W,R->HL.B.l);break;
326
327 case LD_B_A: R->BC.B.h=R->AF.B.h;break;
328 case LD_C_A: R->BC.B.l=R->AF.B.h;break;
329 case LD_D_A: R->DE.B.h=R->AF.B.h;break;
330 case LD_E_A: R->DE.B.l=R->AF.B.h;break;
331 case LD_H_A: R->XX.B.h=R->AF.B.h;break;
332 case LD_L_A: R->XX.B.l=R->AF.B.h;break;
333 case LD_A_A: R->AF.B.h=R->AF.B.h;break;
334 case LD_xHL_A: J.W=R->XX.W+(offset)RdZ80(R->PC.W++);
335 WrZ80(J.W,R->AF.B.h);break;
336
337 case LD_xBC_A: WrZ80(R->BC.W,R->AF.B.h);break;
338 case LD_xDE_A: WrZ80(R->DE.W,R->AF.B.h);break;
339
340 case LD_B_xHL: R->BC.B.h=RdZ80(R->XX.W+(offset)RdZ80(R->PC.W++));break;
341 case LD_C_xHL: R->BC.B.l=RdZ80(R->XX.W+(offset)RdZ80(R->PC.W++));break;
342 case LD_D_xHL: R->DE.B.h=RdZ80(R->XX.W+(offset)RdZ80(R->PC.W++));break;
343 case LD_E_xHL: R->DE.B.l=RdZ80(R->XX.W+(offset)RdZ80(R->PC.W++));break;
344 case LD_H_xHL: R->HL.B.h=RdZ80(R->XX.W+(offset)RdZ80(R->PC.W++));break;
345 case LD_L_xHL: R->HL.B.l=RdZ80(R->XX.W+(offset)RdZ80(R->PC.W++));break;
346 case LD_A_xHL: R->AF.B.h=RdZ80(R->XX.W+(offset)RdZ80(R->PC.W++));break;
347
348 case LD_B_BYTE: R->BC.B.h=RdZ80(R->PC.W++);break;
349 case LD_C_BYTE: R->BC.B.l=RdZ80(R->PC.W++);break;
350 case LD_D_BYTE: R->DE.B.h=RdZ80(R->PC.W++);break;
351 case LD_E_BYTE: R->DE.B.l=RdZ80(R->PC.W++);break;
352 case LD_H_BYTE: R->XX.B.h=RdZ80(R->PC.W++);break;
353 case LD_L_BYTE: R->XX.B.l=RdZ80(R->PC.W++);break;
354 case LD_A_BYTE: R->AF.B.h=RdZ80(R->PC.W++);break;
355 case LD_xHL_BYTE: J.W=R->XX.W+(offset)RdZ80(R->PC.W++);
356 WrZ80(J.W,RdZ80(R->PC.W++));break;
357
358 case LD_xWORD_HL:
359 J.B.l=RdZ80(R->PC.W++);
360 J.B.h=RdZ80(R->PC.W++);
361 WrZ80(J.W++,R->XX.B.l);
362 WrZ80(J.W,R->XX.B.h);
363 break;
364
365 case LD_HL_xWORD:
366 J.B.l=RdZ80(R->PC.W++);
367 J.B.h=RdZ80(R->PC.W++);
368 R->XX.B.l=RdZ80(J.W++);
369 R->XX.B.h=RdZ80(J.W);
370 break;
371
372 case LD_A_xWORD:
373 J.B.l=RdZ80(R->PC.W++);
374 J.B.h=RdZ80(R->PC.W++);
375 R->AF.B.h=RdZ80(J.W);
376 break;
377
378 case LD_xWORD_A:
379 J.B.l=RdZ80(R->PC.W++);
380 J.B.h=RdZ80(R->PC.W++);
381 WrZ80(J.W,R->AF.B.h);
382 break;
383
384 case EX_HL_xSP:
385 J.B.l=RdZ80(R->SP.W);WrZ80(R->SP.W++,R->XX.B.l);
386 J.B.h=RdZ80(R->SP.W);WrZ80(R->SP.W--,R->XX.B.h);
387 R->XX.W=J.W;
388 break;
389
390 case DAA:
391 J.W=R->AF.B.h;
392 if(R->AF.B.l&C_FLAG) J.W|=256;
393 if(R->AF.B.l&H_FLAG) J.W|=512;
394 if(R->AF.B.l&N_FLAG) J.W|=1024;
395 R->AF.W=DAATable[J.W];
396 break;

  ViewVC Help
Powered by ViewVC 1.1.26