/[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

Annotation of /Z80/src/CodesXX.h

Parent Directory Parent Directory | Revision Log Revision Log


Revision 111 - (hide annotations)
Fri Aug 3 12:50:08 2007 UTC (16 years, 9 months ago) by dpavlin
File MIME type: text/plain
File size: 15042 byte(s)
import upstream Z80-010807
1 dpavlin 111 /** 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