drc: rm write irq check
[picodrive.git] / cpu / cz80 / cz80_opXYCB.c
1 /******************************************************************************\r
2  *\r
3  * CZ80 XYCB opcode include source file\r
4  * CZ80 emulator version 0.9\r
5  * Copyright 2004-2005 Stéphane Dallongeville\r
6  *\r
7  * (Modified by NJ)\r
8  *\r
9  *****************************************************************************/\r
10 \r
11 #if CZ80_USE_JUMPTABLE\r
12         goto *JumpTableXYCB[Opcode];\r
13 #else\r
14 switch (Opcode)\r
15 {\r
16 #endif\r
17 \r
18 /*-----------------------------------------\r
19  RLC\r
20 -----------------------------------------*/\r
21 \r
22         OPXYCB(0x00):   // RLC  (Ix+d), B\r
23         OPXYCB(0x01):   // RLC  (Ix+d), C\r
24         OPXYCB(0x02):   // RLC  (Ix+d), D\r
25         OPXYCB(0x03):   // RLC  (Ix+d), E\r
26         OPXYCB(0x04):   // RLC  (Ix+d), H\r
27         OPXYCB(0x05):   // RLC  (Ix+d), L\r
28         OPXYCB(0x07):   // RLC  (Ix+d), A\r
29                 src = READ_MEM8(adr);\r
30                 res = ((src << 1) | (src >> 7)) & 0xff;\r
31                 zF = SZP[res] | (src >> 7);\r
32                 zR8(Opcode) = res;\r
33                 WRITE_MEM8(adr, res);\r
34                 RET(19)\r
35 \r
36         OPXYCB(0x06):   // RLC  (Ix+d)\r
37                 src = READ_MEM8(adr);\r
38                 res = ((src << 1) | (src >> 7)) & 0xff;\r
39                 zF = SZP[res] | (src >> 7);\r
40                 WRITE_MEM8(adr, res);\r
41                 RET(19)\r
42 \r
43 /*-----------------------------------------\r
44  RRC\r
45 -----------------------------------------*/\r
46 \r
47         OPXYCB(0x08):   // RRC  (Ix+d), B\r
48         OPXYCB(0x09):   // RRC  (Ix+d), C\r
49         OPXYCB(0x0a):   // RRC  (Ix+d), D\r
50         OPXYCB(0x0b):   // RRC  (Ix+d), E\r
51         OPXYCB(0x0c):   // RRC  (Ix+d), H\r
52         OPXYCB(0x0d):   // RRC  (Ix+d), L\r
53         OPXYCB(0x0f):   // RRC  (Ix+d), A\r
54                 src = READ_MEM8(adr);\r
55                 res = ((src >> 1) | (src << 7)) & 0xff;\r
56                 zF = SZP[res] | (src & CF);\r
57                 zR8(Opcode & 7) = res;\r
58                 WRITE_MEM8(adr, res);\r
59                 RET(19)\r
60 \r
61         OPXYCB(0x0e):   // RRC  (Ix+d)\r
62                 src = READ_MEM8(adr);\r
63                 res = ((src >> 1) | (src << 7)) & 0xff;\r
64                 zF = SZP[res] | (src & CF);\r
65                 WRITE_MEM8(adr, res);\r
66                 RET(19)\r
67 \r
68 /*-----------------------------------------\r
69  RL\r
70 -----------------------------------------*/\r
71 \r
72         OPXYCB(0x10):   // RL   (Ix+d), B\r
73         OPXYCB(0x11):   // RL   (Ix+d), C\r
74         OPXYCB(0x12):   // RL   (Ix+d), D\r
75         OPXYCB(0x13):   // RL   (Ix+d), E\r
76         OPXYCB(0x14):   // RL   (Ix+d), H\r
77         OPXYCB(0x15):   // RL   (Ix+d), L\r
78         OPXYCB(0x17):   // RL   (Ix+d), A\r
79                 src = READ_MEM8(adr);\r
80                 res = ((src << 1) | (zF & CF)) & 0xff;\r
81                 zF = SZP[res] | (src >> 7);\r
82                 zR8(Opcode & 7) = res;\r
83                 WRITE_MEM8(adr, res);\r
84                 RET(19)\r
85 \r
86         OPXYCB(0x16):   // RL   (Ix+d)\r
87                 src = READ_MEM8(adr);\r
88                 res = ((src << 1) | (zF & CF)) & 0xff;\r
89                 zF = SZP[res] | (src >> 7);\r
90                 WRITE_MEM8(adr, res);\r
91                 RET(19)\r
92 \r
93 /*-----------------------------------------\r
94  RR\r
95 -----------------------------------------*/\r
96 \r
97         OPXYCB(0x18):   // RR   (Ix+d), B\r
98         OPXYCB(0x19):   // RR   (Ix+d), C\r
99         OPXYCB(0x1a):   // RR   (Ix+d), D\r
100         OPXYCB(0x1b):   // RR   (Ix+d), E\r
101         OPXYCB(0x1c):   // RR   (Ix+d), H\r
102         OPXYCB(0x1d):   // RR   (Ix+d), L\r
103         OPXYCB(0x1f):   // RR   (Ix+d), A\r
104                 src = READ_MEM8(adr);\r
105                 res = ((src >> 1) | (zF << 7)) & 0xff;\r
106                 zF = SZP[res] | (src & CF);\r
107                 zR8(Opcode & 7) = res;\r
108                 WRITE_MEM8(adr, res);\r
109                 RET(19)\r
110 \r
111         OPXYCB(0x1e):   // RR   (Ix+d)\r
112                 src = READ_MEM8(adr);\r
113                 res = ((src >> 1) | (zF << 7)) & 0xff;\r
114                 zF = SZP[res] | (src & CF);\r
115                 WRITE_MEM8(adr, res);\r
116                 RET(19)\r
117 \r
118 /*-----------------------------------------\r
119  SLA\r
120 -----------------------------------------*/\r
121 \r
122         OPXYCB(0x20):   // SLA  (Ix+d), B\r
123         OPXYCB(0x21):   // SLA  (Ix+d), C\r
124         OPXYCB(0x22):   // SLA  (Ix+d), D\r
125         OPXYCB(0x23):   // SLA  (Ix+d), E\r
126         OPXYCB(0x24):   // SLA  (Ix+d), H\r
127         OPXYCB(0x25):   // SLA  (Ix+d), L\r
128         OPXYCB(0x27):   // SLA  (Ix+d), A\r
129                 src = READ_MEM8(adr);\r
130                 res = (src << 1) & 0xff;\r
131                 zF = SZP[res] | (src >> 7);\r
132                 zR8(Opcode & 7) = res;\r
133                 WRITE_MEM8(adr, res);\r
134                 RET(19)\r
135 \r
136         OPXYCB(0x26):   // SLA  (Ix+d)\r
137                 src = READ_MEM8(adr);\r
138                 res = (src << 1) & 0xff;\r
139                 zF = SZP[res] | (src >> 7);\r
140                 WRITE_MEM8(adr, res);\r
141                 RET(19)\r
142 \r
143 /*-----------------------------------------\r
144  SRA\r
145 -----------------------------------------*/\r
146 \r
147         OPXYCB(0x28):   // SRA  (Ix+d), B\r
148         OPXYCB(0x29):   // SRA  (Ix+d), C\r
149         OPXYCB(0x2a):   // SRA  (Ix+d), D\r
150         OPXYCB(0x2b):   // SRA  (Ix+d), E\r
151         OPXYCB(0x2c):   // SRA  (Ix+d), H\r
152         OPXYCB(0x2d):   // SRA  (Ix+d), L\r
153         OPXYCB(0x2f):   // SRA  (Ix+d), A\r
154                 src = READ_MEM8(adr);\r
155                 res = ((src >> 1) | (src & 0x80)) & 0xff;\r
156                 zF = SZP[res] | (src & CF);\r
157                 zR8(Opcode & 7) = res;\r
158                 WRITE_MEM8(adr, res);\r
159                 RET(19)\r
160 \r
161         OPXYCB(0x2e):   // SRA  (Ix+d)\r
162                 src = READ_MEM8(adr);\r
163                 res = ((src >> 1) | (src & 0x80)) & 0xff;\r
164                 zF = SZP[res] | (src & CF);\r
165                 WRITE_MEM8(adr, res);\r
166                 RET(19)\r
167 \r
168 /*-----------------------------------------\r
169  SLL\r
170 -----------------------------------------*/\r
171 \r
172         OPXYCB(0x30):   // SLL  (Ix+d), B\r
173         OPXYCB(0x31):   // SLL  (Ix+d), C\r
174         OPXYCB(0x32):   // SLL  (Ix+d), D\r
175         OPXYCB(0x33):   // SLL  (Ix+d), E\r
176         OPXYCB(0x34):   // SLL  (Ix+d), H\r
177         OPXYCB(0x35):   // SLL  (Ix+d), L\r
178         OPXYCB(0x37):   // SLL  (Ix+d), A\r
179                 src = READ_MEM8(adr);\r
180                 res = ((src << 1) | 0x01) & 0xff;\r
181                 zF = SZP[res] | (src >> 7);\r
182                 zR8(Opcode & 7) = res;\r
183                 WRITE_MEM8(adr, res);\r
184                 RET(19)\r
185 \r
186         OPXYCB(0x36):   // SLL  (Ix+d)\r
187                 src = READ_MEM8(adr);\r
188                 res = ((src << 1) | 0x01) & 0xff;\r
189                 zF = SZP[res] | (src >> 7);\r
190                 WRITE_MEM8(adr, res);\r
191                 RET(19)\r
192 \r
193 /*-----------------------------------------\r
194  SRL\r
195 -----------------------------------------*/\r
196 \r
197         OPXYCB(0x38):   // SRL  (Ix+d), B\r
198         OPXYCB(0x39):   // SRL  (Ix+d), C\r
199         OPXYCB(0x3a):   // SRL  (Ix+d), D\r
200         OPXYCB(0x3b):   // SRL  (Ix+d), E\r
201         OPXYCB(0x3c):   // SRL  (Ix+d), H\r
202         OPXYCB(0x3d):   // SRL  (Ix+d), L\r
203         OPXYCB(0x3f):   // SRL  (Ix+d), A\r
204                 src = READ_MEM8(adr);\r
205                 res = (src >> 1) & 0xff;\r
206                 zF = SZP[res] | (src & CF);\r
207                 zR8(Opcode & 7) = res;\r
208                 WRITE_MEM8(adr, res);\r
209                 RET(19)\r
210 \r
211         OPXYCB(0x3e):   // SRL  (Ix+d)\r
212                 src = READ_MEM8(adr);\r
213                 res = (src >> 1) & 0xff;\r
214                 zF = SZP[res] | (src & CF);\r
215                 WRITE_MEM8(adr, res);\r
216                 RET(19)\r
217 \r
218 /*-----------------------------------------\r
219  BIT\r
220 -----------------------------------------*/\r
221 \r
222         OPXYCB(0x40):   // BIT  0,(Ix+d)\r
223         OPXYCB(0x41):   // BIT  0,(Ix+d)\r
224         OPXYCB(0x42):   // BIT  0,(Ix+d)\r
225         OPXYCB(0x43):   // BIT  0,(Ix+d)\r
226         OPXYCB(0x44):   // BIT  0,(Ix+d)\r
227         OPXYCB(0x45):   // BIT  0,(Ix+d)\r
228         OPXYCB(0x47):   // BIT  0,(Ix+d)\r
229 \r
230         OPXYCB(0x48):   // BIT  1,(Ix+d)\r
231         OPXYCB(0x49):   // BIT  1,(Ix+d)\r
232         OPXYCB(0x4a):   // BIT  1,(Ix+d)\r
233         OPXYCB(0x4b):   // BIT  1,(Ix+d)\r
234         OPXYCB(0x4c):   // BIT  1,(Ix+d)\r
235         OPXYCB(0x4d):   // BIT  1,(Ix+d)\r
236         OPXYCB(0x4f):   // BIT  1,(Ix+d)\r
237 \r
238         OPXYCB(0x50):   // BIT  2,(Ix+d)\r
239         OPXYCB(0x51):   // BIT  2,(Ix+d)\r
240         OPXYCB(0x52):   // BIT  2,(Ix+d)\r
241         OPXYCB(0x53):   // BIT  2,(Ix+d)\r
242         OPXYCB(0x54):   // BIT  2,(Ix+d)\r
243         OPXYCB(0x55):   // BIT  2,(Ix+d)\r
244         OPXYCB(0x57):   // BIT  2,(Ix+d)\r
245 \r
246         OPXYCB(0x58):   // BIT  3,(Ix+d)\r
247         OPXYCB(0x59):   // BIT  3,(Ix+d)\r
248         OPXYCB(0x5a):   // BIT  3,(Ix+d)\r
249         OPXYCB(0x5b):   // BIT  3,(Ix+d)\r
250         OPXYCB(0x5c):   // BIT  3,(Ix+d)\r
251         OPXYCB(0x5d):   // BIT  3,(Ix+d)\r
252         OPXYCB(0x5f):   // BIT  3,(Ix+d)\r
253 \r
254         OPXYCB(0x60):   // BIT  4,(Ix+d)\r
255         OPXYCB(0x61):   // BIT  4,(Ix+d)\r
256         OPXYCB(0x62):   // BIT  4,(Ix+d)\r
257         OPXYCB(0x63):   // BIT  4,(Ix+d)\r
258         OPXYCB(0x64):   // BIT  4,(Ix+d)\r
259         OPXYCB(0x65):   // BIT  4,(Ix+d)\r
260         OPXYCB(0x67):   // BIT  4,(Ix+d)\r
261 \r
262         OPXYCB(0x68):   // BIT  5,(Ix+d)\r
263         OPXYCB(0x69):   // BIT  5,(Ix+d)\r
264         OPXYCB(0x6a):   // BIT  5,(Ix+d)\r
265         OPXYCB(0x6b):   // BIT  5,(Ix+d)\r
266         OPXYCB(0x6c):   // BIT  5,(Ix+d)\r
267         OPXYCB(0x6d):   // BIT  5,(Ix+d)\r
268         OPXYCB(0x6f):   // BIT  5,(Ix+d)\r
269 \r
270         OPXYCB(0x70):   // BIT  6,(Ix+d)\r
271         OPXYCB(0x71):   // BIT  6,(Ix+d)\r
272         OPXYCB(0x72):   // BIT  6,(Ix+d)\r
273         OPXYCB(0x73):   // BIT  6,(Ix+d)\r
274         OPXYCB(0x74):   // BIT  6,(Ix+d)\r
275         OPXYCB(0x75):   // BIT  6,(Ix+d)\r
276         OPXYCB(0x77):   // BIT  6,(Ix+d)\r
277 \r
278         OPXYCB(0x78):   // BIT  7,(Ix+d)\r
279         OPXYCB(0x79):   // BIT  7,(Ix+d)\r
280         OPXYCB(0x7a):   // BIT  7,(Ix+d)\r
281         OPXYCB(0x7b):   // BIT  7,(Ix+d)\r
282         OPXYCB(0x7c):   // BIT  7,(Ix+d)\r
283         OPXYCB(0x7d):   // BIT  7,(Ix+d)\r
284         OPXYCB(0x7f):   // BIT  7,(Ix+d)\r
285 \r
286         OPXYCB(0x46):   // BIT  0,(Ix+d)\r
287         OPXYCB(0x4e):   // BIT  1,(Ix+d)\r
288         OPXYCB(0x56):   // BIT  2,(Ix+d)\r
289         OPXYCB(0x5e):   // BIT  3,(Ix+d)\r
290         OPXYCB(0x66):   // BIT  4,(Ix+d)\r
291         OPXYCB(0x6e):   // BIT  5,(Ix+d)\r
292         OPXYCB(0x76):   // BIT  6,(Ix+d)\r
293         OPXYCB(0x7e):   // BIT  7,(Ix+d)\r
294                 src = READ_MEM8(adr);\r
295                 zF = (zF & CF) | HF |\r
296                          (SZ_BIT[src & (1 << ((Opcode >> 3) & 7))] & ~(YF | XF)) |\r
297                          ((adr >> 8) & (YF | XF));\r
298                 RET(16)\r
299 \r
300 /*-----------------------------------------\r
301  RES\r
302 -----------------------------------------*/\r
303 \r
304         OPXYCB(0x80):   // RES  0,(Ix+d),B\r
305         OPXYCB(0x81):   // RES  0,(Ix+d),C\r
306         OPXYCB(0x82):   // RES  0,(Ix+d),D\r
307         OPXYCB(0x83):   // RES  0,(Ix+d),E\r
308         OPXYCB(0x84):   // RES  0,(Ix+d),H\r
309         OPXYCB(0x85):   // RES  0,(Ix+d),L\r
310         OPXYCB(0x87):   // RES  0,(Ix+d),A\r
311 \r
312         OPXYCB(0x88):   // RES  1,(Ix+d),B\r
313         OPXYCB(0x89):   // RES  1,(Ix+d),C\r
314         OPXYCB(0x8a):   // RES  1,(Ix+d),D\r
315         OPXYCB(0x8b):   // RES  1,(Ix+d),E\r
316         OPXYCB(0x8c):   // RES  1,(Ix+d),H\r
317         OPXYCB(0x8d):   // RES  1,(Ix+d),L\r
318         OPXYCB(0x8f):   // RES  1,(Ix+d),A\r
319 \r
320         OPXYCB(0x90):   // RES  2,(Ix+d),B\r
321         OPXYCB(0x91):   // RES  2,(Ix+d),C\r
322         OPXYCB(0x92):   // RES  2,(Ix+d),D\r
323         OPXYCB(0x93):   // RES  2,(Ix+d),E\r
324         OPXYCB(0x94):   // RES  2,(Ix+d),H\r
325         OPXYCB(0x95):   // RES  2,(Ix+d),L\r
326         OPXYCB(0x97):   // RES  2,(Ix+d),A\r
327 \r
328         OPXYCB(0x98):   // RES  3,(Ix+d),B\r
329         OPXYCB(0x99):   // RES  3,(Ix+d),C\r
330         OPXYCB(0x9a):   // RES  3,(Ix+d),D\r
331         OPXYCB(0x9b):   // RES  3,(Ix+d),E\r
332         OPXYCB(0x9c):   // RES  3,(Ix+d),H\r
333         OPXYCB(0x9d):   // RES  3,(Ix+d),L\r
334         OPXYCB(0x9f):   // RES  3,(Ix+d),A\r
335 \r
336         OPXYCB(0xa0):   // RES  4,(Ix+d),B\r
337         OPXYCB(0xa1):   // RES  4,(Ix+d),C\r
338         OPXYCB(0xa2):   // RES  4,(Ix+d),D\r
339         OPXYCB(0xa3):   // RES  4,(Ix+d),E\r
340         OPXYCB(0xa4):   // RES  4,(Ix+d),H\r
341         OPXYCB(0xa5):   // RES  4,(Ix+d),L\r
342         OPXYCB(0xa7):   // RES  4,(Ix+d),A\r
343 \r
344         OPXYCB(0xa8):   // RES  5,(Ix+d),B\r
345         OPXYCB(0xa9):   // RES  5,(Ix+d),C\r
346         OPXYCB(0xaa):   // RES  5,(Ix+d),D\r
347         OPXYCB(0xab):   // RES  5,(Ix+d),E\r
348         OPXYCB(0xac):   // RES  5,(Ix+d),H\r
349         OPXYCB(0xad):   // RES  5,(Ix+d),L\r
350         OPXYCB(0xaf):   // RES  5,(Ix+d),A\r
351 \r
352         OPXYCB(0xb0):   // RES  6,(Ix+d),B\r
353         OPXYCB(0xb1):   // RES  6,(Ix+d),C\r
354         OPXYCB(0xb2):   // RES  6,(Ix+d),D\r
355         OPXYCB(0xb3):   // RES  6,(Ix+d),E\r
356         OPXYCB(0xb4):   // RES  6,(Ix+d),H\r
357         OPXYCB(0xb5):   // RES  6,(Ix+d),L\r
358         OPXYCB(0xb7):   // RES  6,(Ix+d),A\r
359 \r
360         OPXYCB(0xb8):   // RES  7,(Ix+d),B\r
361         OPXYCB(0xb9):   // RES  7,(Ix+d),C\r
362         OPXYCB(0xba):   // RES  7,(Ix+d),D\r
363         OPXYCB(0xbb):   // RES  7,(Ix+d),E\r
364         OPXYCB(0xbc):   // RES  7,(Ix+d),H\r
365         OPXYCB(0xbd):   // RES  7,(Ix+d),L\r
366         OPXYCB(0xbf):   // RES  7,(Ix+d),A\r
367                 res = READ_MEM8(adr);\r
368                 res &= ~(1 << ((Opcode >> 3) & 7));\r
369                 zR8(Opcode & 7) = res;\r
370                 WRITE_MEM8(adr, res);\r
371                 RET(19)\r
372 \r
373         OPXYCB(0x86):   // RES  0,(Ix+d)\r
374         OPXYCB(0x8e):   // RES  1,(Ix+d)\r
375         OPXYCB(0x96):   // RES  2,(Ix+d)\r
376         OPXYCB(0x9e):   // RES  3,(Ix+d)\r
377         OPXYCB(0xa6):   // RES  4,(Ix+d)\r
378         OPXYCB(0xae):   // RES  5,(Ix+d)\r
379         OPXYCB(0xb6):   // RES  6,(Ix+d)\r
380         OPXYCB(0xbe):   // RES  7,(Ix+d)\r
381                 res = READ_MEM8(adr);\r
382                 res &= ~(1 << ((Opcode >> 3) & 7));\r
383                 WRITE_MEM8(adr, res);\r
384                 RET(19)\r
385 \r
386 /*-----------------------------------------\r
387  SET\r
388 -----------------------------------------*/\r
389 \r
390         OPXYCB(0xc0):   // SET  0,(Ix+d),B\r
391         OPXYCB(0xc1):   // SET  0,(Ix+d),C\r
392         OPXYCB(0xc2):   // SET  0,(Ix+d),D\r
393         OPXYCB(0xc3):   // SET  0,(Ix+d),E\r
394         OPXYCB(0xc4):   // SET  0,(Ix+d),H\r
395         OPXYCB(0xc5):   // SET  0,(Ix+d),L\r
396         OPXYCB(0xc7):   // SET  0,(Ix+d),A\r
397 \r
398         OPXYCB(0xc8):   // SET  1,(Ix+d),B\r
399         OPXYCB(0xc9):   // SET  1,(Ix+d),C\r
400         OPXYCB(0xca):   // SET  1,(Ix+d),D\r
401         OPXYCB(0xcb):   // SET  1,(Ix+d),E\r
402         OPXYCB(0xcc):   // SET  1,(Ix+d),H\r
403         OPXYCB(0xcd):   // SET  1,(Ix+d),L\r
404         OPXYCB(0xcf):   // SET  1,(Ix+d),A\r
405 \r
406         OPXYCB(0xd0):   // SET  2,(Ix+d),B\r
407         OPXYCB(0xd1):   // SET  2,(Ix+d),C\r
408         OPXYCB(0xd2):   // SET  2,(Ix+d),D\r
409         OPXYCB(0xd3):   // SET  2,(Ix+d),E\r
410         OPXYCB(0xd4):   // SET  2,(Ix+d),H\r
411         OPXYCB(0xd5):   // SET  2,(Ix+d),L\r
412         OPXYCB(0xd7):   // SET  2,(Ix+d),A\r
413 \r
414         OPXYCB(0xd8):   // SET  3,(Ix+d),B\r
415         OPXYCB(0xd9):   // SET  3,(Ix+d),C\r
416         OPXYCB(0xda):   // SET  3,(Ix+d),D\r
417         OPXYCB(0xdb):   // SET  3,(Ix+d),E\r
418         OPXYCB(0xdc):   // SET  3,(Ix+d),H\r
419         OPXYCB(0xdd):   // SET  3,(Ix+d),L\r
420         OPXYCB(0xdf):   // SET  3,(Ix+d),A\r
421 \r
422         OPXYCB(0xe0):   // SET  4,(Ix+d),B\r
423         OPXYCB(0xe1):   // SET  4,(Ix+d),C\r
424         OPXYCB(0xe2):   // SET  4,(Ix+d),D\r
425         OPXYCB(0xe3):   // SET  4,(Ix+d),E\r
426         OPXYCB(0xe4):   // SET  4,(Ix+d),H\r
427         OPXYCB(0xe5):   // SET  4,(Ix+d),L\r
428         OPXYCB(0xe7):   // SET  4,(Ix+d),A\r
429 \r
430         OPXYCB(0xe8):   // SET  5,(Ix+d),B\r
431         OPXYCB(0xe9):   // SET  5,(Ix+d),C\r
432         OPXYCB(0xea):   // SET  5,(Ix+d),D\r
433         OPXYCB(0xeb):   // SET  5,(Ix+d),E\r
434         OPXYCB(0xec):   // SET  5,(Ix+d),H\r
435         OPXYCB(0xed):   // SET  5,(Ix+d),L\r
436         OPXYCB(0xef):   // SET  5,(Ix+d),A\r
437 \r
438         OPXYCB(0xf0):   // SET  6,(Ix+d),B\r
439         OPXYCB(0xf1):   // SET  6,(Ix+d),C\r
440         OPXYCB(0xf2):   // SET  6,(Ix+d),D\r
441         OPXYCB(0xf3):   // SET  6,(Ix+d),E\r
442         OPXYCB(0xf4):   // SET  6,(Ix+d),H\r
443         OPXYCB(0xf5):   // SET  6,(Ix+d),L\r
444         OPXYCB(0xf7):   // SET  6,(Ix+d),A\r
445 \r
446         OPXYCB(0xf8):   // SET  7,(Ix+d),B\r
447         OPXYCB(0xf9):   // SET  7,(Ix+d),C\r
448         OPXYCB(0xfa):   // SET  7,(Ix+d),D\r
449         OPXYCB(0xfb):   // SET  7,(Ix+d),E\r
450         OPXYCB(0xfc):   // SET  7,(Ix+d),H\r
451         OPXYCB(0xfd):   // SET  7,(Ix+d),L\r
452         OPXYCB(0xff):   // SET  7,(Ix+d),A\r
453                 res = READ_MEM8(adr);\r
454                 res |= 1 << ((Opcode >> 3) & 7);\r
455                 zR8(Opcode & 7) = res;\r
456                 WRITE_MEM8(adr, res);\r
457                 RET(19)\r
458 \r
459         OPXYCB(0xc6):   // SET  0,(Ix+d)\r
460         OPXYCB(0xce):   // SET  1,(Ix+d)\r
461         OPXYCB(0xd6):   // SET  2,(Ix+d)\r
462         OPXYCB(0xde):   // SET  3,(Ix+d)\r
463         OPXYCB(0xe6):   // SET  4,(Ix+d)\r
464         OPXYCB(0xee):   // SET  5,(Ix+d)\r
465         OPXYCB(0xf6):   // SET  6,(Ix+d)\r
466         OPXYCB(0xfe):   // SET  7,(Ix+d)\r
467                 res = READ_MEM8(adr);\r
468                 res |= 1 << ((Opcode >> 3) & 7);\r
469                 WRITE_MEM8(adr, res);\r
470                 RET(19)\r
471 \r
472 #if !CZ80_USE_JUMPTABLE\r
473 }\r
474 #endif\r