drZ80 separation finished, related bugs fixed
[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_XMAP,             1\r
18       .equiv DRZ80_XMAP_MORE_INLINE, 1\r
19 \r
20 .if DRZ80_XMAP\r
21       .equ Z80_MEM_SHIFT, 13\r
22       ;@ note: stack is locked in single bank that z80sp_base points to\r
23 .endif\r
24 \r
25 .if INTERRUPT_MODE\r
26       .extern Interrupt\r
27 .endif\r
28 \r
29 DrZ80Ver: .long 0x0001\r
30 \r
31 ;@ --------------------------- Defines ----------------------------\r
32 ;@ Make sure that regs/pointers for z80pc to z80sp match up!\r
33 \r
34         z80_icount .req r3\r
35         opcodes    .req r4\r
36         cpucontext .req r5\r
37         z80pc      .req r6\r
38         z80a       .req r7\r
39         z80f       .req r8\r
40         z80bc      .req r9\r
41         z80de      .req r10\r
42         z80hl      .req r11\r
43         z80sp      .req r12     \r
44         z80xx      .req lr\r
45 \r
46         .equ z80pc_pointer,           0                  ;@  0\r
47         .equ z80a_pointer,            z80pc_pointer+4    ;@  4\r
48         .equ z80f_pointer,            z80a_pointer+4     ;@  8\r
49         .equ z80bc_pointer,           z80f_pointer+4     ;@  \r
50         .equ z80de_pointer,           z80bc_pointer+4\r
51         .equ z80hl_pointer,           z80de_pointer+4\r
52         .equ z80sp_pointer,           z80hl_pointer+4\r
53         .equ z80pc_base,              z80sp_pointer+4\r
54         .equ z80sp_base,              z80pc_base+4\r
55         .equ z80ix,                   z80sp_base+4\r
56         .equ z80iy,                   z80ix+4\r
57         .equ z80i,                    z80iy+4\r
58         .equ z80a2,                   z80i+4\r
59         .equ z80f2,                   z80a2+4\r
60         .equ z80bc2,                  z80f2+4\r
61         .equ z80de2,                  z80bc2+4\r
62         .equ z80hl2,                  z80de2+4\r
63         .equ cycles_pointer,          z80hl2+4     \r
64         .equ previouspc,              cycles_pointer+4     \r
65         .equ z80irq,                  previouspc+4\r
66         .equ z80if,                   z80irq+1\r
67         .equ z80im,                   z80if+1\r
68         .equ z80r,                    z80im+1\r
69         .equ z80irqvector,            z80r+1\r
70         .equ z80irqcallback,          z80irqvector+4\r
71         .equ z80_write8,              z80irqcallback+4\r
72         .equ z80_write16,             z80_write8+4\r
73         .equ z80_in,                  z80_write16+4\r
74         .equ z80_out,                 z80_in+4\r
75         .equ z80_read8,               z80_out+4\r
76         .equ z80_read16,              z80_read8+4\r
77         .equ z80_rebaseSP,            z80_read16+4\r
78         .equ z80_rebasePC,            z80_rebaseSP+4\r
79 \r
80         .equ VFlag, 0\r
81         .equ CFlag, 1\r
82         .equ ZFlag, 2\r
83         .equ SFlag, 3\r
84         .equ HFlag, 4\r
85         .equ NFlag, 5\r
86         .equ Flag3, 6\r
87         .equ Flag5, 7\r
88 \r
89         .equ Z80_CFlag, 0\r
90         .equ Z80_NFlag, 1\r
91         .equ Z80_VFlag, 2\r
92         .equ Z80_Flag3, 3\r
93         .equ Z80_HFlag, 4\r
94         .equ Z80_Flag5, 5\r
95         .equ Z80_ZFlag, 6\r
96         .equ Z80_SFlag, 7\r
97 \r
98         .equ Z80_IF1, 1<<0\r
99         .equ Z80_IF2, 1<<1\r
100         .equ Z80_HALT, 1<<2\r
101 \r
102 ;@---------------------------------------\r
103 \r
104 .text\r
105 \r
106 .if DRZ80_XMAP\r
107 \r
108 z80_xmap_read8: @ addr\r
109     ldr r1,[cpucontext,#z80_read8]\r
110     mov r2,r0,lsr #Z80_MEM_SHIFT\r
111     ldr r1,[r1,r2,lsl #2]\r
112     movs r1,r1,lsl #1\r
113     ldrccb r0,[r1,r0]\r
114     bxcc lr\r
115 \r
116 z80_xmap_read8_handler: @ addr, func\r
117     str z80_icount,[cpucontext,#cycles_pointer]\r
118     stmfd sp!,{r12,lr}\r
119     mov lr,pc\r
120     bx r1\r
121     ldr z80_icount,[cpucontext,#cycles_pointer]\r
122     ldmfd sp!,{r12,pc}\r
123 \r
124 z80_xmap_write8: @ data, addr\r
125     ldr r2,[cpucontext,#z80_write8]\r
126     add r2,r2,r1,lsr #Z80_MEM_SHIFT-2\r
127     bic r2,r2,#3\r
128     ldr r2,[r2]\r
129     movs r2,r2,lsl #1\r
130     strccb r0,[r2,r1]\r
131     bxcc lr\r
132 \r
133 z80_xmap_write8_handler: @ data, addr, func\r
134     str z80_icount,[cpucontext,#cycles_pointer]\r
135     mov r3,r0\r
136     mov r0,r1\r
137     mov r1,r3\r
138     stmfd sp!,{r12,lr}\r
139     mov lr,pc\r
140     bx r2\r
141     ldr z80_icount,[cpucontext,#cycles_pointer]\r
142     ldmfd sp!,{r12,pc}\r
143 \r
144 z80_xmap_read16: @ addr\r
145     @ check if we cross bank boundary\r
146     add r1,r0,#1\r
147     eor r1,r0,r0\r
148     tst r1,#1<<Z80_MEM_SHIFT\r
149     bne 0f\r
150 \r
151     ldr r1,[cpucontext,#z80_read8]\r
152     mov r2,r0,lsr #Z80_MEM_SHIFT\r
153     ldr r1,[r1,r2,lsl #2]\r
154     movs r1,r1,lsl #1\r
155     bcs 0f\r
156     ldrb r0,[r1,r0]!\r
157     ldrb r1,[r1,#1]\r
158     orr r0,r0,r1,lsl #8\r
159     bx lr\r
160 \r
161 0:\r
162     @ z80_xmap_read8 will save r3 and r12 for us\r
163     stmfd sp!,{r8,r9,lr}\r
164     mov r8,r0\r
165     bl z80_xmap_read8\r
166     mov r9,r0\r
167     add r0,r8,#1\r
168     bl z80_xmap_read8\r
169     orr r0,r9,r0,lsl #8\r
170     ldmfd sp!,{r8,r9,pc}\r
171 \r
172 z80_xmap_write16: @ data, addr\r
173     add r2,r1,#1\r
174     eor r2,r1,r1\r
175     tst r2,#1<<Z80_MEM_SHIFT\r
176     bne 0f\r
177 \r
178     ldr r2,[cpucontext,#z80_read8]\r
179     add r2,r2,r1,lsr #Z80_MEM_SHIFT-2\r
180     bic r2,r2,#3\r
181     ldr r2,[r2]\r
182     movs r2,r2,lsl #1\r
183     bcs 0f\r
184     strb r0,[r2,r1]!\r
185     mov r0,r0,lsr #8\r
186     strb r0,[r2,#1]\r
187     bx lr\r
188 \r
189 0:\r
190     stmfd sp!,{r8,r9,lr}\r
191     mov r8,r0\r
192     mov r9,r1\r
193     bl z80_xmap_write8\r
194     mov r0,r8,lsr #8\r
195     add r1,r9,#1\r
196     bl z80_xmap_write8\r
197     ldmfd sp!,{r8,r9,pc}\r
198 \r
199 z80_xmap_rebase_pc:\r
200     ldr r1,[cpucontext,#z80_read8]\r
201     mov r2,r0,lsr #Z80_MEM_SHIFT\r
202     ldr r1,[r1,r2,lsl #2]\r
203     movs r1,r1,lsl #1\r
204     strcc r1,[cpucontext,#z80pc_base]\r
205     addcc z80pc,r1,r0\r
206     bxcc lr\r
207 \r
208 z80_bad_jump:\r
209     ldr r0,[cpucontext,#z80_read8]\r
210     ldr r0,[r0]\r
211     str r0,[cpucontext,#z80pc_base]\r
212     mov z80pc,r0\r
213     bx lr\r
214 .endif\r
215 \r
216 \r
217 .macro fetch cycs\r
218         subs z80_icount,z80_icount,#\cycs\r
219 .if UPDATE_CONTEXT\r
220     str z80pc,[cpucontext,#z80pc_pointer]\r
221         str z80_icount,[cpucontext,#cycles_pointer]\r
222         ldr r1,[cpucontext,#z80pc_base]\r
223         sub r2,z80pc,r1\r
224         str r2,[cpucontext,#previouspc]\r
225 .endif\r
226         ldrplb r0,[z80pc],#1\r
227         ldrpl pc,[opcodes,r0, lsl #2]\r
228         bmi z80_execute_end\r
229 .endm\r
230 \r
231 .macro eatcycles cycs\r
232         sub z80_icount,z80_icount,#\cycs\r
233 .if UPDATE_CONTEXT\r
234         str z80_icount,[cpucontext,#cycles_pointer]\r
235 .endif\r
236 .endm\r
237 \r
238 .macro readmem8\r
239 .if UPDATE_CONTEXT\r
240     str z80pc,[cpucontext,#z80pc_pointer]\r
241 .endif\r
242 .if DRZ80_XMAP\r
243 .if !DRZ80_XMAP_MORE_INLINE\r
244     ldr r1,[cpucontext,#z80_read8]\r
245     mov r2,r0,lsr #Z80_MEM_SHIFT\r
246     ldr r1,[r1,r2,lsl #2]\r
247     movs r1,r1,lsl #1\r
248     ldrccb r0,[r1,r0]\r
249     blcs z80_xmap_read8_handler\r
250 .else\r
251     bl z80_xmap_read8\r
252 .endif\r
253 .else ;@ if !DRZ80_XMAP\r
254     stmfd sp!,{r3,r12}\r
255         mov lr,pc\r
256         ldr pc,[cpucontext,#z80_read8]                  ;@ r0 = addr - data returned in r0\r
257         ldmfd sp!,{r3,r12}\r
258 .endif\r
259 .endm\r
260 \r
261 .macro readmem8HL\r
262         mov r0,z80hl, lsr #16\r
263         readmem8\r
264 .endm\r
265 \r
266 .macro readmem16\r
267 .if UPDATE_CONTEXT\r
268      str z80pc,[cpucontext,#z80pc_pointer]\r
269 .endif\r
270 .if DRZ80_XMAP\r
271     bl z80_xmap_read16\r
272 .else\r
273         stmfd sp!,{r3,r12}\r
274         mov lr,pc\r
275         ldr pc,[cpucontext,#z80_read16]\r
276         ldmfd sp!,{r3,r12}\r
277 .endif\r
278 .endm\r
279 \r
280 .macro writemem8\r
281 .if UPDATE_CONTEXT\r
282      str z80pc,[cpucontext,#z80pc_pointer]\r
283 .endif\r
284 .if DRZ80_XMAP\r
285 .if DRZ80_XMAP_MORE_INLINE\r
286     ldr r2,[cpucontext,#z80_write8]\r
287     mov lr,r1,lsr #Z80_MEM_SHIFT\r
288     ldr r2,[r2,lr,lsl #2]\r
289     movs r2,r2,lsl #1\r
290     strccb r0,[r2,r1]\r
291     blcs z80_xmap_write8_handler\r
292 .else\r
293     bl z80_xmap_write8\r
294 .endif\r
295 .else ;@ if !DRZ80_XMAP\r
296         stmfd sp!,{r3,r12}\r
297         mov lr,pc\r
298         ldr pc,[cpucontext,#z80_write8]                 ;@ r0=data r1=addr\r
299         ldmfd sp!,{r3,r12}\r
300 .endif\r
301 .endm\r
302 \r
303 .macro writemem8DE\r
304         mov r1,z80de, lsr #16\r
305         writemem8\r
306 .endm\r
307 \r
308 .macro writemem8HL\r
309         mov r1,z80hl, lsr #16\r
310         writemem8\r
311 .endm\r
312 \r
313 .macro writemem16\r
314 .if UPDATE_CONTEXT\r
315      str z80pc,[cpucontext,#z80pc_pointer]\r
316 .endif\r
317 .if DRZ80_XMAP\r
318     bl z80_xmap_write16\r
319 .else\r
320         stmfd sp!,{r3,r12}\r
321         mov lr,pc\r
322         ldr pc,[cpucontext,#z80_write16]                ;@ r0=data r1=addr\r
323         ldmfd sp!,{r3,r12}\r
324 .endif\r
325 .endm\r
326 \r
327 .macro copymem8HL_DE\r
328 .if UPDATE_CONTEXT\r
329      str z80pc,[cpucontext,#z80pc_pointer]\r
330 .endif\r
331         mov r0,z80hl, lsr #16\r
332 .if DRZ80_XMAP\r
333     bl z80_xmap_read8\r
334 .else\r
335     stmfd sp!,{r3,r12}\r
336         mov lr,pc\r
337         ldr pc,[cpucontext,#z80_read8]                  ;@ r0 = addr - data returned in r0\r
338 .endif\r
339         mov r1,z80de, lsr #16\r
340 .if DRZ80_XMAP\r
341     bl z80_xmap_write8\r
342 .else\r
343         mov lr,pc\r
344         ldr pc,[cpucontext,#z80_write8]                 ;@ r0=data r1=addr\r
345         ldmfd sp!,{r3,r12}\r
346 .endif\r
347 .endm\r
348 ;@---------------------------------------\r
349 \r
350 .macro rebasepc\r
351 .if UPDATE_CONTEXT\r
352      str z80pc,[cpucontext,#z80pc_pointer]\r
353 .endif\r
354 .if DRZ80_XMAP\r
355     bl z80_xmap_rebase_pc\r
356 .else\r
357     stmfd sp!,{r3,r12}\r
358         mov lr,pc\r
359         ldr pc,[cpucontext,#z80_rebasePC]               ;@ r0=new pc - external function sets z80pc_base and returns new z80pc in r0\r
360         ldmfd sp!,{r3,r12}\r
361         mov z80pc,r0\r
362 .endif\r
363 .endm\r
364 \r
365 .macro rebasesp\r
366 .if UPDATE_CONTEXT\r
367      str z80pc,[cpucontext,#z80pc_pointer]\r
368 .endif\r
369 .if DRZ80_XMAP\r
370     ;@ XXX: SP is locked to single back z80sp_base points to.\r
371     ldr r1,[cpucontext,#z80sp_base]\r
372     bic r0,r0,#0x7f<<Z80_MEM_SHIFT\r
373     add r0,r1,r0\r
374 .else\r
375         stmfd sp!,{r3,r12}\r
376         mov lr,pc\r
377         ldr pc,[cpucontext,#z80_rebaseSP]               ;@ external function must rebase sp\r
378         ldmfd sp!,{r3,r12}\r
379 .endif\r
380 .endm\r
381 ;@----------------------------------------------------------------------------\r
382 \r
383 .macro opADC\r
384         movs z80f,z80f,lsr#2                                    ;@ get C\r
385         subcs r0,r0,#0x100\r
386         eor z80f,r0,z80a,lsr#24                                 ;@ prepare for check of half carry\r
387         adcs z80a,z80a,r0,ror#8\r
388         mrs r0,cpsr                                                             ;@ S,Z,V&C\r
389         eor z80f,z80f,z80a,lsr#24\r
390         and z80f,z80f,#1<<HFlag                                 ;@ H, correct\r
391         orr z80f,z80f,r0,lsr#28\r
392 .endm\r
393 \r
394 .macro opADCA\r
395         movs z80f,z80f,lsr#2                                    ;@ get C\r
396         orrcs z80a,z80a,#0x00800000\r
397         adds z80a,z80a,z80a\r
398         mrs z80f,cpsr                                                   ;@ S,Z,V&C\r
399         mov z80f,z80f,lsr#28\r
400         tst z80a,#0x10000000                                    ;@ H, correct\r
401         orrne z80f,z80f,#1<<HFlag\r
402         fetch 4\r
403 .endm\r
404 \r
405 .macro opADCH reg\r
406         mov r0,\reg,lsr#24\r
407         opADC\r
408         fetch 4\r
409 .endm\r
410 \r
411 .macro opADCL reg\r
412         movs z80f,z80f,lsr#2                                    ;@ get C\r
413         adc r0,\reg,\reg,lsr#15\r
414         orrcs z80a,z80a,#0x00800000\r
415         mov r1,z80a,lsl#4                                               ;@ Prepare for check of half carry\r
416         adds z80a,z80a,r0,lsl#23\r
417         mrs z80f,cpsr                                                   ;@ S,Z,V&C\r
418         mov z80f,z80f,lsr#28\r
419         cmn r1,r0,lsl#27\r
420         orrcs z80f,z80f,#1<<HFlag                               ;@ H, correct\r
421         fetch 4\r
422 .endm\r
423 \r
424 .macro opADCb\r
425         opADC\r
426 .endm\r
427 ;@---------------------------------------\r
428 \r
429 .macro opADD reg shift\r
430         mov r1,z80a,lsl#4                                               ;@ Prepare for check of half carry\r
431         adds z80a,z80a,\reg,lsl#\shift\r
432         mrs z80f,cpsr                                                   ;@ S,Z,V&C\r
433         mov z80f,z80f,lsr#28\r
434         cmn r1,\reg,lsl#\shift+4\r
435         orrcs z80f,z80f,#1<<HFlag\r
436 .endm\r
437 \r
438 .macro opADDA\r
439         adds z80a,z80a,z80a\r
440         mrs z80f,cpsr                                                   ;@ S,Z,V&C\r
441         mov z80f,z80f,lsr#28\r
442         tst z80a,#0x10000000                                    ;@ H, correct\r
443         orrne z80f,z80f,#1<<HFlag\r
444         fetch 4\r
445 .endm\r
446 \r
447 .macro opADDH reg\r
448         and r0,\reg,#0xFF000000\r
449         opADD r0 0\r
450         fetch 4\r
451 .endm\r
452 \r
453 .macro opADDL reg\r
454         opADD \reg 8\r
455         fetch 4\r
456 .endm\r
457 \r
458 .macro opADDb \r
459         opADD r0 24\r
460 .endm\r
461 ;@---------------------------------------\r
462 \r
463 .macro opADC16 reg\r
464         movs z80f,z80f,lsr#2                                    ;@ get C\r
465         adc r0,z80a,\reg,lsr#15\r
466         orrcs z80hl,z80hl,#0x00008000\r
467         mov r1,z80hl,lsl#4\r
468         adds z80hl,z80hl,r0,lsl#15\r
469         mrs z80f,cpsr                                                   ;@ S, Z, V & C\r
470         mov z80f,z80f,lsr#28\r
471         cmn r1,r0,lsl#19\r
472         orrcs z80f,z80f,#1<<HFlag\r
473         fetch 15\r
474 .endm\r
475 \r
476 .macro opADC16HL\r
477         movs z80f,z80f,lsr#2                                    ;@ get C\r
478         orrcs z80hl,z80hl,#0x00008000\r
479         adds z80hl,z80hl,z80hl\r
480         mrs z80f,cpsr                                                   ;@ S, Z, V & C\r
481         mov z80f,z80f,lsr#28\r
482         tst z80hl,#0x10000000                                   ;@ H, correct.\r
483         orrne z80f,z80f,#1<<HFlag\r
484         fetch 15\r
485 .endm\r
486 \r
487 .macro opADD16 reg1 reg2\r
488         mov r1,\reg1,lsl#4                                              ;@ Prepare for check of half carry\r
489         adds \reg1,\reg1,\reg2\r
490         bic z80f,z80f,#(1<<CFlag)|(1<<HFlag)|(1<<NFlag)\r
491         orrcs z80f,z80f,#1<<CFlag\r
492         cmn r1,\reg2,lsl#4\r
493         orrcs z80f,z80f,#1<<HFlag\r
494 .endm\r
495 \r
496 .macro opADD16s reg1 reg2 shift\r
497         mov r1,\reg1,lsl#4                                              ;@ Prepare for check of half carry\r
498         adds \reg1,\reg1,\reg2,lsl#\shift\r
499         bic z80f,z80f,#(1<<CFlag)|(1<<HFlag)|(1<<NFlag)\r
500         orrcs z80f,z80f,#1<<CFlag\r
501         cmn r1,\reg2,lsl#4+\shift\r
502         orrcs z80f,z80f,#1<<HFlag\r
503 .endm\r
504 \r
505 .macro opADD16_2 reg\r
506         adds \reg,\reg,\reg\r
507         bic z80f,z80f,#(1<<CFlag)|(1<<HFlag)|(1<<NFlag)\r
508         orrcs z80f,z80f,#1<<CFlag\r
509         tst \reg,#0x10000000                                    ;@ H, correct.\r
510         orrne z80f,z80f,#1<<HFlag\r
511 .endm\r
512 ;@---------------------------------------\r
513 \r
514 .macro opAND reg shift\r
515         and z80a,z80a,\reg,lsl#\shift\r
516         sub r0,opcodes,#0x100\r
517         ldrb z80f,[r0,z80a, lsr #24]\r
518         orr z80f,z80f,#1<<HFlag\r
519 .endm\r
520 \r
521 .macro opANDA\r
522         sub r0,opcodes,#0x100\r
523         ldrb z80f,[r0,z80a, lsr #24]\r
524         orr z80f,z80f,#1<<HFlag\r
525         fetch 4\r
526 .endm\r
527 \r
528 .macro opANDH reg\r
529         opAND \reg 0\r
530         fetch 4\r
531 .endm\r
532 \r
533 .macro opANDL reg\r
534         opAND \reg 8\r
535         fetch 4\r
536 .endm\r
537 \r
538 .macro opANDb\r
539         opAND r0 24\r
540 .endm\r
541 ;@---------------------------------------\r
542 \r
543 .macro opBITH reg bit\r
544         and z80f,z80f,#1<<CFlag\r
545         tst \reg,#1<<(24+\bit)\r
546         orreq z80f,z80f,#(1<<HFlag)|(1<<ZFlag)|(1<<VFlag)\r
547         orrne z80f,z80f,#(1<<HFlag)\r
548         fetch 8\r
549 .endm\r
550 \r
551 .macro opBIT7H reg\r
552         and z80f,z80f,#1<<CFlag\r
553         tst \reg,#1<<(24+7)\r
554         orreq z80f,z80f,#(1<<HFlag)|(1<<ZFlag)|(1<<VFlag)\r
555         orrne z80f,z80f,#(1<<HFlag)|(1<<SFlag)\r
556         fetch 8\r
557 .endm\r
558 \r
559 .macro opBITL reg bit\r
560         and z80f,z80f,#1<<CFlag\r
561         tst \reg,#1<<(16+\bit)\r
562         orreq z80f,z80f,#(1<<HFlag)|(1<<ZFlag)|(1<<VFlag)\r
563         orrne z80f,z80f,#(1<<HFlag)\r
564         fetch 8\r
565 .endm\r
566 \r
567 .macro opBIT7L reg\r
568         and z80f,z80f,#1<<CFlag\r
569         tst \reg,#1<<(16+7)\r
570         orreq z80f,z80f,#(1<<HFlag)|(1<<ZFlag)|(1<<VFlag)\r
571         orrne z80f,z80f,#(1<<HFlag)|(1<<SFlag)\r
572         fetch 8\r
573 .endm\r
574 \r
575 .macro opBITb bit\r
576         and z80f,z80f,#1<<CFlag\r
577         tst r0,#1<<\bit\r
578         orreq z80f,z80f,#(1<<HFlag)|(1<<ZFlag)|(1<<VFlag)\r
579         orrne z80f,z80f,#(1<<HFlag)\r
580 .endm\r
581 \r
582 .macro opBIT7b\r
583         and z80f,z80f,#1<<CFlag\r
584         tst r0,#1<<7\r
585         orreq z80f,z80f,#(1<<HFlag)|(1<<ZFlag)|(1<<VFlag)\r
586         orrne z80f,z80f,#(1<<HFlag)|(1<<SFlag)\r
587 .endm\r
588 ;@---------------------------------------\r
589 \r
590 .macro opCP reg shift\r
591         mov r1,z80a,lsl#4                                               ;@ prepare for check of half carry\r
592         cmp z80a,\reg,lsl#\shift\r
593         mrs z80f,cpsr\r
594         mov z80f,z80f,lsr#28                                    ;@ S,Z,V&C\r
595         eor z80f,z80f,#(1<<CFlag)|(1<<NFlag)    ;@ invert C and set n\r
596         cmp r1,\reg,lsl#\shift+4\r
597         orrcc z80f,z80f,#1<<HFlag\r
598 .endm\r
599 \r
600 .macro opCPA\r
601         mov z80f,#(1<<ZFlag)|(1<<NFlag)                 ;@ set Z & n\r
602         fetch 4\r
603 .endm\r
604 \r
605 .macro opCPH reg\r
606         and r0,\reg,#0xFF000000\r
607         opCP r0 0\r
608         fetch 4\r
609 .endm\r
610 \r
611 .macro opCPL reg\r
612         opCP \reg 8\r
613         fetch 4\r
614 .endm\r
615 \r
616 .macro opCPb\r
617         opCP r0 24\r
618 .endm\r
619 ;@---------------------------------------\r
620 \r
621 .macro opDEC8 reg                                                       ;@for A and memory\r
622         and z80f,z80f,#1<<CFlag                                 ;@save carry\r
623         orr z80f,z80f,#1<<NFlag                                 ;@set n\r
624         tst \reg,#0x0f000000\r
625         orreq z80f,z80f,#1<<HFlag\r
626         subs \reg,\reg,#0x01000000\r
627         orrmi z80f,z80f,#1<<SFlag\r
628         orrvs z80f,z80f,#1<<VFlag\r
629         orreq z80f,z80f,#1<<ZFlag\r
630 .endm\r
631 \r
632 .macro opDEC8H reg                                                      ;@for B, D & H\r
633         and z80f,z80f,#1<<CFlag                                 ;@save carry\r
634         orr z80f,z80f,#1<<NFlag                                 ;@set n\r
635         tst \reg,#0x0f000000\r
636         orreq z80f,z80f,#1<<HFlag\r
637         subs \reg,\reg,#0x01000000\r
638         orrmi z80f,z80f,#1<<SFlag\r
639         orrvs z80f,z80f,#1<<VFlag\r
640         tst \reg,#0xff000000                                    ;@Z\r
641         orreq z80f,z80f,#1<<ZFlag\r
642 .endm\r
643 \r
644 .macro opDEC8L reg                                                      ;@for C, E & L\r
645         mov \reg,\reg,ror#24\r
646         opDEC8H \reg\r
647         mov \reg,\reg,ror#8\r
648 .endm\r
649 \r
650 .macro opDEC8b                                                          ;@for memory\r
651         mov r0,r0,lsl#24\r
652         opDEC8 r0\r
653         mov r0,r0,lsr#24\r
654 .endm\r
655 ;@---------------------------------------\r
656 \r
657 .macro opIN\r
658         stmfd sp!,{r3,r12}\r
659         mov lr,pc\r
660         ldr pc,[cpucontext,#z80_in]                             ;@ r0=port - data returned in r0\r
661         ldmfd sp!,{r3,r12}\r
662 .endm\r
663 \r
664 .macro opIN_C\r
665         mov r0,z80bc, lsr #16\r
666         opIN\r
667 .endm\r
668 ;@---------------------------------------\r
669 \r
670 .macro opINC8 reg                                                       ;@for A and memory\r
671         and z80f,z80f,#1<<CFlag                                 ;@save carry, clear n\r
672         adds \reg,\reg,#0x01000000\r
673         orrmi z80f,z80f,#1<<SFlag\r
674         orrvs z80f,z80f,#1<<VFlag\r
675         orrcs z80f,z80f,#1<<ZFlag                               ;@cs when going from 0xFF to 0x00\r
676         tst \reg,#0x0f000000\r
677         orreq z80f,z80f,#1<<HFlag\r
678 .endm\r
679 \r
680 .macro opINC8H reg                                                      ;@for B, D & H\r
681         opINC8 \reg\r
682 .endm\r
683 \r
684 .macro opINC8L reg                                                      ;@for C, E & L\r
685         mov \reg,\reg,ror#24\r
686         opINC8 \reg\r
687         mov \reg,\reg,ror#8\r
688 .endm\r
689 \r
690 .macro opINC8b                                                          ;@for memory\r
691         mov r0,r0,lsl#24\r
692         opINC8 r0\r
693         mov r0,r0,lsr#24\r
694 .endm\r
695 ;@---------------------------------------\r
696 \r
697 .macro opOR reg shift\r
698         orr z80a,z80a,\reg,lsl#\shift\r
699         sub r0,opcodes,#0x100\r
700         ldrb z80f,[r0,z80a, lsr #24]\r
701 .endm\r
702 \r
703 .macro opORA\r
704         sub r0,opcodes,#0x100\r
705         ldrb z80f,[r0,z80a, lsr #24]\r
706         fetch 4\r
707 .endm\r
708 \r
709 .macro opORH reg\r
710         and r0,\reg,#0xFF000000\r
711         opOR r0 0\r
712         fetch 4\r
713 .endm\r
714 \r
715 .macro opORL reg\r
716         opOR \reg 8\r
717         fetch 4\r
718 .endm\r
719 \r
720 .macro opORb\r
721         opOR r0 24\r
722 .endm\r
723 ;@---------------------------------------\r
724 \r
725 .macro opOUT\r
726         stmfd sp!,{r3,r12}\r
727         mov lr,pc\r
728         ldr pc,[cpucontext,#z80_out]                    ;@ r0=port r1=data\r
729         ldmfd sp!,{r3,r12}\r
730 .endm\r
731 \r
732 .macro opOUT_C\r
733         mov r0,z80bc, lsr #16\r
734         opOUT\r
735 .endm\r
736 ;@---------------------------------------\r
737 \r
738 .macro opPOP\r
739 .if FAST_Z80SP\r
740         ldrb r0,[z80sp],#1\r
741         ldrb r1,[z80sp],#1\r
742         orr r0,r0,r1, lsl #8\r
743 .else\r
744         mov r0,z80sp\r
745         readmem16\r
746         add z80sp,z80sp,#2\r
747 .endif\r
748 .endm\r
749 \r
750 .macro opPOPreg reg\r
751         opPOP\r
752         mov \reg,r0, lsl #16\r
753         fetch 10\r
754 .endm\r
755 ;@---------------------------------------\r
756 \r
757 .macro stack_check\r
758     @ try to protect against stack overflows, lock into current bank\r
759     ldr r1,[cpucontext,#z80sp_base]\r
760     sub r1,z80sp,r1\r
761     cmp r1,#2\r
762     addlt z80sp,z80sp,#1<<Z80_MEM_SHIFT\r
763 .endm\r
764 \r
765 .macro opPUSHareg reg @ reg > r1\r
766 .if FAST_Z80SP\r
767 .if DRZ80_XMAP\r
768         stack_check\r
769 .endif\r
770         mov r1,\reg, lsr #8\r
771         strb r1,[z80sp,#-1]!\r
772         strb \reg,[z80sp,#-1]!\r
773 .else\r
774     mov r0,\reg\r
775         sub z80sp,z80sp,#2\r
776         mov r1,z80sp\r
777         writemem16\r
778 .endif\r
779 .endm\r
780 \r
781 .macro opPUSHreg reg\r
782 .if FAST_Z80SP\r
783 .if DRZ80_XMAP\r
784         stack_check\r
785 .endif\r
786     mov r1,\reg, lsr #24\r
787         strb r1,[z80sp,#-1]!\r
788         mov r1,\reg, lsr #16\r
789         strb r1,[z80sp,#-1]!\r
790 .else\r
791         mov r0,\reg,lsr #16\r
792         sub z80sp,z80sp,#2\r
793         mov r1,z80sp\r
794         writemem16\r
795 .endif\r
796 .endm\r
797 ;@---------------------------------------\r
798 \r
799 .macro opRESmemHL bit\r
800         mov r0,z80hl, lsr #16\r
801 .if DRZ80_XMAP\r
802         bl z80_xmap_read8\r
803         bic r0,r0,#1<<\bit\r
804         mov r1,z80hl, lsr #16\r
805         bl z80_xmap_write8\r
806 .else\r
807         stmfd sp!,{r3,r12}\r
808         mov lr,pc\r
809         ldr pc,[cpucontext,#z80_read8]                  ;@ r0 = addr - data returned in r0\r
810         bic r0,r0,#1<<\bit\r
811         mov r1,z80hl, lsr #16\r
812         mov lr,pc\r
813         ldr pc,[cpucontext,#z80_write8]                 ;@ r0=data r1=addr\r
814         ldmfd sp!,{r3,r12}\r
815 .endif\r
816     fetch 15\r
817 .endm\r
818 ;@---------------------------------------\r
819 \r
820 .macro opRESmem bit\r
821 .if DRZ80_XMAP\r
822         stmfd sp!,{r0}                                                  ;@ save addr as well\r
823         bl z80_xmap_read8\r
824         bic r0,r0,#1<<\bit\r
825         ldmfd sp!,{r1}                                                  ;@ restore addr into r1\r
826         bl z80_xmap_write8\r
827 .else\r
828         stmfd sp!,{r3,r12}\r
829         stmfd sp!,{r0}                                                  ;@ save addr as well\r
830         mov lr,pc\r
831         ldr pc,[cpucontext,#z80_read8]                  ;@ r0=addr - data returned in r0\r
832         bic r0,r0,#1<<\bit\r
833         ldmfd sp!,{r1}                                                  ;@ restore addr into r1\r
834         mov lr,pc\r
835         ldr pc,[cpucontext,#z80_write8]                 ;@ r0=data r1=addr\r
836         ldmfd sp!,{r3,r12}\r
837 .endif\r
838         fetch 23\r
839 .endm\r
840 ;@---------------------------------------\r
841 \r
842 .macro opRL reg1 reg2 shift\r
843         movs \reg1,\reg2,lsl \shift\r
844         tst z80f,#1<<CFlag                                              ;@doesn't affect ARM carry, as long as the imidiate value is < 0x100. Watch out!\r
845         orrne \reg1,\reg1,#0x01000000\r
846 ;@      and r2,z80f,#1<<CFlag\r
847 ;@      orr $x,$x,r2,lsl#23\r
848         sub r1,opcodes,#0x100\r
849         ldrb z80f,[r1,\reg1,lsr#24]                             ;@get PZS\r
850         orrcs z80f,z80f,#1<<CFlag\r
851 .endm\r
852 \r
853 .macro opRLA\r
854         opRL z80a, z80a, #1\r
855         fetch 8\r
856 .endm\r
857 \r
858 .macro opRLH reg\r
859         and r0,\reg,#0xFF000000                                 ;@mask high to r0\r
860         adds \reg,\reg,r0\r
861         tst z80f,#1<<CFlag                                              ;@doesn't affect ARM carry, as long as the imidiate value is < 0x100. Watch out!\r
862         orrne \reg,\reg,#0x01000000\r
863         sub r1,opcodes,#0x100\r
864         ldrb z80f,[r1,\reg,lsr#24]                              ;@get PZS\r
865         orrcs z80f,z80f,#1<<CFlag\r
866         fetch 8\r
867 .endm\r
868 \r
869 .macro opRLL reg\r
870         opRL r0, \reg, #9\r
871         and \reg,\reg,#0xFF000000                               ;@mask out high\r
872         orr \reg,\reg,r0,lsr#8\r
873         fetch 8\r
874 .endm\r
875 \r
876 .macro opRLb\r
877         opRL r0, r0, #25\r
878         mov r0,r0,lsr#24\r
879 .endm\r
880 ;@---------------------------------------\r
881 \r
882 .macro opRLC reg1 reg2 shift\r
883         movs \reg1,\reg2,lsl#\shift\r
884         orrcs \reg1,\reg1,#0x01000000\r
885         sub r1,opcodes,#0x100\r
886         ldrb z80f,[r1,\reg1,lsr#24]\r
887         orrcs z80f,z80f,#1<<CFlag\r
888 .endm\r
889 \r
890 .macro opRLCA\r
891         opRLC z80a, z80a, 1\r
892         fetch 8\r
893 .endm\r
894 \r
895 .macro opRLCH reg\r
896         and r0,\reg,#0xFF000000                                 ;@mask high to r0\r
897         adds \reg,\reg,r0\r
898         orrcs \reg,\reg,#0x01000000\r
899         sub r1,opcodes,#0x100\r
900         ldrb z80f,[r1,\reg,lsr#24]\r
901         orrcs z80f,z80f,#1<<CFlag\r
902         fetch 8\r
903 .endm\r
904 \r
905 .macro opRLCL reg\r
906         opRLC r0, \reg, 9\r
907         and \reg,\reg,#0xFF000000                               ;@mask out high\r
908         orr \reg,\reg,r0,lsr#8\r
909         fetch 8\r
910 .endm\r
911 \r
912 .macro opRLCb\r
913         opRLC r0, r0, 25\r
914         mov r0,r0,lsr#24\r
915 .endm\r
916 ;@---------------------------------------\r
917 \r
918 .macro opRR reg1 reg2 shift\r
919         movs \reg1,\reg2,lsr#\shift\r
920         tst z80f,#1<<CFlag                                              ;@doesn't affect ARM carry, as long as the imidiate value is < 0x100. Watch out!\r
921         orrne \reg1,\reg1,#0x00000080\r
922 ;@      and r2,z80_f,#PSR_C\r
923 ;@      orr \reg1,\reg1,r2,lsl#6\r
924         sub r1,opcodes,#0x100\r
925         ldrb z80f,[r1,\reg1]\r
926         orrcs z80f,z80f,#1<<CFlag\r
927 .endm\r
928 \r
929 .macro opRRA\r
930         orr z80a,z80a,z80f,lsr#1                                ;@get C\r
931         movs z80a,z80a,ror#25\r
932         mov z80a,z80a,lsl#24\r
933         sub r1,opcodes,#0x100\r
934         ldrb z80f,[r1,z80a,lsr#24]\r
935         orrcs z80f,z80f,#1<<CFlag\r
936         fetch 8\r
937 .endm\r
938 \r
939 .macro opRRH reg\r
940         orr r0,\reg,z80f,lsr#1                                  ;@get C\r
941         movs r0,r0,ror#25\r
942         and \reg,\reg,#0x00FF0000                               ;@mask out low\r
943         orr \reg,\reg,r0,lsl#24\r
944         sub r1,opcodes,#0x100\r
945         ldrb z80f,[r1,\reg,lsr#24]\r
946         orrcs z80f,z80f,#1<<CFlag\r
947         fetch 8\r
948 .endm\r
949 \r
950 .macro opRRL reg\r
951         and r0,\reg,#0x00FF0000                                 ;@mask out low to r0\r
952         opRR r0 r0 17\r
953         and \reg,\reg,#0xFF000000                               ;@mask out high\r
954         orr \reg,\reg,r0,lsl#16\r
955         fetch 8\r
956 .endm\r
957 \r
958 .macro opRRb\r
959         opRR r0 r0 1\r
960 .endm\r
961 ;@---------------------------------------\r
962 \r
963 .macro opRRC reg1 reg2 shift\r
964         movs \reg1,\reg2,lsr#\shift\r
965         orrcs \reg1,\reg1,#0x00000080\r
966         sub r1,opcodes,#0x100\r
967         ldrb z80f,[r1,\reg1]\r
968         orrcs z80f,z80f,#1<<CFlag\r
969 .endm\r
970 \r
971 .macro opRRCA\r
972         opRRC z80a, z80a, 25\r
973         mov z80a,z80a,lsl#24\r
974         fetch 8\r
975 .endm\r
976 \r
977 .macro opRRCH reg\r
978         opRRC r0, \reg, 25\r
979         and \reg,\reg,#0x00FF0000                               ;@mask out low\r
980         orr \reg,\reg,r0,lsl#24\r
981         fetch 8\r
982 .endm\r
983 \r
984 .macro opRRCL reg\r
985         and r0,\reg,#0x00FF0000                                 ;@mask low to r0\r
986         opRRC r0, r0, 17\r
987         and \reg,\reg,#0xFF000000                               ;@mask out high\r
988         orr \reg,\reg,r0,lsl#16\r
989         fetch 8\r
990 .endm\r
991 \r
992 .macro opRRCb\r
993         opRRC r0, r0, 1\r
994 .endm\r
995 ;@---------------------------------------\r
996 \r
997 .macro opRST addr\r
998         ldr r0,[cpucontext,#z80pc_base]\r
999         sub r2,z80pc,r0\r
1000     opPUSHareg r2\r
1001         mov r0,#\addr\r
1002         rebasepc\r
1003         fetch 11\r
1004 .endm\r
1005 ;@---------------------------------------\r
1006 \r
1007 .macro opSBC\r
1008         eor z80f,z80f,#1<<CFlag                                 ;@ invert C\r
1009         movs z80f,z80f,lsr#2                                    ;@ get C\r
1010         subcc r0,r0,#0x100\r
1011         eor z80f,r0,z80a,lsr#24                                 ;@ prepare for check of H\r
1012         sbcs z80a,z80a,r0,ror#8\r
1013         mrs r0,cpsr\r
1014         eor z80f,z80f,z80a,lsr#24\r
1015         and z80f,z80f,#1<<HFlag                                 ;@ H, correct\r
1016         orr z80f,z80f,r0,lsr#28                                 ;@ S,Z,V&C\r
1017         eor z80f,z80f,#(1<<CFlag)|(1<<NFlag)    ;@ invert C and set n.\r
1018 .endm\r
1019 \r
1020 .macro opSBCA\r
1021         movs z80f,z80f,lsr#2                                    ;@ get C\r
1022         movcc z80a,#0x00000000\r
1023         movcs z80a,#0xFF000000\r
1024         movcc z80f,#(1<<NFlag)|(1<<ZFlag)\r
1025         movcs z80f,#(1<<NFlag)|(1<<SFlag)|(1<<CFlag)|(1<<HFlag)\r
1026         fetch 4\r
1027 .endm\r
1028 \r
1029 .macro opSBCH reg\r
1030         mov r0,\reg,lsr#24\r
1031         opSBC\r
1032         fetch 4\r
1033 .endm\r
1034 \r
1035 .macro opSBCL reg\r
1036         mov r0,\reg,lsl#8\r
1037         eor z80f,z80f,#1<<CFlag                                 ;@ invert C\r
1038         movs z80f,z80f,lsr#2                                    ;@ get C\r
1039         sbccc r0,r0,#0xFF000000\r
1040         mov r1,z80a,lsl#4                                               ;@ prepare for check of H\r
1041         sbcs z80a,z80a,r0\r
1042         mrs z80f,cpsr\r
1043         mov z80f,z80f,lsr#28                                    ;@ S,Z,V&C\r
1044         eor z80f,z80f,#(1<<CFlag)|(1<<NFlag)    ;@ invert C and set n.\r
1045         cmp r1,r0,lsl#4\r
1046         orrcc z80f,z80f,#1<<HFlag                               ;@ H, correct\r
1047         fetch 4\r
1048 .endm\r
1049 \r
1050 .macro opSBCb\r
1051         opSBC\r
1052 .endm\r
1053 ;@---------------------------------------\r
1054 \r
1055 .macro opSBC16 reg\r
1056         eor z80f,z80f,#1<<CFlag                                 ;@ invert C\r
1057         movs z80f,z80f,lsr#2                                    ;@ get C\r
1058         sbc r1,r1,r1                                                    ;@ set r1 to -1 or 0.\r
1059         orr r0,\reg,r1,lsr#16\r
1060         mov r1,z80hl,lsl#4                                              ;@ prepare for check of H\r
1061         sbcs z80hl,z80hl,r0\r
1062         mrs z80f,cpsr\r
1063         mov z80f,z80f,lsr#28                                    ;@ S,Z,V&C\r
1064         eor z80f,z80f,#(1<<CFlag)|(1<<NFlag)    ;@ invert C and set n.\r
1065         cmp r1,r0,lsl#4\r
1066         orrcc z80f,z80f,#1<<HFlag                               ;@ H, correct\r
1067         fetch 15\r
1068 .endm\r
1069 \r
1070 .macro opSBC16HL\r
1071         movs z80f,z80f,lsr#2                                    ;@ get C\r
1072         mov z80hl,#0x00000000\r
1073         subcs z80hl,z80hl,#0x00010000\r
1074         movcc z80f,#(1<<NFlag)|(1<<ZFlag)\r
1075         movcs z80f,#(1<<NFlag)|(1<<SFlag)|(1<<CFlag)|(1<<HFlag)\r
1076         fetch 15\r
1077 .endm\r
1078 ;@---------------------------------------\r
1079 \r
1080 .macro opSETmemHL bit\r
1081         mov r0,z80hl, lsr #16\r
1082 .if DRZ80_XMAP\r
1083         bl z80_xmap_read8\r
1084         orr r0,r0,#1<<\bit\r
1085         mov r1,z80hl, lsr #16\r
1086         bl z80_xmap_write8\r
1087 .else\r
1088         stmfd sp!,{r3,r12}\r
1089         mov lr,pc\r
1090         ldr pc,[cpucontext,#z80_read8]                  ;@ r0 = addr - data returned in r0\r
1091         orr r0,r0,#1<<\bit\r
1092         mov r1,z80hl, lsr #16\r
1093         mov lr,pc\r
1094         ldr pc,[cpucontext,#z80_write8]                 ;@ r0=data r1=addr\r
1095         ldmfd sp!,{r3,r12}\r
1096 .endif\r
1097     fetch 15\r
1098 .endm\r
1099 ;@---------------------------------------\r
1100 \r
1101 .macro opSETmem bit\r
1102 .if DRZ80_XMAP\r
1103         stmfd sp!,{r0}  ;@ save addr as well\r
1104         bl z80_xmap_read8\r
1105         orr r0,r0,#1<<\bit\r
1106         ldmfd sp!,{r1}  ;@ restore addr into r1\r
1107         bl z80_xmap_write8\r
1108 .else\r
1109         stmfd sp!,{r3,r12}\r
1110         stmfd sp!,{r0}  ;@ save addr as well\r
1111         mov lr,pc\r
1112         ldr pc,[cpucontext,#z80_read8]                  ;@ r0=addr - data returned in r0\r
1113         orr r0,r0,#1<<\bit\r
1114         ldmfd sp!,{r1}  ;@ restore addr into r1\r
1115         mov lr,pc\r
1116         ldr pc,[cpucontext,#z80_write8]                 ;@ r0=data r1=addr\r
1117         ldmfd sp!,{r3,r12}\r
1118 .endif\r
1119         fetch 23\r
1120 .endm\r
1121 ;@---------------------------------------\r
1122 \r
1123 .macro opSLA reg1 reg2 shift\r
1124         movs \reg1,\reg2,lsl#\shift\r
1125         sub r1,opcodes,#0x100\r
1126         ldrb z80f,[r1,\reg1,lsr#24]\r
1127         orrcs z80f,z80f,#1<<CFlag\r
1128 .endm\r
1129 \r
1130 .macro opSLAA\r
1131         opSLA z80a, z80a, 1\r
1132         fetch 8\r
1133 .endm\r
1134 \r
1135 .macro opSLAH reg\r
1136         and r0,\reg,#0xFF000000                                 ;@mask high to r0\r
1137         adds \reg,\reg,r0\r
1138         sub r1,opcodes,#0x100\r
1139         ldrb z80f,[r1,\reg,lsr#24]\r
1140         orrcs z80f,z80f,#1<<CFlag\r
1141         fetch 8\r
1142 .endm\r
1143 \r
1144 .macro opSLAL reg\r
1145         opSLA r0, \reg, 9\r
1146         and \reg,\reg,#0xFF000000                               ;@mask out high\r
1147         orr \reg,\reg,r0,lsr#8\r
1148         fetch 8\r
1149 .endm\r
1150 \r
1151 .macro opSLAb\r
1152         opSLA r0, r0, 25\r
1153         mov r0,r0,lsr#24\r
1154 .endm\r
1155 ;@---------------------------------------\r
1156 \r
1157 .macro opSLL reg1 reg2 shift\r
1158         movs \reg1,\reg2,lsl#\shift\r
1159         orr \reg1,\reg1,#0x01000000\r
1160         sub r1,opcodes,#0x100\r
1161         ldrb z80f,[r1,\reg1,lsr#24]\r
1162         orrcs z80f,z80f,#1<<CFlag\r
1163 .endm\r
1164 \r
1165 .macro opSLLA\r
1166         opSLL z80a, z80a, 1\r
1167         fetch 8\r
1168 .endm\r
1169 \r
1170 .macro opSLLH reg\r
1171         and r0,\reg,#0xFF000000                                 ;@mask high to r0\r
1172         adds \reg,\reg,r0\r
1173         orr \reg,\reg,#0x01000000\r
1174         sub r1,opcodes,#0x100\r
1175         ldrb z80f,[r1,\reg,lsr#24]\r
1176         orrcs z80f,z80f,#1<<CFlag\r
1177         fetch 8\r
1178 .endm\r
1179 \r
1180 .macro opSLLL reg\r
1181         opSLL r0, \reg, 9\r
1182         and \reg,\reg,#0xFF000000                               ;@mask out high\r
1183         orr \reg,\reg,r0,lsr#8\r
1184         fetch 8\r
1185 .endm\r
1186 \r
1187 .macro opSLLb\r
1188         opSLL r0, r0, 25\r
1189         mov r0,r0,lsr#24\r
1190 .endm\r
1191 ;@---------------------------------------\r
1192 \r
1193 .macro opSRA reg1 reg2\r
1194         movs \reg1,\reg2,asr#25\r
1195         and \reg1,\reg1,#0xFF\r
1196         sub r1,opcodes,#0x100\r
1197         ldrb z80f,[r1,\reg1]\r
1198         orrcs z80f,z80f,#1<<CFlag\r
1199 .endm\r
1200 \r
1201 .macro opSRAA\r
1202         movs r0,z80a,asr#25\r
1203         mov z80a,r0,lsl#24\r
1204         sub r1,opcodes,#0x100\r
1205         ldrb z80f,[r1,z80a,lsr#24]\r
1206         orrcs z80f,z80f,#1<<CFlag\r
1207         fetch 8\r
1208 .endm\r
1209 \r
1210 .macro opSRAH reg\r
1211         movs r0,\reg,asr#25\r
1212         and \reg,\reg,#0x00FF0000                               ;@mask out low\r
1213         orr \reg,\reg,r0,lsl#24\r
1214         sub r1,opcodes,#0x100\r
1215         ldrb z80f,[r1,\reg,lsr#24]\r
1216         orrcs z80f,z80f,#1<<CFlag\r
1217         fetch 8\r
1218 .endm\r
1219 \r
1220 .macro opSRAL reg\r
1221         mov r0,\reg,lsl#8\r
1222         opSRA r0, r0\r
1223         and \reg,\reg,#0xFF000000                               ;@mask out high\r
1224         orr \reg,\reg,r0,lsl#16\r
1225         fetch 8\r
1226 .endm\r
1227 \r
1228 .macro opSRAb\r
1229         mov r0,r0,lsl#24\r
1230         opSRA r0, r0\r
1231 .endm\r
1232 ;@---------------------------------------\r
1233 \r
1234 .macro opSRL reg1 reg2 shift\r
1235         movs \reg1,\reg2,lsr#\shift\r
1236         sub r1,opcodes,#0x100\r
1237         ldrb z80f,[r1,\reg1]\r
1238         orrcs z80f,z80f,#1<<CFlag\r
1239 .endm\r
1240 \r
1241 .macro opSRLA\r
1242         opSRL z80a, z80a, 25\r
1243         mov z80a,z80a,lsl#24\r
1244         fetch 8\r
1245 .endm\r
1246 \r
1247 .macro opSRLH reg\r
1248         opSRL r0, \reg, 25\r
1249         and \reg,\reg,#0x00FF0000                               ;@mask out low\r
1250         orr \reg,\reg,r0,lsl#24\r
1251         fetch 8\r
1252 .endm\r
1253 \r
1254 .macro opSRLL reg\r
1255         mov r0,\reg,lsl#8\r
1256         opSRL r0, r0, 25\r
1257         and \reg,\reg,#0xFF000000                               ;@mask out high\r
1258         orr \reg,\reg,r0,lsl#16\r
1259         fetch 8\r
1260 .endm\r
1261 \r
1262 .macro opSRLb\r
1263         opSRL r0, r0, 1\r
1264 .endm\r
1265 ;@---------------------------------------\r
1266 \r
1267 .macro opSUB reg shift\r
1268         mov r1,z80a,lsl#4                                               ;@ Prepare for check of half carry\r
1269         subs z80a,z80a,\reg,lsl#\shift\r
1270         mrs z80f,cpsr\r
1271         mov z80f,z80f,lsr#28                                    ;@ S,Z,V&C\r
1272         eor z80f,z80f,#(1<<CFlag)|(1<<NFlag)    ;@ invert C and set n\r
1273         cmp r1,\reg,lsl#\shift+4\r
1274         orrcc z80f,z80f,#1<<HFlag\r
1275 .endm\r
1276 \r
1277 .macro opSUBA\r
1278         mov z80a,#0\r
1279         mov z80f,#(1<<ZFlag)|(1<<NFlag)                 ;@ set Z & n\r
1280         fetch 4\r
1281 .endm\r
1282 \r
1283 .macro opSUBH reg\r
1284         and r0,\reg,#0xFF000000\r
1285         opSUB r0, 0\r
1286         fetch 4\r
1287 .endm\r
1288 \r
1289 .macro opSUBL reg\r
1290         opSUB \reg, 8\r
1291         fetch 4\r
1292 .endm\r
1293 \r
1294 .macro opSUBb\r
1295         opSUB r0, 24\r
1296 .endm\r
1297 ;@---------------------------------------\r
1298 \r
1299 .macro opXOR reg shift\r
1300         eor z80a,z80a,\reg,lsl#\shift\r
1301         sub r0,opcodes,#0x100\r
1302         ldrb z80f,[r0,z80a, lsr #24]\r
1303 .endm\r
1304 \r
1305 .macro opXORA\r
1306         mov z80a,#0\r
1307         mov z80f,#(1<<ZFlag)|(1<<VFlag)\r
1308         fetch 4\r
1309 .endm\r
1310 \r
1311 .macro opXORH reg\r
1312         and r0,\reg,#0xFF000000\r
1313         opXOR r0, 0\r
1314         fetch 4\r
1315 .endm\r
1316 \r
1317 .macro opXORL reg\r
1318         opXOR \reg, 8\r
1319         fetch 4\r
1320 .endm\r
1321 \r
1322 .macro opXORb\r
1323         opXOR r0, 24\r
1324 .endm\r
1325 ;@---------------------------------------\r
1326 \r
1327 \r
1328 ;@ --------------------------- Framework --------------------------\r
1329     \r
1330 .text\r
1331 \r
1332 DrZ80Run:\r
1333         ;@ r0 = pointer to cpu context\r
1334         ;@ r1 = ISTATES to execute  \r
1335         ;@#########################################   \r
1336         stmdb sp!,{r4-r12,lr}                                   ;@ save registers on stack\r
1337         mov cpucontext,r0                                               ;@ setup main memory pointer\r
1338         mov z80_icount,r1                                               ;@ setup number of Tstates to execute\r
1339 \r
1340 .if INTERRUPT_MODE == 0\r
1341         ldrh r0,[cpucontext,#z80irq] @ 0x4C, irq and IFF bits\r
1342 .endif\r
1343         ldmia cpucontext,{z80pc-z80sp}                  ;@ load Z80 registers\r
1344 \r
1345 .if INTERRUPT_MODE == 0\r
1346         ;@ check ints\r
1347         tst r0,#0xff\r
1348         movne r0,r0,lsr #8\r
1349         tstne r0,#1\r
1350         blne DoInterrupt\r
1351 .endif\r
1352 \r
1353         ldr opcodes,MAIN_opcodes_POINTER2\r
1354 \r
1355         cmp z80_icount,#0     ;@ irq might have used all cycles\r
1356         ldrplb r0,[z80pc],#1\r
1357         ldrpl pc,[opcodes,r0, lsl #2]\r
1358 \r
1359 \r
1360 z80_execute_end:\r
1361         ;@ save registers in CPU context\r
1362         stmia cpucontext,{z80pc-z80sp}                  ;@ save Z80 registers\r
1363         mov r0,z80_icount\r
1364         ldmia sp!,{r4-r12,pc}                                   ;@ restore registers from stack and return to C code\r
1365 \r
1366 MAIN_opcodes_POINTER2: .word MAIN_opcodes\r
1367 .if INTERRUPT_MODE\r
1368 Interrupt_local: .word Interrupt\r
1369 .endif\r
1370 \r
1371 DoInterrupt:\r
1372 .if INTERRUPT_MODE\r
1373         ;@ Don't do own int handler, call mames instead\r
1374 \r
1375         ;@ save everything back into DrZ80 context\r
1376         stmia cpucontext,{z80pc-z80sp}                  ;@ save Z80 registers\r
1377         stmfd sp!,{r3,r4,r5,lr}                                 ;@ save rest of regs on stack\r
1378         mov lr,pc\r
1379         ldr pc,Interrupt_local\r
1380         ldmfd sp!,{r3,r4,r5,lr}                                 ;@ load regs from stack\r
1381         ;@ reload regs from DrZ80 context\r
1382         ldmia cpucontext,{z80pc-z80sp}                  ;@ load Z80 registers\r
1383         mov pc,lr ;@ return\r
1384 .else\r
1385 \r
1386         ;@ r0 == z80if\r
1387         stmfd sp!,{lr}\r
1388 \r
1389         tst r0,#4 ;@ check halt\r
1390         addne z80pc,z80pc,#1\r
1391 \r
1392         ldrb r1,[cpucontext,#z80im]\r
1393 \r
1394     ;@ clear halt and int flags\r
1395         eor r0,r0,r0\r
1396         strb r0,[cpucontext,#z80if]\r
1397 \r
1398         ;@ now check int mode\r
1399         cmp r1,#1\r
1400         beq DoInterrupt_mode1\r
1401         bgt DoInterrupt_mode2\r
1402 \r
1403 DoInterrupt_mode0:\r
1404         ;@ get 3 byte vector\r
1405         ldr r2,[cpucontext, #z80irqvector]\r
1406         and r1,r2,#0xFF0000\r
1407         cmp r1,#0xCD0000  ;@ call\r
1408         bne 1f\r
1409         ;@ ########\r
1410         ;@ # call\r
1411         ;@ ########\r
1412         ;@ save current pc on stack\r
1413         ldr r0,[cpucontext,#z80pc_base]\r
1414         sub r0,z80pc,r0\r
1415 .if FAST_Z80SP\r
1416         mov r1,r0, lsr #8\r
1417         strb r1,[z80sp,#-1]!\r
1418         strb r0,[z80sp,#-1]!\r
1419 .else\r
1420         sub z80sp,z80sp,#2\r
1421         mov r1,z80sp\r
1422         writemem16\r
1423         ldr r2,[cpucontext, #z80irqvector]\r
1424 .endif\r
1425         ;@ jump to vector\r
1426         mov r2,r2,lsl#16\r
1427         mov r0,r2,lsr#16\r
1428         ;@ rebase new pc\r
1429         rebasepc\r
1430 \r
1431         eatcycles 13\r
1432         b DoInterrupt_end\r
1433 \r
1434 1:\r
1435         cmp r1,#0xC30000  ;@ jump\r
1436         bne DoInterrupt_mode1    ;@ rst\r
1437         ;@ #######\r
1438         ;@ # jump\r
1439         ;@ #######\r
1440         ;@ jump to vector\r
1441         mov r2,r2,lsl#16\r
1442         mov r0,r2,lsr#16\r
1443         ;@ rebase new pc\r
1444         rebasepc\r
1445 \r
1446         eatcycles 13\r
1447         b DoInterrupt_end\r
1448 \r
1449 DoInterrupt_mode1:\r
1450         ldr r0,[cpucontext,#z80pc_base]\r
1451         sub r2,z80pc,r0\r
1452     opPUSHareg r2\r
1453         mov r0,#0x38\r
1454         rebasepc\r
1455 \r
1456         eatcycles 13\r
1457         b DoInterrupt_end\r
1458 \r
1459 DoInterrupt_mode2:\r
1460         ;@ push pc on stack\r
1461         ldr r0,[cpucontext,#z80pc_base]\r
1462         sub r2,z80pc,r0\r
1463     opPUSHareg r2\r
1464 \r
1465         ;@ get 1 byte vector address\r
1466         ldrb r0,[cpucontext, #z80irqvector]\r
1467         ldr r1,[cpucontext, #z80i]\r
1468         orr r0,r0,r1,lsr#16\r
1469 \r
1470         ;@ read new pc from vector address\r
1471 .if UPDATE_CONTEXT\r
1472      str z80pc,[cpucontext,#z80pc_pointer]\r
1473 .endif\r
1474 .if DRZ80_XMAP\r
1475     bl z80_xmap_read16\r
1476     rebasepc\r
1477 .else\r
1478         stmfd sp!,{r3,r12}\r
1479         mov lr,pc\r
1480         ldr pc,[cpucontext,#z80_read16]\r
1481 \r
1482         ;@ rebase new pc\r
1483         mov lr,pc\r
1484         ldr pc,[cpucontext,#z80_rebasePC] ;@ r0=new pc - external function sets z80pc_base and returns new z80pc in r0\r
1485         ldmfd sp!,{r3,r12}\r
1486         mov z80pc,r0    \r
1487 .endif\r
1488         eatcycles 17\r
1489 \r
1490 DoInterrupt_end:\r
1491         ;@ interupt accepted so callback irq interface\r
1492         ldr r0,[cpucontext, #z80irqcallback]\r
1493         tst r0,r0\r
1494         streqb r0,[cpucontext,#z80irq]       ;@ default handling\r
1495         ldmeqfd sp!,{pc}\r
1496         stmfd sp!,{r3,r12}\r
1497         mov lr,pc\r
1498         mov pc,r0    ;@ call callback function\r
1499         ldmfd sp!,{r3,r12}\r
1500         ldmfd sp!,{pc} ;@ return\r
1501 .endif\r
1502 \r
1503 .data\r
1504 .align 4\r
1505 \r
1506 DAATable: .hword  (0x00<<8)|(1<<ZFlag)|(1<<VFlag)\r
1507          .hword  (0x01<<8)                  \r
1508          .hword  (0x02<<8)                  \r
1509          .hword  (0x03<<8)               |(1<<VFlag)\r
1510          .hword  (0x04<<8)                  \r
1511          .hword  (0x05<<8)               |(1<<VFlag)\r
1512          .hword  (0x06<<8)               |(1<<VFlag)\r
1513          .hword  (0x07<<8)                  \r
1514          .hword  (0x08<<8)               \r
1515          .hword  (0x09<<8)            |(1<<VFlag)\r
1516          .hword  (0x10<<8)         |(1<<HFlag)      \r
1517          .hword  (0x11<<8)         |(1<<HFlag)   |(1<<VFlag)\r
1518          .hword  (0x12<<8)         |(1<<HFlag)   |(1<<VFlag)\r
1519          .hword  (0x13<<8)         |(1<<HFlag)      \r
1520          .hword  (0x14<<8)         |(1<<HFlag)   |(1<<VFlag)\r
1521          .hword  (0x15<<8)         |(1<<HFlag)      \r
1522          .hword  (0x10<<8)                  \r
1523          .hword  (0x11<<8)               |(1<<VFlag)\r
1524          .hword  (0x12<<8)               |(1<<VFlag)\r
1525          .hword  (0x13<<8)                  \r
1526          .hword  (0x14<<8)               |(1<<VFlag)\r
1527          .hword  (0x15<<8)                  \r
1528          .hword  (0x16<<8)                  \r
1529          .hword  (0x17<<8)               |(1<<VFlag)\r
1530          .hword  (0x18<<8)            |(1<<VFlag)\r
1531          .hword  (0x19<<8)               \r
1532          .hword  (0x20<<8)      |(1<<HFlag)      \r
1533          .hword  (0x21<<8)      |(1<<HFlag)   |(1<<VFlag)\r
1534          .hword  (0x22<<8)      |(1<<HFlag)   |(1<<VFlag)\r
1535          .hword  (0x23<<8)      |(1<<HFlag)      \r
1536          .hword  (0x24<<8)      |(1<<HFlag)   |(1<<VFlag)\r
1537          .hword  (0x25<<8)      |(1<<HFlag)      \r
1538          .hword  (0x20<<8)               \r
1539          .hword  (0x21<<8)            |(1<<VFlag)\r
1540          .hword  (0x22<<8)            |(1<<VFlag)\r
1541          .hword  (0x23<<8)               \r
1542          .hword  (0x24<<8)            |(1<<VFlag)\r
1543          .hword  (0x25<<8)               \r
1544          .hword  (0x26<<8)               \r
1545          .hword  (0x27<<8)            |(1<<VFlag)\r
1546          .hword  (0x28<<8)         |(1<<VFlag)\r
1547          .hword  (0x29<<8)            \r
1548          .hword  (0x30<<8)      |(1<<HFlag)   |(1<<VFlag)\r
1549          .hword  (0x31<<8)      |(1<<HFlag)      \r
1550          .hword  (0x32<<8)      |(1<<HFlag)      \r
1551          .hword  (0x33<<8)      |(1<<HFlag)   |(1<<VFlag)\r
1552          .hword  (0x34<<8)      |(1<<HFlag)      \r
1553          .hword  (0x35<<8)      |(1<<HFlag)   |(1<<VFlag)\r
1554          .hword  (0x30<<8)            |(1<<VFlag)\r
1555          .hword  (0x31<<8)               \r
1556          .hword  (0x32<<8)               \r
1557          .hword  (0x33<<8)            |(1<<VFlag)\r
1558          .hword  (0x34<<8)               \r
1559          .hword  (0x35<<8)            |(1<<VFlag)\r
1560          .hword  (0x36<<8)            |(1<<VFlag)\r
1561          .hword  (0x37<<8)               \r
1562          .hword  (0x38<<8)            \r
1563          .hword  (0x39<<8)         |(1<<VFlag)\r
1564          .hword  (0x40<<8)         |(1<<HFlag)      \r
1565          .hword  (0x41<<8)         |(1<<HFlag)   |(1<<VFlag)\r
1566          .hword  (0x42<<8)         |(1<<HFlag)   |(1<<VFlag)\r
1567          .hword  (0x43<<8)         |(1<<HFlag)      \r
1568          .hword  (0x44<<8)         |(1<<HFlag)   |(1<<VFlag)\r
1569          .hword  (0x45<<8)         |(1<<HFlag)      \r
1570          .hword  (0x40<<8)                  \r
1571          .hword  (0x41<<8)               |(1<<VFlag)\r
1572          .hword  (0x42<<8)               |(1<<VFlag)\r
1573          .hword  (0x43<<8)                  \r
1574          .hword  (0x44<<8)               |(1<<VFlag)\r
1575          .hword  (0x45<<8)                  \r
1576          .hword  (0x46<<8)                  \r
1577          .hword  (0x47<<8)               |(1<<VFlag)\r
1578          .hword  (0x48<<8)            |(1<<VFlag)\r
1579          .hword  (0x49<<8)               \r
1580          .hword  (0x50<<8)         |(1<<HFlag)   |(1<<VFlag)\r
1581          .hword  (0x51<<8)         |(1<<HFlag)      \r
1582          .hword  (0x52<<8)         |(1<<HFlag)      \r
1583          .hword  (0x53<<8)         |(1<<HFlag)   |(1<<VFlag)\r
1584          .hword  (0x54<<8)         |(1<<HFlag)      \r
1585          .hword  (0x55<<8)         |(1<<HFlag)   |(1<<VFlag)\r
1586          .hword  (0x50<<8)               |(1<<VFlag)\r
1587          .hword  (0x51<<8)                  \r
1588          .hword  (0x52<<8)                  \r
1589          .hword  (0x53<<8)               |(1<<VFlag)\r
1590          .hword  (0x54<<8)                  \r
1591          .hword  (0x55<<8)               |(1<<VFlag)\r
1592          .hword  (0x56<<8)               |(1<<VFlag)\r
1593          .hword  (0x57<<8)                  \r
1594          .hword  (0x58<<8)               \r
1595          .hword  (0x59<<8)            |(1<<VFlag)\r
1596          .hword  (0x60<<8)      |(1<<HFlag)   |(1<<VFlag)\r
1597          .hword  (0x61<<8)      |(1<<HFlag)      \r
1598          .hword  (0x62<<8)      |(1<<HFlag)      \r
1599          .hword  (0x63<<8)      |(1<<HFlag)   |(1<<VFlag)\r
1600          .hword  (0x64<<8)      |(1<<HFlag)      \r
1601          .hword  (0x65<<8)      |(1<<HFlag)   |(1<<VFlag)\r
1602          .hword  (0x60<<8)            |(1<<VFlag)\r
1603          .hword  (0x61<<8)               \r
1604          .hword  (0x62<<8)               \r
1605          .hword  (0x63<<8)            |(1<<VFlag)\r
1606          .hword  (0x64<<8)               \r
1607          .hword  (0x65<<8)            |(1<<VFlag)\r
1608          .hword  (0x66<<8)            |(1<<VFlag)\r
1609          .hword  (0x67<<8)               \r
1610          .hword  (0x68<<8)            \r
1611          .hword  (0x69<<8)         |(1<<VFlag)\r
1612          .hword  (0x70<<8)      |(1<<HFlag)      \r
1613          .hword  (0x71<<8)      |(1<<HFlag)   |(1<<VFlag)\r
1614          .hword  (0x72<<8)      |(1<<HFlag)   |(1<<VFlag)\r
1615          .hword  (0x73<<8)      |(1<<HFlag)      \r
1616          .hword  (0x74<<8)      |(1<<HFlag)   |(1<<VFlag)\r
1617          .hword  (0x75<<8)      |(1<<HFlag)      \r
1618          .hword  (0x70<<8)               \r
1619          .hword  (0x71<<8)            |(1<<VFlag)\r
1620          .hword  (0x72<<8)            |(1<<VFlag)\r
1621          .hword  (0x73<<8)               \r
1622          .hword  (0x74<<8)            |(1<<VFlag)\r
1623          .hword  (0x75<<8)               \r
1624          .hword  (0x76<<8)               \r
1625          .hword  (0x77<<8)            |(1<<VFlag)\r
1626          .hword  (0x78<<8)         |(1<<VFlag)\r
1627          .hword  (0x79<<8)            \r
1628          .hword  (0x80<<8)|(1<<SFlag)      |(1<<HFlag)      \r
1629          .hword  (0x81<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)\r
1630          .hword  (0x82<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)\r
1631          .hword  (0x83<<8)|(1<<SFlag)      |(1<<HFlag)      \r
1632          .hword  (0x84<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)\r
1633          .hword  (0x85<<8)|(1<<SFlag)      |(1<<HFlag)      \r
1634          .hword  (0x80<<8)|(1<<SFlag)               \r
1635          .hword  (0x81<<8)|(1<<SFlag)            |(1<<VFlag)\r
1636          .hword  (0x82<<8)|(1<<SFlag)            |(1<<VFlag)\r
1637          .hword  (0x83<<8)|(1<<SFlag)               \r
1638          .hword  (0x84<<8)|(1<<SFlag)            |(1<<VFlag)\r
1639          .hword  (0x85<<8)|(1<<SFlag)               \r
1640          .hword  (0x86<<8)|(1<<SFlag)               \r
1641          .hword  (0x87<<8)|(1<<SFlag)            |(1<<VFlag)\r
1642          .hword  (0x88<<8)|(1<<SFlag)         |(1<<VFlag)\r
1643          .hword  (0x89<<8)|(1<<SFlag)            \r
1644          .hword  (0x90<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)\r
1645          .hword  (0x91<<8)|(1<<SFlag)      |(1<<HFlag)      \r
1646          .hword  (0x92<<8)|(1<<SFlag)      |(1<<HFlag)      \r
1647          .hword  (0x93<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)\r
1648          .hword  (0x94<<8)|(1<<SFlag)      |(1<<HFlag)      \r
1649          .hword  (0x95<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)\r
1650          .hword  (0x90<<8)|(1<<SFlag)            |(1<<VFlag)\r
1651          .hword  (0x91<<8)|(1<<SFlag)               \r
1652          .hword  (0x92<<8)|(1<<SFlag)               \r
1653          .hword  (0x93<<8)|(1<<SFlag)            |(1<<VFlag)\r
1654          .hword  (0x94<<8)|(1<<SFlag)               \r
1655          .hword  (0x95<<8)|(1<<SFlag)            |(1<<VFlag)\r
1656          .hword  (0x96<<8)|(1<<SFlag)            |(1<<VFlag)\r
1657          .hword  (0x97<<8)|(1<<SFlag)               \r
1658          .hword  (0x98<<8)|(1<<SFlag)            \r
1659          .hword  (0x99<<8)|(1<<SFlag)         |(1<<VFlag)\r
1660          .hword  (0x00<<8)   |(1<<ZFlag)   |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
1661          .hword  (0x01<<8)         |(1<<HFlag)         |(1<<CFlag)\r
1662          .hword  (0x02<<8)         |(1<<HFlag)         |(1<<CFlag)\r
1663          .hword  (0x03<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
1664          .hword  (0x04<<8)         |(1<<HFlag)         |(1<<CFlag)\r
1665          .hword  (0x05<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
1666          .hword  (0x00<<8)   |(1<<ZFlag)         |(1<<VFlag)   |(1<<CFlag)\r
1667          .hword  (0x01<<8)                     |(1<<CFlag)\r
1668          .hword  (0x02<<8)                     |(1<<CFlag)\r
1669          .hword  (0x03<<8)               |(1<<VFlag)   |(1<<CFlag)\r
1670          .hword  (0x04<<8)                     |(1<<CFlag)\r
1671          .hword  (0x05<<8)               |(1<<VFlag)   |(1<<CFlag)\r
1672          .hword  (0x06<<8)               |(1<<VFlag)   |(1<<CFlag)\r
1673          .hword  (0x07<<8)                     |(1<<CFlag)\r
1674          .hword  (0x08<<8)                  |(1<<CFlag)\r
1675          .hword  (0x09<<8)            |(1<<VFlag)   |(1<<CFlag)\r
1676          .hword  (0x10<<8)         |(1<<HFlag)         |(1<<CFlag)\r
1677          .hword  (0x11<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
1678          .hword  (0x12<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
1679          .hword  (0x13<<8)         |(1<<HFlag)         |(1<<CFlag)\r
1680          .hword  (0x14<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
1681          .hword  (0x15<<8)         |(1<<HFlag)         |(1<<CFlag)\r
1682          .hword  (0x10<<8)                     |(1<<CFlag)\r
1683          .hword  (0x11<<8)               |(1<<VFlag)   |(1<<CFlag)\r
1684          .hword  (0x12<<8)               |(1<<VFlag)   |(1<<CFlag)\r
1685          .hword  (0x13<<8)                     |(1<<CFlag)\r
1686          .hword  (0x14<<8)               |(1<<VFlag)   |(1<<CFlag)\r
1687          .hword  (0x15<<8)                     |(1<<CFlag)\r
1688          .hword  (0x16<<8)                     |(1<<CFlag)\r
1689          .hword  (0x17<<8)               |(1<<VFlag)   |(1<<CFlag)\r
1690          .hword  (0x18<<8)            |(1<<VFlag)   |(1<<CFlag)\r
1691          .hword  (0x19<<8)                  |(1<<CFlag)\r
1692          .hword  (0x20<<8)      |(1<<HFlag)         |(1<<CFlag)\r
1693          .hword  (0x21<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
1694          .hword  (0x22<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
1695          .hword  (0x23<<8)      |(1<<HFlag)         |(1<<CFlag)\r
1696          .hword  (0x24<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
1697          .hword  (0x25<<8)      |(1<<HFlag)         |(1<<CFlag)\r
1698          .hword  (0x20<<8)                  |(1<<CFlag)\r
1699          .hword  (0x21<<8)            |(1<<VFlag)   |(1<<CFlag)\r
1700          .hword  (0x22<<8)            |(1<<VFlag)   |(1<<CFlag)\r
1701          .hword  (0x23<<8)                  |(1<<CFlag)\r
1702          .hword  (0x24<<8)            |(1<<VFlag)   |(1<<CFlag)\r
1703          .hword  (0x25<<8)                  |(1<<CFlag)\r
1704          .hword  (0x26<<8)                  |(1<<CFlag)\r
1705          .hword  (0x27<<8)            |(1<<VFlag)   |(1<<CFlag)\r
1706          .hword  (0x28<<8)         |(1<<VFlag)   |(1<<CFlag)\r
1707          .hword  (0x29<<8)               |(1<<CFlag)\r
1708          .hword  (0x30<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
1709          .hword  (0x31<<8)      |(1<<HFlag)         |(1<<CFlag)\r
1710          .hword  (0x32<<8)      |(1<<HFlag)         |(1<<CFlag)\r
1711          .hword  (0x33<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
1712          .hword  (0x34<<8)      |(1<<HFlag)         |(1<<CFlag)\r
1713          .hword  (0x35<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
1714          .hword  (0x30<<8)            |(1<<VFlag)   |(1<<CFlag)\r
1715          .hword  (0x31<<8)                  |(1<<CFlag)\r
1716          .hword  (0x32<<8)                  |(1<<CFlag)\r
1717          .hword  (0x33<<8)            |(1<<VFlag)   |(1<<CFlag)\r
1718          .hword  (0x34<<8)                  |(1<<CFlag)\r
1719          .hword  (0x35<<8)            |(1<<VFlag)   |(1<<CFlag)\r
1720          .hword  (0x36<<8)            |(1<<VFlag)   |(1<<CFlag)\r
1721          .hword  (0x37<<8)                  |(1<<CFlag)\r
1722          .hword  (0x38<<8)               |(1<<CFlag)\r
1723          .hword  (0x39<<8)         |(1<<VFlag)   |(1<<CFlag)\r
1724          .hword  (0x40<<8)         |(1<<HFlag)         |(1<<CFlag)\r
1725          .hword  (0x41<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
1726          .hword  (0x42<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
1727          .hword  (0x43<<8)         |(1<<HFlag)         |(1<<CFlag)\r
1728          .hword  (0x44<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
1729          .hword  (0x45<<8)         |(1<<HFlag)         |(1<<CFlag)\r
1730          .hword  (0x40<<8)                     |(1<<CFlag)\r
1731          .hword  (0x41<<8)               |(1<<VFlag)   |(1<<CFlag)\r
1732          .hword  (0x42<<8)               |(1<<VFlag)   |(1<<CFlag)\r
1733          .hword  (0x43<<8)                     |(1<<CFlag)\r
1734          .hword  (0x44<<8)               |(1<<VFlag)   |(1<<CFlag)\r
1735          .hword  (0x45<<8)                     |(1<<CFlag)\r
1736          .hword  (0x46<<8)                     |(1<<CFlag)\r
1737          .hword  (0x47<<8)               |(1<<VFlag)   |(1<<CFlag)\r
1738          .hword  (0x48<<8)            |(1<<VFlag)   |(1<<CFlag)\r
1739          .hword  (0x49<<8)                  |(1<<CFlag)\r
1740          .hword  (0x50<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
1741          .hword  (0x51<<8)         |(1<<HFlag)         |(1<<CFlag)\r
1742          .hword  (0x52<<8)         |(1<<HFlag)         |(1<<CFlag)\r
1743          .hword  (0x53<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
1744          .hword  (0x54<<8)         |(1<<HFlag)         |(1<<CFlag)\r
1745          .hword  (0x55<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
1746          .hword  (0x50<<8)               |(1<<VFlag)   |(1<<CFlag)\r
1747          .hword  (0x51<<8)                     |(1<<CFlag)\r
1748          .hword  (0x52<<8)                     |(1<<CFlag)\r
1749          .hword  (0x53<<8)               |(1<<VFlag)   |(1<<CFlag)\r
1750          .hword  (0x54<<8)                     |(1<<CFlag)\r
1751          .hword  (0x55<<8)               |(1<<VFlag)   |(1<<CFlag)\r
1752          .hword  (0x56<<8)               |(1<<VFlag)   |(1<<CFlag)\r
1753          .hword  (0x57<<8)                     |(1<<CFlag)\r
1754          .hword  (0x58<<8)                  |(1<<CFlag)\r
1755          .hword  (0x59<<8)            |(1<<VFlag)   |(1<<CFlag)\r
1756          .hword  (0x60<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
1757          .hword  (0x61<<8)      |(1<<HFlag)         |(1<<CFlag)\r
1758          .hword  (0x62<<8)      |(1<<HFlag)         |(1<<CFlag)\r
1759          .hword  (0x63<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
1760          .hword  (0x64<<8)      |(1<<HFlag)         |(1<<CFlag)\r
1761          .hword  (0x65<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
1762          .hword  (0x60<<8)            |(1<<VFlag)   |(1<<CFlag)\r
1763          .hword  (0x61<<8)                  |(1<<CFlag)\r
1764          .hword  (0x62<<8)                  |(1<<CFlag)\r
1765          .hword  (0x63<<8)            |(1<<VFlag)   |(1<<CFlag)\r
1766          .hword  (0x64<<8)                  |(1<<CFlag)\r
1767          .hword  (0x65<<8)            |(1<<VFlag)   |(1<<CFlag)\r
1768          .hword  (0x66<<8)            |(1<<VFlag)   |(1<<CFlag)\r
1769          .hword  (0x67<<8)                  |(1<<CFlag)\r
1770          .hword  (0x68<<8)               |(1<<CFlag)\r
1771          .hword  (0x69<<8)         |(1<<VFlag)   |(1<<CFlag)\r
1772          .hword  (0x70<<8)      |(1<<HFlag)         |(1<<CFlag)\r
1773          .hword  (0x71<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
1774          .hword  (0x72<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
1775          .hword  (0x73<<8)      |(1<<HFlag)         |(1<<CFlag)\r
1776          .hword  (0x74<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
1777          .hword  (0x75<<8)      |(1<<HFlag)         |(1<<CFlag)\r
1778          .hword  (0x70<<8)                  |(1<<CFlag)\r
1779          .hword  (0x71<<8)            |(1<<VFlag)   |(1<<CFlag)\r
1780          .hword  (0x72<<8)            |(1<<VFlag)   |(1<<CFlag)\r
1781          .hword  (0x73<<8)                  |(1<<CFlag)\r
1782          .hword  (0x74<<8)            |(1<<VFlag)   |(1<<CFlag)\r
1783          .hword  (0x75<<8)                  |(1<<CFlag)\r
1784          .hword  (0x76<<8)                  |(1<<CFlag)\r
1785          .hword  (0x77<<8)            |(1<<VFlag)   |(1<<CFlag)\r
1786          .hword  (0x78<<8)         |(1<<VFlag)   |(1<<CFlag)\r
1787          .hword  (0x79<<8)               |(1<<CFlag)\r
1788          .hword  (0x80<<8)|(1<<SFlag)      |(1<<HFlag)         |(1<<CFlag)\r
1789          .hword  (0x81<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
1790          .hword  (0x82<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
1791          .hword  (0x83<<8)|(1<<SFlag)      |(1<<HFlag)         |(1<<CFlag)\r
1792          .hword  (0x84<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
1793          .hword  (0x85<<8)|(1<<SFlag)      |(1<<HFlag)         |(1<<CFlag)\r
1794          .hword  (0x80<<8)|(1<<SFlag)                  |(1<<CFlag)\r
1795          .hword  (0x81<<8)|(1<<SFlag)            |(1<<VFlag)   |(1<<CFlag)\r
1796          .hword  (0x82<<8)|(1<<SFlag)            |(1<<VFlag)   |(1<<CFlag)\r
1797          .hword  (0x83<<8)|(1<<SFlag)                  |(1<<CFlag)\r
1798          .hword  (0x84<<8)|(1<<SFlag)            |(1<<VFlag)   |(1<<CFlag)\r
1799          .hword  (0x85<<8)|(1<<SFlag)                  |(1<<CFlag)\r
1800          .hword  (0x86<<8)|(1<<SFlag)                  |(1<<CFlag)\r
1801          .hword  (0x87<<8)|(1<<SFlag)            |(1<<VFlag)   |(1<<CFlag)\r
1802          .hword  (0x88<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)\r
1803          .hword  (0x89<<8)|(1<<SFlag)               |(1<<CFlag)\r
1804          .hword  (0x90<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
1805          .hword  (0x91<<8)|(1<<SFlag)      |(1<<HFlag)         |(1<<CFlag)\r
1806          .hword  (0x92<<8)|(1<<SFlag)      |(1<<HFlag)         |(1<<CFlag)\r
1807          .hword  (0x93<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
1808          .hword  (0x94<<8)|(1<<SFlag)      |(1<<HFlag)         |(1<<CFlag)\r
1809          .hword  (0x95<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
1810          .hword  (0x90<<8)|(1<<SFlag)            |(1<<VFlag)   |(1<<CFlag)\r
1811          .hword  (0x91<<8)|(1<<SFlag)                  |(1<<CFlag)\r
1812          .hword  (0x92<<8)|(1<<SFlag)                  |(1<<CFlag)\r
1813          .hword  (0x93<<8)|(1<<SFlag)            |(1<<VFlag)   |(1<<CFlag)\r
1814          .hword  (0x94<<8)|(1<<SFlag)                  |(1<<CFlag)\r
1815          .hword  (0x95<<8)|(1<<SFlag)            |(1<<VFlag)   |(1<<CFlag)\r
1816          .hword  (0x96<<8)|(1<<SFlag)            |(1<<VFlag)   |(1<<CFlag)\r
1817          .hword  (0x97<<8)|(1<<SFlag)                  |(1<<CFlag)\r
1818          .hword  (0x98<<8)|(1<<SFlag)               |(1<<CFlag)\r
1819          .hword  (0x99<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)\r
1820          .hword  (0xA0<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
1821          .hword  (0xA1<<8)|(1<<SFlag)   |(1<<HFlag)         |(1<<CFlag)\r
1822          .hword  (0xA2<<8)|(1<<SFlag)   |(1<<HFlag)         |(1<<CFlag)\r
1823          .hword  (0xA3<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
1824          .hword  (0xA4<<8)|(1<<SFlag)   |(1<<HFlag)         |(1<<CFlag)\r
1825          .hword  (0xA5<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
1826          .hword  (0xA0<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)\r
1827          .hword  (0xA1<<8)|(1<<SFlag)               |(1<<CFlag)\r
1828          .hword  (0xA2<<8)|(1<<SFlag)               |(1<<CFlag)\r
1829          .hword  (0xA3<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)\r
1830          .hword  (0xA4<<8)|(1<<SFlag)               |(1<<CFlag)\r
1831          .hword  (0xA5<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)\r
1832          .hword  (0xA6<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)\r
1833          .hword  (0xA7<<8)|(1<<SFlag)               |(1<<CFlag)\r
1834          .hword  (0xA8<<8)|(1<<SFlag)            |(1<<CFlag)\r
1835          .hword  (0xA9<<8)|(1<<SFlag)      |(1<<VFlag)   |(1<<CFlag)\r
1836          .hword  (0xB0<<8)|(1<<SFlag)   |(1<<HFlag)         |(1<<CFlag)\r
1837          .hword  (0xB1<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
1838          .hword  (0xB2<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
1839          .hword  (0xB3<<8)|(1<<SFlag)   |(1<<HFlag)         |(1<<CFlag)\r
1840          .hword  (0xB4<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
1841          .hword  (0xB5<<8)|(1<<SFlag)   |(1<<HFlag)         |(1<<CFlag)\r
1842          .hword  (0xB0<<8)|(1<<SFlag)               |(1<<CFlag)\r
1843          .hword  (0xB1<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)\r
1844          .hword  (0xB2<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)\r
1845          .hword  (0xB3<<8)|(1<<SFlag)               |(1<<CFlag)\r
1846          .hword  (0xB4<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)\r
1847          .hword  (0xB5<<8)|(1<<SFlag)               |(1<<CFlag)\r
1848          .hword  (0xB6<<8)|(1<<SFlag)               |(1<<CFlag)\r
1849          .hword  (0xB7<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)\r
1850          .hword  (0xB8<<8)|(1<<SFlag)      |(1<<VFlag)   |(1<<CFlag)\r
1851          .hword  (0xB9<<8)|(1<<SFlag)            |(1<<CFlag)\r
1852          .hword  (0xC0<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
1853          .hword  (0xC1<<8)|(1<<SFlag)      |(1<<HFlag)         |(1<<CFlag)\r
1854          .hword  (0xC2<<8)|(1<<SFlag)      |(1<<HFlag)         |(1<<CFlag)\r
1855          .hword  (0xC3<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
1856          .hword  (0xC4<<8)|(1<<SFlag)      |(1<<HFlag)         |(1<<CFlag)\r
1857          .hword  (0xC5<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
1858          .hword  (0xC0<<8)|(1<<SFlag)            |(1<<VFlag)   |(1<<CFlag)\r
1859          .hword  (0xC1<<8)|(1<<SFlag)                  |(1<<CFlag)\r
1860          .hword  (0xC2<<8)|(1<<SFlag)                  |(1<<CFlag)\r
1861          .hword  (0xC3<<8)|(1<<SFlag)            |(1<<VFlag)   |(1<<CFlag)\r
1862          .hword  (0xC4<<8)|(1<<SFlag)                  |(1<<CFlag)\r
1863          .hword  (0xC5<<8)|(1<<SFlag)            |(1<<VFlag)   |(1<<CFlag)\r
1864          .hword  (0xC6<<8)|(1<<SFlag)            |(1<<VFlag)   |(1<<CFlag)\r
1865          .hword  (0xC7<<8)|(1<<SFlag)                  |(1<<CFlag)\r
1866          .hword  (0xC8<<8)|(1<<SFlag)               |(1<<CFlag)\r
1867          .hword  (0xC9<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)\r
1868          .hword  (0xD0<<8)|(1<<SFlag)      |(1<<HFlag)         |(1<<CFlag)\r
1869          .hword  (0xD1<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
1870          .hword  (0xD2<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
1871          .hword  (0xD3<<8)|(1<<SFlag)      |(1<<HFlag)         |(1<<CFlag)\r
1872          .hword  (0xD4<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
1873          .hword  (0xD5<<8)|(1<<SFlag)      |(1<<HFlag)         |(1<<CFlag)\r
1874          .hword  (0xD0<<8)|(1<<SFlag)                  |(1<<CFlag)\r
1875          .hword  (0xD1<<8)|(1<<SFlag)            |(1<<VFlag)   |(1<<CFlag)\r
1876          .hword  (0xD2<<8)|(1<<SFlag)            |(1<<VFlag)   |(1<<CFlag)\r
1877          .hword  (0xD3<<8)|(1<<SFlag)                  |(1<<CFlag)\r
1878          .hword  (0xD4<<8)|(1<<SFlag)            |(1<<VFlag)   |(1<<CFlag)\r
1879          .hword  (0xD5<<8)|(1<<SFlag)                  |(1<<CFlag)\r
1880          .hword  (0xD6<<8)|(1<<SFlag)                  |(1<<CFlag)\r
1881          .hword  (0xD7<<8)|(1<<SFlag)            |(1<<VFlag)   |(1<<CFlag)\r
1882          .hword  (0xD8<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)\r
1883          .hword  (0xD9<<8)|(1<<SFlag)               |(1<<CFlag)\r
1884          .hword  (0xE0<<8)|(1<<SFlag)   |(1<<HFlag)         |(1<<CFlag)\r
1885          .hword  (0xE1<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
1886          .hword  (0xE2<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
1887          .hword  (0xE3<<8)|(1<<SFlag)   |(1<<HFlag)         |(1<<CFlag)\r
1888          .hword  (0xE4<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
1889          .hword  (0xE5<<8)|(1<<SFlag)   |(1<<HFlag)         |(1<<CFlag)\r
1890          .hword  (0xE0<<8)|(1<<SFlag)               |(1<<CFlag)\r
1891          .hword  (0xE1<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)\r
1892          .hword  (0xE2<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)\r
1893          .hword  (0xE3<<8)|(1<<SFlag)               |(1<<CFlag)\r
1894          .hword  (0xE4<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)\r
1895          .hword  (0xE5<<8)|(1<<SFlag)               |(1<<CFlag)\r
1896          .hword  (0xE6<<8)|(1<<SFlag)               |(1<<CFlag)\r
1897          .hword  (0xE7<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)\r
1898          .hword  (0xE8<<8)|(1<<SFlag)      |(1<<VFlag)   |(1<<CFlag)\r
1899          .hword  (0xE9<<8)|(1<<SFlag)            |(1<<CFlag)\r
1900          .hword  (0xF0<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
1901          .hword  (0xF1<<8)|(1<<SFlag)   |(1<<HFlag)         |(1<<CFlag)\r
1902          .hword  (0xF2<<8)|(1<<SFlag)   |(1<<HFlag)         |(1<<CFlag)\r
1903          .hword  (0xF3<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
1904          .hword  (0xF4<<8)|(1<<SFlag)   |(1<<HFlag)         |(1<<CFlag)\r
1905          .hword  (0xF5<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
1906          .hword  (0xF0<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)\r
1907          .hword  (0xF1<<8)|(1<<SFlag)               |(1<<CFlag)\r
1908          .hword  (0xF2<<8)|(1<<SFlag)               |(1<<CFlag)\r
1909          .hword  (0xF3<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)\r
1910          .hword  (0xF4<<8)|(1<<SFlag)               |(1<<CFlag)\r
1911          .hword  (0xF5<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)\r
1912          .hword  (0xF6<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)\r
1913          .hword  (0xF7<<8)|(1<<SFlag)               |(1<<CFlag)\r
1914          .hword  (0xF8<<8)|(1<<SFlag)            |(1<<CFlag)\r
1915          .hword  (0xF9<<8)|(1<<SFlag)      |(1<<VFlag)   |(1<<CFlag)\r
1916          .hword  (0x00<<8)   |(1<<ZFlag)   |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
1917          .hword  (0x01<<8)         |(1<<HFlag)         |(1<<CFlag)\r
1918          .hword  (0x02<<8)         |(1<<HFlag)         |(1<<CFlag)\r
1919          .hword  (0x03<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
1920          .hword  (0x04<<8)         |(1<<HFlag)         |(1<<CFlag)\r
1921          .hword  (0x05<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
1922          .hword  (0x00<<8)   |(1<<ZFlag)         |(1<<VFlag)   |(1<<CFlag)\r
1923          .hword  (0x01<<8)                     |(1<<CFlag)\r
1924          .hword  (0x02<<8)                     |(1<<CFlag)\r
1925          .hword  (0x03<<8)               |(1<<VFlag)   |(1<<CFlag)\r
1926          .hword  (0x04<<8)                     |(1<<CFlag)\r
1927          .hword  (0x05<<8)               |(1<<VFlag)   |(1<<CFlag)\r
1928          .hword  (0x06<<8)               |(1<<VFlag)   |(1<<CFlag)\r
1929          .hword  (0x07<<8)                     |(1<<CFlag)\r
1930          .hword  (0x08<<8)                  |(1<<CFlag)\r
1931          .hword  (0x09<<8)            |(1<<VFlag)   |(1<<CFlag)\r
1932          .hword  (0x10<<8)         |(1<<HFlag)         |(1<<CFlag)\r
1933          .hword  (0x11<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
1934          .hword  (0x12<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
1935          .hword  (0x13<<8)         |(1<<HFlag)         |(1<<CFlag)\r
1936          .hword  (0x14<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
1937          .hword  (0x15<<8)         |(1<<HFlag)         |(1<<CFlag)\r
1938          .hword  (0x10<<8)                     |(1<<CFlag)\r
1939          .hword  (0x11<<8)               |(1<<VFlag)   |(1<<CFlag)\r
1940          .hword  (0x12<<8)               |(1<<VFlag)   |(1<<CFlag)\r
1941          .hword  (0x13<<8)                     |(1<<CFlag)\r
1942          .hword  (0x14<<8)               |(1<<VFlag)   |(1<<CFlag)\r
1943          .hword  (0x15<<8)                     |(1<<CFlag)\r
1944          .hword  (0x16<<8)                     |(1<<CFlag)\r
1945          .hword  (0x17<<8)               |(1<<VFlag)   |(1<<CFlag)\r
1946          .hword  (0x18<<8)            |(1<<VFlag)   |(1<<CFlag)\r
1947          .hword  (0x19<<8)                  |(1<<CFlag)\r
1948          .hword  (0x20<<8)      |(1<<HFlag)         |(1<<CFlag)\r
1949          .hword  (0x21<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
1950          .hword  (0x22<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
1951          .hword  (0x23<<8)      |(1<<HFlag)         |(1<<CFlag)\r
1952          .hword  (0x24<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
1953          .hword  (0x25<<8)      |(1<<HFlag)         |(1<<CFlag)\r
1954          .hword  (0x20<<8)                  |(1<<CFlag)\r
1955          .hword  (0x21<<8)            |(1<<VFlag)   |(1<<CFlag)\r
1956          .hword  (0x22<<8)            |(1<<VFlag)   |(1<<CFlag)\r
1957          .hword  (0x23<<8)                  |(1<<CFlag)\r
1958          .hword  (0x24<<8)            |(1<<VFlag)   |(1<<CFlag)\r
1959          .hword  (0x25<<8)                  |(1<<CFlag)\r
1960          .hword  (0x26<<8)                  |(1<<CFlag)\r
1961          .hword  (0x27<<8)            |(1<<VFlag)   |(1<<CFlag)\r
1962          .hword  (0x28<<8)         |(1<<VFlag)   |(1<<CFlag)\r
1963          .hword  (0x29<<8)               |(1<<CFlag)\r
1964          .hword  (0x30<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
1965          .hword  (0x31<<8)      |(1<<HFlag)         |(1<<CFlag)\r
1966          .hword  (0x32<<8)      |(1<<HFlag)         |(1<<CFlag)\r
1967          .hword  (0x33<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
1968          .hword  (0x34<<8)      |(1<<HFlag)         |(1<<CFlag)\r
1969          .hword  (0x35<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
1970          .hword  (0x30<<8)            |(1<<VFlag)   |(1<<CFlag)\r
1971          .hword  (0x31<<8)                  |(1<<CFlag)\r
1972          .hword  (0x32<<8)                  |(1<<CFlag)\r
1973          .hword  (0x33<<8)            |(1<<VFlag)   |(1<<CFlag)\r
1974          .hword  (0x34<<8)                  |(1<<CFlag)\r
1975          .hword  (0x35<<8)            |(1<<VFlag)   |(1<<CFlag)\r
1976          .hword  (0x36<<8)            |(1<<VFlag)   |(1<<CFlag)\r
1977          .hword  (0x37<<8)                  |(1<<CFlag)\r
1978          .hword  (0x38<<8)               |(1<<CFlag)\r
1979          .hword  (0x39<<8)         |(1<<VFlag)   |(1<<CFlag)\r
1980          .hword  (0x40<<8)         |(1<<HFlag)         |(1<<CFlag)\r
1981          .hword  (0x41<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
1982          .hword  (0x42<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
1983          .hword  (0x43<<8)         |(1<<HFlag)         |(1<<CFlag)\r
1984          .hword  (0x44<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
1985          .hword  (0x45<<8)         |(1<<HFlag)         |(1<<CFlag)\r
1986          .hword  (0x40<<8)                     |(1<<CFlag)\r
1987          .hword  (0x41<<8)               |(1<<VFlag)   |(1<<CFlag)\r
1988          .hword  (0x42<<8)               |(1<<VFlag)   |(1<<CFlag)\r
1989          .hword  (0x43<<8)                     |(1<<CFlag)\r
1990          .hword  (0x44<<8)               |(1<<VFlag)   |(1<<CFlag)\r
1991          .hword  (0x45<<8)                     |(1<<CFlag)\r
1992          .hword  (0x46<<8)                     |(1<<CFlag)\r
1993          .hword  (0x47<<8)               |(1<<VFlag)   |(1<<CFlag)\r
1994          .hword  (0x48<<8)            |(1<<VFlag)   |(1<<CFlag)\r
1995          .hword  (0x49<<8)                  |(1<<CFlag)\r
1996          .hword  (0x50<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
1997          .hword  (0x51<<8)         |(1<<HFlag)         |(1<<CFlag)\r
1998          .hword  (0x52<<8)         |(1<<HFlag)         |(1<<CFlag)\r
1999          .hword  (0x53<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
2000          .hword  (0x54<<8)         |(1<<HFlag)         |(1<<CFlag)\r
2001          .hword  (0x55<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
2002          .hword  (0x50<<8)               |(1<<VFlag)   |(1<<CFlag)\r
2003          .hword  (0x51<<8)                     |(1<<CFlag)\r
2004          .hword  (0x52<<8)                     |(1<<CFlag)\r
2005          .hword  (0x53<<8)               |(1<<VFlag)   |(1<<CFlag)\r
2006          .hword  (0x54<<8)                     |(1<<CFlag)\r
2007          .hword  (0x55<<8)               |(1<<VFlag)   |(1<<CFlag)\r
2008          .hword  (0x56<<8)               |(1<<VFlag)   |(1<<CFlag)\r
2009          .hword  (0x57<<8)                     |(1<<CFlag)\r
2010          .hword  (0x58<<8)                  |(1<<CFlag)\r
2011          .hword  (0x59<<8)            |(1<<VFlag)   |(1<<CFlag)\r
2012          .hword  (0x60<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
2013          .hword  (0x61<<8)      |(1<<HFlag)         |(1<<CFlag)\r
2014          .hword  (0x62<<8)      |(1<<HFlag)         |(1<<CFlag)\r
2015          .hword  (0x63<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
2016          .hword  (0x64<<8)      |(1<<HFlag)         |(1<<CFlag)\r
2017          .hword  (0x65<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
2018          .hword  (0x06<<8)               |(1<<VFlag)\r
2019          .hword  (0x07<<8)                  \r
2020          .hword  (0x08<<8)               \r
2021          .hword  (0x09<<8)            |(1<<VFlag)\r
2022          .hword  (0x0A<<8)            |(1<<VFlag)\r
2023          .hword  (0x0B<<8)               \r
2024          .hword  (0x0C<<8)            |(1<<VFlag)\r
2025          .hword  (0x0D<<8)               \r
2026          .hword  (0x0E<<8)               \r
2027          .hword  (0x0F<<8)            |(1<<VFlag)\r
2028          .hword  (0x10<<8)         |(1<<HFlag)      \r
2029          .hword  (0x11<<8)         |(1<<HFlag)   |(1<<VFlag)\r
2030          .hword  (0x12<<8)         |(1<<HFlag)   |(1<<VFlag)\r
2031          .hword  (0x13<<8)         |(1<<HFlag)      \r
2032          .hword  (0x14<<8)         |(1<<HFlag)   |(1<<VFlag)\r
2033          .hword  (0x15<<8)         |(1<<HFlag)      \r
2034          .hword  (0x16<<8)                  \r
2035          .hword  (0x17<<8)               |(1<<VFlag)\r
2036          .hword  (0x18<<8)            |(1<<VFlag)\r
2037          .hword  (0x19<<8)               \r
2038          .hword  (0x1A<<8)               \r
2039          .hword  (0x1B<<8)            |(1<<VFlag)\r
2040          .hword  (0x1C<<8)               \r
2041          .hword  (0x1D<<8)            |(1<<VFlag)\r
2042          .hword  (0x1E<<8)            |(1<<VFlag)\r
2043          .hword  (0x1F<<8)               \r
2044          .hword  (0x20<<8)      |(1<<HFlag)      \r
2045          .hword  (0x21<<8)      |(1<<HFlag)   |(1<<VFlag)\r
2046          .hword  (0x22<<8)      |(1<<HFlag)   |(1<<VFlag)\r
2047          .hword  (0x23<<8)      |(1<<HFlag)      \r
2048          .hword  (0x24<<8)      |(1<<HFlag)   |(1<<VFlag)\r
2049          .hword  (0x25<<8)      |(1<<HFlag)      \r
2050          .hword  (0x26<<8)               \r
2051          .hword  (0x27<<8)            |(1<<VFlag)\r
2052          .hword  (0x28<<8)         |(1<<VFlag)\r
2053          .hword  (0x29<<8)            \r
2054          .hword  (0x2A<<8)            \r
2055          .hword  (0x2B<<8)         |(1<<VFlag)\r
2056          .hword  (0x2C<<8)            \r
2057          .hword  (0x2D<<8)         |(1<<VFlag)\r
2058          .hword  (0x2E<<8)         |(1<<VFlag)\r
2059          .hword  (0x2F<<8)            \r
2060          .hword  (0x30<<8)      |(1<<HFlag)   |(1<<VFlag)\r
2061          .hword  (0x31<<8)      |(1<<HFlag)      \r
2062          .hword  (0x32<<8)      |(1<<HFlag)      \r
2063          .hword  (0x33<<8)      |(1<<HFlag)   |(1<<VFlag)\r
2064          .hword  (0x34<<8)      |(1<<HFlag)      \r
2065          .hword  (0x35<<8)      |(1<<HFlag)   |(1<<VFlag)\r
2066          .hword  (0x36<<8)            |(1<<VFlag)\r
2067          .hword  (0x37<<8)               \r
2068          .hword  (0x38<<8)            \r
2069          .hword  (0x39<<8)         |(1<<VFlag)\r
2070          .hword  (0x3A<<8)         |(1<<VFlag)\r
2071          .hword  (0x3B<<8)            \r
2072          .hword  (0x3C<<8)         |(1<<VFlag)\r
2073          .hword  (0x3D<<8)            \r
2074          .hword  (0x3E<<8)            \r
2075          .hword  (0x3F<<8)         |(1<<VFlag)\r
2076          .hword  (0x40<<8)         |(1<<HFlag)      \r
2077          .hword  (0x41<<8)         |(1<<HFlag)   |(1<<VFlag)\r
2078          .hword  (0x42<<8)         |(1<<HFlag)   |(1<<VFlag)\r
2079          .hword  (0x43<<8)         |(1<<HFlag)      \r
2080          .hword  (0x44<<8)         |(1<<HFlag)   |(1<<VFlag)\r
2081          .hword  (0x45<<8)         |(1<<HFlag)      \r
2082          .hword  (0x46<<8)                  \r
2083          .hword  (0x47<<8)               |(1<<VFlag)\r
2084          .hword  (0x48<<8)            |(1<<VFlag)\r
2085          .hword  (0x49<<8)               \r
2086          .hword  (0x4A<<8)               \r
2087          .hword  (0x4B<<8)            |(1<<VFlag)\r
2088          .hword  (0x4C<<8)               \r
2089          .hword  (0x4D<<8)            |(1<<VFlag)\r
2090          .hword  (0x4E<<8)            |(1<<VFlag)\r
2091          .hword  (0x4F<<8)               \r
2092          .hword  (0x50<<8)         |(1<<HFlag)   |(1<<VFlag)\r
2093          .hword  (0x51<<8)         |(1<<HFlag)      \r
2094          .hword  (0x52<<8)         |(1<<HFlag)      \r
2095          .hword  (0x53<<8)         |(1<<HFlag)   |(1<<VFlag)\r
2096          .hword  (0x54<<8)         |(1<<HFlag)      \r
2097          .hword  (0x55<<8)         |(1<<HFlag)   |(1<<VFlag)\r
2098          .hword  (0x56<<8)               |(1<<VFlag)\r
2099          .hword  (0x57<<8)                  \r
2100          .hword  (0x58<<8)               \r
2101          .hword  (0x59<<8)            |(1<<VFlag)\r
2102          .hword  (0x5A<<8)            |(1<<VFlag)\r
2103          .hword  (0x5B<<8)               \r
2104          .hword  (0x5C<<8)            |(1<<VFlag)\r
2105          .hword  (0x5D<<8)               \r
2106          .hword  (0x5E<<8)               \r
2107          .hword  (0x5F<<8)            |(1<<VFlag)\r
2108          .hword  (0x60<<8)      |(1<<HFlag)   |(1<<VFlag)\r
2109          .hword  (0x61<<8)      |(1<<HFlag)      \r
2110          .hword  (0x62<<8)      |(1<<HFlag)      \r
2111          .hword  (0x63<<8)      |(1<<HFlag)   |(1<<VFlag)\r
2112          .hword  (0x64<<8)      |(1<<HFlag)      \r
2113          .hword  (0x65<<8)      |(1<<HFlag)   |(1<<VFlag)\r
2114          .hword  (0x66<<8)            |(1<<VFlag)\r
2115          .hword  (0x67<<8)               \r
2116          .hword  (0x68<<8)            \r
2117          .hword  (0x69<<8)         |(1<<VFlag)\r
2118          .hword  (0x6A<<8)         |(1<<VFlag)\r
2119          .hword  (0x6B<<8)            \r
2120          .hword  (0x6C<<8)         |(1<<VFlag)\r
2121          .hword  (0x6D<<8)            \r
2122          .hword  (0x6E<<8)            \r
2123          .hword  (0x6F<<8)         |(1<<VFlag)\r
2124          .hword  (0x70<<8)      |(1<<HFlag)      \r
2125          .hword  (0x71<<8)      |(1<<HFlag)   |(1<<VFlag)\r
2126          .hword  (0x72<<8)      |(1<<HFlag)   |(1<<VFlag)\r
2127          .hword  (0x73<<8)      |(1<<HFlag)      \r
2128          .hword  (0x74<<8)      |(1<<HFlag)   |(1<<VFlag)\r
2129          .hword  (0x75<<8)      |(1<<HFlag)      \r
2130          .hword  (0x76<<8)               \r
2131          .hword  (0x77<<8)            |(1<<VFlag)\r
2132          .hword  (0x78<<8)         |(1<<VFlag)\r
2133          .hword  (0x79<<8)            \r
2134          .hword  (0x7A<<8)            \r
2135          .hword  (0x7B<<8)         |(1<<VFlag)\r
2136          .hword  (0x7C<<8)            \r
2137          .hword  (0x7D<<8)         |(1<<VFlag)\r
2138          .hword  (0x7E<<8)         |(1<<VFlag)\r
2139          .hword  (0x7F<<8)            \r
2140          .hword  (0x80<<8)|(1<<SFlag)      |(1<<HFlag)      \r
2141          .hword  (0x81<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)\r
2142          .hword  (0x82<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)\r
2143          .hword  (0x83<<8)|(1<<SFlag)      |(1<<HFlag)      \r
2144          .hword  (0x84<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)\r
2145          .hword  (0x85<<8)|(1<<SFlag)      |(1<<HFlag)      \r
2146          .hword  (0x86<<8)|(1<<SFlag)               \r
2147          .hword  (0x87<<8)|(1<<SFlag)            |(1<<VFlag)\r
2148          .hword  (0x88<<8)|(1<<SFlag)         |(1<<VFlag)\r
2149          .hword  (0x89<<8)|(1<<SFlag)            \r
2150          .hword  (0x8A<<8)|(1<<SFlag)            \r
2151          .hword  (0x8B<<8)|(1<<SFlag)         |(1<<VFlag)\r
2152          .hword  (0x8C<<8)|(1<<SFlag)            \r
2153          .hword  (0x8D<<8)|(1<<SFlag)         |(1<<VFlag)\r
2154          .hword  (0x8E<<8)|(1<<SFlag)         |(1<<VFlag)\r
2155          .hword  (0x8F<<8)|(1<<SFlag)            \r
2156          .hword  (0x90<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)\r
2157          .hword  (0x91<<8)|(1<<SFlag)      |(1<<HFlag)      \r
2158          .hword  (0x92<<8)|(1<<SFlag)      |(1<<HFlag)      \r
2159          .hword  (0x93<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)\r
2160          .hword  (0x94<<8)|(1<<SFlag)      |(1<<HFlag)      \r
2161          .hword  (0x95<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)\r
2162          .hword  (0x96<<8)|(1<<SFlag)            |(1<<VFlag)\r
2163          .hword  (0x97<<8)|(1<<SFlag)               \r
2164          .hword  (0x98<<8)|(1<<SFlag)            \r
2165          .hword  (0x99<<8)|(1<<SFlag)         |(1<<VFlag)\r
2166          .hword  (0x9A<<8)|(1<<SFlag)         |(1<<VFlag)\r
2167          .hword  (0x9B<<8)|(1<<SFlag)            \r
2168          .hword  (0x9C<<8)|(1<<SFlag)         |(1<<VFlag)\r
2169          .hword  (0x9D<<8)|(1<<SFlag)            \r
2170          .hword  (0x9E<<8)|(1<<SFlag)            \r
2171          .hword  (0x9F<<8)|(1<<SFlag)         |(1<<VFlag)\r
2172          .hword  (0x00<<8)   |(1<<ZFlag)   |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
2173          .hword  (0x01<<8)         |(1<<HFlag)         |(1<<CFlag)\r
2174          .hword  (0x02<<8)         |(1<<HFlag)         |(1<<CFlag)\r
2175          .hword  (0x03<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
2176          .hword  (0x04<<8)         |(1<<HFlag)         |(1<<CFlag)\r
2177          .hword  (0x05<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
2178          .hword  (0x06<<8)               |(1<<VFlag)   |(1<<CFlag)\r
2179          .hword  (0x07<<8)                     |(1<<CFlag)\r
2180          .hword  (0x08<<8)                  |(1<<CFlag)\r
2181          .hword  (0x09<<8)            |(1<<VFlag)   |(1<<CFlag)\r
2182          .hword  (0x0A<<8)            |(1<<VFlag)   |(1<<CFlag)\r
2183          .hword  (0x0B<<8)                  |(1<<CFlag)\r
2184          .hword  (0x0C<<8)            |(1<<VFlag)   |(1<<CFlag)\r
2185          .hword  (0x0D<<8)                  |(1<<CFlag)\r
2186          .hword  (0x0E<<8)                  |(1<<CFlag)\r
2187          .hword  (0x0F<<8)            |(1<<VFlag)   |(1<<CFlag)\r
2188          .hword  (0x10<<8)         |(1<<HFlag)         |(1<<CFlag)\r
2189          .hword  (0x11<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
2190          .hword  (0x12<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
2191          .hword  (0x13<<8)         |(1<<HFlag)         |(1<<CFlag)\r
2192          .hword  (0x14<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
2193          .hword  (0x15<<8)         |(1<<HFlag)         |(1<<CFlag)\r
2194          .hword  (0x16<<8)                     |(1<<CFlag)\r
2195          .hword  (0x17<<8)               |(1<<VFlag)   |(1<<CFlag)\r
2196          .hword  (0x18<<8)            |(1<<VFlag)   |(1<<CFlag)\r
2197          .hword  (0x19<<8)                  |(1<<CFlag)\r
2198          .hword  (0x1A<<8)                  |(1<<CFlag)\r
2199          .hword  (0x1B<<8)            |(1<<VFlag)   |(1<<CFlag)\r
2200          .hword  (0x1C<<8)                  |(1<<CFlag)\r
2201          .hword  (0x1D<<8)            |(1<<VFlag)   |(1<<CFlag)\r
2202          .hword  (0x1E<<8)            |(1<<VFlag)   |(1<<CFlag)\r
2203          .hword  (0x1F<<8)                  |(1<<CFlag)\r
2204          .hword  (0x20<<8)      |(1<<HFlag)         |(1<<CFlag)\r
2205          .hword  (0x21<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
2206          .hword  (0x22<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
2207          .hword  (0x23<<8)      |(1<<HFlag)         |(1<<CFlag)\r
2208          .hword  (0x24<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
2209          .hword  (0x25<<8)      |(1<<HFlag)         |(1<<CFlag)\r
2210          .hword  (0x26<<8)                  |(1<<CFlag)\r
2211          .hword  (0x27<<8)            |(1<<VFlag)   |(1<<CFlag)\r
2212          .hword  (0x28<<8)         |(1<<VFlag)   |(1<<CFlag)\r
2213          .hword  (0x29<<8)               |(1<<CFlag)\r
2214          .hword  (0x2A<<8)               |(1<<CFlag)\r
2215          .hword  (0x2B<<8)         |(1<<VFlag)   |(1<<CFlag)\r
2216          .hword  (0x2C<<8)               |(1<<CFlag)\r
2217          .hword  (0x2D<<8)         |(1<<VFlag)   |(1<<CFlag)\r
2218          .hword  (0x2E<<8)         |(1<<VFlag)   |(1<<CFlag)\r
2219          .hword  (0x2F<<8)               |(1<<CFlag)\r
2220          .hword  (0x30<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
2221          .hword  (0x31<<8)      |(1<<HFlag)         |(1<<CFlag)\r
2222          .hword  (0x32<<8)      |(1<<HFlag)         |(1<<CFlag)\r
2223          .hword  (0x33<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
2224          .hword  (0x34<<8)      |(1<<HFlag)         |(1<<CFlag)\r
2225          .hword  (0x35<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
2226          .hword  (0x36<<8)            |(1<<VFlag)   |(1<<CFlag)\r
2227          .hword  (0x37<<8)                  |(1<<CFlag)\r
2228          .hword  (0x38<<8)               |(1<<CFlag)\r
2229          .hword  (0x39<<8)         |(1<<VFlag)   |(1<<CFlag)\r
2230          .hword  (0x3A<<8)         |(1<<VFlag)   |(1<<CFlag)\r
2231          .hword  (0x3B<<8)               |(1<<CFlag)\r
2232          .hword  (0x3C<<8)         |(1<<VFlag)   |(1<<CFlag)\r
2233          .hword  (0x3D<<8)               |(1<<CFlag)\r
2234          .hword  (0x3E<<8)               |(1<<CFlag)\r
2235          .hword  (0x3F<<8)         |(1<<VFlag)   |(1<<CFlag)\r
2236          .hword  (0x40<<8)         |(1<<HFlag)         |(1<<CFlag)\r
2237          .hword  (0x41<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
2238          .hword  (0x42<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
2239          .hword  (0x43<<8)         |(1<<HFlag)         |(1<<CFlag)\r
2240          .hword  (0x44<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
2241          .hword  (0x45<<8)         |(1<<HFlag)         |(1<<CFlag)\r
2242          .hword  (0x46<<8)                     |(1<<CFlag)\r
2243          .hword  (0x47<<8)               |(1<<VFlag)   |(1<<CFlag)\r
2244          .hword  (0x48<<8)            |(1<<VFlag)   |(1<<CFlag)\r
2245          .hword  (0x49<<8)                  |(1<<CFlag)\r
2246          .hword  (0x4A<<8)                  |(1<<CFlag)\r
2247          .hword  (0x4B<<8)            |(1<<VFlag)   |(1<<CFlag)\r
2248          .hword  (0x4C<<8)                  |(1<<CFlag)\r
2249          .hword  (0x4D<<8)            |(1<<VFlag)   |(1<<CFlag)\r
2250          .hword  (0x4E<<8)            |(1<<VFlag)   |(1<<CFlag)\r
2251          .hword  (0x4F<<8)                  |(1<<CFlag)\r
2252          .hword  (0x50<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
2253          .hword  (0x51<<8)         |(1<<HFlag)         |(1<<CFlag)\r
2254          .hword  (0x52<<8)         |(1<<HFlag)         |(1<<CFlag)\r
2255          .hword  (0x53<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
2256          .hword  (0x54<<8)         |(1<<HFlag)         |(1<<CFlag)\r
2257          .hword  (0x55<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
2258          .hword  (0x56<<8)               |(1<<VFlag)   |(1<<CFlag)\r
2259          .hword  (0x57<<8)                     |(1<<CFlag)\r
2260          .hword  (0x58<<8)                  |(1<<CFlag)\r
2261          .hword  (0x59<<8)            |(1<<VFlag)   |(1<<CFlag)\r
2262          .hword  (0x5A<<8)            |(1<<VFlag)   |(1<<CFlag)\r
2263          .hword  (0x5B<<8)                  |(1<<CFlag)\r
2264          .hword  (0x5C<<8)            |(1<<VFlag)   |(1<<CFlag)\r
2265          .hword  (0x5D<<8)                  |(1<<CFlag)\r
2266          .hword  (0x5E<<8)                  |(1<<CFlag)\r
2267          .hword  (0x5F<<8)            |(1<<VFlag)   |(1<<CFlag)\r
2268          .hword  (0x60<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
2269          .hword  (0x61<<8)      |(1<<HFlag)         |(1<<CFlag)\r
2270          .hword  (0x62<<8)      |(1<<HFlag)         |(1<<CFlag)\r
2271          .hword  (0x63<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
2272          .hword  (0x64<<8)      |(1<<HFlag)         |(1<<CFlag)\r
2273          .hword  (0x65<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
2274          .hword  (0x66<<8)            |(1<<VFlag)   |(1<<CFlag)\r
2275          .hword  (0x67<<8)                  |(1<<CFlag)\r
2276          .hword  (0x68<<8)               |(1<<CFlag)\r
2277          .hword  (0x69<<8)         |(1<<VFlag)   |(1<<CFlag)\r
2278          .hword  (0x6A<<8)         |(1<<VFlag)   |(1<<CFlag)\r
2279          .hword  (0x6B<<8)               |(1<<CFlag)\r
2280          .hword  (0x6C<<8)         |(1<<VFlag)   |(1<<CFlag)\r
2281          .hword  (0x6D<<8)               |(1<<CFlag)\r
2282          .hword  (0x6E<<8)               |(1<<CFlag)\r
2283          .hword  (0x6F<<8)         |(1<<VFlag)   |(1<<CFlag)\r
2284          .hword  (0x70<<8)      |(1<<HFlag)         |(1<<CFlag)\r
2285          .hword  (0x71<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
2286          .hword  (0x72<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
2287          .hword  (0x73<<8)      |(1<<HFlag)         |(1<<CFlag)\r
2288          .hword  (0x74<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
2289          .hword  (0x75<<8)      |(1<<HFlag)         |(1<<CFlag)\r
2290          .hword  (0x76<<8)                  |(1<<CFlag)\r
2291          .hword  (0x77<<8)            |(1<<VFlag)   |(1<<CFlag)\r
2292          .hword  (0x78<<8)         |(1<<VFlag)   |(1<<CFlag)\r
2293          .hword  (0x79<<8)               |(1<<CFlag)\r
2294          .hword  (0x7A<<8)               |(1<<CFlag)\r
2295          .hword  (0x7B<<8)         |(1<<VFlag)   |(1<<CFlag)\r
2296          .hword  (0x7C<<8)               |(1<<CFlag)\r
2297          .hword  (0x7D<<8)         |(1<<VFlag)   |(1<<CFlag)\r
2298          .hword  (0x7E<<8)         |(1<<VFlag)   |(1<<CFlag)\r
2299          .hword  (0x7F<<8)               |(1<<CFlag)\r
2300          .hword  (0x80<<8)|(1<<SFlag)      |(1<<HFlag)         |(1<<CFlag)\r
2301          .hword  (0x81<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
2302          .hword  (0x82<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
2303          .hword  (0x83<<8)|(1<<SFlag)      |(1<<HFlag)         |(1<<CFlag)\r
2304          .hword  (0x84<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
2305          .hword  (0x85<<8)|(1<<SFlag)      |(1<<HFlag)         |(1<<CFlag)\r
2306          .hword  (0x86<<8)|(1<<SFlag)                  |(1<<CFlag)\r
2307          .hword  (0x87<<8)|(1<<SFlag)            |(1<<VFlag)   |(1<<CFlag)\r
2308          .hword  (0x88<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)\r
2309          .hword  (0x89<<8)|(1<<SFlag)               |(1<<CFlag)\r
2310          .hword  (0x8A<<8)|(1<<SFlag)               |(1<<CFlag)\r
2311          .hword  (0x8B<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)\r
2312          .hword  (0x8C<<8)|(1<<SFlag)               |(1<<CFlag)\r
2313          .hword  (0x8D<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)\r
2314          .hword  (0x8E<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)\r
2315          .hword  (0x8F<<8)|(1<<SFlag)               |(1<<CFlag)\r
2316          .hword  (0x90<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
2317          .hword  (0x91<<8)|(1<<SFlag)      |(1<<HFlag)         |(1<<CFlag)\r
2318          .hword  (0x92<<8)|(1<<SFlag)      |(1<<HFlag)         |(1<<CFlag)\r
2319          .hword  (0x93<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
2320          .hword  (0x94<<8)|(1<<SFlag)      |(1<<HFlag)         |(1<<CFlag)\r
2321          .hword  (0x95<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
2322          .hword  (0x96<<8)|(1<<SFlag)            |(1<<VFlag)   |(1<<CFlag)\r
2323          .hword  (0x97<<8)|(1<<SFlag)                  |(1<<CFlag)\r
2324          .hword  (0x98<<8)|(1<<SFlag)               |(1<<CFlag)\r
2325          .hword  (0x99<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)\r
2326          .hword  (0x9A<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)\r
2327          .hword  (0x9B<<8)|(1<<SFlag)               |(1<<CFlag)\r
2328          .hword  (0x9C<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)\r
2329          .hword  (0x9D<<8)|(1<<SFlag)               |(1<<CFlag)\r
2330          .hword  (0x9E<<8)|(1<<SFlag)               |(1<<CFlag)\r
2331          .hword  (0x9F<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)\r
2332          .hword  (0xA0<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
2333          .hword  (0xA1<<8)|(1<<SFlag)   |(1<<HFlag)         |(1<<CFlag)\r
2334          .hword  (0xA2<<8)|(1<<SFlag)   |(1<<HFlag)         |(1<<CFlag)\r
2335          .hword  (0xA3<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
2336          .hword  (0xA4<<8)|(1<<SFlag)   |(1<<HFlag)         |(1<<CFlag)\r
2337          .hword  (0xA5<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
2338          .hword  (0xA6<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)\r
2339          .hword  (0xA7<<8)|(1<<SFlag)               |(1<<CFlag)\r
2340          .hword  (0xA8<<8)|(1<<SFlag)            |(1<<CFlag)\r
2341          .hword  (0xA9<<8)|(1<<SFlag)      |(1<<VFlag)   |(1<<CFlag)\r
2342          .hword  (0xAA<<8)|(1<<SFlag)      |(1<<VFlag)   |(1<<CFlag)\r
2343          .hword  (0xAB<<8)|(1<<SFlag)            |(1<<CFlag)\r
2344          .hword  (0xAC<<8)|(1<<SFlag)      |(1<<VFlag)   |(1<<CFlag)\r
2345          .hword  (0xAD<<8)|(1<<SFlag)            |(1<<CFlag)\r
2346          .hword  (0xAE<<8)|(1<<SFlag)            |(1<<CFlag)\r
2347          .hword  (0xAF<<8)|(1<<SFlag)      |(1<<VFlag)   |(1<<CFlag)\r
2348          .hword  (0xB0<<8)|(1<<SFlag)   |(1<<HFlag)         |(1<<CFlag)\r
2349          .hword  (0xB1<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
2350          .hword  (0xB2<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
2351          .hword  (0xB3<<8)|(1<<SFlag)   |(1<<HFlag)         |(1<<CFlag)\r
2352          .hword  (0xB4<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
2353          .hword  (0xB5<<8)|(1<<SFlag)   |(1<<HFlag)         |(1<<CFlag)\r
2354          .hword  (0xB6<<8)|(1<<SFlag)               |(1<<CFlag)\r
2355          .hword  (0xB7<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)\r
2356          .hword  (0xB8<<8)|(1<<SFlag)      |(1<<VFlag)   |(1<<CFlag)\r
2357          .hword  (0xB9<<8)|(1<<SFlag)            |(1<<CFlag)\r
2358          .hword  (0xBA<<8)|(1<<SFlag)            |(1<<CFlag)\r
2359          .hword  (0xBB<<8)|(1<<SFlag)      |(1<<VFlag)   |(1<<CFlag)\r
2360          .hword  (0xBC<<8)|(1<<SFlag)            |(1<<CFlag)\r
2361          .hword  (0xBD<<8)|(1<<SFlag)      |(1<<VFlag)   |(1<<CFlag)\r
2362          .hword  (0xBE<<8)|(1<<SFlag)      |(1<<VFlag)   |(1<<CFlag)\r
2363          .hword  (0xBF<<8)|(1<<SFlag)            |(1<<CFlag)\r
2364          .hword  (0xC0<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
2365          .hword  (0xC1<<8)|(1<<SFlag)      |(1<<HFlag)         |(1<<CFlag)\r
2366          .hword  (0xC2<<8)|(1<<SFlag)      |(1<<HFlag)         |(1<<CFlag)\r
2367          .hword  (0xC3<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
2368          .hword  (0xC4<<8)|(1<<SFlag)      |(1<<HFlag)         |(1<<CFlag)\r
2369          .hword  (0xC5<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
2370          .hword  (0xC6<<8)|(1<<SFlag)            |(1<<VFlag)   |(1<<CFlag)\r
2371          .hword  (0xC7<<8)|(1<<SFlag)                  |(1<<CFlag)\r
2372          .hword  (0xC8<<8)|(1<<SFlag)               |(1<<CFlag)\r
2373          .hword  (0xC9<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)\r
2374          .hword  (0xCA<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)\r
2375          .hword  (0xCB<<8)|(1<<SFlag)               |(1<<CFlag)\r
2376          .hword  (0xCC<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)\r
2377          .hword  (0xCD<<8)|(1<<SFlag)               |(1<<CFlag)\r
2378          .hword  (0xCE<<8)|(1<<SFlag)               |(1<<CFlag)\r
2379          .hword  (0xCF<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)\r
2380          .hword  (0xD0<<8)|(1<<SFlag)      |(1<<HFlag)         |(1<<CFlag)\r
2381          .hword  (0xD1<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
2382          .hword  (0xD2<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
2383          .hword  (0xD3<<8)|(1<<SFlag)      |(1<<HFlag)         |(1<<CFlag)\r
2384          .hword  (0xD4<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
2385          .hword  (0xD5<<8)|(1<<SFlag)      |(1<<HFlag)         |(1<<CFlag)\r
2386          .hword  (0xD6<<8)|(1<<SFlag)                  |(1<<CFlag)\r
2387          .hword  (0xD7<<8)|(1<<SFlag)            |(1<<VFlag)   |(1<<CFlag)\r
2388          .hword  (0xD8<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)\r
2389          .hword  (0xD9<<8)|(1<<SFlag)               |(1<<CFlag)\r
2390          .hword  (0xDA<<8)|(1<<SFlag)               |(1<<CFlag)\r
2391          .hword  (0xDB<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)\r
2392          .hword  (0xDC<<8)|(1<<SFlag)               |(1<<CFlag)\r
2393          .hword  (0xDD<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)\r
2394          .hword  (0xDE<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)\r
2395          .hword  (0xDF<<8)|(1<<SFlag)               |(1<<CFlag)\r
2396          .hword  (0xE0<<8)|(1<<SFlag)   |(1<<HFlag)         |(1<<CFlag)\r
2397          .hword  (0xE1<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
2398          .hword  (0xE2<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
2399          .hword  (0xE3<<8)|(1<<SFlag)   |(1<<HFlag)         |(1<<CFlag)\r
2400          .hword  (0xE4<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
2401          .hword  (0xE5<<8)|(1<<SFlag)   |(1<<HFlag)         |(1<<CFlag)\r
2402          .hword  (0xE6<<8)|(1<<SFlag)               |(1<<CFlag)\r
2403          .hword  (0xE7<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)\r
2404          .hword  (0xE8<<8)|(1<<SFlag)      |(1<<VFlag)   |(1<<CFlag)\r
2405          .hword  (0xE9<<8)|(1<<SFlag)            |(1<<CFlag)\r
2406          .hword  (0xEA<<8)|(1<<SFlag)            |(1<<CFlag)\r
2407          .hword  (0xEB<<8)|(1<<SFlag)      |(1<<VFlag)   |(1<<CFlag)\r
2408          .hword  (0xEC<<8)|(1<<SFlag)            |(1<<CFlag)\r
2409          .hword  (0xED<<8)|(1<<SFlag)      |(1<<VFlag)   |(1<<CFlag)\r
2410          .hword  (0xEE<<8)|(1<<SFlag)      |(1<<VFlag)   |(1<<CFlag)\r
2411          .hword  (0xEF<<8)|(1<<SFlag)            |(1<<CFlag)\r
2412          .hword  (0xF0<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
2413          .hword  (0xF1<<8)|(1<<SFlag)   |(1<<HFlag)         |(1<<CFlag)\r
2414          .hword  (0xF2<<8)|(1<<SFlag)   |(1<<HFlag)         |(1<<CFlag)\r
2415          .hword  (0xF3<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
2416          .hword  (0xF4<<8)|(1<<SFlag)   |(1<<HFlag)         |(1<<CFlag)\r
2417          .hword  (0xF5<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
2418          .hword  (0xF6<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)\r
2419          .hword  (0xF7<<8)|(1<<SFlag)               |(1<<CFlag)\r
2420          .hword  (0xF8<<8)|(1<<SFlag)            |(1<<CFlag)\r
2421          .hword  (0xF9<<8)|(1<<SFlag)      |(1<<VFlag)   |(1<<CFlag)\r
2422          .hword  (0xFA<<8)|(1<<SFlag)      |(1<<VFlag)   |(1<<CFlag)\r
2423          .hword  (0xFB<<8)|(1<<SFlag)            |(1<<CFlag)\r
2424          .hword  (0xFC<<8)|(1<<SFlag)      |(1<<VFlag)   |(1<<CFlag)\r
2425          .hword  (0xFD<<8)|(1<<SFlag)            |(1<<CFlag)\r
2426          .hword  (0xFE<<8)|(1<<SFlag)            |(1<<CFlag)\r
2427          .hword  (0xFF<<8)|(1<<SFlag)      |(1<<VFlag)   |(1<<CFlag)\r
2428          .hword  (0x00<<8)   |(1<<ZFlag)   |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
2429          .hword  (0x01<<8)         |(1<<HFlag)         |(1<<CFlag)\r
2430          .hword  (0x02<<8)         |(1<<HFlag)         |(1<<CFlag)\r
2431          .hword  (0x03<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
2432          .hword  (0x04<<8)         |(1<<HFlag)         |(1<<CFlag)\r
2433          .hword  (0x05<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
2434          .hword  (0x06<<8)               |(1<<VFlag)   |(1<<CFlag)\r
2435          .hword  (0x07<<8)                     |(1<<CFlag)\r
2436          .hword  (0x08<<8)                  |(1<<CFlag)\r
2437          .hword  (0x09<<8)            |(1<<VFlag)   |(1<<CFlag)\r
2438          .hword  (0x0A<<8)            |(1<<VFlag)   |(1<<CFlag)\r
2439          .hword  (0x0B<<8)                  |(1<<CFlag)\r
2440          .hword  (0x0C<<8)            |(1<<VFlag)   |(1<<CFlag)\r
2441          .hword  (0x0D<<8)                  |(1<<CFlag)\r
2442          .hword  (0x0E<<8)                  |(1<<CFlag)\r
2443          .hword  (0x0F<<8)            |(1<<VFlag)   |(1<<CFlag)\r
2444          .hword  (0x10<<8)         |(1<<HFlag)         |(1<<CFlag)\r
2445          .hword  (0x11<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
2446          .hword  (0x12<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
2447          .hword  (0x13<<8)         |(1<<HFlag)         |(1<<CFlag)\r
2448          .hword  (0x14<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
2449          .hword  (0x15<<8)         |(1<<HFlag)         |(1<<CFlag)\r
2450          .hword  (0x16<<8)                     |(1<<CFlag)\r
2451          .hword  (0x17<<8)               |(1<<VFlag)   |(1<<CFlag)\r
2452          .hword  (0x18<<8)            |(1<<VFlag)   |(1<<CFlag)\r
2453          .hword  (0x19<<8)                  |(1<<CFlag)\r
2454          .hword  (0x1A<<8)                  |(1<<CFlag)\r
2455          .hword  (0x1B<<8)            |(1<<VFlag)   |(1<<CFlag)\r
2456          .hword  (0x1C<<8)                  |(1<<CFlag)\r
2457          .hword  (0x1D<<8)            |(1<<VFlag)   |(1<<CFlag)\r
2458          .hword  (0x1E<<8)            |(1<<VFlag)   |(1<<CFlag)\r
2459          .hword  (0x1F<<8)                  |(1<<CFlag)\r
2460          .hword  (0x20<<8)      |(1<<HFlag)         |(1<<CFlag)\r
2461          .hword  (0x21<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
2462          .hword  (0x22<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
2463          .hword  (0x23<<8)      |(1<<HFlag)         |(1<<CFlag)\r
2464          .hword  (0x24<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
2465          .hword  (0x25<<8)      |(1<<HFlag)         |(1<<CFlag)\r
2466          .hword  (0x26<<8)                  |(1<<CFlag)\r
2467          .hword  (0x27<<8)            |(1<<VFlag)   |(1<<CFlag)\r
2468          .hword  (0x28<<8)         |(1<<VFlag)   |(1<<CFlag)\r
2469          .hword  (0x29<<8)               |(1<<CFlag)\r
2470          .hword  (0x2A<<8)               |(1<<CFlag)\r
2471          .hword  (0x2B<<8)         |(1<<VFlag)   |(1<<CFlag)\r
2472          .hword  (0x2C<<8)               |(1<<CFlag)\r
2473          .hword  (0x2D<<8)         |(1<<VFlag)   |(1<<CFlag)\r
2474          .hword  (0x2E<<8)         |(1<<VFlag)   |(1<<CFlag)\r
2475          .hword  (0x2F<<8)               |(1<<CFlag)\r
2476          .hword  (0x30<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
2477          .hword  (0x31<<8)      |(1<<HFlag)         |(1<<CFlag)\r
2478          .hword  (0x32<<8)      |(1<<HFlag)         |(1<<CFlag)\r
2479          .hword  (0x33<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
2480          .hword  (0x34<<8)      |(1<<HFlag)         |(1<<CFlag)\r
2481          .hword  (0x35<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
2482          .hword  (0x36<<8)            |(1<<VFlag)   |(1<<CFlag)\r
2483          .hword  (0x37<<8)                  |(1<<CFlag)\r
2484          .hword  (0x38<<8)               |(1<<CFlag)\r
2485          .hword  (0x39<<8)         |(1<<VFlag)   |(1<<CFlag)\r
2486          .hword  (0x3A<<8)         |(1<<VFlag)   |(1<<CFlag)\r
2487          .hword  (0x3B<<8)               |(1<<CFlag)\r
2488          .hword  (0x3C<<8)         |(1<<VFlag)   |(1<<CFlag)\r
2489          .hword  (0x3D<<8)               |(1<<CFlag)\r
2490          .hword  (0x3E<<8)               |(1<<CFlag)\r
2491          .hword  (0x3F<<8)         |(1<<VFlag)   |(1<<CFlag)\r
2492          .hword  (0x40<<8)         |(1<<HFlag)         |(1<<CFlag)\r
2493          .hword  (0x41<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
2494          .hword  (0x42<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
2495          .hword  (0x43<<8)         |(1<<HFlag)         |(1<<CFlag)\r
2496          .hword  (0x44<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
2497          .hword  (0x45<<8)         |(1<<HFlag)         |(1<<CFlag)\r
2498          .hword  (0x46<<8)                     |(1<<CFlag)\r
2499          .hword  (0x47<<8)               |(1<<VFlag)   |(1<<CFlag)\r
2500          .hword  (0x48<<8)            |(1<<VFlag)   |(1<<CFlag)\r
2501          .hword  (0x49<<8)                  |(1<<CFlag)\r
2502          .hword  (0x4A<<8)                  |(1<<CFlag)\r
2503          .hword  (0x4B<<8)            |(1<<VFlag)   |(1<<CFlag)\r
2504          .hword  (0x4C<<8)                  |(1<<CFlag)\r
2505          .hword  (0x4D<<8)            |(1<<VFlag)   |(1<<CFlag)\r
2506          .hword  (0x4E<<8)            |(1<<VFlag)   |(1<<CFlag)\r
2507          .hword  (0x4F<<8)                  |(1<<CFlag)\r
2508          .hword  (0x50<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
2509          .hword  (0x51<<8)         |(1<<HFlag)         |(1<<CFlag)\r
2510          .hword  (0x52<<8)         |(1<<HFlag)         |(1<<CFlag)\r
2511          .hword  (0x53<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
2512          .hword  (0x54<<8)         |(1<<HFlag)         |(1<<CFlag)\r
2513          .hword  (0x55<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
2514          .hword  (0x56<<8)               |(1<<VFlag)   |(1<<CFlag)\r
2515          .hword  (0x57<<8)                     |(1<<CFlag)\r
2516          .hword  (0x58<<8)                  |(1<<CFlag)\r
2517          .hword  (0x59<<8)            |(1<<VFlag)   |(1<<CFlag)\r
2518          .hword  (0x5A<<8)            |(1<<VFlag)   |(1<<CFlag)\r
2519          .hword  (0x5B<<8)                  |(1<<CFlag)\r
2520          .hword  (0x5C<<8)            |(1<<VFlag)   |(1<<CFlag)\r
2521          .hword  (0x5D<<8)                  |(1<<CFlag)\r
2522          .hword  (0x5E<<8)                  |(1<<CFlag)\r
2523          .hword  (0x5F<<8)            |(1<<VFlag)   |(1<<CFlag)\r
2524          .hword  (0x60<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
2525          .hword  (0x61<<8)      |(1<<HFlag)         |(1<<CFlag)\r
2526          .hword  (0x62<<8)      |(1<<HFlag)         |(1<<CFlag)\r
2527          .hword  (0x63<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
2528          .hword  (0x64<<8)      |(1<<HFlag)         |(1<<CFlag)\r
2529          .hword  (0x65<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)\r
2530          .hword  (0x00<<8)   |(1<<ZFlag)         |(1<<VFlag)|(1<<NFlag)   \r
2531          .hword  (0x01<<8)                  |(1<<NFlag)   \r
2532          .hword  (0x02<<8)                  |(1<<NFlag)   \r
2533          .hword  (0x03<<8)               |(1<<VFlag)|(1<<NFlag)   \r
2534          .hword  (0x04<<8)                  |(1<<NFlag)   \r
2535          .hword  (0x05<<8)               |(1<<VFlag)|(1<<NFlag)   \r
2536          .hword  (0x06<<8)               |(1<<VFlag)|(1<<NFlag)   \r
2537          .hword  (0x07<<8)                  |(1<<NFlag)   \r
2538          .hword  (0x08<<8)               |(1<<NFlag)   \r
2539          .hword  (0x09<<8)            |(1<<VFlag)|(1<<NFlag)   \r
2540          .hword  (0x04<<8)                  |(1<<NFlag)   \r
2541          .hword  (0x05<<8)               |(1<<VFlag)|(1<<NFlag)   \r
2542          .hword  (0x06<<8)               |(1<<VFlag)|(1<<NFlag)   \r
2543          .hword  (0x07<<8)                  |(1<<NFlag)   \r
2544          .hword  (0x08<<8)               |(1<<NFlag)   \r
2545          .hword  (0x09<<8)            |(1<<VFlag)|(1<<NFlag)   \r
2546          .hword  (0x10<<8)                  |(1<<NFlag)   \r
2547          .hword  (0x11<<8)               |(1<<VFlag)|(1<<NFlag)   \r
2548          .hword  (0x12<<8)               |(1<<VFlag)|(1<<NFlag)   \r
2549          .hword  (0x13<<8)                  |(1<<NFlag)   \r
2550          .hword  (0x14<<8)               |(1<<VFlag)|(1<<NFlag)   \r
2551          .hword  (0x15<<8)                  |(1<<NFlag)   \r
2552          .hword  (0x16<<8)                  |(1<<NFlag)   \r
2553          .hword  (0x17<<8)               |(1<<VFlag)|(1<<NFlag)   \r
2554          .hword  (0x18<<8)            |(1<<VFlag)|(1<<NFlag)   \r
2555          .hword  (0x19<<8)               |(1<<NFlag)   \r
2556          .hword  (0x14<<8)               |(1<<VFlag)|(1<<NFlag)   \r
2557          .hword  (0x15<<8)                  |(1<<NFlag)   \r
2558          .hword  (0x16<<8)                  |(1<<NFlag)   \r
2559          .hword  (0x17<<8)               |(1<<VFlag)|(1<<NFlag)   \r
2560          .hword  (0x18<<8)            |(1<<VFlag)|(1<<NFlag)   \r
2561          .hword  (0x19<<8)               |(1<<NFlag)   \r
2562          .hword  (0x20<<8)               |(1<<NFlag)   \r
2563          .hword  (0x21<<8)            |(1<<VFlag)|(1<<NFlag)   \r
2564          .hword  (0x22<<8)            |(1<<VFlag)|(1<<NFlag)   \r
2565          .hword  (0x23<<8)               |(1<<NFlag)   \r
2566          .hword  (0x24<<8)            |(1<<VFlag)|(1<<NFlag)   \r
2567          .hword  (0x25<<8)               |(1<<NFlag)   \r
2568          .hword  (0x26<<8)               |(1<<NFlag)   \r
2569          .hword  (0x27<<8)            |(1<<VFlag)|(1<<NFlag)   \r
2570          .hword  (0x28<<8)         |(1<<VFlag)|(1<<NFlag)   \r
2571          .hword  (0x29<<8)            |(1<<NFlag)   \r
2572          .hword  (0x24<<8)            |(1<<VFlag)|(1<<NFlag)   \r
2573          .hword  (0x25<<8)               |(1<<NFlag)   \r
2574          .hword  (0x26<<8)               |(1<<NFlag)   \r
2575          .hword  (0x27<<8)            |(1<<VFlag)|(1<<NFlag)   \r
2576          .hword  (0x28<<8)         |(1<<VFlag)|(1<<NFlag)   \r
2577          .hword  (0x29<<8)            |(1<<NFlag)   \r
2578          .hword  (0x30<<8)            |(1<<VFlag)|(1<<NFlag)   \r
2579          .hword  (0x31<<8)               |(1<<NFlag)   \r
2580          .hword  (0x32<<8)               |(1<<NFlag)   \r
2581          .hword  (0x33<<8)            |(1<<VFlag)|(1<<NFlag)   \r
2582          .hword  (0x34<<8)               |(1<<NFlag)   \r
2583          .hword  (0x35<<8)            |(1<<VFlag)|(1<<NFlag)   \r
2584          .hword  (0x36<<8)            |(1<<VFlag)|(1<<NFlag)   \r
2585          .hword  (0x37<<8)               |(1<<NFlag)   \r
2586          .hword  (0x38<<8)            |(1<<NFlag)   \r
2587          .hword  (0x39<<8)         |(1<<VFlag)|(1<<NFlag)   \r
2588          .hword  (0x34<<8)               |(1<<NFlag)   \r
2589          .hword  (0x35<<8)            |(1<<VFlag)|(1<<NFlag)   \r
2590          .hword  (0x36<<8)            |(1<<VFlag)|(1<<NFlag)   \r
2591          .hword  (0x37<<8)               |(1<<NFlag)   \r
2592          .hword  (0x38<<8)            |(1<<NFlag)   \r
2593          .hword  (0x39<<8)         |(1<<VFlag)|(1<<NFlag)   \r
2594          .hword  (0x40<<8)                  |(1<<NFlag)   \r
2595          .hword  (0x41<<8)               |(1<<VFlag)|(1<<NFlag)   \r
2596          .hword  (0x42<<8)               |(1<<VFlag)|(1<<NFlag)   \r
2597          .hword  (0x43<<8)                  |(1<<NFlag)   \r
2598          .hword  (0x44<<8)               |(1<<VFlag)|(1<<NFlag)   \r
2599          .hword  (0x45<<8)                  |(1<<NFlag)   \r
2600          .hword  (0x46<<8)                  |(1<<NFlag)   \r
2601          .hword  (0x47<<8)               |(1<<VFlag)|(1<<NFlag)   \r
2602          .hword  (0x48<<8)            |(1<<VFlag)|(1<<NFlag)   \r
2603          .hword  (0x49<<8)               |(1<<NFlag)   \r
2604          .hword  (0x44<<8)               |(1<<VFlag)|(1<<NFlag)   \r
2605          .hword  (0x45<<8)                  |(1<<NFlag)   \r
2606          .hword  (0x46<<8)                  |(1<<NFlag)   \r
2607          .hword  (0x47<<8)               |(1<<VFlag)|(1<<NFlag)   \r
2608          .hword  (0x48<<8)            |(1<<VFlag)|(1<<NFlag)   \r
2609          .hword  (0x49<<8)               |(1<<NFlag)   \r
2610          .hword  (0x50<<8)               |(1<<VFlag)|(1<<NFlag)   \r
2611          .hword  (0x51<<8)                  |(1<<NFlag)   \r
2612          .hword  (0x52<<8)                  |(1<<NFlag)   \r
2613          .hword  (0x53<<8)               |(1<<VFlag)|(1<<NFlag)   \r
2614          .hword  (0x54<<8)                  |(1<<NFlag)   \r
2615          .hword  (0x55<<8)               |(1<<VFlag)|(1<<NFlag)   \r
2616          .hword  (0x56<<8)               |(1<<VFlag)|(1<<NFlag)   \r
2617          .hword  (0x57<<8)                  |(1<<NFlag)   \r
2618          .hword  (0x58<<8)               |(1<<NFlag)   \r
2619          .hword  (0x59<<8)            |(1<<VFlag)|(1<<NFlag)   \r
2620          .hword  (0x54<<8)                  |(1<<NFlag)   \r
2621          .hword  (0x55<<8)               |(1<<VFlag)|(1<<NFlag)   \r
2622          .hword  (0x56<<8)               |(1<<VFlag)|(1<<NFlag)   \r
2623          .hword  (0x57<<8)                  |(1<<NFlag)   \r
2624          .hword  (0x58<<8)               |(1<<NFlag)   \r
2625          .hword  (0x59<<8)            |(1<<VFlag)|(1<<NFlag)   \r
2626          .hword  (0x60<<8)            |(1<<VFlag)|(1<<NFlag)   \r
2627          .hword  (0x61<<8)               |(1<<NFlag)   \r
2628          .hword  (0x62<<8)               |(1<<NFlag)   \r
2629          .hword  (0x63<<8)            |(1<<VFlag)|(1<<NFlag)   \r
2630          .hword  (0x64<<8)               |(1<<NFlag)   \r
2631          .hword  (0x65<<8)            |(1<<VFlag)|(1<<NFlag)   \r
2632          .hword  (0x66<<8)            |(1<<VFlag)|(1<<NFlag)   \r
2633          .hword  (0x67<<8)               |(1<<NFlag)   \r
2634          .hword  (0x68<<8)            |(1<<NFlag)   \r
2635          .hword  (0x69<<8)         |(1<<VFlag)|(1<<NFlag)   \r
2636          .hword  (0x64<<8)               |(1<<NFlag)   \r
2637          .hword  (0x65<<8)            |(1<<VFlag)|(1<<NFlag)   \r
2638          .hword  (0x66<<8)            |(1<<VFlag)|(1<<NFlag)   \r
2639          .hword  (0x67<<8)               |(1<<NFlag)   \r
2640          .hword  (0x68<<8)            |(1<<NFlag)   \r
2641          .hword  (0x69<<8)         |(1<<VFlag)|(1<<NFlag)   \r
2642          .hword  (0x70<<8)               |(1<<NFlag)   \r
2643          .hword  (0x71<<8)            |(1<<VFlag)|(1<<NFlag)   \r
2644          .hword  (0x72<<8)            |(1<<VFlag)|(1<<NFlag)   \r
2645          .hword  (0x73<<8)               |(1<<NFlag)   \r
2646          .hword  (0x74<<8)            |(1<<VFlag)|(1<<NFlag)   \r
2647          .hword  (0x75<<8)               |(1<<NFlag)   \r
2648          .hword  (0x76<<8)               |(1<<NFlag)   \r
2649          .hword  (0x77<<8)            |(1<<VFlag)|(1<<NFlag)   \r
2650          .hword  (0x78<<8)         |(1<<VFlag)|(1<<NFlag)   \r
2651          .hword  (0x79<<8)            |(1<<NFlag)   \r
2652          .hword  (0x74<<8)            |(1<<VFlag)|(1<<NFlag)   \r
2653          .hword  (0x75<<8)               |(1<<NFlag)   \r
2654          .hword  (0x76<<8)               |(1<<NFlag)   \r
2655          .hword  (0x77<<8)            |(1<<VFlag)|(1<<NFlag)   \r
2656          .hword  (0x78<<8)         |(1<<VFlag)|(1<<NFlag)   \r
2657          .hword  (0x79<<8)            |(1<<NFlag)   \r
2658          .hword  (0x80<<8)|(1<<SFlag)               |(1<<NFlag)   \r
2659          .hword  (0x81<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)   \r
2660          .hword  (0x82<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)   \r
2661          .hword  (0x83<<8)|(1<<SFlag)               |(1<<NFlag)   \r
2662          .hword  (0x84<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)   \r
2663          .hword  (0x85<<8)|(1<<SFlag)               |(1<<NFlag)   \r
2664          .hword  (0x86<<8)|(1<<SFlag)               |(1<<NFlag)   \r
2665          .hword  (0x87<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)   \r
2666          .hword  (0x88<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)   \r
2667          .hword  (0x89<<8)|(1<<SFlag)            |(1<<NFlag)   \r
2668          .hword  (0x84<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)   \r
2669          .hword  (0x85<<8)|(1<<SFlag)               |(1<<NFlag)   \r
2670          .hword  (0x86<<8)|(1<<SFlag)               |(1<<NFlag)   \r
2671          .hword  (0x87<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)   \r
2672          .hword  (0x88<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)   \r
2673          .hword  (0x89<<8)|(1<<SFlag)            |(1<<NFlag)   \r
2674          .hword  (0x90<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)   \r
2675          .hword  (0x91<<8)|(1<<SFlag)               |(1<<NFlag)   \r
2676          .hword  (0x92<<8)|(1<<SFlag)               |(1<<NFlag)   \r
2677          .hword  (0x93<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)   \r
2678          .hword  (0x94<<8)|(1<<SFlag)               |(1<<NFlag)   \r
2679          .hword  (0x95<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)   \r
2680          .hword  (0x96<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)   \r
2681          .hword  (0x97<<8)|(1<<SFlag)               |(1<<NFlag)   \r
2682          .hword  (0x98<<8)|(1<<SFlag)            |(1<<NFlag)   \r
2683          .hword  (0x99<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)   \r
2684          .hword  (0x34<<8)               |(1<<NFlag)|(1<<CFlag)\r
2685          .hword  (0x35<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2686          .hword  (0x36<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2687          .hword  (0x37<<8)               |(1<<NFlag)|(1<<CFlag)\r
2688          .hword  (0x38<<8)            |(1<<NFlag)|(1<<CFlag)\r
2689          .hword  (0x39<<8)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2690          .hword  (0x40<<8)                  |(1<<NFlag)|(1<<CFlag)\r
2691          .hword  (0x41<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2692          .hword  (0x42<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2693          .hword  (0x43<<8)                  |(1<<NFlag)|(1<<CFlag)\r
2694          .hword  (0x44<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2695          .hword  (0x45<<8)                  |(1<<NFlag)|(1<<CFlag)\r
2696          .hword  (0x46<<8)                  |(1<<NFlag)|(1<<CFlag)\r
2697          .hword  (0x47<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2698          .hword  (0x48<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2699          .hword  (0x49<<8)               |(1<<NFlag)|(1<<CFlag)\r
2700          .hword  (0x44<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2701          .hword  (0x45<<8)                  |(1<<NFlag)|(1<<CFlag)\r
2702          .hword  (0x46<<8)                  |(1<<NFlag)|(1<<CFlag)\r
2703          .hword  (0x47<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2704          .hword  (0x48<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2705          .hword  (0x49<<8)               |(1<<NFlag)|(1<<CFlag)\r
2706          .hword  (0x50<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2707          .hword  (0x51<<8)                  |(1<<NFlag)|(1<<CFlag)\r
2708          .hword  (0x52<<8)                  |(1<<NFlag)|(1<<CFlag)\r
2709          .hword  (0x53<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2710          .hword  (0x54<<8)                  |(1<<NFlag)|(1<<CFlag)\r
2711          .hword  (0x55<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2712          .hword  (0x56<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2713          .hword  (0x57<<8)                  |(1<<NFlag)|(1<<CFlag)\r
2714          .hword  (0x58<<8)               |(1<<NFlag)|(1<<CFlag)\r
2715          .hword  (0x59<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2716          .hword  (0x54<<8)                  |(1<<NFlag)|(1<<CFlag)\r
2717          .hword  (0x55<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2718          .hword  (0x56<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2719          .hword  (0x57<<8)                  |(1<<NFlag)|(1<<CFlag)\r
2720          .hword  (0x58<<8)               |(1<<NFlag)|(1<<CFlag)\r
2721          .hword  (0x59<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2722          .hword  (0x60<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2723          .hword  (0x61<<8)               |(1<<NFlag)|(1<<CFlag)\r
2724          .hword  (0x62<<8)               |(1<<NFlag)|(1<<CFlag)\r
2725          .hword  (0x63<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2726          .hword  (0x64<<8)               |(1<<NFlag)|(1<<CFlag)\r
2727          .hword  (0x65<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2728          .hword  (0x66<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2729          .hword  (0x67<<8)               |(1<<NFlag)|(1<<CFlag)\r
2730          .hword  (0x68<<8)            |(1<<NFlag)|(1<<CFlag)\r
2731          .hword  (0x69<<8)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2732          .hword  (0x64<<8)               |(1<<NFlag)|(1<<CFlag)\r
2733          .hword  (0x65<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2734          .hword  (0x66<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2735          .hword  (0x67<<8)               |(1<<NFlag)|(1<<CFlag)\r
2736          .hword  (0x68<<8)            |(1<<NFlag)|(1<<CFlag)\r
2737          .hword  (0x69<<8)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2738          .hword  (0x70<<8)               |(1<<NFlag)|(1<<CFlag)\r
2739          .hword  (0x71<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2740          .hword  (0x72<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2741          .hword  (0x73<<8)               |(1<<NFlag)|(1<<CFlag)\r
2742          .hword  (0x74<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2743          .hword  (0x75<<8)               |(1<<NFlag)|(1<<CFlag)\r
2744          .hword  (0x76<<8)               |(1<<NFlag)|(1<<CFlag)\r
2745          .hword  (0x77<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2746          .hword  (0x78<<8)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2747          .hword  (0x79<<8)            |(1<<NFlag)|(1<<CFlag)\r
2748          .hword  (0x74<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2749          .hword  (0x75<<8)               |(1<<NFlag)|(1<<CFlag)\r
2750          .hword  (0x76<<8)               |(1<<NFlag)|(1<<CFlag)\r
2751          .hword  (0x77<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2752          .hword  (0x78<<8)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2753          .hword  (0x79<<8)            |(1<<NFlag)|(1<<CFlag)\r
2754          .hword  (0x80<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)\r
2755          .hword  (0x81<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2756          .hword  (0x82<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2757          .hword  (0x83<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)\r
2758          .hword  (0x84<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2759          .hword  (0x85<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)\r
2760          .hword  (0x86<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)\r
2761          .hword  (0x87<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2762          .hword  (0x88<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2763          .hword  (0x89<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)\r
2764          .hword  (0x84<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2765          .hword  (0x85<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)\r
2766          .hword  (0x86<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)\r
2767          .hword  (0x87<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2768          .hword  (0x88<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2769          .hword  (0x89<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)\r
2770          .hword  (0x90<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2771          .hword  (0x91<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)\r
2772          .hword  (0x92<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)\r
2773          .hword  (0x93<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2774          .hword  (0x94<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)\r
2775          .hword  (0x95<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2776          .hword  (0x96<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2777          .hword  (0x97<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)\r
2778          .hword  (0x98<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)\r
2779          .hword  (0x99<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2780          .hword  (0x94<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)\r
2781          .hword  (0x95<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2782          .hword  (0x96<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2783          .hword  (0x97<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)\r
2784          .hword  (0x98<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)\r
2785          .hword  (0x99<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2786          .hword  (0xA0<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2787          .hword  (0xA1<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)\r
2788          .hword  (0xA2<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)\r
2789          .hword  (0xA3<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2790          .hword  (0xA4<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)\r
2791          .hword  (0xA5<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2792          .hword  (0xA6<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2793          .hword  (0xA7<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)\r
2794          .hword  (0xA8<<8)|(1<<SFlag)         |(1<<NFlag)|(1<<CFlag)\r
2795          .hword  (0xA9<<8)|(1<<SFlag)      |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2796          .hword  (0xA4<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)\r
2797          .hword  (0xA5<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2798          .hword  (0xA6<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2799          .hword  (0xA7<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)\r
2800          .hword  (0xA8<<8)|(1<<SFlag)         |(1<<NFlag)|(1<<CFlag)\r
2801          .hword  (0xA9<<8)|(1<<SFlag)      |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2802          .hword  (0xB0<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)\r
2803          .hword  (0xB1<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2804          .hword  (0xB2<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2805          .hword  (0xB3<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)\r
2806          .hword  (0xB4<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2807          .hword  (0xB5<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)\r
2808          .hword  (0xB6<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)\r
2809          .hword  (0xB7<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2810          .hword  (0xB8<<8)|(1<<SFlag)      |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2811          .hword  (0xB9<<8)|(1<<SFlag)         |(1<<NFlag)|(1<<CFlag)\r
2812          .hword  (0xB4<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2813          .hword  (0xB5<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)\r
2814          .hword  (0xB6<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)\r
2815          .hword  (0xB7<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2816          .hword  (0xB8<<8)|(1<<SFlag)      |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2817          .hword  (0xB9<<8)|(1<<SFlag)         |(1<<NFlag)|(1<<CFlag)\r
2818          .hword  (0xC0<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2819          .hword  (0xC1<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)\r
2820          .hword  (0xC2<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)\r
2821          .hword  (0xC3<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2822          .hword  (0xC4<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)\r
2823          .hword  (0xC5<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2824          .hword  (0xC6<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2825          .hword  (0xC7<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)\r
2826          .hword  (0xC8<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)\r
2827          .hword  (0xC9<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2828          .hword  (0xC4<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)\r
2829          .hword  (0xC5<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2830          .hword  (0xC6<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2831          .hword  (0xC7<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)\r
2832          .hword  (0xC8<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)\r
2833          .hword  (0xC9<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2834          .hword  (0xD0<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)\r
2835          .hword  (0xD1<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2836          .hword  (0xD2<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2837          .hword  (0xD3<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)\r
2838          .hword  (0xD4<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2839          .hword  (0xD5<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)\r
2840          .hword  (0xD6<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)\r
2841          .hword  (0xD7<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2842          .hword  (0xD8<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2843          .hword  (0xD9<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)\r
2844          .hword  (0xD4<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2845          .hword  (0xD5<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)\r
2846          .hword  (0xD6<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)\r
2847          .hword  (0xD7<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2848          .hword  (0xD8<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2849          .hword  (0xD9<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)\r
2850          .hword  (0xE0<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)\r
2851          .hword  (0xE1<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2852          .hword  (0xE2<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2853          .hword  (0xE3<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)\r
2854          .hword  (0xE4<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2855          .hword  (0xE5<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)\r
2856          .hword  (0xE6<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)\r
2857          .hword  (0xE7<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2858          .hword  (0xE8<<8)|(1<<SFlag)      |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2859          .hword  (0xE9<<8)|(1<<SFlag)         |(1<<NFlag)|(1<<CFlag)\r
2860          .hword  (0xE4<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2861          .hword  (0xE5<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)\r
2862          .hword  (0xE6<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)\r
2863          .hword  (0xE7<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2864          .hword  (0xE8<<8)|(1<<SFlag)      |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2865          .hword  (0xE9<<8)|(1<<SFlag)         |(1<<NFlag)|(1<<CFlag)\r
2866          .hword  (0xF0<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2867          .hword  (0xF1<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)\r
2868          .hword  (0xF2<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)\r
2869          .hword  (0xF3<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2870          .hword  (0xF4<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)\r
2871          .hword  (0xF5<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2872          .hword  (0xF6<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2873          .hword  (0xF7<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)\r
2874          .hword  (0xF8<<8)|(1<<SFlag)         |(1<<NFlag)|(1<<CFlag)\r
2875          .hword  (0xF9<<8)|(1<<SFlag)      |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2876          .hword  (0xF4<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)\r
2877          .hword  (0xF5<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2878          .hword  (0xF6<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2879          .hword  (0xF7<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)\r
2880          .hword  (0xF8<<8)|(1<<SFlag)         |(1<<NFlag)|(1<<CFlag)\r
2881          .hword  (0xF9<<8)|(1<<SFlag)      |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2882          .hword  (0x00<<8)   |(1<<ZFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2883          .hword  (0x01<<8)                  |(1<<NFlag)|(1<<CFlag)\r
2884          .hword  (0x02<<8)                  |(1<<NFlag)|(1<<CFlag)\r
2885          .hword  (0x03<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2886          .hword  (0x04<<8)                  |(1<<NFlag)|(1<<CFlag)\r
2887          .hword  (0x05<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2888          .hword  (0x06<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2889          .hword  (0x07<<8)                  |(1<<NFlag)|(1<<CFlag)\r
2890          .hword  (0x08<<8)               |(1<<NFlag)|(1<<CFlag)\r
2891          .hword  (0x09<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2892          .hword  (0x04<<8)                  |(1<<NFlag)|(1<<CFlag)\r
2893          .hword  (0x05<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2894          .hword  (0x06<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2895          .hword  (0x07<<8)                  |(1<<NFlag)|(1<<CFlag)\r
2896          .hword  (0x08<<8)               |(1<<NFlag)|(1<<CFlag)\r
2897          .hword  (0x09<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2898          .hword  (0x10<<8)                  |(1<<NFlag)|(1<<CFlag)\r
2899          .hword  (0x11<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2900          .hword  (0x12<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2901          .hword  (0x13<<8)                  |(1<<NFlag)|(1<<CFlag)\r
2902          .hword  (0x14<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2903          .hword  (0x15<<8)                  |(1<<NFlag)|(1<<CFlag)\r
2904          .hword  (0x16<<8)                  |(1<<NFlag)|(1<<CFlag)\r
2905          .hword  (0x17<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2906          .hword  (0x18<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2907          .hword  (0x19<<8)               |(1<<NFlag)|(1<<CFlag)\r
2908          .hword  (0x14<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2909          .hword  (0x15<<8)                  |(1<<NFlag)|(1<<CFlag)\r
2910          .hword  (0x16<<8)                  |(1<<NFlag)|(1<<CFlag)\r
2911          .hword  (0x17<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2912          .hword  (0x18<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2913          .hword  (0x19<<8)               |(1<<NFlag)|(1<<CFlag)\r
2914          .hword  (0x20<<8)               |(1<<NFlag)|(1<<CFlag)\r
2915          .hword  (0x21<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2916          .hword  (0x22<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2917          .hword  (0x23<<8)               |(1<<NFlag)|(1<<CFlag)\r
2918          .hword  (0x24<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2919          .hword  (0x25<<8)               |(1<<NFlag)|(1<<CFlag)\r
2920          .hword  (0x26<<8)               |(1<<NFlag)|(1<<CFlag)\r
2921          .hword  (0x27<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2922          .hword  (0x28<<8)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2923          .hword  (0x29<<8)            |(1<<NFlag)|(1<<CFlag)\r
2924          .hword  (0x24<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2925          .hword  (0x25<<8)               |(1<<NFlag)|(1<<CFlag)\r
2926          .hword  (0x26<<8)               |(1<<NFlag)|(1<<CFlag)\r
2927          .hword  (0x27<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2928          .hword  (0x28<<8)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2929          .hword  (0x29<<8)            |(1<<NFlag)|(1<<CFlag)\r
2930          .hword  (0x30<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2931          .hword  (0x31<<8)               |(1<<NFlag)|(1<<CFlag)\r
2932          .hword  (0x32<<8)               |(1<<NFlag)|(1<<CFlag)\r
2933          .hword  (0x33<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2934          .hword  (0x34<<8)               |(1<<NFlag)|(1<<CFlag)\r
2935          .hword  (0x35<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2936          .hword  (0x36<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2937          .hword  (0x37<<8)               |(1<<NFlag)|(1<<CFlag)\r
2938          .hword  (0x38<<8)            |(1<<NFlag)|(1<<CFlag)\r
2939          .hword  (0x39<<8)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2940          .hword  (0x34<<8)               |(1<<NFlag)|(1<<CFlag)\r
2941          .hword  (0x35<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2942          .hword  (0x36<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2943          .hword  (0x37<<8)               |(1<<NFlag)|(1<<CFlag)\r
2944          .hword  (0x38<<8)            |(1<<NFlag)|(1<<CFlag)\r
2945          .hword  (0x39<<8)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2946          .hword  (0x40<<8)                  |(1<<NFlag)|(1<<CFlag)\r
2947          .hword  (0x41<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2948          .hword  (0x42<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2949          .hword  (0x43<<8)                  |(1<<NFlag)|(1<<CFlag)\r
2950          .hword  (0x44<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2951          .hword  (0x45<<8)                  |(1<<NFlag)|(1<<CFlag)\r
2952          .hword  (0x46<<8)                  |(1<<NFlag)|(1<<CFlag)\r
2953          .hword  (0x47<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2954          .hword  (0x48<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2955          .hword  (0x49<<8)               |(1<<NFlag)|(1<<CFlag)\r
2956          .hword  (0x44<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2957          .hword  (0x45<<8)                  |(1<<NFlag)|(1<<CFlag)\r
2958          .hword  (0x46<<8)                  |(1<<NFlag)|(1<<CFlag)\r
2959          .hword  (0x47<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2960          .hword  (0x48<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2961          .hword  (0x49<<8)               |(1<<NFlag)|(1<<CFlag)\r
2962          .hword  (0x50<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2963          .hword  (0x51<<8)                  |(1<<NFlag)|(1<<CFlag)\r
2964          .hword  (0x52<<8)                  |(1<<NFlag)|(1<<CFlag)\r
2965          .hword  (0x53<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2966          .hword  (0x54<<8)                  |(1<<NFlag)|(1<<CFlag)\r
2967          .hword  (0x55<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2968          .hword  (0x56<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2969          .hword  (0x57<<8)                  |(1<<NFlag)|(1<<CFlag)\r
2970          .hword  (0x58<<8)               |(1<<NFlag)|(1<<CFlag)\r
2971          .hword  (0x59<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2972          .hword  (0x54<<8)                  |(1<<NFlag)|(1<<CFlag)\r
2973          .hword  (0x55<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2974          .hword  (0x56<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2975          .hword  (0x57<<8)                  |(1<<NFlag)|(1<<CFlag)\r
2976          .hword  (0x58<<8)               |(1<<NFlag)|(1<<CFlag)\r
2977          .hword  (0x59<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2978          .hword  (0x60<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2979          .hword  (0x61<<8)               |(1<<NFlag)|(1<<CFlag)\r
2980          .hword  (0x62<<8)               |(1<<NFlag)|(1<<CFlag)\r
2981          .hword  (0x63<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2982          .hword  (0x64<<8)               |(1<<NFlag)|(1<<CFlag)\r
2983          .hword  (0x65<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2984          .hword  (0x66<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2985          .hword  (0x67<<8)               |(1<<NFlag)|(1<<CFlag)\r
2986          .hword  (0x68<<8)            |(1<<NFlag)|(1<<CFlag)\r
2987          .hword  (0x69<<8)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2988          .hword  (0x64<<8)               |(1<<NFlag)|(1<<CFlag)\r
2989          .hword  (0x65<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2990          .hword  (0x66<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2991          .hword  (0x67<<8)               |(1<<NFlag)|(1<<CFlag)\r
2992          .hword  (0x68<<8)            |(1<<NFlag)|(1<<CFlag)\r
2993          .hword  (0x69<<8)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2994          .hword  (0x70<<8)               |(1<<NFlag)|(1<<CFlag)\r
2995          .hword  (0x71<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2996          .hword  (0x72<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2997          .hword  (0x73<<8)               |(1<<NFlag)|(1<<CFlag)\r
2998          .hword  (0x74<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2999          .hword  (0x75<<8)               |(1<<NFlag)|(1<<CFlag)\r
3000          .hword  (0x76<<8)               |(1<<NFlag)|(1<<CFlag)\r
3001          .hword  (0x77<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3002          .hword  (0x78<<8)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3003          .hword  (0x79<<8)            |(1<<NFlag)|(1<<CFlag)\r
3004          .hword  (0x74<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3005          .hword  (0x75<<8)               |(1<<NFlag)|(1<<CFlag)\r
3006          .hword  (0x76<<8)               |(1<<NFlag)|(1<<CFlag)\r
3007          .hword  (0x77<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3008          .hword  (0x78<<8)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3009          .hword  (0x79<<8)            |(1<<NFlag)|(1<<CFlag)\r
3010          .hword  (0x80<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)\r
3011          .hword  (0x81<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3012          .hword  (0x82<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3013          .hword  (0x83<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)\r
3014          .hword  (0x84<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3015          .hword  (0x85<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)\r
3016          .hword  (0x86<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)\r
3017          .hword  (0x87<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3018          .hword  (0x88<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3019          .hword  (0x89<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)\r
3020          .hword  (0x84<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3021          .hword  (0x85<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)\r
3022          .hword  (0x86<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)\r
3023          .hword  (0x87<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3024          .hword  (0x88<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3025          .hword  (0x89<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)\r
3026          .hword  (0x90<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3027          .hword  (0x91<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)\r
3028          .hword  (0x92<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)\r
3029          .hword  (0x93<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3030          .hword  (0x94<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)\r
3031          .hword  (0x95<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3032          .hword  (0x96<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3033          .hword  (0x97<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)\r
3034          .hword  (0x98<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)\r
3035          .hword  (0x99<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3036          .hword  (0x94<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)\r
3037          .hword  (0x95<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3038          .hword  (0x96<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3039          .hword  (0x97<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)\r
3040          .hword  (0x98<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)\r
3041          .hword  (0x99<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3042          .hword  (0xFA<<8)|(1<<SFlag)   |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)   \r
3043          .hword  (0xFB<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<NFlag)   \r
3044          .hword  (0xFC<<8)|(1<<SFlag)   |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)   \r
3045          .hword  (0xFD<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<NFlag)   \r
3046          .hword  (0xFE<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<NFlag)   \r
3047          .hword  (0xFF<<8)|(1<<SFlag)   |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)   \r
3048          .hword  (0x00<<8)   |(1<<ZFlag)         |(1<<VFlag)|(1<<NFlag)   \r
3049          .hword  (0x01<<8)                  |(1<<NFlag)   \r
3050          .hword  (0x02<<8)                  |(1<<NFlag)   \r
3051          .hword  (0x03<<8)               |(1<<VFlag)|(1<<NFlag)   \r
3052          .hword  (0x04<<8)                  |(1<<NFlag)   \r
3053          .hword  (0x05<<8)               |(1<<VFlag)|(1<<NFlag)   \r
3054          .hword  (0x06<<8)               |(1<<VFlag)|(1<<NFlag)   \r
3055          .hword  (0x07<<8)                  |(1<<NFlag)   \r
3056          .hword  (0x08<<8)               |(1<<NFlag)   \r
3057          .hword  (0x09<<8)            |(1<<VFlag)|(1<<NFlag)   \r
3058          .hword  (0x0A<<8)         |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)   \r
3059          .hword  (0x0B<<8)         |(1<<HFlag)   |(1<<NFlag)   \r
3060          .hword  (0x0C<<8)         |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)   \r
3061          .hword  (0x0D<<8)         |(1<<HFlag)   |(1<<NFlag)   \r
3062          .hword  (0x0E<<8)         |(1<<HFlag)   |(1<<NFlag)   \r
3063          .hword  (0x0F<<8)         |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)   \r
3064          .hword  (0x10<<8)                  |(1<<NFlag)   \r
3065          .hword  (0x11<<8)               |(1<<VFlag)|(1<<NFlag)   \r
3066          .hword  (0x12<<8)               |(1<<VFlag)|(1<<NFlag)   \r
3067          .hword  (0x13<<8)                  |(1<<NFlag)   \r
3068          .hword  (0x14<<8)               |(1<<VFlag)|(1<<NFlag)   \r
3069          .hword  (0x15<<8)                  |(1<<NFlag)   \r
3070          .hword  (0x16<<8)                  |(1<<NFlag)   \r
3071          .hword  (0x17<<8)               |(1<<VFlag)|(1<<NFlag)   \r
3072          .hword  (0x18<<8)            |(1<<VFlag)|(1<<NFlag)   \r
3073          .hword  (0x19<<8)               |(1<<NFlag)   \r
3074          .hword  (0x1A<<8)         |(1<<HFlag)   |(1<<NFlag)   \r
3075          .hword  (0x1B<<8)         |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)   \r
3076          .hword  (0x1C<<8)         |(1<<HFlag)   |(1<<NFlag)   \r
3077          .hword  (0x1D<<8)         |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)   \r
3078          .hword  (0x1E<<8)         |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)   \r
3079          .hword  (0x1F<<8)         |(1<<HFlag)   |(1<<NFlag)   \r
3080          .hword  (0x20<<8)               |(1<<NFlag)   \r
3081          .hword  (0x21<<8)            |(1<<VFlag)|(1<<NFlag)   \r
3082          .hword  (0x22<<8)            |(1<<VFlag)|(1<<NFlag)   \r
3083          .hword  (0x23<<8)               |(1<<NFlag)   \r
3084          .hword  (0x24<<8)            |(1<<VFlag)|(1<<NFlag)   \r
3085          .hword  (0x25<<8)               |(1<<NFlag)   \r
3086          .hword  (0x26<<8)               |(1<<NFlag)   \r
3087          .hword  (0x27<<8)            |(1<<VFlag)|(1<<NFlag)   \r
3088          .hword  (0x28<<8)         |(1<<VFlag)|(1<<NFlag)   \r
3089          .hword  (0x29<<8)            |(1<<NFlag)   \r
3090          .hword  (0x2A<<8)      |(1<<HFlag)   |(1<<NFlag)   \r
3091          .hword  (0x2B<<8)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)   \r
3092          .hword  (0x2C<<8)      |(1<<HFlag)   |(1<<NFlag)   \r
3093          .hword  (0x2D<<8)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)   \r
3094          .hword  (0x2E<<8)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)   \r
3095          .hword  (0x2F<<8)      |(1<<HFlag)   |(1<<NFlag)   \r
3096          .hword  (0x30<<8)            |(1<<VFlag)|(1<<NFlag)   \r
3097          .hword  (0x31<<8)               |(1<<NFlag)   \r
3098          .hword  (0x32<<8)               |(1<<NFlag)   \r
3099          .hword  (0x33<<8)            |(1<<VFlag)|(1<<NFlag)   \r
3100          .hword  (0x34<<8)               |(1<<NFlag)   \r
3101          .hword  (0x35<<8)            |(1<<VFlag)|(1<<NFlag)   \r
3102          .hword  (0x36<<8)            |(1<<VFlag)|(1<<NFlag)   \r
3103          .hword  (0x37<<8)               |(1<<NFlag)   \r
3104          .hword  (0x38<<8)            |(1<<NFlag)   \r
3105          .hword  (0x39<<8)         |(1<<VFlag)|(1<<NFlag)   \r
3106          .hword  (0x3A<<8)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)   \r
3107          .hword  (0x3B<<8)      |(1<<HFlag)   |(1<<NFlag)   \r
3108          .hword  (0x3C<<8)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)   \r
3109          .hword  (0x3D<<8)      |(1<<HFlag)   |(1<<NFlag)   \r
3110          .hword  (0x3E<<8)      |(1<<HFlag)   |(1<<NFlag)   \r
3111          .hword  (0x3F<<8)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)   \r
3112          .hword  (0x40<<8)                  |(1<<NFlag)   \r
3113          .hword  (0x41<<8)               |(1<<VFlag)|(1<<NFlag)   \r
3114          .hword  (0x42<<8)               |(1<<VFlag)|(1<<NFlag)   \r
3115          .hword  (0x43<<8)                  |(1<<NFlag)   \r
3116          .hword  (0x44<<8)               |(1<<VFlag)|(1<<NFlag)   \r
3117          .hword  (0x45<<8)                  |(1<<NFlag)   \r
3118          .hword  (0x46<<8)                  |(1<<NFlag)   \r
3119          .hword  (0x47<<8)               |(1<<VFlag)|(1<<NFlag)   \r
3120          .hword  (0x48<<8)            |(1<<VFlag)|(1<<NFlag)   \r
3121          .hword  (0x49<<8)               |(1<<NFlag)   \r
3122          .hword  (0x4A<<8)         |(1<<HFlag)   |(1<<NFlag)   \r
3123          .hword  (0x4B<<8)         |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)   \r
3124          .hword  (0x4C<<8)         |(1<<HFlag)   |(1<<NFlag)   \r
3125          .hword  (0x4D<<8)         |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)   \r
3126          .hword  (0x4E<<8)         |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)   \r
3127          .hword  (0x4F<<8)         |(1<<HFlag)   |(1<<NFlag)   \r
3128          .hword  (0x50<<8)               |(1<<VFlag)|(1<<NFlag)   \r
3129          .hword  (0x51<<8)                  |(1<<NFlag)   \r
3130          .hword  (0x52<<8)                  |(1<<NFlag)   \r
3131          .hword  (0x53<<8)               |(1<<VFlag)|(1<<NFlag)   \r
3132          .hword  (0x54<<8)                  |(1<<NFlag)   \r
3133          .hword  (0x55<<8)               |(1<<VFlag)|(1<<NFlag)   \r
3134          .hword  (0x56<<8)               |(1<<VFlag)|(1<<NFlag)   \r
3135          .hword  (0x57<<8)                  |(1<<NFlag)   \r
3136          .hword  (0x58<<8)               |(1<<NFlag)   \r
3137          .hword  (0x59<<8)            |(1<<VFlag)|(1<<NFlag)   \r
3138          .hword  (0x5A<<8)         |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)   \r
3139          .hword  (0x5B<<8)         |(1<<HFlag)   |(1<<NFlag)   \r
3140          .hword  (0x5C<<8)         |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)   \r
3141          .hword  (0x5D<<8)         |(1<<HFlag)   |(1<<NFlag)   \r
3142          .hword  (0x5E<<8)         |(1<<HFlag)   |(1<<NFlag)   \r
3143          .hword  (0x5F<<8)         |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)   \r
3144          .hword  (0x60<<8)            |(1<<VFlag)|(1<<NFlag)   \r
3145          .hword  (0x61<<8)               |(1<<NFlag)   \r
3146          .hword  (0x62<<8)               |(1<<NFlag)   \r
3147          .hword  (0x63<<8)            |(1<<VFlag)|(1<<NFlag)   \r
3148          .hword  (0x64<<8)               |(1<<NFlag)   \r
3149          .hword  (0x65<<8)            |(1<<VFlag)|(1<<NFlag)   \r
3150          .hword  (0x66<<8)            |(1<<VFlag)|(1<<NFlag)   \r
3151          .hword  (0x67<<8)               |(1<<NFlag)   \r
3152          .hword  (0x68<<8)            |(1<<NFlag)   \r
3153          .hword  (0x69<<8)         |(1<<VFlag)|(1<<NFlag)   \r
3154          .hword  (0x6A<<8)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)   \r
3155          .hword  (0x6B<<8)      |(1<<HFlag)   |(1<<NFlag)   \r
3156          .hword  (0x6C<<8)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)   \r
3157          .hword  (0x6D<<8)      |(1<<HFlag)   |(1<<NFlag)   \r
3158          .hword  (0x6E<<8)      |(1<<HFlag)   |(1<<NFlag)   \r
3159          .hword  (0x6F<<8)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)   \r
3160          .hword  (0x70<<8)               |(1<<NFlag)   \r
3161          .hword  (0x71<<8)            |(1<<VFlag)|(1<<NFlag)   \r
3162          .hword  (0x72<<8)            |(1<<VFlag)|(1<<NFlag)   \r
3163          .hword  (0x73<<8)               |(1<<NFlag)   \r
3164          .hword  (0x74<<8)            |(1<<VFlag)|(1<<NFlag)   \r
3165          .hword  (0x75<<8)               |(1<<NFlag)   \r
3166          .hword  (0x76<<8)               |(1<<NFlag)   \r
3167          .hword  (0x77<<8)            |(1<<VFlag)|(1<<NFlag)   \r
3168          .hword  (0x78<<8)         |(1<<VFlag)|(1<<NFlag)   \r
3169          .hword  (0x79<<8)            |(1<<NFlag)   \r
3170          .hword  (0x7A<<8)      |(1<<HFlag)   |(1<<NFlag)   \r
3171          .hword  (0x7B<<8)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)   \r
3172          .hword  (0x7C<<8)      |(1<<HFlag)   |(1<<NFlag)   \r
3173          .hword  (0x7D<<8)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)   \r
3174          .hword  (0x7E<<8)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)   \r
3175          .hword  (0x7F<<8)      |(1<<HFlag)   |(1<<NFlag)   \r
3176          .hword  (0x80<<8)|(1<<SFlag)               |(1<<NFlag)   \r
3177          .hword  (0x81<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)   \r
3178          .hword  (0x82<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)   \r
3179          .hword  (0x83<<8)|(1<<SFlag)               |(1<<NFlag)   \r
3180          .hword  (0x84<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)   \r
3181          .hword  (0x85<<8)|(1<<SFlag)               |(1<<NFlag)   \r
3182          .hword  (0x86<<8)|(1<<SFlag)               |(1<<NFlag)   \r
3183          .hword  (0x87<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)   \r
3184          .hword  (0x88<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)   \r
3185          .hword  (0x89<<8)|(1<<SFlag)            |(1<<NFlag)   \r
3186          .hword  (0x8A<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<NFlag)   \r
3187          .hword  (0x8B<<8)|(1<<SFlag)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)   \r
3188          .hword  (0x8C<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<NFlag)   \r
3189          .hword  (0x8D<<8)|(1<<SFlag)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)   \r
3190          .hword  (0x8E<<8)|(1<<SFlag)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)   \r
3191          .hword  (0x8F<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<NFlag)   \r
3192          .hword  (0x90<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)   \r
3193          .hword  (0x91<<8)|(1<<SFlag)               |(1<<NFlag)   \r
3194          .hword  (0x92<<8)|(1<<SFlag)               |(1<<NFlag)   \r
3195          .hword  (0x93<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)   \r
3196          .hword  (0x34<<8)               |(1<<NFlag)|(1<<CFlag)\r
3197          .hword  (0x35<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3198          .hword  (0x36<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3199          .hword  (0x37<<8)               |(1<<NFlag)|(1<<CFlag)\r
3200          .hword  (0x38<<8)            |(1<<NFlag)|(1<<CFlag)\r
3201          .hword  (0x39<<8)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3202          .hword  (0x3A<<8)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3203          .hword  (0x3B<<8)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)\r
3204          .hword  (0x3C<<8)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3205          .hword  (0x3D<<8)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)\r
3206          .hword  (0x3E<<8)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)\r
3207          .hword  (0x3F<<8)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3208          .hword  (0x40<<8)                  |(1<<NFlag)|(1<<CFlag)\r
3209          .hword  (0x41<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3210          .hword  (0x42<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3211          .hword  (0x43<<8)                  |(1<<NFlag)|(1<<CFlag)\r
3212          .hword  (0x44<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3213          .hword  (0x45<<8)                  |(1<<NFlag)|(1<<CFlag)\r
3214          .hword  (0x46<<8)                  |(1<<NFlag)|(1<<CFlag)\r
3215          .hword  (0x47<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3216          .hword  (0x48<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3217          .hword  (0x49<<8)               |(1<<NFlag)|(1<<CFlag)\r
3218          .hword  (0x4A<<8)         |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)\r
3219          .hword  (0x4B<<8)         |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3220          .hword  (0x4C<<8)         |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)\r
3221          .hword  (0x4D<<8)         |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3222          .hword  (0x4E<<8)         |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3223          .hword  (0x4F<<8)         |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)\r
3224          .hword  (0x50<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3225          .hword  (0x51<<8)                  |(1<<NFlag)|(1<<CFlag)\r
3226          .hword  (0x52<<8)                  |(1<<NFlag)|(1<<CFlag)\r
3227          .hword  (0x53<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3228          .hword  (0x54<<8)                  |(1<<NFlag)|(1<<CFlag)\r
3229          .hword  (0x55<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3230          .hword  (0x56<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3231          .hword  (0x57<<8)                  |(1<<NFlag)|(1<<CFlag)\r
3232          .hword  (0x58<<8)               |(1<<NFlag)|(1<<CFlag)\r
3233          .hword  (0x59<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3234          .hword  (0x5A<<8)         |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3235          .hword  (0x5B<<8)         |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)\r
3236          .hword  (0x5C<<8)         |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3237          .hword  (0x5D<<8)         |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)\r
3238          .hword  (0x5E<<8)         |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)\r
3239          .hword  (0x5F<<8)         |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3240          .hword  (0x60<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3241          .hword  (0x61<<8)               |(1<<NFlag)|(1<<CFlag)\r
3242          .hword  (0x62<<8)               |(1<<NFlag)|(1<<CFlag)\r
3243          .hword  (0x63<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3244          .hword  (0x64<<8)               |(1<<NFlag)|(1<<CFlag)\r
3245          .hword  (0x65<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3246          .hword  (0x66<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3247          .hword  (0x67<<8)               |(1<<NFlag)|(1<<CFlag)\r
3248          .hword  (0x68<<8)            |(1<<NFlag)|(1<<CFlag)\r
3249          .hword  (0x69<<8)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3250          .hword  (0x6A<<8)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3251          .hword  (0x6B<<8)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)\r
3252          .hword  (0x6C<<8)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3253          .hword  (0x6D<<8)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)\r
3254          .hword  (0x6E<<8)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)\r
3255          .hword  (0x6F<<8)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3256          .hword  (0x70<<8)               |(1<<NFlag)|(1<<CFlag)\r
3257          .hword  (0x71<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3258          .hword  (0x72<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3259          .hword  (0x73<<8)               |(1<<NFlag)|(1<<CFlag)\r
3260          .hword  (0x74<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3261          .hword  (0x75<<8)               |(1<<NFlag)|(1<<CFlag)\r
3262          .hword  (0x76<<8)               |(1<<NFlag)|(1<<CFlag)\r
3263          .hword  (0x77<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3264          .hword  (0x78<<8)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3265          .hword  (0x79<<8)            |(1<<NFlag)|(1<<CFlag)\r
3266          .hword  (0x7A<<8)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)\r
3267          .hword  (0x7B<<8)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3268          .hword  (0x7C<<8)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)\r
3269          .hword  (0x7D<<8)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3270          .hword  (0x7E<<8)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3271          .hword  (0x7F<<8)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)\r
3272          .hword  (0x80<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)\r
3273          .hword  (0x81<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3274          .hword  (0x82<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3275          .hword  (0x83<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)\r
3276          .hword  (0x84<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3277          .hword  (0x85<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)\r
3278          .hword  (0x86<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)\r
3279          .hword  (0x87<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3280          .hword  (0x88<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3281          .hword  (0x89<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)\r
3282          .hword  (0x8A<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)\r
3283          .hword  (0x8B<<8)|(1<<SFlag)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3284          .hword  (0x8C<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)\r
3285          .hword  (0x8D<<8)|(1<<SFlag)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3286          .hword  (0x8E<<8)|(1<<SFlag)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3287          .hword  (0x8F<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)\r
3288          .hword  (0x90<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3289          .hword  (0x91<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)\r
3290          .hword  (0x92<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)\r
3291          .hword  (0x93<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3292          .hword  (0x94<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)\r
3293          .hword  (0x95<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3294          .hword  (0x96<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3295          .hword  (0x97<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)\r
3296          .hword  (0x98<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)\r
3297          .hword  (0x99<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3298          .hword  (0x9A<<8)|(1<<SFlag)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3299          .hword  (0x9B<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)\r
3300          .hword  (0x9C<<8)|(1<<SFlag)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3301          .hword  (0x9D<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)\r
3302          .hword  (0x9E<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)\r
3303          .hword  (0x9F<<8)|(1<<SFlag)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3304          .hword  (0xA0<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3305          .hword  (0xA1<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)\r
3306          .hword  (0xA2<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)\r
3307          .hword  (0xA3<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3308          .hword  (0xA4<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)\r
3309          .hword  (0xA5<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3310          .hword  (0xA6<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3311          .hword  (0xA7<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)\r
3312          .hword  (0xA8<<8)|(1<<SFlag)         |(1<<NFlag)|(1<<CFlag)\r
3313          .hword  (0xA9<<8)|(1<<SFlag)      |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3314          .hword  (0xAA<<8)|(1<<SFlag)   |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3315          .hword  (0xAB<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)\r
3316          .hword  (0xAC<<8)|(1<<SFlag)   |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3317          .hword  (0xAD<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)\r
3318          .hword  (0xAE<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)\r
3319          .hword  (0xAF<<8)|(1<<SFlag)   |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3320          .hword  (0xB0<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)\r
3321          .hword  (0xB1<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3322          .hword  (0xB2<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3323          .hword  (0xB3<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)\r
3324          .hword  (0xB4<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3325          .hword  (0xB5<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)\r
3326          .hword  (0xB6<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)\r
3327          .hword  (0xB7<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3328          .hword  (0xB8<<8)|(1<<SFlag)      |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3329          .hword  (0xB9<<8)|(1<<SFlag)         |(1<<NFlag)|(1<<CFlag)\r
3330          .hword  (0xBA<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)\r
3331          .hword  (0xBB<<8)|(1<<SFlag)   |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3332          .hword  (0xBC<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)\r
3333          .hword  (0xBD<<8)|(1<<SFlag)   |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3334          .hword  (0xBE<<8)|(1<<SFlag)   |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3335          .hword  (0xBF<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)\r
3336          .hword  (0xC0<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3337          .hword  (0xC1<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)\r
3338          .hword  (0xC2<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)\r
3339          .hword  (0xC3<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3340          .hword  (0xC4<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)\r
3341          .hword  (0xC5<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3342          .hword  (0xC6<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3343          .hword  (0xC7<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)\r
3344          .hword  (0xC8<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)\r
3345          .hword  (0xC9<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3346          .hword  (0xCA<<8)|(1<<SFlag)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3347          .hword  (0xCB<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)\r
3348          .hword  (0xCC<<8)|(1<<SFlag)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3349          .hword  (0xCD<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)\r
3350          .hword  (0xCE<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)\r
3351          .hword  (0xCF<<8)|(1<<SFlag)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3352          .hword  (0xD0<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)\r
3353          .hword  (0xD1<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3354          .hword  (0xD2<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3355          .hword  (0xD3<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)\r
3356          .hword  (0xD4<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3357          .hword  (0xD5<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)\r
3358          .hword  (0xD6<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)\r
3359          .hword  (0xD7<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3360          .hword  (0xD8<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3361          .hword  (0xD9<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)\r
3362          .hword  (0xDA<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)\r
3363          .hword  (0xDB<<8)|(1<<SFlag)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3364          .hword  (0xDC<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)\r
3365          .hword  (0xDD<<8)|(1<<SFlag)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3366          .hword  (0xDE<<8)|(1<<SFlag)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3367          .hword  (0xDF<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)\r
3368          .hword  (0xE0<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)\r
3369          .hword  (0xE1<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3370          .hword  (0xE2<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3371          .hword  (0xE3<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)\r
3372          .hword  (0xE4<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3373          .hword  (0xE5<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)\r
3374          .hword  (0xE6<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)\r
3375          .hword  (0xE7<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3376          .hword  (0xE8<<8)|(1<<SFlag)      |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3377          .hword  (0xE9<<8)|(1<<SFlag)         |(1<<NFlag)|(1<<CFlag)\r
3378          .hword  (0xEA<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)\r
3379          .hword  (0xEB<<8)|(1<<SFlag)   |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3380          .hword  (0xEC<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)\r
3381          .hword  (0xED<<8)|(1<<SFlag)   |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3382          .hword  (0xEE<<8)|(1<<SFlag)   |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3383          .hword  (0xEF<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)\r
3384          .hword  (0xF0<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3385          .hword  (0xF1<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)\r
3386          .hword  (0xF2<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)\r
3387          .hword  (0xF3<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3388          .hword  (0xF4<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)\r
3389          .hword  (0xF5<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3390          .hword  (0xF6<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3391          .hword  (0xF7<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)\r
3392          .hword  (0xF8<<8)|(1<<SFlag)         |(1<<NFlag)|(1<<CFlag)\r
3393          .hword  (0xF9<<8)|(1<<SFlag)      |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3394          .hword  (0xFA<<8)|(1<<SFlag)   |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3395          .hword  (0xFB<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)\r
3396          .hword  (0xFC<<8)|(1<<SFlag)   |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3397          .hword  (0xFD<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)\r
3398          .hword  (0xFE<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)\r
3399          .hword  (0xFF<<8)|(1<<SFlag)   |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3400          .hword  (0x00<<8)   |(1<<ZFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3401          .hword  (0x01<<8)                  |(1<<NFlag)|(1<<CFlag)\r
3402          .hword  (0x02<<8)                  |(1<<NFlag)|(1<<CFlag)\r
3403          .hword  (0x03<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3404          .hword  (0x04<<8)                  |(1<<NFlag)|(1<<CFlag)\r
3405          .hword  (0x05<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3406          .hword  (0x06<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3407          .hword  (0x07<<8)                  |(1<<NFlag)|(1<<CFlag)\r
3408          .hword  (0x08<<8)               |(1<<NFlag)|(1<<CFlag)\r
3409          .hword  (0x09<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3410          .hword  (0x0A<<8)         |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3411          .hword  (0x0B<<8)         |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)\r
3412          .hword  (0x0C<<8)         |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3413          .hword  (0x0D<<8)         |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)\r
3414          .hword  (0x0E<<8)         |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)\r
3415          .hword  (0x0F<<8)         |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3416          .hword  (0x10<<8)                  |(1<<NFlag)|(1<<CFlag)\r
3417          .hword  (0x11<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3418          .hword  (0x12<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3419          .hword  (0x13<<8)                  |(1<<NFlag)|(1<<CFlag)\r
3420          .hword  (0x14<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3421          .hword  (0x15<<8)                  |(1<<NFlag)|(1<<CFlag)\r
3422          .hword  (0x16<<8)                  |(1<<NFlag)|(1<<CFlag)\r
3423          .hword  (0x17<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3424          .hword  (0x18<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3425          .hword  (0x19<<8)               |(1<<NFlag)|(1<<CFlag)\r
3426          .hword  (0x1A<<8)         |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)\r
3427          .hword  (0x1B<<8)         |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3428          .hword  (0x1C<<8)         |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)\r
3429          .hword  (0x1D<<8)         |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3430          .hword  (0x1E<<8)         |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3431          .hword  (0x1F<<8)         |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)\r
3432          .hword  (0x20<<8)               |(1<<NFlag)|(1<<CFlag)\r
3433          .hword  (0x21<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3434          .hword  (0x22<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3435          .hword  (0x23<<8)               |(1<<NFlag)|(1<<CFlag)\r
3436          .hword  (0x24<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3437          .hword  (0x25<<8)               |(1<<NFlag)|(1<<CFlag)\r
3438          .hword  (0x26<<8)               |(1<<NFlag)|(1<<CFlag)\r
3439          .hword  (0x27<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3440          .hword  (0x28<<8)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3441          .hword  (0x29<<8)            |(1<<NFlag)|(1<<CFlag)\r
3442          .hword  (0x2A<<8)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)\r
3443          .hword  (0x2B<<8)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3444          .hword  (0x2C<<8)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)\r
3445          .hword  (0x2D<<8)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3446          .hword  (0x2E<<8)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3447          .hword  (0x2F<<8)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)\r
3448          .hword  (0x30<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3449          .hword  (0x31<<8)               |(1<<NFlag)|(1<<CFlag)\r
3450          .hword  (0x32<<8)               |(1<<NFlag)|(1<<CFlag)\r
3451          .hword  (0x33<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3452          .hword  (0x34<<8)               |(1<<NFlag)|(1<<CFlag)\r
3453          .hword  (0x35<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3454          .hword  (0x36<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3455          .hword  (0x37<<8)               |(1<<NFlag)|(1<<CFlag)\r
3456          .hword  (0x38<<8)            |(1<<NFlag)|(1<<CFlag)\r
3457          .hword  (0x39<<8)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3458          .hword  (0x3A<<8)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3459          .hword  (0x3B<<8)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)\r
3460          .hword  (0x3C<<8)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3461          .hword  (0x3D<<8)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)\r
3462          .hword  (0x3E<<8)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)\r
3463          .hword  (0x3F<<8)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3464          .hword  (0x40<<8)                  |(1<<NFlag)|(1<<CFlag)\r
3465          .hword  (0x41<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3466          .hword  (0x42<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3467          .hword  (0x43<<8)                  |(1<<NFlag)|(1<<CFlag)\r
3468          .hword  (0x44<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3469          .hword  (0x45<<8)                  |(1<<NFlag)|(1<<CFlag)\r
3470          .hword  (0x46<<8)                  |(1<<NFlag)|(1<<CFlag)\r
3471          .hword  (0x47<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3472          .hword  (0x48<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3473          .hword  (0x49<<8)               |(1<<NFlag)|(1<<CFlag)\r
3474          .hword  (0x4A<<8)         |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)\r
3475          .hword  (0x4B<<8)         |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3476          .hword  (0x4C<<8)         |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)\r
3477          .hword  (0x4D<<8)         |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3478          .hword  (0x4E<<8)         |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3479          .hword  (0x4F<<8)         |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)\r
3480          .hword  (0x50<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3481          .hword  (0x51<<8)                  |(1<<NFlag)|(1<<CFlag)\r
3482          .hword  (0x52<<8)                  |(1<<NFlag)|(1<<CFlag)\r
3483          .hword  (0x53<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3484          .hword  (0x54<<8)                  |(1<<NFlag)|(1<<CFlag)\r
3485          .hword  (0x55<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3486          .hword  (0x56<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3487          .hword  (0x57<<8)                  |(1<<NFlag)|(1<<CFlag)\r
3488          .hword  (0x58<<8)               |(1<<NFlag)|(1<<CFlag)\r
3489          .hword  (0x59<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3490          .hword  (0x5A<<8)         |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3491          .hword  (0x5B<<8)         |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)\r
3492          .hword  (0x5C<<8)         |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3493          .hword  (0x5D<<8)         |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)\r
3494          .hword  (0x5E<<8)         |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)\r
3495          .hword  (0x5F<<8)         |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3496          .hword  (0x60<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3497          .hword  (0x61<<8)               |(1<<NFlag)|(1<<CFlag)\r
3498          .hword  (0x62<<8)               |(1<<NFlag)|(1<<CFlag)\r
3499          .hword  (0x63<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3500          .hword  (0x64<<8)               |(1<<NFlag)|(1<<CFlag)\r
3501          .hword  (0x65<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3502          .hword  (0x66<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3503          .hword  (0x67<<8)               |(1<<NFlag)|(1<<CFlag)\r
3504          .hword  (0x68<<8)            |(1<<NFlag)|(1<<CFlag)\r
3505          .hword  (0x69<<8)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3506          .hword  (0x6A<<8)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3507          .hword  (0x6B<<8)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)\r
3508          .hword  (0x6C<<8)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3509          .hword  (0x6D<<8)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)\r
3510          .hword  (0x6E<<8)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)\r
3511          .hword  (0x6F<<8)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3512          .hword  (0x70<<8)               |(1<<NFlag)|(1<<CFlag)\r
3513          .hword  (0x71<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3514          .hword  (0x72<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3515          .hword  (0x73<<8)               |(1<<NFlag)|(1<<CFlag)\r
3516          .hword  (0x74<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3517          .hword  (0x75<<8)               |(1<<NFlag)|(1<<CFlag)\r
3518          .hword  (0x76<<8)               |(1<<NFlag)|(1<<CFlag)\r
3519          .hword  (0x77<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3520          .hword  (0x78<<8)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3521          .hword  (0x79<<8)            |(1<<NFlag)|(1<<CFlag)\r
3522          .hword  (0x7A<<8)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)\r
3523          .hword  (0x7B<<8)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3524          .hword  (0x7C<<8)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)\r
3525          .hword  (0x7D<<8)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3526          .hword  (0x7E<<8)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3527          .hword  (0x7F<<8)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)\r
3528          .hword  (0x80<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)\r
3529          .hword  (0x81<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3530          .hword  (0x82<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3531          .hword  (0x83<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)\r
3532          .hword  (0x84<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3533          .hword  (0x85<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)\r
3534          .hword  (0x86<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)\r
3535          .hword  (0x87<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3536          .hword  (0x88<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3537          .hword  (0x89<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)\r
3538          .hword  (0x8A<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)\r
3539          .hword  (0x8B<<8)|(1<<SFlag)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3540          .hword  (0x8C<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)\r
3541          .hword  (0x8D<<8)|(1<<SFlag)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3542          .hword  (0x8E<<8)|(1<<SFlag)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3543          .hword  (0x8F<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)\r
3544          .hword  (0x90<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3545          .hword  (0x91<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)\r
3546          .hword  (0x92<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)\r
3547          .hword  (0x93<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3548          .hword  (0x94<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)\r
3549          .hword  (0x95<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3550          .hword  (0x96<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3551          .hword  (0x97<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)\r
3552          .hword  (0x98<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)\r
3553          .hword  (0x99<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3554          \r
3555 .align 4\r
3556 \r
3557 AF_Z80:  .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 0\r
3558          .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 1\r
3559          .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 2\r
3560          .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 3\r
3561          .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 4\r
3562          .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 5\r
3563          .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 6\r
3564          .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 7\r
3565          .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 8\r
3566          .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 9\r
3567          .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 10\r
3568          .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 11\r
3569          .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 12\r
3570          .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 13\r
3571          .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 14\r
3572          .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 15\r
3573          .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 16\r
3574          .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 17\r
3575          .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 18\r
3576          .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 19\r
3577          .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 20\r
3578          .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 21\r
3579          .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 22\r
3580          .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 23\r
3581          .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 24\r
3582          .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 25\r
3583          .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 26\r
3584          .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 27\r
3585          .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 28\r
3586          .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 29\r
3587          .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 30\r
3588          .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 31\r
3589          .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 32\r
3590          .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 33\r
3591          .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 34\r
3592          .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 35\r
3593          .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 36\r
3594          .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 37\r
3595          .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 38\r
3596          .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 39\r
3597          .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 40\r
3598          .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 41\r
3599          .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 42\r
3600          .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 43\r
3601          .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 44\r
3602          .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 45\r
3603          .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 46\r
3604          .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 47\r
3605          .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 48\r
3606          .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 49\r
3607          .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 50\r
3608          .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 51\r
3609          .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 52\r
3610          .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 53\r
3611          .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 54\r
3612          .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 55\r
3613          .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 56\r
3614          .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 57\r
3615          .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 58\r
3616          .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 59\r
3617          .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 60\r
3618          .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 61\r
3619          .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 62\r
3620          .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 63\r
3621          .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 64\r
3622          .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 65\r
3623          .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 66\r
3624          .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 67\r
3625          .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 68\r
3626          .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 69\r
3627          .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 70\r
3628          .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 71\r
3629          .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 72\r
3630          .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 73\r
3631          .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 74\r
3632          .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 75\r
3633          .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 76\r
3634          .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 77\r
3635          .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 78\r
3636          .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 79\r
3637          .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 80\r
3638          .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 81\r
3639          .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 82\r
3640          .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 83\r
3641          .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 84\r
3642          .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 85\r
3643          .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 86\r
3644          .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 87\r
3645          .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 88\r
3646          .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 89\r
3647          .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 90\r
3648          .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 91\r
3649          .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 92\r
3650          .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 93\r
3651          .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 94\r
3652          .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 95\r
3653          .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 96\r
3654          .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 97\r
3655          .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 98\r
3656          .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 99\r
3657          .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 100\r
3658          .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 101\r
3659          .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 102\r
3660          .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 103\r
3661          .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 104\r
3662          .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 105\r
3663          .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 106\r
3664          .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 107\r
3665          .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 108\r
3666          .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 109\r
3667          .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 110\r
3668          .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 111\r
3669          .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 112\r
3670          .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 113\r
3671          .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 114\r
3672          .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 115\r
3673          .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 116\r
3674          .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 117\r
3675          .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 118\r
3676          .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 119\r
3677          .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 120\r
3678          .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 121\r
3679          .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 122\r
3680          .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 123\r
3681          .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 124\r
3682          .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 125\r
3683          .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 126\r
3684          .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 127\r
3685          .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 128\r
3686          .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 129\r
3687          .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 130\r
3688          .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 131\r
3689          .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 132\r
3690          .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 133\r
3691          .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 134\r
3692          .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 135\r
3693          .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 136\r
3694          .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 137\r
3695          .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 138\r
3696          .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 139\r
3697          .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 140\r
3698          .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 141\r
3699          .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 142\r
3700          .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 143\r
3701          .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 144\r
3702          .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 145\r
3703          .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 146\r
3704          .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 147\r
3705          .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 148\r
3706          .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 149\r
3707          .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 150\r
3708          .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 151\r
3709          .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 152\r
3710          .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 153\r
3711          .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 154\r
3712          .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 155\r
3713          .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 156\r
3714          .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 157\r
3715          .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 158\r
3716          .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 159\r
3717          .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 160\r
3718          .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 161\r
3719          .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 162\r
3720          .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 163\r
3721          .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 164\r
3722          .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 165\r
3723          .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 166\r
3724          .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 167\r
3725          .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 168\r
3726          .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 169\r
3727          .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 170\r
3728          .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 171\r
3729          .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 172\r
3730          .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 173\r
3731          .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 174\r
3732          .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 175\r
3733          .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 176\r
3734          .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 177\r
3735          .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 178\r
3736          .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 179\r
3737          .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 180\r
3738          .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 181\r
3739          .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 182\r
3740          .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 183\r
3741          .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 184\r
3742          .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 185\r
3743          .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 186\r
3744          .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 187\r
3745          .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 188\r
3746          .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 189\r
3747          .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 190\r
3748          .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 191\r
3749          .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 192\r
3750          .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 193\r
3751          .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 194\r
3752          .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 195\r
3753          .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 196\r
3754          .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 197\r
3755          .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 198\r
3756          .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 199\r
3757          .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 200\r
3758          .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 201\r
3759          .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 202\r
3760          .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 203\r
3761          .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 204\r
3762          .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 205\r
3763          .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 206\r
3764          .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 207\r
3765          .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 208\r
3766          .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 209\r
3767          .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 210\r
3768          .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 211\r
3769          .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 212\r
3770          .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 213\r
3771          .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 214\r
3772          .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 215\r
3773          .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 216\r
3774          .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 217\r
3775          .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 218\r
3776          .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 219\r
3777          .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 220\r
3778          .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 221\r
3779          .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 222\r
3780          .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 223\r
3781          .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 224\r
3782          .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 225\r
3783          .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 226\r
3784          .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 227\r
3785          .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 228\r
3786          .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 229\r
3787          .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 230\r
3788          .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 231\r
3789          .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 232\r
3790          .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 233\r
3791          .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 234\r
3792          .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 235\r
3793          .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 236\r
3794          .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 237\r
3795          .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 238\r
3796          .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 239\r
3797          .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 240\r
3798          .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 241\r
3799          .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 242\r
3800          .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 243\r
3801          .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 244\r
3802          .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 245\r
3803          .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 246\r
3804          .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 247\r
3805          .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 248\r
3806          .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 249\r
3807          .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 250\r
3808          .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 251\r
3809          .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 252\r
3810          .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 253\r
3811          .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 254\r
3812          .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 255\r
3813 \r
3814 .align 4\r
3815 \r
3816 AF_ARM:  .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 0\r
3817          .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 1\r
3818          .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 2\r
3819          .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 3\r
3820          .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 4\r
3821          .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 5\r
3822          .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 6\r
3823          .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 7\r
3824          .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 8\r
3825          .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 9\r
3826          .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 10\r
3827          .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 11\r
3828          .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 12\r
3829          .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 13\r
3830          .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 14\r
3831          .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 15\r
3832          .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 16\r
3833          .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 17\r
3834          .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 18\r
3835          .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 19\r
3836          .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 20\r
3837          .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 21\r
3838          .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 22\r
3839          .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 23\r
3840          .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 24\r
3841          .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 25\r
3842          .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 26\r
3843          .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 27\r
3844          .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 28\r
3845          .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 29\r
3846          .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 30\r
3847          .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 31\r
3848          .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 32\r
3849          .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 33\r
3850          .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 34\r
3851          .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 35\r
3852          .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 36\r
3853          .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 37\r
3854          .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 38\r
3855          .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 39\r
3856          .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 40\r
3857          .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 41\r
3858          .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 42\r
3859          .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 43\r
3860          .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 44\r
3861          .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 45\r
3862          .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 46\r
3863          .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 47\r
3864          .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 48\r
3865          .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 49\r
3866          .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 50\r
3867          .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 51\r
3868          .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 52\r
3869          .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 53\r
3870          .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 54\r
3871          .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 55\r
3872          .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 56\r
3873          .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 57\r
3874          .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 58\r
3875          .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 59\r
3876          .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 60\r
3877          .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 61\r
3878          .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 62\r
3879          .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 63\r
3880          .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 64\r
3881          .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 65\r
3882          .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 66\r
3883          .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 67\r
3884          .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 68\r
3885          .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 69\r
3886          .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 70\r
3887          .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 71\r
3888          .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 72\r
3889          .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 73\r
3890          .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 74\r
3891          .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 75\r
3892          .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 76\r
3893          .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 77\r
3894          .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 78\r
3895          .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 79\r
3896          .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 80\r
3897          .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 81\r
3898          .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 82\r
3899          .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 83\r
3900          .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 84\r
3901          .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 85\r
3902          .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 86\r
3903          .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 87\r
3904          .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 88\r
3905          .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 89\r
3906          .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 90\r
3907          .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 91\r
3908          .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 92\r
3909          .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 93\r
3910          .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 94\r
3911          .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 95\r
3912          .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 96\r
3913          .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 97\r
3914          .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 98\r
3915          .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 99\r
3916          .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 100\r
3917          .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 101\r
3918          .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 102\r
3919          .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 103\r
3920          .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 104\r
3921          .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 105\r
3922          .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 106\r
3923          .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 107\r
3924          .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 108\r
3925          .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 109\r
3926          .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 110\r
3927          .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 111\r
3928          .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 112\r
3929          .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 113\r
3930          .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 114\r
3931          .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 115\r
3932          .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 116\r
3933          .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 117\r
3934          .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 118\r
3935          .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 119\r
3936          .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 120\r
3937          .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 121\r
3938          .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 122\r
3939          .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 123\r
3940          .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 124\r
3941          .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 125\r
3942          .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 126\r
3943          .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 127\r
3944          .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 128\r
3945          .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 129\r
3946          .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 130\r
3947          .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 131\r
3948          .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 132\r
3949          .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 133\r
3950          .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 134\r
3951          .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 135\r
3952          .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 136\r
3953          .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 137\r
3954          .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 138\r
3955          .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 139\r
3956          .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 140\r
3957          .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 141\r
3958          .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 142\r
3959          .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 143\r
3960          .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 144\r
3961          .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 145\r
3962          .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 146\r
3963          .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 147\r
3964          .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 148\r
3965          .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 149\r
3966          .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 150\r
3967          .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 151\r
3968          .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 152\r
3969          .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 153\r
3970          .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 154\r
3971          .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 155\r
3972          .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 156\r
3973          .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 157\r
3974          .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 158\r
3975          .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 159\r
3976          .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 160\r
3977          .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 161\r
3978          .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 162\r
3979          .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 163\r
3980          .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 164\r
3981          .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 165\r
3982          .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 166\r
3983          .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 167\r
3984          .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 168\r
3985          .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 169\r
3986          .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 170\r
3987          .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 171\r
3988          .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 172\r
3989          .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 173\r
3990          .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 174\r
3991          .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 175\r
3992          .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 176\r
3993          .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 177\r
3994          .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 178\r
3995          .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 179\r
3996          .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 180\r
3997          .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 181\r
3998          .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 182\r
3999          .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 183\r
4000          .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 184\r
4001          .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 185\r
4002          .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 186\r
4003          .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 187\r
4004          .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 188\r
4005          .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 189\r
4006          .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 190\r
4007          .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 191\r
4008          .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 192\r
4009          .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 193\r
4010          .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 194\r
4011          .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 195\r
4012          .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 196\r
4013          .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 197\r
4014          .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 198\r
4015          .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 199\r
4016          .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 200\r
4017          .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 201\r
4018          .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 202\r
4019          .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 203\r
4020          .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 204\r
4021          .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 205\r
4022          .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 206\r
4023          .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 207\r
4024          .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 208\r
4025          .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 209\r
4026          .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 210\r
4027          .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 211\r
4028          .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 212\r
4029          .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 213\r
4030          .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 214\r
4031          .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 215\r
4032          .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 216\r
4033          .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 217\r
4034          .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 218\r
4035          .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 219\r
4036          .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 220\r
4037          .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 221\r
4038          .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 222\r
4039          .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 223\r
4040          .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 224\r
4041          .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 225\r
4042          .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 226\r
4043          .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 227\r
4044          .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 228\r
4045          .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 229\r
4046          .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 230\r
4047          .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 231\r
4048          .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 232\r
4049          .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 233\r
4050          .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 234\r
4051          .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 235\r
4052          .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 236\r
4053          .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 237\r
4054          .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 238\r
4055          .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 239\r
4056          .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 240\r
4057          .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 241\r
4058          .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 242\r
4059          .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 243\r
4060          .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 244\r
4061          .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 245\r
4062          .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 246\r
4063          .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 247\r
4064          .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 248\r
4065          .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 249\r
4066          .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 250\r
4067          .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 251\r
4068          .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 252\r
4069          .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 253\r
4070          .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 254\r
4071          .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 255\r
4072 \r
4073 .align 4\r
4074 \r
4075 PZSTable_data: .byte (1<<ZFlag)|(1<<VFlag),0,0,(1<<VFlag),0,(1<<VFlag),(1<<VFlag),0\r
4076         .byte  0,(1<<VFlag),(1<<VFlag),0,(1<<VFlag),0,0,(1<<VFlag)\r
4077         .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
4078         .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
4079         .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
4080         .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
4081         .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
4082         .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
4083         .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
4084         .byte  (1<<SFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)\r
4085         .byte  (1<<SFlag)|(1<<VFlag),(1<<SFlag),(1<<SFlag),(1<<SFlag)|(1<<VFlag)\r
4086         .byte  (1<<SFlag)|(1<<VFlag),(1<<SFlag),(1<<SFlag),(1<<SFlag)|(1<<VFlag)\r
4087         .byte  (1<<SFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)\r
4088         .byte  (1<<SFlag)|(1<<VFlag),(1<<SFlag),(1<<SFlag),(1<<SFlag)|(1<<VFlag)\r
4089         .byte  (1<<SFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)\r
4090         .byte  (1<<SFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)\r
4091         .byte  (1<<SFlag)|(1<<VFlag),(1<<SFlag),(1<<SFlag),(1<<SFlag)|(1<<VFlag)\r
4092         .byte  (1<<SFlag)|(1<<VFlag),(1<<SFlag),(1<<SFlag),(1<<SFlag)|(1<<VFlag)\r
4093         .byte  (1<<SFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)\r
4094         .byte  (1<<SFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)\r
4095         .byte  (1<<SFlag)|(1<<VFlag),(1<<SFlag),(1<<SFlag),(1<<SFlag)|(1<<VFlag)\r
4096         .byte  (1<<SFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)\r
4097         .byte  (1<<SFlag)|(1<<VFlag),(1<<SFlag),(1<<SFlag),(1<<SFlag)|(1<<VFlag)\r
4098         .byte  (1<<SFlag)|(1<<VFlag),(1<<SFlag),(1<<SFlag),(1<<SFlag)|(1<<VFlag)\r
4099         .byte  (1<<SFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)\r
4100         .byte  (1<<SFlag)|(1<<VFlag),(1<<SFlag),(1<<SFlag),(1<<SFlag)|(1<<VFlag)\r
4101         .byte  (1<<SFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)\r
4102         .byte  (1<<SFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)\r
4103         .byte  (1<<SFlag)|(1<<VFlag),(1<<SFlag),(1<<SFlag),(1<<SFlag)|(1<<VFlag)\r
4104         .byte  (1<<SFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)\r
4105         .byte  (1<<SFlag)|(1<<VFlag),(1<<SFlag),(1<<SFlag),(1<<SFlag)|(1<<VFlag)\r
4106         .byte  (1<<SFlag)|(1<<VFlag),(1<<SFlag),(1<<SFlag),(1<<SFlag)|(1<<VFlag)\r
4107         .byte  (1<<SFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)\r
4108         .byte  (1<<SFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)\r
4109         .byte  (1<<SFlag)|(1<<VFlag),(1<<SFlag),(1<<SFlag),(1<<SFlag)|(1<<VFlag)\r
4110         .byte  (1<<SFlag)|(1<<VFlag),(1<<SFlag),(1<<SFlag),(1<<SFlag)|(1<<VFlag)\r
4111         .byte  (1<<SFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)\r
4112         .byte  (1<<SFlag)|(1<<VFlag),(1<<SFlag),(1<<SFlag),(1<<SFlag)|(1<<VFlag)\r
4113         .byte  (1<<SFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)\r
4114         .byte  (1<<SFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)\r
4115         .byte  (1<<SFlag)|(1<<VFlag),(1<<SFlag),(1<<SFlag),(1<<SFlag)|(1<<VFlag)       \r
4116 \r
4117 .align 4\r
4118 \r
4119 MAIN_opcodes:   \r
4120         .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
4121         .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
4122         .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
4123         .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
4124         .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
4125         .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
4126         .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
4127         .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
4128         .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
4129         .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
4130         .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
4131         .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
4132         .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
4133         .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
4134         .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
4135         .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
4136         .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
4137         .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
4138         .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
4139         .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
4140         .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
4141         .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
4142         .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
4143         .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
4144         .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
4145         .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
4146         .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
4147         .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
4148         .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
4149         .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
4150         .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
4151         .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
4152 \r
4153 .align 4\r
4154 \r
4155 EI_DUMMY_opcodes:\r
4156         .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@0\r
4157         .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@0\r
4158         .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@1\r
4159         .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@1\r
4160         .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@2\r
4161         .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@2\r
4162         .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@3\r
4163         .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@3\r
4164         .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@4\r
4165         .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@4\r
4166         .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@5\r
4167         .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@5\r
4168         .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@6\r
4169         .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@6\r
4170         .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@7\r
4171         .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@7\r
4172         .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@8\r
4173         .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@8\r
4174         .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@9\r
4175         .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@9\r
4176         .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@A\r
4177         .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@A\r
4178         .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@B\r
4179         .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@B\r
4180         .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@C\r
4181         .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@C\r
4182         .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@D\r
4183         .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@D\r
4184         .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@E\r
4185         .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@E\r
4186         .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@F\r
4187         .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@F\r
4188 \r
4189 .text\r
4190 .align 4\r
4191 \r
4192 ;@NOP\r
4193 opcode_0_0:\r
4194 ;@LD B,B\r
4195 opcode_4_0:\r
4196 ;@LD C,C\r
4197 opcode_4_9:\r
4198 ;@LD D,D\r
4199 opcode_5_2:\r
4200 ;@LD E,E\r
4201 opcode_5_B:\r
4202 ;@LD H,H\r
4203 opcode_6_4:\r
4204 ;@LD L,L\r
4205 opcode_6_D:\r
4206 ;@LD A,A\r
4207 opcode_7_F:\r
4208         fetch 4\r
4209 ;@LD BC,NN\r
4210 opcode_0_1:\r
4211         ldrb r0,[z80pc],#1\r
4212         ldrb r1,[z80pc],#1\r
4213         orr r0,r0,r1, lsl #8\r
4214         mov z80bc,r0, lsl #16\r
4215         fetch 10\r
4216 ;@LD (BC),A\r
4217 opcode_0_2:\r
4218         mov r0,z80a, lsr #24\r
4219         mov r1,z80bc, lsr #16\r
4220         writemem8\r
4221         fetch 7\r
4222 ;@INC BC\r
4223 opcode_0_3:\r
4224         add z80bc,z80bc,#1<<16\r
4225         fetch 6\r
4226 ;@INC B\r
4227 opcode_0_4:\r
4228         opINC8H z80bc\r
4229         fetch 4\r
4230 ;@DEC B\r
4231 opcode_0_5:\r
4232         opDEC8H z80bc\r
4233         fetch 4\r
4234 ;@LD B,N\r
4235 opcode_0_6:\r
4236         ldrb r1,[z80pc],#1\r
4237         and z80bc,z80bc,#0xFF<<16\r
4238         orr z80bc,z80bc,r1, lsl #24\r
4239         fetch 7\r
4240 ;@RLCA\r
4241 opcode_0_7:\r
4242         bic z80f,z80f,#(1<<NFlag)|(1<<HFlag)|(1<<CFlag)\r
4243         movs z80a,z80a, lsl #1\r
4244         orrcs z80a,z80a,#1<<24\r
4245         orrcs z80f,z80f,#1<<CFlag\r
4246         fetch 4\r
4247 ;@EX AF,AF'\r
4248 opcode_0_8:\r
4249         add r1,cpucontext,#z80a2\r
4250         swp z80a,z80a,[r1]\r
4251         add r1,cpucontext,#z80f2\r
4252         swp z80f,z80f,[r1]\r
4253         fetch 4\r
4254 ;@ADD HL,BC\r
4255 opcode_0_9:\r
4256         opADD16 z80hl z80bc\r
4257         fetch 11\r
4258 ;@LD A,(BC)\r
4259 opcode_0_A:\r
4260         mov r0,z80bc, lsr #16\r
4261         readmem8\r
4262         mov z80a,r0, lsl #24\r
4263         fetch 7\r
4264 ;@DEC BC\r
4265 opcode_0_B:\r
4266         sub z80bc,z80bc,#1<<16\r
4267         fetch 6\r
4268 ;@INC C\r
4269 opcode_0_C:\r
4270         opINC8L z80bc\r
4271         fetch 4\r
4272 ;@DEC C\r
4273 opcode_0_D:\r
4274         opDEC8L z80bc\r
4275         fetch 4\r
4276 ;@LD C,N\r
4277 opcode_0_E:\r
4278         ldrb r1,[z80pc],#1\r
4279         and z80bc,z80bc,#0xFF<<24\r
4280         orr z80bc,z80bc,r1, lsl #16\r
4281         fetch 7\r
4282 ;@RRCA\r
4283 opcode_0_F:\r
4284         bic z80f,z80f,#(1<<NFlag)|(1<<HFlag)|(1<<CFlag)\r
4285         movs z80a,z80a, lsr #25\r
4286         orrcs z80a,z80a,#1<<7\r
4287         orrcs z80f,z80f,#1<<CFlag\r
4288         mov z80a,z80a, lsl #24\r
4289         fetch 4\r
4290 ;@DJNZ $+2\r
4291 opcode_1_0:\r
4292         sub z80bc,z80bc,#1<<24\r
4293         tst z80bc,#0xFF<<24\r
4294         ldrsb r1,[z80pc],#1\r
4295         addne z80pc,z80pc,r1\r
4296         subne z80_icount,z80_icount,#5\r
4297         fetch 8\r
4298 \r
4299 ;@LD DE,NN\r
4300 opcode_1_1:\r
4301         ldrb r0,[z80pc],#1\r
4302         ldrb r1,[z80pc],#1\r
4303         orr r0,r0,r1, lsl #8\r
4304         mov z80de,r0, lsl #16\r
4305         fetch 10\r
4306 ;@LD (DE),A\r
4307 opcode_1_2:\r
4308         mov r0,z80a, lsr #24\r
4309         writemem8DE\r
4310         fetch 7\r
4311 ;@INC DE\r
4312 opcode_1_3:\r
4313         add z80de,z80de,#1<<16\r
4314         fetch 6\r
4315 ;@INC D\r
4316 opcode_1_4:\r
4317         opINC8H z80de\r
4318         fetch 4\r
4319 ;@DEC D\r
4320 opcode_1_5:\r
4321         opDEC8H z80de\r
4322         fetch 4\r
4323 ;@LD D,N\r
4324 opcode_1_6:\r
4325         ldrb r1,[z80pc],#1\r
4326         and z80de,z80de,#0xFF<<16\r
4327         orr z80de,z80de,r1, lsl #24\r
4328         fetch 7\r
4329 ;@RLA\r
4330 opcode_1_7:\r
4331         tst z80f,#1<<CFlag\r
4332         orrne z80a,z80a,#1<<23\r
4333         bic z80f,z80f,#(1<<NFlag)|(1<<HFlag)|(1<<CFlag)\r
4334         movs z80a,z80a, lsl #1\r
4335         orrcs z80f,z80f,#1<<CFlag\r
4336         fetch 4\r
4337 ;@JR $+2\r
4338 opcode_1_8:\r
4339         ldrsb r1,[z80pc],#1\r
4340         add z80pc,z80pc,r1\r
4341         fetch 12\r
4342 ;@ADD HL,DE\r
4343 opcode_1_9:\r
4344         opADD16 z80hl z80de\r
4345         fetch 11\r
4346 ;@LD A,(DE)\r
4347 opcode_1_A:\r
4348         mov r0,z80de, lsr #16\r
4349         readmem8\r
4350         mov z80a,r0, lsl #24\r
4351         fetch 7\r
4352 ;@DEC DE\r
4353 opcode_1_B:\r
4354         sub z80de,z80de,#1<<16\r
4355         fetch 6\r
4356 ;@INC E\r
4357 opcode_1_C:\r
4358         opINC8L z80de\r
4359         fetch 4\r
4360 ;@DEC E\r
4361 opcode_1_D:\r
4362         opDEC8L z80de\r
4363         fetch 4\r
4364 ;@LD E,N\r
4365 opcode_1_E:\r
4366         ldrb r0,[z80pc],#1\r
4367         and z80de,z80de,#0xFF<<24\r
4368         orr z80de,z80de,r0, lsl #16\r
4369         fetch 7\r
4370 ;@RRA\r
4371 opcode_1_F:\r
4372         orr z80a,z80a,z80f,lsr#1                ;@get C\r
4373         bic z80f,z80f,#(1<<NFlag)|(1<<HFlag)|(1<<CFlag)\r
4374         movs z80a,z80a,ror#25\r
4375         orrcs z80f,z80f,#1<<CFlag\r
4376         mov z80a,z80a,lsl#24\r
4377         fetch 4\r
4378 ;@JR NZ,$+2\r
4379 opcode_2_0:\r
4380         tst z80f,#1<<ZFlag\r
4381         beq opcode_1_8\r
4382         add z80pc,z80pc,#1\r
4383         fetch 7\r
4384 ;@LD HL,NN\r
4385 opcode_2_1:\r
4386         ldrb r0,[z80pc],#1\r
4387         ldrb r1,[z80pc],#1\r
4388         orr r0,r0,r1, lsl #8\r
4389         mov z80hl,r0, lsl #16\r
4390         fetch 10\r
4391 ;@LD (NN),HL\r
4392 opcode_ED_63:\r
4393         eatcycles 4\r
4394 ;@LD (NN),HL\r
4395 opcode_2_2:\r
4396         ldrb r0,[z80pc],#1\r
4397         ldrb r1,[z80pc],#1\r
4398         orr r1,r0,r1, lsl #8\r
4399         mov r0,z80hl, lsr #16\r
4400         writemem16\r
4401         fetch 16\r
4402 ;@INC HL\r
4403 opcode_2_3:\r
4404         add z80hl,z80hl,#1<<16\r
4405         fetch 6\r
4406 ;@INC H\r
4407 opcode_2_4:\r
4408         opINC8H z80hl\r
4409         fetch 4\r
4410 ;@DEC H\r
4411 opcode_2_5:\r
4412         opDEC8H z80hl\r
4413         fetch 4\r
4414 ;@LD H,N\r
4415 opcode_2_6:\r
4416         ldrb r1,[z80pc],#1\r
4417         and z80hl,z80hl,#0xFF<<16\r
4418         orr z80hl,z80hl,r1, lsl #24\r
4419         fetch 7\r
4420 DAATABLE_LOCAL: .word DAATable\r
4421 ;@DAA\r
4422 opcode_2_7:\r
4423         mov r1,z80a, lsr #24\r
4424         tst z80f,#1<<CFlag\r
4425         orrne r1,r1,#256\r
4426         tst z80f,#1<<HFlag\r
4427         orrne r1,r1,#512\r
4428         tst z80f,#1<<NFlag\r
4429         orrne r1,r1,#1024\r
4430         ldr r2,DAATABLE_LOCAL\r
4431         add r2,r2,r1, lsl #1\r
4432         ldrh r1,[r2]\r
4433         and z80f,r1,#0xFF\r
4434         and r2,r1,#0xFF<<8\r
4435         mov z80a,r2, lsl #16\r
4436         fetch 4\r
4437 ;@JR Z,$+2\r
4438 opcode_2_8:\r
4439         tst z80f,#1<<ZFlag\r
4440         bne opcode_1_8\r
4441         add z80pc,z80pc,#1\r
4442         fetch 7\r
4443 ;@ADD HL,HL\r
4444 opcode_2_9:\r
4445         opADD16_2 z80hl\r
4446         fetch 11\r
4447 ;@LD HL,(NN)\r
4448 opcode_ED_6B:\r
4449         eatcycles 4\r
4450 ;@LD HL,(NN)\r
4451 opcode_2_A:\r
4452         ldrb r0,[z80pc],#1\r
4453         ldrb r1,[z80pc],#1\r
4454         orr r0,r0,r1, lsl #8\r
4455         readmem16\r
4456         mov z80hl,r0, lsl #16\r
4457         fetch 16\r
4458 ;@DEC HL\r
4459 opcode_2_B:\r
4460         sub z80hl,z80hl,#1<<16\r
4461         fetch 6\r
4462 ;@INC L\r
4463 opcode_2_C:\r
4464         opINC8L z80hl\r
4465         fetch 4\r
4466 ;@DEC L\r
4467 opcode_2_D:\r
4468         opDEC8L z80hl\r
4469         fetch 4\r
4470 ;@LD L,N\r
4471 opcode_2_E:\r
4472         ldrb r0,[z80pc],#1\r
4473         and z80hl,z80hl,#0xFF<<24\r
4474         orr z80hl,z80hl,r0, lsl #16\r
4475         fetch 7\r
4476 ;@CPL\r
4477 opcode_2_F:\r
4478         eor z80a,z80a,#0xFF<<24\r
4479         orr z80f,z80f,#(1<<NFlag)|(1<<HFlag)\r
4480         fetch 4\r
4481 ;@JR NC,$+2\r
4482 opcode_3_0:\r
4483         tst z80f,#1<<CFlag\r
4484         beq opcode_1_8\r
4485         add z80pc,z80pc,#1\r
4486         fetch 7\r
4487 ;@LD SP,NN\r
4488 opcode_3_1:\r
4489         ldrb r0,[z80pc],#1\r
4490         ldrb r1,[z80pc],#1\r
4491 \r
4492 .if FAST_Z80SP\r
4493         orr r0,r0,r1, lsl #8\r
4494         rebasesp\r
4495         mov z80sp,r0\r
4496 .else\r
4497         orr z80sp,r0,r1, lsl #8\r
4498 .endif\r
4499         fetch 10\r
4500 ;@LD (NN),A\r
4501 opcode_3_2:\r
4502         ldrb r0,[z80pc],#1\r
4503         ldrb r1,[z80pc],#1\r
4504         orr r1,r0,r1, lsl #8\r
4505         mov r0,z80a, lsr #24\r
4506         writemem8\r
4507         fetch 13\r
4508 ;@INC SP\r
4509 opcode_3_3:\r
4510         add z80sp,z80sp,#1\r
4511         fetch 6\r
4512 ;@INC (HL)\r
4513 opcode_3_4:\r
4514         readmem8HL\r
4515         opINC8b\r
4516         writemem8HL\r
4517         fetch 11\r
4518 ;@DEC (HL)\r
4519 opcode_3_5:\r
4520         readmem8HL\r
4521         opDEC8b\r
4522         writemem8HL\r
4523         fetch 11\r
4524 ;@LD (HL),N\r
4525 opcode_3_6:\r
4526         ldrb r0,[z80pc],#1\r
4527         writemem8HL\r
4528         fetch 10\r
4529 ;@SCF\r
4530 opcode_3_7:\r
4531         bic z80f,z80f,#(1<<NFlag)|(1<<HFlag)\r
4532         orr z80f,z80f,#1<<CFlag\r
4533         fetch 4\r
4534 ;@JR C,$+2\r
4535 opcode_3_8:\r
4536         tst z80f,#1<<CFlag\r
4537         bne opcode_1_8\r
4538         add z80pc,z80pc,#1\r
4539         fetch 7\r
4540 ;@ADD HL,SP\r
4541 opcode_3_9:\r
4542 .if FAST_Z80SP\r
4543         ldr r0,[cpucontext,#z80sp_base]\r
4544         sub r0,z80sp,r0\r
4545         opADD16s z80hl r0 16\r
4546 .else\r
4547         opADD16s z80hl z80sp 16\r
4548 .endif\r
4549         fetch 11\r
4550 ;@LD A,(NN)\r
4551 opcode_3_A:\r
4552         ldrb r0,[z80pc],#1\r
4553         ldrb r1,[z80pc],#1\r
4554         orr r0,r0,r1, lsl #8\r
4555         readmem8\r
4556         mov z80a,r0, lsl #24\r
4557         fetch 13\r
4558 ;@DEC SP\r
4559 opcode_3_B:\r
4560         sub z80sp,z80sp,#1\r
4561         fetch 6\r
4562 ;@INC A\r
4563 opcode_3_C:\r
4564         opINC8 z80a\r
4565         fetch 4\r
4566 ;@DEC A\r
4567 opcode_3_D:\r
4568         opDEC8 z80a\r
4569         fetch 4\r
4570 ;@LD A,N\r
4571 opcode_3_E:\r
4572         ldrb r0,[z80pc],#1\r
4573         mov z80a,r0, lsl #24\r
4574         fetch 7\r
4575 ;@CCF\r
4576 opcode_3_F:\r
4577         bic z80f,z80f,#(1<<NFlag)|(1<<HFlag)\r
4578         tst z80f,#1<<CFlag\r
4579         orrne z80f,z80f,#1<<HFlag\r
4580         eor z80f,z80f,#1<<CFlag\r
4581         fetch 4\r
4582 \r
4583 ;@LD B,C\r
4584 opcode_4_1:\r
4585         and z80bc,z80bc,#0xFF<<16\r
4586         orr z80bc,z80bc,z80bc, lsl #8\r
4587         fetch 4\r
4588 ;@LD B,D\r
4589 opcode_4_2:\r
4590         and z80bc,z80bc,#0xFF<<16\r
4591         and r1,z80de,#0xFF<<24\r
4592         orr z80bc,z80bc,r1\r
4593         fetch 4\r
4594 ;@LD B,E\r
4595 opcode_4_3:\r
4596         and z80bc,z80bc,#0xFF<<16\r
4597         and r1,z80de,#0xFF<<16\r
4598         orr z80bc,z80bc,r1, lsl #8\r
4599         fetch 4\r
4600 ;@LD B,H\r
4601 opcode_4_4:\r
4602         and z80bc,z80bc,#0xFF<<16\r
4603         and r1,z80hl,#0xFF<<24\r
4604         orr z80bc,z80bc,r1\r
4605         fetch 4\r
4606 ;@LD B,L\r
4607 opcode_4_5:\r
4608         and z80bc,z80bc,#0xFF<<16\r
4609         and r1,z80hl,#0xFF<<16\r
4610         orr z80bc,z80bc,r1, lsl #8\r
4611         fetch 4\r
4612 ;@LD B,(HL)\r
4613 opcode_4_6:\r
4614         readmem8HL\r
4615         and z80bc,z80bc,#0xFF<<16\r
4616         orr z80bc,z80bc,r0, lsl #24\r
4617         fetch 7\r
4618 ;@LD B,A\r
4619 opcode_4_7:\r
4620         and z80bc,z80bc,#0xFF<<16\r
4621         orr z80bc,z80bc,z80a\r
4622         fetch 4\r
4623 ;@LD C,B\r
4624 opcode_4_8:\r
4625         and z80bc,z80bc,#0xFF<<24\r
4626         orr z80bc,z80bc,z80bc, lsr #8\r
4627         fetch 4\r
4628 ;@LD C,D\r
4629 opcode_4_A:\r
4630         and z80bc,z80bc,#0xFF<<24\r
4631         and r1,z80de,#0xFF<<24\r
4632         orr z80bc,z80bc,r1, lsr #8\r
4633         fetch 4\r
4634 ;@LD C,E\r
4635 opcode_4_B:\r
4636         and z80bc,z80bc,#0xFF<<24\r
4637         and r1,z80de,#0xFF<<16\r
4638         orr z80bc,z80bc,r1 \r
4639         fetch 4\r
4640 ;@LD C,H\r
4641 opcode_4_C:\r
4642         and z80bc,z80bc,#0xFF<<24\r
4643         and r1,z80hl,#0xFF<<24\r
4644         orr z80bc,z80bc,r1, lsr #8\r
4645         fetch 4\r
4646 ;@LD C,L\r
4647 opcode_4_D:\r
4648         and z80bc,z80bc,#0xFF<<24\r
4649         and r1,z80hl,#0xFF<<16\r
4650         orr z80bc,z80bc,r1 \r
4651         fetch 4\r
4652 ;@LD C,(HL)\r
4653 opcode_4_E:\r
4654         readmem8HL\r
4655         and z80bc,z80bc,#0xFF<<24\r
4656         orr z80bc,z80bc,r0, lsl #16\r
4657         fetch 7\r
4658 ;@LD C,A\r
4659 opcode_4_F:\r
4660         and z80bc,z80bc,#0xFF<<24\r
4661         orr z80bc,z80bc,z80a, lsr #8\r
4662         fetch 4\r
4663 ;@LD D,B\r
4664 opcode_5_0:\r
4665         and z80de,z80de,#0xFF<<16\r
4666         and r1,z80bc,#0xFF<<24\r
4667         orr z80de,z80de,r1\r
4668         fetch 4\r
4669 ;@LD D,C\r
4670 opcode_5_1:\r
4671         and z80de,z80de,#0xFF<<16\r
4672         orr z80de,z80de,z80bc, lsl #8\r
4673         fetch 4\r
4674 ;@LD D,E\r
4675 opcode_5_3:\r
4676         and z80de,z80de,#0xFF<<16\r
4677         orr z80de,z80de,z80de, lsl #8\r
4678         fetch 4\r
4679 ;@LD D,H\r
4680 opcode_5_4:\r
4681         and z80de,z80de,#0xFF<<16\r
4682         and r1,z80hl,#0xFF<<24\r
4683         orr z80de,z80de,r1\r
4684         fetch 4\r
4685 ;@LD D,L\r
4686 opcode_5_5:\r
4687         and z80de,z80de,#0xFF<<16\r
4688         orr z80de,z80de,z80hl, lsl #8\r
4689         fetch 4\r
4690 ;@LD D,(HL)\r
4691 opcode_5_6:\r
4692         readmem8HL\r
4693         and z80de,z80de,#0xFF<<16\r
4694         orr z80de,z80de,r0, lsl #24\r
4695         fetch 7\r
4696 ;@LD D,A\r
4697 opcode_5_7:\r
4698         and z80de,z80de,#0xFF<<16\r
4699         orr z80de,z80de,z80a\r
4700         fetch 4\r
4701 ;@LD E,B\r
4702 opcode_5_8:\r
4703         and z80de,z80de,#0xFF<<24\r
4704         and r1,z80bc,#0xFF<<24\r
4705         orr z80de,z80de,r1, lsr #8\r
4706         fetch 4\r
4707 ;@LD E,C\r
4708 opcode_5_9:\r
4709         and z80de,z80de,#0xFF<<24\r
4710         and r1,z80bc,#0xFF<<16\r
4711         orr z80de,z80de,r1 \r
4712         fetch 4\r
4713 ;@LD E,D\r
4714 opcode_5_A:\r
4715         and z80de,z80de,#0xFF<<24\r
4716         orr z80de,z80de,z80de, lsr #8\r
4717         fetch 4\r
4718 ;@LD E,H\r
4719 opcode_5_C:\r
4720         and z80de,z80de,#0xFF<<24\r
4721         and r1,z80hl,#0xFF<<24\r
4722         orr z80de,z80de,r1, lsr #8\r
4723         fetch 4\r
4724 ;@LD E,L\r
4725 opcode_5_D:\r
4726         and z80de,z80de,#0xFF<<24\r
4727         and r1,z80hl,#0xFF<<16\r
4728         orr z80de,z80de,r1 \r
4729         fetch 4\r
4730 ;@LD E,(HL)\r
4731 opcode_5_E:\r
4732         readmem8HL\r
4733         and z80de,z80de,#0xFF<<24\r
4734         orr z80de,z80de,r0, lsl #16\r
4735         fetch 7\r
4736 ;@LD E,A\r
4737 opcode_5_F:\r
4738         and z80de,z80de,#0xFF<<24\r
4739         orr z80de,z80de,z80a, lsr #8\r
4740         fetch 4\r
4741 \r
4742 ;@LD H,B\r
4743 opcode_6_0:\r
4744         and z80hl,z80hl,#0xFF<<16\r
4745         and r1,z80bc,#0xFF<<24\r
4746         orr z80hl,z80hl,r1\r
4747         fetch 4\r
4748 ;@LD H,C\r
4749 opcode_6_1:\r
4750         and z80hl,z80hl,#0xFF<<16\r
4751         orr z80hl,z80hl,z80bc, lsl #8\r
4752         fetch 4\r
4753 ;@LD H,D\r
4754 opcode_6_2:\r
4755         and z80hl,z80hl,#0xFF<<16\r
4756         and r1,z80de,#0xFF<<24\r
4757         orr z80hl,z80hl,r1\r
4758         fetch 4\r
4759 ;@LD H,E\r
4760 opcode_6_3:\r
4761         and z80hl,z80hl,#0xFF<<16\r
4762         orr z80hl,z80hl,z80de, lsl #8\r
4763         fetch 4\r
4764 ;@LD H,L\r
4765 opcode_6_5:\r
4766         and z80hl,z80hl,#0xFF<<16\r
4767         orr z80hl,z80hl,z80hl, lsl #8\r
4768         fetch 4\r
4769 ;@LD H,(HL)\r
4770 opcode_6_6:\r
4771         readmem8HL\r
4772         and z80hl,z80hl,#0xFF<<16\r
4773         orr z80hl,z80hl,r0, lsl #24\r
4774         fetch 7\r
4775 ;@LD H,A\r
4776 opcode_6_7:\r
4777         and z80hl,z80hl,#0xFF<<16\r
4778         orr z80hl,z80hl,z80a\r
4779         fetch 4\r
4780 \r
4781 ;@LD L,B\r
4782 opcode_6_8:\r
4783         and z80hl,z80hl,#0xFF<<24\r
4784         and r1,z80bc,#0xFF<<24\r
4785         orr z80hl,z80hl,r1, lsr #8\r
4786         fetch 4\r
4787 ;@LD L,C\r
4788 opcode_6_9:\r
4789         and z80hl,z80hl,#0xFF<<24\r
4790         and r1,z80bc,#0xFF<<16\r
4791         orr z80hl,z80hl,r1\r
4792         fetch 4\r
4793 ;@LD L,D\r
4794 opcode_6_A:\r
4795         and z80hl,z80hl,#0xFF<<24\r
4796         and r1,z80de,#0xFF<<24\r
4797         orr z80hl,z80hl,r1, lsr #8\r
4798         fetch 4\r
4799 ;@LD L,E\r
4800 opcode_6_B:\r
4801         and z80hl,z80hl,#0xFF<<24\r
4802         and r1,z80de,#0xFF<<16\r
4803         orr z80hl,z80hl,r1\r
4804         fetch 4\r
4805 ;@LD L,H\r
4806 opcode_6_C:\r
4807         and z80hl,z80hl,#0xFF<<24\r
4808         orr z80hl,z80hl,z80hl, lsr #8\r
4809         fetch 4\r
4810 ;@LD L,(HL)\r
4811 opcode_6_E:\r
4812         readmem8HL\r
4813         and z80hl,z80hl,#0xFF<<24\r
4814         orr z80hl,z80hl,r0, lsl #16\r
4815         fetch 7\r
4816 ;@LD L,A\r
4817 opcode_6_F:\r
4818         and z80hl,z80hl,#0xFF<<24\r
4819         orr z80hl,z80hl,z80a, lsr #8\r
4820         fetch 4\r
4821 \r
4822 ;@LD (HL),B\r
4823 opcode_7_0:\r
4824         mov r0,z80bc, lsr #24\r
4825         writemem8HL\r
4826         fetch 7\r
4827 ;@LD (HL),C\r
4828 opcode_7_1:\r
4829         mov r0,z80bc, lsr #16\r
4830         and r0,r0,#0xFF\r
4831         writemem8HL\r
4832         fetch 7\r
4833 ;@LD (HL),D\r
4834 opcode_7_2:\r
4835         mov r0,z80de, lsr #24\r
4836         writemem8HL\r
4837         fetch 7\r
4838 ;@LD (HL),E\r
4839 opcode_7_3:\r
4840         mov r0,z80de, lsr #16\r
4841         and r0,r0,#0xFF\r
4842         writemem8HL\r
4843         fetch 7\r
4844 ;@LD (HL),H\r
4845 opcode_7_4:\r
4846         mov r0,z80hl, lsr #24\r
4847         writemem8HL\r
4848         fetch 7\r
4849 ;@LD (HL),L\r
4850 opcode_7_5:\r
4851         mov r1,z80hl, lsr #16\r
4852         and r0,r1,#0xFF\r
4853         writemem8\r
4854         fetch 7\r
4855 ;@HALT\r
4856 opcode_7_6:\r
4857         sub z80pc,z80pc,#1\r
4858         ldrb r0,[cpucontext,#z80if]\r
4859         orr r0,r0,#Z80_HALT\r
4860         strb r0,[cpucontext,#z80if]\r
4861         mov z80_icount,#0\r
4862         b z80_execute_end\r
4863 ;@LD (HL),A\r
4864 opcode_7_7:\r
4865         mov r0,z80a, lsr #24\r
4866         writemem8HL\r
4867         fetch 7\r
4868 \r
4869 ;@LD A,B\r
4870 opcode_7_8:\r
4871         and z80a,z80bc,#0xFF<<24\r
4872         fetch 4\r
4873 ;@LD A,C\r
4874 opcode_7_9:\r
4875         mov z80a,z80bc, lsl #8\r
4876         fetch 4\r
4877 ;@LD A,D\r
4878 opcode_7_A:\r
4879         and z80a,z80de,#0xFF<<24\r
4880         fetch 4\r
4881 ;@LD A,E\r
4882 opcode_7_B:\r
4883         mov z80a,z80de, lsl #8\r
4884         fetch 4\r
4885 ;@LD A,H\r
4886 opcode_7_C:\r
4887         and z80a,z80hl,#0xFF<<24\r
4888         fetch 4\r
4889 ;@LD A,L\r
4890 opcode_7_D:\r
4891         mov z80a,z80hl, lsl #8\r
4892         fetch 4\r
4893 ;@LD A,(HL)\r
4894 opcode_7_E:\r
4895         readmem8HL\r
4896         mov z80a,r0, lsl #24\r
4897         fetch 7\r
4898 \r
4899 ;@ADD A,B\r
4900 opcode_8_0:\r
4901         opADDH z80bc\r
4902 ;@ADD A,C\r
4903 opcode_8_1:\r
4904         opADDL z80bc\r
4905 ;@ADD A,D\r
4906 opcode_8_2:\r
4907         opADDH z80de\r
4908 ;@ADD A,E\r
4909 opcode_8_3:\r
4910         opADDL z80de\r
4911 ;@ADD A,H\r
4912 opcode_8_4:\r
4913         opADDH z80hl\r
4914 ;@ADD A,L\r
4915 opcode_8_5:\r
4916         opADDL z80hl\r
4917 ;@ADD A,(HL)\r
4918 opcode_8_6:\r
4919         readmem8HL\r
4920         opADDb\r
4921         fetch 7\r
4922 ;@ADD A,A\r
4923 opcode_8_7:\r
4924         opADDA\r
4925 \r
4926 ;@ADC A,B\r
4927 opcode_8_8:\r
4928         opADCH z80bc\r
4929 ;@ADC A,C\r
4930 opcode_8_9:\r
4931         opADCL z80bc\r
4932 ;@ADC A,D\r
4933 opcode_8_A:\r
4934         opADCH z80de\r
4935 ;@ADC A,E\r
4936 opcode_8_B:\r
4937         opADCL z80de\r
4938 ;@ADC A,H\r
4939 opcode_8_C:\r
4940         opADCH z80hl\r
4941 ;@ADC A,L\r
4942 opcode_8_D:\r
4943         opADCL z80hl\r
4944 ;@ADC A,(HL)\r
4945 opcode_8_E:\r
4946         readmem8HL\r
4947         opADCb\r
4948         fetch 7\r
4949 ;@ADC A,A\r
4950 opcode_8_F:\r
4951         opADCA\r
4952 \r
4953 ;@SUB B\r
4954 opcode_9_0:\r
4955         opSUBH z80bc\r
4956 ;@SUB C\r
4957 opcode_9_1:\r
4958         opSUBL z80bc\r
4959 ;@SUB D\r
4960 opcode_9_2:\r
4961         opSUBH z80de\r
4962 ;@SUB E\r
4963 opcode_9_3:\r
4964         opSUBL z80de\r
4965 ;@SUB H\r
4966 opcode_9_4:\r
4967         opSUBH z80hl\r
4968 ;@SUB L\r
4969 opcode_9_5:\r
4970         opSUBL z80hl\r
4971 ;@SUB (HL)\r
4972 opcode_9_6:\r
4973         readmem8HL\r
4974         opSUBb\r
4975         fetch 7\r
4976 ;@SUB A\r
4977 opcode_9_7:\r
4978         opSUBA\r
4979 \r
4980 ;@SBC B \r
4981 opcode_9_8:\r
4982         opSBCH z80bc\r
4983 ;@SBC C\r
4984 opcode_9_9:\r
4985         opSBCL z80bc\r
4986 ;@SBC D\r
4987 opcode_9_A:\r
4988         opSBCH z80de\r
4989 ;@SBC E\r
4990 opcode_9_B:\r
4991         opSBCL z80de\r
4992 ;@SBC H\r
4993 opcode_9_C:\r
4994         opSBCH z80hl\r
4995 ;@SBC L\r
4996 opcode_9_D:\r
4997         opSBCL z80hl\r
4998 ;@SBC (HL)\r
4999 opcode_9_E:\r
5000         readmem8HL\r
5001         opSBCb\r
5002         fetch 7\r
5003 ;@SBC A\r
5004 opcode_9_F:\r
5005         opSBCA\r
5006 \r
5007 ;@AND B\r
5008 opcode_A_0:\r
5009         opANDH z80bc\r
5010 ;@AND C\r
5011 opcode_A_1:\r
5012         opANDL z80bc\r
5013 ;@AND D\r
5014 opcode_A_2:\r
5015         opANDH z80de\r
5016 ;@AND E\r
5017 opcode_A_3:\r
5018         opANDL z80de\r
5019 ;@AND H\r
5020 opcode_A_4:\r
5021         opANDH z80hl\r
5022 ;@AND L\r
5023 opcode_A_5:\r
5024         opANDL z80hl\r
5025 ;@AND (HL)\r
5026 opcode_A_6:\r
5027         readmem8HL\r
5028         opANDb\r
5029         fetch 7\r
5030 ;@AND A\r
5031 opcode_A_7:\r
5032         opANDA\r
5033 \r
5034 ;@XOR B\r
5035 opcode_A_8:\r
5036         opXORH z80bc\r
5037 ;@XOR C\r
5038 opcode_A_9:\r
5039         opXORL z80bc\r
5040 ;@XOR D\r
5041 opcode_A_A:\r
5042         opXORH z80de\r
5043 ;@XOR E\r
5044 opcode_A_B:\r
5045         opXORL z80de\r
5046 ;@XOR H\r
5047 opcode_A_C:\r
5048         opXORH z80hl\r
5049 ;@XOR L\r
5050 opcode_A_D:\r
5051         opXORL z80hl\r
5052 ;@XOR (HL)\r
5053 opcode_A_E:\r
5054         readmem8HL\r
5055         opXORb\r
5056         fetch 7\r
5057 ;@XOR A\r
5058 opcode_A_F:\r
5059         opXORA\r
5060 \r
5061 ;@OR B\r
5062 opcode_B_0:\r
5063         opORH z80bc\r
5064 ;@OR C\r
5065 opcode_B_1:\r
5066         opORL z80bc\r
5067 ;@OR D\r
5068 opcode_B_2:\r
5069         opORH z80de\r
5070 ;@OR E\r
5071 opcode_B_3:\r
5072         opORL z80de\r
5073 ;@OR H\r
5074 opcode_B_4:\r
5075         opORH z80hl\r
5076 ;@OR L\r
5077 opcode_B_5:\r
5078         opORL z80hl\r
5079 ;@OR (HL)\r
5080 opcode_B_6:\r
5081         readmem8HL\r
5082         opORb\r
5083         fetch 7\r
5084 ;@OR A\r
5085 opcode_B_7:\r
5086         opORA\r
5087 \r
5088 ;@CP B\r
5089 opcode_B_8:\r
5090         opCPH z80bc\r
5091 ;@CP C\r
5092 opcode_B_9:\r
5093         opCPL z80bc\r
5094 ;@CP D\r
5095 opcode_B_A:\r
5096         opCPH z80de\r
5097 ;@CP E\r
5098 opcode_B_B:\r
5099         opCPL z80de\r
5100 ;@CP H\r
5101 opcode_B_C:\r
5102         opCPH z80hl\r
5103 ;@CP L\r
5104 opcode_B_D:\r
5105         opCPL z80hl\r
5106 ;@CP (HL)\r
5107 opcode_B_E:\r
5108         readmem8HL\r
5109         opCPb\r
5110         fetch 7\r
5111 ;@CP A\r
5112 opcode_B_F:\r
5113         opCPA\r
5114 \r
5115 ;@RET NZ\r
5116 opcode_C_0:\r
5117         tst z80f,#1<<ZFlag\r
5118         beq opcode_C_9_cond             ;@unconditional RET\r
5119         fetch 5\r
5120 \r
5121 ;@POP BC\r
5122 opcode_C_1:\r
5123         opPOPreg z80bc\r
5124 \r
5125 ;@JP NZ,$+3\r
5126 opcode_C_2:\r
5127         tst z80f,#1<<ZFlag\r
5128         beq opcode_C_3          ;@unconditional JP\r
5129         add z80pc,z80pc,#2\r
5130         fetch 10\r
5131 ;@JP $+3\r
5132 opcode_C_3:\r
5133         ldrb r0,[z80pc],#1\r
5134         ldrb r1,[z80pc],#1\r
5135         orr r0,r0,r1, lsl #8\r
5136         rebasepc\r
5137         fetch 10\r
5138 ;@CALL NZ,NN\r
5139 opcode_C_4:\r
5140         tst z80f,#1<<ZFlag\r
5141         beq opcode_C_D          ;@unconditional CALL\r
5142         add z80pc,z80pc,#2\r
5143         fetch 10\r
5144 \r
5145 ;@PUSH BC\r
5146 opcode_C_5:\r
5147         opPUSHreg z80bc\r
5148         fetch 11\r
5149 ;@ADD A,N\r
5150 opcode_C_6:\r
5151         ldrb r0,[z80pc],#1\r
5152         opADDb\r
5153         fetch 7\r
5154 ;@RST 0\r
5155 opcode_C_7:\r
5156         opRST 0x00\r
5157 \r
5158 ;@RET Z\r
5159 opcode_C_8:\r
5160         tst z80f,#1<<ZFlag\r
5161         bne opcode_C_9_cond             ;@unconditional RET\r
5162         fetch 5\r
5163 \r
5164 opcode_C_9_cond:\r
5165         eatcycles 1\r
5166 ;@RET\r
5167 opcode_C_9:\r
5168     opPOP\r
5169         rebasepc\r
5170         fetch 10\r
5171 ;@JP Z,$+3\r
5172 opcode_C_A:\r
5173         tst z80f,#1<<ZFlag\r
5174         bne opcode_C_3  ;@unconditional JP\r
5175         add z80pc,z80pc,#2\r
5176         fetch 10\r
5177 \r
5178 ;@This reads this opcodes_CB lookup table to find the location of\r
5179 ;@the CB sub for the intruction and then branches to that location\r
5180 opcode_C_B:\r
5181         ldrb r0,[z80pc],#1\r
5182         ldr pc,[pc,r0, lsl #2]\r
5183 opcodes_CB:     .word 0x00000000\r
5184                         .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
5185                         .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
5186                         .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
5187                         .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
5188                         .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
5189                         .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
5190                         .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
5191                         .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
5192                         .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
5193                         .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
5194                         .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
5195                         .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
5196                         .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
5197                         .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
5198                         .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
5199                         .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
5200                         .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
5201                         .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
5202                         .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
5203                         .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
5204                         .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
5205                         .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
5206                         .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
5207                         .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
5208                         .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
5209                         .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
5210                         .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
5211                         .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
5212                         .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
5213                         .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
5214                         .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
5215                         .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
5216 \r
5217 ;@CALL Z,NN\r
5218 opcode_C_C:\r
5219         tst z80f,#1<<ZFlag\r
5220         bne opcode_C_D          ;@unconditional CALL\r
5221         add z80pc,z80pc,#2\r
5222         fetch 10\r
5223 ;@CALL NN\r
5224 opcode_C_D:\r
5225         ldrb r0,[z80pc],#1\r
5226         ldrb r1,[z80pc],#1\r
5227         ldr r2,[cpucontext,#z80pc_base]\r
5228         sub r2,z80pc,r2\r
5229         orr z80pc,r0,r1, lsl #8\r
5230     opPUSHareg r2\r
5231     mov r0,z80pc\r
5232         rebasepc\r
5233         fetch 17\r
5234 ;@ADC A,N\r
5235 opcode_C_E:\r
5236         ldrb r0,[z80pc],#1\r
5237         opADCb\r
5238         fetch 7\r
5239 ;@RST 8H\r
5240 opcode_C_F:\r
5241         opRST 0x08\r
5242 \r
5243 ;@RET NC\r
5244 opcode_D_0:\r
5245         tst z80f,#1<<CFlag\r
5246         beq opcode_C_9_cond             ;@unconditional RET\r
5247         fetch 5\r
5248 ;@POP DE\r
5249 opcode_D_1:\r
5250         opPOPreg z80de\r
5251 \r
5252 ;@JP NC, $+3\r
5253 opcode_D_2 :\r
5254         tst z80f,#1<<CFlag\r
5255         beq opcode_C_3          ;@unconditional JP\r
5256         add z80pc,z80pc,#2\r
5257         fetch 10\r
5258 ;@OUT (N),A\r
5259 opcode_D_3:\r
5260         ldrb r0,[z80pc],#1\r
5261         orr r0,r0,z80a,lsr#16\r
5262         mov r1,z80a, lsr #24\r
5263         opOUT\r
5264         fetch 11\r
5265 ;@CALL NC,NN\r
5266 opcode_D_4:\r
5267         tst z80f,#1<<CFlag\r
5268         beq opcode_C_D          ;@unconditional CALL\r
5269         add z80pc,z80pc,#2\r
5270         fetch 10\r
5271 ;@PUSH DE\r
5272 opcode_D_5:\r
5273         opPUSHreg z80de\r
5274         fetch 11\r
5275 ;@SUB N\r
5276 opcode_D_6:\r
5277         ldrb r0,[z80pc],#1\r
5278         opSUBb\r
5279         fetch 7\r
5280 \r
5281 ;@RST 10H\r
5282 opcode_D_7:\r
5283         opRST 0x10\r
5284 \r
5285 ;@RET C\r
5286 opcode_D_8:\r
5287         tst z80f,#1<<CFlag\r
5288         bne opcode_C_9_cond             ;@unconditional RET\r
5289         fetch 5\r
5290 ;@EXX\r
5291 opcode_D_9:\r
5292         add r1,cpucontext,#z80bc2\r
5293         swp z80bc,z80bc,[r1]\r
5294         add r1,cpucontext,#z80de2\r
5295         swp z80de,z80de,[r1]\r
5296         add r1,cpucontext,#z80hl2\r
5297         swp z80hl,z80hl,[r1]\r
5298         fetch 4\r
5299 ;@JP C,$+3\r
5300 opcode_D_A:\r
5301         tst z80f,#1<<CFlag\r
5302         bne opcode_C_3          ;@unconditional JP\r
5303         add z80pc,z80pc,#2\r
5304         fetch 10\r
5305 ;@IN A,(N)\r
5306 opcode_D_B:\r
5307         ldrb r0,[z80pc],#1\r
5308         orr r0,r0,z80a,lsr#16\r
5309         opIN\r
5310         mov z80a,r0, lsl #24    ;@ r0 = data read\r
5311         fetch 11\r
5312 ;@CALL C,NN\r
5313 opcode_D_C:\r
5314         tst z80f,#1<<CFlag\r
5315         bne opcode_C_D          ;@unconditional CALL\r
5316         add z80pc,z80pc,#2\r
5317         fetch 10\r
5318 \r
5319 ;@opcodes_DD\r
5320 opcode_D_D:\r
5321         add z80xx,cpucontext,#z80ix\r
5322         b opcode_D_D_F_D\r
5323 opcode_F_D:\r
5324         add z80xx,cpucontext,#z80iy\r
5325 opcode_D_D_F_D:\r
5326         ldrb r0,[z80pc],#1\r
5327         ldr pc,[pc,r0, lsl #2]\r
5328 opcodes_DD:     .word 0x00000000\r
5329                         .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
5330                         .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
5331                         .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
5332                         .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
5333                         .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
5334                         .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
5335                         .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
5336                         .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
5337                         .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
5338                         .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
5339                         .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
5340                         .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
5341                         .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
5342                         .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
5343                         .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
5344                         .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
5345                         .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
5346                         .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
5347                         .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
5348                         .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
5349                         .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
5350                         .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
5351                         .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
5352                         .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
5353                         .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
5354                         .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
5355                         .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
5356                         .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
5357                         .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
5358                         .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
5359                         .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
5360                         .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
5361 \r
5362 ;@SBC A,N\r
5363 opcode_D_E:\r
5364         ldrb r0,[z80pc],#1\r
5365         opSBCb\r
5366         fetch 7\r
5367 ;@RST 18H\r
5368 opcode_D_F:\r
5369         opRST 0x18\r
5370 \r
5371 ;@RET PO\r
5372 opcode_E_0:\r
5373         tst z80f,#1<<VFlag\r
5374         beq opcode_C_9_cond             ;@unconditional RET\r
5375         fetch 5\r
5376 ;@POP HL\r
5377 opcode_E_1:\r
5378         opPOPreg z80hl\r
5379 \r
5380 ;@JP PO,$+3\r
5381 opcode_E_2:\r
5382         tst z80f,#1<<VFlag\r
5383         beq opcode_C_3          ;@unconditional JP\r
5384         add z80pc,z80pc,#2\r
5385         fetch 10\r
5386 ;@EX (SP),HL\r
5387 opcode_E_3:\r
5388 .if FAST_Z80SP\r
5389         ldrb r0,[z80sp]\r
5390         ldrb r1,[z80sp,#1]\r
5391         orr r0,r0,r1, lsl #8\r
5392         mov r1,z80hl, lsr #24\r
5393         strb r1,[z80sp,#1]\r
5394         mov r1,z80hl, lsr #16\r
5395         strb r1,[z80sp]\r
5396         mov z80hl,r0, lsl #16\r
5397 .else\r
5398         mov r0,z80sp\r
5399         readmem16\r
5400         mov r1,r0\r
5401         mov r0,z80hl,lsr#16\r
5402         mov z80hl,r1,lsl#16\r
5403         mov r1,z80sp\r
5404         writemem16\r
5405 .endif\r
5406         fetch 19\r
5407 ;@CALL PO,NN\r
5408 opcode_E_4:\r
5409         tst z80f,#1<<VFlag\r
5410         beq opcode_C_D          ;@unconditional CALL\r
5411         add z80pc,z80pc,#2\r
5412         fetch 10\r
5413 ;@PUSH HL\r
5414 opcode_E_5:\r
5415         opPUSHreg z80hl\r
5416         fetch 11\r
5417 ;@AND N\r
5418 opcode_E_6:\r
5419         ldrb r0,[z80pc],#1\r
5420         opANDb\r
5421         fetch 7\r
5422 ;@RST 20H\r
5423 opcode_E_7:\r
5424         opRST 0x20\r
5425 \r
5426 ;@RET PE\r
5427 opcode_E_8:\r
5428         tst z80f,#1<<VFlag\r
5429         bne opcode_C_9_cond             ;@unconditional RET\r
5430         fetch 5\r
5431 ;@JP (HL)\r
5432 opcode_E_9:\r
5433         mov r0,z80hl, lsr #16\r
5434         rebasepc\r
5435         fetch 4\r
5436 ;@JP PE,$+3\r
5437 opcode_E_A:\r
5438         tst z80f,#1<<VFlag\r
5439         bne opcode_C_3          ;@unconditional JP\r
5440         add z80pc,z80pc,#2\r
5441         fetch 10\r
5442 ;@EX DE,HL\r
5443 opcode_E_B:\r
5444         mov r1,z80de\r
5445         mov z80de,z80hl\r
5446         mov z80hl,r1\r
5447         fetch 4\r
5448 ;@CALL PE,NN\r
5449 opcode_E_C:\r
5450         tst z80f,#1<<VFlag\r
5451         bne opcode_C_D          ;@unconditional CALL\r
5452         add z80pc,z80pc,#2\r
5453         fetch 10\r
5454 \r
5455 ;@This should be caught at start\r
5456 opcode_E_D:\r
5457         ldrb r1,[z80pc],#1\r
5458         ldr pc,[pc,r1, lsl #2]\r
5459 opcodes_ED:     .word 0x00000000\r
5460                         .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
5461                         .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
5462                         .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
5463                         .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
5464                         .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
5465                         .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
5466                         .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
5467                         .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
5468                         .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
5469                         .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
5470                         .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
5471                         .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
5472                         .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
5473                         .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
5474                         .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
5475                         .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
5476                         .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
5477                         .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
5478                         .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
5479                         .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
5480                         .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
5481                         .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
5482                         .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
5483                         .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
5484                         .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
5485                         .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
5486                         .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
5487                         .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
5488                         .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
5489                         .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
5490                         .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
5491                         .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
5492 \r
5493 ;@XOR N\r
5494 opcode_E_E:\r
5495         ldrb r0,[z80pc],#1\r
5496         opXORb\r
5497         fetch 7\r
5498 ;@RST 28H\r
5499 opcode_E_F:\r
5500         opRST 0x28\r
5501 \r
5502 ;@RET P\r
5503 opcode_F_0:\r
5504         tst z80f,#1<<SFlag\r
5505         beq opcode_C_9_cond             ;@unconditional RET\r
5506         fetch 5\r
5507 ;@POP AF\r
5508 opcode_F_1:\r
5509 .if FAST_Z80SP\r
5510         ldrb z80f,[z80sp],#1\r
5511         sub r0,opcodes,#0x200\r
5512         ldrb z80f,[r0,z80f]\r
5513         ldrb z80a,[z80sp],#1\r
5514         mov z80a,z80a, lsl #24\r
5515 .else\r
5516         mov r0,z80sp\r
5517         readmem16\r
5518         add z80sp,z80sp,#2\r
5519         and z80a,r0,#0xFF00\r
5520         mov z80a,z80a,lsl#16\r
5521         and z80f,r0,#0xFF\r
5522         sub r0,opcodes,#0x200\r
5523         ldrb z80f,[r0,z80f]\r
5524 .endif\r
5525         fetch 10\r
5526 ;@JP P,$+3\r
5527 opcode_F_2:\r
5528         tst z80f,#1<<SFlag\r
5529         beq opcode_C_3          ;@unconditional JP\r
5530         add z80pc,z80pc,#2\r
5531         fetch 10\r
5532 ;@DI\r
5533 opcode_F_3:\r
5534         ldrb r1,[cpucontext,#z80if]\r
5535         bic r1,r1,#(Z80_IF1)|(Z80_IF2)\r
5536         strb r1,[cpucontext,#z80if]\r
5537         fetch 4\r
5538 ;@CALL P,NN\r
5539 opcode_F_4:\r
5540         tst z80f,#1<<SFlag\r
5541         beq opcode_C_D          ;@unconditional CALL\r
5542         add z80pc,z80pc,#2\r
5543         fetch 10\r
5544 ;@PUSH AF\r
5545 opcode_F_5:\r
5546         sub r0,opcodes,#0x300\r
5547         ldrb r0,[r0,z80f]\r
5548         orr r2,r0,z80a,lsr#16\r
5549     opPUSHareg r2\r
5550         fetch 11\r
5551 ;@OR N\r
5552 opcode_F_6:\r
5553         ldrb r0,[z80pc],#1\r
5554         opORb\r
5555         fetch 7\r
5556 ;@RST 30H\r
5557 opcode_F_7:\r
5558         opRST 0x30\r
5559 \r
5560 ;@RET M\r
5561 opcode_F_8:\r
5562         tst z80f,#1<<SFlag\r
5563         bne opcode_C_9_cond             ;@unconditional RET\r
5564         fetch 5\r
5565 ;@LD SP,HL\r
5566 opcode_F_9:\r
5567 .if FAST_Z80SP\r
5568         mov r0,z80hl, lsr #16\r
5569         rebasesp\r
5570         mov z80sp,r0\r
5571 .else\r
5572         mov z80sp,z80hl, lsr #16\r
5573 .endif\r
5574         fetch 6\r
5575 ;@JP M,$+3\r
5576 opcode_F_A:\r
5577         tst z80f,#1<<SFlag\r
5578         bne opcode_C_3          ;@unconditional JP\r
5579         add z80pc,z80pc,#2\r
5580         fetch 10\r
5581 MAIN_opcodes_POINTER: .word MAIN_opcodes\r
5582 EI_DUMMY_opcodes_POINTER: .word EI_DUMMY_opcodes\r
5583 ;@EI\r
5584 opcode_F_B:\r
5585         ldrb r1,[cpucontext,#z80if]\r
5586         mov r2,opcodes\r
5587         orr r1,r1,#(Z80_IF1)|(Z80_IF2)\r
5588         strb r1,[cpucontext,#z80if]\r
5589 \r
5590         ldrb r0,[z80pc],#1\r
5591         eatcycles 4\r
5592         ldr opcodes,EI_DUMMY_opcodes_POINTER\r
5593         ldr pc,[r2,r0, lsl #2]\r
5594 \r
5595 ei_return:\r
5596         ;@point that program returns from EI to check interupts\r
5597         ;@an interupt can not be taken directly after a EI opcode\r
5598         ;@ reset z80pc and opcode pointer\r
5599         ldrh r0,[cpucontext,#z80irq] @ 0x4C, irq and IFF bits\r
5600         sub z80pc,z80pc,#1\r
5601         ldr opcodes,MAIN_opcodes_POINTER\r
5602         ;@ check ints\r
5603         tst r0,#0xff\r
5604         movne r0,r0,lsr #8\r
5605         tstne r0,#1\r
5606         blne DoInterrupt\r
5607 \r
5608         ;@ continue\r
5609         fetch 0\r
5610 \r
5611 ;@CALL M,NN\r
5612 opcode_F_C:\r
5613         tst z80f,#1<<SFlag\r
5614         bne opcode_C_D          ;@unconditional CALL\r
5615         add z80pc,z80pc,#2\r
5616         fetch 10\r
5617 \r
5618 ;@SHOULD BE CAUGHT AT START - FD SECTION\r
5619 \r
5620 ;@CP N\r
5621 opcode_F_E:\r
5622         ldrb r0,[z80pc],#1\r
5623         opCPb\r
5624         fetch 7\r
5625 ;@RST 38H\r
5626 opcode_F_F:\r
5627         opRST 0x38\r
5628 \r
5629 \r
5630 ;@##################################\r
5631 ;@##################################\r
5632 ;@###  opcodes CB  #########################\r
5633 ;@##################################\r
5634 ;@##################################\r
5635 \r
5636 \r
5637 ;@RLC B\r
5638 opcode_CB_00:\r
5639         opRLCH z80bc\r
5640 ;@RLC C\r
5641 opcode_CB_01:\r
5642         opRLCL z80bc\r
5643 ;@RLC D\r
5644 opcode_CB_02:\r
5645         opRLCH z80de\r
5646 ;@RLC E\r
5647 opcode_CB_03:\r
5648         opRLCL z80de\r
5649 ;@RLC H\r
5650 opcode_CB_04:\r
5651         opRLCH z80hl\r
5652 ;@RLC L\r
5653 opcode_CB_05:\r
5654         opRLCL z80hl\r
5655 ;@RLC (HL)\r
5656 opcode_CB_06:\r
5657         readmem8HL\r
5658         opRLCb\r
5659         writemem8HL\r
5660         fetch 15\r
5661 ;@RLC A\r
5662 opcode_CB_07:\r
5663         opRLCA\r
5664 \r
5665 ;@RRC B\r
5666 opcode_CB_08:\r
5667         opRRCH z80bc\r
5668 ;@RRC C\r
5669 opcode_CB_09:\r
5670         opRRCL z80bc\r
5671 ;@RRC D\r
5672 opcode_CB_0A:\r
5673         opRRCH z80de\r
5674 ;@RRC E\r
5675 opcode_CB_0B:\r
5676         opRRCL z80de\r
5677 ;@RRC H\r
5678 opcode_CB_0C:\r
5679         opRRCH z80hl\r
5680 ;@RRC L\r
5681 opcode_CB_0D:\r
5682         opRRCL z80hl\r
5683 ;@RRC (HL)\r
5684 opcode_CB_0E :\r
5685         readmem8HL\r
5686         opRRCb\r
5687         writemem8HL\r
5688         fetch 15\r
5689 ;@RRC A\r
5690 opcode_CB_0F:\r
5691         opRRCA\r
5692 \r
5693 ;@RL B\r
5694 opcode_CB_10:\r
5695         opRLH z80bc\r
5696 ;@RL C\r
5697 opcode_CB_11:\r
5698         opRLL z80bc\r
5699 ;@RL D\r
5700 opcode_CB_12:\r
5701         opRLH z80de\r
5702 ;@RL E\r
5703 opcode_CB_13:\r
5704         opRLL z80de\r
5705 ;@RL H\r
5706 opcode_CB_14:\r
5707         opRLH z80hl\r
5708 ;@RL L\r
5709 opcode_CB_15:\r
5710         opRLL z80hl\r
5711 ;@RL (HL)\r
5712 opcode_CB_16:\r
5713         readmem8HL\r
5714         opRLb\r
5715         writemem8HL\r
5716         fetch 15\r
5717 ;@RL A\r
5718 opcode_CB_17:\r
5719         opRLA\r
5720 \r
5721 ;@RR B \r
5722 opcode_CB_18:\r
5723         opRRH z80bc\r
5724 ;@RR C\r
5725 opcode_CB_19:\r
5726         opRRL z80bc\r
5727 ;@RR D\r
5728 opcode_CB_1A:\r
5729         opRRH z80de\r
5730 ;@RR E\r
5731 opcode_CB_1B:\r
5732         opRRL z80de\r
5733 ;@RR H\r
5734 opcode_CB_1C:\r
5735         opRRH z80hl\r
5736 ;@RR L\r
5737 opcode_CB_1D:\r
5738         opRRL z80hl\r
5739 ;@RR (HL)\r
5740 opcode_CB_1E:\r
5741         readmem8HL\r
5742         opRRb\r
5743         writemem8HL\r
5744         fetch 15\r
5745 ;@RR A\r
5746 opcode_CB_1F:\r
5747         opRRA\r
5748 \r
5749 ;@SLA B\r
5750 opcode_CB_20:\r
5751         opSLAH z80bc\r
5752 ;@SLA C\r
5753 opcode_CB_21:\r
5754         opSLAL z80bc\r
5755 ;@SLA D\r
5756 opcode_CB_22:\r
5757         opSLAH z80de\r
5758 ;@SLA E\r
5759 opcode_CB_23:\r
5760         opSLAL z80de\r
5761 ;@SLA H\r
5762 opcode_CB_24:\r
5763         opSLAH z80hl\r
5764 ;@SLA L\r
5765 opcode_CB_25:\r
5766         opSLAL z80hl\r
5767 ;@SLA (HL)\r
5768 opcode_CB_26:\r
5769         readmem8HL\r
5770         opSLAb\r
5771         writemem8HL\r
5772         fetch 15\r
5773 ;@SLA A\r
5774 opcode_CB_27:\r
5775         opSLAA\r
5776 \r
5777 ;@SRA B\r
5778 opcode_CB_28:\r
5779         opSRAH z80bc\r
5780 ;@SRA C\r
5781 opcode_CB_29:\r
5782         opSRAL z80bc\r
5783 ;@SRA D\r
5784 opcode_CB_2A:\r
5785         opSRAH z80de\r
5786 ;@SRA E\r
5787 opcode_CB_2B:\r
5788         opSRAL z80de\r
5789 ;@SRA H\r
5790 opcode_CB_2C:\r
5791         opSRAH z80hl\r
5792 ;@SRA L\r
5793 opcode_CB_2D:\r
5794         opSRAL z80hl\r
5795 ;@SRA (HL)\r
5796 opcode_CB_2E:\r
5797         readmem8HL\r
5798         opSRAb\r
5799         writemem8HL\r
5800         fetch 15\r
5801 ;@SRA A\r
5802 opcode_CB_2F:\r
5803         opSRAA\r
5804 \r
5805 ;@SLL B\r
5806 opcode_CB_30:\r
5807         opSLLH z80bc\r
5808 ;@SLL C\r
5809 opcode_CB_31:\r
5810         opSLLL z80bc\r
5811 ;@SLL D\r
5812 opcode_CB_32:\r
5813         opSLLH z80de\r
5814 ;@SLL E\r
5815 opcode_CB_33:\r
5816         opSLLL z80de\r
5817 ;@SLL H\r
5818 opcode_CB_34:\r
5819         opSLLH z80hl\r
5820 ;@SLL L\r
5821 opcode_CB_35:\r
5822         opSLLL z80hl\r
5823 ;@SLL (HL)\r
5824 opcode_CB_36:\r
5825         readmem8HL\r
5826         opSLLb\r
5827         writemem8HL\r
5828         fetch 15\r
5829 ;@SLL A\r
5830 opcode_CB_37:\r
5831         opSLLA\r
5832 \r
5833 ;@SRL B\r
5834 opcode_CB_38:\r
5835         opSRLH z80bc\r
5836 ;@SRL C\r
5837 opcode_CB_39:\r
5838         opSRLL z80bc\r
5839 ;@SRL D\r
5840 opcode_CB_3A:\r
5841         opSRLH z80de\r
5842 ;@SRL E\r
5843 opcode_CB_3B:\r
5844         opSRLL z80de\r
5845 ;@SRL H\r
5846 opcode_CB_3C:\r
5847         opSRLH z80hl\r
5848 ;@SRL L\r
5849 opcode_CB_3D:\r
5850         opSRLL z80hl\r
5851 ;@SRL (HL)\r
5852 opcode_CB_3E:\r
5853         readmem8HL\r
5854         opSRLb\r
5855         writemem8HL\r
5856         fetch 15\r
5857 ;@SRL A\r
5858 opcode_CB_3F:\r
5859         opSRLA\r
5860 \r
5861 \r
5862 ;@BIT 0,B\r
5863 opcode_CB_40:\r
5864         opBITH z80bc 0\r
5865 ;@BIT 0,C\r
5866 opcode_CB_41:\r
5867         opBITL z80bc 0\r
5868 ;@BIT 0,D\r
5869 opcode_CB_42:\r
5870         opBITH z80de 0\r
5871 ;@BIT 0,E\r
5872 opcode_CB_43:\r
5873         opBITL z80de 0\r
5874 ;@BIT 0,H\r
5875 opcode_CB_44:\r
5876         opBITH z80hl 0\r
5877 ;@BIT 0,L\r
5878 opcode_CB_45:\r
5879         opBITL z80hl 0\r
5880 ;@BIT 0,(HL)\r
5881 opcode_CB_46:\r
5882         readmem8HL\r
5883         opBITb 0\r
5884         fetch 12\r
5885 ;@BIT 0,A\r
5886 opcode_CB_47:\r
5887         opBITH z80a 0\r
5888 \r
5889 ;@BIT 1,B\r
5890 opcode_CB_48:\r
5891         opBITH z80bc 1\r
5892 ;@BIT 1,C\r
5893 opcode_CB_49:\r
5894         opBITL z80bc 1\r
5895 ;@BIT 1,D\r
5896 opcode_CB_4A:\r
5897         opBITH z80de 1\r
5898 ;@BIT 1,E\r
5899 opcode_CB_4B:\r
5900         opBITL z80de 1\r
5901 ;@BIT 1,H\r
5902 opcode_CB_4C:\r
5903         opBITH z80hl 1\r
5904 ;@BIT 1,L\r
5905 opcode_CB_4D:\r
5906         opBITL z80hl 1\r
5907 ;@BIT 1,(HL)\r
5908 opcode_CB_4E:\r
5909         readmem8HL\r
5910         opBITb 1\r
5911         fetch 12\r
5912 ;@BIT 1,A\r
5913 opcode_CB_4F:\r
5914         opBITH z80a 1\r
5915 \r
5916 ;@BIT 2,B\r
5917 opcode_CB_50:\r
5918         opBITH z80bc 2\r
5919 ;@BIT 2,C\r
5920 opcode_CB_51:\r
5921         opBITL z80bc 2\r
5922 ;@BIT 2,D\r
5923 opcode_CB_52:\r
5924         opBITH z80de 2\r
5925 ;@BIT 2,E\r
5926 opcode_CB_53:\r
5927         opBITL z80de 2\r
5928 ;@BIT 2,H\r
5929 opcode_CB_54:\r
5930         opBITH z80hl 2\r
5931 ;@BIT 2,L\r
5932 opcode_CB_55:\r
5933         opBITL z80hl 2\r
5934 ;@BIT 2,(HL)\r
5935 opcode_CB_56:\r
5936         readmem8HL\r
5937         opBITb 2\r
5938         fetch 12\r
5939 ;@BIT 2,A\r
5940 opcode_CB_57:\r
5941         opBITH z80a 2\r
5942 \r
5943 ;@BIT 3,B\r
5944 opcode_CB_58:\r
5945         opBITH z80bc 3\r
5946 ;@BIT 3,C\r
5947 opcode_CB_59:\r
5948         opBITL z80bc 3\r
5949 ;@BIT 3,D\r
5950 opcode_CB_5A:\r
5951         opBITH z80de 3\r
5952 ;@BIT 3,E\r
5953 opcode_CB_5B:\r
5954         opBITL z80de 3\r
5955 ;@BIT 3,H\r
5956 opcode_CB_5C:\r
5957         opBITH z80hl 3\r
5958 ;@BIT 3,L\r
5959 opcode_CB_5D:\r
5960         opBITL z80hl 3\r
5961 ;@BIT 3,(HL)\r
5962 opcode_CB_5E:\r
5963         readmem8HL\r
5964         opBITb 3\r
5965         fetch 12\r
5966 ;@BIT 3,A\r
5967 opcode_CB_5F:\r
5968         opBITH z80a 3\r
5969 \r
5970 ;@BIT 4,B\r
5971 opcode_CB_60:\r
5972         opBITH z80bc 4\r
5973 ;@BIT 4,C\r
5974 opcode_CB_61:\r
5975         opBITL z80bc 4\r
5976 ;@BIT 4,D\r
5977 opcode_CB_62:\r
5978         opBITH z80de 4\r
5979 ;@BIT 4,E\r
5980 opcode_CB_63:\r
5981         opBITL z80de 4\r
5982 ;@BIT 4,H\r
5983 opcode_CB_64:\r
5984         opBITH z80hl 4\r
5985 ;@BIT 4,L\r
5986 opcode_CB_65:\r
5987         opBITL z80hl 4\r
5988 ;@BIT 4,(HL)\r
5989 opcode_CB_66:\r
5990         readmem8HL\r
5991         opBITb 4\r
5992         fetch 12\r
5993 ;@BIT 4,A\r
5994 opcode_CB_67:\r
5995         opBITH z80a 4\r
5996 \r
5997 ;@BIT 5,B\r
5998 opcode_CB_68:\r
5999         opBITH z80bc 5\r
6000 ;@BIT 5,C\r
6001 opcode_CB_69:\r
6002         opBITL z80bc 5\r
6003 ;@BIT 5,D\r
6004 opcode_CB_6A:\r
6005         opBITH z80de 5\r
6006 ;@BIT 5,E\r
6007 opcode_CB_6B:\r
6008         opBITL z80de 5\r
6009 ;@BIT 5,H\r
6010 opcode_CB_6C:\r
6011         opBITH z80hl 5\r
6012 ;@BIT 5,L\r
6013 opcode_CB_6D:\r
6014         opBITL z80hl 5\r
6015 ;@BIT 5,(HL)\r
6016 opcode_CB_6E:\r
6017         readmem8HL\r
6018         opBITb 5\r
6019         fetch 12\r
6020 ;@BIT 5,A\r
6021 opcode_CB_6F:\r
6022         opBITH z80a 5\r
6023 \r
6024 ;@BIT 6,B\r
6025 opcode_CB_70:\r
6026         opBITH z80bc 6\r
6027 ;@BIT 6,C\r
6028 opcode_CB_71:\r
6029         opBITL z80bc 6\r
6030 ;@BIT 6,D\r
6031 opcode_CB_72:\r
6032         opBITH z80de 6\r
6033 ;@BIT 6,E\r
6034 opcode_CB_73:\r
6035         opBITL z80de 6\r
6036 ;@BIT 6,H\r
6037 opcode_CB_74:\r
6038         opBITH z80hl 6\r
6039 ;@BIT 6,L\r
6040 opcode_CB_75:\r
6041         opBITL z80hl 6\r
6042 ;@BIT 6,(HL)\r
6043 opcode_CB_76:\r
6044         readmem8HL\r
6045         opBITb 6\r
6046         fetch 12\r
6047 ;@BIT 6,A\r
6048 opcode_CB_77:\r
6049         opBITH z80a 6\r
6050 \r
6051 ;@BIT 7,B\r
6052 opcode_CB_78:\r
6053         opBIT7H z80bc\r
6054 ;@BIT 7,C\r
6055 opcode_CB_79:\r
6056         opBIT7L z80bc\r
6057 ;@BIT 7,D\r
6058 opcode_CB_7A:\r
6059         opBIT7H z80de\r
6060 ;@BIT 7,E\r
6061 opcode_CB_7B:\r
6062         opBIT7L z80de\r
6063 ;@BIT 7,H\r
6064 opcode_CB_7C:\r
6065         opBIT7H z80hl\r
6066 ;@BIT 7,L\r
6067 opcode_CB_7D:\r
6068         opBIT7L z80hl\r
6069 ;@BIT 7,(HL)\r
6070 opcode_CB_7E:\r
6071         readmem8HL\r
6072         opBIT7b\r
6073         fetch 12\r
6074 ;@BIT 7,A\r
6075 opcode_CB_7F:\r
6076         opBIT7H z80a\r
6077 \r
6078 ;@RES 0,B\r
6079 opcode_CB_80:\r
6080         bic z80bc,z80bc,#1<<24\r
6081         fetch 8\r
6082 ;@RES 0,C\r
6083 opcode_CB_81:\r
6084         bic z80bc,z80bc,#1<<16\r
6085         fetch 8\r
6086 ;@RES 0,D\r
6087 opcode_CB_82:\r
6088         bic z80de,z80de,#1<<24\r
6089         fetch 8\r
6090 ;@RES 0,E\r
6091 opcode_CB_83:\r
6092         bic z80de,z80de,#1<<16\r
6093         fetch 8\r
6094 ;@RES 0,H\r
6095 opcode_CB_84:\r
6096         bic z80hl,z80hl,#1<<24\r
6097         fetch 8\r
6098 ;@RES 0,L\r
6099 opcode_CB_85:\r
6100         bic z80hl,z80hl,#1<<16\r
6101         fetch 8\r
6102 ;@RES 0,(HL)\r
6103 opcode_CB_86:\r
6104         opRESmemHL 0\r
6105 ;@RES 0,A\r
6106 opcode_CB_87:\r
6107         bic z80a,z80a,#1<<24\r
6108         fetch 8\r
6109 \r
6110 ;@RES 1,B\r
6111 opcode_CB_88:\r
6112         bic z80bc,z80bc,#1<<25\r
6113         fetch 8\r
6114 ;@RES 1,C\r
6115 opcode_CB_89:\r
6116         bic z80bc,z80bc,#1<<17\r
6117         fetch 8\r
6118 ;@RES 1,D\r
6119 opcode_CB_8A:\r
6120         bic z80de,z80de,#1<<25\r
6121         fetch 8\r
6122 ;@RES 1,E\r
6123 opcode_CB_8B:\r
6124         bic z80de,z80de,#1<<17\r
6125         fetch 8\r
6126 ;@RES 1,H\r
6127 opcode_CB_8C:\r
6128         bic z80hl,z80hl,#1<<25\r
6129         fetch 8\r
6130 ;@RES 1,L\r
6131 opcode_CB_8D:\r
6132         bic z80hl,z80hl,#1<<17\r
6133         fetch 8\r
6134 ;@RES 1,(HL)\r
6135 opcode_CB_8E:\r
6136         opRESmemHL 1\r
6137 ;@RES 1,A\r
6138 opcode_CB_8F:\r
6139         bic z80a,z80a,#1<<25\r
6140         fetch 8\r
6141 \r
6142 ;@RES 2,B\r
6143 opcode_CB_90:\r
6144         bic z80bc,z80bc,#1<<26\r
6145         fetch 8\r
6146 ;@RES 2,C\r
6147 opcode_CB_91:\r
6148         bic z80bc,z80bc,#1<<18\r
6149         fetch 8\r
6150 ;@RES 2,D\r
6151 opcode_CB_92:\r
6152         bic z80de,z80de,#1<<26\r
6153         fetch 8\r
6154 ;@RES 2,E\r
6155 opcode_CB_93:\r
6156         bic z80de,z80de,#1<<18\r
6157         fetch 8\r
6158 ;@RES 2,H\r
6159 opcode_CB_94:\r
6160         bic z80hl,z80hl,#1<<26\r
6161         fetch 8\r
6162 ;@RES 2,L\r
6163 opcode_CB_95:\r
6164         bic z80hl,z80hl,#1<<18\r
6165         fetch 8\r
6166 ;@RES 2,(HL)\r
6167 opcode_CB_96:\r
6168         opRESmemHL 2\r
6169 ;@RES 2,A\r
6170 opcode_CB_97:\r
6171         bic z80a,z80a,#1<<26\r
6172         fetch 8\r
6173 \r
6174 ;@RES 3,B\r
6175 opcode_CB_98:\r
6176         bic z80bc,z80bc,#1<<27\r
6177         fetch 8\r
6178 ;@RES 3,C\r
6179 opcode_CB_99:\r
6180         bic z80bc,z80bc,#1<<19\r
6181         fetch 8\r
6182 ;@RES 3,D\r
6183 opcode_CB_9A:\r
6184         bic z80de,z80de,#1<<27\r
6185         fetch 8\r
6186 ;@RES 3,E\r
6187 opcode_CB_9B:\r
6188         bic z80de,z80de,#1<<19\r
6189         fetch 8\r
6190 ;@RES 3,H\r
6191 opcode_CB_9C:\r
6192         bic z80hl,z80hl,#1<<27\r
6193         fetch 8\r
6194 ;@RES 3,L\r
6195 opcode_CB_9D:\r
6196         bic z80hl,z80hl,#1<<19\r
6197         fetch 8\r
6198 ;@RES 3,(HL)\r
6199 opcode_CB_9E:\r
6200         opRESmemHL 3\r
6201 ;@RES 3,A\r
6202 opcode_CB_9F:\r
6203         bic z80a,z80a,#1<<27\r
6204         fetch 8\r
6205 \r
6206 ;@RES 4,B\r
6207 opcode_CB_A0:\r
6208         bic z80bc,z80bc,#1<<28\r
6209         fetch 8\r
6210 ;@RES 4,C\r
6211 opcode_CB_A1:\r
6212         bic z80bc,z80bc,#1<<20\r
6213         fetch 8\r
6214 ;@RES 4,D\r
6215 opcode_CB_A2:\r
6216         bic z80de,z80de,#1<<28\r
6217         fetch 8\r
6218 ;@RES 4,E\r
6219 opcode_CB_A3:\r
6220         bic z80de,z80de,#1<<20\r
6221         fetch 8\r
6222 ;@RES 4,H\r
6223 opcode_CB_A4:\r
6224         bic z80hl,z80hl,#1<<28\r
6225         fetch 8\r
6226 ;@RES 4,L\r
6227 opcode_CB_A5:\r
6228         bic z80hl,z80hl,#1<<20\r
6229         fetch 8\r
6230 ;@RES 4,(HL)\r
6231 opcode_CB_A6:\r
6232         opRESmemHL 4\r
6233 ;@RES 4,A\r
6234 opcode_CB_A7:\r
6235         bic z80a,z80a,#1<<28\r
6236         fetch 8\r
6237 \r
6238 ;@RES 5,B\r
6239 opcode_CB_A8:\r
6240         bic z80bc,z80bc,#1<<29\r
6241         fetch 8\r
6242 ;@RES 5,C\r
6243 opcode_CB_A9:\r
6244         bic z80bc,z80bc,#1<<21\r
6245         fetch 8\r
6246 ;@RES 5,D\r
6247 opcode_CB_AA:\r
6248         bic z80de,z80de,#1<<29\r
6249         fetch 8\r
6250 ;@RES 5,E\r
6251 opcode_CB_AB:\r
6252         bic z80de,z80de,#1<<21\r
6253         fetch 8\r
6254 ;@RES 5,H\r
6255 opcode_CB_AC:\r
6256         bic z80hl,z80hl,#1<<29\r
6257         fetch 8\r
6258 ;@RES 5,L\r
6259 opcode_CB_AD:\r
6260         bic z80hl,z80hl,#1<<21\r
6261         fetch 8\r
6262 ;@RES 5,(HL)\r
6263 opcode_CB_AE:\r
6264         opRESmemHL 5\r
6265 ;@RES 5,A\r
6266 opcode_CB_AF:\r
6267         bic z80a,z80a,#1<<29\r
6268         fetch 8\r
6269 \r
6270 ;@RES 6,B\r
6271 opcode_CB_B0:\r
6272         bic z80bc,z80bc,#1<<30\r
6273         fetch 8\r
6274 ;@RES 6,C\r
6275 opcode_CB_B1:\r
6276         bic z80bc,z80bc,#1<<22\r
6277         fetch 8\r
6278 ;@RES 6,D\r
6279 opcode_CB_B2:\r
6280         bic z80de,z80de,#1<<30\r
6281         fetch 8\r
6282 ;@RES 6,E\r
6283 opcode_CB_B3:\r
6284         bic z80de,z80de,#1<<22\r
6285         fetch 8\r
6286 ;@RES 6,H\r
6287 opcode_CB_B4:\r
6288         bic z80hl,z80hl,#1<<30\r
6289         fetch 8\r
6290 ;@RES 6,L\r
6291 opcode_CB_B5:\r
6292         bic z80hl,z80hl,#1<<22\r
6293         fetch 8\r
6294 ;@RES 6,(HL)\r
6295 opcode_CB_B6:\r
6296         opRESmemHL 6\r
6297 ;@RES 6,A\r
6298 opcode_CB_B7:\r
6299         bic z80a,z80a,#1<<30\r
6300         fetch 8\r
6301 \r
6302 ;@RES 7,B\r
6303 opcode_CB_B8:\r
6304         bic z80bc,z80bc,#1<<31\r
6305         fetch 8\r
6306 ;@RES 7,C\r
6307 opcode_CB_B9:\r
6308         bic z80bc,z80bc,#1<<23\r
6309         fetch 8\r
6310 ;@RES 7,D\r
6311 opcode_CB_BA:\r
6312         bic z80de,z80de,#1<<31\r
6313         fetch 8\r
6314 ;@RES 7,E\r
6315 opcode_CB_BB:\r
6316         bic z80de,z80de,#1<<23\r
6317         fetch 8\r
6318 ;@RES 7,H\r
6319 opcode_CB_BC:\r
6320         bic z80hl,z80hl,#1<<31\r
6321         fetch 8\r
6322 ;@RES 7,L\r
6323 opcode_CB_BD:\r
6324         bic z80hl,z80hl,#1<<23\r
6325         fetch 8\r
6326 ;@RES 7,(HL)\r
6327 opcode_CB_BE:\r
6328         opRESmemHL 7\r
6329 ;@RES 7,A\r
6330 opcode_CB_BF:\r
6331         bic z80a,z80a,#1<<31\r
6332         fetch 8\r
6333 \r
6334 ;@SET 0,B\r
6335 opcode_CB_C0:\r
6336         orr z80bc,z80bc,#1<<24\r
6337         fetch 8\r
6338 ;@SET 0,C\r
6339 opcode_CB_C1:\r
6340         orr z80bc,z80bc,#1<<16\r
6341         fetch 8\r
6342 ;@SET 0,D\r
6343 opcode_CB_C2:\r
6344         orr z80de,z80de,#1<<24\r
6345         fetch 8\r
6346 ;@SET 0,E\r
6347 opcode_CB_C3:\r
6348         orr z80de,z80de,#1<<16\r
6349         fetch 8\r
6350 ;@SET 0,H\r
6351 opcode_CB_C4:\r
6352         orr z80hl,z80hl,#1<<24\r
6353         fetch 8\r
6354 ;@SET 0,L\r
6355 opcode_CB_C5:\r
6356         orr z80hl,z80hl,#1<<16\r
6357         fetch 8\r
6358 ;@SET 0,(HL)\r
6359 opcode_CB_C6:\r
6360         opSETmemHL 0\r
6361 ;@SET 0,A\r
6362 opcode_CB_C7:\r
6363         orr z80a,z80a,#1<<24\r
6364         fetch 8\r
6365 \r
6366 ;@SET 1,B\r
6367 opcode_CB_C8:\r
6368         orr z80bc,z80bc,#1<<25\r
6369         fetch 8\r
6370 ;@SET 1,C\r
6371 opcode_CB_C9:\r
6372         orr z80bc,z80bc,#1<<17\r
6373         fetch 8\r
6374 ;@SET 1,D\r
6375 opcode_CB_CA:\r
6376         orr z80de,z80de,#1<<25\r
6377         fetch 8\r
6378 ;@SET 1,E\r
6379 opcode_CB_CB:\r
6380         orr z80de,z80de,#1<<17\r
6381         fetch 8\r
6382 ;@SET 1,H\r
6383 opcode_CB_CC:\r
6384         orr z80hl,z80hl,#1<<25\r
6385         fetch 8\r
6386 ;@SET 1,L\r
6387 opcode_CB_CD:\r
6388         orr z80hl,z80hl,#1<<17\r
6389         fetch 8\r
6390 ;@SET 1,(HL)\r
6391 opcode_CB_CE:\r
6392         opSETmemHL 1\r
6393 ;@SET 1,A\r
6394 opcode_CB_CF:\r
6395         orr z80a,z80a,#1<<25\r
6396         fetch 8\r
6397 \r
6398 ;@SET 2,B\r
6399 opcode_CB_D0:\r
6400         orr z80bc,z80bc,#1<<26\r
6401         fetch 8\r
6402 ;@SET 2,C\r
6403 opcode_CB_D1:\r
6404         orr z80bc,z80bc,#1<<18\r
6405         fetch 8\r
6406 ;@SET 2,D\r
6407 opcode_CB_D2:\r
6408         orr z80de,z80de,#1<<26\r
6409         fetch 8\r
6410 ;@SET 2,E\r
6411 opcode_CB_D3:\r
6412         orr z80de,z80de,#1<<18\r
6413         fetch 8\r
6414 ;@SET 2,H\r
6415 opcode_CB_D4:\r
6416         orr z80hl,z80hl,#1<<26\r
6417         fetch 8\r
6418 ;@SET 2,L\r
6419 opcode_CB_D5:\r
6420         orr z80hl,z80hl,#1<<18\r
6421         fetch 8\r
6422 ;@SET 2,(HL)\r
6423 opcode_CB_D6:\r
6424         opSETmemHL 2\r
6425 ;@SET 2,A\r
6426 opcode_CB_D7:\r
6427         orr z80a,z80a,#1<<26\r
6428         fetch 8\r
6429 \r
6430 ;@SET 3,B\r
6431 opcode_CB_D8:\r
6432         orr z80bc,z80bc,#1<<27\r
6433         fetch 8\r
6434 ;@SET 3,C\r
6435 opcode_CB_D9:\r
6436         orr z80bc,z80bc,#1<<19\r
6437         fetch 8\r
6438 ;@SET 3,D\r
6439 opcode_CB_DA:\r
6440         orr z80de,z80de,#1<<27\r
6441         fetch 8\r
6442 ;@SET 3,E\r
6443 opcode_CB_DB:\r
6444         orr z80de,z80de,#1<<19\r
6445         fetch 8\r
6446 ;@SET 3,H\r
6447 opcode_CB_DC:\r
6448         orr z80hl,z80hl,#1<<27\r
6449         fetch 8\r
6450 ;@SET 3,L\r
6451 opcode_CB_DD:\r
6452         orr z80hl,z80hl,#1<<19\r
6453         fetch 8\r
6454 ;@SET 3,(HL)\r
6455 opcode_CB_DE:\r
6456         opSETmemHL 3\r
6457 ;@SET 3,A\r
6458 opcode_CB_DF:\r
6459         orr z80a,z80a,#1<<27\r
6460         fetch 8\r
6461 \r
6462 ;@SET 4,B\r
6463 opcode_CB_E0:\r
6464         orr z80bc,z80bc,#1<<28\r
6465         fetch 8\r
6466 ;@SET 4,C\r
6467 opcode_CB_E1:\r
6468         orr z80bc,z80bc,#1<<20\r
6469         fetch 8\r
6470 ;@SET 4,D\r
6471 opcode_CB_E2:\r
6472         orr z80de,z80de,#1<<28\r
6473         fetch 8\r
6474 ;@SET 4,E\r
6475 opcode_CB_E3:\r
6476         orr z80de,z80de,#1<<20\r
6477         fetch 8\r
6478 ;@SET 4,H\r
6479 opcode_CB_E4:\r
6480         orr z80hl,z80hl,#1<<28\r
6481         fetch 8\r
6482 ;@SET 4,L\r
6483 opcode_CB_E5:\r
6484         orr z80hl,z80hl,#1<<20\r
6485         fetch 8\r
6486 ;@SET 4,(HL)\r
6487 opcode_CB_E6:\r
6488         opSETmemHL 4\r
6489 ;@SET 4,A\r
6490 opcode_CB_E7:\r
6491         orr z80a,z80a,#1<<28\r
6492         fetch 8\r
6493 \r
6494 ;@SET 5,B\r
6495 opcode_CB_E8:\r
6496         orr z80bc,z80bc,#1<<29\r
6497         fetch 8\r
6498 ;@SET 5,C\r
6499 opcode_CB_E9:\r
6500         orr z80bc,z80bc,#1<<21\r
6501         fetch 8\r
6502 ;@SET 5,D\r
6503 opcode_CB_EA:\r
6504         orr z80de,z80de,#1<<29\r
6505         fetch 8\r
6506 ;@SET 5,E\r
6507 opcode_CB_EB:\r
6508         orr z80de,z80de,#1<<21\r
6509         fetch 8\r
6510 ;@SET 5,H\r
6511 opcode_CB_EC:\r
6512         orr z80hl,z80hl,#1<<29\r
6513         fetch 8\r
6514 ;@SET 5,L\r
6515 opcode_CB_ED:\r
6516         orr z80hl,z80hl,#1<<21\r
6517         fetch 8\r
6518 ;@SET 5,(HL)\r
6519 opcode_CB_EE:\r
6520         opSETmemHL 5\r
6521 ;@SET 5,A\r
6522 opcode_CB_EF:\r
6523         orr z80a,z80a,#1<<29\r
6524         fetch 8\r
6525 \r
6526 ;@SET 6,B\r
6527 opcode_CB_F0:\r
6528         orr z80bc,z80bc,#1<<30\r
6529         fetch 8\r
6530 ;@SET 6,C\r
6531 opcode_CB_F1:\r
6532         orr z80bc,z80bc,#1<<22\r
6533         fetch 8\r
6534 ;@SET 6,D\r
6535 opcode_CB_F2:\r
6536         orr z80de,z80de,#1<<30\r
6537         fetch 8\r
6538 ;@SET 6,E\r
6539 opcode_CB_F3:\r
6540         orr z80de,z80de,#1<<22\r
6541         fetch 8\r
6542 ;@SET 6,H\r
6543 opcode_CB_F4:\r
6544         orr z80hl,z80hl,#1<<30\r
6545         fetch 8\r
6546 ;@SET 6,L\r
6547 opcode_CB_F5:\r
6548         orr z80hl,z80hl,#1<<22\r
6549         fetch 8\r
6550 ;@SET 6,(HL)\r
6551 opcode_CB_F6:\r
6552         opSETmemHL 6\r
6553 ;@SET 6,A\r
6554 opcode_CB_F7:\r
6555         orr z80a,z80a,#1<<30\r
6556         fetch 8\r
6557 \r
6558 ;@SET 7,B\r
6559 opcode_CB_F8:\r
6560         orr z80bc,z80bc,#1<<31\r
6561         fetch 8\r
6562 ;@SET 7,C\r
6563 opcode_CB_F9:\r
6564         orr z80bc,z80bc,#1<<23\r
6565         fetch 8\r
6566 ;@SET 7,D\r
6567 opcode_CB_FA:\r
6568         orr z80de,z80de,#1<<31\r
6569         fetch 8\r
6570 ;@SET 7,E\r
6571 opcode_CB_FB:\r
6572         orr z80de,z80de,#1<<23\r
6573         fetch 8\r
6574 ;@SET 7,H\r
6575 opcode_CB_FC:\r
6576         orr z80hl,z80hl,#1<<31\r
6577         fetch 8\r
6578 ;@SET 7,L\r
6579 opcode_CB_FD:\r
6580         orr z80hl,z80hl,#1<<23\r
6581         fetch 8\r
6582 ;@SET 7,(HL)\r
6583 opcode_CB_FE:\r
6584         opSETmemHL 7\r
6585 ;@SET 7,A\r
6586 opcode_CB_FF:\r
6587         orr z80a,z80a,#1<<31\r
6588         fetch 8\r
6589 \r
6590 \r
6591 \r
6592 ;@##################################\r
6593 ;@##################################\r
6594 ;@###  opcodes DD  #########################\r
6595 ;@##################################\r
6596 ;@##################################\r
6597 ;@Because the DD opcodes are not a complete range from 00-FF I have\r
6598 ;@created this sub routine that will catch any undocumented ops\r
6599 ;@halt the emulator and mov the current instruction to r0\r
6600 ;@at a later stage I may change to display a text message on the screen\r
6601 opcode_DD_NF:\r
6602         eatcycles 4\r
6603         ldr pc,[opcodes,r0, lsl #2]\r
6604 ;@      mov r2,#0x10*4\r
6605 ;@      cmp r2,z80xx\r
6606 ;@      bne opcode_FD_NF\r
6607 ;@      mov r0,#0xDD00\r
6608 ;@      orr r0,r0,r1\r
6609 ;@      b end_loop\r
6610 ;@opcode_FD_NF:\r
6611 ;@      mov r0,#0xFD00\r
6612 ;@      orr r0,r0,r1\r
6613 ;@      b end_loop\r
6614 \r
6615 opcode_DD_NF2:\r
6616         fetch 23\r
6617 ;@ notaz: we don't want to deadlock here\r
6618 ;@      mov r0,#0xDD0000\r
6619 ;@      orr r0,r0,#0xCB00\r
6620 ;@      orr r0,r0,r1\r
6621 ;@      b end_loop\r
6622 \r
6623 ;@ADD IX,BC\r
6624 opcode_DD_09:\r
6625         ldr r0,[z80xx]\r
6626         opADD16 r0 z80bc\r
6627         str r0,[z80xx]\r
6628         fetch 15\r
6629 ;@ADD IX,DE\r
6630 opcode_DD_19:\r
6631         ldr r0,[z80xx]\r
6632         opADD16 r0 z80de\r
6633         str r0,[z80xx]\r
6634         fetch 15\r
6635 ;@LD IX,NN\r
6636 opcode_DD_21:\r
6637         ldrb r0,[z80pc],#1\r
6638         ldrb r1,[z80pc],#1\r
6639         orr r0,r0,r1, lsl #8\r
6640         strh r0,[z80xx,#2]\r
6641         fetch 14\r
6642 ;@LD (NN),IX\r
6643 opcode_DD_22:\r
6644         ldrb r0,[z80pc],#1\r
6645         ldrb r1,[z80pc],#1\r
6646         orr r1,r0,r1, lsl #8\r
6647         ldrh r0,[z80xx,#2]\r
6648         writemem16\r
6649         fetch 20\r
6650 ;@INC IX\r
6651 opcode_DD_23:\r
6652         ldr r0,[z80xx]\r
6653         add r0,r0,#1<<16\r
6654         str r0,[z80xx]\r
6655         fetch 10\r
6656 ;@INC I  (IX)\r
6657 opcode_DD_24:\r
6658         ldr r0,[z80xx]\r
6659         opINC8H r0\r
6660         str r0,[z80xx]\r
6661         fetch 8\r
6662 ;@DEC I  (IX)\r
6663 opcode_DD_25:\r
6664         ldr r0,[z80xx]\r
6665         opDEC8H r0\r
6666         str r0,[z80xx]\r
6667         fetch 8\r
6668 ;@LD I,N  (IX)\r
6669 opcode_DD_26:\r
6670         ldrb r0,[z80pc],#1\r
6671         strb r0,[z80xx,#3]\r
6672         fetch 11\r
6673 ;@ADD IX,IX\r
6674 opcode_DD_29:\r
6675         ldr r0,[z80xx]\r
6676         opADD16_2 r0\r
6677         str r0,[z80xx]\r
6678         fetch 15\r
6679 ;@LD IX,(NN)\r
6680 opcode_DD_2A:\r
6681         ldrb r0,[z80pc],#1\r
6682         ldrb r1,[z80pc],#1\r
6683         orr r0,r0,r1, lsl #8\r
6684         stmfd sp!,{z80xx}\r
6685         readmem16\r
6686         ldmfd sp!,{z80xx}\r
6687         strh r0,[z80xx,#2]\r
6688         fetch 20\r
6689 ;@DEC IX\r
6690 opcode_DD_2B:\r
6691         ldr r0,[z80xx]\r
6692         sub r0,r0,#1<<16\r
6693         str r0,[z80xx]\r
6694         fetch 10\r
6695 ;@INC X  (IX)\r
6696 opcode_DD_2C:\r
6697         ldr r0,[z80xx]\r
6698         opINC8L r0\r
6699         str r0,[z80xx]\r
6700         fetch 8\r
6701 ;@DEC X  (IX)\r
6702 opcode_DD_2D:\r
6703         ldr r0,[z80xx]\r
6704         opDEC8L r0\r
6705         str r0,[z80xx]\r
6706         fetch 8\r
6707 ;@LD X,N  (IX)\r
6708 opcode_DD_2E:\r
6709         ldrb r0,[z80pc],#1\r
6710         strb r0,[z80xx,#2]\r
6711         fetch 11\r
6712 ;@INC (IX+N)\r
6713 opcode_DD_34:\r
6714         ldrsb r0,[z80pc],#1\r
6715         ldr r1,[z80xx]\r
6716         add r0,r0,r1, lsr #16\r
6717         stmfd sp!,{r0}  ;@ save addr\r
6718         readmem8\r
6719         opINC8b\r
6720         ldmfd sp!,{r1}  ;@ restore addr into r1\r
6721         writemem8\r
6722         fetch 23\r
6723 ;@DEC (IX+N)\r
6724 opcode_DD_35:\r
6725         ldrsb r0,[z80pc],#1\r
6726         ldr r1,[z80xx]\r
6727         add r0,r0,r1, lsr #16\r
6728         stmfd sp!,{r0}  ;@ save addr\r
6729         readmem8\r
6730         opDEC8b\r
6731         ldmfd sp!,{r1}  ;@ restore addr into r1\r
6732         writemem8\r
6733         fetch 23\r
6734 ;@LD (IX+N),N\r
6735 opcode_DD_36:\r
6736         ldrsb r2,[z80pc],#1\r
6737         ldrb r0,[z80pc],#1\r
6738         ldr r1,[z80xx]\r
6739         add r1,r2,r1, lsr #16\r
6740         writemem8\r
6741         fetch 19\r
6742 ;@ADD IX,SP\r
6743 opcode_DD_39:\r
6744         ldr r0,[z80xx]\r
6745 .if FAST_Z80SP\r
6746         ldr r2,[cpucontext,#z80sp_base]\r
6747         sub r2,z80sp,r2\r
6748         opADD16s r0 r2 16\r
6749 .else\r
6750         opADD16s r0 z80sp 16\r
6751 .endif\r
6752         str r0,[z80xx]\r
6753         fetch 15\r
6754 ;@LD B,I ( IX )\r
6755 opcode_DD_44:\r
6756         ldrb r0,[z80xx,#3]\r
6757         and z80bc,z80bc,#0xFF<<16\r
6758         orr z80bc,z80bc,r0, lsl #24\r
6759         fetch 8\r
6760 ;@LD B,X ( IX )\r
6761 opcode_DD_45:\r
6762         ldrb r0,[z80xx,#2]\r
6763         and z80bc,z80bc,#0xFF<<16\r
6764         orr z80bc,z80bc,r0, lsl #24\r
6765         fetch 8\r
6766 ;@LD B,(IX,N)\r
6767 opcode_DD_46:\r
6768         ldrsb r0,[z80pc],#1\r
6769         ldr r1,[z80xx]\r
6770         add r0,r0,r1, lsr #16\r
6771         readmem8\r
6772         and z80bc,z80bc,#0xFF<<16\r
6773         orr z80bc,z80bc,r0, lsl #24\r
6774         fetch 19\r
6775 ;@LD C,I  (IX)\r
6776 opcode_DD_4C:\r
6777         ldrb r0,[z80xx,#3]\r
6778         and z80bc,z80bc,#0xFF<<24\r
6779         orr z80bc,z80bc,r0, lsl #16\r
6780         fetch 8\r
6781 ;@LD C,X  (IX)\r
6782 opcode_DD_4D:\r
6783         ldrb r0,[z80xx,#2]\r
6784         and z80bc,z80bc,#0xFF<<24\r
6785         orr z80bc,z80bc,r0, lsl #16\r
6786         fetch 8\r
6787 ;@LD C,(IX,N)\r
6788 opcode_DD_4E:\r
6789         ldrsb r0,[z80pc],#1\r
6790         ldr r1,[z80xx]\r
6791         add r0,r0,r1, lsr #16\r
6792         readmem8\r
6793         and z80bc,z80bc,#0xFF<<24\r
6794         orr z80bc,z80bc,r0, lsl #16\r
6795         fetch 19\r
6796 \r
6797 ;@LD D,I  (IX)\r
6798 opcode_DD_54:\r
6799         ldrb r0,[z80xx,#3]\r
6800         and z80de,z80de,#0xFF<<16\r
6801         orr z80de,z80de,r0, lsl #24\r
6802         fetch 8\r
6803 ;@LD D,X  (IX)\r
6804 opcode_DD_55:\r
6805         ldrb r0,[z80xx,#2]\r
6806         and z80de,z80de,#0xFF<<16\r
6807         orr z80de,z80de,r0, lsl #24\r
6808         fetch 8\r
6809 ;@LD D,(IX,N)\r
6810 opcode_DD_56:\r
6811         ldrsb r0,[z80pc],#1\r
6812         ldr r1,[z80xx]\r
6813         add r0,r0,r1, lsr #16\r
6814         readmem8\r
6815         and z80de,z80de,#0xFF<<16\r
6816         orr z80de,z80de,r0, lsl #24\r
6817         fetch 19\r
6818 ;@LD E,I  (IX)\r
6819 opcode_DD_5C:\r
6820         ldrb r0,[z80xx,#3]\r
6821         and z80de,z80de,#0xFF<<24\r
6822         orr z80de,z80de,r0, lsl #16\r
6823         fetch 8\r
6824 ;@LD E,X  (IX)\r
6825 opcode_DD_5D:\r
6826         ldrb r0,[z80xx,#2]\r
6827         and z80de,z80de,#0xFF<<24\r
6828         orr z80de,z80de,r0, lsl #16\r
6829         fetch 8\r
6830 ;@LD E,(IX,N)\r
6831 opcode_DD_5E:\r
6832         ldrsb r0,[z80pc],#1\r
6833         ldr r1,[z80xx]\r
6834         add r0,r0,r1, lsr #16\r
6835         readmem8\r
6836         and z80de,z80de,#0xFF<<24\r
6837         orr z80de,z80de,r0, lsl #16\r
6838         fetch 19\r
6839 ;@LD I,B  (IX)\r
6840 opcode_DD_60:\r
6841         mov r0,z80bc,lsr#24\r
6842         strb r0,[z80xx,#3]\r
6843         fetch 8\r
6844 ;@LD I,C  (IX)\r
6845 opcode_DD_61:\r
6846         mov r0,z80bc,lsr#16\r
6847         strb r0,[z80xx,#3]\r
6848         fetch 8\r
6849 ;@LD I,D  (IX)\r
6850 opcode_DD_62:\r
6851         mov r0,z80de,lsr#24\r
6852         strb r0,[z80xx,#3]\r
6853         fetch 8\r
6854 ;@LD I,E  (IX)\r
6855 opcode_DD_63:\r
6856         mov r0,z80de,lsr#16\r
6857         strb r0,[z80xx,#3]\r
6858         fetch 8\r
6859 ;@LD I,I  (IX)\r
6860 opcode_DD_64:\r
6861         fetch 8\r
6862 ;@LD I,X  (IX)\r
6863 opcode_DD_65:\r
6864         ldrb r0,[z80xx,#2]\r
6865         strb r0,[z80xx,#3]\r
6866         fetch 8\r
6867 ;@LD H,(IX,N)\r
6868 opcode_DD_66:\r
6869         ldrsb r0,[z80pc],#1\r
6870         ldr r1,[z80xx]\r
6871         add r0,r0,r1, lsr #16\r
6872         readmem8\r
6873         and z80hl,z80hl,#0xFF<<16\r
6874         orr z80hl,z80hl,r0, lsl #24\r
6875         fetch 19\r
6876 ;@LD I,A  (IX)\r
6877 opcode_DD_67:\r
6878         mov r0,z80a,lsr#24\r
6879         strb r0,[z80xx,#3]\r
6880         fetch 8\r
6881 ;@LD X,B  (IX)\r
6882 opcode_DD_68:\r
6883         mov r0,z80bc,lsr#24\r
6884         strb r0,[z80xx,#2]\r
6885         fetch 8\r
6886 ;@LD X,C  (IX)\r
6887 opcode_DD_69:\r
6888         mov r0,z80bc,lsr#16\r
6889         strb r0,[z80xx,#2]\r
6890         fetch 8\r
6891 ;@LD X,D  (IX)\r
6892 opcode_DD_6A:\r
6893         mov r0,z80de,lsr#24\r
6894         strb r0,[z80xx,#2]\r
6895         fetch 8\r
6896 ;@LD X,E  (IX)\r
6897 opcode_DD_6B:\r
6898         mov r0,z80de,lsr#16\r
6899         strb r0,[z80xx,#2]\r
6900         fetch 8\r
6901 ;@LD X,I  (IX)\r
6902 opcode_DD_6C:\r
6903         ldrb r0,[z80xx,#3]\r
6904         strb r0,[z80xx,#2]\r
6905         fetch 8\r
6906 ;@LD X,X  (IX)\r
6907 opcode_DD_6D:\r
6908         fetch 8\r
6909 ;@LD L,(IX,N)\r
6910 opcode_DD_6E:\r
6911         ldrsb r0,[z80pc],#1\r
6912         ldr r1,[z80xx]\r
6913         add r0,r0,r1, lsr #16\r
6914         readmem8\r
6915         and z80hl,z80hl,#0xFF<<24\r
6916         orr z80hl,z80hl,r0, lsl #16\r
6917         fetch 19\r
6918 ;@LD X,A  (IX)\r
6919 opcode_DD_6F:\r
6920         mov r0,z80a,lsr#24\r
6921         strb r0,[z80xx,#2]\r
6922         fetch 8\r
6923 \r
6924 ;@LD (IX,N),B\r
6925 opcode_DD_70:\r
6926         ldrsb r0,[z80pc],#1\r
6927         ldr r1,[z80xx]\r
6928         add r1,r0,r1, lsr #16\r
6929         mov r0,z80bc, lsr #24\r
6930         writemem8\r
6931         fetch 19\r
6932 ;@LD (IX,N),C\r
6933 opcode_DD_71:\r
6934         ldrsb r0,[z80pc],#1\r
6935         ldr r1,[z80xx]\r
6936         add r1,r0,r1, lsr #16\r
6937         mov r0,z80bc, lsr #16\r
6938         and r0,r0,#0xFF\r
6939         writemem8\r
6940         fetch 19\r
6941 ;@LD (IX,N),D\r
6942 opcode_DD_72:\r
6943         ldrsb r0,[z80pc],#1\r
6944         ldr r1,[z80xx]\r
6945         add r1,r0,r1, lsr #16\r
6946         mov r0,z80de, lsr #24\r
6947         writemem8\r
6948         fetch 19\r
6949 ;@LD (IX,N),E\r
6950 opcode_DD_73:\r
6951         ldrsb r0,[z80pc],#1\r
6952         ldr r1,[z80xx]\r
6953         add r1,r0,r1, lsr #16\r
6954         mov r0,z80de, lsr #16\r
6955         and r0,r0,#0xFF\r
6956         writemem8\r
6957         fetch 19\r
6958 ;@LD (IX,N),H\r
6959 opcode_DD_74:\r
6960         ldrsb r0,[z80pc],#1\r
6961         ldr r1,[z80xx]\r
6962         add r1,r0,r1, lsr #16\r
6963         mov r0,z80hl, lsr #24\r
6964         writemem8\r
6965         fetch 19\r
6966 ;@LD (IX,N),L\r
6967 opcode_DD_75:\r
6968         ldrsb r0,[z80pc],#1\r
6969         ldr r1,[z80xx]\r
6970         add r1,r0,r1, lsr #16\r
6971         mov r0,z80hl, lsr #16\r
6972         and r0,r0,#0xFF\r
6973         writemem8\r
6974         fetch 19\r
6975 ;@LD (IX,N),A\r
6976 opcode_DD_77:\r
6977         ldrsb r0,[z80pc],#1\r
6978         ldr r1,[z80xx]\r
6979         add r1,r0,r1, lsr #16\r
6980         mov r0,z80a, lsr #24\r
6981         writemem8\r
6982         fetch 19\r
6983 \r
6984 ;@LD A,I  from (IX)\r
6985 opcode_DD_7C:\r
6986         ldrb r0,[z80xx,#3]\r
6987         mov z80a,r0, lsl #24\r
6988         fetch 8\r
6989 ;@LD A,X  from (IX)\r
6990 opcode_DD_7D:\r
6991         ldrb r0,[z80xx,#2]\r
6992         mov z80a,r0, lsl #24\r
6993         fetch 8\r
6994 ;@LD A,(IX,N)\r
6995 opcode_DD_7E:\r
6996         ldrsb r0,[z80pc],#1\r
6997         ldr r1,[z80xx]\r
6998         add r0,r0,r1, lsr #16\r
6999         readmem8\r
7000         mov z80a,r0, lsl #24\r
7001         fetch 19\r
7002 \r
7003 ;@ADD A,I  ( IX)\r
7004 opcode_DD_84:\r
7005         ldrb r0,[z80xx,#3]\r
7006         opADDb\r
7007         fetch 8\r
7008 ;@ADD A,X  ( IX)\r
7009 opcode_DD_85:\r
7010         ldrb r0,[z80xx,#2]\r
7011         opADDb\r
7012         fetch 8\r
7013 ;@ADD A,(IX+N)\r
7014 opcode_DD_86:\r
7015         ldrsb r0,[z80pc],#1\r
7016         ldr r1,[z80xx]\r
7017         add r0,r0,r1, lsr #16\r
7018         readmem8\r
7019         opADDb\r
7020         fetch 19\r
7021 \r
7022 ;@ADC A,I  (IX)\r
7023 opcode_DD_8C:\r
7024         ldrb r0,[z80xx,#3]\r
7025         opADCb\r
7026         fetch 8\r
7027 ;@ADC A,X  (IX)\r
7028 opcode_DD_8D:\r
7029         ldrb r0,[z80xx,#2]\r
7030         opADCb\r
7031         fetch 8\r
7032 ;@ADC A,(IX+N)\r
7033 opcode_DD_8E:\r
7034         ldrsb r0,[z80pc],#1\r
7035         ldr r1,[z80xx]\r
7036         add r0,r0,r1, lsr #16\r
7037         readmem8\r
7038         opADCb\r
7039         fetch 19\r
7040 \r
7041 ;@SUB A,I  (IX)\r
7042 opcode_DD_94:\r
7043         ldrb r0,[z80xx,#3]\r
7044         opSUBb\r
7045         fetch 8\r
7046 ;@SUB A,X  (IX)\r
7047 opcode_DD_95:\r
7048         ldrb r0,[z80xx,#2]\r
7049         opSUBb\r
7050         fetch 8\r
7051 ;@SUB A,(IX+N)\r
7052 opcode_DD_96:\r
7053         ldrsb r0,[z80pc],#1\r
7054         ldr r1,[z80xx]\r
7055         add r0,r0,r1, lsr #16\r
7056         readmem8\r
7057         opSUBb\r
7058         fetch 19\r
7059 \r
7060 ;@SBC A,I  (IX)\r
7061 opcode_DD_9C:\r
7062         ldrb r0,[z80xx,#3]\r
7063         opSBCb\r
7064         fetch 8\r
7065 ;@SBC A,X  (IX)\r
7066 opcode_DD_9D:\r
7067         ldrb r0,[z80xx,#2]\r
7068         opSBCb\r
7069         fetch 8\r
7070 ;@SBC A,(IX+N)\r
7071 opcode_DD_9E:\r
7072         ldrsb r0,[z80pc],#1\r
7073         ldr r1,[z80xx]\r
7074         add r0,r0,r1, lsr #16\r
7075         readmem8\r
7076         opSBCb\r
7077         fetch 19\r
7078 \r
7079 ;@AND I  (IX)\r
7080 opcode_DD_A4:\r
7081         ldrb r0,[z80xx,#3]\r
7082         opANDb\r
7083         fetch 8\r
7084 ;@AND X  (IX)\r
7085 opcode_DD_A5:\r
7086         ldrb r0,[z80xx,#2]\r
7087         opANDb\r
7088         fetch 8\r
7089 ;@AND (IX+N)\r
7090 opcode_DD_A6:\r
7091         ldrsb r0,[z80pc],#1\r
7092         ldr r1,[z80xx]\r
7093         add r0,r0,r1, lsr #16\r
7094         readmem8\r
7095         opANDb\r
7096         fetch 19\r
7097 \r
7098 ;@XOR I  (IX)\r
7099 opcode_DD_AC:\r
7100         ldrb r0,[z80xx,#3]\r
7101         opXORb\r
7102         fetch 8\r
7103 ;@XOR X  (IX)\r
7104 opcode_DD_AD:\r
7105         ldrb r0,[z80xx,#2]\r
7106         opXORb\r
7107         fetch 8\r
7108 ;@XOR (IX+N)\r
7109 opcode_DD_AE:\r
7110         ldrsb r0,[z80pc],#1\r
7111         ldr r1,[z80xx]\r
7112         add r0,r0,r1, lsr #16\r
7113         readmem8\r
7114         opXORb\r
7115         fetch 19\r
7116 \r
7117 ;@OR I  (IX)\r
7118 opcode_DD_B4:\r
7119         ldrb r0,[z80xx,#3]\r
7120         opORb\r
7121         fetch 8\r
7122 ;@OR X  (IX)\r
7123 opcode_DD_B5:\r
7124         ldrb r0,[z80xx,#2]\r
7125         opORb\r
7126         fetch 8\r
7127 ;@OR (IX+N)\r
7128 opcode_DD_B6:\r
7129         ldrsb r0,[z80pc],#1\r
7130         ldr r1,[z80xx]\r
7131         add r0,r0,r1, lsr #16\r
7132         readmem8\r
7133         opORb\r
7134         fetch 19\r
7135 \r
7136 ;@CP I  (IX)\r
7137 opcode_DD_BC:\r
7138         ldrb r0,[z80xx,#3]\r
7139         opCPb\r
7140         fetch 8\r
7141 ;@CP X  (IX)\r
7142 opcode_DD_BD:\r
7143         ldrb r0,[z80xx,#2]\r
7144         opCPb\r
7145         fetch 8\r
7146 ;@CP (IX+N)\r
7147 opcode_DD_BE:\r
7148         ldrsb r0,[z80pc],#1\r
7149         ldr r1,[z80xx]\r
7150         add r0,r0,r1, lsr #16\r
7151         readmem8\r
7152         opCPb\r
7153         fetch 19\r
7154 \r
7155 \r
7156 opcodes_DD_CB_LOCAL: .word opcodes_DD_CB\r
7157 opcode_DD_CB:\r
7158 ;@Looks up the opcode on the opcodes_DD_CB table and then \r
7159 ;@moves the PC to the location of the subroutine\r
7160         ldrsb r0,[z80pc],#1\r
7161         ldr r1,[z80xx]\r
7162         add r0,r0,r1, lsr #16\r
7163 \r
7164         ldrb r1,[z80pc],#1\r
7165         ldr pc,[pc,r1, lsl #2]\r
7166                 .word 0x00\r
7167 opcodes_DD_CB:\r
7168                 .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
7169                 .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
7170                 .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
7171                 .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
7172                 .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
7173                 .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
7174                 .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
7175                 .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
7176                 .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
7177                 .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
7178                 .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
7179                 .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
7180                 .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
7181                 .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
7182                 .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
7183                 .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
7184                 .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
7185                 .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
7186                 .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
7187                 .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
7188                 .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
7189                 .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
7190                 .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
7191                 .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
7192                 .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
7193                 .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
7194                 .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
7195                 .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
7196                 .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
7197                 .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
7198                 .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
7199                 .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
7200 \r
7201 ;@RLC (IX+N) \r
7202 opcode_DD_CB_06:\r
7203         stmfd sp!,{r0}          ;@ save addr\r
7204         readmem8\r
7205         opRLCb\r
7206         ldmfd sp!,{r1}          ;@ restore addr into r1\r
7207         writemem8\r
7208         fetch 23\r
7209 ;@RRC (IX+N) \r
7210 opcode_DD_CB_0E:\r
7211         stmfd sp!,{r0}          ;@ save addr\r
7212         readmem8\r
7213         opRRCb\r
7214         ldmfd sp!,{r1}          ;@ restore addr into r1\r
7215         writemem8\r
7216         fetch 23\r
7217 ;@RL (IX+N) \r
7218 opcode_DD_CB_16:\r
7219         stmfd sp!,{r0}          ;@ save addr\r
7220         readmem8\r
7221         opRLb\r
7222         ldmfd sp!,{r1}          ;@ restore addr into r1\r
7223         writemem8\r
7224         fetch 23\r
7225 ;@RR (IX+N) \r
7226 opcode_DD_CB_1E:\r
7227         stmfd sp!,{r0}          ;@ save addr \r
7228         readmem8\r
7229         opRRb\r
7230         ldmfd sp!,{r1}          ;@ restore addr into r1\r
7231         writemem8\r
7232         fetch 23\r
7233 \r
7234 ;@SLA (IX+N) \r
7235 opcode_DD_CB_26:\r
7236         stmfd sp!,{r0}          ;@ save addr \r
7237         readmem8\r
7238         opSLAb\r
7239         ldmfd sp!,{r1}          ;@ restore addr into r1\r
7240         writemem8\r
7241         fetch 23\r
7242 ;@SRA (IX+N) \r
7243 opcode_DD_CB_2E:\r
7244         stmfd sp!,{r0}          ;@ save addr \r
7245         readmem8\r
7246         opSRAb\r
7247         ldmfd sp!,{r1}          ;@ restore addr into r1\r
7248         writemem8\r
7249         fetch 23\r
7250 ;@SLL (IX+N) \r
7251 opcode_DD_CB_36:\r
7252         stmfd sp!,{r0}          ;@ save addr \r
7253         readmem8\r
7254         opSLLb\r
7255         ldmfd sp!,{r1}          ;@ restore addr into r1\r
7256         writemem8\r
7257         fetch 23\r
7258 ;@SRL (IX+N)\r
7259 opcode_DD_CB_3E:\r
7260         stmfd sp!,{r0}          ;@ save addr \r
7261         readmem8\r
7262         opSRLb\r
7263         ldmfd sp!,{r1}          ;@ restore addr into r1\r
7264         writemem8\r
7265         fetch 23\r
7266 \r
7267 ;@BIT 0,(IX+N) \r
7268 opcode_DD_CB_46:\r
7269         readmem8\r
7270         opBITb 0\r
7271         fetch 20\r
7272 ;@BIT 1,(IX+N) \r
7273 opcode_DD_CB_4E:\r
7274         readmem8\r
7275         opBITb 1\r
7276         fetch 20\r
7277 ;@BIT 2,(IX+N) \r
7278 opcode_DD_CB_56:\r
7279         readmem8\r
7280         opBITb 2\r
7281         fetch 20\r
7282 ;@BIT 3,(IX+N) \r
7283 opcode_DD_CB_5E:\r
7284         readmem8\r
7285         opBITb 3\r
7286         fetch 20\r
7287 ;@BIT 4,(IX+N) \r
7288 opcode_DD_CB_66:\r
7289         readmem8\r
7290         opBITb 4\r
7291         fetch 20\r
7292 ;@BIT 5,(IX+N) \r
7293 opcode_DD_CB_6E:\r
7294         readmem8\r
7295         opBITb 5\r
7296         fetch 20\r
7297 ;@BIT 6,(IX+N) \r
7298 opcode_DD_CB_76:\r
7299         readmem8\r
7300         opBITb 6\r
7301         fetch 20\r
7302 ;@BIT 7,(IX+N) \r
7303 opcode_DD_CB_7E:\r
7304         readmem8\r
7305         opBIT7b\r
7306         fetch 20\r
7307 ;@RES 0,(IX+N) \r
7308 opcode_DD_CB_86:\r
7309         opRESmem 0\r
7310 ;@RES 1,(IX+N) \r
7311 opcode_DD_CB_8E:\r
7312         opRESmem 1\r
7313 ;@RES 2,(IX+N) \r
7314 opcode_DD_CB_96:\r
7315         opRESmem 2\r
7316 ;@RES 3,(IX+N) \r
7317 opcode_DD_CB_9E:\r
7318         opRESmem 3\r
7319 ;@RES 4,(IX+N) \r
7320 opcode_DD_CB_A6:\r
7321         opRESmem 4\r
7322 ;@RES 5,(IX+N) \r
7323 opcode_DD_CB_AE:\r
7324         opRESmem 5\r
7325 ;@RES 6,(IX+N) \r
7326 opcode_DD_CB_B6:\r
7327         opRESmem 6\r
7328 ;@RES 7,(IX+N) \r
7329 opcode_DD_CB_BE:\r
7330         opRESmem 7\r
7331 \r
7332 ;@SET 0,(IX+N) \r
7333 opcode_DD_CB_C6:\r
7334         opSETmem 0\r
7335 ;@SET 1,(IX+N) \r
7336 opcode_DD_CB_CE:\r
7337         opSETmem 1\r
7338 ;@SET 2,(IX+N) \r
7339 opcode_DD_CB_D6:\r
7340         opSETmem 2\r
7341 ;@SET 3,(IX+N) \r
7342 opcode_DD_CB_DE:\r
7343         opSETmem 3\r
7344 ;@SET 4,(IX+N) \r
7345 opcode_DD_CB_E6:\r
7346         opSETmem 4\r
7347 ;@SET 5,(IX+N) \r
7348 opcode_DD_CB_EE:\r
7349         opSETmem 5\r
7350 ;@SET 6,(IX+N) \r
7351 opcode_DD_CB_F6:\r
7352         opSETmem 6\r
7353 ;@SET 7,(IX+N) \r
7354 opcode_DD_CB_FE:\r
7355         opSETmem 7\r
7356 \r
7357 \r
7358 \r
7359 ;@POP IX\r
7360 opcode_DD_E1:\r
7361 .if FAST_Z80SP\r
7362         opPOP\r
7363 .else\r
7364         mov r0,z80sp\r
7365         stmfd sp!,{z80xx}\r
7366         readmem16\r
7367         ldmfd sp!,{z80xx}\r
7368         add z80sp,z80sp,#2\r
7369 .endif\r
7370         strh r0,[z80xx,#2]\r
7371         fetch 14\r
7372 ;@EX (SP),IX\r
7373 opcode_DD_E3:\r
7374 .if FAST_Z80SP\r
7375         ldrb r0,[z80sp]\r
7376         ldrb r1,[z80sp,#1]\r
7377         orr r2,r0,r1, lsl #8\r
7378         ldrh r1,[z80xx,#2]\r
7379         mov r0,r1, lsr #8\r
7380         strb r0,[z80sp,#1]\r
7381         strb r1,[z80sp]\r
7382         strh r2,[z80xx,#2]\r
7383 .else\r
7384         mov r0,z80sp\r
7385         stmfd sp!,{z80xx}\r
7386         readmem16\r
7387         ldmfd sp!,{z80xx}\r
7388         mov r2,r0\r
7389         ldrh r0,[z80xx,#2]\r
7390         strh r2,[z80xx,#2]\r
7391         mov r1,z80sp\r
7392         writemem16\r
7393 .endif\r
7394         fetch 23\r
7395 ;@PUSH IX\r
7396 opcode_DD_E5:\r
7397         ldr r2,[z80xx]\r
7398         opPUSHreg r2\r
7399         fetch 15\r
7400 ;@JP (IX)\r
7401 opcode_DD_E9:\r
7402         ldrh r0,[z80xx,#2]\r
7403         rebasepc\r
7404         fetch 8\r
7405 ;@LD SP,IX\r
7406 opcode_DD_F9:\r
7407 .if FAST_Z80SP\r
7408         ldrh r0,[z80xx,#2]\r
7409         rebasesp\r
7410         mov z80sp,r0\r
7411 .else\r
7412         ldrh z80sp,[z80xx,#2]\r
7413 .endif\r
7414         fetch 10\r
7415 \r
7416 ;@##################################\r
7417 ;@##################################\r
7418 ;@###  opcodes ED  #########################\r
7419 ;@##################################\r
7420 ;@##################################\r
7421 \r
7422 opcode_ED_NF:\r
7423         fetch 8\r
7424 ;@      ldrb r0,[z80pc],#1\r
7425 ;@      ldr pc,[opcodes,r0, lsl #2]\r
7426 ;@      mov r0,#0xED00\r
7427 ;@      orr r0,r0,r1\r
7428 ;@      b end_loop\r
7429 \r
7430 ;@IN B,(C)\r
7431 opcode_ED_40:\r
7432         opIN_C\r
7433         and z80bc,z80bc,#0xFF<<16\r
7434         orr z80bc,z80bc,r0, lsl #24\r
7435         sub r1,opcodes,#0x100\r
7436         ldrb r0,[r1,r0]\r
7437         and z80f,z80f,#1<<CFlag\r
7438         orr z80f,z80f,r0\r
7439         fetch 12\r
7440 ;@OUT (C),B\r
7441 opcode_ED_41:\r
7442         mov r1,z80bc, lsr #24\r
7443         opOUT_C\r
7444         fetch 12\r
7445 \r
7446 ;@SBC HL,BC\r
7447 opcode_ED_42:\r
7448         opSBC16 z80bc\r
7449 \r
7450 ;@LD (NN),BC\r
7451 opcode_ED_43:\r
7452         ldrb r0,[z80pc],#1\r
7453         ldrb r1,[z80pc],#1\r
7454         orr r1,r0,r1, lsl #8\r
7455         mov r0,z80bc, lsr #16\r
7456         writemem16\r
7457         fetch 20\r
7458 ;@NEG\r
7459 opcode_ED_44:\r
7460         rsbs z80a,z80a,#0\r
7461         mrs z80f,cpsr\r
7462         mov z80f,z80f,lsr#28                                    ;@S,Z,V&C\r
7463         eor z80f,z80f,#(1<<CFlag)|(1<<NFlag)    ;@invert C and set n.\r
7464         tst z80a,#0x0F000000                                    ;@H, correct\r
7465         orrne z80f,z80f,#1<<HFlag\r
7466         fetch 8\r
7467  \r
7468 ;@RETN, moved to ED_4D\r
7469 ;@opcode_ED_45:\r
7470 \r
7471 ;@IM 0\r
7472 opcode_ED_46:\r
7473         strb z80a,[cpucontext,#z80im]\r
7474         fetch 8\r
7475 ;@LD I,A\r
7476 opcode_ED_47:\r
7477         str z80a,[cpucontext,#z80i]\r
7478         fetch 9\r
7479 ;@IN C,(C)\r
7480 opcode_ED_48:\r
7481         opIN_C\r
7482         and z80bc,z80bc,#0xFF<<24\r
7483         orr z80bc,z80bc,r0, lsl #16\r
7484         sub r1,opcodes,#0x100\r
7485         ldrb r0,[r1,r0]\r
7486         and z80f,z80f,#1<<CFlag\r
7487         orr z80f,z80f,r0\r
7488         fetch 12\r
7489 ;@OUT (C),C\r
7490 opcode_ED_49:\r
7491         mov r0,z80bc, lsr #16\r
7492         and r1,r0,#0xFF\r
7493         opOUT\r
7494         fetch 12\r
7495 ;@ADC HL,BC\r
7496 opcode_ED_4A:\r
7497         opADC16 z80bc\r
7498 ;@LD BC,(NN)\r
7499 opcode_ED_4B:\r
7500         ldrb r0,[z80pc],#1\r
7501         ldrb r1,[z80pc],#1\r
7502         orr r0,r0,r1, lsl #8\r
7503         readmem16\r
7504         mov z80bc,r0, lsl #16\r
7505         fetch 20\r
7506 \r
7507 ;@RETN\r
7508 opcode_ED_45:\r
7509 ;@RETI\r
7510 opcode_ED_4D:\r
7511         ldrb r0,[cpucontext,#z80if]\r
7512         tst r0,#Z80_IF2\r
7513         orrne r0,r0,#Z80_IF1\r
7514         biceq r0,r0,#Z80_IF1\r
7515         strb r0,[cpucontext,#z80if]\r
7516     opPOP\r
7517         rebasepc\r
7518         fetch 14\r
7519 \r
7520 ;@LD R,A\r
7521 opcode_ED_4F:\r
7522         mov r0,z80a,lsr#24\r
7523         strb r0,[cpucontext,#z80r]\r
7524         fetch 9\r
7525 \r
7526 ;@IN D,(C)\r
7527 opcode_ED_50:\r
7528         opIN_C\r
7529         and z80de,z80de,#0xFF<<16\r
7530         orr z80de,z80de,r0, lsl #24\r
7531         sub r1,opcodes,#0x100\r
7532         ldrb r0,[r1,r0]\r
7533         and z80f,z80f,#1<<CFlag\r
7534         orr z80f,z80f,r0\r
7535         fetch 12\r
7536 ;@OUT (C),D\r
7537 opcode_ED_51:\r
7538         mov r1,z80de, lsr #24\r
7539         opOUT_C\r
7540         fetch 12\r
7541 ;@SBC HL,DE\r
7542 opcode_ED_52:\r
7543         opSBC16 z80de\r
7544 ;@LD (NN),DE\r
7545 opcode_ED_53:\r
7546         ldrb r0,[z80pc],#1\r
7547         ldrb r1,[z80pc],#1\r
7548         orr r1,r0,r1, lsl #8\r
7549         mov r0,z80de, lsr #16\r
7550         writemem16\r
7551         fetch 20\r
7552 ;@IM 1\r
7553 opcode_ED_56:\r
7554         mov r0,#1\r
7555         strb r0,[cpucontext,#z80im]\r
7556         fetch 8\r
7557 ;@LD A,I\r
7558 opcode_ED_57:\r
7559         ldr z80a,[cpucontext,#z80i]\r
7560         tst z80a,#0xFF000000\r
7561         and z80f,z80f,#(1<<CFlag)\r
7562         orreq z80f,z80f,#(1<<ZFlag)\r
7563         orrmi z80f,z80f,#(1<<SFlag)\r
7564         ldrb r0,[cpucontext,#z80if]\r
7565         tst r0,#Z80_IF2\r
7566         orrne z80f,z80f,#(1<<VFlag)\r
7567         fetch 9\r
7568 ;@IN E,(C)\r
7569 opcode_ED_58:\r
7570         opIN_C\r
7571         and z80de,z80de,#0xFF<<24\r
7572         orr z80de,z80de,r0, lsl #16\r
7573         sub r1,opcodes,#0x100\r
7574         ldrb r0,[r1,r0]\r
7575         and z80f,z80f,#1<<CFlag\r
7576         orr z80f,z80f,r0\r
7577         fetch 12\r
7578 ;@OUT (C),E\r
7579 opcode_ED_59:\r
7580         mov r1,z80de, lsr #16\r
7581         and r1,r1,#0xFF\r
7582         opOUT_C\r
7583         fetch 12\r
7584 ;@ADC HL,DE\r
7585 opcode_ED_5A:\r
7586         opADC16 z80de\r
7587 ;@LD DE,(NN)\r
7588 opcode_ED_5B:\r
7589         ldrb r0,[z80pc],#1\r
7590         ldrb r1,[z80pc],#1\r
7591         orr r0,r0,r1, lsl #8\r
7592         readmem16\r
7593         mov z80de,r0, lsl #16\r
7594         fetch 20\r
7595 ;@IM 2\r
7596 opcode_ED_5E:\r
7597         mov r0,#2\r
7598         strb r0,[cpucontext,#z80im]\r
7599         fetch 8\r
7600 ;@LD A,R\r
7601 opcode_ED_5F:\r
7602         ldrb r0,[cpucontext,#z80r]\r
7603         and r0,r0,#0x80\r
7604         rsb r1,z80_icount,#0\r
7605         and r1,r1,#0x7F\r
7606         orr r0,r0,r1\r
7607         movs z80a,r0, lsl #24\r
7608         and z80f,z80f,#1<<CFlag\r
7609         orrmi z80f,z80f,#(1<<SFlag)\r
7610         orreq z80f,z80f,#(1<<ZFlag)\r
7611         ldrb r0,[cpucontext,#z80if]\r
7612         tst r0,#Z80_IF2\r
7613         orrne z80f,z80f,#(1<<VFlag)\r
7614         fetch 9\r
7615 ;@IN H,(C)\r
7616 opcode_ED_60:\r
7617         opIN_C\r
7618         and z80hl,z80hl,#0xFF<<16\r
7619         orr z80hl,z80hl,r0, lsl #24\r
7620         sub r1,opcodes,#0x100\r
7621         ldrb r0,[r1,r0]\r
7622         and z80f,z80f,#1<<CFlag\r
7623         orr z80f,z80f,r0\r
7624         fetch 12\r
7625 ;@OUT (C),H\r
7626 opcode_ED_61:\r
7627         mov r1,z80hl, lsr #24\r
7628         opOUT_C\r
7629         fetch 12\r
7630 ;@SBC HL,HL\r
7631 opcode_ED_62:\r
7632         opSBC16HL\r
7633 ;@RRD\r
7634 opcode_ED_67:\r
7635         readmem8HL\r
7636         mov r1,r0,ror#4\r
7637         orr r0,r1,z80a,lsr#20\r
7638         bic z80a,z80a,#0x0F000000\r
7639         orr z80a,z80a,r1,lsr#4\r
7640         writemem8HL\r
7641         sub r1,opcodes,#0x100\r
7642         ldrb r0,[r1,z80a, lsr #24]\r
7643         and z80f,z80f,#1<<CFlag\r
7644         orr z80f,z80f,r0\r
7645         fetch 18\r
7646 ;@IN L,(C)\r
7647 opcode_ED_68:\r
7648         opIN_C\r
7649         and z80hl,z80hl,#0xFF<<24\r
7650         orr z80hl,z80hl,r0, lsl #16\r
7651         and z80f,z80f,#1<<CFlag\r
7652         sub r1,opcodes,#0x100\r
7653         ldrb r0,[r1,r0]\r
7654         orr z80f,z80f,r0\r
7655         fetch 12\r
7656 ;@OUT (C),L\r
7657 opcode_ED_69:\r
7658         mov r1,z80hl, lsr #16\r
7659         and r1,r1,#0xFF\r
7660         opOUT_C\r
7661         fetch 12\r
7662 ;@ADC HL,HL\r
7663 opcode_ED_6A:\r
7664         opADC16HL\r
7665 ;@RLD\r
7666 opcode_ED_6F:\r
7667         readmem8HL\r
7668         orr r0,r0,z80a,lsl#4\r
7669         mov r0,r0,ror#28\r
7670         and z80a,z80a,#0xF0000000\r
7671         orr z80a,z80a,r0,lsl#16\r
7672         and z80a,z80a,#0xFF000000\r
7673         writemem8HL\r
7674         sub r1,opcodes,#0x100\r
7675         ldrb r0,[r1,z80a, lsr #24]\r
7676         and z80f,z80f,#1<<CFlag\r
7677         orr z80f,z80f,r0\r
7678         fetch 18\r
7679 ;@IN F,(C)\r
7680 opcode_ED_70:\r
7681         opIN_C\r
7682         and z80f,z80f,#1<<CFlag\r
7683         sub r1,opcodes,#0x100\r
7684         ldrb r0,[r1,r0]\r
7685         orr z80f,z80f,r0\r
7686         fetch 12\r
7687 ;@OUT (C),0\r
7688 opcode_ED_71:\r
7689         mov r1,#0\r
7690         opOUT_C\r
7691         fetch 12\r
7692 \r
7693 ;@SBC HL,SP\r
7694 opcode_ED_72:\r
7695 .if FAST_Z80SP\r
7696         ldr r0,[cpucontext,#z80sp_base]\r
7697         sub r0,z80sp,r0\r
7698         mov r0, r0, lsl #16\r
7699 .else\r
7700         mov r0,z80sp,lsl#16\r
7701 .endif\r
7702         opSBC16 r0\r
7703 ;@LD (NN),SP\r
7704 opcode_ED_73:\r
7705         ldrb r0,[z80pc],#1\r
7706         ldrb r1,[z80pc],#1\r
7707         orr r1,r0,r1, lsl #8\r
7708 .if FAST_Z80SP\r
7709         ldr r0,[cpucontext,#z80sp_base]\r
7710         sub r0,z80sp,r0\r
7711 .else\r
7712         mov r0,z80sp\r
7713 .endif\r
7714         writemem16\r
7715         fetch 16\r
7716 ;@IN A,(C)\r
7717 opcode_ED_78:\r
7718         opIN_C\r
7719         mov z80a,r0, lsl #24\r
7720         and z80f,z80f,#1<<CFlag\r
7721         sub r1,opcodes,#0x100\r
7722         ldrb r0,[r1,r0]\r
7723         orr z80f,z80f,r0\r
7724         fetch 12\r
7725 ;@OUT (C),A\r
7726 opcode_ED_79:\r
7727         mov r1,z80a, lsr #24\r
7728         opOUT_C\r
7729         fetch 12\r
7730 ;@ADC HL,SP\r
7731 opcode_ED_7A:\r
7732 .if FAST_Z80SP\r
7733         ldr r0,[cpucontext,#z80sp_base]\r
7734         sub r0,z80sp,r0\r
7735         mov r0, r0, lsl #16\r
7736 .else\r
7737         mov r0,z80sp,lsl#16\r
7738 .endif\r
7739         opADC16 r0\r
7740 ;@LD SP,(NN)\r
7741 opcode_ED_7B:\r
7742         ldrb r0,[z80pc],#1\r
7743         ldrb r1,[z80pc],#1\r
7744         orr r0,r0,r1, lsl #8\r
7745         readmem16\r
7746 .if FAST_Z80SP\r
7747         rebasesp\r
7748 .endif\r
7749         mov z80sp,r0\r
7750         fetch 20\r
7751 ;@LDI\r
7752 opcode_ED_A0:\r
7753         copymem8HL_DE\r
7754         add z80hl,z80hl,#1<<16\r
7755         add z80de,z80de,#1<<16\r
7756         subs z80bc,z80bc,#1<<16\r
7757         bic z80f,z80f,#(1<<VFlag)|(1<<NFlag)|(1<<HFlag)\r
7758         orrne z80f,z80f,#1<<VFlag\r
7759         fetch 16\r
7760 ;@CPI\r
7761 opcode_ED_A1:\r
7762         readmem8HL\r
7763         add z80hl,z80hl,#0x00010000\r
7764         mov r1,z80a,lsl#4\r
7765         cmp z80a,r0,lsl#24\r
7766         and z80f,z80f,#1<<CFlag\r
7767         orr z80f,z80f,#1<<NFlag\r
7768         orrmi z80f,z80f,#1<<SFlag\r
7769         orreq z80f,z80f,#1<<ZFlag\r
7770         cmp r1,r0,lsl#28\r
7771         orrcc z80f,z80f,#1<<HFlag\r
7772         subs z80bc,z80bc,#0x00010000\r
7773         orrne z80f,z80f,#1<<VFlag\r
7774         fetch 16\r
7775 ;@INI\r
7776 opcode_ED_A2:\r
7777         opIN_C\r
7778         and z80f,r0,#0x80\r
7779         mov z80f,z80f,lsr#2                                             ;@NFlag set by bit 7\r
7780 ;@      mov r1,z80bc,lsl#8\r
7781 ;@      add r1,r1,#0x01000000\r
7782 ;@      adds r1,r1,r0,lsl#24\r
7783 ;@      orrcs z80f,z80f,#(1<<CFlag)|(1<<HFlag)  ;@ CF & HF set if (HL) + ((C+1) & 0xFF) > 0xFF\r
7784         writemem8HL\r
7785         add z80hl,z80hl,#1<<16\r
7786         sub z80bc,z80bc,#1<<24\r
7787         tst z80bc,#0xFF<<24\r
7788         orrmi z80f,z80f,#1<<SFlag\r
7789         orreq z80f,z80f,#1<<ZFlag\r
7790         fetch 16\r
7791 \r
7792 ;@OUTI\r
7793 opcode_ED_A3:\r
7794         readmem8HL\r
7795         add z80hl,z80hl,#1<<16\r
7796         and z80f,r0,#0x80\r
7797         mov z80f,z80f,lsr#2                                             ;@NFlag set by bit 7\r
7798         mov r1,z80hl,lsl#8\r
7799         adds r1,r1,r0,lsl#24\r
7800         orrcs z80f,z80f,#(1<<CFlag)|(1<<HFlag)  ;@ CF & HF set if (HL)+L > 0xFF\r
7801         sub z80bc,z80bc,#1<<24\r
7802         tst z80bc,#0xFF<<24\r
7803         orrmi z80f,z80f,#1<<SFlag\r
7804         orreq z80f,z80f,#1<<ZFlag\r
7805         mov r1,r0\r
7806         opOUT_C\r
7807         fetch 16\r
7808 \r
7809 ;@LDD\r
7810 opcode_ED_A8:\r
7811         copymem8HL_DE\r
7812         sub z80hl,z80hl,#1<<16\r
7813         sub z80de,z80de,#1<<16\r
7814         subs z80bc,z80bc,#1<<16\r
7815         bic z80f,z80f,#(1<<VFlag)|(1<<NFlag)|(1<<HFlag)\r
7816         orrne z80f,z80f,#1<<VFlag\r
7817         fetch 16\r
7818 \r
7819 ;@CPD\r
7820 opcode_ED_A9:\r
7821         readmem8HL\r
7822         sub z80hl,z80hl,#1<<16\r
7823         mov r1,z80a,lsl#4\r
7824         cmp z80a,r0,lsl#24\r
7825         and z80f,z80f,#1<<CFlag\r
7826         orr z80f,z80f,#1<<NFlag\r
7827         orrmi z80f,z80f,#1<<SFlag\r
7828         orreq z80f,z80f,#1<<ZFlag\r
7829         cmp r1,r0,lsl#28\r
7830         orrcc z80f,z80f,#1<<HFlag\r
7831         subs z80bc,z80bc,#0x00010000\r
7832         orrne z80f,z80f,#1<<VFlag\r
7833         fetch 16\r
7834 \r
7835 ;@IND\r
7836 opcode_ED_AA:\r
7837         opIN_C\r
7838         and z80f,r0,#0x80\r
7839         mov z80f,z80f,lsr#2                                             ;@NFlag set by bit 7\r
7840 ;@      mov r1,z80bc,lsl#8\r
7841 ;@      sub r1,r1,#0x01000000\r
7842 ;@      adds r1,r1,r0,lsl#24\r
7843 ;@      orrcs z80f,z80f,#(1<<CFlag)|(1<<HFlag)  ;@ CF & HF set if (HL) + ((C-1) & 0xFF) > 0xFF\r
7844         writemem8HL\r
7845         sub z80hl,z80hl,#1<<16\r
7846         sub z80bc,z80bc,#1<<24\r
7847         tst z80bc,#0xFF<<24\r
7848         orrmi z80f,z80f,#1<<SFlag\r
7849         orreq z80f,z80f,#1<<ZFlag\r
7850         fetch 16\r
7851 \r
7852 ;@OUTD\r
7853 opcode_ED_AB:\r
7854         readmem8HL\r
7855         sub z80hl,z80hl,#1<<16\r
7856         and z80f,r0,#0x80\r
7857         mov z80f,z80f,lsr#2                                             ;@NFlag set by bit 7\r
7858         mov r1,z80hl,lsl#8\r
7859         adds r1,r1,r0,lsl#24\r
7860         orrcs z80f,z80f,#(1<<CFlag)|(1<<HFlag)  ;@ CF & HF set if r0+HL > 0xFF\r
7861         sub z80bc,z80bc,#1<<24\r
7862         tst z80bc,#0xFF<<24\r
7863         orrmi z80f,z80f,#1<<SFlag\r
7864         orreq z80f,z80f,#1<<ZFlag\r
7865         mov r1,r0\r
7866         opOUT_C\r
7867         fetch 16\r
7868 ;@LDIR\r
7869 opcode_ED_B0:\r
7870         copymem8HL_DE\r
7871         add z80hl,z80hl,#1<<16\r
7872         add z80de,z80de,#1<<16\r
7873         subs z80bc,z80bc,#1<<16\r
7874         bic z80f,z80f,#(1<<VFlag)|(1<<NFlag)|(1<<HFlag)\r
7875         orrne z80f,z80f,#1<<VFlag\r
7876         subne z80pc,z80pc,#2\r
7877         subne z80_icount,z80_icount,#5\r
7878         fetch 16\r
7879 \r
7880 ;@CPIR\r
7881 opcode_ED_B1:\r
7882         readmem8HL\r
7883         add z80hl,z80hl,#1<<16    \r
7884         mov r1,z80a,lsl#4\r
7885         cmp z80a,r0,lsl#24\r
7886         and z80f,z80f,#1<<CFlag\r
7887         orr z80f,z80f,#1<<NFlag\r
7888         orrmi z80f,z80f,#1<<SFlag\r
7889         orreq z80f,z80f,#1<<ZFlag\r
7890         cmp r1,r0,lsl#28\r
7891         orrcc z80f,z80f,#1<<HFlag\r
7892         subs z80bc,z80bc,#1<<16\r
7893         bne opcode_ED_B1_decpc\r
7894         fetch 16\r
7895 opcode_ED_B1_decpc:\r
7896         orr z80f,z80f,#1<<VFlag\r
7897         tst z80f,#1<<ZFlag\r
7898         subeq z80pc,z80pc,#2\r
7899         subeq z80_icount,z80_icount,#5\r
7900         fetch 16\r
7901 ;@INIR\r
7902 opcode_ED_B2:\r
7903         opIN_C\r
7904         and z80f,r0,#0x80\r
7905         mov z80f,z80f,lsr#2                                             ;@NFlag set by bit 7\r
7906 ;@      mov r1,z80bc,lsl#8\r
7907 ;@      add r1,r1,#0x01000000\r
7908 ;@      adds r1,r1,r0,lsl#24\r
7909 ;@      orrcs z80f,z80f,#(1<<CFlag)|(1<<HFlag)  ;@ CF & HF set if (HL) + ((C+1) & 0xFF) > 0xFF\r
7910         writemem8HL\r
7911         add z80hl,z80hl,#1<<16\r
7912         sub z80bc,z80bc,#1<<24\r
7913         tst z80bc,#0xFF<<24\r
7914         orrmi z80f,z80f,#1<<SFlag\r
7915         orreq z80f,z80f,#1<<ZFlag\r
7916         subne z80pc,z80pc,#2\r
7917         subne z80_icount,z80_icount,#5\r
7918         fetch 16\r
7919 ;@OTIR\r
7920 opcode_ED_B3:\r
7921         readmem8HL\r
7922         add z80hl,z80hl,#1<<16\r
7923         and z80f,r0,#0x80\r
7924         mov z80f,z80f,lsr#2                                             ;@NFlag set by bit 7\r
7925         mov r1,z80hl,lsl#8\r
7926         adds r1,r1,r0,lsl#24\r
7927         orrcs z80f,z80f,#(1<<CFlag)|(1<<HFlag)  ;@ CF & HF set if r0+HL > 0xFF\r
7928         sub z80bc,z80bc,#1<<24\r
7929         tst z80bc,#0xFF<<24\r
7930         orrmi z80f,z80f,#1<<SFlag\r
7931         orreq z80f,z80f,#1<<ZFlag\r
7932         subne z80pc,z80pc,#2\r
7933         subne z80_icount,z80_icount,#5\r
7934         mov r1,r0\r
7935         opOUT_C\r
7936         fetch 16\r
7937 ;@LDDR\r
7938 opcode_ED_B8:\r
7939         copymem8HL_DE\r
7940         sub z80hl,z80hl,#1<<16\r
7941         sub z80de,z80de,#1<<16\r
7942         subs z80bc,z80bc,#1<<16\r
7943         bic z80f,z80f,#(1<<VFlag)|(1<<NFlag)|(1<<HFlag)\r
7944         orrne z80f,z80f,#1<<VFlag\r
7945         subne z80pc,z80pc,#2\r
7946         subne z80_icount,z80_icount,#5\r
7947         fetch 16\r
7948 \r
7949 ;@CPDR\r
7950 opcode_ED_B9:\r
7951         readmem8HL\r
7952         sub z80hl,z80hl,#1<<16\r
7953         mov r1,z80a,lsl#4\r
7954         cmp z80a,r0,lsl#24\r
7955         and z80f,z80f,#1<<CFlag\r
7956         orr z80f,z80f,#1<<NFlag\r
7957         orrmi z80f,z80f,#1<<SFlag\r
7958         orreq z80f,z80f,#1<<ZFlag\r
7959         cmp r1,r0,lsl#28\r
7960         orrcc z80f,z80f,#1<<HFlag\r
7961         subs z80bc,z80bc,#1<<16\r
7962         bne opcode_ED_B9_decpc\r
7963         fetch 16\r
7964 opcode_ED_B9_decpc:\r
7965         orr z80f,z80f,#1<<VFlag\r
7966         tst z80f,#1<<ZFlag\r
7967         subeq z80pc,z80pc,#2\r
7968         subeq z80_icount,z80_icount,#5\r
7969         fetch 16\r
7970 ;@INDR\r
7971 opcode_ED_BA:\r
7972         opIN_C\r
7973         and z80f,r0,#0x80\r
7974         mov z80f,z80f,lsr#2                                             ;@NFlag set by bit 7\r
7975 ;@      mov r1,z80bc,lsl#8\r
7976 ;@      sub r1,r1,#0x01000000\r
7977 ;@      adds r1,r1,r0,lsl#24\r
7978 ;@      orrcs z80f,z80f,#(1<<CFlag)|(1<<HFlag)  ;@ CF & HF set if (HL) + ((C-1) & 0xFF) > 0xFF\r
7979         writemem8HL\r
7980         sub z80hl,z80hl,#1<<16\r
7981         sub z80bc,z80bc,#1<<24\r
7982         tst z80bc,#0xFF<<24\r
7983         orrmi z80f,z80f,#1<<SFlag\r
7984         orreq z80f,z80f,#1<<ZFlag\r
7985         subne z80pc,z80pc,#2\r
7986         subne z80_icount,z80_icount,#5\r
7987         fetch 16\r
7988 ;@OTDR\r
7989 opcode_ED_BB:\r
7990         readmem8HL\r
7991         sub z80hl,z80hl,#1<<16\r
7992         and z80f,r0,#0x80\r
7993         mov z80f,z80f,lsr#2                                             ;@NFlag set by bit 7\r
7994         mov r1,z80hl,lsl#8\r
7995         adds r1,r1,r0,lsl#24\r
7996         orrcs z80f,z80f,#(1<<CFlag)|(1<<HFlag)  ;@ CF & HF set if r0+HL > 0xFF\r
7997         sub z80bc,z80bc,#1<<24\r
7998         tst z80bc,#0xFF<<24\r
7999         orrmi z80f,z80f,#1<<SFlag\r
8000         orreq z80f,z80f,#1<<ZFlag\r
8001         subne z80pc,z80pc,#2\r
8002         subne z80_icount,z80_icount,#5\r
8003         mov r1,r0\r
8004         opOUT_C\r
8005         fetch 16\r
8006 ;@##################################\r
8007 ;@##################################\r
8008 ;@###  opcodes FD  #########################\r
8009 ;@##################################\r
8010 ;@##################################\r
8011 ;@Since DD and FD opcodes are all the same apart from the address\r
8012 ;@register they use.  When a FD intruction the program runs the code\r
8013 ;@from the DD location but the address of the IY reg is passed instead\r
8014 ;@of IX\r
8015 \r
8016 ;@end_loop:\r
8017 ;@     b end_loop\r
8018 \r
8019 ;@ vim:filetype=armasm\r
8020 \r