initial import
[picodrive.git] / cpu / DrZ80 / drz80.s
1 ;@ Reesy's Z80 Emulator Version 0.001\r
2 \r
3 ;@ (c) Copyright 2004 Reesy, All rights reserved\r
4 ;@ DrZ80 is free for non-commercial use.\r
5 \r
6 ;@ For commercial use, separate licencing terms must be obtained.\r
7 \r
8       .data\r
9       .align 4\r
10 \r
11       .global DrZ80Run\r
12       .global DrZ80Ver\r
13 \r
14           .equiv INTERRUPT_MODE,                0               ;@0 = Use internal int handler, 1 = Use Mames int handler\r
15           .equiv FAST_Z80SP,                    1               ;@0 = Use mem functions for stack pointer, 1 = Use direct mem pointer\r
16           .equiv UPDATE_CONTEXT,            0\r
17           .equiv DRZ80_FOR_PICODRIVE,   1\r
18 \r
19 .if INTERRUPT_MODE\r
20           .extern Interrupt\r
21 .endif\r
22 \r
23 .if DRZ80_FOR_PICODRIVE\r
24           .extern YM2612Read_\r
25           .extern YM2612Read_940\r
26       .extern PicoRead8\r
27       .extern Pico\r
28       .extern z80_write\r
29 .endif\r
30 \r
31 DrZ80Ver: .long 0x0001\r
32 \r
33 ;@ --------------------------- Defines ----------------------------\r
34 ;@ Make sure that regs/pointers for z80pc to z80sp match up!\r
35 \r
36         opcodes    .req r3\r
37         z80_icount .req r4\r
38         cpucontext .req r5\r
39         z80pc      .req r6\r
40         z80a       .req r7\r
41         z80f       .req r8\r
42         z80bc      .req r9\r
43         z80de      .req r10\r
44         z80hl      .req r11\r
45         z80sp      .req r12     \r
46         z80xx      .req lr\r
47 \r
48         .equ z80pc_pointer,           0                  ;@  0\r
49         .equ z80a_pointer,            z80pc_pointer+4    ;@  4\r
50         .equ z80f_pointer,            z80a_pointer+4     ;@  8\r
51         .equ z80bc_pointer,           z80f_pointer+4     ;@  \r
52         .equ z80de_pointer,           z80bc_pointer+4\r
53         .equ z80hl_pointer,           z80de_pointer+4\r
54         .equ z80sp_pointer,           z80hl_pointer+4\r
55         .equ z80pc_base,              z80sp_pointer+4\r
56         .equ z80sp_base,              z80pc_base+4\r
57         .equ z80ix,                   z80sp_base+4\r
58         .equ z80iy,                   z80ix+4\r
59         .equ z80i,                    z80iy+4\r
60         .equ z80a2,                   z80i+4\r
61         .equ z80f2,                   z80a2+4\r
62         .equ z80bc2,                  z80f2+4\r
63         .equ z80de2,                  z80bc2+4\r
64         .equ z80hl2,                  z80de2+4\r
65         .equ cycles_pointer,          z80hl2+4     \r
66         .equ previouspc,              cycles_pointer+4     \r
67         .equ z80irq,                  previouspc+4\r
68         .equ z80if,                   z80irq+1\r
69         .equ z80im,                   z80if+1\r
70         .equ z80r,                    z80im+1\r
71         .equ z80irqvector,            z80r+1\r
72         .equ z80irqcallback,          z80irqvector+4\r
73         .equ z80_write8,              z80irqcallback+4\r
74         .equ z80_write16,             z80_write8+4\r
75         .equ z80_in,                  z80_write16+4\r
76         .equ z80_out,                 z80_in+4\r
77         .equ z80_read8,               z80_out+4\r
78         .equ z80_read16,              z80_read8+4\r
79         .equ z80_rebaseSP,            z80_read16+4\r
80         .equ z80_rebasePC,            z80_rebaseSP+4\r
81 \r
82         .equ VFlag, 0\r
83         .equ CFlag, 1\r
84         .equ ZFlag, 2\r
85         .equ SFlag, 3\r
86         .equ HFlag, 4\r
87         .equ NFlag, 5\r
88         .equ Flag3, 6\r
89         .equ Flag5, 7\r
90 \r
91         .equ Z80_CFlag, 0\r
92         .equ Z80_NFlag, 1\r
93         .equ Z80_VFlag, 2\r
94         .equ Z80_Flag3, 3\r
95         .equ Z80_HFlag, 4\r
96         .equ Z80_Flag5, 5\r
97         .equ Z80_ZFlag, 6\r
98         .equ Z80_SFlag, 7\r
99 \r
100         .equ Z80_IF1, 1<<0\r
101         .equ Z80_IF2, 1<<1\r
102         .equ Z80_HALT, 1<<2\r
103 \r
104 ;@---------------------------------------\r
105 \r
106 .text\r
107 \r
108 .if DRZ80_FOR_PICODRIVE\r
109 .include "port_config.s"\r
110 \r
111 .macro YM2612Read_and_ret8\r
112         stmfd sp!,{r3,r12,lr}\r
113 .if EXTERNAL_YM2612\r
114     ldr r1,=PicoOpt\r
115     ldr r1,[r1]\r
116     tst r1,#0x200\r
117     bne 10f\r
118     bl YM2612Read_\r
119         ldmfd sp!,{r3,r12,pc}\r
120 10:\r
121     bl YM2612Read_940\r
122 .else\r
123     bl YM2612Read_\r
124 .endif\r
125         ldmfd sp!,{r3,r12,pc}\r
126 .endm\r
127 \r
128 .macro YM2612Read_and_ret16\r
129         stmfd sp!,{r3,r12,lr}\r
130 .if EXTERNAL_YM2612\r
131     ldr r0,=PicoOpt\r
132     ldr r0,[r0]\r
133     tst r0,#0x200\r
134     bne 10f\r
135     bl YM2612Read_\r
136     orr r0,r0,r0,lsl #8\r
137         ldmfd sp!,{r3,r12,pc}\r
138 10:\r
139     bl YM2612Read_940\r
140     orr r0,r0,r0,lsl #8\r
141 .else\r
142     bl YM2612Read_\r
143     orr r0,r0,r0,lsl #8\r
144 .endif\r
145         ldmfd sp!,{r3,r12,pc}\r
146 .endm\r
147 \r
148 pico_z80_read8: @ addr\r
149     cmp r0,#0x2000         @ Z80 RAM\r
150     ldrlt r1,[cpucontext,#z80sp_base]\r
151     ldrltb r0,[r1,r0]\r
152     bxlt lr\r
153 \r
154     cmp r0,#0x8000         @ 68k bank\r
155     blt 1f\r
156     ldr r2,=(Pico+0x22212)\r
157     ldrh r1,[r2]\r
158     bic r0,r0,#0x3f8000\r
159     orr r0,r0,r1,lsl #15\r
160     ldr r1,[r2,#-0xe]      @ ROM size\r
161     cmp r0,r1\r
162     ldrlt r1,[r2,#-0x12]   @ ROM\r
163     eorlt r0,r0,#1         @ our ROM is byteswapped\r
164     ldrltb r0,[r1,r0]\r
165     bxlt lr\r
166         stmfd sp!,{r3,r12,lr}\r
167     bl PicoRead8\r
168         ldmfd sp!,{r3,r12,pc}\r
169 1:\r
170     mov r1,r0,lsr #13\r
171     cmp r1,#2              @ YM2612 (0x4000-0x5fff)\r
172     bne 0f\r
173     and r0,r0,#3\r
174         YM2612Read_and_ret8\r
175 0:\r
176     cmp r0,#0x4000\r
177     movge r0,#0xff\r
178     bxge lr\r
179     ldr r1,[cpucontext,#z80sp_base]\r
180     bic r0,r0,#0x0fe000    @ Z80 RAM (mirror)\r
181     ldrb r0,[r1,r0]\r
182     bx lr\r
183 \r
184 pico_z80_read16: @ addr\r
185     cmp r0,#0x2000         @ Z80 RAM\r
186     bge 2f\r
187     ldr r1,[cpucontext,#z80sp_base]\r
188     ldrb r0,[r1,r0]!\r
189     ldrb r1,[r1,#1]\r
190     orr r0,r0,r1,lsl #8\r
191     bx lr\r
192 \r
193 2:\r
194     cmp r0,#0x8000         @ 68k bank\r
195     blt 1f\r
196     ldr r2,=(Pico+0x22212)\r
197     ldrh r1,[r2]\r
198     bic r0,r0,#0x1f8000\r
199     orr r0,r0,r1,lsl #15\r
200     ldr r1,[r2,#-0xe]      @ ROM size\r
201     cmp r0,r1\r
202     ldr r1,[r2,#-0x12]     @ ROM\r
203     tst r0,#1\r
204     eor r0,r0,#1\r
205     ldrb r0,[r1,r0]!\r
206     ldreqb r1,[r1,#-1]\r
207     ldrneb r1,[r1,#3]      @ this is due to byteswapped ROM\r
208     orr r0,r0,r1,lsl #8\r
209     bx lr\r
210 3:\r
211     stmfd sp!,{r3-r5,r12,lr}\r
212     mov r4,r0\r
213     bl PicoRead8\r
214     mov r5,r0\r
215     add r0,r4,#1\r
216     bl PicoRead8\r
217     orr r0,r5,r0,lsl #8\r
218         ldmfd sp!,{r3-r5,r12,pc}\r
219 1:\r
220     mov r1,r0,lsr #13\r
221     cmp r1,#2              @ YM2612 (0x4000-0x5fff)\r
222     bne 0f\r
223     and r0,r0,#3\r
224         YM2612Read_and_ret16\r
225 0:\r
226     cmp r0,#0x4000\r
227     movge r0,#0xff\r
228     bxge lr\r
229     ldr r1,[cpucontext,#z80sp_base]\r
230     bic r0,r0,#0x0fe000    @ Z80 RAM (mirror)\r
231     ldrb r0,[r1,r0]!\r
232     ldrb r1,[r1,#1]\r
233     orr r0,r0,r1,lsl #8\r
234     bx lr\r
235 \r
236 pico_z80_write8: @ data, addr\r
237     cmp r1,#0x4000\r
238     bge 1f\r
239     ldr r2,[cpucontext,#z80sp_base]\r
240     bic r1,r1,#0x0fe000    @ Z80 RAM\r
241     strb r0,[r2,r1]\r
242     bx lr\r
243 1:\r
244     stmfd sp!,{r3,r12,lr}\r
245     bl z80_write\r
246     ldmfd sp!,{r3,r12,pc}\r
247 \r
248 pico_z80_write16: @ data, addr\r
249     cmp r1,#0x4000\r
250     bge 1f\r
251     ldr r2,[cpucontext,#z80sp_base]\r
252     bic r1,r1,#0x0fe000    @ Z80 RAM\r
253     strb r0,[r2,r1]!\r
254     mov r0,r0,lsr #8\r
255     strb r0,[r2,#1]\r
256     bx lr\r
257 1:\r
258         stmfd sp!,{r3-r5,r12,lr}\r
259     mov r4,r0\r
260     mov r5,r1\r
261         bl z80_write\r
262     mov r0,r4,lsr #8\r
263     add r1,r5,#1\r
264         bl z80_write\r
265         ldmfd sp!,{r3-r5,r12,pc}\r
266 \r
267     .pool\r
268 .endif\r
269 \r
270 .macro fetch cycs\r
271         subs z80_icount,z80_icount,#\cycs\r
272 .if UPDATE_CONTEXT\r
273     str z80pc,[cpucontext,#z80pc_pointer]\r
274         str z80_icount,[cpucontext,#cycles_pointer]\r
275         ldr r1,[cpucontext,#z80pc_base]\r
276         sub r2,z80pc,r1\r
277         str r2,[cpucontext,#previouspc]\r
278 .endif\r
279         ldrplb r0,[z80pc],#1\r
280         ldrpl pc,[opcodes,r0, lsl #2]\r
281         bmi z80_execute_end\r
282 .endm\r
283 \r
284 .macro eatcycles cycs\r
285         sub z80_icount,z80_icount,#\cycs\r
286 .if UPDATE_CONTEXT\r
287         str z80_icount,[cpucontext,#cycles_pointer]\r
288 .endif\r
289 .endm\r
290 \r
291 .macro readmem8\r
292 .if UPDATE_CONTEXT\r
293     str z80pc,[cpucontext,#z80pc_pointer]\r
294 .endif\r
295 .if DRZ80_FOR_PICODRIVE\r
296     bl pico_z80_read8\r
297 .else\r
298     stmfd sp!,{r3,r12}\r
299         mov lr,pc\r
300         ldr pc,[cpucontext,#z80_read8]                  ;@ r0 = addr - data returned in r0\r
301         ldmfd sp!,{r3,r12}\r
302 .endif\r
303 .endm\r
304 \r
305 .macro readmem8HL\r
306         mov r0,z80hl, lsr #16\r
307         readmem8\r
308 .endm\r
309 \r
310 .macro readmem16\r
311 .if UPDATE_CONTEXT\r
312      str z80pc,[cpucontext,#z80pc_pointer]\r
313 .endif\r
314 .if DRZ80_FOR_PICODRIVE\r
315     bl pico_z80_read16\r
316 .else\r
317         stmfd sp!,{r3,r12}\r
318         mov lr,pc\r
319         ldr pc,[cpucontext,#z80_read16]\r
320         ldmfd sp!,{r3,r12}\r
321 .endif\r
322 .endm\r
323 \r
324 .macro writemem8\r
325 .if UPDATE_CONTEXT\r
326      str z80pc,[cpucontext,#z80pc_pointer]\r
327 .endif\r
328 .if DRZ80_FOR_PICODRIVE\r
329     bl pico_z80_write8\r
330 .else\r
331         stmfd sp!,{r3,r12}\r
332         mov lr,pc\r
333         ldr pc,[cpucontext,#z80_write8]                 ;@ r0=data r1=addr\r
334         ldmfd sp!,{r3,r12}\r
335 .endif\r
336 .endm\r
337 \r
338 .macro writemem8DE\r
339         mov r1,z80de, lsr #16\r
340         writemem8\r
341 .endm\r
342 \r
343 .macro writemem8HL\r
344         mov r1,z80hl, lsr #16\r
345         writemem8\r
346 .endm\r
347 \r
348 .macro writemem16\r
349 .if UPDATE_CONTEXT\r
350      str z80pc,[cpucontext,#z80pc_pointer]\r
351 .endif\r
352 .if DRZ80_FOR_PICODRIVE\r
353     bl pico_z80_write16\r
354 .else\r
355         stmfd sp!,{r3,r12}\r
356         mov lr,pc\r
357         ldr pc,[cpucontext,#z80_write16]                ;@ r0=data r1=addr\r
358         ldmfd sp!,{r3,r12}\r
359 .endif\r
360 .endm\r
361 \r
362 .macro copymem8HL_DE\r
363 .if UPDATE_CONTEXT\r
364      str z80pc,[cpucontext,#z80pc_pointer]\r
365 .endif\r
366         mov r0,z80hl, lsr #16\r
367 .if DRZ80_FOR_PICODRIVE\r
368     bl pico_z80_read8\r
369 .else\r
370     stmfd sp!,{r3,r12}\r
371         mov lr,pc\r
372         ldr pc,[cpucontext,#z80_read8]                  ;@ r0 = addr - data returned in r0\r
373 .endif\r
374 .if UPDATE_CONTEXT\r
375      str z80pc,[cpucontext,#z80pc_pointer]\r
376 .endif\r
377         mov r1,z80de, lsr #16\r
378 .if DRZ80_FOR_PICODRIVE\r
379     bl pico_z80_write8\r
380 .else\r
381         mov lr,pc\r
382         ldr pc,[cpucontext,#z80_write8]                 ;@ r0=data r1=addr\r
383         ldmfd sp!,{r3,r12}\r
384 .endif\r
385 .endm\r
386 ;@---------------------------------------\r
387 \r
388 .macro rebasepc\r
389 .if UPDATE_CONTEXT\r
390      str z80pc,[cpucontext,#z80pc_pointer]\r
391 .endif\r
392 .if DRZ80_FOR_PICODRIVE\r
393     bic r0,r0,#0xfe000\r
394     ldr r1,[cpucontext,#z80pc_base]\r
395     add z80pc,r1,r0\r
396 .else\r
397     stmfd sp!,{r3,r12}\r
398         mov lr,pc\r
399         ldr pc,[cpucontext,#z80_rebasePC]               ;@ r0=new pc - external function sets z80pc_base and returns new z80pc in r0\r
400         ldmfd sp!,{r3,r12}\r
401         mov z80pc,r0\r
402 .endif\r
403 .endm\r
404 \r
405 .macro rebasesp\r
406 .if UPDATE_CONTEXT\r
407      str z80pc,[cpucontext,#z80pc_pointer]\r
408 .endif\r
409 .if DRZ80_FOR_PICODRIVE\r
410     bic r0,r0,#0xfe000\r
411     ldr r1,[cpucontext,#z80sp_base]\r
412     add r0,r1,r0\r
413 .else\r
414         stmfd sp!,{r3,r12}\r
415         mov lr,pc\r
416         ldr pc,[cpucontext,#z80_rebaseSP]               ;@ external function must rebase sp\r
417         ldmfd sp!,{r3,r12}\r
418 .endif\r
419 .endm\r
420 ;@----------------------------------------------------------------------------\r
421 \r
422 .macro opADC\r
423         movs z80f,z80f,lsr#2                                    ;@ get C\r
424         subcs r0,r0,#0x100\r
425         eor z80f,r0,z80a,lsr#24                                 ;@ prepare for check of half carry\r
426         adcs z80a,z80a,r0,ror#8\r
427         mrs r0,cpsr                                                             ;@ S,Z,V&C\r
428         eor z80f,z80f,z80a,lsr#24\r
429         and z80f,z80f,#1<<HFlag                                 ;@ H, correct\r
430         orr z80f,z80f,r0,lsr#28\r
431 .endm\r
432 \r
433 .macro opADCA\r
434         movs z80f,z80f,lsr#2                                    ;@ get C\r
435         orrcs z80a,z80a,#0x00800000\r
436         adds z80a,z80a,z80a\r
437         mrs z80f,cpsr                                                   ;@ S,Z,V&C\r
438         mov z80f,z80f,lsr#28\r
439         tst z80a,#0x10000000                                    ;@ H, correct\r
440         orrne z80f,z80f,#1<<HFlag\r
441         fetch 4\r
442 .endm\r
443 \r
444 .macro opADCH reg\r
445         mov r0,\reg,lsr#24\r
446         opADC\r
447         fetch 4\r
448 .endm\r
449 \r
450 .macro opADCL reg\r
451         movs z80f,z80f,lsr#2                                    ;@ get C\r
452         adc r0,\reg,\reg,lsr#15\r
453         orrcs z80a,z80a,#0x00800000\r
454         mov r1,z80a,lsl#4                                               ;@ Prepare for check of half carry\r
455         adds z80a,z80a,r0,lsl#23\r
456         mrs z80f,cpsr                                                   ;@ S,Z,V&C\r
457         mov z80f,z80f,lsr#28\r
458         cmn r1,r0,lsl#27\r
459         orrcs z80f,z80f,#1<<HFlag                               ;@ H, correct\r
460         fetch 4\r
461 .endm\r
462 \r
463 .macro opADCb\r
464         opADC\r
465 .endm\r
466 ;@---------------------------------------\r
467 \r
468 .macro opADD reg shift\r
469         mov r1,z80a,lsl#4                                               ;@ Prepare for check of half carry\r
470         adds z80a,z80a,\reg,lsl#\shift\r
471         mrs z80f,cpsr                                                   ;@ S,Z,V&C\r
472         mov z80f,z80f,lsr#28\r
473         cmn r1,\reg,lsl#\shift+4\r
474         orrcs z80f,z80f,#1<<HFlag\r
475 .endm\r
476 \r
477 .macro opADDA\r
478         adds z80a,z80a,z80a\r
479         mrs z80f,cpsr                                                   ;@ S,Z,V&C\r
480         mov z80f,z80f,lsr#28\r
481         tst z80a,#0x10000000                                    ;@ H, correct\r
482         orrne z80f,z80f,#1<<HFlag\r
483         fetch 4\r
484 .endm\r
485 \r
486 .macro opADDH reg\r
487         and r0,\reg,#0xFF000000\r
488         opADD r0 0\r
489         fetch 4\r
490 .endm\r
491 \r
492 .macro opADDL reg\r
493         opADD \reg 8\r
494         fetch 4\r
495 .endm\r
496 \r
497 .macro opADDb \r
498         opADD r0 24\r
499 .endm\r
500 ;@---------------------------------------\r
501 \r
502 .macro opADC16 reg\r
503         movs z80f,z80f,lsr#2                                    ;@ get C\r
504         adc r0,z80a,\reg,lsr#15\r
505         orrcs z80hl,z80hl,#0x00008000\r
506         mov r1,z80hl,lsl#4\r
507         adds z80hl,z80hl,r0,lsl#15\r
508         mrs z80f,cpsr                                                   ;@ S, Z, V & C\r
509         mov z80f,z80f,lsr#28\r
510         cmn r1,r0,lsl#19\r
511         orrcs z80f,z80f,#1<<HFlag\r
512         fetch 15\r
513 .endm\r
514 \r
515 .macro opADC16HL\r
516         movs z80f,z80f,lsr#2                                    ;@ get C\r
517         orrcs z80hl,z80hl,#0x00008000\r
518         adds z80hl,z80hl,z80hl\r
519         mrs z80f,cpsr                                                   ;@ S, Z, V & C\r
520         mov z80f,z80f,lsr#28\r
521         tst z80hl,#0x10000000                                   ;@ H, correct.\r
522         orrne z80f,z80f,#1<<HFlag\r
523         fetch 15\r
524 .endm\r
525 \r
526 .macro opADD16 reg1 reg2\r
527         mov r1,\reg1,lsl#4                                              ;@ Prepare for check of half carry\r
528         adds \reg1,\reg1,\reg2\r
529         bic z80f,z80f,#(1<<CFlag)|(1<<HFlag)|(1<<NFlag)\r
530         orrcs z80f,z80f,#1<<CFlag\r
531         cmn r1,\reg2,lsl#4\r
532         orrcs z80f,z80f,#1<<HFlag\r
533 .endm\r
534 \r
535 .macro opADD16s reg1 reg2 shift\r
536         mov r1,\reg1,lsl#4                                              ;@ Prepare for check of half carry\r
537         adds \reg1,\reg1,\reg2,lsl#\shift\r
538         bic z80f,z80f,#(1<<CFlag)|(1<<HFlag)|(1<<NFlag)\r
539         orrcs z80f,z80f,#1<<CFlag\r
540         cmn r1,\reg2,lsl#4+\shift\r
541         orrcs z80f,z80f,#1<<HFlag\r
542 .endm\r
543 \r
544 .macro opADD16_2 reg\r
545         adds \reg,\reg,\reg\r
546         bic z80f,z80f,#(1<<CFlag)|(1<<HFlag)|(1<<NFlag)\r
547         orrcs z80f,z80f,#1<<CFlag\r
548         tst \reg,#0x10000000                                    ;@ H, correct.\r
549         orrne z80f,z80f,#1<<HFlag\r
550 .endm\r
551 ;@---------------------------------------\r
552 \r
553 .macro opAND reg shift\r
554         and z80a,z80a,\reg,lsl#\shift\r
555         sub r0,opcodes,#0x100\r
556         ldrb z80f,[r0,z80a, lsr #24]\r
557         orr z80f,z80f,#1<<HFlag\r
558 .endm\r
559 \r
560 .macro opANDA\r
561         sub r0,opcodes,#0x100\r
562         ldrb z80f,[r0,z80a, lsr #24]\r
563         orr z80f,z80f,#1<<HFlag\r
564         fetch 4\r
565 .endm\r
566 \r
567 .macro opANDH reg\r
568         opAND \reg 0\r
569         fetch 4\r
570 .endm\r
571 \r
572 .macro opANDL reg\r
573         opAND \reg 8\r
574         fetch 4\r
575 .endm\r
576 \r
577 .macro opANDb\r
578         opAND r0 24\r
579 .endm\r
580 ;@---------------------------------------\r
581 \r
582 .macro opBITH reg bit\r
583         and z80f,z80f,#1<<CFlag\r
584         tst \reg,#1<<(24+\bit)\r
585         orreq z80f,z80f,#(1<<HFlag)|(1<<ZFlag)|(1<<VFlag)\r
586         orrne z80f,z80f,#(1<<HFlag)\r
587         fetch 8\r
588 .endm\r
589 \r
590 .macro opBIT7H reg\r
591         and z80f,z80f,#1<<CFlag\r
592         tst \reg,#1<<(24+7)\r
593         orreq z80f,z80f,#(1<<HFlag)|(1<<ZFlag)|(1<<VFlag)\r
594         orrne z80f,z80f,#(1<<HFlag)|(1<<SFlag)\r
595         fetch 8\r
596 .endm\r
597 \r
598 .macro opBITL reg bit\r
599         and z80f,z80f,#1<<CFlag\r
600         tst \reg,#1<<(16+\bit)\r
601         orreq z80f,z80f,#(1<<HFlag)|(1<<ZFlag)|(1<<VFlag)\r
602         orrne z80f,z80f,#(1<<HFlag)\r
603         fetch 8\r
604 .endm\r
605 \r
606 .macro opBIT7L reg\r
607         and z80f,z80f,#1<<CFlag\r
608         tst \reg,#1<<(16+7)\r
609         orreq z80f,z80f,#(1<<HFlag)|(1<<ZFlag)|(1<<VFlag)\r
610         orrne z80f,z80f,#(1<<HFlag)|(1<<SFlag)\r
611         fetch 8\r
612 .endm\r
613 \r
614 .macro opBITb bit\r
615         and z80f,z80f,#1<<CFlag\r
616         tst r0,#1<<\bit\r
617         orreq z80f,z80f,#(1<<HFlag)|(1<<ZFlag)|(1<<VFlag)\r
618         orrne z80f,z80f,#(1<<HFlag)\r
619 .endm\r
620 \r
621 .macro opBIT7b\r
622         and z80f,z80f,#1<<CFlag\r
623         tst r0,#1<<7\r
624         orreq z80f,z80f,#(1<<HFlag)|(1<<ZFlag)|(1<<VFlag)\r
625         orrne z80f,z80f,#(1<<HFlag)|(1<<SFlag)\r
626 .endm\r
627 ;@---------------------------------------\r
628 \r
629 .macro opCP reg shift\r
630         mov r1,z80a,lsl#4                                               ;@ prepare for check of half carry\r
631         cmp z80a,\reg,lsl#\shift\r
632         mrs z80f,cpsr\r
633         mov z80f,z80f,lsr#28                                    ;@ S,Z,V&C\r
634         eor z80f,z80f,#(1<<CFlag)|(1<<NFlag)    ;@ invert C and set n\r
635         cmp r1,\reg,lsl#\shift+4\r
636         orrcc z80f,z80f,#1<<HFlag\r
637 .endm\r
638 \r
639 .macro opCPA\r
640         mov z80f,#(1<<ZFlag)|(1<<NFlag)                 ;@ set Z & n\r
641         fetch 4\r
642 .endm\r
643 \r
644 .macro opCPH reg\r
645         and r0,\reg,#0xFF000000\r
646         opCP r0 0\r
647         fetch 4\r
648 .endm\r
649 \r
650 .macro opCPL reg\r
651         opCP \reg 8\r
652         fetch 4\r
653 .endm\r
654 \r
655 .macro opCPb\r
656         opCP r0 24\r
657 .endm\r
658 ;@---------------------------------------\r
659 \r
660 .macro opDEC8 reg                                                       ;@for A and memory\r
661         and z80f,z80f,#1<<CFlag                                 ;@save carry\r
662         orr z80f,z80f,#1<<NFlag                                 ;@set n\r
663         tst \reg,#0x0f000000\r
664         orreq z80f,z80f,#1<<HFlag\r
665         subs \reg,\reg,#0x01000000\r
666         orrmi z80f,z80f,#1<<SFlag\r
667         orrvs z80f,z80f,#1<<VFlag\r
668         orreq z80f,z80f,#1<<ZFlag\r
669 .endm\r
670 \r
671 .macro opDEC8H reg                                                      ;@for B, D & H\r
672         and z80f,z80f,#1<<CFlag                                 ;@save carry\r
673         orr z80f,z80f,#1<<NFlag                                 ;@set n\r
674         tst \reg,#0x0f000000\r
675         orreq z80f,z80f,#1<<HFlag\r
676         subs \reg,\reg,#0x01000000\r
677         orrmi z80f,z80f,#1<<SFlag\r
678         orrvs z80f,z80f,#1<<VFlag\r
679         tst \reg,#0xff000000                                    ;@Z\r
680         orreq z80f,z80f,#1<<ZFlag\r
681 .endm\r
682 \r
683 .macro opDEC8L reg                                                      ;@for C, E & L\r
684         mov \reg,\reg,ror#24\r
685         opDEC8H \reg\r
686         mov \reg,\reg,ror#8\r
687 .endm\r
688 \r
689 .macro opDEC8b                                                          ;@for memory\r
690         mov r0,r0,lsl#24\r
691         opDEC8 r0\r
692         mov r0,r0,lsr#24\r
693 .endm\r
694 ;@---------------------------------------\r
695 \r
696 .macro opIN\r
697         stmfd sp!,{r3,r12}\r
698         mov lr,pc\r
699         ldr pc,[cpucontext,#z80_in]                             ;@ r0=port - data returned in r0\r
700         ldmfd sp!,{r3,r12}\r
701 .endm\r
702 \r
703 .macro opIN_C\r
704         mov r0,z80bc, lsr #16\r
705         opIN\r
706 .endm\r
707 ;@---------------------------------------\r
708 \r
709 .macro opINC8 reg                                                       ;@for A and memory\r
710         and z80f,z80f,#1<<CFlag                                 ;@save carry, clear n\r
711         adds \reg,\reg,#0x01000000\r
712         orrmi z80f,z80f,#1<<SFlag\r
713         orrvs z80f,z80f,#1<<VFlag\r
714         orrcs z80f,z80f,#1<<ZFlag                               ;@cs when going from 0xFF to 0x00\r
715         tst \reg,#0x0f000000\r
716         orreq z80f,z80f,#1<<HFlag\r
717 .endm\r
718 \r
719 .macro opINC8H reg                                                      ;@for B, D & H\r
720         opINC8 \reg\r
721 .endm\r
722 \r
723 .macro opINC8L reg                                                      ;@for C, E & L\r
724         mov \reg,\reg,ror#24\r
725         opINC8 \reg\r
726         mov \reg,\reg,ror#8\r
727 .endm\r
728 \r
729 .macro opINC8b                                                          ;@for memory\r
730         mov r0,r0,lsl#24\r
731         opINC8 r0\r
732         mov r0,r0,lsr#24\r
733 .endm\r
734 ;@---------------------------------------\r
735 \r
736 .macro opOR reg shift\r
737         orr z80a,z80a,\reg,lsl#\shift\r
738         sub r0,opcodes,#0x100\r
739         ldrb z80f,[r0,z80a, lsr #24]\r
740 .endm\r
741 \r
742 .macro opORA\r
743         sub r0,opcodes,#0x100\r
744         ldrb z80f,[r0,z80a, lsr #24]\r
745         fetch 4\r
746 .endm\r
747 \r
748 .macro opORH reg\r
749         and r0,\reg,#0xFF000000\r
750         opOR r0 0\r
751         fetch 4\r
752 .endm\r
753 \r
754 .macro opORL reg\r
755         opOR \reg 8\r
756         fetch 4\r
757 .endm\r
758 \r
759 .macro opORb\r
760         opOR r0 24\r
761 .endm\r
762 ;@---------------------------------------\r
763 \r
764 .macro opOUT\r
765         stmfd sp!,{r3,r12}\r
766         mov lr,pc\r
767         ldr pc,[cpucontext,#z80_out]                    ;@ r0=port r1=data\r
768         ldmfd sp!,{r3,r12}\r
769 .endm\r
770 \r
771 .macro opOUT_C\r
772         mov r0,z80bc, lsr #16\r
773         opOUT\r
774 .endm\r
775 ;@---------------------------------------\r
776 \r
777 .macro opPOP\r
778 .if FAST_Z80SP\r
779 .if DRZ80_FOR_PICODRIVE\r
780     @ notaz: try to protect against stack overflows, which tend to happen in Picodrive because of poor timing\r
781     ldr r2,[cpucontext,#z80sp_base]\r
782         ldrb r0,[z80sp],#1\r
783     add r2,r2,#0x2000\r
784     cmp z80sp,r2\r
785 @    subge z80sp,z80sp,#0x2000 @ unstable?\r
786         ldrb r1,[z80sp],#1\r
787     cmp z80sp,r2\r
788 @    subge z80sp,z80sp,#0x2000\r
789         orr r0,r0,r1, lsl #8\r
790 .else\r
791         ldrb r0,[z80sp],#1\r
792         ldrb r1,[z80sp],#1\r
793         orr r0,r0,r1, lsl #8\r
794 .endif\r
795 .else\r
796         mov r0,z80sp\r
797         readmem16\r
798         add z80sp,z80sp,#2\r
799 .endif\r
800 .endm\r
801 \r
802 .macro opPOPreg reg\r
803         opPOP\r
804         mov \reg,r0, lsl #16\r
805         fetch 10\r
806 .endm\r
807 ;@---------------------------------------\r
808 \r
809 .macro opPUSHareg reg @ reg > r1\r
810 .if FAST_Z80SP\r
811 .if DRZ80_FOR_PICODRIVE\r
812     @ notaz: try to protect against stack overflows, which tend to happen in Picodrive because of poor timing\r
813     ldr r0,[cpucontext,#z80sp_base]\r
814     cmp z80sp,r0\r
815     addle z80sp,z80sp,#0x2000\r
816     mov r1,\reg, lsr #8\r
817         strb r1,[z80sp,#-1]!\r
818     cmp z80sp,r0\r
819     addle z80sp,z80sp,#0x2000\r
820         strb \reg,[z80sp,#-1]!\r
821 .else\r
822         mov r1,\reg, lsr #8\r
823         strb r1,[z80sp,#-1]!\r
824         strb \reg,[z80sp,#-1]!\r
825 .endif\r
826 .else\r
827     mov r0,\reg\r
828         sub z80sp,z80sp,#2\r
829         mov r1,z80sp\r
830         writemem16\r
831 .endif\r
832 .endm\r
833 \r
834 .macro opPUSHreg reg\r
835 .if FAST_Z80SP\r
836 .if DRZ80_FOR_PICODRIVE\r
837     ldr r0,[cpucontext,#z80sp_base]\r
838     cmp z80sp,r0\r
839     addle z80sp,z80sp,#0x2000\r
840     mov r1,\reg, lsr #24\r
841         strb r1,[z80sp,#-1]!\r
842     cmp z80sp,r0\r
843     addle z80sp,z80sp,#0x2000\r
844         mov r1,\reg, lsr #16\r
845         strb r1,[z80sp,#-1]!\r
846 .else\r
847     mov r1,\reg, lsr #24\r
848         strb r1,[z80sp,#-1]!\r
849         mov r1,\reg, lsr #16\r
850         strb r1,[z80sp,#-1]!\r
851 .endif\r
852 .else\r
853         mov r0,\reg,lsr #16\r
854         sub z80sp,z80sp,#2\r
855         mov r1,z80sp\r
856         writemem16\r
857 .endif\r
858 .endm\r
859 ;@---------------------------------------\r
860 \r
861 .macro opRESmemHL bit\r
862 .if DRZ80_FOR_PICODRIVE\r
863         mov r0,z80hl, lsr #16\r
864     bl pico_z80_read8\r
865         bic r0,r0,#1<<\bit\r
866         mov r1,z80hl, lsr #16\r
867     bl pico_z80_write8\r
868 .else\r
869         mov r0,z80hl, lsr #16\r
870         stmfd sp!,{r3,r12}\r
871         mov lr,pc\r
872         ldr pc,[cpucontext,#z80_read8]                  ;@ r0 = addr - data returned in r0\r
873         bic r0,r0,#1<<\bit\r
874         mov r1,z80hl, lsr #16\r
875         mov lr,pc\r
876         ldr pc,[cpucontext,#z80_write8]                 ;@ r0=data r1=addr\r
877         ldmfd sp!,{r3,r12}\r
878 .endif\r
879     fetch 15\r
880 .endm\r
881 ;@---------------------------------------\r
882 \r
883 .macro opRESmem bit\r
884 .if DRZ80_FOR_PICODRIVE\r
885         stmfd sp!,{r0}                                                  ;@ save addr as well\r
886     bl pico_z80_read8\r
887         bic r0,r0,#1<<\bit\r
888         ldmfd sp!,{r1}                                                  ;@ restore addr into r1\r
889     bl pico_z80_write8\r
890 .else\r
891         stmfd sp!,{r3,r12}\r
892         stmfd sp!,{r0}                                                  ;@ save addr as well\r
893         mov lr,pc\r
894         ldr pc,[cpucontext,#z80_read8]                  ;@ r0=addr - data returned in r0\r
895         bic r0,r0,#1<<\bit\r
896         ldmfd sp!,{r1}                                                  ;@ restore addr into r1\r
897         mov lr,pc\r
898         ldr pc,[cpucontext,#z80_write8]                 ;@ r0=data r1=addr\r
899         ldmfd sp!,{r3,r12}\r
900 .endif\r
901         fetch 23\r
902 .endm\r
903 ;@---------------------------------------\r
904 \r
905 .macro opRL reg1 reg2 shift\r
906         movs \reg1,\reg2,lsl \shift\r
907         tst z80f,#1<<CFlag                                              ;@doesn't affect ARM carry, as long as the imidiate value is < 0x100. Watch out!\r
908         orrne \reg1,\reg1,#0x01000000\r
909 ;@      and r2,z80f,#1<<CFlag\r
910 ;@      orr $x,$x,r2,lsl#23\r
911         sub r1,opcodes,#0x100\r
912         ldrb z80f,[r1,\reg1,lsr#24]                             ;@get PZS\r
913         orrcs z80f,z80f,#1<<CFlag\r
914 .endm\r
915 \r
916 .macro opRLA\r
917         opRL z80a, z80a, #1\r
918         fetch 8\r
919 .endm\r
920 \r
921 .macro opRLH reg\r
922         and r0,\reg,#0xFF000000                                 ;@mask high to r0\r
923         adds \reg,\reg,r0\r
924         tst z80f,#1<<CFlag                                              ;@doesn't affect ARM carry, as long as the imidiate value is < 0x100. Watch out!\r
925         orrne \reg,\reg,#0x01000000\r
926         sub r1,opcodes,#0x100\r
927         ldrb z80f,[r1,\reg,lsr#24]                              ;@get PZS\r
928         orrcs z80f,z80f,#1<<CFlag\r
929         fetch 8\r
930 .endm\r
931 \r
932 .macro opRLL reg\r
933         opRL r0, \reg, #9\r
934         and \reg,\reg,#0xFF000000                               ;@mask out high\r
935         orr \reg,\reg,r0,lsr#8\r
936         fetch 8\r
937 .endm\r
938 \r
939 .macro opRLb\r
940         opRL r0, r0, #25\r
941         mov r0,r0,lsr#24\r
942 .endm\r
943 ;@---------------------------------------\r
944 \r
945 .macro opRLC reg1 reg2 shift\r
946         movs \reg1,\reg2,lsl#\shift\r
947         orrcs \reg1,\reg1,#0x01000000\r
948         sub r1,opcodes,#0x100\r
949         ldrb z80f,[r1,\reg1,lsr#24]\r
950         orrcs z80f,z80f,#1<<CFlag\r
951 .endm\r
952 \r
953 .macro opRLCA\r
954         opRLC z80a, z80a, 1\r
955         fetch 8\r
956 .endm\r
957 \r
958 .macro opRLCH reg\r
959         and r0,\reg,#0xFF000000                                 ;@mask high to r0\r
960         adds \reg,\reg,r0\r
961         orrcs \reg,\reg,#0x01000000\r
962         sub r1,opcodes,#0x100\r
963         ldrb z80f,[r1,\reg,lsr#24]\r
964         orrcs z80f,z80f,#1<<CFlag\r
965         fetch 8\r
966 .endm\r
967 \r
968 .macro opRLCL reg\r
969         opRLC r0, \reg, 9\r
970         and \reg,\reg,#0xFF000000                               ;@mask out high\r
971         orr \reg,\reg,r0,lsr#8\r
972         fetch 8\r
973 .endm\r
974 \r
975 .macro opRLCb\r
976         opRLC r0, r0, 25\r
977         mov r0,r0,lsr#24\r
978 .endm\r
979 ;@---------------------------------------\r
980 \r
981 .macro opRR reg1 reg2 shift\r
982         movs \reg1,\reg2,lsr#\shift\r
983         tst z80f,#1<<CFlag                                              ;@doesn't affect ARM carry, as long as the imidiate value is < 0x100. Watch out!\r
984         orrne \reg1,\reg1,#0x00000080\r
985 ;@      and r2,z80_f,#PSR_C\r
986 ;@      orr \reg1,\reg1,r2,lsl#6\r
987         sub r1,opcodes,#0x100\r
988         ldrb z80f,[r1,\reg1]\r
989         orrcs z80f,z80f,#1<<CFlag\r
990 .endm\r
991 \r
992 .macro opRRA\r
993         orr z80a,z80a,z80f,lsr#1                                ;@get C\r
994         movs z80a,z80a,ror#25\r
995         mov z80a,z80a,lsl#24\r
996         sub r1,opcodes,#0x100\r
997         ldrb z80f,[r1,z80a,lsr#24]\r
998         orrcs z80f,z80f,#1<<CFlag\r
999         fetch 8\r
1000 .endm\r
1001 \r
1002 .macro opRRH reg\r
1003         orr r0,\reg,z80f,lsr#1                                  ;@get C\r
1004         movs r0,r0,ror#25\r
1005         and \reg,\reg,#0x00FF0000                               ;@mask out low\r
1006         orr \reg,\reg,r0,lsl#24\r
1007         sub r1,opcodes,#0x100\r
1008         ldrb z80f,[r1,\reg,lsr#24]\r
1009         orrcs z80f,z80f,#1<<CFlag\r
1010         fetch 8\r
1011 .endm\r
1012 \r
1013 .macro opRRL reg\r
1014         and r0,\reg,#0x00FF0000                                 ;@mask out low to r0\r
1015         opRR r0 r0 17\r
1016         and \reg,\reg,#0xFF000000                               ;@mask out high\r
1017         orr \reg,\reg,r0,lsl#16\r
1018         fetch 8\r
1019 .endm\r
1020 \r
1021 .macro opRRb\r
1022         opRR r0 r0 1\r
1023 .endm\r
1024 ;@---------------------------------------\r
1025 \r
1026 .macro opRRC reg1 reg2 shift\r
1027         movs \reg1,\reg2,lsr#\shift\r
1028         orrcs \reg1,\reg1,#0x00000080\r
1029         sub r1,opcodes,#0x100\r
1030         ldrb z80f,[r1,\reg1]\r
1031         orrcs z80f,z80f,#1<<CFlag\r
1032 .endm\r
1033 \r
1034 .macro opRRCA\r
1035         opRRC z80a, z80a, 25\r
1036         mov z80a,z80a,lsl#24\r
1037         fetch 8\r
1038 .endm\r
1039 \r
1040 .macro opRRCH reg\r
1041         opRRC r0, \reg, 25\r
1042         and \reg,\reg,#0x00FF0000                               ;@mask out low\r
1043         orr \reg,\reg,r0,lsl#24\r
1044         fetch 8\r
1045 .endm\r
1046 \r
1047 .macro opRRCL reg\r
1048         and r0,\reg,#0x00FF0000                                 ;@mask low to r0\r
1049         opRRC r0, r0, 17\r
1050         and \reg,\reg,#0xFF000000                               ;@mask out high\r
1051         orr \reg,\reg,r0,lsl#16\r
1052         fetch 8\r
1053 .endm\r
1054 \r
1055 .macro opRRCb\r
1056         opRRC r0, r0, 1\r
1057 .endm\r
1058 ;@---------------------------------------\r
1059 \r
1060 .macro opRST addr\r
1061         ldr r0,[cpucontext,#z80pc_base]\r
1062         sub r2,z80pc,r0\r
1063     opPUSHareg r2\r
1064         mov r0,#\addr\r
1065         rebasepc\r
1066         fetch 11\r
1067 .endm\r
1068 ;@---------------------------------------\r
1069 \r
1070 .macro opSBC\r
1071         eor z80f,z80f,#1<<CFlag                                 ;@ invert C\r
1072         movs z80f,z80f,lsr#2                                    ;@ get C\r
1073         subcc r0,r0,#0x100\r
1074         eor z80f,r0,z80a,lsr#24                                 ;@ prepare for check of H\r
1075         sbcs z80a,z80a,r0,ror#8\r
1076         mrs r0,cpsr\r
1077         eor z80f,z80f,z80a,lsr#24\r
1078         and z80f,z80f,#1<<HFlag                                 ;@ H, correct\r
1079         orr z80f,z80f,r0,lsr#28                                 ;@ S,Z,V&C\r
1080         eor z80f,z80f,#(1<<CFlag)|(1<<NFlag)    ;@ invert C and set n.\r
1081 .endm\r
1082 \r
1083 .macro opSBCA\r
1084         movs z80f,z80f,lsr#2                                    ;@ get C\r
1085         movcc z80a,#0x00000000\r
1086         movcs z80a,#0xFF000000\r
1087         movcc z80f,#(1<<NFlag)|(1<<ZFlag)\r
1088         movcs z80f,#(1<<NFlag)|(1<<SFlag)|(1<<CFlag)|(1<<HFlag)\r
1089         fetch 4\r
1090 .endm\r
1091 \r
1092 .macro opSBCH reg\r
1093         mov r0,\reg,lsr#24\r
1094         opSBC\r
1095         fetch 4\r
1096 .endm\r
1097 \r
1098 .macro opSBCL reg\r
1099         mov r0,\reg,lsl#8\r
1100         eor z80f,z80f,#1<<CFlag                                 ;@ invert C\r
1101         movs z80f,z80f,lsr#2                                    ;@ get C\r
1102         sbccc r0,r0,#0xFF000000\r
1103         mov r1,z80a,lsl#4                                               ;@ prepare for check of H\r
1104         sbcs z80a,z80a,r0\r
1105         mrs z80f,cpsr\r
1106         mov z80f,z80f,lsr#28                                    ;@ S,Z,V&C\r
1107         eor z80f,z80f,#(1<<CFlag)|(1<<NFlag)    ;@ invert C and set n.\r
1108         cmp r1,r0,lsl#4\r
1109         orrcc z80f,z80f,#1<<HFlag                               ;@ H, correct\r
1110         fetch 4\r
1111 .endm\r
1112 \r
1113 .macro opSBCb\r
1114         opSBC\r
1115 .endm\r
1116 ;@---------------------------------------\r
1117 \r
1118 .macro opSBC16 reg\r
1119         eor z80f,z80f,#1<<CFlag                                 ;@ invert C\r
1120         movs z80f,z80f,lsr#2                                    ;@ get C\r
1121         sbc r1,r1,r1                                                    ;@ set r1 to -1 or 0.\r
1122         orr r0,\reg,r1,lsr#16\r
1123         mov r1,z80hl,lsl#4                                              ;@ prepare for check of H\r
1124         sbcs z80hl,z80hl,r0\r
1125         mrs z80f,cpsr\r
1126         mov z80f,z80f,lsr#28                                    ;@ S,Z,V&C\r
1127         eor z80f,z80f,#(1<<CFlag)|(1<<NFlag)    ;@ invert C and set n.\r
1128         cmp r1,r0,lsl#4\r
1129         orrcc z80f,z80f,#1<<HFlag                               ;@ H, correct\r
1130         fetch 15\r
1131 .endm\r
1132 \r
1133 .macro opSBC16HL\r
1134         movs z80f,z80f,lsr#2                                    ;@ get C\r
1135         mov z80hl,#0x00000000\r
1136         subcs z80hl,z80hl,#0x00010000\r
1137         movcc z80f,#(1<<NFlag)|(1<<ZFlag)\r
1138         movcs z80f,#(1<<NFlag)|(1<<SFlag)|(1<<CFlag)|(1<<HFlag)\r
1139         fetch 15\r
1140 .endm\r
1141 ;@---------------------------------------\r
1142 \r
1143 .macro opSETmemHL bit\r
1144 .if DRZ80_FOR_PICODRIVE\r
1145         mov r0,z80hl, lsr #16\r
1146     bl pico_z80_read8\r
1147         orr r0,r0,#1<<\bit\r
1148         mov r1,z80hl, lsr #16\r
1149     bl pico_z80_write8\r
1150 .else\r
1151         mov r0,z80hl, lsr #16\r
1152         stmfd sp!,{r3,r12}\r
1153         mov lr,pc\r
1154         ldr pc,[cpucontext,#z80_read8]                  ;@ r0 = addr - data returned in r0\r
1155         orr r0,r0,#1<<\bit\r
1156         mov r1,z80hl, lsr #16\r
1157         mov lr,pc\r
1158         ldr pc,[cpucontext,#z80_write8]                 ;@ r0=data r1=addr\r
1159         ldmfd sp!,{r3,r12}\r
1160 .endif\r
1161     fetch 15\r
1162 .endm\r
1163 ;@---------------------------------------\r
1164 \r
1165 .macro opSETmem bit\r
1166 .if DRZ80_FOR_PICODRIVE\r
1167         stmfd sp!,{r0}  ;@ save addr as well\r
1168     bl pico_z80_read8\r
1169         orr r0,r0,#1<<\bit\r
1170         ldmfd sp!,{r1}  ;@ restore addr into r1\r
1171     bl pico_z80_write8\r
1172 .else\r
1173         stmfd sp!,{r3,r12}\r
1174         stmfd sp!,{r0}  ;@ save addr as well\r
1175         mov lr,pc\r
1176         ldr pc,[cpucontext,#z80_read8]                  ;@ r0=addr - data returned in r0\r
1177         orr r0,r0,#1<<\bit\r
1178         ldmfd sp!,{r1}  ;@ restore addr into r1\r
1179         mov lr,pc\r
1180         ldr pc,[cpucontext,#z80_write8]                 ;@ r0=data r1=addr\r
1181         ldmfd sp!,{r3,r12}\r
1182 .endif\r
1183         fetch 23\r
1184 .endm\r
1185 ;@---------------------------------------\r
1186 \r
1187 .macro opSLA reg1 reg2 shift\r
1188         movs \reg1,\reg2,lsl#\shift\r
1189         sub r1,opcodes,#0x100\r
1190         ldrb z80f,[r1,\reg1,lsr#24]\r
1191         orrcs z80f,z80f,#1<<CFlag\r
1192 .endm\r
1193 \r
1194 .macro opSLAA\r
1195         opSLA z80a, z80a, 1\r
1196         fetch 8\r
1197 .endm\r
1198 \r
1199 .macro opSLAH reg\r
1200         and r0,\reg,#0xFF000000                                 ;@mask high to r0\r
1201         adds \reg,\reg,r0\r
1202         sub r1,opcodes,#0x100\r
1203         ldrb z80f,[r1,\reg,lsr#24]\r
1204         orrcs z80f,z80f,#1<<CFlag\r
1205         fetch 8\r
1206 .endm\r
1207 \r
1208 .macro opSLAL reg\r
1209         opSLA r0, \reg, 9\r
1210         and \reg,\reg,#0xFF000000                               ;@mask out high\r
1211         orr \reg,\reg,r0,lsr#8\r
1212         fetch 8\r
1213 .endm\r
1214 \r
1215 .macro opSLAb\r
1216         opSLA r0, r0, 25\r
1217         mov r0,r0,lsr#24\r
1218 .endm\r
1219 ;@---------------------------------------\r
1220 \r
1221 .macro opSLL reg1 reg2 shift\r
1222         movs \reg1,\reg2,lsl#\shift\r
1223         orr \reg1,\reg1,#0x01000000\r
1224         sub r1,opcodes,#0x100\r
1225         ldrb z80f,[r1,\reg1,lsr#24]\r
1226         orrcs z80f,z80f,#1<<CFlag\r
1227 .endm\r
1228 \r
1229 .macro opSLLA\r
1230         opSLL z80a, z80a, 1\r
1231         fetch 8\r
1232 .endm\r
1233 \r
1234 .macro opSLLH reg\r
1235         and r0,\reg,#0xFF000000                                 ;@mask high to r0\r
1236         adds \reg,\reg,r0\r
1237         orr \reg,\reg,#0x01000000\r
1238         sub r1,opcodes,#0x100\r
1239         ldrb z80f,[r1,\reg,lsr#24]\r
1240         orrcs z80f,z80f,#1<<CFlag\r
1241         fetch 8\r
1242 .endm\r
1243 \r
1244 .macro opSLLL reg\r
1245         opSLL r0, \reg, 9\r
1246         and \reg,\reg,#0xFF000000                               ;@mask out high\r
1247         orr \reg,\reg,r0,lsr#8\r
1248         fetch 8\r
1249 .endm\r
1250 \r
1251 .macro opSLLb\r
1252         opSLL r0, r0, 25\r
1253         mov r0,r0,lsr#24\r
1254 .endm\r
1255 ;@---------------------------------------\r
1256 \r
1257 .macro opSRA reg1 reg2\r
1258         movs \reg1,\reg2,asr#25\r
1259         and \reg1,\reg1,#0xFF\r
1260         sub r1,opcodes,#0x100\r
1261         ldrb z80f,[r1,\reg1]\r
1262         orrcs z80f,z80f,#1<<CFlag\r
1263 .endm\r
1264 \r
1265 .macro opSRAA\r
1266         movs r0,z80a,asr#25\r
1267         mov z80a,r0,lsl#24\r
1268         sub r1,opcodes,#0x100\r
1269         ldrb z80f,[r1,z80a,lsr#24]\r
1270         orrcs z80f,z80f,#1<<CFlag\r
1271         fetch 8\r
1272 .endm\r
1273 \r
1274 .macro opSRAH reg\r
1275         movs r0,\reg,asr#25\r
1276         and \reg,\reg,#0x00FF0000                               ;@mask out low\r
1277         orr \reg,\reg,r0,lsl#24\r
1278         sub r1,opcodes,#0x100\r
1279         ldrb z80f,[r1,\reg,lsr#24]\r
1280         orrcs z80f,z80f,#1<<CFlag\r
1281         fetch 8\r
1282 .endm\r
1283 \r
1284 .macro opSRAL reg\r
1285         mov r0,\reg,lsl#8\r
1286         opSRA r0, r0\r
1287         and \reg,\reg,#0xFF000000                               ;@mask out high\r
1288         orr \reg,\reg,r0,lsl#16\r
1289         fetch 8\r
1290 .endm\r
1291 \r
1292 .macro opSRAb\r
1293         mov r0,r0,lsl#24\r
1294         opSRA r0, r0\r
1295 .endm\r
1296 ;@---------------------------------------\r
1297 \r
1298 .macro opSRL reg1 reg2 shift\r
1299         movs \reg1,\reg2,lsr#\shift\r
1300         sub r1,opcodes,#0x100\r
1301         ldrb z80f,[r1,\reg1]\r
1302         orrcs z80f,z80f,#1<<CFlag\r
1303 .endm\r
1304 \r
1305 .macro opSRLA\r
1306         opSRL z80a, z80a, 25\r
1307         mov z80a,z80a,lsl#24\r
1308         fetch 8\r
1309 .endm\r
1310 \r
1311 .macro opSRLH reg\r
1312         opSRL r0, \reg, 25\r
1313         and \reg,\reg,#0x00FF0000                               ;@mask out low\r
1314         orr \reg,\reg,r0,lsl#24\r
1315         fetch 8\r
1316 .endm\r
1317 \r
1318 .macro opSRLL reg\r
1319         mov r0,\reg,lsl#8\r
1320         opSRL r0, r0, 25\r
1321         and \reg,\reg,#0xFF000000                               ;@mask out high\r
1322         orr \reg,\reg,r0,lsl#16\r
1323         fetch 8\r
1324 .endm\r
1325 \r
1326 .macro opSRLb\r
1327         opSRL r0, r0, 1\r
1328 .endm\r
1329 ;@---------------------------------------\r
1330 \r
1331 .macro opSUB reg shift\r
1332         mov r1,z80a,lsl#4                                               ;@ Prepare for check of half carry\r
1333         subs z80a,z80a,\reg,lsl#\shift\r
1334         mrs z80f,cpsr\r
1335         mov z80f,z80f,lsr#28                                    ;@ S,Z,V&C\r
1336         eor z80f,z80f,#(1<<CFlag)|(1<<NFlag)    ;@ invert C and set n\r
1337         cmp r1,\reg,lsl#\shift+4\r
1338         orrcc z80f,z80f,#1<<HFlag\r
1339 .endm\r
1340 \r
1341 .macro opSUBA\r
1342         mov z80a,#0\r
1343         mov z80f,#(1<<ZFlag)|(1<<NFlag)                 ;@ set Z & n\r
1344         fetch 4\r
1345 .endm\r
1346 \r
1347 .macro opSUBH reg\r
1348         and r0,\reg,#0xFF000000\r
1349         opSUB r0, 0\r
1350         fetch 4\r
1351 .endm\r
1352 \r
1353 .macro opSUBL reg\r
1354         opSUB \reg, 8\r
1355         fetch 4\r
1356 .endm\r
1357 \r
1358 .macro opSUBb\r
1359         opSUB r0, 24\r
1360 .endm\r
1361 ;@---------------------------------------\r
1362 \r
1363 .macro opXOR reg shift\r
1364         eor z80a,z80a,\reg,lsl#\shift\r
1365         sub r0,opcodes,#0x100\r
1366         ldrb z80f,[r0,z80a, lsr #24]\r
1367 .endm\r
1368 \r
1369 .macro opXORA\r
1370         mov z80a,#0\r
1371         mov z80f,#(1<<ZFlag)|(1<<VFlag)\r
1372         fetch 4\r
1373 .endm\r
1374 \r
1375 .macro opXORH reg\r
1376         and r0,\reg,#0xFF000000\r
1377         opXOR r0, 0\r
1378         fetch 4\r
1379 .endm\r
1380 \r
1381 .macro opXORL reg\r
1382         opXOR \reg, 8\r
1383         fetch 4\r
1384 .endm\r
1385 \r
1386 .macro opXORb\r
1387         opXOR r0, 24\r
1388 .endm\r
1389 ;@---------------------------------------\r
1390 \r
1391 \r
1392 ;@ --------------------------- Framework --------------------------\r
1393     \r
1394 .text\r
1395 \r
1396 DrZ80Run:\r
1397         ;@ r0 = pointer to cpu context\r
1398         ;@ r1 = ISTATES to execute  \r
1399         ;@#########################################   \r
1400         stmdb sp!,{r4-r12,lr}                                   ;@ save registers on stack\r
1401         mov cpucontext,r0                                               ;@ setup main memory pointer\r
1402         mov z80_icount,r1                                               ;@ setup number of Tstates to execute\r
1403 \r
1404 .if INTERRUPT_MODE == 0\r
1405         ldrh r0,[cpucontext,#z80irq] @ 0x4C\r
1406 .endif\r
1407         ldmia cpucontext,{z80pc-z80sp}                  ;@ load Z80 registers\r
1408 \r
1409 .if INTERRUPT_MODE == 0\r
1410         ;@ check ints\r
1411         tst r0,#1\r
1412         movnes r0,r0,lsr #8\r
1413     blne DoInterrupt\r
1414 .endif\r
1415 \r
1416         ldrb r0,[z80pc],#1    ;@ get first op code\r
1417         ldr opcodes,MAIN_opcodes_POINTER2\r
1418         ldr pc,[opcodes,r0, lsl #2]  ;@ execute op code\r
1419 \r
1420 MAIN_opcodes_POINTER2: .word MAIN_opcodes\r
1421 \r
1422 \r
1423 z80_execute_end:\r
1424         ;@ save registers in CPU context\r
1425         stmia cpucontext,{z80pc-z80sp}                  ;@ save Z80 registers\r
1426     mov r0,z80_icount\r
1427         ldmia sp!,{r4-r12,pc}                                   ;@ restore registers from stack and return to C code\r
1428 \r
1429 .if INTERRUPT_MODE\r
1430 Interrupt_local: .word Interrupt\r
1431 .endif\r
1432 \r
1433 DoInterrupt:\r
1434 .if INTERRUPT_MODE\r
1435         ;@ Don't do own int handler, call mames instead\r
1436 \r
1437         ;@ save everything back into DrZ80 context\r
1438         stmia cpucontext,{z80pc-z80sp}                  ;@ save Z80 registers\r
1439         stmfd sp!,{r3,r4,r5,lr}                                 ;@ save rest of regs on stack\r
1440         mov lr,pc\r
1441         ldr pc,Interrupt_local\r
1442         ldmfd sp!,{r3,r4,r5,lr}                                 ;@ load regs from stack\r
1443         ;@ reload regs from DrZ80 context\r
1444         ldmia cpucontext,{z80pc-z80sp}                  ;@ load Z80 registers\r
1445         mov pc,lr ;@ return\r
1446 .else\r
1447         stmfd sp!,{lr}\r
1448 \r
1449         tst r0,#4 ;@ check halt\r
1450         addne z80pc,z80pc,#1\r
1451 \r
1452         ldrb r1,[cpucontext,#z80im]\r
1453 \r
1454     ;@ clear halt and int flags\r
1455         eor r0,r0,r0\r
1456         strb r0,[cpucontext,#z80if]\r
1457 \r
1458         ;@ now check int mode\r
1459     tst r1,#1\r
1460     bne DoInterrupt_mode1\r
1461     tst r1,#2\r
1462     bne DoInterrupt_mode2\r
1463     b   DoInterrupt_mode0\r
1464 \r
1465 DoInterrupt_mode0:\r
1466         ;@ get 3 byte vector\r
1467         ldr r2,[cpucontext, #z80irqvector]\r
1468         and r1,r2,#0xFF0000\r
1469         cmp r1,#0xCD0000  ;@ call\r
1470         bne 1f\r
1471         ;@ ########\r
1472         ;@ # call\r
1473         ;@ ########\r
1474         ;@ save current pc on stack\r
1475         ldr r0,[cpucontext,#z80pc_base]\r
1476         sub r0,z80pc,r0\r
1477 .if FAST_Z80SP\r
1478         mov r1,r0, lsr #8\r
1479         strb r1,[z80sp,#-1]!\r
1480         strb r0,[z80sp,#-1]!\r
1481 .else\r
1482         sub z80sp,z80sp,#2\r
1483         mov r1,z80sp\r
1484         writemem16\r
1485         ldr r2,[cpucontext, #z80irqvector]\r
1486 .endif\r
1487         ;@ jump to vector\r
1488         mov r2,r2,lsl#16\r
1489         mov r0,r2,lsr#16\r
1490         ;@ rebase new pc\r
1491         rebasepc\r
1492 \r
1493         b DoInterrupt_end\r
1494 \r
1495 1:\r
1496         cmp r1,#0xC30000  ;@ jump\r
1497         bne DoInterrupt_mode1    ;@ rst\r
1498         ;@ #######\r
1499         ;@ # jump\r
1500         ;@ #######\r
1501         ;@ jump to vector\r
1502         mov r2,r2,lsl#16\r
1503         mov r0,r2,lsr#16\r
1504         ;@ rebase new pc\r
1505         rebasepc\r
1506 \r
1507         b DoInterrupt_end\r
1508 \r
1509 DoInterrupt_mode1:\r
1510         ldr r0,[cpucontext,#z80pc_base]\r
1511         sub r2,z80pc,r0\r
1512     opPUSHareg r2\r
1513         mov r0,#0x38\r
1514         rebasepc\r
1515 \r
1516         b DoInterrupt_end\r
1517 \r
1518 DoInterrupt_mode2:\r
1519         ;@ push pc on stack\r
1520         ldr r0,[cpucontext,#z80pc_base]\r
1521         sub r2,z80pc,r0\r
1522     opPUSHareg r2\r
1523 \r
1524         ;@ get 1 byte vector address\r
1525         ldrb r0,[cpucontext, #z80irqvector]\r
1526         ldr r1,[cpucontext, #z80i]\r
1527         orr r0,r0,r1,lsr#16\r
1528 \r
1529         ;@ read new pc from vector address\r
1530 .if DRZ80_FOR_PICODRIVE\r
1531     bl pico_z80_read16\r
1532     bic r0,r0,#0xfe000\r
1533     ldr r1,[cpucontext,#z80pc_base]\r
1534     add z80pc,r1,r0\r
1535 .if UPDATE_CONTEXT\r
1536      str z80pc,[cpucontext,#z80pc_pointer]\r
1537 .endif\r
1538 .else\r
1539         stmfd sp!,{r3,r12}\r
1540         mov lr,pc\r
1541         ldr pc,[cpucontext,#z80_read16]\r
1542 \r
1543         ;@ rebase new pc\r
1544 .if UPDATE_CONTEXT\r
1545      str z80pc,[cpucontext,#z80pc_pointer]\r
1546 .endif\r
1547         mov lr,pc\r
1548         ldr pc,[cpucontext,#z80_rebasePC] ;@ r0=new pc - external function sets z80pc_base and returns new z80pc in r0\r
1549         ldmfd sp!,{r3,r12}\r
1550         mov z80pc,r0    \r
1551 .endif\r
1552 \r
1553 DoInterrupt_end:\r
1554         ;@ interupt accepted so callback irq interface\r
1555         ldr r0,[cpucontext, #z80irqcallback]\r
1556         tst r0,r0\r
1557         ldmeqfd sp!,{pc}\r
1558         stmfd sp!,{r3,r12}\r
1559         mov lr,pc\r
1560         mov pc,r0    ;@ call callback function\r
1561         ldmfd sp!,{r3,r12}\r
1562         ldmfd sp!,{pc} ;@ return\r
1563 \r
1564 .endif\r
1565 \r
1566 .data\r
1567 .align 4\r
1568 \r
1569 DAATable: .hword  (0x00<<8)|(1<<ZFlag)|(1<<VFlag)\r
1570          .hword  (0x01<<8)                  \r
1571          .hword  (0x02<<8)                  \r
1572          .hword  (0x03<<8)               |(1<<VFlag)\r
1573          .hword  (0x04<<8)                  \r
1574          .hword  (0x05<<8)               |(1<<VFlag)\r
1575          .hword  (0x06<<8)               |(1<<VFlag)\r
1576          .hword  (0x07<<8)                  \r
1577          .hword  (0x08<<8)               \r
1578          .hword  (0x09<<8)            |(1<<VFlag)\r
1579          .hword  (0x10<<8)         |(1<<HFlag)      \r
1580          .hword  (0x11<<8)         |(1<<HFlag)   |(1<<VFlag)\r
1581          .hword  (0x12<<8)         |(1<<HFlag)   |(1<<VFlag)\r
1582          .hword  (0x13<<8)         |(1<<HFlag)      \r
1583          .hword  (0x14<<8)         |(1<<HFlag)   |(1<<VFlag)\r
1584          .hword  (0x15<<8)         |(1<<HFlag)      \r
1585          .hword  (0x10<<8)                  \r
1586          .hword  (0x11<<8)               |(1<<VFlag)\r
1587          .hword  (0x12<<8)               |(1<<VFlag)\r
1588          .hword  (0x13<<8)                  \r
1589          .hword  (0x14<<8)               |(1<<VFlag)\r
1590          .hword  (0x15<<8)                  \r
1591          .hword  (0x16<<8)                  \r
1592          .hword  (0x17<<8)               |(1<<VFlag)\r
1593          .hword  (0x18<<8)            |(1<<VFlag)\r
1594          .hword  (0x19<<8)               \r
1595          .hword  (0x20<<8)      |(1<<HFlag)      \r
1596          .hword  (0x21<<8)      |(1<<HFlag)   |(1<<VFlag)\r
1597          .hword  (0x22<<8)      |(1<<HFlag)   |(1<<VFlag)\r
1598          .hword  (0x23<<8)      |(1<<HFlag)      \r
1599          .hword  (0x24<<8)      |(1<<HFlag)   |(1<<VFlag)\r
1600          .hword  (0x25<<8)      |(1<<HFlag)      \r
1601          .hword  (0x20<<8)               \r
1602          .hword  (0x21<<8)            |(1<<VFlag)\r
1603          .hword  (0x22<<8)            |(1<<VFlag)\r
1604          .hword  (0x23<<8)               \r
1605          .hword  (0x24<<8)            |(1<<VFlag)\r
1606          .hword  (0x25<<8)               \r
1607          .hword  (0x26<<8)               \r
1608          .hword  (0x27<<8)            |(1<<VFlag)\r
1609          .hword  (0x28<<8)         |(1<<VFlag)\r
1610          .hword  (0x29<<8)            \r
1611          .hword  (0x30<<8)      |(1<<HFlag)   |(1<<VFlag)\r
1612          .hword  (0x31<<8)      |(1<<HFlag)      \r
1613          .hword  (0x32<<8)      |(1<<HFlag)      \r
1614          .hword  (0x33<<8)      |(1<<HFlag)   |(1<<VFlag)\r
1615          .hword  (0x34<<8)      |(1<<HFlag)      \r
1616          .hword  (0x35<<8)      |(1<<HFlag)   |(1<<VFlag)\r
1617          .hword  (0x30<<8)            |(1<<VFlag)\r
1618          .hword  (0x31<<8)               \r
1619          .hword  (0x32<<8)               \r
1620          .hword  (0x33<<8)            |(1<<VFlag)\r
1621          .hword  (0x34<<8)               \r
1622          .hword  (0x35<<8)            |(1<<VFlag)\r
1623          .hword  (0x36<<8)            |(1<<VFlag)\r
1624          .hword  (0x37<<8)               \r
1625          .hword  (0x38<<8)            \r
1626          .hword  (0x39<<8)         |(1<<VFlag)\r
1627          .hword  (0x40<<8)         |(1<<HFlag)      \r
1628          .hword  (0x41<<8)         |(1<<HFlag)   |(1<<VFlag)\r
1629          .hword  (0x42<<8)         |(1<<HFlag)   |(1<<VFlag)\r
1630          .hword  (0x43<<8)         |(1<<HFlag)      \r
1631          .hword  (0x44<<8)         |(1<<HFlag)   |(1<<VFlag)\r
1632          .hword  (0x45<<8)         |(1<<HFlag)      \r
1633          .hword  (0x40<<8)                  \r
1634          .hword  (0x41<<8)               |(1<<VFlag)\r
1635          .hword  (0x42<<8)               |(1<<VFlag)\r
1636          .hword  (0x43<<8)                  \r
1637          .hword  (0x44<<8)               |(1<<VFlag)\r
1638          .hword  (0x45<<8)                  \r
1639          .hword  (0x46<<8)                  \r
1640          .hword  (0x47<<8)               |(1<<VFlag)\r
1641          .hword  (0x48<<8)            |(1<<VFlag)\r
1642          .hword  (0x49<<8)               \r
1643          .hword  (0x50<<8)         |(1<<HFlag)   |(1<<VFlag)\r
1644          .hword  (0x51<<8)         |(1<<HFlag)      \r
1645          .hword  (0x52<<8)         |(1<<HFlag)      \r
1646          .hword  (0x53<<8)         |(1<<HFlag)   |(1<<VFlag)\r
1647          .hword  (0x54<<8)         |(1<<HFlag)      \r
1648          .hword  (0x55<<8)         |(1<<HFlag)   |(1<<VFlag)\r
1649          .hword  (0x50<<8)               |(1<<VFlag)\r
1650          .hword  (0x51<<8)                  \r
1651          .hword  (0x52<<8)                  \r
1652          .hword  (0x53<<8)               |(1<<VFlag)\r
1653          .hword  (0x54<<8)                  \r
1654          .hword  (0x55<<8)               |(1<<VFlag)\r
1655          .hword  (0x56<<8)               |(1<<VFlag)\r
1656          .hword  (0x57<<8)                  \r
1657          .hword  (0x58<<8)               \r
1658          .hword  (0x59<<8)            |(1<<VFlag)\r
1659          .hword  (0x60<<8)      |(1<<HFlag)   |(1<<VFlag)\r
1660          .hword  (0x61<<8)      |(1<<HFlag)      \r
1661          .hword  (0x62<<8)      |(1<<HFlag)      \r
1662          .hword  (0x63<<8)      |(1<<HFlag)   |(1<<VFlag)\r
1663          .hword  (0x64<<8)      |(1<<HFlag)      \r
1664          .hword  (0x65<<8)      |(1<<HFlag)   |(1<<VFlag)\r
1665          .hword  (0x60<<8)            |(1<<VFlag)\r
1666          .hword  (0x61<<8)               \r
1667          .hword  (0x62<<8)               \r
1668          .hword  (0x63<<8)            |(1<<VFlag)\r
1669          .hword  (0x64<<8)               \r
1670          .hword  (0x65<<8)            |(1<<VFlag)\r
1671          .hword  (0x66<<8)            |(1<<VFlag)\r
1672          .hword  (0x67<<8)               \r
1673          .hword  (0x68<<8)            \r
1674          .hword  (0x69<<8)         |(1<<VFlag)\r
1675          .hword  (0x70<<8)      |(1<<HFlag)      \r
1676          .hword  (0x71<<8)      |(1<<HFlag)   |(1<<VFlag)\r
1677          .hword  (0x72<<8)      |(1<<HFlag)   |(1<<VFlag)\r
1678          .hword  (0x73<<8)      |(1<<HFlag)      \r
1679          .hword  (0x74<<8)      |(1<<HFlag)   |(1<<VFlag)\r
1680          .hword  (0x75<<8)      |(1<<HFlag)      \r
1681          .hword  (0x70<<8)               \r
1682          .hword  (0x71<<8)            |(1<<VFlag)\r
1683          .hword  (0x72<<8)            |(1<<VFlag)\r
1684          .hword  (0x73<<8)               \r
1685          .hword  (0x74<<8)            |(1<<VFlag)\r
1686          .hword  (0x75<<8)               \r
1687          .hword  (0x76<<8)               \r
1688          .hword  (0x77<<8)            |(1<<VFlag)\r
1689          .hword  (0x78<<8)         |(1<<VFlag)\r
1690          .hword  (0x79<<8)            \r
1691          .hword  (0x80<<8)|(1<<SFlag)      |(1<<HFlag)      \r
1692          .hword  (0x81<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)\r
1693          .hword  (0x82<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)\r
1694          .hword  (0x83<<8)|(1<<SFlag)      |(1<<HFlag)      \r
1695          .hword  (0x84<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)\r
1696          .hword  (0x85<<8)|(1<<SFlag)      |(1<<HFlag)      \r
1697          .hword  (0x80<<8)|(1<<SFlag)               \r
1698          .hword  (0x81<<8)|(1<<SFlag)            |(1<<VFlag)\r
1699          .hword  (0x82<<8)|(1<<SFlag)            |(1<<VFlag)\r
1700          .hword  (0x83<<8)|(1<<SFlag)               \r
1701          .hword  (0x84<<8)|(1<<SFlag)            |(1<<VFlag)\r
1702          .hword  (0x85<<8)|(1<<SFlag)               \r
1703          .hword  (0x86<<8)|(1<<SFlag)               \r
1704          .hword  (0x87<<8)|(1<<SFlag)            |(1<<VFlag)\r
1705          .hword  (0x88<<8)|(1<<SFlag)         |(1<<VFlag)\r
1706          .hword  (0x89<<8)|(1<<SFlag)            \r
1707          .hword  (0x90<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)\r
1708          .hword  (0x91<<8)|(1<<SFlag)      |(1<<HFlag)      \r
1709          .hword  (0x92<<8)|(1<<SFlag)      |(1<<HFlag)      \r
1710          .hword  (0x93<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)\r
1711          .hword  (0x94<<8)|(1<<SFlag)      |(1<<HFlag)      \r
1712          .hword  (0x95<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)\r
1713          .hword  (0x90<<8)|(1<<SFlag)            |(1<<VFlag)\r
1714          .hword  (0x91<<8)|(1<<SFlag)               \r
1715          .hword  (0x92<<8)|(1<<SFlag)               \r
1716          .hword  (0x93<<8)|(1<<SFlag)            |(1<<VFlag)\r
1717          .hword  (0x94<<8)|(1<<SFlag)               \r
1718          .hword  (0x95<<8)|(1<<SFlag)            |(1<<VFlag)\r
1719          .hword  (0x96<<8)|(1<<SFlag)            |(1<<VFlag)\r
1720          .hword  (0x97<<8)|(1<<SFlag)               \r
1721          .hword  (0x98<<8)|(1<<SFlag)            \r
1722          .hword  (0x99<<8)|(1<<SFlag)         |(1<<VFlag)\r
1723          .hword  (0x00<<8)   |(1<<ZFlag)   |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
1724          .hword  (0x01<<8)         |(1<<HFlag)         |(1<<CFlag)\r
1725          .hword  (0x02<<8)         |(1<<HFlag)         |(1<<CFlag)\r
1726          .hword  (0x03<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
1727          .hword  (0x04<<8)         |(1<<HFlag)         |(1<<CFlag)\r
1728          .hword  (0x05<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
1729          .hword  (0x00<<8)   |(1<<ZFlag)         |(1<<VFlag)   |(1<<CFlag)\r
1730          .hword  (0x01<<8)                     |(1<<CFlag)\r
1731          .hword  (0x02<<8)                     |(1<<CFlag)\r
1732          .hword  (0x03<<8)               |(1<<VFlag)   |(1<<CFlag)\r
1733          .hword  (0x04<<8)                     |(1<<CFlag)\r
1734          .hword  (0x05<<8)               |(1<<VFlag)   |(1<<CFlag)\r
1735          .hword  (0x06<<8)               |(1<<VFlag)   |(1<<CFlag)\r
1736          .hword  (0x07<<8)                     |(1<<CFlag)\r
1737          .hword  (0x08<<8)                  |(1<<CFlag)\r
1738          .hword  (0x09<<8)            |(1<<VFlag)   |(1<<CFlag)\r
1739          .hword  (0x10<<8)         |(1<<HFlag)         |(1<<CFlag)\r
1740          .hword  (0x11<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
1741          .hword  (0x12<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
1742          .hword  (0x13<<8)         |(1<<HFlag)         |(1<<CFlag)\r
1743          .hword  (0x14<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
1744          .hword  (0x15<<8)         |(1<<HFlag)         |(1<<CFlag)\r
1745          .hword  (0x10<<8)                     |(1<<CFlag)\r
1746          .hword  (0x11<<8)               |(1<<VFlag)   |(1<<CFlag)\r
1747          .hword  (0x12<<8)               |(1<<VFlag)   |(1<<CFlag)\r
1748          .hword  (0x13<<8)                     |(1<<CFlag)\r
1749          .hword  (0x14<<8)               |(1<<VFlag)   |(1<<CFlag)\r
1750          .hword  (0x15<<8)                     |(1<<CFlag)\r
1751          .hword  (0x16<<8)                     |(1<<CFlag)\r
1752          .hword  (0x17<<8)               |(1<<VFlag)   |(1<<CFlag)\r
1753          .hword  (0x18<<8)            |(1<<VFlag)   |(1<<CFlag)\r
1754          .hword  (0x19<<8)                  |(1<<CFlag)\r
1755          .hword  (0x20<<8)      |(1<<HFlag)         |(1<<CFlag)\r
1756          .hword  (0x21<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
1757          .hword  (0x22<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
1758          .hword  (0x23<<8)      |(1<<HFlag)         |(1<<CFlag)\r
1759          .hword  (0x24<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
1760          .hword  (0x25<<8)      |(1<<HFlag)         |(1<<CFlag)\r
1761          .hword  (0x20<<8)                  |(1<<CFlag)\r
1762          .hword  (0x21<<8)            |(1<<VFlag)   |(1<<CFlag)\r
1763          .hword  (0x22<<8)            |(1<<VFlag)   |(1<<CFlag)\r
1764          .hword  (0x23<<8)                  |(1<<CFlag)\r
1765          .hword  (0x24<<8)            |(1<<VFlag)   |(1<<CFlag)\r
1766          .hword  (0x25<<8)                  |(1<<CFlag)\r
1767          .hword  (0x26<<8)                  |(1<<CFlag)\r
1768          .hword  (0x27<<8)            |(1<<VFlag)   |(1<<CFlag)\r
1769          .hword  (0x28<<8)         |(1<<VFlag)   |(1<<CFlag)\r
1770          .hword  (0x29<<8)               |(1<<CFlag)\r
1771          .hword  (0x30<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
1772          .hword  (0x31<<8)      |(1<<HFlag)         |(1<<CFlag)\r
1773          .hword  (0x32<<8)      |(1<<HFlag)         |(1<<CFlag)\r
1774          .hword  (0x33<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
1775          .hword  (0x34<<8)      |(1<<HFlag)         |(1<<CFlag)\r
1776          .hword  (0x35<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
1777          .hword  (0x30<<8)            |(1<<VFlag)   |(1<<CFlag)\r
1778          .hword  (0x31<<8)                  |(1<<CFlag)\r
1779          .hword  (0x32<<8)                  |(1<<CFlag)\r
1780          .hword  (0x33<<8)            |(1<<VFlag)   |(1<<CFlag)\r
1781          .hword  (0x34<<8)                  |(1<<CFlag)\r
1782          .hword  (0x35<<8)            |(1<<VFlag)   |(1<<CFlag)\r
1783          .hword  (0x36<<8)            |(1<<VFlag)   |(1<<CFlag)\r
1784          .hword  (0x37<<8)                  |(1<<CFlag)\r
1785          .hword  (0x38<<8)               |(1<<CFlag)\r
1786          .hword  (0x39<<8)         |(1<<VFlag)   |(1<<CFlag)\r
1787          .hword  (0x40<<8)         |(1<<HFlag)         |(1<<CFlag)\r
1788          .hword  (0x41<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
1789          .hword  (0x42<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
1790          .hword  (0x43<<8)         |(1<<HFlag)         |(1<<CFlag)\r
1791          .hword  (0x44<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
1792          .hword  (0x45<<8)         |(1<<HFlag)         |(1<<CFlag)\r
1793          .hword  (0x40<<8)                     |(1<<CFlag)\r
1794          .hword  (0x41<<8)               |(1<<VFlag)   |(1<<CFlag)\r
1795          .hword  (0x42<<8)               |(1<<VFlag)   |(1<<CFlag)\r
1796          .hword  (0x43<<8)                     |(1<<CFlag)\r
1797          .hword  (0x44<<8)               |(1<<VFlag)   |(1<<CFlag)\r
1798          .hword  (0x45<<8)                     |(1<<CFlag)\r
1799          .hword  (0x46<<8)                     |(1<<CFlag)\r
1800          .hword  (0x47<<8)               |(1<<VFlag)   |(1<<CFlag)\r
1801          .hword  (0x48<<8)            |(1<<VFlag)   |(1<<CFlag)\r
1802          .hword  (0x49<<8)                  |(1<<CFlag)\r
1803          .hword  (0x50<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
1804          .hword  (0x51<<8)         |(1<<HFlag)         |(1<<CFlag)\r
1805          .hword  (0x52<<8)         |(1<<HFlag)         |(1<<CFlag)\r
1806          .hword  (0x53<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
1807          .hword  (0x54<<8)         |(1<<HFlag)         |(1<<CFlag)\r
1808          .hword  (0x55<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
1809          .hword  (0x50<<8)               |(1<<VFlag)   |(1<<CFlag)\r
1810          .hword  (0x51<<8)                     |(1<<CFlag)\r
1811          .hword  (0x52<<8)                     |(1<<CFlag)\r
1812          .hword  (0x53<<8)               |(1<<VFlag)   |(1<<CFlag)\r
1813          .hword  (0x54<<8)                     |(1<<CFlag)\r
1814          .hword  (0x55<<8)               |(1<<VFlag)   |(1<<CFlag)\r
1815          .hword  (0x56<<8)               |(1<<VFlag)   |(1<<CFlag)\r
1816          .hword  (0x57<<8)                     |(1<<CFlag)\r
1817          .hword  (0x58<<8)                  |(1<<CFlag)\r
1818          .hword  (0x59<<8)            |(1<<VFlag)   |(1<<CFlag)\r
1819          .hword  (0x60<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
1820          .hword  (0x61<<8)      |(1<<HFlag)         |(1<<CFlag)\r
1821          .hword  (0x62<<8)      |(1<<HFlag)         |(1<<CFlag)\r
1822          .hword  (0x63<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
1823          .hword  (0x64<<8)      |(1<<HFlag)         |(1<<CFlag)\r
1824          .hword  (0x65<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
1825          .hword  (0x60<<8)            |(1<<VFlag)   |(1<<CFlag)\r
1826          .hword  (0x61<<8)                  |(1<<CFlag)\r
1827          .hword  (0x62<<8)                  |(1<<CFlag)\r
1828          .hword  (0x63<<8)            |(1<<VFlag)   |(1<<CFlag)\r
1829          .hword  (0x64<<8)                  |(1<<CFlag)\r
1830          .hword  (0x65<<8)            |(1<<VFlag)   |(1<<CFlag)\r
1831          .hword  (0x66<<8)            |(1<<VFlag)   |(1<<CFlag)\r
1832          .hword  (0x67<<8)                  |(1<<CFlag)\r
1833          .hword  (0x68<<8)               |(1<<CFlag)\r
1834          .hword  (0x69<<8)         |(1<<VFlag)   |(1<<CFlag)\r
1835          .hword  (0x70<<8)      |(1<<HFlag)         |(1<<CFlag)\r
1836          .hword  (0x71<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
1837          .hword  (0x72<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
1838          .hword  (0x73<<8)      |(1<<HFlag)         |(1<<CFlag)\r
1839          .hword  (0x74<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
1840          .hword  (0x75<<8)      |(1<<HFlag)         |(1<<CFlag)\r
1841          .hword  (0x70<<8)                  |(1<<CFlag)\r
1842          .hword  (0x71<<8)            |(1<<VFlag)   |(1<<CFlag)\r
1843          .hword  (0x72<<8)            |(1<<VFlag)   |(1<<CFlag)\r
1844          .hword  (0x73<<8)                  |(1<<CFlag)\r
1845          .hword  (0x74<<8)            |(1<<VFlag)   |(1<<CFlag)\r
1846          .hword  (0x75<<8)                  |(1<<CFlag)\r
1847          .hword  (0x76<<8)                  |(1<<CFlag)\r
1848          .hword  (0x77<<8)            |(1<<VFlag)   |(1<<CFlag)\r
1849          .hword  (0x78<<8)         |(1<<VFlag)   |(1<<CFlag)\r
1850          .hword  (0x79<<8)               |(1<<CFlag)\r
1851          .hword  (0x80<<8)|(1<<SFlag)      |(1<<HFlag)         |(1<<CFlag)\r
1852          .hword  (0x81<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
1853          .hword  (0x82<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
1854          .hword  (0x83<<8)|(1<<SFlag)      |(1<<HFlag)         |(1<<CFlag)\r
1855          .hword  (0x84<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
1856          .hword  (0x85<<8)|(1<<SFlag)      |(1<<HFlag)         |(1<<CFlag)\r
1857          .hword  (0x80<<8)|(1<<SFlag)                  |(1<<CFlag)\r
1858          .hword  (0x81<<8)|(1<<SFlag)            |(1<<VFlag)   |(1<<CFlag)\r
1859          .hword  (0x82<<8)|(1<<SFlag)            |(1<<VFlag)   |(1<<CFlag)\r
1860          .hword  (0x83<<8)|(1<<SFlag)                  |(1<<CFlag)\r
1861          .hword  (0x84<<8)|(1<<SFlag)            |(1<<VFlag)   |(1<<CFlag)\r
1862          .hword  (0x85<<8)|(1<<SFlag)                  |(1<<CFlag)\r
1863          .hword  (0x86<<8)|(1<<SFlag)                  |(1<<CFlag)\r
1864          .hword  (0x87<<8)|(1<<SFlag)            |(1<<VFlag)   |(1<<CFlag)\r
1865          .hword  (0x88<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)\r
1866          .hword  (0x89<<8)|(1<<SFlag)               |(1<<CFlag)\r
1867          .hword  (0x90<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
1868          .hword  (0x91<<8)|(1<<SFlag)      |(1<<HFlag)         |(1<<CFlag)\r
1869          .hword  (0x92<<8)|(1<<SFlag)      |(1<<HFlag)         |(1<<CFlag)\r
1870          .hword  (0x93<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
1871          .hword  (0x94<<8)|(1<<SFlag)      |(1<<HFlag)         |(1<<CFlag)\r
1872          .hword  (0x95<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
1873          .hword  (0x90<<8)|(1<<SFlag)            |(1<<VFlag)   |(1<<CFlag)\r
1874          .hword  (0x91<<8)|(1<<SFlag)                  |(1<<CFlag)\r
1875          .hword  (0x92<<8)|(1<<SFlag)                  |(1<<CFlag)\r
1876          .hword  (0x93<<8)|(1<<SFlag)            |(1<<VFlag)   |(1<<CFlag)\r
1877          .hword  (0x94<<8)|(1<<SFlag)                  |(1<<CFlag)\r
1878          .hword  (0x95<<8)|(1<<SFlag)            |(1<<VFlag)   |(1<<CFlag)\r
1879          .hword  (0x96<<8)|(1<<SFlag)            |(1<<VFlag)   |(1<<CFlag)\r
1880          .hword  (0x97<<8)|(1<<SFlag)                  |(1<<CFlag)\r
1881          .hword  (0x98<<8)|(1<<SFlag)               |(1<<CFlag)\r
1882          .hword  (0x99<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)\r
1883          .hword  (0xA0<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
1884          .hword  (0xA1<<8)|(1<<SFlag)   |(1<<HFlag)         |(1<<CFlag)\r
1885          .hword  (0xA2<<8)|(1<<SFlag)   |(1<<HFlag)         |(1<<CFlag)\r
1886          .hword  (0xA3<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
1887          .hword  (0xA4<<8)|(1<<SFlag)   |(1<<HFlag)         |(1<<CFlag)\r
1888          .hword  (0xA5<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
1889          .hword  (0xA0<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)\r
1890          .hword  (0xA1<<8)|(1<<SFlag)               |(1<<CFlag)\r
1891          .hword  (0xA2<<8)|(1<<SFlag)               |(1<<CFlag)\r
1892          .hword  (0xA3<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)\r
1893          .hword  (0xA4<<8)|(1<<SFlag)               |(1<<CFlag)\r
1894          .hword  (0xA5<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)\r
1895          .hword  (0xA6<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)\r
1896          .hword  (0xA7<<8)|(1<<SFlag)               |(1<<CFlag)\r
1897          .hword  (0xA8<<8)|(1<<SFlag)            |(1<<CFlag)\r
1898          .hword  (0xA9<<8)|(1<<SFlag)      |(1<<VFlag)   |(1<<CFlag)\r
1899          .hword  (0xB0<<8)|(1<<SFlag)   |(1<<HFlag)         |(1<<CFlag)\r
1900          .hword  (0xB1<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
1901          .hword  (0xB2<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
1902          .hword  (0xB3<<8)|(1<<SFlag)   |(1<<HFlag)         |(1<<CFlag)\r
1903          .hword  (0xB4<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
1904          .hword  (0xB5<<8)|(1<<SFlag)   |(1<<HFlag)         |(1<<CFlag)\r
1905          .hword  (0xB0<<8)|(1<<SFlag)               |(1<<CFlag)\r
1906          .hword  (0xB1<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)\r
1907          .hword  (0xB2<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)\r
1908          .hword  (0xB3<<8)|(1<<SFlag)               |(1<<CFlag)\r
1909          .hword  (0xB4<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)\r
1910          .hword  (0xB5<<8)|(1<<SFlag)               |(1<<CFlag)\r
1911          .hword  (0xB6<<8)|(1<<SFlag)               |(1<<CFlag)\r
1912          .hword  (0xB7<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)\r
1913          .hword  (0xB8<<8)|(1<<SFlag)      |(1<<VFlag)   |(1<<CFlag)\r
1914          .hword  (0xB9<<8)|(1<<SFlag)            |(1<<CFlag)\r
1915          .hword  (0xC0<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
1916          .hword  (0xC1<<8)|(1<<SFlag)      |(1<<HFlag)         |(1<<CFlag)\r
1917          .hword  (0xC2<<8)|(1<<SFlag)      |(1<<HFlag)         |(1<<CFlag)\r
1918          .hword  (0xC3<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
1919          .hword  (0xC4<<8)|(1<<SFlag)      |(1<<HFlag)         |(1<<CFlag)\r
1920          .hword  (0xC5<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
1921          .hword  (0xC0<<8)|(1<<SFlag)            |(1<<VFlag)   |(1<<CFlag)\r
1922          .hword  (0xC1<<8)|(1<<SFlag)                  |(1<<CFlag)\r
1923          .hword  (0xC2<<8)|(1<<SFlag)                  |(1<<CFlag)\r
1924          .hword  (0xC3<<8)|(1<<SFlag)            |(1<<VFlag)   |(1<<CFlag)\r
1925          .hword  (0xC4<<8)|(1<<SFlag)                  |(1<<CFlag)\r
1926          .hword  (0xC5<<8)|(1<<SFlag)            |(1<<VFlag)   |(1<<CFlag)\r
1927          .hword  (0xC6<<8)|(1<<SFlag)            |(1<<VFlag)   |(1<<CFlag)\r
1928          .hword  (0xC7<<8)|(1<<SFlag)                  |(1<<CFlag)\r
1929          .hword  (0xC8<<8)|(1<<SFlag)               |(1<<CFlag)\r
1930          .hword  (0xC9<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)\r
1931          .hword  (0xD0<<8)|(1<<SFlag)      |(1<<HFlag)         |(1<<CFlag)\r
1932          .hword  (0xD1<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
1933          .hword  (0xD2<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
1934          .hword  (0xD3<<8)|(1<<SFlag)      |(1<<HFlag)         |(1<<CFlag)\r
1935          .hword  (0xD4<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
1936          .hword  (0xD5<<8)|(1<<SFlag)      |(1<<HFlag)         |(1<<CFlag)\r
1937          .hword  (0xD0<<8)|(1<<SFlag)                  |(1<<CFlag)\r
1938          .hword  (0xD1<<8)|(1<<SFlag)            |(1<<VFlag)   |(1<<CFlag)\r
1939          .hword  (0xD2<<8)|(1<<SFlag)            |(1<<VFlag)   |(1<<CFlag)\r
1940          .hword  (0xD3<<8)|(1<<SFlag)                  |(1<<CFlag)\r
1941          .hword  (0xD4<<8)|(1<<SFlag)            |(1<<VFlag)   |(1<<CFlag)\r
1942          .hword  (0xD5<<8)|(1<<SFlag)                  |(1<<CFlag)\r
1943          .hword  (0xD6<<8)|(1<<SFlag)                  |(1<<CFlag)\r
1944          .hword  (0xD7<<8)|(1<<SFlag)            |(1<<VFlag)   |(1<<CFlag)\r
1945          .hword  (0xD8<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)\r
1946          .hword  (0xD9<<8)|(1<<SFlag)               |(1<<CFlag)\r
1947          .hword  (0xE0<<8)|(1<<SFlag)   |(1<<HFlag)         |(1<<CFlag)\r
1948          .hword  (0xE1<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
1949          .hword  (0xE2<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
1950          .hword  (0xE3<<8)|(1<<SFlag)   |(1<<HFlag)         |(1<<CFlag)\r
1951          .hword  (0xE4<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
1952          .hword  (0xE5<<8)|(1<<SFlag)   |(1<<HFlag)         |(1<<CFlag)\r
1953          .hword  (0xE0<<8)|(1<<SFlag)               |(1<<CFlag)\r
1954          .hword  (0xE1<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)\r
1955          .hword  (0xE2<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)\r
1956          .hword  (0xE3<<8)|(1<<SFlag)               |(1<<CFlag)\r
1957          .hword  (0xE4<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)\r
1958          .hword  (0xE5<<8)|(1<<SFlag)               |(1<<CFlag)\r
1959          .hword  (0xE6<<8)|(1<<SFlag)               |(1<<CFlag)\r
1960          .hword  (0xE7<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)\r
1961          .hword  (0xE8<<8)|(1<<SFlag)      |(1<<VFlag)   |(1<<CFlag)\r
1962          .hword  (0xE9<<8)|(1<<SFlag)            |(1<<CFlag)\r
1963          .hword  (0xF0<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
1964          .hword  (0xF1<<8)|(1<<SFlag)   |(1<<HFlag)         |(1<<CFlag)\r
1965          .hword  (0xF2<<8)|(1<<SFlag)   |(1<<HFlag)         |(1<<CFlag)\r
1966          .hword  (0xF3<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
1967          .hword  (0xF4<<8)|(1<<SFlag)   |(1<<HFlag)         |(1<<CFlag)\r
1968          .hword  (0xF5<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
1969          .hword  (0xF0<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)\r
1970          .hword  (0xF1<<8)|(1<<SFlag)               |(1<<CFlag)\r
1971          .hword  (0xF2<<8)|(1<<SFlag)               |(1<<CFlag)\r
1972          .hword  (0xF3<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)\r
1973          .hword  (0xF4<<8)|(1<<SFlag)               |(1<<CFlag)\r
1974          .hword  (0xF5<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)\r
1975          .hword  (0xF6<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)\r
1976          .hword  (0xF7<<8)|(1<<SFlag)               |(1<<CFlag)\r
1977          .hword  (0xF8<<8)|(1<<SFlag)            |(1<<CFlag)\r
1978          .hword  (0xF9<<8)|(1<<SFlag)      |(1<<VFlag)   |(1<<CFlag)\r
1979          .hword  (0x00<<8)   |(1<<ZFlag)   |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
1980          .hword  (0x01<<8)         |(1<<HFlag)         |(1<<CFlag)\r
1981          .hword  (0x02<<8)         |(1<<HFlag)         |(1<<CFlag)\r
1982          .hword  (0x03<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
1983          .hword  (0x04<<8)         |(1<<HFlag)         |(1<<CFlag)\r
1984          .hword  (0x05<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
1985          .hword  (0x00<<8)   |(1<<ZFlag)         |(1<<VFlag)   |(1<<CFlag)\r
1986          .hword  (0x01<<8)                     |(1<<CFlag)\r
1987          .hword  (0x02<<8)                     |(1<<CFlag)\r
1988          .hword  (0x03<<8)               |(1<<VFlag)   |(1<<CFlag)\r
1989          .hword  (0x04<<8)                     |(1<<CFlag)\r
1990          .hword  (0x05<<8)               |(1<<VFlag)   |(1<<CFlag)\r
1991          .hword  (0x06<<8)               |(1<<VFlag)   |(1<<CFlag)\r
1992          .hword  (0x07<<8)                     |(1<<CFlag)\r
1993          .hword  (0x08<<8)                  |(1<<CFlag)\r
1994          .hword  (0x09<<8)            |(1<<VFlag)   |(1<<CFlag)\r
1995          .hword  (0x10<<8)         |(1<<HFlag)         |(1<<CFlag)\r
1996          .hword  (0x11<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
1997          .hword  (0x12<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
1998          .hword  (0x13<<8)         |(1<<HFlag)         |(1<<CFlag)\r
1999          .hword  (0x14<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
2000          .hword  (0x15<<8)         |(1<<HFlag)         |(1<<CFlag)\r
2001          .hword  (0x10<<8)                     |(1<<CFlag)\r
2002          .hword  (0x11<<8)               |(1<<VFlag)   |(1<<CFlag)\r
2003          .hword  (0x12<<8)               |(1<<VFlag)   |(1<<CFlag)\r
2004          .hword  (0x13<<8)                     |(1<<CFlag)\r
2005          .hword  (0x14<<8)               |(1<<VFlag)   |(1<<CFlag)\r
2006          .hword  (0x15<<8)                     |(1<<CFlag)\r
2007          .hword  (0x16<<8)                     |(1<<CFlag)\r
2008          .hword  (0x17<<8)               |(1<<VFlag)   |(1<<CFlag)\r
2009          .hword  (0x18<<8)            |(1<<VFlag)   |(1<<CFlag)\r
2010          .hword  (0x19<<8)                  |(1<<CFlag)\r
2011          .hword  (0x20<<8)      |(1<<HFlag)         |(1<<CFlag)\r
2012          .hword  (0x21<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
2013          .hword  (0x22<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
2014          .hword  (0x23<<8)      |(1<<HFlag)         |(1<<CFlag)\r
2015          .hword  (0x24<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
2016          .hword  (0x25<<8)      |(1<<HFlag)         |(1<<CFlag)\r
2017          .hword  (0x20<<8)                  |(1<<CFlag)\r
2018          .hword  (0x21<<8)            |(1<<VFlag)   |(1<<CFlag)\r
2019          .hword  (0x22<<8)            |(1<<VFlag)   |(1<<CFlag)\r
2020          .hword  (0x23<<8)                  |(1<<CFlag)\r
2021          .hword  (0x24<<8)            |(1<<VFlag)   |(1<<CFlag)\r
2022          .hword  (0x25<<8)                  |(1<<CFlag)\r
2023          .hword  (0x26<<8)                  |(1<<CFlag)\r
2024          .hword  (0x27<<8)            |(1<<VFlag)   |(1<<CFlag)\r
2025          .hword  (0x28<<8)         |(1<<VFlag)   |(1<<CFlag)\r
2026          .hword  (0x29<<8)               |(1<<CFlag)\r
2027          .hword  (0x30<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
2028          .hword  (0x31<<8)      |(1<<HFlag)         |(1<<CFlag)\r
2029          .hword  (0x32<<8)      |(1<<HFlag)         |(1<<CFlag)\r
2030          .hword  (0x33<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
2031          .hword  (0x34<<8)      |(1<<HFlag)         |(1<<CFlag)\r
2032          .hword  (0x35<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
2033          .hword  (0x30<<8)            |(1<<VFlag)   |(1<<CFlag)\r
2034          .hword  (0x31<<8)                  |(1<<CFlag)\r
2035          .hword  (0x32<<8)                  |(1<<CFlag)\r
2036          .hword  (0x33<<8)            |(1<<VFlag)   |(1<<CFlag)\r
2037          .hword  (0x34<<8)                  |(1<<CFlag)\r
2038          .hword  (0x35<<8)            |(1<<VFlag)   |(1<<CFlag)\r
2039          .hword  (0x36<<8)            |(1<<VFlag)   |(1<<CFlag)\r
2040          .hword  (0x37<<8)                  |(1<<CFlag)\r
2041          .hword  (0x38<<8)               |(1<<CFlag)\r
2042          .hword  (0x39<<8)         |(1<<VFlag)   |(1<<CFlag)\r
2043          .hword  (0x40<<8)         |(1<<HFlag)         |(1<<CFlag)\r
2044          .hword  (0x41<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
2045          .hword  (0x42<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
2046          .hword  (0x43<<8)         |(1<<HFlag)         |(1<<CFlag)\r
2047          .hword  (0x44<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
2048          .hword  (0x45<<8)         |(1<<HFlag)         |(1<<CFlag)\r
2049          .hword  (0x40<<8)                     |(1<<CFlag)\r
2050          .hword  (0x41<<8)               |(1<<VFlag)   |(1<<CFlag)\r
2051          .hword  (0x42<<8)               |(1<<VFlag)   |(1<<CFlag)\r
2052          .hword  (0x43<<8)                     |(1<<CFlag)\r
2053          .hword  (0x44<<8)               |(1<<VFlag)   |(1<<CFlag)\r
2054          .hword  (0x45<<8)                     |(1<<CFlag)\r
2055          .hword  (0x46<<8)                     |(1<<CFlag)\r
2056          .hword  (0x47<<8)               |(1<<VFlag)   |(1<<CFlag)\r
2057          .hword  (0x48<<8)            |(1<<VFlag)   |(1<<CFlag)\r
2058          .hword  (0x49<<8)                  |(1<<CFlag)\r
2059          .hword  (0x50<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
2060          .hword  (0x51<<8)         |(1<<HFlag)         |(1<<CFlag)\r
2061          .hword  (0x52<<8)         |(1<<HFlag)         |(1<<CFlag)\r
2062          .hword  (0x53<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
2063          .hword  (0x54<<8)         |(1<<HFlag)         |(1<<CFlag)\r
2064          .hword  (0x55<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
2065          .hword  (0x50<<8)               |(1<<VFlag)   |(1<<CFlag)\r
2066          .hword  (0x51<<8)                     |(1<<CFlag)\r
2067          .hword  (0x52<<8)                     |(1<<CFlag)\r
2068          .hword  (0x53<<8)               |(1<<VFlag)   |(1<<CFlag)\r
2069          .hword  (0x54<<8)                     |(1<<CFlag)\r
2070          .hword  (0x55<<8)               |(1<<VFlag)   |(1<<CFlag)\r
2071          .hword  (0x56<<8)               |(1<<VFlag)   |(1<<CFlag)\r
2072          .hword  (0x57<<8)                     |(1<<CFlag)\r
2073          .hword  (0x58<<8)                  |(1<<CFlag)\r
2074          .hword  (0x59<<8)            |(1<<VFlag)   |(1<<CFlag)\r
2075          .hword  (0x60<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
2076          .hword  (0x61<<8)      |(1<<HFlag)         |(1<<CFlag)\r
2077          .hword  (0x62<<8)      |(1<<HFlag)         |(1<<CFlag)\r
2078          .hword  (0x63<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
2079          .hword  (0x64<<8)      |(1<<HFlag)         |(1<<CFlag)\r
2080          .hword  (0x65<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
2081          .hword  (0x06<<8)               |(1<<VFlag)\r
2082          .hword  (0x07<<8)                  \r
2083          .hword  (0x08<<8)               \r
2084          .hword  (0x09<<8)            |(1<<VFlag)\r
2085          .hword  (0x0A<<8)            |(1<<VFlag)\r
2086          .hword  (0x0B<<8)               \r
2087          .hword  (0x0C<<8)            |(1<<VFlag)\r
2088          .hword  (0x0D<<8)               \r
2089          .hword  (0x0E<<8)               \r
2090          .hword  (0x0F<<8)            |(1<<VFlag)\r
2091          .hword  (0x10<<8)         |(1<<HFlag)      \r
2092          .hword  (0x11<<8)         |(1<<HFlag)   |(1<<VFlag)\r
2093          .hword  (0x12<<8)         |(1<<HFlag)   |(1<<VFlag)\r
2094          .hword  (0x13<<8)         |(1<<HFlag)      \r
2095          .hword  (0x14<<8)         |(1<<HFlag)   |(1<<VFlag)\r
2096          .hword  (0x15<<8)         |(1<<HFlag)      \r
2097          .hword  (0x16<<8)                  \r
2098          .hword  (0x17<<8)               |(1<<VFlag)\r
2099          .hword  (0x18<<8)            |(1<<VFlag)\r
2100          .hword  (0x19<<8)               \r
2101          .hword  (0x1A<<8)               \r
2102          .hword  (0x1B<<8)            |(1<<VFlag)\r
2103          .hword  (0x1C<<8)               \r
2104          .hword  (0x1D<<8)            |(1<<VFlag)\r
2105          .hword  (0x1E<<8)            |(1<<VFlag)\r
2106          .hword  (0x1F<<8)               \r
2107          .hword  (0x20<<8)      |(1<<HFlag)      \r
2108          .hword  (0x21<<8)      |(1<<HFlag)   |(1<<VFlag)\r
2109          .hword  (0x22<<8)      |(1<<HFlag)   |(1<<VFlag)\r
2110          .hword  (0x23<<8)      |(1<<HFlag)      \r
2111          .hword  (0x24<<8)      |(1<<HFlag)   |(1<<VFlag)\r
2112          .hword  (0x25<<8)      |(1<<HFlag)      \r
2113          .hword  (0x26<<8)               \r
2114          .hword  (0x27<<8)            |(1<<VFlag)\r
2115          .hword  (0x28<<8)         |(1<<VFlag)\r
2116          .hword  (0x29<<8)            \r
2117          .hword  (0x2A<<8)            \r
2118          .hword  (0x2B<<8)         |(1<<VFlag)\r
2119          .hword  (0x2C<<8)            \r
2120          .hword  (0x2D<<8)         |(1<<VFlag)\r
2121          .hword  (0x2E<<8)         |(1<<VFlag)\r
2122          .hword  (0x2F<<8)            \r
2123          .hword  (0x30<<8)      |(1<<HFlag)   |(1<<VFlag)\r
2124          .hword  (0x31<<8)      |(1<<HFlag)      \r
2125          .hword  (0x32<<8)      |(1<<HFlag)      \r
2126          .hword  (0x33<<8)      |(1<<HFlag)   |(1<<VFlag)\r
2127          .hword  (0x34<<8)      |(1<<HFlag)      \r
2128          .hword  (0x35<<8)      |(1<<HFlag)   |(1<<VFlag)\r
2129          .hword  (0x36<<8)            |(1<<VFlag)\r
2130          .hword  (0x37<<8)               \r
2131          .hword  (0x38<<8)            \r
2132          .hword  (0x39<<8)         |(1<<VFlag)\r
2133          .hword  (0x3A<<8)         |(1<<VFlag)\r
2134          .hword  (0x3B<<8)            \r
2135          .hword  (0x3C<<8)         |(1<<VFlag)\r
2136          .hword  (0x3D<<8)            \r
2137          .hword  (0x3E<<8)            \r
2138          .hword  (0x3F<<8)         |(1<<VFlag)\r
2139          .hword  (0x40<<8)         |(1<<HFlag)      \r
2140          .hword  (0x41<<8)         |(1<<HFlag)   |(1<<VFlag)\r
2141          .hword  (0x42<<8)         |(1<<HFlag)   |(1<<VFlag)\r
2142          .hword  (0x43<<8)         |(1<<HFlag)      \r
2143          .hword  (0x44<<8)         |(1<<HFlag)   |(1<<VFlag)\r
2144          .hword  (0x45<<8)         |(1<<HFlag)      \r
2145          .hword  (0x46<<8)                  \r
2146          .hword  (0x47<<8)               |(1<<VFlag)\r
2147          .hword  (0x48<<8)            |(1<<VFlag)\r
2148          .hword  (0x49<<8)               \r
2149          .hword  (0x4A<<8)               \r
2150          .hword  (0x4B<<8)            |(1<<VFlag)\r
2151          .hword  (0x4C<<8)               \r
2152          .hword  (0x4D<<8)            |(1<<VFlag)\r
2153          .hword  (0x4E<<8)            |(1<<VFlag)\r
2154          .hword  (0x4F<<8)               \r
2155          .hword  (0x50<<8)         |(1<<HFlag)   |(1<<VFlag)\r
2156          .hword  (0x51<<8)         |(1<<HFlag)      \r
2157          .hword  (0x52<<8)         |(1<<HFlag)      \r
2158          .hword  (0x53<<8)         |(1<<HFlag)   |(1<<VFlag)\r
2159          .hword  (0x54<<8)         |(1<<HFlag)      \r
2160          .hword  (0x55<<8)         |(1<<HFlag)   |(1<<VFlag)\r
2161          .hword  (0x56<<8)               |(1<<VFlag)\r
2162          .hword  (0x57<<8)                  \r
2163          .hword  (0x58<<8)               \r
2164          .hword  (0x59<<8)            |(1<<VFlag)\r
2165          .hword  (0x5A<<8)            |(1<<VFlag)\r
2166          .hword  (0x5B<<8)               \r
2167          .hword  (0x5C<<8)            |(1<<VFlag)\r
2168          .hword  (0x5D<<8)               \r
2169          .hword  (0x5E<<8)               \r
2170          .hword  (0x5F<<8)            |(1<<VFlag)\r
2171          .hword  (0x60<<8)      |(1<<HFlag)   |(1<<VFlag)\r
2172          .hword  (0x61<<8)      |(1<<HFlag)      \r
2173          .hword  (0x62<<8)      |(1<<HFlag)      \r
2174          .hword  (0x63<<8)      |(1<<HFlag)   |(1<<VFlag)\r
2175          .hword  (0x64<<8)      |(1<<HFlag)      \r
2176          .hword  (0x65<<8)      |(1<<HFlag)   |(1<<VFlag)\r
2177          .hword  (0x66<<8)            |(1<<VFlag)\r
2178          .hword  (0x67<<8)               \r
2179          .hword  (0x68<<8)            \r
2180          .hword  (0x69<<8)         |(1<<VFlag)\r
2181          .hword  (0x6A<<8)         |(1<<VFlag)\r
2182          .hword  (0x6B<<8)            \r
2183          .hword  (0x6C<<8)         |(1<<VFlag)\r
2184          .hword  (0x6D<<8)            \r
2185          .hword  (0x6E<<8)            \r
2186          .hword  (0x6F<<8)         |(1<<VFlag)\r
2187          .hword  (0x70<<8)      |(1<<HFlag)      \r
2188          .hword  (0x71<<8)      |(1<<HFlag)   |(1<<VFlag)\r
2189          .hword  (0x72<<8)      |(1<<HFlag)   |(1<<VFlag)\r
2190          .hword  (0x73<<8)      |(1<<HFlag)      \r
2191          .hword  (0x74<<8)      |(1<<HFlag)   |(1<<VFlag)\r
2192          .hword  (0x75<<8)      |(1<<HFlag)      \r
2193          .hword  (0x76<<8)               \r
2194          .hword  (0x77<<8)            |(1<<VFlag)\r
2195          .hword  (0x78<<8)         |(1<<VFlag)\r
2196          .hword  (0x79<<8)            \r
2197          .hword  (0x7A<<8)            \r
2198          .hword  (0x7B<<8)         |(1<<VFlag)\r
2199          .hword  (0x7C<<8)            \r
2200          .hword  (0x7D<<8)         |(1<<VFlag)\r
2201          .hword  (0x7E<<8)         |(1<<VFlag)\r
2202          .hword  (0x7F<<8)            \r
2203          .hword  (0x80<<8)|(1<<SFlag)      |(1<<HFlag)      \r
2204          .hword  (0x81<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)\r
2205          .hword  (0x82<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)\r
2206          .hword  (0x83<<8)|(1<<SFlag)      |(1<<HFlag)      \r
2207          .hword  (0x84<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)\r
2208          .hword  (0x85<<8)|(1<<SFlag)      |(1<<HFlag)      \r
2209          .hword  (0x86<<8)|(1<<SFlag)               \r
2210          .hword  (0x87<<8)|(1<<SFlag)            |(1<<VFlag)\r
2211          .hword  (0x88<<8)|(1<<SFlag)         |(1<<VFlag)\r
2212          .hword  (0x89<<8)|(1<<SFlag)            \r
2213          .hword  (0x8A<<8)|(1<<SFlag)            \r
2214          .hword  (0x8B<<8)|(1<<SFlag)         |(1<<VFlag)\r
2215          .hword  (0x8C<<8)|(1<<SFlag)            \r
2216          .hword  (0x8D<<8)|(1<<SFlag)         |(1<<VFlag)\r
2217          .hword  (0x8E<<8)|(1<<SFlag)         |(1<<VFlag)\r
2218          .hword  (0x8F<<8)|(1<<SFlag)            \r
2219          .hword  (0x90<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)\r
2220          .hword  (0x91<<8)|(1<<SFlag)      |(1<<HFlag)      \r
2221          .hword  (0x92<<8)|(1<<SFlag)      |(1<<HFlag)      \r
2222          .hword  (0x93<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)\r
2223          .hword  (0x94<<8)|(1<<SFlag)      |(1<<HFlag)      \r
2224          .hword  (0x95<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)\r
2225          .hword  (0x96<<8)|(1<<SFlag)            |(1<<VFlag)\r
2226          .hword  (0x97<<8)|(1<<SFlag)               \r
2227          .hword  (0x98<<8)|(1<<SFlag)            \r
2228          .hword  (0x99<<8)|(1<<SFlag)         |(1<<VFlag)\r
2229          .hword  (0x9A<<8)|(1<<SFlag)         |(1<<VFlag)\r
2230          .hword  (0x9B<<8)|(1<<SFlag)            \r
2231          .hword  (0x9C<<8)|(1<<SFlag)         |(1<<VFlag)\r
2232          .hword  (0x9D<<8)|(1<<SFlag)            \r
2233          .hword  (0x9E<<8)|(1<<SFlag)            \r
2234          .hword  (0x9F<<8)|(1<<SFlag)         |(1<<VFlag)\r
2235          .hword  (0x00<<8)   |(1<<ZFlag)   |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
2236          .hword  (0x01<<8)         |(1<<HFlag)         |(1<<CFlag)\r
2237          .hword  (0x02<<8)         |(1<<HFlag)         |(1<<CFlag)\r
2238          .hword  (0x03<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
2239          .hword  (0x04<<8)         |(1<<HFlag)         |(1<<CFlag)\r
2240          .hword  (0x05<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
2241          .hword  (0x06<<8)               |(1<<VFlag)   |(1<<CFlag)\r
2242          .hword  (0x07<<8)                     |(1<<CFlag)\r
2243          .hword  (0x08<<8)                  |(1<<CFlag)\r
2244          .hword  (0x09<<8)            |(1<<VFlag)   |(1<<CFlag)\r
2245          .hword  (0x0A<<8)            |(1<<VFlag)   |(1<<CFlag)\r
2246          .hword  (0x0B<<8)                  |(1<<CFlag)\r
2247          .hword  (0x0C<<8)            |(1<<VFlag)   |(1<<CFlag)\r
2248          .hword  (0x0D<<8)                  |(1<<CFlag)\r
2249          .hword  (0x0E<<8)                  |(1<<CFlag)\r
2250          .hword  (0x0F<<8)            |(1<<VFlag)   |(1<<CFlag)\r
2251          .hword  (0x10<<8)         |(1<<HFlag)         |(1<<CFlag)\r
2252          .hword  (0x11<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
2253          .hword  (0x12<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
2254          .hword  (0x13<<8)         |(1<<HFlag)         |(1<<CFlag)\r
2255          .hword  (0x14<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
2256          .hword  (0x15<<8)         |(1<<HFlag)         |(1<<CFlag)\r
2257          .hword  (0x16<<8)                     |(1<<CFlag)\r
2258          .hword  (0x17<<8)               |(1<<VFlag)   |(1<<CFlag)\r
2259          .hword  (0x18<<8)            |(1<<VFlag)   |(1<<CFlag)\r
2260          .hword  (0x19<<8)                  |(1<<CFlag)\r
2261          .hword  (0x1A<<8)                  |(1<<CFlag)\r
2262          .hword  (0x1B<<8)            |(1<<VFlag)   |(1<<CFlag)\r
2263          .hword  (0x1C<<8)                  |(1<<CFlag)\r
2264          .hword  (0x1D<<8)            |(1<<VFlag)   |(1<<CFlag)\r
2265          .hword  (0x1E<<8)            |(1<<VFlag)   |(1<<CFlag)\r
2266          .hword  (0x1F<<8)                  |(1<<CFlag)\r
2267          .hword  (0x20<<8)      |(1<<HFlag)         |(1<<CFlag)\r
2268          .hword  (0x21<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
2269          .hword  (0x22<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
2270          .hword  (0x23<<8)      |(1<<HFlag)         |(1<<CFlag)\r
2271          .hword  (0x24<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
2272          .hword  (0x25<<8)      |(1<<HFlag)         |(1<<CFlag)\r
2273          .hword  (0x26<<8)                  |(1<<CFlag)\r
2274          .hword  (0x27<<8)            |(1<<VFlag)   |(1<<CFlag)\r
2275          .hword  (0x28<<8)         |(1<<VFlag)   |(1<<CFlag)\r
2276          .hword  (0x29<<8)               |(1<<CFlag)\r
2277          .hword  (0x2A<<8)               |(1<<CFlag)\r
2278          .hword  (0x2B<<8)         |(1<<VFlag)   |(1<<CFlag)\r
2279          .hword  (0x2C<<8)               |(1<<CFlag)\r
2280          .hword  (0x2D<<8)         |(1<<VFlag)   |(1<<CFlag)\r
2281          .hword  (0x2E<<8)         |(1<<VFlag)   |(1<<CFlag)\r
2282          .hword  (0x2F<<8)               |(1<<CFlag)\r
2283          .hword  (0x30<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
2284          .hword  (0x31<<8)      |(1<<HFlag)         |(1<<CFlag)\r
2285          .hword  (0x32<<8)      |(1<<HFlag)         |(1<<CFlag)\r
2286          .hword  (0x33<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
2287          .hword  (0x34<<8)      |(1<<HFlag)         |(1<<CFlag)\r
2288          .hword  (0x35<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
2289          .hword  (0x36<<8)            |(1<<VFlag)   |(1<<CFlag)\r
2290          .hword  (0x37<<8)                  |(1<<CFlag)\r
2291          .hword  (0x38<<8)               |(1<<CFlag)\r
2292          .hword  (0x39<<8)         |(1<<VFlag)   |(1<<CFlag)\r
2293          .hword  (0x3A<<8)         |(1<<VFlag)   |(1<<CFlag)\r
2294          .hword  (0x3B<<8)               |(1<<CFlag)\r
2295          .hword  (0x3C<<8)         |(1<<VFlag)   |(1<<CFlag)\r
2296          .hword  (0x3D<<8)               |(1<<CFlag)\r
2297          .hword  (0x3E<<8)               |(1<<CFlag)\r
2298          .hword  (0x3F<<8)         |(1<<VFlag)   |(1<<CFlag)\r
2299          .hword  (0x40<<8)         |(1<<HFlag)         |(1<<CFlag)\r
2300          .hword  (0x41<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
2301          .hword  (0x42<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
2302          .hword  (0x43<<8)         |(1<<HFlag)         |(1<<CFlag)\r
2303          .hword  (0x44<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
2304          .hword  (0x45<<8)         |(1<<HFlag)         |(1<<CFlag)\r
2305          .hword  (0x46<<8)                     |(1<<CFlag)\r
2306          .hword  (0x47<<8)               |(1<<VFlag)   |(1<<CFlag)\r
2307          .hword  (0x48<<8)            |(1<<VFlag)   |(1<<CFlag)\r
2308          .hword  (0x49<<8)                  |(1<<CFlag)\r
2309          .hword  (0x4A<<8)                  |(1<<CFlag)\r
2310          .hword  (0x4B<<8)            |(1<<VFlag)   |(1<<CFlag)\r
2311          .hword  (0x4C<<8)                  |(1<<CFlag)\r
2312          .hword  (0x4D<<8)            |(1<<VFlag)   |(1<<CFlag)\r
2313          .hword  (0x4E<<8)            |(1<<VFlag)   |(1<<CFlag)\r
2314          .hword  (0x4F<<8)                  |(1<<CFlag)\r
2315          .hword  (0x50<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
2316          .hword  (0x51<<8)         |(1<<HFlag)         |(1<<CFlag)\r
2317          .hword  (0x52<<8)         |(1<<HFlag)         |(1<<CFlag)\r
2318          .hword  (0x53<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
2319          .hword  (0x54<<8)         |(1<<HFlag)         |(1<<CFlag)\r
2320          .hword  (0x55<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
2321          .hword  (0x56<<8)               |(1<<VFlag)   |(1<<CFlag)\r
2322          .hword  (0x57<<8)                     |(1<<CFlag)\r
2323          .hword  (0x58<<8)                  |(1<<CFlag)\r
2324          .hword  (0x59<<8)            |(1<<VFlag)   |(1<<CFlag)\r
2325          .hword  (0x5A<<8)            |(1<<VFlag)   |(1<<CFlag)\r
2326          .hword  (0x5B<<8)                  |(1<<CFlag)\r
2327          .hword  (0x5C<<8)            |(1<<VFlag)   |(1<<CFlag)\r
2328          .hword  (0x5D<<8)                  |(1<<CFlag)\r
2329          .hword  (0x5E<<8)                  |(1<<CFlag)\r
2330          .hword  (0x5F<<8)            |(1<<VFlag)   |(1<<CFlag)\r
2331          .hword  (0x60<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
2332          .hword  (0x61<<8)      |(1<<HFlag)         |(1<<CFlag)\r
2333          .hword  (0x62<<8)      |(1<<HFlag)         |(1<<CFlag)\r
2334          .hword  (0x63<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
2335          .hword  (0x64<<8)      |(1<<HFlag)         |(1<<CFlag)\r
2336          .hword  (0x65<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
2337          .hword  (0x66<<8)            |(1<<VFlag)   |(1<<CFlag)\r
2338          .hword  (0x67<<8)                  |(1<<CFlag)\r
2339          .hword  (0x68<<8)               |(1<<CFlag)\r
2340          .hword  (0x69<<8)         |(1<<VFlag)   |(1<<CFlag)\r
2341          .hword  (0x6A<<8)         |(1<<VFlag)   |(1<<CFlag)\r
2342          .hword  (0x6B<<8)               |(1<<CFlag)\r
2343          .hword  (0x6C<<8)         |(1<<VFlag)   |(1<<CFlag)\r
2344          .hword  (0x6D<<8)               |(1<<CFlag)\r
2345          .hword  (0x6E<<8)               |(1<<CFlag)\r
2346          .hword  (0x6F<<8)         |(1<<VFlag)   |(1<<CFlag)\r
2347          .hword  (0x70<<8)      |(1<<HFlag)         |(1<<CFlag)\r
2348          .hword  (0x71<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
2349          .hword  (0x72<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
2350          .hword  (0x73<<8)      |(1<<HFlag)         |(1<<CFlag)\r
2351          .hword  (0x74<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
2352          .hword  (0x75<<8)      |(1<<HFlag)         |(1<<CFlag)\r
2353          .hword  (0x76<<8)                  |(1<<CFlag)\r
2354          .hword  (0x77<<8)            |(1<<VFlag)   |(1<<CFlag)\r
2355          .hword  (0x78<<8)         |(1<<VFlag)   |(1<<CFlag)\r
2356          .hword  (0x79<<8)               |(1<<CFlag)\r
2357          .hword  (0x7A<<8)               |(1<<CFlag)\r
2358          .hword  (0x7B<<8)         |(1<<VFlag)   |(1<<CFlag)\r
2359          .hword  (0x7C<<8)               |(1<<CFlag)\r
2360          .hword  (0x7D<<8)         |(1<<VFlag)   |(1<<CFlag)\r
2361          .hword  (0x7E<<8)         |(1<<VFlag)   |(1<<CFlag)\r
2362          .hword  (0x7F<<8)               |(1<<CFlag)\r
2363          .hword  (0x80<<8)|(1<<SFlag)      |(1<<HFlag)         |(1<<CFlag)\r
2364          .hword  (0x81<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
2365          .hword  (0x82<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
2366          .hword  (0x83<<8)|(1<<SFlag)      |(1<<HFlag)         |(1<<CFlag)\r
2367          .hword  (0x84<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
2368          .hword  (0x85<<8)|(1<<SFlag)      |(1<<HFlag)         |(1<<CFlag)\r
2369          .hword  (0x86<<8)|(1<<SFlag)                  |(1<<CFlag)\r
2370          .hword  (0x87<<8)|(1<<SFlag)            |(1<<VFlag)   |(1<<CFlag)\r
2371          .hword  (0x88<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)\r
2372          .hword  (0x89<<8)|(1<<SFlag)               |(1<<CFlag)\r
2373          .hword  (0x8A<<8)|(1<<SFlag)               |(1<<CFlag)\r
2374          .hword  (0x8B<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)\r
2375          .hword  (0x8C<<8)|(1<<SFlag)               |(1<<CFlag)\r
2376          .hword  (0x8D<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)\r
2377          .hword  (0x8E<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)\r
2378          .hword  (0x8F<<8)|(1<<SFlag)               |(1<<CFlag)\r
2379          .hword  (0x90<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
2380          .hword  (0x91<<8)|(1<<SFlag)      |(1<<HFlag)         |(1<<CFlag)\r
2381          .hword  (0x92<<8)|(1<<SFlag)      |(1<<HFlag)         |(1<<CFlag)\r
2382          .hword  (0x93<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
2383          .hword  (0x94<<8)|(1<<SFlag)      |(1<<HFlag)         |(1<<CFlag)\r
2384          .hword  (0x95<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
2385          .hword  (0x96<<8)|(1<<SFlag)            |(1<<VFlag)   |(1<<CFlag)\r
2386          .hword  (0x97<<8)|(1<<SFlag)                  |(1<<CFlag)\r
2387          .hword  (0x98<<8)|(1<<SFlag)               |(1<<CFlag)\r
2388          .hword  (0x99<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)\r
2389          .hword  (0x9A<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)\r
2390          .hword  (0x9B<<8)|(1<<SFlag)               |(1<<CFlag)\r
2391          .hword  (0x9C<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)\r
2392          .hword  (0x9D<<8)|(1<<SFlag)               |(1<<CFlag)\r
2393          .hword  (0x9E<<8)|(1<<SFlag)               |(1<<CFlag)\r
2394          .hword  (0x9F<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)\r
2395          .hword  (0xA0<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
2396          .hword  (0xA1<<8)|(1<<SFlag)   |(1<<HFlag)         |(1<<CFlag)\r
2397          .hword  (0xA2<<8)|(1<<SFlag)   |(1<<HFlag)         |(1<<CFlag)\r
2398          .hword  (0xA3<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
2399          .hword  (0xA4<<8)|(1<<SFlag)   |(1<<HFlag)         |(1<<CFlag)\r
2400          .hword  (0xA5<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
2401          .hword  (0xA6<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)\r
2402          .hword  (0xA7<<8)|(1<<SFlag)               |(1<<CFlag)\r
2403          .hword  (0xA8<<8)|(1<<SFlag)            |(1<<CFlag)\r
2404          .hword  (0xA9<<8)|(1<<SFlag)      |(1<<VFlag)   |(1<<CFlag)\r
2405          .hword  (0xAA<<8)|(1<<SFlag)      |(1<<VFlag)   |(1<<CFlag)\r
2406          .hword  (0xAB<<8)|(1<<SFlag)            |(1<<CFlag)\r
2407          .hword  (0xAC<<8)|(1<<SFlag)      |(1<<VFlag)   |(1<<CFlag)\r
2408          .hword  (0xAD<<8)|(1<<SFlag)            |(1<<CFlag)\r
2409          .hword  (0xAE<<8)|(1<<SFlag)            |(1<<CFlag)\r
2410          .hword  (0xAF<<8)|(1<<SFlag)      |(1<<VFlag)   |(1<<CFlag)\r
2411          .hword  (0xB0<<8)|(1<<SFlag)   |(1<<HFlag)         |(1<<CFlag)\r
2412          .hword  (0xB1<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
2413          .hword  (0xB2<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
2414          .hword  (0xB3<<8)|(1<<SFlag)   |(1<<HFlag)         |(1<<CFlag)\r
2415          .hword  (0xB4<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
2416          .hword  (0xB5<<8)|(1<<SFlag)   |(1<<HFlag)         |(1<<CFlag)\r
2417          .hword  (0xB6<<8)|(1<<SFlag)               |(1<<CFlag)\r
2418          .hword  (0xB7<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)\r
2419          .hword  (0xB8<<8)|(1<<SFlag)      |(1<<VFlag)   |(1<<CFlag)\r
2420          .hword  (0xB9<<8)|(1<<SFlag)            |(1<<CFlag)\r
2421          .hword  (0xBA<<8)|(1<<SFlag)            |(1<<CFlag)\r
2422          .hword  (0xBB<<8)|(1<<SFlag)      |(1<<VFlag)   |(1<<CFlag)\r
2423          .hword  (0xBC<<8)|(1<<SFlag)            |(1<<CFlag)\r
2424          .hword  (0xBD<<8)|(1<<SFlag)      |(1<<VFlag)   |(1<<CFlag)\r
2425          .hword  (0xBE<<8)|(1<<SFlag)      |(1<<VFlag)   |(1<<CFlag)\r
2426          .hword  (0xBF<<8)|(1<<SFlag)            |(1<<CFlag)\r
2427          .hword  (0xC0<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
2428          .hword  (0xC1<<8)|(1<<SFlag)      |(1<<HFlag)         |(1<<CFlag)\r
2429          .hword  (0xC2<<8)|(1<<SFlag)      |(1<<HFlag)         |(1<<CFlag)\r
2430          .hword  (0xC3<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
2431          .hword  (0xC4<<8)|(1<<SFlag)      |(1<<HFlag)         |(1<<CFlag)\r
2432          .hword  (0xC5<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
2433          .hword  (0xC6<<8)|(1<<SFlag)            |(1<<VFlag)   |(1<<CFlag)\r
2434          .hword  (0xC7<<8)|(1<<SFlag)                  |(1<<CFlag)\r
2435          .hword  (0xC8<<8)|(1<<SFlag)               |(1<<CFlag)\r
2436          .hword  (0xC9<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)\r
2437          .hword  (0xCA<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)\r
2438          .hword  (0xCB<<8)|(1<<SFlag)               |(1<<CFlag)\r
2439          .hword  (0xCC<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)\r
2440          .hword  (0xCD<<8)|(1<<SFlag)               |(1<<CFlag)\r
2441          .hword  (0xCE<<8)|(1<<SFlag)               |(1<<CFlag)\r
2442          .hword  (0xCF<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)\r
2443          .hword  (0xD0<<8)|(1<<SFlag)      |(1<<HFlag)         |(1<<CFlag)\r
2444          .hword  (0xD1<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
2445          .hword  (0xD2<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
2446          .hword  (0xD3<<8)|(1<<SFlag)      |(1<<HFlag)         |(1<<CFlag)\r
2447          .hword  (0xD4<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
2448          .hword  (0xD5<<8)|(1<<SFlag)      |(1<<HFlag)         |(1<<CFlag)\r
2449          .hword  (0xD6<<8)|(1<<SFlag)                  |(1<<CFlag)\r
2450          .hword  (0xD7<<8)|(1<<SFlag)            |(1<<VFlag)   |(1<<CFlag)\r
2451          .hword  (0xD8<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)\r
2452          .hword  (0xD9<<8)|(1<<SFlag)               |(1<<CFlag)\r
2453          .hword  (0xDA<<8)|(1<<SFlag)               |(1<<CFlag)\r
2454          .hword  (0xDB<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)\r
2455          .hword  (0xDC<<8)|(1<<SFlag)               |(1<<CFlag)\r
2456          .hword  (0xDD<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)\r
2457          .hword  (0xDE<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)\r
2458          .hword  (0xDF<<8)|(1<<SFlag)               |(1<<CFlag)\r
2459          .hword  (0xE0<<8)|(1<<SFlag)   |(1<<HFlag)         |(1<<CFlag)\r
2460          .hword  (0xE1<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
2461          .hword  (0xE2<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
2462          .hword  (0xE3<<8)|(1<<SFlag)   |(1<<HFlag)         |(1<<CFlag)\r
2463          .hword  (0xE4<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
2464          .hword  (0xE5<<8)|(1<<SFlag)   |(1<<HFlag)         |(1<<CFlag)\r
2465          .hword  (0xE6<<8)|(1<<SFlag)               |(1<<CFlag)\r
2466          .hword  (0xE7<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)\r
2467          .hword  (0xE8<<8)|(1<<SFlag)      |(1<<VFlag)   |(1<<CFlag)\r
2468          .hword  (0xE9<<8)|(1<<SFlag)            |(1<<CFlag)\r
2469          .hword  (0xEA<<8)|(1<<SFlag)            |(1<<CFlag)\r
2470          .hword  (0xEB<<8)|(1<<SFlag)      |(1<<VFlag)   |(1<<CFlag)\r
2471          .hword  (0xEC<<8)|(1<<SFlag)            |(1<<CFlag)\r
2472          .hword  (0xED<<8)|(1<<SFlag)      |(1<<VFlag)   |(1<<CFlag)\r
2473          .hword  (0xEE<<8)|(1<<SFlag)      |(1<<VFlag)   |(1<<CFlag)\r
2474          .hword  (0xEF<<8)|(1<<SFlag)            |(1<<CFlag)\r
2475          .hword  (0xF0<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
2476          .hword  (0xF1<<8)|(1<<SFlag)   |(1<<HFlag)         |(1<<CFlag)\r
2477          .hword  (0xF2<<8)|(1<<SFlag)   |(1<<HFlag)         |(1<<CFlag)\r
2478          .hword  (0xF3<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
2479          .hword  (0xF4<<8)|(1<<SFlag)   |(1<<HFlag)         |(1<<CFlag)\r
2480          .hword  (0xF5<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
2481          .hword  (0xF6<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)\r
2482          .hword  (0xF7<<8)|(1<<SFlag)               |(1<<CFlag)\r
2483          .hword  (0xF8<<8)|(1<<SFlag)            |(1<<CFlag)\r
2484          .hword  (0xF9<<8)|(1<<SFlag)      |(1<<VFlag)   |(1<<CFlag)\r
2485          .hword  (0xFA<<8)|(1<<SFlag)      |(1<<VFlag)   |(1<<CFlag)\r
2486          .hword  (0xFB<<8)|(1<<SFlag)            |(1<<CFlag)\r
2487          .hword  (0xFC<<8)|(1<<SFlag)      |(1<<VFlag)   |(1<<CFlag)\r
2488          .hword  (0xFD<<8)|(1<<SFlag)            |(1<<CFlag)\r
2489          .hword  (0xFE<<8)|(1<<SFlag)            |(1<<CFlag)\r
2490          .hword  (0xFF<<8)|(1<<SFlag)      |(1<<VFlag)   |(1<<CFlag)\r
2491          .hword  (0x00<<8)   |(1<<ZFlag)   |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
2492          .hword  (0x01<<8)         |(1<<HFlag)         |(1<<CFlag)\r
2493          .hword  (0x02<<8)         |(1<<HFlag)         |(1<<CFlag)\r
2494          .hword  (0x03<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
2495          .hword  (0x04<<8)         |(1<<HFlag)         |(1<<CFlag)\r
2496          .hword  (0x05<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
2497          .hword  (0x06<<8)               |(1<<VFlag)   |(1<<CFlag)\r
2498          .hword  (0x07<<8)                     |(1<<CFlag)\r
2499          .hword  (0x08<<8)                  |(1<<CFlag)\r
2500          .hword  (0x09<<8)            |(1<<VFlag)   |(1<<CFlag)\r
2501          .hword  (0x0A<<8)            |(1<<VFlag)   |(1<<CFlag)\r
2502          .hword  (0x0B<<8)                  |(1<<CFlag)\r
2503          .hword  (0x0C<<8)            |(1<<VFlag)   |(1<<CFlag)\r
2504          .hword  (0x0D<<8)                  |(1<<CFlag)\r
2505          .hword  (0x0E<<8)                  |(1<<CFlag)\r
2506          .hword  (0x0F<<8)            |(1<<VFlag)   |(1<<CFlag)\r
2507          .hword  (0x10<<8)         |(1<<HFlag)         |(1<<CFlag)\r
2508          .hword  (0x11<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
2509          .hword  (0x12<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
2510          .hword  (0x13<<8)         |(1<<HFlag)         |(1<<CFlag)\r
2511          .hword  (0x14<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
2512          .hword  (0x15<<8)         |(1<<HFlag)         |(1<<CFlag)\r
2513          .hword  (0x16<<8)                     |(1<<CFlag)\r
2514          .hword  (0x17<<8)               |(1<<VFlag)   |(1<<CFlag)\r
2515          .hword  (0x18<<8)            |(1<<VFlag)   |(1<<CFlag)\r
2516          .hword  (0x19<<8)                  |(1<<CFlag)\r
2517          .hword  (0x1A<<8)                  |(1<<CFlag)\r
2518          .hword  (0x1B<<8)            |(1<<VFlag)   |(1<<CFlag)\r
2519          .hword  (0x1C<<8)                  |(1<<CFlag)\r
2520          .hword  (0x1D<<8)            |(1<<VFlag)   |(1<<CFlag)\r
2521          .hword  (0x1E<<8)            |(1<<VFlag)   |(1<<CFlag)\r
2522          .hword  (0x1F<<8)                  |(1<<CFlag)\r
2523          .hword  (0x20<<8)      |(1<<HFlag)         |(1<<CFlag)\r
2524          .hword  (0x21<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
2525          .hword  (0x22<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
2526          .hword  (0x23<<8)      |(1<<HFlag)         |(1<<CFlag)\r
2527          .hword  (0x24<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
2528          .hword  (0x25<<8)      |(1<<HFlag)         |(1<<CFlag)\r
2529          .hword  (0x26<<8)                  |(1<<CFlag)\r
2530          .hword  (0x27<<8)            |(1<<VFlag)   |(1<<CFlag)\r
2531          .hword  (0x28<<8)         |(1<<VFlag)   |(1<<CFlag)\r
2532          .hword  (0x29<<8)               |(1<<CFlag)\r
2533          .hword  (0x2A<<8)               |(1<<CFlag)\r
2534          .hword  (0x2B<<8)         |(1<<VFlag)   |(1<<CFlag)\r
2535          .hword  (0x2C<<8)               |(1<<CFlag)\r
2536          .hword  (0x2D<<8)         |(1<<VFlag)   |(1<<CFlag)\r
2537          .hword  (0x2E<<8)         |(1<<VFlag)   |(1<<CFlag)\r
2538          .hword  (0x2F<<8)               |(1<<CFlag)\r
2539          .hword  (0x30<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
2540          .hword  (0x31<<8)      |(1<<HFlag)         |(1<<CFlag)\r
2541          .hword  (0x32<<8)      |(1<<HFlag)         |(1<<CFlag)\r
2542          .hword  (0x33<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
2543          .hword  (0x34<<8)      |(1<<HFlag)         |(1<<CFlag)\r
2544          .hword  (0x35<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
2545          .hword  (0x36<<8)            |(1<<VFlag)   |(1<<CFlag)\r
2546          .hword  (0x37<<8)                  |(1<<CFlag)\r
2547          .hword  (0x38<<8)               |(1<<CFlag)\r
2548          .hword  (0x39<<8)         |(1<<VFlag)   |(1<<CFlag)\r
2549          .hword  (0x3A<<8)         |(1<<VFlag)   |(1<<CFlag)\r
2550          .hword  (0x3B<<8)               |(1<<CFlag)\r
2551          .hword  (0x3C<<8)         |(1<<VFlag)   |(1<<CFlag)\r
2552          .hword  (0x3D<<8)               |(1<<CFlag)\r
2553          .hword  (0x3E<<8)               |(1<<CFlag)\r
2554          .hword  (0x3F<<8)         |(1<<VFlag)   |(1<<CFlag)\r
2555          .hword  (0x40<<8)         |(1<<HFlag)         |(1<<CFlag)\r
2556          .hword  (0x41<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
2557          .hword  (0x42<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
2558          .hword  (0x43<<8)         |(1<<HFlag)         |(1<<CFlag)\r
2559          .hword  (0x44<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
2560          .hword  (0x45<<8)         |(1<<HFlag)         |(1<<CFlag)\r
2561          .hword  (0x46<<8)                     |(1<<CFlag)\r
2562          .hword  (0x47<<8)               |(1<<VFlag)   |(1<<CFlag)\r
2563          .hword  (0x48<<8)            |(1<<VFlag)   |(1<<CFlag)\r
2564          .hword  (0x49<<8)                  |(1<<CFlag)\r
2565          .hword  (0x4A<<8)                  |(1<<CFlag)\r
2566          .hword  (0x4B<<8)            |(1<<VFlag)   |(1<<CFlag)\r
2567          .hword  (0x4C<<8)                  |(1<<CFlag)\r
2568          .hword  (0x4D<<8)            |(1<<VFlag)   |(1<<CFlag)\r
2569          .hword  (0x4E<<8)            |(1<<VFlag)   |(1<<CFlag)\r
2570          .hword  (0x4F<<8)                  |(1<<CFlag)\r
2571          .hword  (0x50<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
2572          .hword  (0x51<<8)         |(1<<HFlag)         |(1<<CFlag)\r
2573          .hword  (0x52<<8)         |(1<<HFlag)         |(1<<CFlag)\r
2574          .hword  (0x53<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
2575          .hword  (0x54<<8)         |(1<<HFlag)         |(1<<CFlag)\r
2576          .hword  (0x55<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
2577          .hword  (0x56<<8)               |(1<<VFlag)   |(1<<CFlag)\r
2578          .hword  (0x57<<8)                     |(1<<CFlag)\r
2579          .hword  (0x58<<8)                  |(1<<CFlag)\r
2580          .hword  (0x59<<8)            |(1<<VFlag)   |(1<<CFlag)\r
2581          .hword  (0x5A<<8)            |(1<<VFlag)   |(1<<CFlag)\r
2582          .hword  (0x5B<<8)                  |(1<<CFlag)\r
2583          .hword  (0x5C<<8)            |(1<<VFlag)   |(1<<CFlag)\r
2584          .hword  (0x5D<<8)                  |(1<<CFlag)\r
2585          .hword  (0x5E<<8)                  |(1<<CFlag)\r
2586          .hword  (0x5F<<8)            |(1<<VFlag)   |(1<<CFlag)\r
2587          .hword  (0x60<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
2588          .hword  (0x61<<8)      |(1<<HFlag)         |(1<<CFlag)\r
2589          .hword  (0x62<<8)      |(1<<HFlag)         |(1<<CFlag)\r
2590          .hword  (0x63<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
2591          .hword  (0x64<<8)      |(1<<HFlag)         |(1<<CFlag)\r
2592          .hword  (0x65<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
2593          .hword  (0x00<<8)   |(1<<ZFlag)         |(1<<VFlag)|(1<<NFlag)   \r
2594          .hword  (0x01<<8)                  |(1<<NFlag)   \r
2595          .hword  (0x02<<8)                  |(1<<NFlag)   \r
2596          .hword  (0x03<<8)               |(1<<VFlag)|(1<<NFlag)   \r
2597          .hword  (0x04<<8)                  |(1<<NFlag)   \r
2598          .hword  (0x05<<8)               |(1<<VFlag)|(1<<NFlag)   \r
2599          .hword  (0x06<<8)               |(1<<VFlag)|(1<<NFlag)   \r
2600          .hword  (0x07<<8)                  |(1<<NFlag)   \r
2601          .hword  (0x08<<8)               |(1<<NFlag)   \r
2602          .hword  (0x09<<8)            |(1<<VFlag)|(1<<NFlag)   \r
2603          .hword  (0x04<<8)                  |(1<<NFlag)   \r
2604          .hword  (0x05<<8)               |(1<<VFlag)|(1<<NFlag)   \r
2605          .hword  (0x06<<8)               |(1<<VFlag)|(1<<NFlag)   \r
2606          .hword  (0x07<<8)                  |(1<<NFlag)   \r
2607          .hword  (0x08<<8)               |(1<<NFlag)   \r
2608          .hword  (0x09<<8)            |(1<<VFlag)|(1<<NFlag)   \r
2609          .hword  (0x10<<8)                  |(1<<NFlag)   \r
2610          .hword  (0x11<<8)               |(1<<VFlag)|(1<<NFlag)   \r
2611          .hword  (0x12<<8)               |(1<<VFlag)|(1<<NFlag)   \r
2612          .hword  (0x13<<8)                  |(1<<NFlag)   \r
2613          .hword  (0x14<<8)               |(1<<VFlag)|(1<<NFlag)   \r
2614          .hword  (0x15<<8)                  |(1<<NFlag)   \r
2615          .hword  (0x16<<8)                  |(1<<NFlag)   \r
2616          .hword  (0x17<<8)               |(1<<VFlag)|(1<<NFlag)   \r
2617          .hword  (0x18<<8)            |(1<<VFlag)|(1<<NFlag)   \r
2618          .hword  (0x19<<8)               |(1<<NFlag)   \r
2619          .hword  (0x14<<8)               |(1<<VFlag)|(1<<NFlag)   \r
2620          .hword  (0x15<<8)                  |(1<<NFlag)   \r
2621          .hword  (0x16<<8)                  |(1<<NFlag)   \r
2622          .hword  (0x17<<8)               |(1<<VFlag)|(1<<NFlag)   \r
2623          .hword  (0x18<<8)            |(1<<VFlag)|(1<<NFlag)   \r
2624          .hword  (0x19<<8)               |(1<<NFlag)   \r
2625          .hword  (0x20<<8)               |(1<<NFlag)   \r
2626          .hword  (0x21<<8)            |(1<<VFlag)|(1<<NFlag)   \r
2627          .hword  (0x22<<8)            |(1<<VFlag)|(1<<NFlag)   \r
2628          .hword  (0x23<<8)               |(1<<NFlag)   \r
2629          .hword  (0x24<<8)            |(1<<VFlag)|(1<<NFlag)   \r
2630          .hword  (0x25<<8)               |(1<<NFlag)   \r
2631          .hword  (0x26<<8)               |(1<<NFlag)   \r
2632          .hword  (0x27<<8)            |(1<<VFlag)|(1<<NFlag)   \r
2633          .hword  (0x28<<8)         |(1<<VFlag)|(1<<NFlag)   \r
2634          .hword  (0x29<<8)            |(1<<NFlag)   \r
2635          .hword  (0x24<<8)            |(1<<VFlag)|(1<<NFlag)   \r
2636          .hword  (0x25<<8)               |(1<<NFlag)   \r
2637          .hword  (0x26<<8)               |(1<<NFlag)   \r
2638          .hword  (0x27<<8)            |(1<<VFlag)|(1<<NFlag)   \r
2639          .hword  (0x28<<8)         |(1<<VFlag)|(1<<NFlag)   \r
2640          .hword  (0x29<<8)            |(1<<NFlag)   \r
2641          .hword  (0x30<<8)            |(1<<VFlag)|(1<<NFlag)   \r
2642          .hword  (0x31<<8)               |(1<<NFlag)   \r
2643          .hword  (0x32<<8)               |(1<<NFlag)   \r
2644          .hword  (0x33<<8)            |(1<<VFlag)|(1<<NFlag)   \r
2645          .hword  (0x34<<8)               |(1<<NFlag)   \r
2646          .hword  (0x35<<8)            |(1<<VFlag)|(1<<NFlag)   \r
2647          .hword  (0x36<<8)            |(1<<VFlag)|(1<<NFlag)   \r
2648          .hword  (0x37<<8)               |(1<<NFlag)   \r
2649          .hword  (0x38<<8)            |(1<<NFlag)   \r
2650          .hword  (0x39<<8)         |(1<<VFlag)|(1<<NFlag)   \r
2651          .hword  (0x34<<8)               |(1<<NFlag)   \r
2652          .hword  (0x35<<8)            |(1<<VFlag)|(1<<NFlag)   \r
2653          .hword  (0x36<<8)            |(1<<VFlag)|(1<<NFlag)   \r
2654          .hword  (0x37<<8)               |(1<<NFlag)   \r
2655          .hword  (0x38<<8)            |(1<<NFlag)   \r
2656          .hword  (0x39<<8)         |(1<<VFlag)|(1<<NFlag)   \r
2657          .hword  (0x40<<8)                  |(1<<NFlag)   \r
2658          .hword  (0x41<<8)               |(1<<VFlag)|(1<<NFlag)   \r
2659          .hword  (0x42<<8)               |(1<<VFlag)|(1<<NFlag)   \r
2660          .hword  (0x43<<8)                  |(1<<NFlag)   \r
2661          .hword  (0x44<<8)               |(1<<VFlag)|(1<<NFlag)   \r
2662          .hword  (0x45<<8)                  |(1<<NFlag)   \r
2663          .hword  (0x46<<8)                  |(1<<NFlag)   \r
2664          .hword  (0x47<<8)               |(1<<VFlag)|(1<<NFlag)   \r
2665          .hword  (0x48<<8)            |(1<<VFlag)|(1<<NFlag)   \r
2666          .hword  (0x49<<8)               |(1<<NFlag)   \r
2667          .hword  (0x44<<8)               |(1<<VFlag)|(1<<NFlag)   \r
2668          .hword  (0x45<<8)                  |(1<<NFlag)   \r
2669          .hword  (0x46<<8)                  |(1<<NFlag)   \r
2670          .hword  (0x47<<8)               |(1<<VFlag)|(1<<NFlag)   \r
2671          .hword  (0x48<<8)            |(1<<VFlag)|(1<<NFlag)   \r
2672          .hword  (0x49<<8)               |(1<<NFlag)   \r
2673          .hword  (0x50<<8)               |(1<<VFlag)|(1<<NFlag)   \r
2674          .hword  (0x51<<8)                  |(1<<NFlag)   \r
2675          .hword  (0x52<<8)                  |(1<<NFlag)   \r
2676          .hword  (0x53<<8)               |(1<<VFlag)|(1<<NFlag)   \r
2677          .hword  (0x54<<8)                  |(1<<NFlag)   \r
2678          .hword  (0x55<<8)               |(1<<VFlag)|(1<<NFlag)   \r
2679          .hword  (0x56<<8)               |(1<<VFlag)|(1<<NFlag)   \r
2680          .hword  (0x57<<8)                  |(1<<NFlag)   \r
2681          .hword  (0x58<<8)               |(1<<NFlag)   \r
2682          .hword  (0x59<<8)            |(1<<VFlag)|(1<<NFlag)   \r
2683          .hword  (0x54<<8)                  |(1<<NFlag)   \r
2684          .hword  (0x55<<8)               |(1<<VFlag)|(1<<NFlag)   \r
2685          .hword  (0x56<<8)               |(1<<VFlag)|(1<<NFlag)   \r
2686          .hword  (0x57<<8)                  |(1<<NFlag)   \r
2687          .hword  (0x58<<8)               |(1<<NFlag)   \r
2688          .hword  (0x59<<8)            |(1<<VFlag)|(1<<NFlag)   \r
2689          .hword  (0x60<<8)            |(1<<VFlag)|(1<<NFlag)   \r
2690          .hword  (0x61<<8)               |(1<<NFlag)   \r
2691          .hword  (0x62<<8)               |(1<<NFlag)   \r
2692          .hword  (0x63<<8)            |(1<<VFlag)|(1<<NFlag)   \r
2693          .hword  (0x64<<8)               |(1<<NFlag)   \r
2694          .hword  (0x65<<8)            |(1<<VFlag)|(1<<NFlag)   \r
2695          .hword  (0x66<<8)            |(1<<VFlag)|(1<<NFlag)   \r
2696          .hword  (0x67<<8)               |(1<<NFlag)   \r
2697          .hword  (0x68<<8)            |(1<<NFlag)   \r
2698          .hword  (0x69<<8)         |(1<<VFlag)|(1<<NFlag)   \r
2699          .hword  (0x64<<8)               |(1<<NFlag)   \r
2700          .hword  (0x65<<8)            |(1<<VFlag)|(1<<NFlag)   \r
2701          .hword  (0x66<<8)            |(1<<VFlag)|(1<<NFlag)   \r
2702          .hword  (0x67<<8)               |(1<<NFlag)   \r
2703          .hword  (0x68<<8)            |(1<<NFlag)   \r
2704          .hword  (0x69<<8)         |(1<<VFlag)|(1<<NFlag)   \r
2705          .hword  (0x70<<8)               |(1<<NFlag)   \r
2706          .hword  (0x71<<8)            |(1<<VFlag)|(1<<NFlag)   \r
2707          .hword  (0x72<<8)            |(1<<VFlag)|(1<<NFlag)   \r
2708          .hword  (0x73<<8)               |(1<<NFlag)   \r
2709          .hword  (0x74<<8)            |(1<<VFlag)|(1<<NFlag)   \r
2710          .hword  (0x75<<8)               |(1<<NFlag)   \r
2711          .hword  (0x76<<8)               |(1<<NFlag)   \r
2712          .hword  (0x77<<8)            |(1<<VFlag)|(1<<NFlag)   \r
2713          .hword  (0x78<<8)         |(1<<VFlag)|(1<<NFlag)   \r
2714          .hword  (0x79<<8)            |(1<<NFlag)   \r
2715          .hword  (0x74<<8)            |(1<<VFlag)|(1<<NFlag)   \r
2716          .hword  (0x75<<8)               |(1<<NFlag)   \r
2717          .hword  (0x76<<8)               |(1<<NFlag)   \r
2718          .hword  (0x77<<8)            |(1<<VFlag)|(1<<NFlag)   \r
2719          .hword  (0x78<<8)         |(1<<VFlag)|(1<<NFlag)   \r
2720          .hword  (0x79<<8)            |(1<<NFlag)   \r
2721          .hword  (0x80<<8)|(1<<SFlag)               |(1<<NFlag)   \r
2722          .hword  (0x81<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)   \r
2723          .hword  (0x82<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)   \r
2724          .hword  (0x83<<8)|(1<<SFlag)               |(1<<NFlag)   \r
2725          .hword  (0x84<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)   \r
2726          .hword  (0x85<<8)|(1<<SFlag)               |(1<<NFlag)   \r
2727          .hword  (0x86<<8)|(1<<SFlag)               |(1<<NFlag)   \r
2728          .hword  (0x87<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)   \r
2729          .hword  (0x88<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)   \r
2730          .hword  (0x89<<8)|(1<<SFlag)            |(1<<NFlag)   \r
2731          .hword  (0x84<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)   \r
2732          .hword  (0x85<<8)|(1<<SFlag)               |(1<<NFlag)   \r
2733          .hword  (0x86<<8)|(1<<SFlag)               |(1<<NFlag)   \r
2734          .hword  (0x87<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)   \r
2735          .hword  (0x88<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)   \r
2736          .hword  (0x89<<8)|(1<<SFlag)            |(1<<NFlag)   \r
2737          .hword  (0x90<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)   \r
2738          .hword  (0x91<<8)|(1<<SFlag)               |(1<<NFlag)   \r
2739          .hword  (0x92<<8)|(1<<SFlag)               |(1<<NFlag)   \r
2740          .hword  (0x93<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)   \r
2741          .hword  (0x94<<8)|(1<<SFlag)               |(1<<NFlag)   \r
2742          .hword  (0x95<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)   \r
2743          .hword  (0x96<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)   \r
2744          .hword  (0x97<<8)|(1<<SFlag)               |(1<<NFlag)   \r
2745          .hword  (0x98<<8)|(1<<SFlag)            |(1<<NFlag)   \r
2746          .hword  (0x99<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)   \r
2747          .hword  (0x34<<8)               |(1<<NFlag)|(1<<CFlag)\r
2748          .hword  (0x35<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2749          .hword  (0x36<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2750          .hword  (0x37<<8)               |(1<<NFlag)|(1<<CFlag)\r
2751          .hword  (0x38<<8)            |(1<<NFlag)|(1<<CFlag)\r
2752          .hword  (0x39<<8)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2753          .hword  (0x40<<8)                  |(1<<NFlag)|(1<<CFlag)\r
2754          .hword  (0x41<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2755          .hword  (0x42<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2756          .hword  (0x43<<8)                  |(1<<NFlag)|(1<<CFlag)\r
2757          .hword  (0x44<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2758          .hword  (0x45<<8)                  |(1<<NFlag)|(1<<CFlag)\r
2759          .hword  (0x46<<8)                  |(1<<NFlag)|(1<<CFlag)\r
2760          .hword  (0x47<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2761          .hword  (0x48<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2762          .hword  (0x49<<8)               |(1<<NFlag)|(1<<CFlag)\r
2763          .hword  (0x44<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2764          .hword  (0x45<<8)                  |(1<<NFlag)|(1<<CFlag)\r
2765          .hword  (0x46<<8)                  |(1<<NFlag)|(1<<CFlag)\r
2766          .hword  (0x47<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2767          .hword  (0x48<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2768          .hword  (0x49<<8)               |(1<<NFlag)|(1<<CFlag)\r
2769          .hword  (0x50<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2770          .hword  (0x51<<8)                  |(1<<NFlag)|(1<<CFlag)\r
2771          .hword  (0x52<<8)                  |(1<<NFlag)|(1<<CFlag)\r
2772          .hword  (0x53<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2773          .hword  (0x54<<8)                  |(1<<NFlag)|(1<<CFlag)\r
2774          .hword  (0x55<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2775          .hword  (0x56<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2776          .hword  (0x57<<8)                  |(1<<NFlag)|(1<<CFlag)\r
2777          .hword  (0x58<<8)               |(1<<NFlag)|(1<<CFlag)\r
2778          .hword  (0x59<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2779          .hword  (0x54<<8)                  |(1<<NFlag)|(1<<CFlag)\r
2780          .hword  (0x55<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2781          .hword  (0x56<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2782          .hword  (0x57<<8)                  |(1<<NFlag)|(1<<CFlag)\r
2783          .hword  (0x58<<8)               |(1<<NFlag)|(1<<CFlag)\r
2784          .hword  (0x59<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2785          .hword  (0x60<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2786          .hword  (0x61<<8)               |(1<<NFlag)|(1<<CFlag)\r
2787          .hword  (0x62<<8)               |(1<<NFlag)|(1<<CFlag)\r
2788          .hword  (0x63<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2789          .hword  (0x64<<8)               |(1<<NFlag)|(1<<CFlag)\r
2790          .hword  (0x65<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2791          .hword  (0x66<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2792          .hword  (0x67<<8)               |(1<<NFlag)|(1<<CFlag)\r
2793          .hword  (0x68<<8)            |(1<<NFlag)|(1<<CFlag)\r
2794          .hword  (0x69<<8)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2795          .hword  (0x64<<8)               |(1<<NFlag)|(1<<CFlag)\r
2796          .hword  (0x65<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2797          .hword  (0x66<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2798          .hword  (0x67<<8)               |(1<<NFlag)|(1<<CFlag)\r
2799          .hword  (0x68<<8)            |(1<<NFlag)|(1<<CFlag)\r
2800          .hword  (0x69<<8)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2801          .hword  (0x70<<8)               |(1<<NFlag)|(1<<CFlag)\r
2802          .hword  (0x71<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2803          .hword  (0x72<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2804          .hword  (0x73<<8)               |(1<<NFlag)|(1<<CFlag)\r
2805          .hword  (0x74<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2806          .hword  (0x75<<8)               |(1<<NFlag)|(1<<CFlag)\r
2807          .hword  (0x76<<8)               |(1<<NFlag)|(1<<CFlag)\r
2808          .hword  (0x77<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2809          .hword  (0x78<<8)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2810          .hword  (0x79<<8)            |(1<<NFlag)|(1<<CFlag)\r
2811          .hword  (0x74<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2812          .hword  (0x75<<8)               |(1<<NFlag)|(1<<CFlag)\r
2813          .hword  (0x76<<8)               |(1<<NFlag)|(1<<CFlag)\r
2814          .hword  (0x77<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2815          .hword  (0x78<<8)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2816          .hword  (0x79<<8)            |(1<<NFlag)|(1<<CFlag)\r
2817          .hword  (0x80<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)\r
2818          .hword  (0x81<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2819          .hword  (0x82<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2820          .hword  (0x83<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)\r
2821          .hword  (0x84<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2822          .hword  (0x85<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)\r
2823          .hword  (0x86<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)\r
2824          .hword  (0x87<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2825          .hword  (0x88<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2826          .hword  (0x89<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)\r
2827          .hword  (0x84<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2828          .hword  (0x85<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)\r
2829          .hword  (0x86<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)\r
2830          .hword  (0x87<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2831          .hword  (0x88<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2832          .hword  (0x89<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)\r
2833          .hword  (0x90<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2834          .hword  (0x91<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)\r
2835          .hword  (0x92<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)\r
2836          .hword  (0x93<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2837          .hword  (0x94<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)\r
2838          .hword  (0x95<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2839          .hword  (0x96<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2840          .hword  (0x97<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)\r
2841          .hword  (0x98<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)\r
2842          .hword  (0x99<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2843          .hword  (0x94<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)\r
2844          .hword  (0x95<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2845          .hword  (0x96<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2846          .hword  (0x97<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)\r
2847          .hword  (0x98<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)\r
2848          .hword  (0x99<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2849          .hword  (0xA0<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2850          .hword  (0xA1<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)\r
2851          .hword  (0xA2<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)\r
2852          .hword  (0xA3<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2853          .hword  (0xA4<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)\r
2854          .hword  (0xA5<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2855          .hword  (0xA6<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2856          .hword  (0xA7<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)\r
2857          .hword  (0xA8<<8)|(1<<SFlag)         |(1<<NFlag)|(1<<CFlag)\r
2858          .hword  (0xA9<<8)|(1<<SFlag)      |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2859          .hword  (0xA4<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)\r
2860          .hword  (0xA5<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2861          .hword  (0xA6<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2862          .hword  (0xA7<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)\r
2863          .hword  (0xA8<<8)|(1<<SFlag)         |(1<<NFlag)|(1<<CFlag)\r
2864          .hword  (0xA9<<8)|(1<<SFlag)      |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2865          .hword  (0xB0<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)\r
2866          .hword  (0xB1<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2867          .hword  (0xB2<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2868          .hword  (0xB3<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)\r
2869          .hword  (0xB4<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2870          .hword  (0xB5<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)\r
2871          .hword  (0xB6<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)\r
2872          .hword  (0xB7<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2873          .hword  (0xB8<<8)|(1<<SFlag)      |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2874          .hword  (0xB9<<8)|(1<<SFlag)         |(1<<NFlag)|(1<<CFlag)\r
2875          .hword  (0xB4<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2876          .hword  (0xB5<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)\r
2877          .hword  (0xB6<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)\r
2878          .hword  (0xB7<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2879          .hword  (0xB8<<8)|(1<<SFlag)      |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2880          .hword  (0xB9<<8)|(1<<SFlag)         |(1<<NFlag)|(1<<CFlag)\r
2881          .hword  (0xC0<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2882          .hword  (0xC1<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)\r
2883          .hword  (0xC2<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)\r
2884          .hword  (0xC3<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2885          .hword  (0xC4<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)\r
2886          .hword  (0xC5<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2887          .hword  (0xC6<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2888          .hword  (0xC7<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)\r
2889          .hword  (0xC8<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)\r
2890          .hword  (0xC9<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2891          .hword  (0xC4<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)\r
2892          .hword  (0xC5<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2893          .hword  (0xC6<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2894          .hword  (0xC7<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)\r
2895          .hword  (0xC8<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)\r
2896          .hword  (0xC9<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2897          .hword  (0xD0<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)\r
2898          .hword  (0xD1<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2899          .hword  (0xD2<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2900          .hword  (0xD3<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)\r
2901          .hword  (0xD4<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2902          .hword  (0xD5<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)\r
2903          .hword  (0xD6<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)\r
2904          .hword  (0xD7<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2905          .hword  (0xD8<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2906          .hword  (0xD9<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)\r
2907          .hword  (0xD4<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2908          .hword  (0xD5<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)\r
2909          .hword  (0xD6<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)\r
2910          .hword  (0xD7<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2911          .hword  (0xD8<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2912          .hword  (0xD9<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)\r
2913          .hword  (0xE0<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)\r
2914          .hword  (0xE1<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2915          .hword  (0xE2<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2916          .hword  (0xE3<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)\r
2917          .hword  (0xE4<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2918          .hword  (0xE5<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)\r
2919          .hword  (0xE6<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)\r
2920          .hword  (0xE7<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2921          .hword  (0xE8<<8)|(1<<SFlag)      |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2922          .hword  (0xE9<<8)|(1<<SFlag)         |(1<<NFlag)|(1<<CFlag)\r
2923          .hword  (0xE4<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2924          .hword  (0xE5<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)\r
2925          .hword  (0xE6<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)\r
2926          .hword  (0xE7<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2927          .hword  (0xE8<<8)|(1<<SFlag)      |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2928          .hword  (0xE9<<8)|(1<<SFlag)         |(1<<NFlag)|(1<<CFlag)\r
2929          .hword  (0xF0<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2930          .hword  (0xF1<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)\r
2931          .hword  (0xF2<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)\r
2932          .hword  (0xF3<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2933          .hword  (0xF4<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)\r
2934          .hword  (0xF5<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2935          .hword  (0xF6<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2936          .hword  (0xF7<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)\r
2937          .hword  (0xF8<<8)|(1<<SFlag)         |(1<<NFlag)|(1<<CFlag)\r
2938          .hword  (0xF9<<8)|(1<<SFlag)      |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2939          .hword  (0xF4<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)\r
2940          .hword  (0xF5<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2941          .hword  (0xF6<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2942          .hword  (0xF7<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)\r
2943          .hword  (0xF8<<8)|(1<<SFlag)         |(1<<NFlag)|(1<<CFlag)\r
2944          .hword  (0xF9<<8)|(1<<SFlag)      |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2945          .hword  (0x00<<8)   |(1<<ZFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2946          .hword  (0x01<<8)                  |(1<<NFlag)|(1<<CFlag)\r
2947          .hword  (0x02<<8)                  |(1<<NFlag)|(1<<CFlag)\r
2948          .hword  (0x03<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2949          .hword  (0x04<<8)                  |(1<<NFlag)|(1<<CFlag)\r
2950          .hword  (0x05<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2951          .hword  (0x06<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2952          .hword  (0x07<<8)                  |(1<<NFlag)|(1<<CFlag)\r
2953          .hword  (0x08<<8)               |(1<<NFlag)|(1<<CFlag)\r
2954          .hword  (0x09<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2955          .hword  (0x04<<8)                  |(1<<NFlag)|(1<<CFlag)\r
2956          .hword  (0x05<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2957          .hword  (0x06<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2958          .hword  (0x07<<8)                  |(1<<NFlag)|(1<<CFlag)\r
2959          .hword  (0x08<<8)               |(1<<NFlag)|(1<<CFlag)\r
2960          .hword  (0x09<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2961          .hword  (0x10<<8)                  |(1<<NFlag)|(1<<CFlag)\r
2962          .hword  (0x11<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2963          .hword  (0x12<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2964          .hword  (0x13<<8)                  |(1<<NFlag)|(1<<CFlag)\r
2965          .hword  (0x14<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2966          .hword  (0x15<<8)                  |(1<<NFlag)|(1<<CFlag)\r
2967          .hword  (0x16<<8)                  |(1<<NFlag)|(1<<CFlag)\r
2968          .hword  (0x17<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2969          .hword  (0x18<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2970          .hword  (0x19<<8)               |(1<<NFlag)|(1<<CFlag)\r
2971          .hword  (0x14<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2972          .hword  (0x15<<8)                  |(1<<NFlag)|(1<<CFlag)\r
2973          .hword  (0x16<<8)                  |(1<<NFlag)|(1<<CFlag)\r
2974          .hword  (0x17<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2975          .hword  (0x18<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2976          .hword  (0x19<<8)               |(1<<NFlag)|(1<<CFlag)\r
2977          .hword  (0x20<<8)               |(1<<NFlag)|(1<<CFlag)\r
2978          .hword  (0x21<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2979          .hword  (0x22<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2980          .hword  (0x23<<8)               |(1<<NFlag)|(1<<CFlag)\r
2981          .hword  (0x24<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2982          .hword  (0x25<<8)               |(1<<NFlag)|(1<<CFlag)\r
2983          .hword  (0x26<<8)               |(1<<NFlag)|(1<<CFlag)\r
2984          .hword  (0x27<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2985          .hword  (0x28<<8)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2986          .hword  (0x29<<8)            |(1<<NFlag)|(1<<CFlag)\r
2987          .hword  (0x24<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2988          .hword  (0x25<<8)               |(1<<NFlag)|(1<<CFlag)\r
2989          .hword  (0x26<<8)               |(1<<NFlag)|(1<<CFlag)\r
2990          .hword  (0x27<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2991          .hword  (0x28<<8)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2992          .hword  (0x29<<8)            |(1<<NFlag)|(1<<CFlag)\r
2993          .hword  (0x30<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2994          .hword  (0x31<<8)               |(1<<NFlag)|(1<<CFlag)\r
2995          .hword  (0x32<<8)               |(1<<NFlag)|(1<<CFlag)\r
2996          .hword  (0x33<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2997          .hword  (0x34<<8)               |(1<<NFlag)|(1<<CFlag)\r
2998          .hword  (0x35<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2999          .hword  (0x36<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3000          .hword  (0x37<<8)               |(1<<NFlag)|(1<<CFlag)\r
3001          .hword  (0x38<<8)            |(1<<NFlag)|(1<<CFlag)\r
3002          .hword  (0x39<<8)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3003          .hword  (0x34<<8)               |(1<<NFlag)|(1<<CFlag)\r
3004          .hword  (0x35<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3005          .hword  (0x36<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3006          .hword  (0x37<<8)               |(1<<NFlag)|(1<<CFlag)\r
3007          .hword  (0x38<<8)            |(1<<NFlag)|(1<<CFlag)\r
3008          .hword  (0x39<<8)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3009          .hword  (0x40<<8)                  |(1<<NFlag)|(1<<CFlag)\r
3010          .hword  (0x41<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3011          .hword  (0x42<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3012          .hword  (0x43<<8)                  |(1<<NFlag)|(1<<CFlag)\r
3013          .hword  (0x44<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3014          .hword  (0x45<<8)                  |(1<<NFlag)|(1<<CFlag)\r
3015          .hword  (0x46<<8)                  |(1<<NFlag)|(1<<CFlag)\r
3016          .hword  (0x47<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3017          .hword  (0x48<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3018          .hword  (0x49<<8)               |(1<<NFlag)|(1<<CFlag)\r
3019          .hword  (0x44<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3020          .hword  (0x45<<8)                  |(1<<NFlag)|(1<<CFlag)\r
3021          .hword  (0x46<<8)                  |(1<<NFlag)|(1<<CFlag)\r
3022          .hword  (0x47<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3023          .hword  (0x48<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3024          .hword  (0x49<<8)               |(1<<NFlag)|(1<<CFlag)\r
3025          .hword  (0x50<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3026          .hword  (0x51<<8)                  |(1<<NFlag)|(1<<CFlag)\r
3027          .hword  (0x52<<8)                  |(1<<NFlag)|(1<<CFlag)\r
3028          .hword  (0x53<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3029          .hword  (0x54<<8)                  |(1<<NFlag)|(1<<CFlag)\r
3030          .hword  (0x55<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3031          .hword  (0x56<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3032          .hword  (0x57<<8)                  |(1<<NFlag)|(1<<CFlag)\r
3033          .hword  (0x58<<8)               |(1<<NFlag)|(1<<CFlag)\r
3034          .hword  (0x59<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3035          .hword  (0x54<<8)                  |(1<<NFlag)|(1<<CFlag)\r
3036          .hword  (0x55<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3037          .hword  (0x56<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3038          .hword  (0x57<<8)                  |(1<<NFlag)|(1<<CFlag)\r
3039          .hword  (0x58<<8)               |(1<<NFlag)|(1<<CFlag)\r
3040          .hword  (0x59<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3041          .hword  (0x60<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3042          .hword  (0x61<<8)               |(1<<NFlag)|(1<<CFlag)\r
3043          .hword  (0x62<<8)               |(1<<NFlag)|(1<<CFlag)\r
3044          .hword  (0x63<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3045          .hword  (0x64<<8)               |(1<<NFlag)|(1<<CFlag)\r
3046          .hword  (0x65<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3047          .hword  (0x66<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3048          .hword  (0x67<<8)               |(1<<NFlag)|(1<<CFlag)\r
3049          .hword  (0x68<<8)            |(1<<NFlag)|(1<<CFlag)\r
3050          .hword  (0x69<<8)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3051          .hword  (0x64<<8)               |(1<<NFlag)|(1<<CFlag)\r
3052          .hword  (0x65<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3053          .hword  (0x66<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3054          .hword  (0x67<<8)               |(1<<NFlag)|(1<<CFlag)\r
3055          .hword  (0x68<<8)            |(1<<NFlag)|(1<<CFlag)\r
3056          .hword  (0x69<<8)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3057          .hword  (0x70<<8)               |(1<<NFlag)|(1<<CFlag)\r
3058          .hword  (0x71<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3059          .hword  (0x72<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3060          .hword  (0x73<<8)               |(1<<NFlag)|(1<<CFlag)\r
3061          .hword  (0x74<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3062          .hword  (0x75<<8)               |(1<<NFlag)|(1<<CFlag)\r
3063          .hword  (0x76<<8)               |(1<<NFlag)|(1<<CFlag)\r
3064          .hword  (0x77<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3065          .hword  (0x78<<8)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3066          .hword  (0x79<<8)            |(1<<NFlag)|(1<<CFlag)\r
3067          .hword  (0x74<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3068          .hword  (0x75<<8)               |(1<<NFlag)|(1<<CFlag)\r
3069          .hword  (0x76<<8)               |(1<<NFlag)|(1<<CFlag)\r
3070          .hword  (0x77<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3071          .hword  (0x78<<8)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3072          .hword  (0x79<<8)            |(1<<NFlag)|(1<<CFlag)\r
3073          .hword  (0x80<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)\r
3074          .hword  (0x81<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3075          .hword  (0x82<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3076          .hword  (0x83<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)\r
3077          .hword  (0x84<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3078          .hword  (0x85<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)\r
3079          .hword  (0x86<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)\r
3080          .hword  (0x87<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3081          .hword  (0x88<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3082          .hword  (0x89<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)\r
3083          .hword  (0x84<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3084          .hword  (0x85<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)\r
3085          .hword  (0x86<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)\r
3086          .hword  (0x87<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3087          .hword  (0x88<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3088          .hword  (0x89<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)\r
3089          .hword  (0x90<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3090          .hword  (0x91<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)\r
3091          .hword  (0x92<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)\r
3092          .hword  (0x93<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3093          .hword  (0x94<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)\r
3094          .hword  (0x95<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3095          .hword  (0x96<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3096          .hword  (0x97<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)\r
3097          .hword  (0x98<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)\r
3098          .hword  (0x99<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3099          .hword  (0x94<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)\r
3100          .hword  (0x95<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3101          .hword  (0x96<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3102          .hword  (0x97<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)\r
3103          .hword  (0x98<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)\r
3104          .hword  (0x99<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3105          .hword  (0xFA<<8)|(1<<SFlag)   |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)   \r
3106          .hword  (0xFB<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<NFlag)   \r
3107          .hword  (0xFC<<8)|(1<<SFlag)   |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)   \r
3108          .hword  (0xFD<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<NFlag)   \r
3109          .hword  (0xFE<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<NFlag)   \r
3110          .hword  (0xFF<<8)|(1<<SFlag)   |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)   \r
3111          .hword  (0x00<<8)   |(1<<ZFlag)         |(1<<VFlag)|(1<<NFlag)   \r
3112          .hword  (0x01<<8)                  |(1<<NFlag)   \r
3113          .hword  (0x02<<8)                  |(1<<NFlag)   \r
3114          .hword  (0x03<<8)               |(1<<VFlag)|(1<<NFlag)   \r
3115          .hword  (0x04<<8)                  |(1<<NFlag)   \r
3116          .hword  (0x05<<8)               |(1<<VFlag)|(1<<NFlag)   \r
3117          .hword  (0x06<<8)               |(1<<VFlag)|(1<<NFlag)   \r
3118          .hword  (0x07<<8)                  |(1<<NFlag)   \r
3119          .hword  (0x08<<8)               |(1<<NFlag)   \r
3120          .hword  (0x09<<8)            |(1<<VFlag)|(1<<NFlag)   \r
3121          .hword  (0x0A<<8)         |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)   \r
3122          .hword  (0x0B<<8)         |(1<<HFlag)   |(1<<NFlag)   \r
3123          .hword  (0x0C<<8)         |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)   \r
3124          .hword  (0x0D<<8)         |(1<<HFlag)   |(1<<NFlag)   \r
3125          .hword  (0x0E<<8)         |(1<<HFlag)   |(1<<NFlag)   \r
3126          .hword  (0x0F<<8)         |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)   \r
3127          .hword  (0x10<<8)                  |(1<<NFlag)   \r
3128          .hword  (0x11<<8)               |(1<<VFlag)|(1<<NFlag)   \r
3129          .hword  (0x12<<8)               |(1<<VFlag)|(1<<NFlag)   \r
3130          .hword  (0x13<<8)                  |(1<<NFlag)   \r
3131          .hword  (0x14<<8)               |(1<<VFlag)|(1<<NFlag)   \r
3132          .hword  (0x15<<8)                  |(1<<NFlag)   \r
3133          .hword  (0x16<<8)                  |(1<<NFlag)   \r
3134          .hword  (0x17<<8)               |(1<<VFlag)|(1<<NFlag)   \r
3135          .hword  (0x18<<8)            |(1<<VFlag)|(1<<NFlag)   \r
3136          .hword  (0x19<<8)               |(1<<NFlag)   \r
3137          .hword  (0x1A<<8)         |(1<<HFlag)   |(1<<NFlag)   \r
3138          .hword  (0x1B<<8)         |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)   \r
3139          .hword  (0x1C<<8)         |(1<<HFlag)   |(1<<NFlag)   \r
3140          .hword  (0x1D<<8)         |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)   \r
3141          .hword  (0x1E<<8)         |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)   \r
3142          .hword  (0x1F<<8)         |(1<<HFlag)   |(1<<NFlag)   \r
3143          .hword  (0x20<<8)               |(1<<NFlag)   \r
3144          .hword  (0x21<<8)            |(1<<VFlag)|(1<<NFlag)   \r
3145          .hword  (0x22<<8)            |(1<<VFlag)|(1<<NFlag)   \r
3146          .hword  (0x23<<8)               |(1<<NFlag)   \r
3147          .hword  (0x24<<8)            |(1<<VFlag)|(1<<NFlag)   \r
3148          .hword  (0x25<<8)               |(1<<NFlag)   \r
3149          .hword  (0x26<<8)               |(1<<NFlag)   \r
3150          .hword  (0x27<<8)            |(1<<VFlag)|(1<<NFlag)   \r
3151          .hword  (0x28<<8)         |(1<<VFlag)|(1<<NFlag)   \r
3152          .hword  (0x29<<8)            |(1<<NFlag)   \r
3153          .hword  (0x2A<<8)      |(1<<HFlag)   |(1<<NFlag)   \r
3154          .hword  (0x2B<<8)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)   \r
3155          .hword  (0x2C<<8)      |(1<<HFlag)   |(1<<NFlag)   \r
3156          .hword  (0x2D<<8)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)   \r
3157          .hword  (0x2E<<8)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)   \r
3158          .hword  (0x2F<<8)      |(1<<HFlag)   |(1<<NFlag)   \r
3159          .hword  (0x30<<8)            |(1<<VFlag)|(1<<NFlag)   \r
3160          .hword  (0x31<<8)               |(1<<NFlag)   \r
3161          .hword  (0x32<<8)               |(1<<NFlag)   \r
3162          .hword  (0x33<<8)            |(1<<VFlag)|(1<<NFlag)   \r
3163          .hword  (0x34<<8)               |(1<<NFlag)   \r
3164          .hword  (0x35<<8)            |(1<<VFlag)|(1<<NFlag)   \r
3165          .hword  (0x36<<8)            |(1<<VFlag)|(1<<NFlag)   \r
3166          .hword  (0x37<<8)               |(1<<NFlag)   \r
3167          .hword  (0x38<<8)            |(1<<NFlag)   \r
3168          .hword  (0x39<<8)         |(1<<VFlag)|(1<<NFlag)   \r
3169          .hword  (0x3A<<8)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)   \r
3170          .hword  (0x3B<<8)      |(1<<HFlag)   |(1<<NFlag)   \r
3171          .hword  (0x3C<<8)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)   \r
3172          .hword  (0x3D<<8)      |(1<<HFlag)   |(1<<NFlag)   \r
3173          .hword  (0x3E<<8)      |(1<<HFlag)   |(1<<NFlag)   \r
3174          .hword  (0x3F<<8)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)   \r
3175          .hword  (0x40<<8)                  |(1<<NFlag)   \r
3176          .hword  (0x41<<8)               |(1<<VFlag)|(1<<NFlag)   \r
3177          .hword  (0x42<<8)               |(1<<VFlag)|(1<<NFlag)   \r
3178          .hword  (0x43<<8)                  |(1<<NFlag)   \r
3179          .hword  (0x44<<8)               |(1<<VFlag)|(1<<NFlag)   \r
3180          .hword  (0x45<<8)                  |(1<<NFlag)   \r
3181          .hword  (0x46<<8)                  |(1<<NFlag)   \r
3182          .hword  (0x47<<8)               |(1<<VFlag)|(1<<NFlag)   \r
3183          .hword  (0x48<<8)            |(1<<VFlag)|(1<<NFlag)   \r
3184          .hword  (0x49<<8)               |(1<<NFlag)   \r
3185          .hword  (0x4A<<8)         |(1<<HFlag)   |(1<<NFlag)   \r
3186          .hword  (0x4B<<8)         |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)   \r
3187          .hword  (0x4C<<8)         |(1<<HFlag)   |(1<<NFlag)   \r
3188          .hword  (0x4D<<8)         |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)   \r
3189          .hword  (0x4E<<8)         |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)   \r
3190          .hword  (0x4F<<8)         |(1<<HFlag)   |(1<<NFlag)   \r
3191          .hword  (0x50<<8)               |(1<<VFlag)|(1<<NFlag)   \r
3192          .hword  (0x51<<8)                  |(1<<NFlag)   \r
3193          .hword  (0x52<<8)                  |(1<<NFlag)   \r
3194          .hword  (0x53<<8)               |(1<<VFlag)|(1<<NFlag)   \r
3195          .hword  (0x54<<8)                  |(1<<NFlag)   \r
3196          .hword  (0x55<<8)               |(1<<VFlag)|(1<<NFlag)   \r
3197          .hword  (0x56<<8)               |(1<<VFlag)|(1<<NFlag)   \r
3198          .hword  (0x57<<8)                  |(1<<NFlag)   \r
3199          .hword  (0x58<<8)               |(1<<NFlag)   \r
3200          .hword  (0x59<<8)            |(1<<VFlag)|(1<<NFlag)   \r
3201          .hword  (0x5A<<8)         |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)   \r
3202          .hword  (0x5B<<8)         |(1<<HFlag)   |(1<<NFlag)   \r
3203          .hword  (0x5C<<8)         |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)   \r
3204          .hword  (0x5D<<8)         |(1<<HFlag)   |(1<<NFlag)   \r
3205          .hword  (0x5E<<8)         |(1<<HFlag)   |(1<<NFlag)   \r
3206          .hword  (0x5F<<8)         |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)   \r
3207          .hword  (0x60<<8)            |(1<<VFlag)|(1<<NFlag)   \r
3208          .hword  (0x61<<8)               |(1<<NFlag)   \r
3209          .hword  (0x62<<8)               |(1<<NFlag)   \r
3210          .hword  (0x63<<8)            |(1<<VFlag)|(1<<NFlag)   \r
3211          .hword  (0x64<<8)               |(1<<NFlag)   \r
3212          .hword  (0x65<<8)            |(1<<VFlag)|(1<<NFlag)   \r
3213          .hword  (0x66<<8)            |(1<<VFlag)|(1<<NFlag)   \r
3214          .hword  (0x67<<8)               |(1<<NFlag)   \r
3215          .hword  (0x68<<8)            |(1<<NFlag)   \r
3216          .hword  (0x69<<8)         |(1<<VFlag)|(1<<NFlag)   \r
3217          .hword  (0x6A<<8)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)   \r
3218          .hword  (0x6B<<8)      |(1<<HFlag)   |(1<<NFlag)   \r
3219          .hword  (0x6C<<8)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)   \r
3220          .hword  (0x6D<<8)      |(1<<HFlag)   |(1<<NFlag)   \r
3221          .hword  (0x6E<<8)      |(1<<HFlag)   |(1<<NFlag)   \r
3222          .hword  (0x6F<<8)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)   \r
3223          .hword  (0x70<<8)               |(1<<NFlag)   \r
3224          .hword  (0x71<<8)            |(1<<VFlag)|(1<<NFlag)   \r
3225          .hword  (0x72<<8)            |(1<<VFlag)|(1<<NFlag)   \r
3226          .hword  (0x73<<8)               |(1<<NFlag)   \r
3227          .hword  (0x74<<8)            |(1<<VFlag)|(1<<NFlag)   \r
3228          .hword  (0x75<<8)               |(1<<NFlag)   \r
3229          .hword  (0x76<<8)               |(1<<NFlag)   \r
3230          .hword  (0x77<<8)            |(1<<VFlag)|(1<<NFlag)   \r
3231          .hword  (0x78<<8)         |(1<<VFlag)|(1<<NFlag)   \r
3232          .hword  (0x79<<8)            |(1<<NFlag)   \r
3233          .hword  (0x7A<<8)      |(1<<HFlag)   |(1<<NFlag)   \r
3234          .hword  (0x7B<<8)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)   \r
3235          .hword  (0x7C<<8)      |(1<<HFlag)   |(1<<NFlag)   \r
3236          .hword  (0x7D<<8)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)   \r
3237          .hword  (0x7E<<8)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)   \r
3238          .hword  (0x7F<<8)      |(1<<HFlag)   |(1<<NFlag)   \r
3239          .hword  (0x80<<8)|(1<<SFlag)               |(1<<NFlag)   \r
3240          .hword  (0x81<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)   \r
3241          .hword  (0x82<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)   \r
3242          .hword  (0x83<<8)|(1<<SFlag)               |(1<<NFlag)   \r
3243          .hword  (0x84<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)   \r
3244          .hword  (0x85<<8)|(1<<SFlag)               |(1<<NFlag)   \r
3245          .hword  (0x86<<8)|(1<<SFlag)               |(1<<NFlag)   \r
3246          .hword  (0x87<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)   \r
3247          .hword  (0x88<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)   \r
3248          .hword  (0x89<<8)|(1<<SFlag)            |(1<<NFlag)   \r
3249          .hword  (0x8A<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<NFlag)   \r
3250          .hword  (0x8B<<8)|(1<<SFlag)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)   \r
3251          .hword  (0x8C<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<NFlag)   \r
3252          .hword  (0x8D<<8)|(1<<SFlag)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)   \r
3253          .hword  (0x8E<<8)|(1<<SFlag)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)   \r
3254          .hword  (0x8F<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<NFlag)   \r
3255          .hword  (0x90<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)   \r
3256          .hword  (0x91<<8)|(1<<SFlag)               |(1<<NFlag)   \r
3257          .hword  (0x92<<8)|(1<<SFlag)               |(1<<NFlag)   \r
3258          .hword  (0x93<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)   \r
3259          .hword  (0x34<<8)               |(1<<NFlag)|(1<<CFlag)\r
3260          .hword  (0x35<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3261          .hword  (0x36<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3262          .hword  (0x37<<8)               |(1<<NFlag)|(1<<CFlag)\r
3263          .hword  (0x38<<8)            |(1<<NFlag)|(1<<CFlag)\r
3264          .hword  (0x39<<8)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3265          .hword  (0x3A<<8)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3266          .hword  (0x3B<<8)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)\r
3267          .hword  (0x3C<<8)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3268          .hword  (0x3D<<8)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)\r
3269          .hword  (0x3E<<8)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)\r
3270          .hword  (0x3F<<8)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3271          .hword  (0x40<<8)                  |(1<<NFlag)|(1<<CFlag)\r
3272          .hword  (0x41<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3273          .hword  (0x42<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3274          .hword  (0x43<<8)                  |(1<<NFlag)|(1<<CFlag)\r
3275          .hword  (0x44<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3276          .hword  (0x45<<8)                  |(1<<NFlag)|(1<<CFlag)\r
3277          .hword  (0x46<<8)                  |(1<<NFlag)|(1<<CFlag)\r
3278          .hword  (0x47<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3279          .hword  (0x48<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3280          .hword  (0x49<<8)               |(1<<NFlag)|(1<<CFlag)\r
3281          .hword  (0x4A<<8)         |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)\r
3282          .hword  (0x4B<<8)         |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3283          .hword  (0x4C<<8)         |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)\r
3284          .hword  (0x4D<<8)         |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3285          .hword  (0x4E<<8)         |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3286          .hword  (0x4F<<8)         |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)\r
3287          .hword  (0x50<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3288          .hword  (0x51<<8)                  |(1<<NFlag)|(1<<CFlag)\r
3289          .hword  (0x52<<8)                  |(1<<NFlag)|(1<<CFlag)\r
3290          .hword  (0x53<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3291          .hword  (0x54<<8)                  |(1<<NFlag)|(1<<CFlag)\r
3292          .hword  (0x55<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3293          .hword  (0x56<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3294          .hword  (0x57<<8)                  |(1<<NFlag)|(1<<CFlag)\r
3295          .hword  (0x58<<8)               |(1<<NFlag)|(1<<CFlag)\r
3296          .hword  (0x59<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3297          .hword  (0x5A<<8)         |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3298          .hword  (0x5B<<8)         |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)\r
3299          .hword  (0x5C<<8)         |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3300          .hword  (0x5D<<8)         |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)\r
3301          .hword  (0x5E<<8)         |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)\r
3302          .hword  (0x5F<<8)         |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3303          .hword  (0x60<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3304          .hword  (0x61<<8)               |(1<<NFlag)|(1<<CFlag)\r
3305          .hword  (0x62<<8)               |(1<<NFlag)|(1<<CFlag)\r
3306          .hword  (0x63<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3307          .hword  (0x64<<8)               |(1<<NFlag)|(1<<CFlag)\r
3308          .hword  (0x65<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3309          .hword  (0x66<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3310          .hword  (0x67<<8)               |(1<<NFlag)|(1<<CFlag)\r
3311          .hword  (0x68<<8)            |(1<<NFlag)|(1<<CFlag)\r
3312          .hword  (0x69<<8)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3313          .hword  (0x6A<<8)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3314          .hword  (0x6B<<8)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)\r
3315          .hword  (0x6C<<8)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3316          .hword  (0x6D<<8)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)\r
3317          .hword  (0x6E<<8)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)\r
3318          .hword  (0x6F<<8)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3319          .hword  (0x70<<8)               |(1<<NFlag)|(1<<CFlag)\r
3320          .hword  (0x71<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3321          .hword  (0x72<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3322          .hword  (0x73<<8)               |(1<<NFlag)|(1<<CFlag)\r
3323          .hword  (0x74<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3324          .hword  (0x75<<8)               |(1<<NFlag)|(1<<CFlag)\r
3325          .hword  (0x76<<8)               |(1<<NFlag)|(1<<CFlag)\r
3326          .hword  (0x77<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3327          .hword  (0x78<<8)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3328          .hword  (0x79<<8)            |(1<<NFlag)|(1<<CFlag)\r
3329          .hword  (0x7A<<8)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)\r
3330          .hword  (0x7B<<8)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3331          .hword  (0x7C<<8)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)\r
3332          .hword  (0x7D<<8)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3333          .hword  (0x7E<<8)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3334          .hword  (0x7F<<8)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)\r
3335          .hword  (0x80<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)\r
3336          .hword  (0x81<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3337          .hword  (0x82<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3338          .hword  (0x83<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)\r
3339          .hword  (0x84<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3340          .hword  (0x85<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)\r
3341          .hword  (0x86<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)\r
3342          .hword  (0x87<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3343          .hword  (0x88<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3344          .hword  (0x89<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)\r
3345          .hword  (0x8A<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)\r
3346          .hword  (0x8B<<8)|(1<<SFlag)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3347          .hword  (0x8C<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)\r
3348          .hword  (0x8D<<8)|(1<<SFlag)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3349          .hword  (0x8E<<8)|(1<<SFlag)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3350          .hword  (0x8F<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)\r
3351          .hword  (0x90<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3352          .hword  (0x91<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)\r
3353          .hword  (0x92<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)\r
3354          .hword  (0x93<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3355          .hword  (0x94<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)\r
3356          .hword  (0x95<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3357          .hword  (0x96<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3358          .hword  (0x97<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)\r
3359          .hword  (0x98<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)\r
3360          .hword  (0x99<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3361          .hword  (0x9A<<8)|(1<<SFlag)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3362          .hword  (0x9B<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)\r
3363          .hword  (0x9C<<8)|(1<<SFlag)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3364          .hword  (0x9D<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)\r
3365          .hword  (0x9E<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)\r
3366          .hword  (0x9F<<8)|(1<<SFlag)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3367          .hword  (0xA0<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3368          .hword  (0xA1<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)\r
3369          .hword  (0xA2<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)\r
3370          .hword  (0xA3<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3371          .hword  (0xA4<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)\r
3372          .hword  (0xA5<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3373          .hword  (0xA6<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3374          .hword  (0xA7<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)\r
3375          .hword  (0xA8<<8)|(1<<SFlag)         |(1<<NFlag)|(1<<CFlag)\r
3376          .hword  (0xA9<<8)|(1<<SFlag)      |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3377          .hword  (0xAA<<8)|(1<<SFlag)   |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3378          .hword  (0xAB<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)\r
3379          .hword  (0xAC<<8)|(1<<SFlag)   |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3380          .hword  (0xAD<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)\r
3381          .hword  (0xAE<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)\r
3382          .hword  (0xAF<<8)|(1<<SFlag)   |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3383          .hword  (0xB0<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)\r
3384          .hword  (0xB1<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3385          .hword  (0xB2<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3386          .hword  (0xB3<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)\r
3387          .hword  (0xB4<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3388          .hword  (0xB5<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)\r
3389          .hword  (0xB6<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)\r
3390          .hword  (0xB7<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3391          .hword  (0xB8<<8)|(1<<SFlag)      |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3392          .hword  (0xB9<<8)|(1<<SFlag)         |(1<<NFlag)|(1<<CFlag)\r
3393          .hword  (0xBA<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)\r
3394          .hword  (0xBB<<8)|(1<<SFlag)   |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3395          .hword  (0xBC<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)\r
3396          .hword  (0xBD<<8)|(1<<SFlag)   |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3397          .hword  (0xBE<<8)|(1<<SFlag)   |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3398          .hword  (0xBF<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)\r
3399          .hword  (0xC0<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3400          .hword  (0xC1<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)\r
3401          .hword  (0xC2<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)\r
3402          .hword  (0xC3<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3403          .hword  (0xC4<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)\r
3404          .hword  (0xC5<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3405          .hword  (0xC6<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3406          .hword  (0xC7<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)\r
3407          .hword  (0xC8<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)\r
3408          .hword  (0xC9<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3409          .hword  (0xCA<<8)|(1<<SFlag)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3410          .hword  (0xCB<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)\r
3411          .hword  (0xCC<<8)|(1<<SFlag)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3412          .hword  (0xCD<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)\r
3413          .hword  (0xCE<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)\r
3414          .hword  (0xCF<<8)|(1<<SFlag)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3415          .hword  (0xD0<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)\r
3416          .hword  (0xD1<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3417          .hword  (0xD2<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3418          .hword  (0xD3<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)\r
3419          .hword  (0xD4<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3420          .hword  (0xD5<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)\r
3421          .hword  (0xD6<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)\r
3422          .hword  (0xD7<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3423          .hword  (0xD8<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3424          .hword  (0xD9<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)\r
3425          .hword  (0xDA<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)\r
3426          .hword  (0xDB<<8)|(1<<SFlag)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3427          .hword  (0xDC<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)\r
3428          .hword  (0xDD<<8)|(1<<SFlag)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3429          .hword  (0xDE<<8)|(1<<SFlag)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3430          .hword  (0xDF<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)\r
3431          .hword  (0xE0<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)\r
3432          .hword  (0xE1<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3433          .hword  (0xE2<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3434          .hword  (0xE3<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)\r
3435          .hword  (0xE4<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3436          .hword  (0xE5<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)\r
3437          .hword  (0xE6<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)\r
3438          .hword  (0xE7<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3439          .hword  (0xE8<<8)|(1<<SFlag)      |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3440          .hword  (0xE9<<8)|(1<<SFlag)         |(1<<NFlag)|(1<<CFlag)\r
3441          .hword  (0xEA<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)\r
3442          .hword  (0xEB<<8)|(1<<SFlag)   |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3443          .hword  (0xEC<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)\r
3444          .hword  (0xED<<8)|(1<<SFlag)   |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3445          .hword  (0xEE<<8)|(1<<SFlag)   |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3446          .hword  (0xEF<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)\r
3447          .hword  (0xF0<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3448          .hword  (0xF1<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)\r
3449          .hword  (0xF2<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)\r
3450          .hword  (0xF3<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3451          .hword  (0xF4<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)\r
3452          .hword  (0xF5<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3453          .hword  (0xF6<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3454          .hword  (0xF7<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)\r
3455          .hword  (0xF8<<8)|(1<<SFlag)         |(1<<NFlag)|(1<<CFlag)\r
3456          .hword  (0xF9<<8)|(1<<SFlag)      |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3457          .hword  (0xFA<<8)|(1<<SFlag)   |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3458          .hword  (0xFB<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)\r
3459          .hword  (0xFC<<8)|(1<<SFlag)   |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3460          .hword  (0xFD<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)\r
3461          .hword  (0xFE<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)\r
3462          .hword  (0xFF<<8)|(1<<SFlag)   |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3463          .hword  (0x00<<8)   |(1<<ZFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3464          .hword  (0x01<<8)                  |(1<<NFlag)|(1<<CFlag)\r
3465          .hword  (0x02<<8)                  |(1<<NFlag)|(1<<CFlag)\r
3466          .hword  (0x03<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3467          .hword  (0x04<<8)                  |(1<<NFlag)|(1<<CFlag)\r
3468          .hword  (0x05<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3469          .hword  (0x06<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3470          .hword  (0x07<<8)                  |(1<<NFlag)|(1<<CFlag)\r
3471          .hword  (0x08<<8)               |(1<<NFlag)|(1<<CFlag)\r
3472          .hword  (0x09<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3473          .hword  (0x0A<<8)         |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3474          .hword  (0x0B<<8)         |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)\r
3475          .hword  (0x0C<<8)         |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3476          .hword  (0x0D<<8)         |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)\r
3477          .hword  (0x0E<<8)         |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)\r
3478          .hword  (0x0F<<8)         |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3479          .hword  (0x10<<8)                  |(1<<NFlag)|(1<<CFlag)\r
3480          .hword  (0x11<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3481          .hword  (0x12<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3482          .hword  (0x13<<8)                  |(1<<NFlag)|(1<<CFlag)\r
3483          .hword  (0x14<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3484          .hword  (0x15<<8)                  |(1<<NFlag)|(1<<CFlag)\r
3485          .hword  (0x16<<8)                  |(1<<NFlag)|(1<<CFlag)\r
3486          .hword  (0x17<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3487          .hword  (0x18<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3488          .hword  (0x19<<8)               |(1<<NFlag)|(1<<CFlag)\r
3489          .hword  (0x1A<<8)         |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)\r
3490          .hword  (0x1B<<8)         |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3491          .hword  (0x1C<<8)         |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)\r
3492          .hword  (0x1D<<8)         |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3493          .hword  (0x1E<<8)         |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3494          .hword  (0x1F<<8)         |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)\r
3495          .hword  (0x20<<8)               |(1<<NFlag)|(1<<CFlag)\r
3496          .hword  (0x21<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3497          .hword  (0x22<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3498          .hword  (0x23<<8)               |(1<<NFlag)|(1<<CFlag)\r
3499          .hword  (0x24<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3500          .hword  (0x25<<8)               |(1<<NFlag)|(1<<CFlag)\r
3501          .hword  (0x26<<8)               |(1<<NFlag)|(1<<CFlag)\r
3502          .hword  (0x27<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3503          .hword  (0x28<<8)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3504          .hword  (0x29<<8)            |(1<<NFlag)|(1<<CFlag)\r
3505          .hword  (0x2A<<8)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)\r
3506          .hword  (0x2B<<8)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3507          .hword  (0x2C<<8)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)\r
3508          .hword  (0x2D<<8)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3509          .hword  (0x2E<<8)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3510          .hword  (0x2F<<8)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)\r
3511          .hword  (0x30<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3512          .hword  (0x31<<8)               |(1<<NFlag)|(1<<CFlag)\r
3513          .hword  (0x32<<8)               |(1<<NFlag)|(1<<CFlag)\r
3514          .hword  (0x33<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3515          .hword  (0x34<<8)               |(1<<NFlag)|(1<<CFlag)\r
3516          .hword  (0x35<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3517          .hword  (0x36<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3518          .hword  (0x37<<8)               |(1<<NFlag)|(1<<CFlag)\r
3519          .hword  (0x38<<8)            |(1<<NFlag)|(1<<CFlag)\r
3520          .hword  (0x39<<8)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3521          .hword  (0x3A<<8)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3522          .hword  (0x3B<<8)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)\r
3523          .hword  (0x3C<<8)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3524          .hword  (0x3D<<8)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)\r
3525          .hword  (0x3E<<8)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)\r
3526          .hword  (0x3F<<8)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3527          .hword  (0x40<<8)                  |(1<<NFlag)|(1<<CFlag)\r
3528          .hword  (0x41<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3529          .hword  (0x42<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3530          .hword  (0x43<<8)                  |(1<<NFlag)|(1<<CFlag)\r
3531          .hword  (0x44<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3532          .hword  (0x45<<8)                  |(1<<NFlag)|(1<<CFlag)\r
3533          .hword  (0x46<<8)                  |(1<<NFlag)|(1<<CFlag)\r
3534          .hword  (0x47<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3535          .hword  (0x48<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3536          .hword  (0x49<<8)               |(1<<NFlag)|(1<<CFlag)\r
3537          .hword  (0x4A<<8)         |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)\r
3538          .hword  (0x4B<<8)         |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3539          .hword  (0x4C<<8)         |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)\r
3540          .hword  (0x4D<<8)         |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3541          .hword  (0x4E<<8)         |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3542          .hword  (0x4F<<8)         |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)\r
3543          .hword  (0x50<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3544          .hword  (0x51<<8)                  |(1<<NFlag)|(1<<CFlag)\r
3545          .hword  (0x52<<8)                  |(1<<NFlag)|(1<<CFlag)\r
3546          .hword  (0x53<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3547          .hword  (0x54<<8)                  |(1<<NFlag)|(1<<CFlag)\r
3548          .hword  (0x55<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3549          .hword  (0x56<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3550          .hword  (0x57<<8)                  |(1<<NFlag)|(1<<CFlag)\r
3551          .hword  (0x58<<8)               |(1<<NFlag)|(1<<CFlag)\r
3552          .hword  (0x59<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3553          .hword  (0x5A<<8)         |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3554          .hword  (0x5B<<8)         |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)\r
3555          .hword  (0x5C<<8)         |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3556          .hword  (0x5D<<8)         |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)\r
3557          .hword  (0x5E<<8)         |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)\r
3558          .hword  (0x5F<<8)         |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3559          .hword  (0x60<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3560          .hword  (0x61<<8)               |(1<<NFlag)|(1<<CFlag)\r
3561          .hword  (0x62<<8)               |(1<<NFlag)|(1<<CFlag)\r
3562          .hword  (0x63<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3563          .hword  (0x64<<8)               |(1<<NFlag)|(1<<CFlag)\r
3564          .hword  (0x65<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3565          .hword  (0x66<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3566          .hword  (0x67<<8)               |(1<<NFlag)|(1<<CFlag)\r
3567          .hword  (0x68<<8)            |(1<<NFlag)|(1<<CFlag)\r
3568          .hword  (0x69<<8)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3569          .hword  (0x6A<<8)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3570          .hword  (0x6B<<8)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)\r
3571          .hword  (0x6C<<8)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3572          .hword  (0x6D<<8)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)\r
3573          .hword  (0x6E<<8)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)\r
3574          .hword  (0x6F<<8)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3575          .hword  (0x70<<8)               |(1<<NFlag)|(1<<CFlag)\r
3576          .hword  (0x71<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3577          .hword  (0x72<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3578          .hword  (0x73<<8)               |(1<<NFlag)|(1<<CFlag)\r
3579          .hword  (0x74<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3580          .hword  (0x75<<8)               |(1<<NFlag)|(1<<CFlag)\r
3581          .hword  (0x76<<8)               |(1<<NFlag)|(1<<CFlag)\r
3582          .hword  (0x77<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3583          .hword  (0x78<<8)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3584          .hword  (0x79<<8)            |(1<<NFlag)|(1<<CFlag)\r
3585          .hword  (0x7A<<8)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)\r
3586          .hword  (0x7B<<8)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3587          .hword  (0x7C<<8)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)\r
3588          .hword  (0x7D<<8)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3589          .hword  (0x7E<<8)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3590          .hword  (0x7F<<8)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)\r
3591          .hword  (0x80<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)\r
3592          .hword  (0x81<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3593          .hword  (0x82<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3594          .hword  (0x83<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)\r
3595          .hword  (0x84<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3596          .hword  (0x85<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)\r
3597          .hword  (0x86<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)\r
3598          .hword  (0x87<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3599          .hword  (0x88<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3600          .hword  (0x89<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)\r
3601          .hword  (0x8A<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)\r
3602          .hword  (0x8B<<8)|(1<<SFlag)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3603          .hword  (0x8C<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)\r
3604          .hword  (0x8D<<8)|(1<<SFlag)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3605          .hword  (0x8E<<8)|(1<<SFlag)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3606          .hword  (0x8F<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)\r
3607          .hword  (0x90<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3608          .hword  (0x91<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)\r
3609          .hword  (0x92<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)\r
3610          .hword  (0x93<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3611          .hword  (0x94<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)\r
3612          .hword  (0x95<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3613          .hword  (0x96<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3614          .hword  (0x97<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)\r
3615          .hword  (0x98<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)\r
3616          .hword  (0x99<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3617          \r
3618 .align 4\r
3619 \r
3620 AF_Z80:  .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 0\r
3621          .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 1\r
3622          .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 2\r
3623          .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 3\r
3624          .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 4\r
3625          .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 5\r
3626          .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 6\r
3627          .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 7\r
3628          .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 8\r
3629          .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 9\r
3630          .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 10\r
3631          .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 11\r
3632          .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 12\r
3633          .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 13\r
3634          .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 14\r
3635          .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 15\r
3636          .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 16\r
3637          .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 17\r
3638          .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 18\r
3639          .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 19\r
3640          .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 20\r
3641          .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 21\r
3642          .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 22\r
3643          .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 23\r
3644          .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 24\r
3645          .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 25\r
3646          .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 26\r
3647          .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 27\r
3648          .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 28\r
3649          .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 29\r
3650          .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 30\r
3651          .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 31\r
3652          .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 32\r
3653          .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 33\r
3654          .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 34\r
3655          .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 35\r
3656          .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 36\r
3657          .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 37\r
3658          .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 38\r
3659          .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 39\r
3660          .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 40\r
3661          .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 41\r
3662          .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 42\r
3663          .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 43\r
3664          .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 44\r
3665          .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 45\r
3666          .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 46\r
3667          .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 47\r
3668          .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 48\r
3669          .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 49\r
3670          .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 50\r
3671          .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 51\r
3672          .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 52\r
3673          .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 53\r
3674          .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 54\r
3675          .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 55\r
3676          .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 56\r
3677          .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 57\r
3678          .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 58\r
3679          .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 59\r
3680          .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 60\r
3681          .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 61\r
3682          .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 62\r
3683          .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 63\r
3684          .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 64\r
3685          .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 65\r
3686          .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 66\r
3687          .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 67\r
3688          .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 68\r
3689          .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 69\r
3690          .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 70\r
3691          .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 71\r
3692          .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 72\r
3693          .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 73\r
3694          .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 74\r
3695          .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 75\r
3696          .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 76\r
3697          .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 77\r
3698          .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 78\r
3699          .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 79\r
3700          .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 80\r
3701          .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 81\r
3702          .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 82\r
3703          .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 83\r
3704          .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 84\r
3705          .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 85\r
3706          .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 86\r
3707          .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 87\r
3708          .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 88\r
3709          .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 89\r
3710          .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 90\r
3711          .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 91\r
3712          .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 92\r
3713          .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 93\r
3714          .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 94\r
3715          .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 95\r
3716          .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 96\r
3717          .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 97\r
3718          .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 98\r
3719          .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 99\r
3720          .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 100\r
3721          .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 101\r
3722          .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 102\r
3723          .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 103\r
3724          .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 104\r
3725          .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 105\r
3726          .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 106\r
3727          .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 107\r
3728          .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 108\r
3729          .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 109\r
3730          .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 110\r
3731          .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 111\r
3732          .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 112\r
3733          .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 113\r
3734          .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 114\r
3735          .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 115\r
3736          .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 116\r
3737          .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 117\r
3738          .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 118\r
3739          .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 119\r
3740          .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 120\r
3741          .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 121\r
3742          .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 122\r
3743          .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 123\r
3744          .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 124\r
3745          .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 125\r
3746          .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 126\r
3747          .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 127\r
3748          .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 128\r
3749          .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 129\r
3750          .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 130\r
3751          .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 131\r
3752          .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 132\r
3753          .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 133\r
3754          .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 134\r
3755          .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 135\r
3756          .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 136\r
3757          .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 137\r
3758          .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 138\r
3759          .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 139\r
3760          .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 140\r
3761          .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 141\r
3762          .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 142\r
3763          .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 143\r
3764          .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 144\r
3765          .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 145\r
3766          .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 146\r
3767          .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 147\r
3768          .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 148\r
3769          .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 149\r
3770          .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 150\r
3771          .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 151\r
3772          .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 152\r
3773          .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 153\r
3774          .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 154\r
3775          .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 155\r
3776          .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 156\r
3777          .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 157\r
3778          .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 158\r
3779          .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 159\r
3780          .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 160\r
3781          .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 161\r
3782          .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 162\r
3783          .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 163\r
3784          .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 164\r
3785          .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 165\r
3786          .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 166\r
3787          .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 167\r
3788          .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 168\r
3789          .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 169\r
3790          .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 170\r
3791          .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 171\r
3792          .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 172\r
3793          .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 173\r
3794          .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 174\r
3795          .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 175\r
3796          .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 176\r
3797          .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 177\r
3798          .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 178\r
3799          .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 179\r
3800          .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 180\r
3801          .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 181\r
3802          .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 182\r
3803          .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 183\r
3804          .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 184\r
3805          .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 185\r
3806          .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 186\r
3807          .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 187\r
3808          .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 188\r
3809          .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 189\r
3810          .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 190\r
3811          .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 191\r
3812          .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 192\r
3813          .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 193\r
3814          .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 194\r
3815          .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 195\r
3816          .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 196\r
3817          .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 197\r
3818          .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 198\r
3819          .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 199\r
3820          .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 200\r
3821          .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 201\r
3822          .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 202\r
3823          .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 203\r
3824          .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 204\r
3825          .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 205\r
3826          .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 206\r
3827          .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 207\r
3828          .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 208\r
3829          .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 209\r
3830          .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 210\r
3831          .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 211\r
3832          .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 212\r
3833          .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 213\r
3834          .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 214\r
3835          .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 215\r
3836          .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 216\r
3837          .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 217\r
3838          .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 218\r
3839          .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 219\r
3840          .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 220\r
3841          .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 221\r
3842          .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 222\r
3843          .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 223\r
3844          .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 224\r
3845          .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 225\r
3846          .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 226\r
3847          .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 227\r
3848          .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 228\r
3849          .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 229\r
3850          .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 230\r
3851          .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 231\r
3852          .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 232\r
3853          .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 233\r
3854          .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 234\r
3855          .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 235\r
3856          .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 236\r
3857          .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 237\r
3858          .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 238\r
3859          .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 239\r
3860          .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 240\r
3861          .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 241\r
3862          .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 242\r
3863          .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 243\r
3864          .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 244\r
3865          .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 245\r
3866          .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 246\r
3867          .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 247\r
3868          .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 248\r
3869          .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 249\r
3870          .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 250\r
3871          .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 251\r
3872          .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 252\r
3873          .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 253\r
3874          .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 254\r
3875          .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 255\r
3876 \r
3877 .align 4\r
3878 \r
3879 AF_ARM:  .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 0\r
3880          .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 1\r
3881          .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 2\r
3882          .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 3\r
3883          .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 4\r
3884          .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 5\r
3885          .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 6\r
3886          .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 7\r
3887          .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 8\r
3888          .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 9\r
3889          .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 10\r
3890          .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 11\r
3891          .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 12\r
3892          .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 13\r
3893          .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 14\r
3894          .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 15\r
3895          .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 16\r
3896          .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 17\r
3897          .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 18\r
3898          .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 19\r
3899          .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 20\r
3900          .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 21\r
3901          .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 22\r
3902          .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 23\r
3903          .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 24\r
3904          .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 25\r
3905          .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 26\r
3906          .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 27\r
3907          .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 28\r
3908          .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 29\r
3909          .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 30\r
3910          .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 31\r
3911          .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 32\r
3912          .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 33\r
3913          .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 34\r
3914          .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 35\r
3915          .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 36\r
3916          .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 37\r
3917          .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 38\r
3918          .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 39\r
3919          .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 40\r
3920          .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 41\r
3921          .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 42\r
3922          .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 43\r
3923          .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 44\r
3924          .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 45\r
3925          .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 46\r
3926          .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 47\r
3927          .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 48\r
3928          .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 49\r
3929          .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 50\r
3930          .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 51\r
3931          .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 52\r
3932          .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 53\r
3933          .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 54\r
3934          .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 55\r
3935          .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 56\r
3936          .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 57\r
3937          .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 58\r
3938          .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 59\r
3939          .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 60\r
3940          .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 61\r
3941          .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 62\r
3942          .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 63\r
3943          .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 64\r
3944          .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 65\r
3945          .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 66\r
3946          .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 67\r
3947          .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 68\r
3948          .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 69\r
3949          .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 70\r
3950          .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 71\r
3951          .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 72\r
3952          .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 73\r
3953          .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 74\r
3954          .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 75\r
3955          .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 76\r
3956          .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 77\r
3957          .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 78\r
3958          .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 79\r
3959          .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 80\r
3960          .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 81\r
3961          .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 82\r
3962          .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 83\r
3963          .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 84\r
3964          .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 85\r
3965          .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 86\r
3966          .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 87\r
3967          .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 88\r
3968          .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 89\r
3969          .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 90\r
3970          .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 91\r
3971          .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 92\r
3972          .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 93\r
3973          .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 94\r
3974          .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 95\r
3975          .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 96\r
3976          .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 97\r
3977          .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 98\r
3978          .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 99\r
3979          .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 100\r
3980          .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 101\r
3981          .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 102\r
3982          .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 103\r
3983          .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 104\r
3984          .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 105\r
3985          .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 106\r
3986          .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 107\r
3987          .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 108\r
3988          .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 109\r
3989          .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 110\r
3990          .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 111\r
3991          .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 112\r
3992          .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 113\r
3993          .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 114\r
3994          .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 115\r
3995          .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 116\r
3996          .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 117\r
3997          .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 118\r
3998          .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 119\r
3999          .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 120\r
4000          .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 121\r
4001          .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 122\r
4002          .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 123\r
4003          .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 124\r
4004          .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 125\r
4005          .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 126\r
4006          .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 127\r
4007          .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 128\r
4008          .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 129\r
4009          .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 130\r
4010          .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 131\r
4011          .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 132\r
4012          .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 133\r
4013          .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 134\r
4014          .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 135\r
4015          .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 136\r
4016          .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 137\r
4017          .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 138\r
4018          .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 139\r
4019          .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 140\r
4020          .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 141\r
4021          .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 142\r
4022          .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 143\r
4023          .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 144\r
4024          .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 145\r
4025          .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 146\r
4026          .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 147\r
4027          .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 148\r
4028          .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 149\r
4029          .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 150\r
4030          .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 151\r
4031          .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 152\r
4032          .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 153\r
4033          .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 154\r
4034          .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 155\r
4035          .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 156\r
4036          .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 157\r
4037          .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 158\r
4038          .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 159\r
4039          .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 160\r
4040          .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 161\r
4041          .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 162\r
4042          .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 163\r
4043          .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 164\r
4044          .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 165\r
4045          .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 166\r
4046          .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 167\r
4047          .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 168\r
4048          .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 169\r
4049          .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 170\r
4050          .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 171\r
4051          .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 172\r
4052          .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 173\r
4053          .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 174\r
4054          .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 175\r
4055          .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 176\r
4056          .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 177\r
4057          .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 178\r
4058          .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 179\r
4059          .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 180\r
4060          .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 181\r
4061          .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 182\r
4062          .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 183\r
4063          .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 184\r
4064          .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 185\r
4065          .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 186\r
4066          .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 187\r
4067          .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 188\r
4068          .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 189\r
4069          .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 190\r
4070          .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 191\r
4071          .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 192\r
4072          .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 193\r
4073          .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 194\r
4074          .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 195\r
4075          .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 196\r
4076          .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 197\r
4077          .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 198\r
4078          .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 199\r
4079          .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 200\r
4080          .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 201\r
4081          .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 202\r
4082          .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 203\r
4083          .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 204\r
4084          .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 205\r
4085          .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 206\r
4086          .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 207\r
4087          .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 208\r
4088          .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 209\r
4089          .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 210\r
4090          .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 211\r
4091          .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 212\r
4092          .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 213\r
4093          .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 214\r
4094          .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 215\r
4095          .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 216\r
4096          .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 217\r
4097          .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 218\r
4098          .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 219\r
4099          .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 220\r
4100          .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 221\r
4101          .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 222\r
4102          .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 223\r
4103          .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 224\r
4104          .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 225\r
4105          .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 226\r
4106          .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 227\r
4107          .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 228\r
4108          .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 229\r
4109          .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 230\r
4110          .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 231\r
4111          .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 232\r
4112          .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 233\r
4113          .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 234\r
4114          .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 235\r
4115          .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 236\r
4116          .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 237\r
4117          .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 238\r
4118          .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 239\r
4119          .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 240\r
4120          .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 241\r
4121          .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 242\r
4122          .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 243\r
4123          .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 244\r
4124          .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 245\r
4125          .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 246\r
4126          .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 247\r
4127          .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 248\r
4128          .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 249\r
4129          .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 250\r
4130          .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 251\r
4131          .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 252\r
4132          .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 253\r
4133          .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 254\r
4134          .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 255\r
4135 \r
4136 .align 4\r
4137 \r
4138 PZSTable_data: .byte (1<<ZFlag)|(1<<VFlag),0,0,(1<<VFlag),0,(1<<VFlag),(1<<VFlag),0\r
4139         .byte  0,(1<<VFlag),(1<<VFlag),0,(1<<VFlag),0,0,(1<<VFlag)\r
4140         .byte  0,(1<<VFlag),(1<<VFlag),0,(1<<VFlag),0,0,(1<<VFlag),(1<<VFlag),0,0,(1<<VFlag),0,(1<<VFlag),(1<<VFlag),0\r
4141         .byte  0,(1<<VFlag),(1<<VFlag),0,(1<<VFlag),0,0,(1<<VFlag),(1<<VFlag),0,0,(1<<VFlag),0,(1<<VFlag),(1<<VFlag),0\r
4142         .byte  (1<<VFlag),0,0,(1<<VFlag),0,(1<<VFlag),(1<<VFlag),0,0,(1<<VFlag),(1<<VFlag),0,(1<<VFlag),0,0,(1<<VFlag)\r
4143         .byte  0,(1<<VFlag),(1<<VFlag),0,(1<<VFlag),0,0,(1<<VFlag),(1<<VFlag),0,0,(1<<VFlag),0,(1<<VFlag),(1<<VFlag),0\r
4144         .byte  (1<<VFlag),0,0,(1<<VFlag),0,(1<<VFlag),(1<<VFlag),0,0,(1<<VFlag),(1<<VFlag),0,(1<<VFlag),0,0,(1<<VFlag)\r
4145         .byte  (1<<VFlag),0,0,(1<<VFlag),0,(1<<VFlag),(1<<VFlag),0,0,(1<<VFlag),(1<<VFlag),0,(1<<VFlag),0,0,(1<<VFlag)\r
4146         .byte  0,(1<<VFlag),(1<<VFlag),0,(1<<VFlag),0,0,(1<<VFlag),(1<<VFlag),0,0,(1<<VFlag),0,(1<<VFlag),(1<<VFlag),0\r
4147         .byte  (1<<SFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)\r
4148         .byte  (1<<SFlag)|(1<<VFlag),(1<<SFlag),(1<<SFlag),(1<<SFlag)|(1<<VFlag)\r
4149         .byte  (1<<SFlag)|(1<<VFlag),(1<<SFlag),(1<<SFlag),(1<<SFlag)|(1<<VFlag)\r
4150         .byte  (1<<SFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)\r
4151         .byte  (1<<SFlag)|(1<<VFlag),(1<<SFlag),(1<<SFlag),(1<<SFlag)|(1<<VFlag)\r
4152         .byte  (1<<SFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)\r
4153         .byte  (1<<SFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)\r
4154         .byte  (1<<SFlag)|(1<<VFlag),(1<<SFlag),(1<<SFlag),(1<<SFlag)|(1<<VFlag)\r
4155         .byte  (1<<SFlag)|(1<<VFlag),(1<<SFlag),(1<<SFlag),(1<<SFlag)|(1<<VFlag)\r
4156         .byte  (1<<SFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)\r
4157         .byte  (1<<SFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)\r
4158         .byte  (1<<SFlag)|(1<<VFlag),(1<<SFlag),(1<<SFlag),(1<<SFlag)|(1<<VFlag)\r
4159         .byte  (1<<SFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)\r
4160         .byte  (1<<SFlag)|(1<<VFlag),(1<<SFlag),(1<<SFlag),(1<<SFlag)|(1<<VFlag)\r
4161         .byte  (1<<SFlag)|(1<<VFlag),(1<<SFlag),(1<<SFlag),(1<<SFlag)|(1<<VFlag)\r
4162         .byte  (1<<SFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)\r
4163         .byte  (1<<SFlag)|(1<<VFlag),(1<<SFlag),(1<<SFlag),(1<<SFlag)|(1<<VFlag)\r
4164         .byte  (1<<SFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)\r
4165         .byte  (1<<SFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)\r
4166         .byte  (1<<SFlag)|(1<<VFlag),(1<<SFlag),(1<<SFlag),(1<<SFlag)|(1<<VFlag)\r
4167         .byte  (1<<SFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)\r
4168         .byte  (1<<SFlag)|(1<<VFlag),(1<<SFlag),(1<<SFlag),(1<<SFlag)|(1<<VFlag)\r
4169         .byte  (1<<SFlag)|(1<<VFlag),(1<<SFlag),(1<<SFlag),(1<<SFlag)|(1<<VFlag)\r
4170         .byte  (1<<SFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)\r
4171         .byte  (1<<SFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)\r
4172         .byte  (1<<SFlag)|(1<<VFlag),(1<<SFlag),(1<<SFlag),(1<<SFlag)|(1<<VFlag)\r
4173         .byte  (1<<SFlag)|(1<<VFlag),(1<<SFlag),(1<<SFlag),(1<<SFlag)|(1<<VFlag)\r
4174         .byte  (1<<SFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)\r
4175         .byte  (1<<SFlag)|(1<<VFlag),(1<<SFlag),(1<<SFlag),(1<<SFlag)|(1<<VFlag)\r
4176         .byte  (1<<SFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)\r
4177         .byte  (1<<SFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)\r
4178         .byte  (1<<SFlag)|(1<<VFlag),(1<<SFlag),(1<<SFlag),(1<<SFlag)|(1<<VFlag)       \r
4179 \r
4180 .align 4\r
4181 \r
4182 MAIN_opcodes:   \r
4183         .word opcode_0_0,opcode_0_1,opcode_0_2,opcode_0_3,opcode_0_4,opcode_0_5,opcode_0_6,opcode_0_7\r
4184         .word opcode_0_8,opcode_0_9,opcode_0_A,opcode_0_B,opcode_0_C,opcode_0_D,opcode_0_E,opcode_0_F\r
4185         .word opcode_1_0,opcode_1_1,opcode_1_2,opcode_1_3,opcode_1_4,opcode_1_5,opcode_1_6,opcode_1_7\r
4186         .word opcode_1_8,opcode_1_9,opcode_1_A,opcode_1_B,opcode_1_C,opcode_1_D,opcode_1_E,opcode_1_F\r
4187         .word opcode_2_0,opcode_2_1,opcode_2_2,opcode_2_3,opcode_2_4,opcode_2_5,opcode_2_6,opcode_2_7\r
4188         .word opcode_2_8,opcode_2_9,opcode_2_A,opcode_2_B,opcode_2_C,opcode_2_D,opcode_2_E,opcode_2_F\r
4189         .word opcode_3_0,opcode_3_1,opcode_3_2,opcode_3_3,opcode_3_4,opcode_3_5,opcode_3_6,opcode_3_7\r
4190         .word opcode_3_8,opcode_3_9,opcode_3_A,opcode_3_B,opcode_3_C,opcode_3_D,opcode_3_E,opcode_3_F\r
4191         .word opcode_4_0,opcode_4_1,opcode_4_2,opcode_4_3,opcode_4_4,opcode_4_5,opcode_4_6,opcode_4_7\r
4192         .word opcode_4_8,opcode_4_9,opcode_4_A,opcode_4_B,opcode_4_C,opcode_4_D,opcode_4_E,opcode_4_F\r
4193         .word opcode_5_0,opcode_5_1,opcode_5_2,opcode_5_3,opcode_5_4,opcode_5_5,opcode_5_6,opcode_5_7\r
4194         .word opcode_5_8,opcode_5_9,opcode_5_A,opcode_5_B,opcode_5_C,opcode_5_D,opcode_5_E,opcode_5_F\r
4195         .word opcode_6_0,opcode_6_1,opcode_6_2,opcode_6_3,opcode_6_4,opcode_6_5,opcode_6_6,opcode_6_7\r
4196         .word opcode_6_8,opcode_6_9,opcode_6_A,opcode_6_B,opcode_6_C,opcode_6_D,opcode_6_E,opcode_6_F\r
4197         .word opcode_7_0,opcode_7_1,opcode_7_2,opcode_7_3,opcode_7_4,opcode_7_5,opcode_7_6,opcode_7_7\r
4198         .word opcode_7_8,opcode_7_9,opcode_7_A,opcode_7_B,opcode_7_C,opcode_7_D,opcode_7_E,opcode_7_F\r
4199         .word opcode_8_0,opcode_8_1,opcode_8_2,opcode_8_3,opcode_8_4,opcode_8_5,opcode_8_6,opcode_8_7\r
4200         .word opcode_8_8,opcode_8_9,opcode_8_A,opcode_8_B,opcode_8_C,opcode_8_D,opcode_8_E,opcode_8_F\r
4201         .word opcode_9_0,opcode_9_1,opcode_9_2,opcode_9_3,opcode_9_4,opcode_9_5,opcode_9_6,opcode_9_7\r
4202         .word opcode_9_8,opcode_9_9,opcode_9_A,opcode_9_B,opcode_9_C,opcode_9_D,opcode_9_E,opcode_9_F\r
4203         .word opcode_A_0,opcode_A_1,opcode_A_2,opcode_A_3,opcode_A_4,opcode_A_5,opcode_A_6,opcode_A_7\r
4204         .word opcode_A_8,opcode_A_9,opcode_A_A,opcode_A_B,opcode_A_C,opcode_A_D,opcode_A_E,opcode_A_F\r
4205         .word opcode_B_0,opcode_B_1,opcode_B_2,opcode_B_3,opcode_B_4,opcode_B_5,opcode_B_6,opcode_B_7\r
4206         .word opcode_B_8,opcode_B_9,opcode_B_A,opcode_B_B,opcode_B_C,opcode_B_D,opcode_B_E,opcode_B_F\r
4207         .word opcode_C_0,opcode_C_1,opcode_C_2,opcode_C_3,opcode_C_4,opcode_C_5,opcode_C_6,opcode_C_7\r
4208         .word opcode_C_8,opcode_C_9,opcode_C_A,opcode_C_B,opcode_C_C,opcode_C_D,opcode_C_E,opcode_C_F\r
4209         .word opcode_D_0,opcode_D_1,opcode_D_2,opcode_D_3,opcode_D_4,opcode_D_5,opcode_D_6,opcode_D_7\r
4210         .word opcode_D_8,opcode_D_9,opcode_D_A,opcode_D_B,opcode_D_C,opcode_D_D,opcode_D_E,opcode_D_F\r
4211         .word opcode_E_0,opcode_E_1,opcode_E_2,opcode_E_3,opcode_E_4,opcode_E_5,opcode_E_6,opcode_E_7\r
4212         .word opcode_E_8,opcode_E_9,opcode_E_A,opcode_E_B,opcode_E_C,opcode_E_D,opcode_E_E,opcode_E_F\r
4213         .word opcode_F_0,opcode_F_1,opcode_F_2,opcode_F_3,opcode_F_4,opcode_F_5,opcode_F_6,opcode_F_7\r
4214         .word opcode_F_8,opcode_F_9,opcode_F_A,opcode_F_B,opcode_F_C,opcode_F_D,opcode_F_E,opcode_F_F\r
4215 \r
4216 .align 4\r
4217 \r
4218 EI_DUMMY_opcodes:\r
4219         .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@0\r
4220         .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@0\r
4221         .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@1\r
4222         .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@1\r
4223         .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@2\r
4224         .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@2\r
4225         .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@3\r
4226         .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@3\r
4227         .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@4\r
4228         .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@4\r
4229         .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@5\r
4230         .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@5\r
4231         .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@6\r
4232         .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@6\r
4233         .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@7\r
4234         .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@7\r
4235         .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@8\r
4236         .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@8\r
4237         .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@9\r
4238         .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@9\r
4239         .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@A\r
4240         .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@A\r
4241         .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@B\r
4242         .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@B\r
4243         .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@C\r
4244         .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@C\r
4245         .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@D\r
4246         .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@D\r
4247         .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@E\r
4248         .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@E\r
4249         .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@F\r
4250         .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@F\r
4251 \r
4252 .text\r
4253 .align 4\r
4254 \r
4255 ;@NOP\r
4256 opcode_0_0:\r
4257 ;@LD B,B\r
4258 opcode_4_0:\r
4259 ;@LD C,C\r
4260 opcode_4_9:\r
4261 ;@LD D,D\r
4262 opcode_5_2:\r
4263 ;@LD E,E\r
4264 opcode_5_B:\r
4265 ;@LD H,H\r
4266 opcode_6_4:\r
4267 ;@LD L,L\r
4268 opcode_6_D:\r
4269 ;@LD A,A\r
4270 opcode_7_F:\r
4271         fetch 4\r
4272 ;@LD BC,NN\r
4273 opcode_0_1:\r
4274         ldrb r0,[z80pc],#1\r
4275         ldrb r1,[z80pc],#1\r
4276         orr r0,r0,r1, lsl #8\r
4277         mov z80bc,r0, lsl #16\r
4278         fetch 10\r
4279 ;@LD (BC),A\r
4280 opcode_0_2:\r
4281         mov r0,z80a, lsr #24\r
4282         mov r1,z80bc, lsr #16\r
4283         writemem8\r
4284         fetch 7\r
4285 ;@INC BC\r
4286 opcode_0_3:\r
4287         add z80bc,z80bc,#1<<16\r
4288         fetch 6\r
4289 ;@INC B\r
4290 opcode_0_4:\r
4291         opINC8H z80bc\r
4292         fetch 4\r
4293 ;@DEC B\r
4294 opcode_0_5:\r
4295         opDEC8H z80bc\r
4296         fetch 4\r
4297 ;@LD B,N\r
4298 opcode_0_6:\r
4299         ldrb r1,[z80pc],#1\r
4300         and z80bc,z80bc,#0xFF<<16\r
4301         orr z80bc,z80bc,r1, lsl #24\r
4302         fetch 7\r
4303 ;@RLCA\r
4304 opcode_0_7:\r
4305         bic z80f,z80f,#(1<<NFlag)|(1<<HFlag)|(1<<CFlag)\r
4306         movs z80a,z80a, lsl #1\r
4307         orrcs z80a,z80a,#1<<24\r
4308         orrcs z80f,z80f,#1<<CFlag\r
4309         fetch 4\r
4310 ;@EX AF,AF'\r
4311 opcode_0_8:\r
4312         add r1,cpucontext,#z80a2\r
4313         swp z80a,z80a,[r1]\r
4314         add r1,cpucontext,#z80f2\r
4315         swp z80f,z80f,[r1]\r
4316         fetch 4\r
4317 ;@ADD HL,BC\r
4318 opcode_0_9:\r
4319         opADD16 z80hl z80bc\r
4320         fetch 11\r
4321 ;@LD A,(BC)\r
4322 opcode_0_A:\r
4323         mov r0,z80bc, lsr #16\r
4324         readmem8\r
4325         mov z80a,r0, lsl #24\r
4326         fetch 7\r
4327 ;@DEC BC\r
4328 opcode_0_B:\r
4329         sub z80bc,z80bc,#1<<16\r
4330         fetch 6\r
4331 ;@INC C\r
4332 opcode_0_C:\r
4333         opINC8L z80bc\r
4334         fetch 4\r
4335 ;@DEC C\r
4336 opcode_0_D:\r
4337         opDEC8L z80bc\r
4338         fetch 4\r
4339 ;@LD C,N\r
4340 opcode_0_E:\r
4341         ldrb r1,[z80pc],#1\r
4342         and z80bc,z80bc,#0xFF<<24\r
4343         orr z80bc,z80bc,r1, lsl #16\r
4344         fetch 7\r
4345 ;@RRCA\r
4346 opcode_0_F:\r
4347         bic z80f,z80f,#(1<<NFlag)|(1<<HFlag)|(1<<CFlag)\r
4348         movs z80a,z80a, lsr #25\r
4349         orrcs z80a,z80a,#1<<7\r
4350         orrcs z80f,z80f,#1<<CFlag\r
4351         mov z80a,z80a, lsl #24\r
4352         fetch 4\r
4353 ;@DJNZ $+2\r
4354 opcode_1_0:\r
4355         sub z80bc,z80bc,#1<<24\r
4356         tst z80bc,#0xFF<<24\r
4357         ldrsb r1,[z80pc],#1\r
4358         addne z80pc,z80pc,r1\r
4359         subne z80_icount,z80_icount,#5\r
4360         fetch 8\r
4361 \r
4362 ;@LD DE,NN\r
4363 opcode_1_1:\r
4364         ldrb r0,[z80pc],#1\r
4365         ldrb r1,[z80pc],#1\r
4366         orr r0,r0,r1, lsl #8\r
4367         mov z80de,r0, lsl #16\r
4368         fetch 10\r
4369 ;@LD (DE),A\r
4370 opcode_1_2:\r
4371         mov r0,z80a, lsr #24\r
4372         writemem8DE\r
4373         fetch 7\r
4374 ;@INC DE\r
4375 opcode_1_3:\r
4376         add z80de,z80de,#1<<16\r
4377         fetch 6\r
4378 ;@INC D\r
4379 opcode_1_4:\r
4380         opINC8H z80de\r
4381         fetch 4\r
4382 ;@DEC D\r
4383 opcode_1_5:\r
4384         opDEC8H z80de\r
4385         fetch 4\r
4386 ;@LD D,N\r
4387 opcode_1_6:\r
4388         ldrb r1,[z80pc],#1\r
4389         and z80de,z80de,#0xFF<<16\r
4390         orr z80de,z80de,r1, lsl #24\r
4391         fetch 7\r
4392 ;@RLA\r
4393 opcode_1_7:\r
4394         tst z80f,#1<<CFlag\r
4395         orrne z80a,z80a,#1<<23\r
4396         bic z80f,z80f,#(1<<NFlag)|(1<<HFlag)|(1<<CFlag)\r
4397         movs z80a,z80a, lsl #1\r
4398         orrcs z80f,z80f,#1<<CFlag\r
4399         fetch 4\r
4400 ;@JR $+2\r
4401 opcode_1_8:\r
4402         ldrsb r1,[z80pc],#1\r
4403         add z80pc,z80pc,r1\r
4404         fetch 12\r
4405 ;@ADD HL,DE\r
4406 opcode_1_9:\r
4407         opADD16 z80hl z80de\r
4408         fetch 11\r
4409 ;@LD A,(DE)\r
4410 opcode_1_A:\r
4411         mov r0,z80de, lsr #16\r
4412         readmem8\r
4413         mov z80a,r0, lsl #24\r
4414         fetch 7\r
4415 ;@DEC DE\r
4416 opcode_1_B:\r
4417         sub z80de,z80de,#1<<16\r
4418         fetch 6\r
4419 ;@INC E\r
4420 opcode_1_C:\r
4421         opINC8L z80de\r
4422         fetch 4\r
4423 ;@DEC E\r
4424 opcode_1_D:\r
4425         opDEC8L z80de\r
4426         fetch 4\r
4427 ;@LD E,N\r
4428 opcode_1_E:\r
4429         ldrb r0,[z80pc],#1\r
4430         and z80de,z80de,#0xFF<<24\r
4431         orr z80de,z80de,r0, lsl #16\r
4432         fetch 7\r
4433 ;@RRA\r
4434 opcode_1_F:\r
4435         orr z80a,z80a,z80f,lsr#1                ;@get C\r
4436         bic z80f,z80f,#(1<<NFlag)|(1<<HFlag)|(1<<CFlag)\r
4437         movs z80a,z80a,ror#25\r
4438         orrcs z80f,z80f,#1<<CFlag\r
4439         mov z80a,z80a,lsl#24\r
4440         fetch 4\r
4441 ;@JR NZ,$+2\r
4442 opcode_2_0:\r
4443         tst z80f,#1<<ZFlag\r
4444         beq opcode_1_8\r
4445         add z80pc,z80pc,#1\r
4446         fetch 7\r
4447 ;@LD HL,NN\r
4448 opcode_2_1:\r
4449         ldrb r0,[z80pc],#1\r
4450         ldrb r1,[z80pc],#1\r
4451         orr r0,r0,r1, lsl #8\r
4452         mov z80hl,r0, lsl #16\r
4453         fetch 10\r
4454 ;@LD (NN),HL\r
4455 opcode_ED_63:\r
4456         eatcycles 4\r
4457 ;@LD (NN),HL\r
4458 opcode_2_2:\r
4459         ldrb r0,[z80pc],#1\r
4460         ldrb r1,[z80pc],#1\r
4461         orr r1,r0,r1, lsl #8\r
4462         mov r0,z80hl, lsr #16\r
4463         writemem16\r
4464         fetch 16\r
4465 ;@INC HL\r
4466 opcode_2_3:\r
4467         add z80hl,z80hl,#1<<16\r
4468         fetch 6\r
4469 ;@INC H\r
4470 opcode_2_4:\r
4471         opINC8H z80hl\r
4472         fetch 4\r
4473 ;@DEC H\r
4474 opcode_2_5:\r
4475         opDEC8H z80hl\r
4476         fetch 4\r
4477 ;@LD H,N\r
4478 opcode_2_6:\r
4479         ldrb r1,[z80pc],#1\r
4480         and z80hl,z80hl,#0xFF<<16\r
4481         orr z80hl,z80hl,r1, lsl #24\r
4482         fetch 7\r
4483 DAATABLE_LOCAL: .word DAATable\r
4484 ;@DAA\r
4485 opcode_2_7:\r
4486         mov r1,z80a, lsr #24\r
4487         tst z80f,#1<<CFlag\r
4488         orrne r1,r1,#256\r
4489         tst z80f,#1<<HFlag\r
4490         orrne r1,r1,#512\r
4491         tst z80f,#1<<NFlag\r
4492         orrne r1,r1,#1024\r
4493         ldr r2,DAATABLE_LOCAL\r
4494         add r2,r2,r1, lsl #1\r
4495         ldrh r1,[r2]\r
4496         and z80f,r1,#0xFF\r
4497         and r2,r1,#0xFF<<8\r
4498         mov z80a,r2, lsl #16\r
4499         fetch 4\r
4500 ;@JR Z,$+2\r
4501 opcode_2_8:\r
4502         tst z80f,#1<<ZFlag\r
4503         bne opcode_1_8\r
4504         add z80pc,z80pc,#1\r
4505         fetch 7\r
4506 ;@ADD HL,HL\r
4507 opcode_2_9:\r
4508         opADD16_2 z80hl\r
4509         fetch 11\r
4510 ;@LD HL,(NN)\r
4511 opcode_ED_6B:\r
4512         eatcycles 4\r
4513 ;@LD HL,(NN)\r
4514 opcode_2_A:\r
4515         ldrb r0,[z80pc],#1\r
4516         ldrb r1,[z80pc],#1\r
4517         orr r0,r0,r1, lsl #8\r
4518         readmem16\r
4519         mov z80hl,r0, lsl #16\r
4520         fetch 16\r
4521 ;@DEC HL\r
4522 opcode_2_B:\r
4523         sub z80hl,z80hl,#1<<16\r
4524         fetch 6\r
4525 ;@INC L\r
4526 opcode_2_C:\r
4527         opINC8L z80hl\r
4528         fetch 4\r
4529 ;@DEC L\r
4530 opcode_2_D:\r
4531         opDEC8L z80hl\r
4532         fetch 4\r
4533 ;@LD L,N\r
4534 opcode_2_E:\r
4535         ldrb r0,[z80pc],#1\r
4536         and z80hl,z80hl,#0xFF<<24\r
4537         orr z80hl,z80hl,r0, lsl #16\r
4538         fetch 7\r
4539 ;@CPL\r
4540 opcode_2_F:\r
4541         eor z80a,z80a,#0xFF<<24\r
4542         orr z80f,z80f,#(1<<NFlag)|(1<<HFlag)\r
4543         fetch 4\r
4544 ;@JR NC,$+2\r
4545 opcode_3_0:\r
4546         tst z80f,#1<<CFlag\r
4547         beq opcode_1_8\r
4548         add z80pc,z80pc,#1\r
4549         fetch 7\r
4550 ;@LD SP,NN\r
4551 opcode_3_1:\r
4552         ldrb r0,[z80pc],#1\r
4553         ldrb r1,[z80pc],#1\r
4554 \r
4555 .if FAST_Z80SP\r
4556         orr r0,r0,r1, lsl #8\r
4557         rebasesp\r
4558         mov z80sp,r0\r
4559 .else\r
4560         orr z80sp,r0,r1, lsl #8\r
4561 .endif\r
4562         fetch 10\r
4563 ;@LD (NN),A\r
4564 opcode_3_2:\r
4565         ldrb r0,[z80pc],#1\r
4566         ldrb r1,[z80pc],#1\r
4567         orr r1,r0,r1, lsl #8\r
4568         mov r0,z80a, lsr #24\r
4569         writemem8\r
4570         fetch 13\r
4571 ;@INC SP\r
4572 opcode_3_3:\r
4573         add z80sp,z80sp,#1\r
4574         fetch 6\r
4575 ;@INC (HL)\r
4576 opcode_3_4:\r
4577         readmem8HL\r
4578         opINC8b\r
4579         writemem8HL\r
4580         fetch 11\r
4581 ;@DEC (HL)\r
4582 opcode_3_5:\r
4583         readmem8HL\r
4584         opDEC8b\r
4585         writemem8HL\r
4586         fetch 11\r
4587 ;@LD (HL),N\r
4588 opcode_3_6:\r
4589         ldrb r0,[z80pc],#1\r
4590         writemem8HL\r
4591         fetch 10\r
4592 ;@SCF\r
4593 opcode_3_7:\r
4594         bic z80f,z80f,#(1<<NFlag)|(1<<HFlag)\r
4595         orr z80f,z80f,#1<<CFlag\r
4596         fetch 4\r
4597 ;@JR C,$+2\r
4598 opcode_3_8:\r
4599         tst z80f,#1<<CFlag\r
4600         bne opcode_1_8\r
4601         add z80pc,z80pc,#1\r
4602         fetch 8\r
4603 ;@ADD HL,SP\r
4604 opcode_3_9:\r
4605 .if FAST_Z80SP\r
4606         ldr r0,[cpucontext,#z80sp_base]\r
4607         sub r0,z80sp,r0\r
4608         opADD16s z80hl r0 16\r
4609 .else\r
4610         opADD16s z80hl z80sp 16\r
4611 .endif\r
4612         fetch 11\r
4613 ;@LD A,(NN)\r
4614 opcode_3_A:\r
4615         ldrb r0,[z80pc],#1\r
4616         ldrb r1,[z80pc],#1\r
4617         orr r0,r0,r1, lsl #8\r
4618         readmem8\r
4619         mov z80a,r0, lsl #24\r
4620         fetch 11\r
4621 ;@DEC SP\r
4622 opcode_3_B:\r
4623         sub z80sp,z80sp,#1\r
4624         fetch 6\r
4625 ;@INC A\r
4626 opcode_3_C:\r
4627         opINC8 z80a\r
4628         fetch 4\r
4629 ;@DEC A\r
4630 opcode_3_D:\r
4631         opDEC8 z80a\r
4632         fetch 4\r
4633 ;@LD A,N\r
4634 opcode_3_E:\r
4635         ldrb r0,[z80pc],#1\r
4636         mov z80a,r0, lsl #24\r
4637         fetch 7\r
4638 ;@CCF\r
4639 opcode_3_F:\r
4640         bic z80f,z80f,#(1<<NFlag)|(1<<HFlag)\r
4641         tst z80f,#1<<CFlag\r
4642         orrne z80f,z80f,#1<<HFlag\r
4643         eor z80f,z80f,#1<<CFlag\r
4644         fetch 4\r
4645 \r
4646 ;@LD B,C\r
4647 opcode_4_1:\r
4648         and z80bc,z80bc,#0xFF<<16\r
4649         orr z80bc,z80bc,z80bc, lsl #8\r
4650         fetch 4\r
4651 ;@LD B,D\r
4652 opcode_4_2:\r
4653         and z80bc,z80bc,#0xFF<<16\r
4654         and r1,z80de,#0xFF<<24\r
4655         orr z80bc,z80bc,r1\r
4656         fetch 4\r
4657 ;@LD B,E\r
4658 opcode_4_3:\r
4659         and z80bc,z80bc,#0xFF<<16\r
4660         and r1,z80de,#0xFF<<16\r
4661         orr z80bc,z80bc,r1, lsl #8\r
4662         fetch 4\r
4663 ;@LD B,H\r
4664 opcode_4_4:\r
4665         and z80bc,z80bc,#0xFF<<16\r
4666         and r1,z80hl,#0xFF<<24\r
4667         orr z80bc,z80bc,r1\r
4668         fetch 4\r
4669 ;@LD B,L\r
4670 opcode_4_5:\r
4671         and z80bc,z80bc,#0xFF<<16\r
4672         and r1,z80hl,#0xFF<<16\r
4673         orr z80bc,z80bc,r1, lsl #8\r
4674         fetch 4\r
4675 ;@LD B,(HL)\r
4676 opcode_4_6:\r
4677         readmem8HL\r
4678         and z80bc,z80bc,#0xFF<<16\r
4679         orr z80bc,z80bc,r0, lsl #24\r
4680         fetch 7\r
4681 ;@LD B,A\r
4682 opcode_4_7:\r
4683         and z80bc,z80bc,#0xFF<<16\r
4684         orr z80bc,z80bc,z80a\r
4685         fetch 4\r
4686 ;@LD C,B\r
4687 opcode_4_8:\r
4688         and z80bc,z80bc,#0xFF<<24\r
4689         orr z80bc,z80bc,z80bc, lsr #8\r
4690         fetch 4\r
4691 ;@LD C,D\r
4692 opcode_4_A:\r
4693         and z80bc,z80bc,#0xFF<<24\r
4694         and r1,z80de,#0xFF<<24\r
4695         orr z80bc,z80bc,r1, lsr #8\r
4696         fetch 4\r
4697 ;@LD C,E\r
4698 opcode_4_B:\r
4699         and z80bc,z80bc,#0xFF<<24\r
4700         and r1,z80de,#0xFF<<16\r
4701         orr z80bc,z80bc,r1 \r
4702         fetch 4\r
4703 ;@LD C,H\r
4704 opcode_4_C:\r
4705         and z80bc,z80bc,#0xFF<<24\r
4706         and r1,z80hl,#0xFF<<24\r
4707         orr z80bc,z80bc,r1, lsr #8\r
4708         fetch 4\r
4709 ;@LD C,L\r
4710 opcode_4_D:\r
4711         and z80bc,z80bc,#0xFF<<24\r
4712         and r1,z80hl,#0xFF<<16\r
4713         orr z80bc,z80bc,r1 \r
4714         fetch 4\r
4715 ;@LD C,(HL)\r
4716 opcode_4_E:\r
4717         readmem8HL\r
4718         and z80bc,z80bc,#0xFF<<24\r
4719         orr z80bc,z80bc,r0, lsl #16\r
4720         fetch 7\r
4721 ;@LD C,A\r
4722 opcode_4_F:\r
4723         and z80bc,z80bc,#0xFF<<24\r
4724         orr z80bc,z80bc,z80a, lsr #8\r
4725         fetch 4\r
4726 ;@LD D,B\r
4727 opcode_5_0:\r
4728         and z80de,z80de,#0xFF<<16\r
4729         and r1,z80bc,#0xFF<<24\r
4730         orr z80de,z80de,r1\r
4731         fetch 4\r
4732 ;@LD D,C\r
4733 opcode_5_1:\r
4734         and z80de,z80de,#0xFF<<16\r
4735         orr z80de,z80de,z80bc, lsl #8\r
4736         fetch 4\r
4737 ;@LD D,E\r
4738 opcode_5_3:\r
4739         and z80de,z80de,#0xFF<<16\r
4740         orr z80de,z80de,z80de, lsl #8\r
4741         fetch 4\r
4742 ;@LD D,H\r
4743 opcode_5_4:\r
4744         and z80de,z80de,#0xFF<<16\r
4745         and r1,z80hl,#0xFF<<24\r
4746         orr z80de,z80de,r1\r
4747         fetch 4\r
4748 ;@LD D,L\r
4749 opcode_5_5:\r
4750         and z80de,z80de,#0xFF<<16\r
4751         orr z80de,z80de,z80hl, lsl #8\r
4752         fetch 4\r
4753 ;@LD D,(HL)\r
4754 opcode_5_6:\r
4755         readmem8HL\r
4756         and z80de,z80de,#0xFF<<16\r
4757         orr z80de,z80de,r0, lsl #24\r
4758         fetch 7\r
4759 ;@LD D,A\r
4760 opcode_5_7:\r
4761         and z80de,z80de,#0xFF<<16\r
4762         orr z80de,z80de,z80a\r
4763         fetch 4\r
4764 ;@LD E,B\r
4765 opcode_5_8:\r
4766         and z80de,z80de,#0xFF<<24\r
4767         and r1,z80bc,#0xFF<<24\r
4768         orr z80de,z80de,r1, lsr #8\r
4769         fetch 4\r
4770 ;@LD E,C\r
4771 opcode_5_9:\r
4772         and z80de,z80de,#0xFF<<24\r
4773         and r1,z80bc,#0xFF<<16\r
4774         orr z80de,z80de,r1 \r
4775         fetch 4\r
4776 ;@LD E,D\r
4777 opcode_5_A:\r
4778         and z80de,z80de,#0xFF<<24\r
4779         orr z80de,z80de,z80de, lsr #8\r
4780         fetch 4\r
4781 ;@LD E,H\r
4782 opcode_5_C:\r
4783         and z80de,z80de,#0xFF<<24\r
4784         and r1,z80hl,#0xFF<<24\r
4785         orr z80de,z80de,r1, lsr #8\r
4786         fetch 4\r
4787 ;@LD E,L\r
4788 opcode_5_D:\r
4789         and z80de,z80de,#0xFF<<24\r
4790         and r1,z80hl,#0xFF<<16\r
4791         orr z80de,z80de,r1 \r
4792         fetch 4\r
4793 ;@LD E,(HL)\r
4794 opcode_5_E:\r
4795         readmem8HL\r
4796         and z80de,z80de,#0xFF<<24\r
4797         orr z80de,z80de,r0, lsl #16\r
4798         fetch 7\r
4799 ;@LD E,A\r
4800 opcode_5_F:\r
4801         and z80de,z80de,#0xFF<<24\r
4802         orr z80de,z80de,z80a, lsr #8\r
4803         fetch 4\r
4804 \r
4805 ;@LD H,B\r
4806 opcode_6_0:\r
4807         and z80hl,z80hl,#0xFF<<16\r
4808         and r1,z80bc,#0xFF<<24\r
4809         orr z80hl,z80hl,r1\r
4810         fetch 4\r
4811 ;@LD H,C\r
4812 opcode_6_1:\r
4813         and z80hl,z80hl,#0xFF<<16\r
4814         orr z80hl,z80hl,z80bc, lsl #8\r
4815         fetch 4\r
4816 ;@LD H,D\r
4817 opcode_6_2:\r
4818         and z80hl,z80hl,#0xFF<<16\r
4819         and r1,z80de,#0xFF<<24\r
4820         orr z80hl,z80hl,r1\r
4821         fetch 4\r
4822 ;@LD H,E\r
4823 opcode_6_3:\r
4824         and z80hl,z80hl,#0xFF<<16\r
4825         orr z80hl,z80hl,z80de, lsl #8\r
4826         fetch 4\r
4827 ;@LD H,L\r
4828 opcode_6_5:\r
4829         and z80hl,z80hl,#0xFF<<16\r
4830         orr z80hl,z80hl,z80hl, lsl #8\r
4831         fetch 4\r
4832 ;@LD H,(HL)\r
4833 opcode_6_6:\r
4834         readmem8HL\r
4835         and z80hl,z80hl,#0xFF<<16\r
4836         orr z80hl,z80hl,r0, lsl #24\r
4837         fetch 7\r
4838 ;@LD H,A\r
4839 opcode_6_7:\r
4840         and z80hl,z80hl,#0xFF<<16\r
4841         orr z80hl,z80hl,z80a\r
4842         fetch 4\r
4843 \r
4844 ;@LD L,B\r
4845 opcode_6_8:\r
4846         and z80hl,z80hl,#0xFF<<24\r
4847         and r1,z80bc,#0xFF<<24\r
4848         orr z80hl,z80hl,r1, lsr #8\r
4849         fetch 4\r
4850 ;@LD L,C\r
4851 opcode_6_9:\r
4852         and z80hl,z80hl,#0xFF<<24\r
4853         and r1,z80bc,#0xFF<<16\r
4854         orr z80hl,z80hl,r1\r
4855         fetch 4\r
4856 ;@LD L,D\r
4857 opcode_6_A:\r
4858         and z80hl,z80hl,#0xFF<<24\r
4859         and r1,z80de,#0xFF<<24\r
4860         orr z80hl,z80hl,r1, lsr #8\r
4861         fetch 4\r
4862 ;@LD L,E\r
4863 opcode_6_B:\r
4864         and z80hl,z80hl,#0xFF<<24\r
4865         and r1,z80de,#0xFF<<16\r
4866         orr z80hl,z80hl,r1\r
4867         fetch 4\r
4868 ;@LD L,H\r
4869 opcode_6_C:\r
4870         and z80hl,z80hl,#0xFF<<24\r
4871         orr z80hl,z80hl,z80hl, lsr #8\r
4872         fetch 4\r
4873 ;@LD L,(HL)\r
4874 opcode_6_E:\r
4875         readmem8HL\r
4876         and z80hl,z80hl,#0xFF<<24\r
4877         orr z80hl,z80hl,r0, lsl #16\r
4878         fetch 7\r
4879 ;@LD L,A\r
4880 opcode_6_F:\r
4881         and z80hl,z80hl,#0xFF<<24\r
4882         orr z80hl,z80hl,z80a, lsr #8\r
4883         fetch 4\r
4884 \r
4885 ;@LD (HL),B\r
4886 opcode_7_0:\r
4887         mov r0,z80bc, lsr #24\r
4888         writemem8HL\r
4889         fetch 7\r
4890 ;@LD (HL),C\r
4891 opcode_7_1:\r
4892         mov r0,z80bc, lsr #16\r
4893         and r0,r0,#0xFF\r
4894         writemem8HL\r
4895         fetch 7\r
4896 ;@LD (HL),D\r
4897 opcode_7_2:\r
4898         mov r0,z80de, lsr #24\r
4899         writemem8HL\r
4900         fetch 7\r
4901 ;@LD (HL),E\r
4902 opcode_7_3:\r
4903         mov r0,z80de, lsr #16\r
4904         and r0,r0,#0xFF\r
4905         writemem8HL\r
4906         fetch 7\r
4907 ;@LD (HL),H\r
4908 opcode_7_4:\r
4909         mov r0,z80hl, lsr #24\r
4910         writemem8HL\r
4911         fetch 7\r
4912 ;@LD (HL),L\r
4913 opcode_7_5:\r
4914         mov r1,z80hl, lsr #16\r
4915         and r0,r1,#0xFF\r
4916         writemem8\r
4917         fetch 7\r
4918 ;@HALT\r
4919 opcode_7_6:\r
4920         sub z80pc,z80pc,#1\r
4921         ldrb r0,[cpucontext,#z80if]\r
4922         orr r0,r0,#Z80_HALT\r
4923         strb r0,[cpucontext,#z80if]\r
4924         b z80_execute_end\r
4925 ;@LD (HL),A\r
4926 opcode_7_7:\r
4927         mov r0,z80a, lsr #24\r
4928         writemem8HL\r
4929         fetch 7\r
4930 \r
4931 ;@LD A,B\r
4932 opcode_7_8:\r
4933         and z80a,z80bc,#0xFF<<24\r
4934         fetch 4\r
4935 ;@LD A,C\r
4936 opcode_7_9:\r
4937         mov z80a,z80bc, lsl #8\r
4938         fetch 4\r
4939 ;@LD A,D\r
4940 opcode_7_A:\r
4941         and z80a,z80de,#0xFF<<24\r
4942         fetch 4\r
4943 ;@LD A,E\r
4944 opcode_7_B:\r
4945         mov z80a,z80de, lsl #8\r
4946         fetch 4\r
4947 ;@LD A,H\r
4948 opcode_7_C:\r
4949         and z80a,z80hl,#0xFF<<24\r
4950         fetch 4\r
4951 ;@LD A,L\r
4952 opcode_7_D:\r
4953         mov z80a,z80hl, lsl #8\r
4954         fetch 4\r
4955 ;@LD A,(HL)\r
4956 opcode_7_E:\r
4957         readmem8HL\r
4958         mov z80a,r0, lsl #24\r
4959         fetch 7\r
4960 \r
4961 ;@ADD A,B\r
4962 opcode_8_0:\r
4963         opADDH z80bc\r
4964 ;@ADD A,C\r
4965 opcode_8_1:\r
4966         opADDL z80bc\r
4967 ;@ADD A,D\r
4968 opcode_8_2:\r
4969         opADDH z80de\r
4970 ;@ADD A,E\r
4971 opcode_8_3:\r
4972         opADDL z80de\r
4973 ;@ADD A,H\r
4974 opcode_8_4:\r
4975         opADDH z80hl\r
4976 ;@ADD A,L\r
4977 opcode_8_5:\r
4978         opADDL z80hl\r
4979 ;@ADD A,(HL)\r
4980 opcode_8_6:\r
4981         readmem8HL\r
4982         opADDb\r
4983         fetch 7\r
4984 ;@ADD A,A\r
4985 opcode_8_7:\r
4986         opADDA\r
4987 \r
4988 ;@ADC A,B\r
4989 opcode_8_8:\r
4990         opADCH z80bc\r
4991 ;@ADC A,C\r
4992 opcode_8_9:\r
4993         opADCL z80bc\r
4994 ;@ADC A,D\r
4995 opcode_8_A:\r
4996         opADCH z80de\r
4997 ;@ADC A,E\r
4998 opcode_8_B:\r
4999         opADCL z80de\r
5000 ;@ADC A,H\r
5001 opcode_8_C:\r
5002         opADCH z80hl\r
5003 ;@ADC A,L\r
5004 opcode_8_D:\r
5005         opADCL z80hl\r
5006 ;@ADC A,(HL)\r
5007 opcode_8_E:\r
5008         readmem8HL\r
5009         opADCb\r
5010         fetch 7\r
5011 ;@ADC A,A\r
5012 opcode_8_F:\r
5013         opADCA\r
5014 \r
5015 ;@SUB B\r
5016 opcode_9_0:\r
5017         opSUBH z80bc\r
5018 ;@SUB C\r
5019 opcode_9_1:\r
5020         opSUBL z80bc\r
5021 ;@SUB D\r
5022 opcode_9_2:\r
5023         opSUBH z80de\r
5024 ;@SUB E\r
5025 opcode_9_3:\r
5026         opSUBL z80de\r
5027 ;@SUB H\r
5028 opcode_9_4:\r
5029         opSUBH z80hl\r
5030 ;@SUB L\r
5031 opcode_9_5:\r
5032         opSUBL z80hl\r
5033 ;@SUB (HL)\r
5034 opcode_9_6:\r
5035         readmem8HL\r
5036         opSUBb\r
5037         fetch 7\r
5038 ;@SUB A\r
5039 opcode_9_7:\r
5040         opSUBA\r
5041 \r
5042 ;@SBC B \r
5043 opcode_9_8:\r
5044         opSBCH z80bc\r
5045 ;@SBC C\r
5046 opcode_9_9:\r
5047         opSBCL z80bc\r
5048 ;@SBC D\r
5049 opcode_9_A:\r
5050         opSBCH z80de\r
5051 ;@SBC E\r
5052 opcode_9_B:\r
5053         opSBCL z80de\r
5054 ;@SBC H\r
5055 opcode_9_C:\r
5056         opSBCH z80hl\r
5057 ;@SBC L\r
5058 opcode_9_D:\r
5059         opSBCL z80hl\r
5060 ;@SBC (HL)\r
5061 opcode_9_E:\r
5062         readmem8HL\r
5063         opSBCb\r
5064         fetch 7\r
5065 ;@SBC A\r
5066 opcode_9_F:\r
5067         opSBCA\r
5068 \r
5069 ;@AND B\r
5070 opcode_A_0:\r
5071         opANDH z80bc\r
5072 ;@AND C\r
5073 opcode_A_1:\r
5074         opANDL z80bc\r
5075 ;@AND D\r
5076 opcode_A_2:\r
5077         opANDH z80de\r
5078 ;@AND E\r
5079 opcode_A_3:\r
5080         opANDL z80de\r
5081 ;@AND H\r
5082 opcode_A_4:\r
5083         opANDH z80hl\r
5084 ;@AND L\r
5085 opcode_A_5:\r
5086         opANDL z80hl\r
5087 ;@AND (HL)\r
5088 opcode_A_6:\r
5089         readmem8HL\r
5090         opANDb\r
5091         fetch 7\r
5092 ;@AND A\r
5093 opcode_A_7:\r
5094         opANDA\r
5095 \r
5096 ;@XOR B\r
5097 opcode_A_8:\r
5098         opXORH z80bc\r
5099 ;@XOR C\r
5100 opcode_A_9:\r
5101         opXORL z80bc\r
5102 ;@XOR D\r
5103 opcode_A_A:\r
5104         opXORH z80de\r
5105 ;@XOR E\r
5106 opcode_A_B:\r
5107         opXORL z80de\r
5108 ;@XOR H\r
5109 opcode_A_C:\r
5110         opXORH z80hl\r
5111 ;@XOR L\r
5112 opcode_A_D:\r
5113         opXORL z80hl\r
5114 ;@XOR (HL)\r
5115 opcode_A_E:\r
5116         readmem8HL\r
5117         opXORb\r
5118         fetch 7\r
5119 ;@XOR A\r
5120 opcode_A_F:\r
5121         opXORA\r
5122 \r
5123 ;@OR B\r
5124 opcode_B_0:\r
5125         opORH z80bc\r
5126 ;@OR C\r
5127 opcode_B_1:\r
5128         opORL z80bc\r
5129 ;@OR D\r
5130 opcode_B_2:\r
5131         opORH z80de\r
5132 ;@OR E\r
5133 opcode_B_3:\r
5134         opORL z80de\r
5135 ;@OR H\r
5136 opcode_B_4:\r
5137         opORH z80hl\r
5138 ;@OR L\r
5139 opcode_B_5:\r
5140         opORL z80hl\r
5141 ;@OR (HL)\r
5142 opcode_B_6:\r
5143         readmem8HL\r
5144         opORb\r
5145         fetch 7\r
5146 ;@OR A\r
5147 opcode_B_7:\r
5148         opORA\r
5149 \r
5150 ;@CP B\r
5151 opcode_B_8:\r
5152         opCPH z80bc\r
5153 ;@CP C\r
5154 opcode_B_9:\r
5155         opCPL z80bc\r
5156 ;@CP D\r
5157 opcode_B_A:\r
5158         opCPH z80de\r
5159 ;@CP E\r
5160 opcode_B_B:\r
5161         opCPL z80de\r
5162 ;@CP H\r
5163 opcode_B_C:\r
5164         opCPH z80hl\r
5165 ;@CP L\r
5166 opcode_B_D:\r
5167         opCPL z80hl\r
5168 ;@CP (HL)\r
5169 opcode_B_E:\r
5170         readmem8HL\r
5171         opCPb\r
5172         fetch 7\r
5173 ;@CP A\r
5174 opcode_B_F:\r
5175         opCPA\r
5176 \r
5177 ;@RET NZ\r
5178 opcode_C_0:\r
5179         tst z80f,#1<<ZFlag\r
5180         beq opcode_C_9          ;@unconditional RET\r
5181         fetch 5\r
5182 \r
5183 ;@POP BC\r
5184 opcode_C_1:\r
5185         opPOPreg z80bc\r
5186 \r
5187 ;@JP NZ,$+3\r
5188 opcode_C_2:\r
5189         tst z80f,#1<<ZFlag\r
5190         beq opcode_C_3          ;@unconditional JP\r
5191         add z80pc,z80pc,#2\r
5192         fetch 10\r
5193 ;@JP $+3\r
5194 opcode_C_3:\r
5195         ldrb r0,[z80pc],#1\r
5196         ldrb r1,[z80pc],#1\r
5197         orr r0,r0,r1, lsl #8\r
5198         rebasepc\r
5199         fetch 10\r
5200 ;@CALL NZ,NN\r
5201 opcode_C_4:\r
5202         tst z80f,#1<<ZFlag\r
5203         beq opcode_C_D          ;@unconditional CALL\r
5204         add z80pc,z80pc,#2\r
5205         fetch 10\r
5206 \r
5207 ;@PUSH BC\r
5208 opcode_C_5:\r
5209         opPUSHreg z80bc\r
5210         fetch 11\r
5211 ;@ADD A,N\r
5212 opcode_C_6:\r
5213         ldrb r0,[z80pc],#1\r
5214         opADDb\r
5215         fetch 7\r
5216 ;@RST 0\r
5217 opcode_C_7:\r
5218         opRST 0x00\r
5219 \r
5220 ;@RET Z\r
5221 opcode_C_8:\r
5222         tst z80f,#1<<ZFlag\r
5223         bne opcode_C_9          ;@unconditional RET\r
5224         fetch 5\r
5225 ;@RET\r
5226 opcode_C_9:\r
5227     opPOP\r
5228         rebasepc\r
5229         fetch 10\r
5230 ;@JP Z,$+3\r
5231 opcode_C_A:\r
5232         tst z80f,#1<<ZFlag\r
5233         bne opcode_C_3  ;@unconditional JP\r
5234         add z80pc,z80pc,#2\r
5235         fetch 10\r
5236 \r
5237 ;@This reads this opcodes_CB lookup table to find the location of\r
5238 ;@the CB sub for the intruction and then branches to that location\r
5239 opcode_C_B:\r
5240         ldrb r0,[z80pc],#1\r
5241         ldr pc,[pc,r0, lsl #2]\r
5242 opcodes_CB:     .word 0x00000000\r
5243                         .word opcode_CB_00,opcode_CB_01,opcode_CB_02,opcode_CB_03,opcode_CB_04,opcode_CB_05,opcode_CB_06,opcode_CB_07\r
5244                         .word opcode_CB_08,opcode_CB_09,opcode_CB_0A,opcode_CB_0B,opcode_CB_0C,opcode_CB_0D,opcode_CB_0E,opcode_CB_0F\r
5245                         .word opcode_CB_10,opcode_CB_11,opcode_CB_12,opcode_CB_13,opcode_CB_14,opcode_CB_15,opcode_CB_16,opcode_CB_17\r
5246                         .word opcode_CB_18,opcode_CB_19,opcode_CB_1A,opcode_CB_1B,opcode_CB_1C,opcode_CB_1D,opcode_CB_1E,opcode_CB_1F\r
5247                         .word opcode_CB_20,opcode_CB_21,opcode_CB_22,opcode_CB_23,opcode_CB_24,opcode_CB_25,opcode_CB_26,opcode_CB_27\r
5248                         .word opcode_CB_28,opcode_CB_29,opcode_CB_2A,opcode_CB_2B,opcode_CB_2C,opcode_CB_2D,opcode_CB_2E,opcode_CB_2F\r
5249                         .word opcode_CB_30,opcode_CB_31,opcode_CB_32,opcode_CB_33,opcode_CB_34,opcode_CB_35,opcode_CB_36,opcode_CB_37\r
5250                         .word opcode_CB_38,opcode_CB_39,opcode_CB_3A,opcode_CB_3B,opcode_CB_3C,opcode_CB_3D,opcode_CB_3E,opcode_CB_3F\r
5251                         .word opcode_CB_40,opcode_CB_41,opcode_CB_42,opcode_CB_43,opcode_CB_44,opcode_CB_45,opcode_CB_46,opcode_CB_47\r
5252                         .word opcode_CB_48,opcode_CB_49,opcode_CB_4A,opcode_CB_4B,opcode_CB_4C,opcode_CB_4D,opcode_CB_4E,opcode_CB_4F\r
5253                         .word opcode_CB_50,opcode_CB_51,opcode_CB_52,opcode_CB_53,opcode_CB_54,opcode_CB_55,opcode_CB_56,opcode_CB_57\r
5254                         .word opcode_CB_58,opcode_CB_59,opcode_CB_5A,opcode_CB_5B,opcode_CB_5C,opcode_CB_5D,opcode_CB_5E,opcode_CB_5F\r
5255                         .word opcode_CB_60,opcode_CB_61,opcode_CB_62,opcode_CB_63,opcode_CB_64,opcode_CB_65,opcode_CB_66,opcode_CB_67\r
5256                         .word opcode_CB_68,opcode_CB_69,opcode_CB_6A,opcode_CB_6B,opcode_CB_6C,opcode_CB_6D,opcode_CB_6E,opcode_CB_6F\r
5257                         .word opcode_CB_70,opcode_CB_71,opcode_CB_72,opcode_CB_73,opcode_CB_74,opcode_CB_75,opcode_CB_76,opcode_CB_77\r
5258                         .word opcode_CB_78,opcode_CB_79,opcode_CB_7A,opcode_CB_7B,opcode_CB_7C,opcode_CB_7D,opcode_CB_7E,opcode_CB_7F\r
5259                         .word opcode_CB_80,opcode_CB_81,opcode_CB_82,opcode_CB_83,opcode_CB_84,opcode_CB_85,opcode_CB_86,opcode_CB_87\r
5260                         .word opcode_CB_88,opcode_CB_89,opcode_CB_8A,opcode_CB_8B,opcode_CB_8C,opcode_CB_8D,opcode_CB_8E,opcode_CB_8F\r
5261                         .word opcode_CB_90,opcode_CB_91,opcode_CB_92,opcode_CB_93,opcode_CB_94,opcode_CB_95,opcode_CB_96,opcode_CB_97\r
5262                         .word opcode_CB_98,opcode_CB_99,opcode_CB_9A,opcode_CB_9B,opcode_CB_9C,opcode_CB_9D,opcode_CB_9E,opcode_CB_9F\r
5263                         .word opcode_CB_A0,opcode_CB_A1,opcode_CB_A2,opcode_CB_A3,opcode_CB_A4,opcode_CB_A5,opcode_CB_A6,opcode_CB_A7\r
5264                         .word opcode_CB_A8,opcode_CB_A9,opcode_CB_AA,opcode_CB_AB,opcode_CB_AC,opcode_CB_AD,opcode_CB_AE,opcode_CB_AF\r
5265                         .word opcode_CB_B0,opcode_CB_B1,opcode_CB_B2,opcode_CB_B3,opcode_CB_B4,opcode_CB_B5,opcode_CB_B6,opcode_CB_B7\r
5266                         .word opcode_CB_B8,opcode_CB_B9,opcode_CB_BA,opcode_CB_BB,opcode_CB_BC,opcode_CB_BD,opcode_CB_BE,opcode_CB_BF\r
5267                         .word opcode_CB_C0,opcode_CB_C1,opcode_CB_C2,opcode_CB_C3,opcode_CB_C4,opcode_CB_C5,opcode_CB_C6,opcode_CB_C7\r
5268                         .word opcode_CB_C8,opcode_CB_C9,opcode_CB_CA,opcode_CB_CB,opcode_CB_CC,opcode_CB_CD,opcode_CB_CE,opcode_CB_CF\r
5269                         .word opcode_CB_D0,opcode_CB_D1,opcode_CB_D2,opcode_CB_D3,opcode_CB_D4,opcode_CB_D5,opcode_CB_D6,opcode_CB_D7\r
5270                         .word opcode_CB_D8,opcode_CB_D9,opcode_CB_DA,opcode_CB_DB,opcode_CB_DC,opcode_CB_DD,opcode_CB_DE,opcode_CB_DF\r
5271                         .word opcode_CB_E0,opcode_CB_E1,opcode_CB_E2,opcode_CB_E3,opcode_CB_E4,opcode_CB_E5,opcode_CB_E6,opcode_CB_E7\r
5272                         .word opcode_CB_E8,opcode_CB_E9,opcode_CB_EA,opcode_CB_EB,opcode_CB_EC,opcode_CB_ED,opcode_CB_EE,opcode_CB_EF\r
5273                         .word opcode_CB_F0,opcode_CB_F1,opcode_CB_F2,opcode_CB_F3,opcode_CB_F4,opcode_CB_F5,opcode_CB_F6,opcode_CB_F7\r
5274                         .word opcode_CB_F8,opcode_CB_F9,opcode_CB_FA,opcode_CB_FB,opcode_CB_FC,opcode_CB_FD,opcode_CB_FE,opcode_CB_FF\r
5275 \r
5276 ;@CALL Z,NN\r
5277 opcode_C_C:\r
5278         tst z80f,#1<<ZFlag\r
5279         bne opcode_C_D          ;@unconditional CALL\r
5280         add z80pc,z80pc,#2\r
5281         fetch 10\r
5282 ;@CALL NN\r
5283 opcode_C_D:\r
5284         ldrb r0,[z80pc],#1\r
5285         ldrb r1,[z80pc],#1\r
5286         ldr r2,[cpucontext,#z80pc_base]\r
5287         sub r2,z80pc,r2\r
5288         orr z80pc,r0,r1, lsl #8\r
5289     opPUSHareg r2\r
5290     mov r0,z80pc\r
5291         rebasepc\r
5292         fetch 17\r
5293 ;@ADC A,N\r
5294 opcode_C_E:\r
5295         ldrb r0,[z80pc],#1\r
5296         opADCb\r
5297         fetch 7\r
5298 ;@RST 8H\r
5299 opcode_C_F:\r
5300         opRST 0x08\r
5301 \r
5302 ;@RET NC\r
5303 opcode_D_0:\r
5304         tst z80f,#1<<CFlag\r
5305         beq opcode_C_9          ;@unconditional RET\r
5306         fetch 5\r
5307 ;@POP DE\r
5308 opcode_D_1:\r
5309         opPOPreg z80de\r
5310 \r
5311 ;@JP NC, $+3\r
5312 opcode_D_2 :\r
5313         tst z80f,#1<<CFlag\r
5314         beq opcode_C_3          ;@unconditional JP\r
5315         add z80pc,z80pc,#2\r
5316         fetch 10\r
5317 ;@OUT (N),A\r
5318 opcode_D_3:\r
5319         ldrb r0,[z80pc],#1\r
5320         orr r0,r0,z80a,lsr#16\r
5321         mov r1,z80a, lsr #24\r
5322         opOUT\r
5323         fetch 11\r
5324 ;@CALL NC,NN\r
5325 opcode_D_4:\r
5326         tst z80f,#1<<CFlag\r
5327         beq opcode_C_D          ;@unconditional CALL\r
5328         add z80pc,z80pc,#2\r
5329         fetch 10\r
5330 ;@PUSH DE\r
5331 opcode_D_5:\r
5332         opPUSHreg z80de\r
5333         fetch 11\r
5334 ;@SUB N\r
5335 opcode_D_6:\r
5336         ldrb r0,[z80pc],#1\r
5337         opSUBb\r
5338         fetch 7\r
5339 \r
5340 ;@RST 10H\r
5341 opcode_D_7:\r
5342         opRST 0x10\r
5343 \r
5344 ;@RET C\r
5345 opcode_D_8:\r
5346         tst z80f,#1<<CFlag\r
5347         bne opcode_C_9          ;@unconditional RET\r
5348         fetch 5\r
5349 ;@EXX\r
5350 opcode_D_9:\r
5351         add r1,cpucontext,#z80bc2\r
5352         swp z80bc,z80bc,[r1]\r
5353         add r1,cpucontext,#z80de2\r
5354         swp z80de,z80de,[r1]\r
5355         add r1,cpucontext,#z80hl2\r
5356         swp z80hl,z80hl,[r1]\r
5357         fetch 4\r
5358 ;@JP C,$+3\r
5359 opcode_D_A:\r
5360         tst z80f,#1<<CFlag\r
5361         bne opcode_C_3          ;@unconditional JP\r
5362         add z80pc,z80pc,#2\r
5363         fetch 10\r
5364 ;@IN A,(N)\r
5365 opcode_D_B:\r
5366         ldrb r0,[z80pc],#1\r
5367         orr r0,r0,z80a,lsr#16\r
5368         opIN\r
5369         mov z80a,r0, lsl #24    ;@ r0 = data read\r
5370         fetch 11\r
5371 ;@CALL C,NN\r
5372 opcode_D_C:\r
5373         tst z80f,#1<<CFlag\r
5374         bne opcode_C_D          ;@unconditional CALL\r
5375         add z80pc,z80pc,#2\r
5376         fetch 10\r
5377 \r
5378 ;@opcodes_DD\r
5379 opcode_D_D:\r
5380         add z80xx,cpucontext,#z80ix\r
5381         b opcode_D_D_F_D\r
5382 opcode_F_D:\r
5383         add z80xx,cpucontext,#z80iy\r
5384 opcode_D_D_F_D:\r
5385         ldrb r0,[z80pc],#1\r
5386         ldr pc,[pc,r0, lsl #2]\r
5387 opcodes_DD:     .word 0x00000000\r
5388                         .word opcode_0_0,  opcode_0_1,  opcode_0_2,  opcode_0_3,  opcode_0_4,  opcode_0_5,  opcode_0_6,  opcode_0_7\r
5389                         .word opcode_0_8,  opcode_DD_09,opcode_0_A,  opcode_0_B,  opcode_0_C,  opcode_0_D,  opcode_0_E,  opcode_0_F\r
5390                         .word opcode_1_0,  opcode_1_1,  opcode_1_2,  opcode_1_3,  opcode_1_4,  opcode_1_5,  opcode_1_6,  opcode_1_7\r
5391                         .word opcode_1_8,  opcode_DD_19,opcode_1_A,  opcode_1_B,  opcode_1_C,  opcode_1_D,  opcode_1_E,  opcode_1_F\r
5392                         .word opcode_2_0,  opcode_DD_21,opcode_DD_22,opcode_DD_23,opcode_DD_24,opcode_DD_25,opcode_DD_26,opcode_2_7\r
5393                         .word opcode_2_8,  opcode_DD_29,opcode_DD_2A,opcode_DD_2B,opcode_DD_2C,opcode_DD_2D,opcode_DD_2E,opcode_2_F\r
5394                         .word opcode_3_0,  opcode_3_1,  opcode_3_2,  opcode_3_3,  opcode_DD_34,opcode_DD_35,opcode_DD_36,opcode_3_7\r
5395                         .word opcode_3_8,  opcode_DD_39,opcode_3_A,  opcode_3_B,  opcode_3_C,  opcode_3_D,  opcode_3_E,  opcode_3_F\r
5396                         .word opcode_4_0,  opcode_4_1,  opcode_4_2,  opcode_4_3,  opcode_DD_44,opcode_DD_45,opcode_DD_46,opcode_4_7\r
5397                         .word opcode_4_8,  opcode_4_9,  opcode_4_A,  opcode_4_B,  opcode_DD_4C,opcode_DD_4D,opcode_DD_4E,opcode_4_F\r
5398                         .word opcode_5_0,  opcode_5_1,  opcode_5_2,  opcode_5_3,  opcode_DD_54,opcode_DD_55,opcode_DD_56,opcode_5_7\r
5399                         .word opcode_5_8,  opcode_5_9,  opcode_5_A,  opcode_5_B,  opcode_DD_5C,opcode_DD_5D,opcode_DD_5E,opcode_5_F\r
5400                         .word opcode_DD_60,opcode_DD_61,opcode_DD_62,opcode_DD_63,opcode_DD_64,opcode_DD_65,opcode_DD_66,opcode_DD_67\r
5401                         .word opcode_DD_68,opcode_DD_69,opcode_DD_6A,opcode_DD_6B,opcode_DD_6C,opcode_DD_6D,opcode_DD_6E,opcode_DD_6F\r
5402                         .word opcode_DD_70,opcode_DD_71,opcode_DD_72,opcode_DD_73,opcode_DD_74,opcode_DD_75,opcode_7_6,  opcode_DD_77\r
5403                         .word opcode_7_8,  opcode_7_9,  opcode_7_A,  opcode_7_B,  opcode_DD_7C,opcode_DD_7D,opcode_DD_7E,opcode_7_F\r
5404                         .word opcode_8_0,  opcode_8_1,  opcode_8_2,  opcode_8_3,  opcode_DD_84,opcode_DD_85,opcode_DD_86,opcode_8_7\r
5405                         .word opcode_8_8,  opcode_8_9,  opcode_8_A,  opcode_8_B,  opcode_DD_8C,opcode_DD_8D,opcode_DD_8E,opcode_8_F\r
5406                         .word opcode_9_0,  opcode_9_1,  opcode_9_2,  opcode_9_3,  opcode_DD_94,opcode_DD_95,opcode_DD_96,opcode_9_7\r
5407                         .word opcode_9_8,  opcode_9_9,  opcode_9_A,  opcode_9_B,  opcode_DD_9C,opcode_DD_9D,opcode_DD_9E,opcode_9_F\r
5408                         .word opcode_A_0,  opcode_A_1,  opcode_A_2,  opcode_A_3,  opcode_DD_A4,opcode_DD_A5,opcode_DD_A6,opcode_A_7\r
5409                         .word opcode_A_8,  opcode_A_9,  opcode_A_A,  opcode_A_B,  opcode_DD_AC,opcode_DD_AD,opcode_DD_AE,opcode_A_F\r
5410                         .word opcode_B_0,  opcode_B_1,  opcode_B_2,  opcode_B_3,  opcode_DD_B4,opcode_DD_B5,opcode_DD_B6,opcode_B_7\r
5411                         .word opcode_B_8,  opcode_B_9,  opcode_B_A,  opcode_B_B,  opcode_DD_BC,opcode_DD_BD,opcode_DD_BE,opcode_B_F\r
5412                         .word opcode_C_0,  opcode_C_1,  opcode_C_2,  opcode_C_3,  opcode_C_4,  opcode_C_5,  opcode_C_6,  opcode_C_7\r
5413                         .word opcode_C_8,  opcode_C_9,  opcode_C_A,  opcode_DD_CB,opcode_C_C,  opcode_C_D,  opcode_C_E,  opcode_C_F\r
5414                         .word opcode_D_0,  opcode_D_1,  opcode_D_2,  opcode_D_3,  opcode_D_4,  opcode_D_5,  opcode_D_6,  opcode_D_7\r
5415                         .word opcode_D_8,  opcode_D_9,  opcode_D_A,  opcode_D_B,  opcode_D_C,  opcode_D_D,  opcode_D_E,  opcode_D_F\r
5416                         .word opcode_E_0,  opcode_DD_E1,opcode_E_2,  opcode_DD_E3,opcode_E_4,  opcode_DD_E5,opcode_E_6,  opcode_E_7\r
5417                         .word opcode_E_8,  opcode_DD_E9,opcode_E_A,  opcode_E_B,  opcode_E_C,  opcode_E_D,  opcode_E_E,  opcode_E_F\r
5418                         .word opcode_F_0,  opcode_F_1,  opcode_F_2,  opcode_F_3,  opcode_F_4,  opcode_F_5,  opcode_F_6,  opcode_F_7\r
5419                         .word opcode_F_8,  opcode_DD_F9,opcode_F_A,  opcode_F_B,  opcode_F_C,  opcode_F_D,  opcode_F_E,  opcode_F_F\r
5420 \r
5421 ;@SBC A,N\r
5422 opcode_D_E:\r
5423         ldrb r0,[z80pc],#1\r
5424         opSBCb\r
5425         fetch 7\r
5426 ;@RST 18H\r
5427 opcode_D_F:\r
5428         opRST 0x18\r
5429 \r
5430 ;@RET PO\r
5431 opcode_E_0:\r
5432         tst z80f,#1<<VFlag\r
5433         beq opcode_C_9          ;@unconditional RET\r
5434         fetch 5\r
5435 ;@POP HL\r
5436 opcode_E_1:\r
5437         opPOPreg z80hl\r
5438 \r
5439 ;@JP PO,$+3\r
5440 opcode_E_2:\r
5441         tst z80f,#1<<VFlag\r
5442         beq opcode_C_3          ;@unconditional JP\r
5443         add z80pc,z80pc,#2\r
5444         fetch 10\r
5445 ;@EX (SP),HL\r
5446 opcode_E_3:\r
5447 .if FAST_Z80SP\r
5448         ldrb r0,[z80sp]\r
5449         ldrb r1,[z80sp,#1]\r
5450         orr r0,r0,r1, lsl #8\r
5451         mov r1,z80hl, lsr #24\r
5452         strb r1,[z80sp,#1]\r
5453         mov r1,z80hl, lsr #16\r
5454         strb r1,[z80sp]\r
5455         mov z80hl,r0, lsl #16\r
5456 .else\r
5457         mov r0,z80sp\r
5458         readmem16\r
5459         mov r1,r0\r
5460         mov r0,z80hl,lsr#16\r
5461         mov z80hl,r1,lsl#16\r
5462         mov r1,z80sp\r
5463         writemem16\r
5464 .endif\r
5465         fetch 19\r
5466 ;@CALL PO,NN\r
5467 opcode_E_4:\r
5468         tst z80f,#1<<VFlag\r
5469         beq opcode_C_D          ;@unconditional CALL\r
5470         add z80pc,z80pc,#2\r
5471         fetch 10\r
5472 ;@PUSH HL\r
5473 opcode_E_5:\r
5474         opPUSHreg z80hl\r
5475         fetch 11\r
5476 ;@AND N\r
5477 opcode_E_6:\r
5478         ldrb r0,[z80pc],#1\r
5479         opANDb\r
5480         fetch 7\r
5481 ;@RST 20H\r
5482 opcode_E_7:\r
5483         opRST 0x20\r
5484 \r
5485 ;@RET PE\r
5486 opcode_E_8:\r
5487         tst z80f,#1<<VFlag\r
5488         bne opcode_C_9          ;@unconditional RET\r
5489         fetch 5\r
5490 ;@JP (HL)\r
5491 opcode_E_9:\r
5492         mov r0,z80hl, lsr #16\r
5493         rebasepc\r
5494         fetch 4\r
5495 ;@JP PE,$+3\r
5496 opcode_E_A:\r
5497         tst z80f,#1<<VFlag\r
5498         bne opcode_C_3          ;@unconditional JP\r
5499         add z80pc,z80pc,#2\r
5500         fetch 10\r
5501 ;@EX DE,HL\r
5502 opcode_E_B:\r
5503         mov r1,z80de\r
5504         mov z80de,z80hl\r
5505         mov z80hl,r1\r
5506         fetch 4\r
5507 ;@CALL PE,NN\r
5508 opcode_E_C:\r
5509         tst z80f,#1<<VFlag\r
5510         bne opcode_C_D          ;@unconditional CALL\r
5511         add z80pc,z80pc,#2\r
5512         fetch 10\r
5513 \r
5514 ;@This should be caught at start\r
5515 opcode_E_D:\r
5516         ldrb r1,[z80pc],#1\r
5517         ldr pc,[pc,r1, lsl #2]\r
5518 opcodes_ED:     .word 0x00000000\r
5519                         .word opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF\r
5520                         .word opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF\r
5521                         .word opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF\r
5522                         .word opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF\r
5523                         .word opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF\r
5524                         .word opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF\r
5525                         .word opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF\r
5526                         .word opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF\r
5527                         .word opcode_ED_40,opcode_ED_41,opcode_ED_42,opcode_ED_43,opcode_ED_44,opcode_ED_45,opcode_ED_46,opcode_ED_47\r
5528                         .word opcode_ED_48,opcode_ED_49,opcode_ED_4A,opcode_ED_4B,opcode_ED_44,opcode_ED_4D,opcode_ED_46,opcode_ED_4F\r
5529                         .word opcode_ED_50,opcode_ED_51,opcode_ED_52,opcode_ED_53,opcode_ED_44,opcode_ED_45,opcode_ED_56,opcode_ED_57\r
5530                         .word opcode_ED_58,opcode_ED_59,opcode_ED_5A,opcode_ED_5B,opcode_ED_44,opcode_ED_45,opcode_ED_5E,opcode_ED_5F\r
5531                         .word opcode_ED_60,opcode_ED_61,opcode_ED_62,opcode_ED_63,opcode_ED_44,opcode_ED_45,opcode_ED_46,opcode_ED_67\r
5532                         .word opcode_ED_68,opcode_ED_69,opcode_ED_6A,opcode_ED_6B,opcode_ED_44,opcode_ED_45,opcode_ED_46,opcode_ED_6F\r
5533                         .word opcode_ED_70,opcode_ED_71,opcode_ED_72,opcode_ED_73,opcode_ED_44,opcode_ED_45,opcode_ED_56,opcode_ED_NF\r
5534                         .word opcode_ED_78,opcode_ED_79,opcode_ED_7A,opcode_ED_7B,opcode_ED_44,opcode_ED_45,opcode_ED_5E,opcode_ED_NF\r
5535                         .word opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF\r
5536                         .word opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF\r
5537                         .word opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF\r
5538                         .word opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF\r
5539                         .word opcode_ED_A0,opcode_ED_A1,opcode_ED_A2,opcode_ED_A3,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF\r
5540                         .word opcode_ED_A8,opcode_ED_A9,opcode_ED_AA,opcode_ED_AB,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF\r
5541                         .word opcode_ED_B0,opcode_ED_B1,opcode_ED_B2,opcode_ED_B3,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF\r
5542                         .word opcode_ED_B8,opcode_ED_B9,opcode_ED_BA,opcode_ED_BB,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF\r
5543                         .word opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF\r
5544                         .word opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF\r
5545                         .word opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF\r
5546                         .word opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF\r
5547                         .word opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF\r
5548                         .word opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF\r
5549                         .word opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF\r
5550                         .word opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF\r
5551 \r
5552 ;@XOR N\r
5553 opcode_E_E:\r
5554         ldrb r0,[z80pc],#1\r
5555         opXORb\r
5556         fetch 7\r
5557 ;@RST 28H\r
5558 opcode_E_F:\r
5559         opRST 0x28\r
5560 \r
5561 ;@RET P\r
5562 opcode_F_0:\r
5563         tst z80f,#1<<SFlag\r
5564         beq opcode_C_9          ;@unconditional RET\r
5565         fetch 5\r
5566 ;@POP AF\r
5567 opcode_F_1:\r
5568 .if FAST_Z80SP\r
5569         ldrb z80f,[z80sp],#1\r
5570         sub r0,opcodes,#0x200\r
5571         ldrb z80f,[r0,z80f]\r
5572         ldrb z80a,[z80sp],#1\r
5573         mov z80a,z80a, lsl #24\r
5574 .else\r
5575         mov r0,z80sp\r
5576         readmem16\r
5577         add z80sp,z80sp,#2\r
5578         and z80a,r0,#0xFF00\r
5579         mov z80a,z80a,lsl#16\r
5580         and z80f,r0,#0xFF\r
5581         sub r0,opcodes,#0x200\r
5582         ldrb z80f,[r0,z80f]\r
5583 .endif\r
5584         fetch 10\r
5585 ;@JP P,$+3\r
5586 opcode_F_2:\r
5587         tst z80f,#1<<SFlag\r
5588         beq opcode_C_3          ;@unconditional JP\r
5589         add z80pc,z80pc,#2\r
5590         fetch 10\r
5591 ;@DI\r
5592 opcode_F_3:\r
5593         ldrb r1,[cpucontext,#z80if]\r
5594         bic r1,r1,#(Z80_IF1)|(Z80_IF2)\r
5595         strb r1,[cpucontext,#z80if]\r
5596         fetch 4\r
5597 ;@CALL P,NN\r
5598 opcode_F_4:\r
5599         tst z80f,#1<<SFlag\r
5600         beq opcode_C_D          ;@unconditional CALL\r
5601         add z80pc,z80pc,#2\r
5602         fetch 10\r
5603 ;@PUSH AF\r
5604 opcode_F_5:\r
5605         sub r0,opcodes,#0x300\r
5606         ldrb r0,[r0,z80f]\r
5607         orr r2,r0,z80a,lsr#16\r
5608     opPUSHareg r2\r
5609         fetch 11\r
5610 ;@OR N\r
5611 opcode_F_6:\r
5612         ldrb r0,[z80pc],#1\r
5613         opORb\r
5614         fetch 7\r
5615 ;@RST 30H\r
5616 opcode_F_7:\r
5617         opRST 0x30\r
5618 \r
5619 ;@RET M\r
5620 opcode_F_8:\r
5621         tst z80f,#1<<SFlag\r
5622         bne opcode_C_9          ;@unconditional RET\r
5623         fetch 5\r
5624 ;@LD SP,HL\r
5625 opcode_F_9:\r
5626 .if FAST_Z80SP\r
5627         mov r0,z80hl, lsr #16\r
5628         rebasesp\r
5629         mov z80sp,r0\r
5630 .else\r
5631         mov z80sp,z80hl, lsr #16\r
5632 .endif\r
5633         fetch 4\r
5634 ;@JP M,$+3\r
5635 opcode_F_A:\r
5636         tst z80f,#1<<SFlag\r
5637         bne opcode_C_3          ;@unconditional JP\r
5638         add z80pc,z80pc,#2\r
5639         fetch 10\r
5640 MAIN_opcodes_POINTER: .word MAIN_opcodes\r
5641 EI_DUMMY_opcodes_POINTER: .word EI_DUMMY_opcodes\r
5642 ;@EI\r
5643 opcode_F_B:\r
5644         ldrb r1,[cpucontext,#z80if]\r
5645         tst r1,#Z80_IF1\r
5646         bne ei_return_exit\r
5647 \r
5648         orr r1,r1,#(Z80_IF1)|(Z80_IF2)\r
5649         strb r1,[cpucontext,#z80if]\r
5650 \r
5651         mov r2,opcodes\r
5652         ldr opcodes,EI_DUMMY_opcodes_POINTER\r
5653         ldr pc,[r2,r0, lsl #2]\r
5654 \r
5655 ei_return:\r
5656         ;@point that program returns from EI to check interupts\r
5657         ;@an interupt can not be taken directly after a EI opcode\r
5658         ;@ reset z80pc and opcode pointer\r
5659         ldrh r0,[cpucontext,#z80irq] @ 0x4C\r
5660         sub z80pc,z80pc,#1\r
5661         ldr opcodes,MAIN_opcodes_POINTER\r
5662         ;@ check ints\r
5663         tst r0,#1\r
5664         movnes r0,r0,lsr #8\r
5665     blne DoInterrupt\r
5666         ;@ continue\r
5667 ei_return_exit:\r
5668         fetch 4\r
5669 \r
5670 ;@CALL M,NN\r
5671 opcode_F_C:\r
5672         tst z80f,#1<<SFlag\r
5673         bne opcode_C_D          ;@unconditional CALL\r
5674         add z80pc,z80pc,#2\r
5675         fetch 10\r
5676 \r
5677 ;@SHOULD BE CAUGHT AT START - FD SECTION\r
5678 \r
5679 ;@CP N\r
5680 opcode_F_E:\r
5681         ldrb r0,[z80pc],#1\r
5682         opCPb\r
5683         fetch 7\r
5684 ;@RST 38H\r
5685 opcode_F_F:\r
5686         opRST 0x38\r
5687 \r
5688 \r
5689 ;@##################################\r
5690 ;@##################################\r
5691 ;@###  opcodes CB  #########################\r
5692 ;@##################################\r
5693 ;@##################################\r
5694 \r
5695 \r
5696 ;@RLC B\r
5697 opcode_CB_00:\r
5698         opRLCH z80bc\r
5699 ;@RLC C\r
5700 opcode_CB_01:\r
5701         opRLCL z80bc\r
5702 ;@RLC D\r
5703 opcode_CB_02:\r
5704         opRLCH z80de\r
5705 ;@RLC E\r
5706 opcode_CB_03:\r
5707         opRLCL z80de\r
5708 ;@RLC H\r
5709 opcode_CB_04:\r
5710         opRLCH z80hl\r
5711 ;@RLC L\r
5712 opcode_CB_05:\r
5713         opRLCL z80hl\r
5714 ;@RLC (HL)\r
5715 opcode_CB_06:\r
5716         readmem8HL\r
5717         opRLCb\r
5718         writemem8HL\r
5719         fetch 15\r
5720 ;@RLC A\r
5721 opcode_CB_07:\r
5722         opRLCA\r
5723 \r
5724 ;@RRC B\r
5725 opcode_CB_08:\r
5726         opRRCH z80bc\r
5727 ;@RRC C\r
5728 opcode_CB_09:\r
5729         opRRCL z80bc\r
5730 ;@RRC D\r
5731 opcode_CB_0A:\r
5732         opRRCH z80de\r
5733 ;@RRC E\r
5734 opcode_CB_0B:\r
5735         opRRCL z80de\r
5736 ;@RRC H\r
5737 opcode_CB_0C:\r
5738         opRRCH z80hl\r
5739 ;@RRC L\r
5740 opcode_CB_0D:\r
5741         opRRCL z80hl\r
5742 ;@RRC (HL)\r
5743 opcode_CB_0E :\r
5744         readmem8HL\r
5745         opRRCb\r
5746         writemem8HL\r
5747         fetch 15\r
5748 ;@RRC A\r
5749 opcode_CB_0F:\r
5750         opRRCA\r
5751 \r
5752 ;@RL B\r
5753 opcode_CB_10:\r
5754         opRLH z80bc\r
5755 ;@RL C\r
5756 opcode_CB_11:\r
5757         opRLL z80bc\r
5758 ;@RL D\r
5759 opcode_CB_12:\r
5760         opRLH z80de\r
5761 ;@RL E\r
5762 opcode_CB_13:\r
5763         opRLL z80de\r
5764 ;@RL H\r
5765 opcode_CB_14:\r
5766         opRLH z80hl\r
5767 ;@RL L\r
5768 opcode_CB_15:\r
5769         opRLL z80hl\r
5770 ;@RL (HL)\r
5771 opcode_CB_16:\r
5772         readmem8HL\r
5773         opRLb\r
5774         writemem8HL\r
5775         fetch 15\r
5776 ;@RL A\r
5777 opcode_CB_17:\r
5778         opRLA\r
5779 \r
5780 ;@RR B \r
5781 opcode_CB_18:\r
5782         opRRH z80bc\r
5783 ;@RR C\r
5784 opcode_CB_19:\r
5785         opRRL z80bc\r
5786 ;@RR D\r
5787 opcode_CB_1A:\r
5788         opRRH z80de\r
5789 ;@RR E\r
5790 opcode_CB_1B:\r
5791         opRRL z80de\r
5792 ;@RR H\r
5793 opcode_CB_1C:\r
5794         opRRH z80hl\r
5795 ;@RR L\r
5796 opcode_CB_1D:\r
5797         opRRL z80hl\r
5798 ;@RR (HL)\r
5799 opcode_CB_1E:\r
5800         readmem8HL\r
5801         opRRb\r
5802         writemem8HL\r
5803         fetch 15\r
5804 ;@RR A\r
5805 opcode_CB_1F:\r
5806         opRRA\r
5807 \r
5808 ;@SLA B\r
5809 opcode_CB_20:\r
5810         opSLAH z80bc\r
5811 ;@SLA C\r
5812 opcode_CB_21:\r
5813         opSLAL z80bc\r
5814 ;@SLA D\r
5815 opcode_CB_22:\r
5816         opSLAH z80de\r
5817 ;@SLA E\r
5818 opcode_CB_23:\r
5819         opSLAL z80de\r
5820 ;@SLA H\r
5821 opcode_CB_24:\r
5822         opSLAH z80hl\r
5823 ;@SLA L\r
5824 opcode_CB_25:\r
5825         opSLAL z80hl\r
5826 ;@SLA (HL)\r
5827 opcode_CB_26:\r
5828         readmem8HL\r
5829         opSLAb\r
5830         writemem8HL\r
5831         fetch 15\r
5832 ;@SLA A\r
5833 opcode_CB_27:\r
5834         opSLAA\r
5835 \r
5836 ;@SRA B\r
5837 opcode_CB_28:\r
5838         opSRAH z80bc\r
5839 ;@SRA C\r
5840 opcode_CB_29:\r
5841         opSRAL z80bc\r
5842 ;@SRA D\r
5843 opcode_CB_2A:\r
5844         opSRAH z80de\r
5845 ;@SRA E\r
5846 opcode_CB_2B:\r
5847         opSRAL z80de\r
5848 ;@SRA H\r
5849 opcode_CB_2C:\r
5850         opSRAH z80hl\r
5851 ;@SRA L\r
5852 opcode_CB_2D:\r
5853         opSRAL z80hl\r
5854 ;@SRA (HL)\r
5855 opcode_CB_2E:\r
5856         readmem8HL\r
5857         opSRAb\r
5858         writemem8HL\r
5859         fetch 15\r
5860 ;@SRA A\r
5861 opcode_CB_2F:\r
5862         opSRAA\r
5863 \r
5864 ;@SLL B\r
5865 opcode_CB_30:\r
5866         opSLLH z80bc\r
5867 ;@SLL C\r
5868 opcode_CB_31:\r
5869         opSLLL z80bc\r
5870 ;@SLL D\r
5871 opcode_CB_32:\r
5872         opSLLH z80de\r
5873 ;@SLL E\r
5874 opcode_CB_33:\r
5875         opSLLL z80de\r
5876 ;@SLL H\r
5877 opcode_CB_34:\r
5878         opSLLH z80hl\r
5879 ;@SLL L\r
5880 opcode_CB_35:\r
5881         opSLLL z80hl\r
5882 ;@SLL (HL)\r
5883 opcode_CB_36:\r
5884         readmem8HL\r
5885         opSLLb\r
5886         writemem8HL\r
5887         fetch 15\r
5888 ;@SLL A\r
5889 opcode_CB_37:\r
5890         opSLLA\r
5891 \r
5892 ;@SRL B\r
5893 opcode_CB_38:\r
5894         opSRLH z80bc\r
5895 ;@SRL C\r
5896 opcode_CB_39:\r
5897         opSRLL z80bc\r
5898 ;@SRL D\r
5899 opcode_CB_3A:\r
5900         opSRLH z80de\r
5901 ;@SRL E\r
5902 opcode_CB_3B:\r
5903         opSRLL z80de\r
5904 ;@SRL H\r
5905 opcode_CB_3C:\r
5906         opSRLH z80hl\r
5907 ;@SRL L\r
5908 opcode_CB_3D:\r
5909         opSRLL z80hl\r
5910 ;@SRL (HL)\r
5911 opcode_CB_3E:\r
5912         readmem8HL\r
5913         opSRLb\r
5914         writemem8HL\r
5915         fetch 15\r
5916 ;@SRL A\r
5917 opcode_CB_3F:\r
5918         opSRLA\r
5919 \r
5920 \r
5921 ;@BIT 0,B\r
5922 opcode_CB_40:\r
5923         opBITH z80bc 0\r
5924 ;@BIT 0,C\r
5925 opcode_CB_41:\r
5926         opBITL z80bc 0\r
5927 ;@BIT 0,D\r
5928 opcode_CB_42:\r
5929         opBITH z80de 0\r
5930 ;@BIT 0,E\r
5931 opcode_CB_43:\r
5932         opBITL z80de 0\r
5933 ;@BIT 0,H\r
5934 opcode_CB_44:\r
5935         opBITH z80hl 0\r
5936 ;@BIT 0,L\r
5937 opcode_CB_45:\r
5938         opBITL z80hl 0\r
5939 ;@BIT 0,(HL)\r
5940 opcode_CB_46:\r
5941         readmem8HL\r
5942         opBITb 0\r
5943         fetch 12\r
5944 ;@BIT 0,A\r
5945 opcode_CB_47:\r
5946         opBITH z80a 0\r
5947 \r
5948 ;@BIT 1,B\r
5949 opcode_CB_48:\r
5950         opBITH z80bc 1\r
5951 ;@BIT 1,C\r
5952 opcode_CB_49:\r
5953         opBITL z80bc 1\r
5954 ;@BIT 1,D\r
5955 opcode_CB_4A:\r
5956         opBITH z80de 1\r
5957 ;@BIT 1,E\r
5958 opcode_CB_4B:\r
5959         opBITL z80de 1\r
5960 ;@BIT 1,H\r
5961 opcode_CB_4C:\r
5962         opBITH z80hl 1\r
5963 ;@BIT 1,L\r
5964 opcode_CB_4D:\r
5965         opBITL z80hl 1\r
5966 ;@BIT 1,(HL)\r
5967 opcode_CB_4E:\r
5968         readmem8HL\r
5969         opBITb 1\r
5970         fetch 12\r
5971 ;@BIT 1,A\r
5972 opcode_CB_4F:\r
5973         opBITH z80a 1\r
5974 \r
5975 ;@BIT 2,B\r
5976 opcode_CB_50:\r
5977         opBITH z80bc 2\r
5978 ;@BIT 2,C\r
5979 opcode_CB_51:\r
5980         opBITL z80bc 2\r
5981 ;@BIT 2,D\r
5982 opcode_CB_52:\r
5983         opBITH z80de 2\r
5984 ;@BIT 2,E\r
5985 opcode_CB_53:\r
5986         opBITL z80de 2\r
5987 ;@BIT 2,H\r
5988 opcode_CB_54:\r
5989         opBITH z80hl 2\r
5990 ;@BIT 2,L\r
5991 opcode_CB_55:\r
5992         opBITL z80hl 2\r
5993 ;@BIT 2,(HL)\r
5994 opcode_CB_56:\r
5995         readmem8HL\r
5996         opBITb 2\r
5997         fetch 12\r
5998 ;@BIT 2,A\r
5999 opcode_CB_57:\r
6000         opBITH z80a 2\r
6001 \r
6002 ;@BIT 3,B\r
6003 opcode_CB_58:\r
6004         opBITH z80bc 3\r
6005 ;@BIT 3,C\r
6006 opcode_CB_59:\r
6007         opBITL z80bc 3\r
6008 ;@BIT 3,D\r
6009 opcode_CB_5A:\r
6010         opBITH z80de 3\r
6011 ;@BIT 3,E\r
6012 opcode_CB_5B:\r
6013         opBITL z80de 3\r
6014 ;@BIT 3,H\r
6015 opcode_CB_5C:\r
6016         opBITH z80hl 3\r
6017 ;@BIT 3,L\r
6018 opcode_CB_5D:\r
6019         opBITL z80hl 3\r
6020 ;@BIT 3,(HL)\r
6021 opcode_CB_5E:\r
6022         readmem8HL\r
6023         opBITb 3\r
6024         fetch 12\r
6025 ;@BIT 3,A\r
6026 opcode_CB_5F:\r
6027         opBITH z80a 3\r
6028 \r
6029 ;@BIT 4,B\r
6030 opcode_CB_60:\r
6031         opBITH z80bc 4\r
6032 ;@BIT 4,C\r
6033 opcode_CB_61:\r
6034         opBITL z80bc 4\r
6035 ;@BIT 4,D\r
6036 opcode_CB_62:\r
6037         opBITH z80de 4\r
6038 ;@BIT 4,E\r
6039 opcode_CB_63:\r
6040         opBITL z80de 4\r
6041 ;@BIT 4,H\r
6042 opcode_CB_64:\r
6043         opBITH z80hl 4\r
6044 ;@BIT 4,L\r
6045 opcode_CB_65:\r
6046         opBITL z80hl 4\r
6047 ;@BIT 4,(HL)\r
6048 opcode_CB_66:\r
6049         readmem8HL\r
6050         opBITb 4\r
6051         fetch 12\r
6052 ;@BIT 4,A\r
6053 opcode_CB_67:\r
6054         opBITH z80a 4\r
6055 \r
6056 ;@BIT 5,B\r
6057 opcode_CB_68:\r
6058         opBITH z80bc 5\r
6059 ;@BIT 5,C\r
6060 opcode_CB_69:\r
6061         opBITL z80bc 5\r
6062 ;@BIT 5,D\r
6063 opcode_CB_6A:\r
6064         opBITH z80de 5\r
6065 ;@BIT 5,E\r
6066 opcode_CB_6B:\r
6067         opBITL z80de 5\r
6068 ;@BIT 5,H\r
6069 opcode_CB_6C:\r
6070         opBITH z80hl 5\r
6071 ;@BIT 5,L\r
6072 opcode_CB_6D:\r
6073         opBITL z80hl 5\r
6074 ;@BIT 5,(HL)\r
6075 opcode_CB_6E:\r
6076         readmem8HL\r
6077         opBITb 5\r
6078         fetch 12\r
6079 ;@BIT 5,A\r
6080 opcode_CB_6F:\r
6081         opBITH z80a 5\r
6082 \r
6083 ;@BIT 6,B\r
6084 opcode_CB_70:\r
6085         opBITH z80bc 6\r
6086 ;@BIT 6,C\r
6087 opcode_CB_71:\r
6088         opBITL z80bc 6\r
6089 ;@BIT 6,D\r
6090 opcode_CB_72:\r
6091         opBITH z80de 6\r
6092 ;@BIT 6,E\r
6093 opcode_CB_73:\r
6094         opBITL z80de 6\r
6095 ;@BIT 6,H\r
6096 opcode_CB_74:\r
6097         opBITH z80hl 6\r
6098 ;@BIT 6,L\r
6099 opcode_CB_75:\r
6100         opBITL z80hl 6\r
6101 ;@BIT 6,(HL)\r
6102 opcode_CB_76:\r
6103         readmem8HL\r
6104         opBITb 6\r
6105         fetch 12\r
6106 ;@BIT 6,A\r
6107 opcode_CB_77:\r
6108         opBITH z80a 6\r
6109 \r
6110 ;@BIT 7,B\r
6111 opcode_CB_78:\r
6112         opBIT7H z80bc\r
6113 ;@BIT 7,C\r
6114 opcode_CB_79:\r
6115         opBIT7L z80bc\r
6116 ;@BIT 7,D\r
6117 opcode_CB_7A:\r
6118         opBIT7H z80de\r
6119 ;@BIT 7,E\r
6120 opcode_CB_7B:\r
6121         opBIT7L z80de\r
6122 ;@BIT 7,H\r
6123 opcode_CB_7C:\r
6124         opBIT7H z80hl\r
6125 ;@BIT 7,L\r
6126 opcode_CB_7D:\r
6127         opBIT7L z80hl\r
6128 ;@BIT 7,(HL)\r
6129 opcode_CB_7E:\r
6130         readmem8HL\r
6131         opBIT7b\r
6132         fetch 12\r
6133 ;@BIT 7,A\r
6134 opcode_CB_7F:\r
6135         opBIT7H z80a\r
6136 \r
6137 ;@RES 0,B\r
6138 opcode_CB_80:\r
6139         bic z80bc,z80bc,#1<<24\r
6140         fetch 8\r
6141 ;@RES 0,C\r
6142 opcode_CB_81:\r
6143         bic z80bc,z80bc,#1<<16\r
6144         fetch 8\r
6145 ;@RES 0,D\r
6146 opcode_CB_82:\r
6147         bic z80de,z80de,#1<<24\r
6148         fetch 8\r
6149 ;@RES 0,E\r
6150 opcode_CB_83:\r
6151         bic z80de,z80de,#1<<16\r
6152         fetch 8\r
6153 ;@RES 0,H\r
6154 opcode_CB_84:\r
6155         bic z80hl,z80hl,#1<<24\r
6156         fetch 8\r
6157 ;@RES 0,L\r
6158 opcode_CB_85:\r
6159         bic z80hl,z80hl,#1<<16\r
6160         fetch 8\r
6161 ;@RES 0,(HL)\r
6162 opcode_CB_86:\r
6163         opRESmemHL 0\r
6164 ;@RES 0,A\r
6165 opcode_CB_87:\r
6166         bic z80a,z80a,#1<<24\r
6167         fetch 8\r
6168 \r
6169 ;@RES 1,B\r
6170 opcode_CB_88:\r
6171         bic z80bc,z80bc,#1<<25\r
6172         fetch 8\r
6173 ;@RES 1,C\r
6174 opcode_CB_89:\r
6175         bic z80bc,z80bc,#1<<17\r
6176         fetch 8\r
6177 ;@RES 1,D\r
6178 opcode_CB_8A:\r
6179         bic z80de,z80de,#1<<25\r
6180         fetch 8\r
6181 ;@RES 1,E\r
6182 opcode_CB_8B:\r
6183         bic z80de,z80de,#1<<17\r
6184         fetch 8\r
6185 ;@RES 1,H\r
6186 opcode_CB_8C:\r
6187         bic z80hl,z80hl,#1<<25\r
6188         fetch 8\r
6189 ;@RES 1,L\r
6190 opcode_CB_8D:\r
6191         bic z80hl,z80hl,#1<<17\r
6192         fetch 8\r
6193 ;@RES 1,(HL)\r
6194 opcode_CB_8E:\r
6195         opRESmemHL 1\r
6196 ;@RES 1,A\r
6197 opcode_CB_8F:\r
6198         bic z80a,z80a,#1<<25\r
6199         fetch 8\r
6200 \r
6201 ;@RES 2,B\r
6202 opcode_CB_90:\r
6203         bic z80bc,z80bc,#1<<26\r
6204         fetch 8\r
6205 ;@RES 2,C\r
6206 opcode_CB_91:\r
6207         bic z80bc,z80bc,#1<<18\r
6208         fetch 8\r
6209 ;@RES 2,D\r
6210 opcode_CB_92:\r
6211         bic z80de,z80de,#1<<26\r
6212         fetch 8\r
6213 ;@RES 2,E\r
6214 opcode_CB_93:\r
6215         bic z80de,z80de,#1<<18\r
6216         fetch 8\r
6217 ;@RES 2,H\r
6218 opcode_CB_94:\r
6219         bic z80hl,z80hl,#1<<26\r
6220         fetch 8\r
6221 ;@RES 2,L\r
6222 opcode_CB_95:\r
6223         bic z80hl,z80hl,#1<<18\r
6224         fetch 8\r
6225 ;@RES 2,(HL)\r
6226 opcode_CB_96:\r
6227         opRESmemHL 2\r
6228 ;@RES 2,A\r
6229 opcode_CB_97:\r
6230         bic z80a,z80a,#1<<26\r
6231         fetch 8\r
6232 \r
6233 ;@RES 3,B\r
6234 opcode_CB_98:\r
6235         bic z80bc,z80bc,#1<<27\r
6236         fetch 8\r
6237 ;@RES 3,C\r
6238 opcode_CB_99:\r
6239         bic z80bc,z80bc,#1<<19\r
6240         fetch 8\r
6241 ;@RES 3,D\r
6242 opcode_CB_9A:\r
6243         bic z80de,z80de,#1<<27\r
6244         fetch 8\r
6245 ;@RES 3,E\r
6246 opcode_CB_9B:\r
6247         bic z80de,z80de,#1<<19\r
6248         fetch 8\r
6249 ;@RES 3,H\r
6250 opcode_CB_9C:\r
6251         bic z80hl,z80hl,#1<<27\r
6252         fetch 8\r
6253 ;@RES 3,L\r
6254 opcode_CB_9D:\r
6255         bic z80hl,z80hl,#1<<19\r
6256         fetch 8\r
6257 ;@RES 3,(HL)\r
6258 opcode_CB_9E:\r
6259         opRESmemHL 3\r
6260 ;@RES 3,A\r
6261 opcode_CB_9F:\r
6262         bic z80a,z80a,#1<<27\r
6263         fetch 8\r
6264 \r
6265 ;@RES 4,B\r
6266 opcode_CB_A0:\r
6267         bic z80bc,z80bc,#1<<28\r
6268         fetch 8\r
6269 ;@RES 4,C\r
6270 opcode_CB_A1:\r
6271         bic z80bc,z80bc,#1<<20\r
6272         fetch 8\r
6273 ;@RES 4,D\r
6274 opcode_CB_A2:\r
6275         bic z80de,z80de,#1<<28\r
6276         fetch 8\r
6277 ;@RES 4,E\r
6278 opcode_CB_A3:\r
6279         bic z80de,z80de,#1<<20\r
6280         fetch 8\r
6281 ;@RES 4,H\r
6282 opcode_CB_A4:\r
6283         bic z80hl,z80hl,#1<<28\r
6284         fetch 8\r
6285 ;@RES 4,L\r
6286 opcode_CB_A5:\r
6287         bic z80hl,z80hl,#1<<20\r
6288         fetch 8\r
6289 ;@RES 4,(HL)\r
6290 opcode_CB_A6:\r
6291         opRESmemHL 4\r
6292 ;@RES 4,A\r
6293 opcode_CB_A7:\r
6294         bic z80a,z80a,#1<<28\r
6295         fetch 8\r
6296 \r
6297 ;@RES 5,B\r
6298 opcode_CB_A8:\r
6299         bic z80bc,z80bc,#1<<29\r
6300         fetch 8\r
6301 ;@RES 5,C\r
6302 opcode_CB_A9:\r
6303         bic z80bc,z80bc,#1<<21\r
6304         fetch 8\r
6305 ;@RES 5,D\r
6306 opcode_CB_AA:\r
6307         bic z80de,z80de,#1<<29\r
6308         fetch 8\r
6309 ;@RES 5,E\r
6310 opcode_CB_AB:\r
6311         bic z80de,z80de,#1<<21\r
6312         fetch 8\r
6313 ;@RES 5,H\r
6314 opcode_CB_AC:\r
6315         bic z80hl,z80hl,#1<<29\r
6316         fetch 8\r
6317 ;@RES 5,L\r
6318 opcode_CB_AD:\r
6319         bic z80hl,z80hl,#1<<21\r
6320         fetch 8\r
6321 ;@RES 5,(HL)\r
6322 opcode_CB_AE:\r
6323         opRESmemHL 5\r
6324 ;@RES 5,A\r
6325 opcode_CB_AF:\r
6326         bic z80a,z80a,#1<<29\r
6327         fetch 8\r
6328 \r
6329 ;@RES 6,B\r
6330 opcode_CB_B0:\r
6331         bic z80bc,z80bc,#1<<30\r
6332         fetch 8\r
6333 ;@RES 6,C\r
6334 opcode_CB_B1:\r
6335         bic z80bc,z80bc,#1<<22\r
6336         fetch 8\r
6337 ;@RES 6,D\r
6338 opcode_CB_B2:\r
6339         bic z80de,z80de,#1<<30\r
6340         fetch 8\r
6341 ;@RES 6,E\r
6342 opcode_CB_B3:\r
6343         bic z80de,z80de,#1<<22\r
6344         fetch 8\r
6345 ;@RES 6,H\r
6346 opcode_CB_B4:\r
6347         bic z80hl,z80hl,#1<<30\r
6348         fetch 8\r
6349 ;@RES 6,L\r
6350 opcode_CB_B5:\r
6351         bic z80hl,z80hl,#1<<22\r
6352         fetch 8\r
6353 ;@RES 6,(HL)\r
6354 opcode_CB_B6:\r
6355         opRESmemHL 6\r
6356 ;@RES 6,A\r
6357 opcode_CB_B7:\r
6358         bic z80a,z80a,#1<<30\r
6359         fetch 8\r
6360 \r
6361 ;@RES 7,B\r
6362 opcode_CB_B8:\r
6363         bic z80bc,z80bc,#1<<31\r
6364         fetch 8\r
6365 ;@RES 7,C\r
6366 opcode_CB_B9:\r
6367         bic z80bc,z80bc,#1<<23\r
6368         fetch 8\r
6369 ;@RES 7,D\r
6370 opcode_CB_BA:\r
6371         bic z80de,z80de,#1<<31\r
6372         fetch 8\r
6373 ;@RES 7,E\r
6374 opcode_CB_BB:\r
6375         bic z80de,z80de,#1<<23\r
6376         fetch 8\r
6377 ;@RES 7,H\r
6378 opcode_CB_BC:\r
6379         bic z80hl,z80hl,#1<<31\r
6380         fetch 8\r
6381 ;@RES 7,L\r
6382 opcode_CB_BD:\r
6383         bic z80hl,z80hl,#1<<23\r
6384         fetch 8\r
6385 ;@RES 7,(HL)\r
6386 opcode_CB_BE:\r
6387         opRESmemHL 7\r
6388 ;@RES 7,A\r
6389 opcode_CB_BF:\r
6390         bic z80a,z80a,#1<<31\r
6391         fetch 8\r
6392 \r
6393 ;@SET 0,B\r
6394 opcode_CB_C0:\r
6395         orr z80bc,z80bc,#1<<24\r
6396         fetch 8\r
6397 ;@SET 0,C\r
6398 opcode_CB_C1:\r
6399         orr z80bc,z80bc,#1<<16\r
6400         fetch 8\r
6401 ;@SET 0,D\r
6402 opcode_CB_C2:\r
6403         orr z80de,z80de,#1<<24\r
6404         fetch 8\r
6405 ;@SET 0,E\r
6406 opcode_CB_C3:\r
6407         orr z80de,z80de,#1<<16\r
6408         fetch 8\r
6409 ;@SET 0,H\r
6410 opcode_CB_C4:\r
6411         orr z80hl,z80hl,#1<<24\r
6412         fetch 8\r
6413 ;@SET 0,L\r
6414 opcode_CB_C5:\r
6415         orr z80hl,z80hl,#1<<16\r
6416         fetch 8\r
6417 ;@SET 0,(HL)\r
6418 opcode_CB_C6:\r
6419         opSETmemHL 0\r
6420 ;@SET 0,A\r
6421 opcode_CB_C7:\r
6422         orr z80a,z80a,#1<<24\r
6423         fetch 8\r
6424 \r
6425 ;@SET 1,B\r
6426 opcode_CB_C8:\r
6427         orr z80bc,z80bc,#1<<25\r
6428         fetch 8\r
6429 ;@SET 1,C\r
6430 opcode_CB_C9:\r
6431         orr z80bc,z80bc,#1<<17\r
6432         fetch 8\r
6433 ;@SET 1,D\r
6434 opcode_CB_CA:\r
6435         orr z80de,z80de,#1<<25\r
6436         fetch 8\r
6437 ;@SET 1,E\r
6438 opcode_CB_CB:\r
6439         orr z80de,z80de,#1<<17\r
6440         fetch 8\r
6441 ;@SET 1,H\r
6442 opcode_CB_CC:\r
6443         orr z80hl,z80hl,#1<<25\r
6444         fetch 8\r
6445 ;@SET 1,L\r
6446 opcode_CB_CD:\r
6447         orr z80hl,z80hl,#1<<17\r
6448         fetch 8\r
6449 ;@SET 1,(HL)\r
6450 opcode_CB_CE:\r
6451         opSETmemHL 1\r
6452 ;@SET 1,A\r
6453 opcode_CB_CF:\r
6454         orr z80a,z80a,#1<<25\r
6455         fetch 8\r
6456 \r
6457 ;@SET 2,B\r
6458 opcode_CB_D0:\r
6459         orr z80bc,z80bc,#1<<26\r
6460         fetch 8\r
6461 ;@SET 2,C\r
6462 opcode_CB_D1:\r
6463         orr z80bc,z80bc,#1<<18\r
6464         fetch 8\r
6465 ;@SET 2,D\r
6466 opcode_CB_D2:\r
6467         orr z80de,z80de,#1<<26\r
6468         fetch 8\r
6469 ;@SET 2,E\r
6470 opcode_CB_D3:\r
6471         orr z80de,z80de,#1<<18\r
6472         fetch 8\r
6473 ;@SET 2,H\r
6474 opcode_CB_D4:\r
6475         orr z80hl,z80hl,#1<<26\r
6476         fetch 8\r
6477 ;@SET 2,L\r
6478 opcode_CB_D5:\r
6479         orr z80hl,z80hl,#1<<18\r
6480         fetch 8\r
6481 ;@SET 2,(HL)\r
6482 opcode_CB_D6:\r
6483         opSETmemHL 2\r
6484 ;@SET 2,A\r
6485 opcode_CB_D7:\r
6486         orr z80a,z80a,#1<<26\r
6487         fetch 8\r
6488 \r
6489 ;@SET 3,B\r
6490 opcode_CB_D8:\r
6491         orr z80bc,z80bc,#1<<27\r
6492         fetch 8\r
6493 ;@SET 3,C\r
6494 opcode_CB_D9:\r
6495         orr z80bc,z80bc,#1<<19\r
6496         fetch 8\r
6497 ;@SET 3,D\r
6498 opcode_CB_DA:\r
6499         orr z80de,z80de,#1<<27\r
6500         fetch 8\r
6501 ;@SET 3,E\r
6502 opcode_CB_DB:\r
6503         orr z80de,z80de,#1<<19\r
6504         fetch 8\r
6505 ;@SET 3,H\r
6506 opcode_CB_DC:\r
6507         orr z80hl,z80hl,#1<<27\r
6508         fetch 8\r
6509 ;@SET 3,L\r
6510 opcode_CB_DD:\r
6511         orr z80hl,z80hl,#1<<19\r
6512         fetch 8\r
6513 ;@SET 3,(HL)\r
6514 opcode_CB_DE:\r
6515         opSETmemHL 3\r
6516 ;@SET 3,A\r
6517 opcode_CB_DF:\r
6518         orr z80a,z80a,#1<<27\r
6519         fetch 8\r
6520 \r
6521 ;@SET 4,B\r
6522 opcode_CB_E0:\r
6523         orr z80bc,z80bc,#1<<28\r
6524         fetch 8\r
6525 ;@SET 4,C\r
6526 opcode_CB_E1:\r
6527         orr z80bc,z80bc,#1<<20\r
6528         fetch 8\r
6529 ;@SET 4,D\r
6530 opcode_CB_E2:\r
6531         orr z80de,z80de,#1<<28\r
6532         fetch 8\r
6533 ;@SET 4,E\r
6534 opcode_CB_E3:\r
6535         orr z80de,z80de,#1<<20\r
6536         fetch 8\r
6537 ;@SET 4,H\r
6538 opcode_CB_E4:\r
6539         orr z80hl,z80hl,#1<<28\r
6540         fetch 8\r
6541 ;@SET 4,L\r
6542 opcode_CB_E5:\r
6543         orr z80hl,z80hl,#1<<20\r
6544         fetch 8\r
6545 ;@SET 4,(HL)\r
6546 opcode_CB_E6:\r
6547         opSETmemHL 4\r
6548 ;@SET 4,A\r
6549 opcode_CB_E7:\r
6550         orr z80a,z80a,#1<<28\r
6551         fetch 8\r
6552 \r
6553 ;@SET 5,B\r
6554 opcode_CB_E8:\r
6555         orr z80bc,z80bc,#1<<29\r
6556         fetch 8\r
6557 ;@SET 5,C\r
6558 opcode_CB_E9:\r
6559         orr z80bc,z80bc,#1<<21\r
6560         fetch 8\r
6561 ;@SET 5,D\r
6562 opcode_CB_EA:\r
6563         orr z80de,z80de,#1<<29\r
6564         fetch 8\r
6565 ;@SET 5,E\r
6566 opcode_CB_EB:\r
6567         orr z80de,z80de,#1<<21\r
6568         fetch 8\r
6569 ;@SET 5,H\r
6570 opcode_CB_EC:\r
6571         orr z80hl,z80hl,#1<<29\r
6572         fetch 8\r
6573 ;@SET 5,L\r
6574 opcode_CB_ED:\r
6575         orr z80hl,z80hl,#1<<21\r
6576         fetch 8\r
6577 ;@SET 5,(HL)\r
6578 opcode_CB_EE:\r
6579         opSETmemHL 5\r
6580 ;@SET 5,A\r
6581 opcode_CB_EF:\r
6582         orr z80a,z80a,#1<<29\r
6583         fetch 8\r
6584 \r
6585 ;@SET 6,B\r
6586 opcode_CB_F0:\r
6587         orr z80bc,z80bc,#1<<30\r
6588         fetch 8\r
6589 ;@SET 6,C\r
6590 opcode_CB_F1:\r
6591         orr z80bc,z80bc,#1<<22\r
6592         fetch 8\r
6593 ;@SET 6,D\r
6594 opcode_CB_F2:\r
6595         orr z80de,z80de,#1<<30\r
6596         fetch 8\r
6597 ;@SET 6,E\r
6598 opcode_CB_F3:\r
6599         orr z80de,z80de,#1<<22\r
6600         fetch 8\r
6601 ;@SET 6,H\r
6602 opcode_CB_F4:\r
6603         orr z80hl,z80hl,#1<<30\r
6604         fetch 8\r
6605 ;@SET 6,L\r
6606 opcode_CB_F5:\r
6607         orr z80hl,z80hl,#1<<22\r
6608         fetch 8\r
6609 ;@SET 6,(HL)\r
6610 opcode_CB_F6:\r
6611         opSETmemHL 6\r
6612 ;@SET 6,A\r
6613 opcode_CB_F7:\r
6614         orr z80a,z80a,#1<<30\r
6615         fetch 8\r
6616 \r
6617 ;@SET 7,B\r
6618 opcode_CB_F8:\r
6619         orr z80bc,z80bc,#1<<31\r
6620         fetch 8\r
6621 ;@SET 7,C\r
6622 opcode_CB_F9:\r
6623         orr z80bc,z80bc,#1<<23\r
6624         fetch 8\r
6625 ;@SET 7,D\r
6626 opcode_CB_FA:\r
6627         orr z80de,z80de,#1<<31\r
6628         fetch 8\r
6629 ;@SET 7,E\r
6630 opcode_CB_FB:\r
6631         orr z80de,z80de,#1<<23\r
6632         fetch 8\r
6633 ;@SET 7,H\r
6634 opcode_CB_FC:\r
6635         orr z80hl,z80hl,#1<<31\r
6636         fetch 8\r
6637 ;@SET 7,L\r
6638 opcode_CB_FD:\r
6639         orr z80hl,z80hl,#1<<23\r
6640         fetch 8\r
6641 ;@SET 7,(HL)\r
6642 opcode_CB_FE:\r
6643         opSETmemHL 7\r
6644 ;@SET 7,A\r
6645 opcode_CB_FF:\r
6646         orr z80a,z80a,#1<<31\r
6647         fetch 8\r
6648 \r
6649 \r
6650 \r
6651 ;@##################################\r
6652 ;@##################################\r
6653 ;@###  opcodes DD  #########################\r
6654 ;@##################################\r
6655 ;@##################################\r
6656 ;@Because the DD opcodes are not a complete range from 00-FF I have\r
6657 ;@created this sub routine that will catch any undocumented ops\r
6658 ;@halt the emulator and mov the current instruction to r0\r
6659 ;@at a later stage I may change to display a text message on the screen\r
6660 opcode_DD_NF:\r
6661         eatcycles 4\r
6662         ldr pc,[opcodes,r0, lsl #2]\r
6663 ;@      mov r2,#0x10*4\r
6664 ;@      cmp r2,z80xx\r
6665 ;@      bne opcode_FD_NF\r
6666 ;@      mov r0,#0xDD00\r
6667 ;@      orr r0,r0,r1\r
6668 ;@      b end_loop\r
6669 ;@opcode_FD_NF:\r
6670 ;@      mov r0,#0xFD00\r
6671 ;@      orr r0,r0,r1\r
6672 ;@      b end_loop\r
6673 opcode_DD_NF2:\r
6674         mov r0,#0xDD0000\r
6675         orr r0,r0,#0xCB00\r
6676         orr r0,r0,r1\r
6677         b end_loop\r
6678 \r
6679 ;@ADD IX,BC\r
6680 opcode_DD_09:\r
6681         ldr r0,[z80xx]\r
6682         opADD16 r0 z80bc\r
6683         str r0,[z80xx]\r
6684         fetch 15\r
6685 ;@ADD IX,DE\r
6686 opcode_DD_19:\r
6687         ldr r0,[z80xx]\r
6688         opADD16 r0 z80de\r
6689         str r0,[z80xx]\r
6690         fetch 15\r
6691 ;@LD IX,NN\r
6692 opcode_DD_21:\r
6693         ldrb r0,[z80pc],#1\r
6694         ldrb r1,[z80pc],#1\r
6695         orr r0,r0,r1, lsl #8\r
6696         strh r0,[z80xx,#2]\r
6697         fetch 14\r
6698 ;@LD (NN),IX\r
6699 opcode_DD_22:\r
6700         ldrb r0,[z80pc],#1\r
6701         ldrb r1,[z80pc],#1\r
6702         orr r1,r0,r1, lsl #8\r
6703         ldrh r0,[z80xx,#2]\r
6704         writemem16\r
6705         fetch 20\r
6706 ;@INC IX\r
6707 opcode_DD_23:\r
6708         ldr r0,[z80xx]\r
6709         add r0,r0,#1<<16\r
6710         str r0,[z80xx]\r
6711         fetch 10\r
6712 ;@INC I  (IX)\r
6713 opcode_DD_24:\r
6714         ldr r0,[z80xx]\r
6715         opINC8H r0\r
6716         str r0,[z80xx]\r
6717         fetch 8\r
6718 ;@DEC I  (IX)\r
6719 opcode_DD_25:\r
6720         ldr r0,[z80xx]\r
6721         opDEC8H r0\r
6722         str r0,[z80xx]\r
6723         fetch 8\r
6724 ;@LD I,N  (IX)\r
6725 opcode_DD_26:\r
6726         ldrb r0,[z80pc],#1\r
6727         strb r0,[z80xx,#3]\r
6728         fetch 11\r
6729 ;@ADD IX,IX\r
6730 opcode_DD_29:\r
6731         ldr r0,[z80xx]\r
6732         opADD16_2 r0\r
6733         str r0,[z80xx]\r
6734         fetch 15\r
6735 ;@LD IX,(NN)\r
6736 opcode_DD_2A:\r
6737         ldrb r0,[z80pc],#1\r
6738         ldrb r1,[z80pc],#1\r
6739         orr r0,r0,r1, lsl #8\r
6740         stmfd sp!,{z80xx}\r
6741         readmem16\r
6742         ldmfd sp!,{z80xx}\r
6743         strh r0,[z80xx,#2]\r
6744         fetch 20\r
6745 ;@DEC IX\r
6746 opcode_DD_2B:\r
6747         ldr r0,[z80xx]\r
6748         sub r0,r0,#1<<16\r
6749         str r0,[z80xx]\r
6750         fetch 10\r
6751 ;@INC X  (IX)\r
6752 opcode_DD_2C:\r
6753         ldr r0,[z80xx]\r
6754         opINC8L r0\r
6755         str r0,[z80xx]\r
6756         fetch 8\r
6757 ;@DEC X  (IX)\r
6758 opcode_DD_2D:\r
6759         ldr r0,[z80xx]\r
6760         opDEC8L r0\r
6761         str r0,[z80xx]\r
6762         fetch 8\r
6763 ;@LD X,N  (IX)\r
6764 opcode_DD_2E:\r
6765         ldrb r0,[z80pc],#1\r
6766         strb r0,[z80xx,#2]\r
6767         fetch 11\r
6768 ;@INC (IX+N)\r
6769 opcode_DD_34:\r
6770         ldrsb r0,[z80pc],#1\r
6771         ldr r1,[z80xx]\r
6772         add r0,r0,r1, lsr #16\r
6773         stmfd sp!,{r0}  ;@ save addr\r
6774         readmem8\r
6775         opINC8b\r
6776         ldmfd sp!,{r1}  ;@ restore addr into r1\r
6777         writemem8\r
6778         fetch 23\r
6779 ;@DEC (IX+N)\r
6780 opcode_DD_35:\r
6781         ldrsb r0,[z80pc],#1\r
6782         ldr r1,[z80xx]\r
6783         add r0,r0,r1, lsr #16\r
6784         stmfd sp!,{r0}  ;@ save addr\r
6785         readmem8\r
6786         opDEC8b\r
6787         ldmfd sp!,{r1}  ;@ restore addr into r1\r
6788         writemem8\r
6789         fetch 23\r
6790 ;@LD (IX+N),N\r
6791 opcode_DD_36:\r
6792         ldrsb r2,[z80pc],#1\r
6793         ldrb r0,[z80pc],#1\r
6794         ldr r1,[z80xx]\r
6795         add r1,r2,r1, lsr #16\r
6796         writemem8\r
6797         fetch 19\r
6798 ;@ADD IX,SP\r
6799 opcode_DD_39:\r
6800         ldr r0,[z80xx]\r
6801 .if FAST_Z80SP\r
6802         ldr r2,[cpucontext,#z80sp_base]\r
6803         sub r2,z80sp,r2\r
6804         opADD16s r0 r2 16\r
6805 .else\r
6806         opADD16s r0 z80sp 16\r
6807 .endif\r
6808         str r0,[z80xx]\r
6809         fetch 15\r
6810 ;@LD B,I ( IX )\r
6811 opcode_DD_44:\r
6812         ldrb r0,[z80xx,#3]\r
6813         and z80bc,z80bc,#0xFF<<16\r
6814         orr z80bc,z80bc,r0, lsl #24\r
6815         fetch 8\r
6816 ;@LD B,X ( IX )\r
6817 opcode_DD_45:\r
6818         ldrb r0,[z80xx,#2]\r
6819         and z80bc,z80bc,#0xFF<<16\r
6820         orr z80bc,z80bc,r0, lsl #24\r
6821         fetch 8\r
6822 ;@LD B,(IX,N)\r
6823 opcode_DD_46:\r
6824         ldrsb r0,[z80pc],#1\r
6825         ldr r1,[z80xx]\r
6826         add r0,r0,r1, lsr #16\r
6827         readmem8\r
6828         and z80bc,z80bc,#0xFF<<16\r
6829         orr z80bc,z80bc,r0, lsl #24\r
6830         fetch 19\r
6831 ;@LD C,I  (IX)\r
6832 opcode_DD_4C:\r
6833         ldrb r0,[z80xx,#3]\r
6834         and z80bc,z80bc,#0xFF<<24\r
6835         orr z80bc,z80bc,r0, lsl #16\r
6836         fetch 8\r
6837 ;@LD C,X  (IX)\r
6838 opcode_DD_4D:\r
6839         ldrb r0,[z80xx,#2]\r
6840         and z80bc,z80bc,#0xFF<<24\r
6841         orr z80bc,z80bc,r0, lsl #16\r
6842         fetch 8\r
6843 ;@LD C,(IX,N)\r
6844 opcode_DD_4E:\r
6845         ldrsb r0,[z80pc],#1\r
6846         ldr r1,[z80xx]\r
6847         add r0,r0,r1, lsr #16\r
6848         readmem8\r
6849         and z80bc,z80bc,#0xFF<<24\r
6850         orr z80bc,z80bc,r0, lsl #16\r
6851         fetch 19\r
6852 \r
6853 ;@LD D,I  (IX)\r
6854 opcode_DD_54:\r
6855         ldrb r0,[z80xx,#3]\r
6856         and z80de,z80de,#0xFF<<16\r
6857         orr z80de,z80de,r0, lsl #24\r
6858         fetch 8\r
6859 ;@LD D,X  (IX)\r
6860 opcode_DD_55:\r
6861         ldrb r0,[z80xx,#2]\r
6862         and z80de,z80de,#0xFF<<16\r
6863         orr z80de,z80de,r0, lsl #24\r
6864         fetch 8\r
6865 ;@LD D,(IX,N)\r
6866 opcode_DD_56:\r
6867         ldrsb r0,[z80pc],#1\r
6868         ldr r1,[z80xx]\r
6869         add r0,r0,r1, lsr #16\r
6870         readmem8\r
6871         and z80de,z80de,#0xFF<<16\r
6872         orr z80de,z80de,r0, lsl #24\r
6873         fetch 19\r
6874 ;@LD E,I  (IX)\r
6875 opcode_DD_5C:\r
6876         ldrb r0,[z80xx,#3]\r
6877         and z80de,z80de,#0xFF<<24\r
6878         orr z80de,z80de,r0, lsl #16\r
6879         fetch 8\r
6880 ;@LD E,X  (IX)\r
6881 opcode_DD_5D:\r
6882         ldrb r0,[z80xx,#2]\r
6883         and z80de,z80de,#0xFF<<24\r
6884         orr z80de,z80de,r0, lsl #16\r
6885         fetch 8\r
6886 ;@LD E,(IX,N)\r
6887 opcode_DD_5E:\r
6888         ldrsb r0,[z80pc],#1\r
6889         ldr r1,[z80xx]\r
6890         add r0,r0,r1, lsr #16\r
6891         readmem8\r
6892         and z80de,z80de,#0xFF<<24\r
6893         orr z80de,z80de,r0, lsl #16\r
6894         fetch 19\r
6895 ;@LD I,B  (IX)\r
6896 opcode_DD_60:\r
6897         mov r0,z80bc,lsr#24\r
6898         strb r0,[z80xx,#3]\r
6899         fetch 8\r
6900 ;@LD I,C  (IX)\r
6901 opcode_DD_61:\r
6902         mov r0,z80bc,lsr#16\r
6903         strb r0,[z80xx,#3]\r
6904         fetch 8\r
6905 ;@LD I,D  (IX)\r
6906 opcode_DD_62:\r
6907         mov r0,z80de,lsr#24\r
6908         strb r0,[z80xx,#3]\r
6909         fetch 8\r
6910 ;@LD I,E  (IX)\r
6911 opcode_DD_63:\r
6912         mov r0,z80de,lsr#16\r
6913         strb r0,[z80xx,#3]\r
6914         fetch 8\r
6915 ;@LD I,I  (IX)\r
6916 opcode_DD_64:\r
6917         fetch 8\r
6918 ;@LD I,X  (IX)\r
6919 opcode_DD_65:\r
6920         ldrb r0,[z80xx,#2]\r
6921         strb r0,[z80xx,#3]\r
6922         fetch 8\r
6923 ;@LD H,(IX,N)\r
6924 opcode_DD_66:\r
6925         ldrsb r0,[z80pc],#1\r
6926         ldr r1,[z80xx]\r
6927         add r0,r0,r1, lsr #16\r
6928         readmem8\r
6929         and z80hl,z80hl,#0xFF<<16\r
6930         orr z80hl,z80hl,r0, lsl #24\r
6931         fetch 19\r
6932 ;@LD I,A  (IX)\r
6933 opcode_DD_67:\r
6934         mov r0,z80a,lsr#24\r
6935         strb r0,[z80xx,#3]\r
6936         fetch 8\r
6937 ;@LD X,B  (IX)\r
6938 opcode_DD_68:\r
6939         mov r0,z80bc,lsr#24\r
6940         strb r0,[z80xx,#2]\r
6941         fetch 8\r
6942 ;@LD X,C  (IX)\r
6943 opcode_DD_69:\r
6944         mov r0,z80bc,lsr#16\r
6945         strb r0,[z80xx,#2]\r
6946         fetch 8\r
6947 ;@LD X,D  (IX)\r
6948 opcode_DD_6A:\r
6949         mov r0,z80de,lsr#24\r
6950         strb r0,[z80xx,#2]\r
6951         fetch 8\r
6952 ;@LD X,E  (IX)\r
6953 opcode_DD_6B:\r
6954         mov r0,z80de,lsr#16\r
6955         strb r0,[z80xx,#2]\r
6956         fetch 8\r
6957 ;@LD X,I  (IX)\r
6958 opcode_DD_6C:\r
6959         ldrb r0,[z80xx,#3]\r
6960         strb r0,[z80xx,#2]\r
6961         fetch 8\r
6962 ;@LD X,X  (IX)\r
6963 opcode_DD_6D:\r
6964         fetch 8\r
6965 ;@LD L,(IX,N)\r
6966 opcode_DD_6E:\r
6967         ldrsb r0,[z80pc],#1\r
6968         ldr r1,[z80xx]\r
6969         add r0,r0,r1, lsr #16\r
6970         readmem8\r
6971         and z80hl,z80hl,#0xFF<<24\r
6972         orr z80hl,z80hl,r0, lsl #16\r
6973         fetch 19\r
6974 ;@LD X,A  (IX)\r
6975 opcode_DD_6F:\r
6976         mov r0,z80a,lsr#24\r
6977         strb r0,[z80xx,#2]\r
6978         fetch 8\r
6979 \r
6980 ;@LD (IX,N),B\r
6981 opcode_DD_70:\r
6982         ldrsb r0,[z80pc],#1\r
6983         ldr r1,[z80xx]\r
6984         add r1,r0,r1, lsr #16\r
6985         mov r0,z80bc, lsr #24\r
6986         writemem8\r
6987         fetch 19\r
6988 ;@LD (IX,N),C\r
6989 opcode_DD_71:\r
6990         ldrsb r0,[z80pc],#1\r
6991         ldr r1,[z80xx]\r
6992         add r1,r0,r1, lsr #16\r
6993         mov r0,z80bc, lsr #16\r
6994         and r0,r0,#0xFF\r
6995         writemem8\r
6996         fetch 19\r
6997 ;@LD (IX,N),D\r
6998 opcode_DD_72:\r
6999         ldrsb r0,[z80pc],#1\r
7000         ldr r1,[z80xx]\r
7001         add r1,r0,r1, lsr #16\r
7002         mov r0,z80de, lsr #24\r
7003         writemem8\r
7004         fetch 19\r
7005 ;@LD (IX,N),E\r
7006 opcode_DD_73:\r
7007         ldrsb r0,[z80pc],#1\r
7008         ldr r1,[z80xx]\r
7009         add r1,r0,r1, lsr #16\r
7010         mov r0,z80de, lsr #16\r
7011         and r0,r0,#0xFF\r
7012         writemem8\r
7013         fetch 19\r
7014 ;@LD (IX,N),H\r
7015 opcode_DD_74:\r
7016         ldrsb r0,[z80pc],#1\r
7017         ldr r1,[z80xx]\r
7018         add r1,r0,r1, lsr #16\r
7019         mov r0,z80hl, lsr #24\r
7020         writemem8\r
7021         fetch 19\r
7022 ;@LD (IX,N),L\r
7023 opcode_DD_75:\r
7024         ldrsb r0,[z80pc],#1\r
7025         ldr r1,[z80xx]\r
7026         add r1,r0,r1, lsr #16\r
7027         mov r0,z80hl, lsr #16\r
7028         and r0,r0,#0xFF\r
7029         writemem8\r
7030         fetch 19\r
7031 ;@LD (IX,N),A\r
7032 opcode_DD_77:\r
7033         ldrsb r0,[z80pc],#1\r
7034         ldr r1,[z80xx]\r
7035         add r1,r0,r1, lsr #16\r
7036         mov r0,z80a, lsr #24\r
7037         writemem8\r
7038         fetch 19\r
7039 \r
7040 ;@LD A,I  from (IX)\r
7041 opcode_DD_7C:\r
7042         ldrb r0,[z80xx,#3]\r
7043         mov z80a,r0, lsl #24\r
7044         fetch 8\r
7045 ;@LD A,X  from (IX)\r
7046 opcode_DD_7D:\r
7047         ldrb r0,[z80xx,#2]\r
7048         mov z80a,r0, lsl #24\r
7049         fetch 8\r
7050 ;@LD A,(IX,N)\r
7051 opcode_DD_7E:\r
7052         ldrsb r0,[z80pc],#1\r
7053         ldr r1,[z80xx]\r
7054         add r0,r0,r1, lsr #16\r
7055         readmem8\r
7056         mov z80a,r0, lsl #24\r
7057         fetch 19\r
7058 \r
7059 ;@ADD A,I  ( IX)\r
7060 opcode_DD_84:\r
7061         ldrb r0,[z80xx,#3]\r
7062         opADDb\r
7063         fetch 8\r
7064 ;@ADD A,X  ( IX)\r
7065 opcode_DD_85:\r
7066         ldrb r0,[z80xx,#2]\r
7067         opADDb\r
7068         fetch 8\r
7069 ;@ADD A,(IX+N)\r
7070 opcode_DD_86:\r
7071         ldrsb r0,[z80pc],#1\r
7072         ldr r1,[z80xx]\r
7073         add r0,r0,r1, lsr #16\r
7074         readmem8\r
7075         opADDb\r
7076         fetch 19\r
7077 \r
7078 ;@ADC A,I  (IX)\r
7079 opcode_DD_8C:\r
7080         ldrb r0,[z80xx,#3]\r
7081         opADCb\r
7082         fetch 8\r
7083 ;@ADC A,X  (IX)\r
7084 opcode_DD_8D:\r
7085         ldrb r0,[z80xx,#2]\r
7086         opADCb\r
7087         fetch 8\r
7088 ;@ADC A,(IX+N)\r
7089 opcode_DD_8E:\r
7090         ldrsb r0,[z80pc],#1\r
7091         ldr r1,[z80xx]\r
7092         add r0,r0,r1, lsr #16\r
7093         readmem8\r
7094         opADCb\r
7095         fetch 19\r
7096 \r
7097 ;@SUB A,I  (IX)\r
7098 opcode_DD_94:\r
7099         ldrb r0,[z80xx,#3]\r
7100         opSUBb\r
7101         fetch 8\r
7102 ;@SUB A,X  (IX)\r
7103 opcode_DD_95:\r
7104         ldrb r0,[z80xx,#2]\r
7105         opSUBb\r
7106         fetch 8\r
7107 ;@SUB A,(IX+N)\r
7108 opcode_DD_96:\r
7109         ldrsb r0,[z80pc],#1\r
7110         ldr r1,[z80xx]\r
7111         add r0,r0,r1, lsr #16\r
7112         readmem8\r
7113         opSUBb\r
7114         fetch 19\r
7115 \r
7116 ;@SBC A,I  (IX)\r
7117 opcode_DD_9C:\r
7118         ldrb r0,[z80xx,#3]\r
7119         opSBCb\r
7120         fetch 8\r
7121 ;@SBC A,X  (IX)\r
7122 opcode_DD_9D:\r
7123         ldrb r0,[z80xx,#2]\r
7124         opSBCb\r
7125         fetch 8\r
7126 ;@SBC A,(IX+N)\r
7127 opcode_DD_9E:\r
7128         ldrsb r0,[z80pc],#1\r
7129         ldr r1,[z80xx]\r
7130         add r0,r0,r1, lsr #16\r
7131         readmem8\r
7132         opSBCb\r
7133         fetch 19\r
7134 \r
7135 ;@AND I  (IX)\r
7136 opcode_DD_A4:\r
7137         ldrb r0,[z80xx,#3]\r
7138         opANDb\r
7139         fetch 8\r
7140 ;@AND X  (IX)\r
7141 opcode_DD_A5:\r
7142         ldrb r0,[z80xx,#2]\r
7143         opANDb\r
7144         fetch 8\r
7145 ;@AND (IX+N)\r
7146 opcode_DD_A6:\r
7147         ldrsb r0,[z80pc],#1\r
7148         ldr r1,[z80xx]\r
7149         add r0,r0,r1, lsr #16\r
7150         readmem8\r
7151         opANDb\r
7152         fetch 19\r
7153 \r
7154 ;@XOR I  (IX)\r
7155 opcode_DD_AC:\r
7156         ldrb r0,[z80xx,#3]\r
7157         opXORb\r
7158         fetch 8\r
7159 ;@XOR X  (IX)\r
7160 opcode_DD_AD:\r
7161         ldrb r0,[z80xx,#2]\r
7162         opXORb\r
7163         fetch 8\r
7164 ;@XOR (IX+N)\r
7165 opcode_DD_AE:\r
7166         ldrsb r0,[z80pc],#1\r
7167         ldr r1,[z80xx]\r
7168         add r0,r0,r1, lsr #16\r
7169         readmem8\r
7170         opXORb\r
7171         fetch 19\r
7172 \r
7173 ;@OR I  (IX)\r
7174 opcode_DD_B4:\r
7175         ldrb r0,[z80xx,#3]\r
7176         opORb\r
7177         fetch 8\r
7178 ;@OR X  (IX)\r
7179 opcode_DD_B5:\r
7180         ldrb r0,[z80xx,#2]\r
7181         opORb\r
7182         fetch 8\r
7183 ;@OR (IX+N)\r
7184 opcode_DD_B6:\r
7185         ldrsb r0,[z80pc],#1\r
7186         ldr r1,[z80xx]\r
7187         add r0,r0,r1, lsr #16\r
7188         readmem8\r
7189         opORb\r
7190         fetch 19\r
7191 \r
7192 ;@CP I  (IX)\r
7193 opcode_DD_BC:\r
7194         ldrb r0,[z80xx,#3]\r
7195         opCPb\r
7196         fetch 8\r
7197 ;@CP X  (IX)\r
7198 opcode_DD_BD:\r
7199         ldrb r0,[z80xx,#2]\r
7200         opCPb\r
7201         fetch 8\r
7202 ;@CP (IX+N)\r
7203 opcode_DD_BE:\r
7204         ldrsb r0,[z80pc],#1\r
7205         ldr r1,[z80xx]\r
7206         add r0,r0,r1, lsr #16\r
7207         readmem8\r
7208         opCPb\r
7209         fetch 19\r
7210 \r
7211 \r
7212 opcodes_DD_CB_LOCAL: .word opcodes_DD_CB\r
7213 opcode_DD_CB:\r
7214 ;@Looks up the opcode on the opcodes_DD_CB table and then \r
7215 ;@moves the PC to the location of the subroutine\r
7216         ldrsb r0,[z80pc],#1\r
7217         ldr r1,[z80xx]\r
7218         add r0,r0,r1, lsr #16\r
7219 \r
7220         ldrb r1,[z80pc],#1\r
7221         ldr pc,[pc,r1, lsl #2]\r
7222                 .word 0x00\r
7223 opcodes_DD_CB:\r
7224                 .word opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_CB_06,opcode_DD_NF2\r
7225                 .word opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_CB_0E,opcode_DD_NF2\r
7226                 .word opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_CB_16,opcode_DD_NF2\r
7227                 .word opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_CB_1E,opcode_DD_NF2\r
7228                 .word opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_CB_26,opcode_DD_NF2\r
7229                 .word opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_CB_2E,opcode_DD_NF2\r
7230                 .word opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_CB_36,opcode_DD_NF2\r
7231                 .word opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_CB_3E,opcode_DD_NF2\r
7232                 .word opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_CB_46,opcode_DD_NF2\r
7233                 .word opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_CB_4E,opcode_DD_NF2\r
7234                 .word opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_CB_56,opcode_DD_NF2\r
7235                 .word opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_CB_5E,opcode_DD_NF2\r
7236                 .word opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_CB_66,opcode_DD_NF2\r
7237                 .word opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_CB_6E,opcode_DD_NF2\r
7238                 .word opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_CB_76,opcode_DD_NF2\r
7239                 .word opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_CB_7E,opcode_DD_NF2\r
7240                 .word opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_CB_86,opcode_DD_NF2\r
7241                 .word opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_CB_8E,opcode_DD_NF2\r
7242                 .word opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_CB_96,opcode_DD_NF2\r
7243                 .word opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_CB_9E,opcode_DD_NF2\r
7244                 .word opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_CB_A6,opcode_DD_NF2\r
7245                 .word opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_CB_AE,opcode_DD_NF2\r
7246                 .word opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_CB_B6,opcode_DD_NF2\r
7247                 .word opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_CB_BE,opcode_DD_NF2\r
7248                 .word opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_CB_C6,opcode_DD_NF2\r
7249                 .word opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_CB_CE,opcode_DD_NF2\r
7250                 .word opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_CB_D6,opcode_DD_NF2\r
7251                 .word opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_CB_DE,opcode_DD_NF2\r
7252                 .word opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_CB_E6,opcode_DD_NF2\r
7253                 .word opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_CB_EE,opcode_DD_NF2\r
7254                 .word opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_CB_F6,opcode_DD_NF2\r
7255                 .word opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_CB_FE,opcode_DD_NF2\r
7256 \r
7257 ;@RLC (IX+N) \r
7258 opcode_DD_CB_06:\r
7259         stmfd sp!,{r0}          ;@ save addr\r
7260         readmem8\r
7261         opRLCb\r
7262         ldmfd sp!,{r1}          ;@ restore addr into r1\r
7263         writemem8\r
7264         fetch 23\r
7265 ;@RRC (IX+N) \r
7266 opcode_DD_CB_0E:\r
7267         stmfd sp!,{r0}          ;@ save addr\r
7268         readmem8\r
7269         opRRCb\r
7270         ldmfd sp!,{r1}          ;@ restore addr into r1\r
7271         writemem8\r
7272         fetch 23\r
7273 ;@RL (IX+N) \r
7274 opcode_DD_CB_16:\r
7275         stmfd sp!,{r0}          ;@ save addr\r
7276         readmem8\r
7277         opRLb\r
7278         ldmfd sp!,{r1}          ;@ restore addr into r1\r
7279         writemem8\r
7280         fetch 23\r
7281 ;@RR (IX+N) \r
7282 opcode_DD_CB_1E:\r
7283         stmfd sp!,{r0}          ;@ save addr \r
7284         readmem8\r
7285         opRRb\r
7286         ldmfd sp!,{r1}          ;@ restore addr into r1\r
7287         writemem8\r
7288         fetch 23\r
7289 \r
7290 ;@SLA (IX+N) \r
7291 opcode_DD_CB_26:\r
7292         stmfd sp!,{r0}          ;@ save addr \r
7293         readmem8\r
7294         opSLAb\r
7295         ldmfd sp!,{r1}          ;@ restore addr into r1\r
7296         writemem8\r
7297         fetch 23\r
7298 ;@SRA (IX+N) \r
7299 opcode_DD_CB_2E:\r
7300         stmfd sp!,{r0}          ;@ save addr \r
7301         readmem8\r
7302         opSRAb\r
7303         ldmfd sp!,{r1}          ;@ restore addr into r1\r
7304         writemem8\r
7305         fetch 23\r
7306 ;@SLL (IX+N) \r
7307 opcode_DD_CB_36:\r
7308         stmfd sp!,{r0}          ;@ save addr \r
7309         readmem8\r
7310         opSLLb\r
7311         ldmfd sp!,{r1}          ;@ restore addr into r1\r
7312         writemem8\r
7313         fetch 23\r
7314 ;@SRL (IX+N)\r
7315 opcode_DD_CB_3E:\r
7316         stmfd sp!,{r0}          ;@ save addr \r
7317         readmem8\r
7318         opSRLb\r
7319         ldmfd sp!,{r1}          ;@ restore addr into r1\r
7320         writemem8\r
7321         fetch 23\r
7322 \r
7323 ;@BIT 0,(IX+N) \r
7324 opcode_DD_CB_46:\r
7325         readmem8\r
7326         opBITb 0\r
7327         fetch 20\r
7328 ;@BIT 1,(IX+N) \r
7329 opcode_DD_CB_4E:\r
7330         readmem8\r
7331         opBITb 1\r
7332         fetch 20\r
7333 ;@BIT 2,(IX+N) \r
7334 opcode_DD_CB_56:\r
7335         readmem8\r
7336         opBITb 2\r
7337         fetch 20\r
7338 ;@BIT 3,(IX+N) \r
7339 opcode_DD_CB_5E:\r
7340         readmem8\r
7341         opBITb 3\r
7342         fetch 20\r
7343 ;@BIT 4,(IX+N) \r
7344 opcode_DD_CB_66:\r
7345         readmem8\r
7346         opBITb 4\r
7347         fetch 20\r
7348 ;@BIT 5,(IX+N) \r
7349 opcode_DD_CB_6E:\r
7350         readmem8\r
7351         opBITb 5\r
7352         fetch 20\r
7353 ;@BIT 6,(IX+N) \r
7354 opcode_DD_CB_76:\r
7355         readmem8\r
7356         opBITb 6\r
7357         fetch 20\r
7358 ;@BIT 7,(IX+N) \r
7359 opcode_DD_CB_7E:\r
7360         readmem8\r
7361         opBIT7b\r
7362         fetch 20\r
7363 ;@RES 0,(IX+N) \r
7364 opcode_DD_CB_86:\r
7365         opRESmem 0\r
7366 ;@RES 1,(IX+N) \r
7367 opcode_DD_CB_8E:\r
7368         opRESmem 1\r
7369 ;@RES 2,(IX+N) \r
7370 opcode_DD_CB_96:\r
7371         opRESmem 2\r
7372 ;@RES 3,(IX+N) \r
7373 opcode_DD_CB_9E:\r
7374         opRESmem 3\r
7375 ;@RES 4,(IX+N) \r
7376 opcode_DD_CB_A6:\r
7377         opRESmem 4\r
7378 ;@RES 5,(IX+N) \r
7379 opcode_DD_CB_AE:\r
7380         opRESmem 5\r
7381 ;@RES 6,(IX+N) \r
7382 opcode_DD_CB_B6:\r
7383         opRESmem 6\r
7384 ;@RES 7,(IX+N) \r
7385 opcode_DD_CB_BE:\r
7386         opRESmem 7\r
7387 \r
7388 ;@SET 0,(IX+N) \r
7389 opcode_DD_CB_C6:\r
7390         opSETmem 0\r
7391 ;@SET 1,(IX+N) \r
7392 opcode_DD_CB_CE:\r
7393         opSETmem 1\r
7394 ;@SET 2,(IX+N) \r
7395 opcode_DD_CB_D6:\r
7396         opSETmem 2\r
7397 ;@SET 3,(IX+N) \r
7398 opcode_DD_CB_DE:\r
7399         opSETmem 3\r
7400 ;@SET 4,(IX+N) \r
7401 opcode_DD_CB_E6:\r
7402         opSETmem 4\r
7403 ;@SET 5,(IX+N) \r
7404 opcode_DD_CB_EE:\r
7405         opSETmem 5\r
7406 ;@SET 6,(IX+N) \r
7407 opcode_DD_CB_F6:\r
7408         opSETmem 6\r
7409 ;@SET 7,(IX+N) \r
7410 opcode_DD_CB_FE:\r
7411         opSETmem 7\r
7412 \r
7413 \r
7414 \r
7415 ;@POP IX\r
7416 opcode_DD_E1:\r
7417 .if FAST_Z80SP\r
7418         opPOP\r
7419 .else\r
7420         mov r0,z80sp\r
7421         stmfd sp!,{z80xx}\r
7422         readmem16\r
7423         ldmfd sp!,{z80xx}\r
7424         add z80sp,z80sp,#2\r
7425 .endif\r
7426         strh r0,[z80xx,#2]\r
7427         fetch 14\r
7428 ;@EX (SP),IX\r
7429 opcode_DD_E3:\r
7430 .if FAST_Z80SP\r
7431         ldrb r0,[z80sp]\r
7432         ldrb r1,[z80sp,#1]\r
7433         orr r2,r0,r1, lsl #8\r
7434         ldrh r1,[z80xx,#2]\r
7435         mov r0,r1, lsr #8\r
7436         strb r0,[z80sp,#1]\r
7437         strb r1,[z80sp]\r
7438         strh r2,[z80xx,#2]\r
7439 .else\r
7440         mov r0,z80sp\r
7441         stmfd sp!,{z80xx}\r
7442         readmem16\r
7443         ldmfd sp!,{z80xx}\r
7444         mov r2,r0\r
7445         ldrh r0,[z80xx,#2]\r
7446         strh r2,[z80xx,#2]\r
7447         mov r1,z80sp\r
7448         writemem16\r
7449 .endif\r
7450         fetch 23\r
7451 ;@PUSH IX\r
7452 opcode_DD_E5:\r
7453         ldr r2,[z80xx]\r
7454         opPUSHreg r2\r
7455         fetch 15\r
7456 ;@JP (IX)\r
7457 opcode_DD_E9:\r
7458         ldrh r0,[z80xx,#2]\r
7459         rebasepc\r
7460         fetch 8\r
7461 ;@LD SP,IX\r
7462 opcode_DD_F9:\r
7463 .if FAST_Z80SP\r
7464         ldrh r0,[z80xx,#2]\r
7465         rebasesp\r
7466         mov z80sp,r0\r
7467 .else\r
7468         ldrh z80sp,[z80xx,#2]\r
7469 .endif\r
7470         fetch 10\r
7471 \r
7472 ;@##################################\r
7473 ;@##################################\r
7474 ;@###  opcodes ED  #########################\r
7475 ;@##################################\r
7476 ;@##################################\r
7477 \r
7478 opcode_ED_NF:\r
7479         fetch 8\r
7480 ;@      ldrb r0,[z80pc],#1\r
7481 ;@      ldr pc,[opcodes,r0, lsl #2]\r
7482 ;@      mov r0,#0xED00\r
7483 ;@      orr r0,r0,r1\r
7484 ;@      b end_loop\r
7485 \r
7486 ;@IN B,(C)\r
7487 opcode_ED_40:\r
7488         opIN_C\r
7489         and z80bc,z80bc,#0xFF<<16\r
7490         orr z80bc,z80bc,r0, lsl #24\r
7491         sub r1,opcodes,#0x100\r
7492         ldrb r0,[r1,r0]\r
7493         and z80f,z80f,#1<<CFlag\r
7494         orr z80f,z80f,r0\r
7495         fetch 12\r
7496 ;@OUT (C),B\r
7497 opcode_ED_41:\r
7498         mov r1,z80bc, lsr #24\r
7499         opOUT_C\r
7500         fetch 12\r
7501 \r
7502 ;@SBC HL,BC\r
7503 opcode_ED_42:\r
7504         opSBC16 z80bc\r
7505 \r
7506 ;@LD (NN),BC\r
7507 opcode_ED_43:\r
7508         ldrb r0,[z80pc],#1\r
7509         ldrb r1,[z80pc],#1\r
7510         orr r1,r0,r1, lsl #8\r
7511         mov r0,z80bc, lsr #16\r
7512         writemem16\r
7513         fetch 20\r
7514 ;@NEG\r
7515 opcode_ED_44:\r
7516         rsbs z80a,z80a,#0\r
7517         mrs z80f,cpsr\r
7518         mov z80f,z80f,lsr#28                                    ;@S,Z,V&C\r
7519         eor z80f,z80f,#(1<<CFlag)|(1<<NFlag)    ;@invert C and set n.\r
7520         tst z80a,#0x0F000000                                    ;@H, correct\r
7521         orrne z80f,z80f,#1<<HFlag\r
7522         fetch 8\r
7523  \r
7524 ;@RETN, moved to ED_4D\r
7525 ;@opcode_ED_45:\r
7526 \r
7527 ;@IM 0\r
7528 opcode_ED_46:\r
7529         strb z80a,[cpucontext,#z80im]\r
7530         fetch 8\r
7531 ;@LD I,A\r
7532 opcode_ED_47:\r
7533         str z80a,[cpucontext,#z80i]\r
7534         fetch 9\r
7535 ;@IN C,(C)\r
7536 opcode_ED_48:\r
7537         opIN_C\r
7538         and z80bc,z80bc,#0xFF<<24\r
7539         orr z80bc,z80bc,r0, lsl #16\r
7540         sub r1,opcodes,#0x100\r
7541         ldrb r0,[r1,r0]\r
7542         and z80f,z80f,#1<<CFlag\r
7543         orr z80f,z80f,r0\r
7544         fetch 12\r
7545 ;@OUT (C),C\r
7546 opcode_ED_49:\r
7547         mov r0,z80bc, lsr #16\r
7548         and r1,r0,#0xFF\r
7549         opOUT\r
7550         fetch 12\r
7551 ;@ADC HL,BC\r
7552 opcode_ED_4A:\r
7553         opADC16 z80bc\r
7554 ;@LD BC,(NN)\r
7555 opcode_ED_4B:\r
7556         ldrb r0,[z80pc],#1\r
7557         ldrb r1,[z80pc],#1\r
7558         orr r0,r0,r1, lsl #8\r
7559         readmem16\r
7560         mov z80bc,r0, lsl #16\r
7561         fetch 20\r
7562 \r
7563 ;@RETN\r
7564 opcode_ED_45:\r
7565 ;@RETI\r
7566 opcode_ED_4D:\r
7567         ldrb r0,[cpucontext,#z80if]\r
7568         tst r0,#Z80_IF2\r
7569         orrne r0,r0,#Z80_IF1\r
7570         biceq r0,r0,#Z80_IF1\r
7571         strb r0,[cpucontext,#z80if]\r
7572     opPOP\r
7573         rebasepc\r
7574         fetch 14\r
7575 \r
7576 ;@LD R,A\r
7577 opcode_ED_4F:\r
7578         mov r0,z80a,lsr#24\r
7579         strb r0,[cpucontext,#z80r]\r
7580         fetch 9\r
7581 \r
7582 ;@IN D,(C)\r
7583 opcode_ED_50:\r
7584         opIN_C\r
7585         and z80de,z80de,#0xFF<<16\r
7586         orr z80de,z80de,r0, lsl #24\r
7587         sub r1,opcodes,#0x100\r
7588         ldrb r0,[r1,r0]\r
7589         and z80f,z80f,#1<<CFlag\r
7590         orr z80f,z80f,r0\r
7591         fetch 12\r
7592 ;@OUT (C),D\r
7593 opcode_ED_51:\r
7594         mov r1,z80de, lsr #24\r
7595         opOUT_C\r
7596         fetch 12\r
7597 ;@SBC HL,DE\r
7598 opcode_ED_52:\r
7599         opSBC16 z80de\r
7600 ;@LD (NN),DE\r
7601 opcode_ED_53:\r
7602         ldrb r0,[z80pc],#1\r
7603         ldrb r1,[z80pc],#1\r
7604         orr r1,r0,r1, lsl #8\r
7605         mov r0,z80de, lsr #16\r
7606         writemem16\r
7607         fetch 20\r
7608 ;@IM 1\r
7609 opcode_ED_56:\r
7610         mov r0,#1\r
7611         strb r0,[cpucontext,#z80im]\r
7612         fetch 8\r
7613 ;@LD A,I\r
7614 opcode_ED_57:\r
7615         ldr z80a,[cpucontext,#z80i]\r
7616         tst z80a,#0xFF000000\r
7617         and z80f,z80f,#(1<<CFlag)\r
7618         orreq z80f,z80f,#(1<<ZFlag)\r
7619         orrmi z80f,z80f,#(1<<SFlag)\r
7620         ldrb r0,[cpucontext,#z80if]\r
7621         tst r0,#Z80_IF2\r
7622         orrne z80f,z80f,#(1<<VFlag)\r
7623         fetch 9\r
7624 ;@IN E,(C)\r
7625 opcode_ED_58:\r
7626         opIN_C\r
7627         and z80de,z80de,#0xFF<<24\r
7628         orr z80de,z80de,r0, lsl #16\r
7629         sub r1,opcodes,#0x100\r
7630         ldrb r0,[r1,r0]\r
7631         and z80f,z80f,#1<<CFlag\r
7632         orr z80f,z80f,r0\r
7633         fetch 12\r
7634 ;@OUT (C),E\r
7635 opcode_ED_59:\r
7636         mov r1,z80de, lsr #16\r
7637         and r1,r1,#0xFF\r
7638         opOUT_C\r
7639         fetch 12\r
7640 ;@ADC HL,DE\r
7641 opcode_ED_5A:\r
7642         opADC16 z80de\r
7643 ;@LD DE,(NN)\r
7644 opcode_ED_5B:\r
7645         ldrb r0,[z80pc],#1\r
7646         ldrb r1,[z80pc],#1\r
7647         orr r0,r0,r1, lsl #8\r
7648         readmem16\r
7649         mov z80de,r0, lsl #16\r
7650         fetch 20\r
7651 ;@IM 2\r
7652 opcode_ED_5E:\r
7653         mov r0,#2\r
7654         strb r0,[cpucontext,#z80im]\r
7655         fetch 8\r
7656 ;@LD A,R\r
7657 opcode_ED_5F:\r
7658         ldrb r0,[cpucontext,#z80r]\r
7659         and r0,r0,#0x80\r
7660         rsb r1,z80_icount,#0\r
7661         and r1,r1,#0x7F\r
7662         orr r0,r0,r1\r
7663         movs z80a,r0, lsl #24\r
7664         and z80f,z80f,#1<<CFlag\r
7665         orrmi z80f,z80f,#(1<<SFlag)\r
7666         orreq z80f,z80f,#(1<<ZFlag)\r
7667         ldrb r0,[cpucontext,#z80if]\r
7668         tst r0,#Z80_IF2\r
7669         orrne z80f,z80f,#(1<<VFlag)\r
7670         fetch 9\r
7671 ;@IN H,(C)\r
7672 opcode_ED_60:\r
7673         opIN_C\r
7674         and z80hl,z80hl,#0xFF<<16\r
7675         orr z80hl,z80hl,r0, lsl #24\r
7676         sub r1,opcodes,#0x100\r
7677         ldrb r0,[r1,r0]\r
7678         and z80f,z80f,#1<<CFlag\r
7679         orr z80f,z80f,r0\r
7680         fetch 12\r
7681 ;@OUT (C),H\r
7682 opcode_ED_61:\r
7683         mov r1,z80hl, lsr #24\r
7684         opOUT_C\r
7685         fetch 12\r
7686 ;@SBC HL,HL\r
7687 opcode_ED_62:\r
7688         opSBC16HL\r
7689 ;@RRD\r
7690 opcode_ED_67:\r
7691         readmem8HL\r
7692         mov r1,r0,ror#4\r
7693         orr r0,r1,z80a,lsr#20\r
7694         bic z80a,z80a,#0x0F000000\r
7695         orr z80a,z80a,r1,lsr#4\r
7696         writemem8HL\r
7697         sub r1,opcodes,#0x100\r
7698         ldrb r0,[r1,z80a, lsr #24]\r
7699         and z80f,z80f,#1<<CFlag\r
7700         orr z80f,z80f,r0\r
7701         fetch 18\r
7702 ;@IN L,(C)\r
7703 opcode_ED_68:\r
7704         opIN_C\r
7705         and z80hl,z80hl,#0xFF<<24\r
7706         orr z80hl,z80hl,r0, lsl #16\r
7707         and z80f,z80f,#1<<CFlag\r
7708         sub r1,opcodes,#0x100\r
7709         ldrb r0,[r1,r0]\r
7710         orr z80f,z80f,r0\r
7711         fetch 12\r
7712 ;@OUT (C),L\r
7713 opcode_ED_69:\r
7714         mov r1,z80hl, lsr #16\r
7715         and r1,r1,#0xFF\r
7716         opOUT_C\r
7717         fetch 12\r
7718 ;@ADC HL,HL\r
7719 opcode_ED_6A:\r
7720         opADC16HL\r
7721 ;@RLD\r
7722 opcode_ED_6F:\r
7723         readmem8HL\r
7724         orr r0,r0,z80a,lsl#4\r
7725         mov r0,r0,ror#28\r
7726         and z80a,z80a,#0xF0000000\r
7727         orr z80a,z80a,r0,lsl#16\r
7728         and z80a,z80a,#0xFF000000\r
7729         writemem8HL\r
7730         sub r1,opcodes,#0x100\r
7731         ldrb r0,[r1,z80a, lsr #24]\r
7732         and z80f,z80f,#1<<CFlag\r
7733         orr z80f,z80f,r0\r
7734         fetch 18\r
7735 ;@IN F,(C)\r
7736 opcode_ED_70:\r
7737         opIN_C\r
7738         and z80f,z80f,#1<<CFlag\r
7739         sub r1,opcodes,#0x100\r
7740         ldrb r0,[r1,r0]\r
7741         orr z80f,z80f,r0\r
7742         fetch 12\r
7743 ;@OUT (C),0\r
7744 opcode_ED_71:\r
7745         mov r1,#0\r
7746         opOUT_C\r
7747         fetch 12\r
7748 \r
7749 ;@SBC HL,SP\r
7750 opcode_ED_72:\r
7751 .if FAST_Z80SP\r
7752         ldr r0,[cpucontext,#z80sp_base]\r
7753         sub r0,z80sp,r0\r
7754         mov r0, r0, lsl #16\r
7755 .else\r
7756         mov r0,z80sp,lsl#16\r
7757 .endif\r
7758         opSBC16 r0\r
7759 ;@LD (NN),SP\r
7760 opcode_ED_73:\r
7761         ldrb r0,[z80pc],#1\r
7762         ldrb r1,[z80pc],#1\r
7763         orr r1,r0,r1, lsl #8\r
7764 .if FAST_Z80SP\r
7765         ldr r0,[cpucontext,#z80sp_base]\r
7766         sub r0,z80sp,r0\r
7767 .else\r
7768         mov r0,z80sp\r
7769 .endif\r
7770         writemem16\r
7771         fetch 16\r
7772 ;@IN A,(C)\r
7773 opcode_ED_78:\r
7774         opIN_C\r
7775         mov z80a,r0, lsl #24\r
7776         and z80f,z80f,#1<<CFlag\r
7777         sub r1,opcodes,#0x100\r
7778         ldrb r0,[r1,r0]\r
7779         orr z80f,z80f,r0\r
7780         fetch 12\r
7781 ;@OUT (C),A\r
7782 opcode_ED_79:\r
7783         mov r1,z80a, lsr #24\r
7784         opOUT_C\r
7785         fetch 12\r
7786 ;@ADC HL,SP\r
7787 opcode_ED_7A:\r
7788 .if FAST_Z80SP\r
7789         ldr r0,[cpucontext,#z80sp_base]\r
7790         sub r0,z80sp,r0\r
7791         mov r0, r0, lsl #16\r
7792 .else\r
7793         mov r0,z80sp,lsl#16\r
7794 .endif\r
7795         opADC16 r0\r
7796 ;@LD SP,(NN)\r
7797 opcode_ED_7B:\r
7798         ldrb r0,[z80pc],#1\r
7799         ldrb r1,[z80pc],#1\r
7800         orr r0,r0,r1, lsl #8\r
7801         readmem16\r
7802 .if FAST_Z80SP\r
7803         rebasesp\r
7804 .endif\r
7805         mov z80sp,r0\r
7806         fetch 20\r
7807 ;@LDI\r
7808 opcode_ED_A0:\r
7809         copymem8HL_DE\r
7810         add z80hl,z80hl,#1<<16\r
7811         add z80de,z80de,#1<<16\r
7812         subs z80bc,z80bc,#1<<16\r
7813         bic z80f,z80f,#(1<<VFlag)|(1<<NFlag)|(1<<HFlag)\r
7814         orrne z80f,z80f,#1<<VFlag\r
7815         fetch 16\r
7816 ;@CPI\r
7817 opcode_ED_A1:\r
7818         readmem8HL\r
7819         add z80hl,z80hl,#0x00010000\r
7820         mov r1,z80a,lsl#4\r
7821         cmp z80a,r0,lsl#24\r
7822         and z80f,z80f,#1<<CFlag\r
7823         orr z80f,z80f,#1<<NFlag\r
7824         orrmi z80f,z80f,#1<<SFlag\r
7825         orreq z80f,z80f,#1<<ZFlag\r
7826         cmp r1,r0,lsl#28\r
7827         orrcc z80f,z80f,#1<<HFlag\r
7828         subs z80bc,z80bc,#0x00010000\r
7829         orrne z80f,z80f,#1<<VFlag\r
7830         fetch 16\r
7831 ;@INI\r
7832 opcode_ED_A2:\r
7833         opIN_C\r
7834         and z80f,r0,#0x80\r
7835         mov z80f,z80f,lsr#2                                             ;@NFlag set by bit 7\r
7836 ;@      mov r1,z80bc,lsl#8\r
7837 ;@      add r1,r1,#0x01000000\r
7838 ;@      adds r1,r1,r0,lsl#24\r
7839 ;@      orrcs z80f,z80f,#(1<<CFlag)|(1<<HFlag)  ;@ CF & HF set if (HL) + ((C+1) & 0xFF) > 0xFF\r
7840         writemem8HL\r
7841         add z80hl,z80hl,#1<<16\r
7842         sub z80bc,z80bc,#1<<24\r
7843         tst z80bc,#0xFF<<24\r
7844         orrmi z80f,z80f,#1<<SFlag\r
7845         orreq z80f,z80f,#1<<ZFlag\r
7846         fetch 16\r
7847 \r
7848 ;@OUTI\r
7849 opcode_ED_A3:\r
7850         readmem8HL\r
7851         add z80hl,z80hl,#1<<16\r
7852         and z80f,r0,#0x80\r
7853         mov z80f,z80f,lsr#2                                             ;@NFlag set by bit 7\r
7854         mov r1,z80hl,lsl#8\r
7855         adds r1,r1,r0,lsl#24\r
7856         orrcs z80f,z80f,#(1<<CFlag)|(1<<HFlag)  ;@ CF & HF set if (HL)+L > 0xFF\r
7857         sub z80bc,z80bc,#1<<24\r
7858         tst z80bc,#0xFF<<24\r
7859         orrmi z80f,z80f,#1<<SFlag\r
7860         orreq z80f,z80f,#1<<ZFlag\r
7861         mov r1,r0\r
7862         opOUT_C\r
7863         fetch 16\r
7864 \r
7865 ;@LDD\r
7866 opcode_ED_A8:\r
7867         copymem8HL_DE\r
7868         sub z80hl,z80hl,#1<<16\r
7869         sub z80de,z80de,#1<<16\r
7870         subs z80bc,z80bc,#1<<16\r
7871         bic z80f,z80f,#(1<<VFlag)|(1<<NFlag)|(1<<HFlag)\r
7872         orrne z80f,z80f,#1<<VFlag\r
7873         fetch 16\r
7874 \r
7875 ;@CPD\r
7876 opcode_ED_A9:\r
7877         readmem8HL\r
7878         sub z80hl,z80hl,#1<<16\r
7879         mov r1,z80a,lsl#4\r
7880         cmp z80a,r0,lsl#24\r
7881         and z80f,z80f,#1<<CFlag\r
7882         orr z80f,z80f,#1<<NFlag\r
7883         orrmi z80f,z80f,#1<<SFlag\r
7884         orreq z80f,z80f,#1<<ZFlag\r
7885         cmp r1,r0,lsl#28\r
7886         orrcc z80f,z80f,#1<<HFlag\r
7887         subs z80bc,z80bc,#0x00010000\r
7888         orrne z80f,z80f,#1<<VFlag\r
7889         fetch 16\r
7890 \r
7891 ;@IND\r
7892 opcode_ED_AA:\r
7893         opIN_C\r
7894         and z80f,r0,#0x80\r
7895         mov z80f,z80f,lsr#2                                             ;@NFlag set by bit 7\r
7896 ;@      mov r1,z80bc,lsl#8\r
7897 ;@      sub r1,r1,#0x01000000\r
7898 ;@      adds r1,r1,r0,lsl#24\r
7899 ;@      orrcs z80f,z80f,#(1<<CFlag)|(1<<HFlag)  ;@ CF & HF set if (HL) + ((C-1) & 0xFF) > 0xFF\r
7900         writemem8HL\r
7901         sub z80hl,z80hl,#1<<16\r
7902         sub z80bc,z80bc,#1<<24\r
7903         tst z80bc,#0xFF<<24\r
7904         orrmi z80f,z80f,#1<<SFlag\r
7905         orreq z80f,z80f,#1<<ZFlag\r
7906         fetch 16\r
7907 \r
7908 ;@OUTD\r
7909 opcode_ED_AB:\r
7910         readmem8HL\r
7911         sub z80hl,z80hl,#1<<16\r
7912         and z80f,r0,#0x80\r
7913         mov z80f,z80f,lsr#2                                             ;@NFlag set by bit 7\r
7914         mov r1,z80hl,lsl#8\r
7915         adds r1,r1,r0,lsl#24\r
7916         orrcs z80f,z80f,#(1<<CFlag)|(1<<HFlag)  ;@ CF & HF set if r0+HL > 0xFF\r
7917         sub z80bc,z80bc,#1<<24\r
7918         tst z80bc,#0xFF<<24\r
7919         orrmi z80f,z80f,#1<<SFlag\r
7920         orreq z80f,z80f,#1<<ZFlag\r
7921         mov r1,r0\r
7922         opOUT_C\r
7923         fetch 16\r
7924 ;@LDIR\r
7925 opcode_ED_B0:\r
7926         copymem8HL_DE\r
7927         add z80hl,z80hl,#1<<16\r
7928         add z80de,z80de,#1<<16\r
7929         subs z80bc,z80bc,#1<<16\r
7930         bic z80f,z80f,#(1<<VFlag)|(1<<NFlag)|(1<<HFlag)\r
7931         orrne z80f,z80f,#1<<VFlag\r
7932         subne z80pc,z80pc,#2\r
7933         subne z80_icount,z80_icount,#5\r
7934         fetch 16\r
7935 \r
7936 ;@CPIR\r
7937 opcode_ED_B1:\r
7938         readmem8HL\r
7939         add z80hl,z80hl,#1<<16    \r
7940         mov r1,z80a,lsl#4\r
7941         cmp z80a,r0,lsl#24\r
7942         and z80f,z80f,#1<<CFlag\r
7943         orr z80f,z80f,#1<<NFlag\r
7944         orrmi z80f,z80f,#1<<SFlag\r
7945         orreq z80f,z80f,#1<<ZFlag\r
7946         cmp r1,r0,lsl#28\r
7947         orrcc z80f,z80f,#1<<HFlag\r
7948         subs z80bc,z80bc,#1<<16\r
7949         bne opcode_ED_B1_decpc\r
7950         fetch 16\r
7951 opcode_ED_B1_decpc:\r
7952         orr z80f,z80f,#1<<VFlag\r
7953         tst z80f,#1<<ZFlag\r
7954         subeq z80pc,z80pc,#2\r
7955         subeq z80_icount,z80_icount,#5\r
7956         fetch 16\r
7957 ;@INIR\r
7958 opcode_ED_B2:\r
7959         opIN_C\r
7960         and z80f,r0,#0x80\r
7961         mov z80f,z80f,lsr#2                                             ;@NFlag set by bit 7\r
7962 ;@      mov r1,z80bc,lsl#8\r
7963 ;@      add r1,r1,#0x01000000\r
7964 ;@      adds r1,r1,r0,lsl#24\r
7965 ;@      orrcs z80f,z80f,#(1<<CFlag)|(1<<HFlag)  ;@ CF & HF set if (HL) + ((C+1) & 0xFF) > 0xFF\r
7966         writemem8HL\r
7967         add z80hl,z80hl,#1<<16\r
7968         sub z80bc,z80bc,#1<<24\r
7969         tst z80bc,#0xFF<<24\r
7970         orrmi z80f,z80f,#1<<SFlag\r
7971         orreq z80f,z80f,#1<<ZFlag\r
7972         subne z80pc,z80pc,#2\r
7973         subne z80_icount,z80_icount,#5\r
7974         fetch 16\r
7975 ;@OTIR\r
7976 opcode_ED_B3:\r
7977         readmem8HL\r
7978         add z80hl,z80hl,#1<<16\r
7979         and z80f,r0,#0x80\r
7980         mov z80f,z80f,lsr#2                                             ;@NFlag set by bit 7\r
7981         mov r1,z80hl,lsl#8\r
7982         adds r1,r1,r0,lsl#24\r
7983         orrcs z80f,z80f,#(1<<CFlag)|(1<<HFlag)  ;@ CF & HF set if r0+HL > 0xFF\r
7984         sub z80bc,z80bc,#1<<24\r
7985         tst z80bc,#0xFF<<24\r
7986         orrmi z80f,z80f,#1<<SFlag\r
7987         orreq z80f,z80f,#1<<ZFlag\r
7988         subne z80pc,z80pc,#2\r
7989         subne z80_icount,z80_icount,#5\r
7990         mov r1,r0\r
7991         opOUT_C\r
7992         fetch 16\r
7993 ;@LDDR\r
7994 opcode_ED_B8:\r
7995         copymem8HL_DE\r
7996         sub z80hl,z80hl,#1<<16\r
7997         sub z80de,z80de,#1<<16\r
7998         subs z80bc,z80bc,#1<<16\r
7999         bic z80f,z80f,#(1<<VFlag)|(1<<NFlag)|(1<<HFlag)\r
8000         orrne z80f,z80f,#1<<VFlag\r
8001         subne z80pc,z80pc,#2\r
8002         subne z80_icount,z80_icount,#5\r
8003         fetch 16\r
8004 \r
8005 ;@CPDR\r
8006 opcode_ED_B9:\r
8007         readmem8HL\r
8008         sub z80hl,z80hl,#1<<16\r
8009         mov r1,z80a,lsl#4\r
8010         cmp z80a,r0,lsl#24\r
8011         and z80f,z80f,#1<<CFlag\r
8012         orr z80f,z80f,#1<<NFlag\r
8013         orrmi z80f,z80f,#1<<SFlag\r
8014         orreq z80f,z80f,#1<<ZFlag\r
8015         cmp r1,r0,lsl#28\r
8016         orrcc z80f,z80f,#1<<HFlag\r
8017         subs z80bc,z80bc,#1<<16\r
8018         bne opcode_ED_B9_decpc\r
8019         fetch 16\r
8020 opcode_ED_B9_decpc:\r
8021         orr z80f,z80f,#1<<VFlag\r
8022         tst z80f,#1<<ZFlag\r
8023         subeq z80pc,z80pc,#2\r
8024         subeq z80_icount,z80_icount,#5\r
8025         fetch 16\r
8026 ;@INDR\r
8027 opcode_ED_BA:\r
8028         opIN_C\r
8029         and z80f,r0,#0x80\r
8030         mov z80f,z80f,lsr#2                                             ;@NFlag set by bit 7\r
8031 ;@      mov r1,z80bc,lsl#8\r
8032 ;@      sub r1,r1,#0x01000000\r
8033 ;@      adds r1,r1,r0,lsl#24\r
8034 ;@      orrcs z80f,z80f,#(1<<CFlag)|(1<<HFlag)  ;@ CF & HF set if (HL) + ((C-1) & 0xFF) > 0xFF\r
8035         writemem8HL\r
8036         sub z80hl,z80hl,#1<<16\r
8037         sub z80bc,z80bc,#1<<24\r
8038         tst z80bc,#0xFF<<24\r
8039         orrmi z80f,z80f,#1<<SFlag\r
8040         orreq z80f,z80f,#1<<ZFlag\r
8041         subne z80pc,z80pc,#2\r
8042         subne z80_icount,z80_icount,#5\r
8043         fetch 16\r
8044 ;@OTDR\r
8045 opcode_ED_BB:\r
8046         readmem8HL\r
8047         sub z80hl,z80hl,#1<<16\r
8048         and z80f,r0,#0x80\r
8049         mov z80f,z80f,lsr#2                                             ;@NFlag set by bit 7\r
8050         mov r1,z80hl,lsl#8\r
8051         adds r1,r1,r0,lsl#24\r
8052         orrcs z80f,z80f,#(1<<CFlag)|(1<<HFlag)  ;@ CF & HF set if r0+HL > 0xFF\r
8053         sub z80bc,z80bc,#1<<24\r
8054         tst z80bc,#0xFF<<24\r
8055         orrmi z80f,z80f,#1<<SFlag\r
8056         orreq z80f,z80f,#1<<ZFlag\r
8057         subne z80pc,z80pc,#2\r
8058         subne z80_icount,z80_icount,#5\r
8059         mov r1,r0\r
8060         opOUT_C\r
8061         fetch 16\r
8062 ;@##################################\r
8063 ;@##################################\r
8064 ;@###  opcodes FD  #########################\r
8065 ;@##################################\r
8066 ;@##################################\r
8067 ;@Since DD and FD opcodes are all the same apart from the address\r
8068 ;@register they use.  When a FD intruction the program runs the code\r
8069 ;@from the DD location but the address of the IY reg is passed instead\r
8070 ;@of IX\r
8071 \r
8072 end_loop:\r
8073      b end_loop\r
8074 \r
8075 \r
8076 \r