drz80: drop fast_sp for compatibility
[picodrive.git] / cpu / DrZ80 / drz80.s
CommitLineData
cc68a136 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
ee05564f 14 .equiv INTERRUPT_MODE, 0 ;@0 = Use internal int handler, 1 = Use Mames int handler\r
61290a35 15 .equiv FAST_Z80SP, 0 ;@0 = Use mem functions for stack pointer, 1 = Use direct mem pointer\r
ee05564f 16 .equiv UPDATE_CONTEXT, 0\r
ee05564f 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.endif\r
cc68a136 23\r
24.if INTERRUPT_MODE\r
e5f426aa 25 .extern Interrupt\r
cc68a136 26.endif\r
27\r
cc68a136 28DrZ80Ver: .long 0x0001\r
29\r
30;@ --------------------------- Defines ----------------------------\r
31;@ Make sure that regs/pointers for z80pc to z80sp match up!\r
32\r
ee05564f 33 z80_icount .req r3\r
34 opcodes .req r4\r
cc68a136 35 cpucontext .req r5\r
36 z80pc .req r6\r
37 z80a .req r7\r
38 z80f .req r8\r
39 z80bc .req r9\r
40 z80de .req r10\r
41 z80hl .req r11\r
42 z80sp .req r12 \r
43 z80xx .req lr\r
44\r
45 .equ z80pc_pointer, 0 ;@ 0\r
46 .equ z80a_pointer, z80pc_pointer+4 ;@ 4\r
47 .equ z80f_pointer, z80a_pointer+4 ;@ 8\r
48 .equ z80bc_pointer, z80f_pointer+4 ;@ \r
49 .equ z80de_pointer, z80bc_pointer+4\r
50 .equ z80hl_pointer, z80de_pointer+4\r
51 .equ z80sp_pointer, z80hl_pointer+4\r
52 .equ z80pc_base, z80sp_pointer+4\r
53 .equ z80sp_base, z80pc_base+4\r
54 .equ z80ix, z80sp_base+4\r
55 .equ z80iy, z80ix+4\r
56 .equ z80i, z80iy+4\r
57 .equ z80a2, z80i+4\r
58 .equ z80f2, z80a2+4\r
59 .equ z80bc2, z80f2+4\r
60 .equ z80de2, z80bc2+4\r
61 .equ z80hl2, z80de2+4\r
62 .equ cycles_pointer, z80hl2+4 \r
63 .equ previouspc, cycles_pointer+4 \r
64 .equ z80irq, previouspc+4\r
65 .equ z80if, z80irq+1\r
66 .equ z80im, z80if+1\r
67 .equ z80r, z80im+1\r
68 .equ z80irqvector, z80r+1\r
69 .equ z80irqcallback, z80irqvector+4\r
70 .equ z80_write8, z80irqcallback+4\r
71 .equ z80_write16, z80_write8+4\r
72 .equ z80_in, z80_write16+4\r
73 .equ z80_out, z80_in+4\r
74 .equ z80_read8, z80_out+4\r
75 .equ z80_read16, z80_read8+4\r
76 .equ z80_rebaseSP, z80_read16+4\r
77 .equ z80_rebasePC, z80_rebaseSP+4\r
78\r
79 .equ VFlag, 0\r
80 .equ CFlag, 1\r
81 .equ ZFlag, 2\r
82 .equ SFlag, 3\r
83 .equ HFlag, 4\r
84 .equ NFlag, 5\r
85 .equ Flag3, 6\r
86 .equ Flag5, 7\r
87\r
88 .equ Z80_CFlag, 0\r
89 .equ Z80_NFlag, 1\r
90 .equ Z80_VFlag, 2\r
91 .equ Z80_Flag3, 3\r
92 .equ Z80_HFlag, 4\r
93 .equ Z80_Flag5, 5\r
94 .equ Z80_ZFlag, 6\r
95 .equ Z80_SFlag, 7\r
96\r
97 .equ Z80_IF1, 1<<0\r
98 .equ Z80_IF2, 1<<1\r
99 .equ Z80_HALT, 1<<2\r
835122bc 100 .equ Z80_NMI, 1<<3\r
cc68a136 101\r
102;@---------------------------------------\r
103\r
104.text\r
105\r
ee05564f 106.if DRZ80_XMAP\r
cc68a136 107\r
ee05564f 108z80_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
116z80_xmap_read8_handler: @ addr, func\r
17043584 117 str z80_icount,[cpucontext,#cycles_pointer]\r
ee05564f 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
124z80_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
133z80_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
144z80_xmap_read16: @ addr\r
145 @ check if we cross bank boundary\r
146 add r1,r0,#1\r
460603fa 147 eor r1,r1,r0\r
ee05564f 148 tst r1,#1<<Z80_MEM_SHIFT\r
149 bne 0f\r
cc68a136 150\r
ee05564f 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
cc68a136 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
ee05564f 1610:\r
162 @ z80_xmap_read8 will save r3 and r12 for us\r
d8f51995 163 stmfd sp!,{r8,r9,lr}\r
164 mov r8,r0\r
ee05564f 165 bl z80_xmap_read8\r
d8f51995 166 mov r9,r0\r
167 add r0,r8,#1\r
ee05564f 168 bl z80_xmap_read8\r
d8f51995 169 orr r0,r9,r0,lsl #8\r
170 ldmfd sp!,{r8,r9,pc}\r
cc68a136 171\r
ee05564f 172z80_xmap_write16: @ data, addr\r
173 add r2,r1,#1\r
460603fa 174 eor r2,r2,r1\r
ee05564f 175 tst r2,#1<<Z80_MEM_SHIFT\r
176 bne 0f\r
cc68a136 177\r
460603fa 178 ldr r2,[cpucontext,#z80_write8]\r
ee05564f 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
cc68a136 184 strb r0,[r2,r1]!\r
185 mov r0,r0,lsr #8\r
186 strb r0,[r2,#1]\r
187 bx lr\r
ee05564f 188\r
1890:\r
d8f51995 190 stmfd sp!,{r8,r9,lr}\r
191 mov r8,r0\r
192 mov r9,r1\r
ee05564f 193 bl z80_xmap_write8\r
d8f51995 194 mov r0,r8,lsr #8\r
195 add r1,r9,#1\r
ee05564f 196 bl z80_xmap_write8\r
d8f51995 197 ldmfd sp!,{r8,r9,pc}\r
198\r
199z80_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
208z80_bad_jump:\r
b4db550e 209 stmfd sp!,{r3,r12,lr}\r
210 mov lr,pc\r
211 ldr pc,[cpucontext,#z80_rebasePC]\r
d8f51995 212 mov z80pc,r0\r
b4db550e 213 ldmfd sp!,{r3,r12,pc}\r
214\r
61290a35 215.if FAST_Z80SP\r
b4db550e 216z80_xmap_rebase_sp:\r
217 ldr r1,[cpucontext,#z80_read8]\r
218 sub r2,r0,#1\r
219 mov r2,r2,lsl #16\r
220 mov r2,r2,lsr #(Z80_MEM_SHIFT+16)\r
221 ldr r1,[r1,r2,lsl #2]\r
222 movs r1,r1,lsl #1\r
223 strcc r1,[cpucontext,#z80sp_base]\r
224 addcc z80sp,r1,r0\r
225 bxcc lr\r
226\r
227 stmfd sp!,{r3,r12,lr}\r
228 mov lr,pc\r
229 ldr pc,[cpucontext,#z80_rebaseSP]\r
230 mov z80sp,r0\r
231 ldmfd sp!,{r3,r12,pc}\r
61290a35 232.endif @ FAST_Z80SP\r
b4db550e 233 \r
234.endif @ DRZ80_XMAP\r
cc68a136 235\r
ee05564f 236\r
cc68a136 237.macro fetch cycs\r
238 subs z80_icount,z80_icount,#\cycs\r
239.if UPDATE_CONTEXT\r
240 str z80pc,[cpucontext,#z80pc_pointer]\r
241 str z80_icount,[cpucontext,#cycles_pointer]\r
242 ldr r1,[cpucontext,#z80pc_base]\r
243 sub r2,z80pc,r1\r
244 str r2,[cpucontext,#previouspc]\r
245.endif\r
246 ldrplb r0,[z80pc],#1\r
247 ldrpl pc,[opcodes,r0, lsl #2]\r
248 bmi z80_execute_end\r
249.endm\r
250\r
251.macro eatcycles cycs\r
252 sub z80_icount,z80_icount,#\cycs\r
253.if UPDATE_CONTEXT\r
254 str z80_icount,[cpucontext,#cycles_pointer]\r
255.endif\r
256.endm\r
257\r
258.macro readmem8\r
259.if UPDATE_CONTEXT\r
260 str z80pc,[cpucontext,#z80pc_pointer]\r
261.endif\r
ee05564f 262.if DRZ80_XMAP\r
263.if !DRZ80_XMAP_MORE_INLINE\r
264 ldr r1,[cpucontext,#z80_read8]\r
265 mov r2,r0,lsr #Z80_MEM_SHIFT\r
266 ldr r1,[r1,r2,lsl #2]\r
267 movs r1,r1,lsl #1\r
268 ldrccb r0,[r1,r0]\r
269 blcs z80_xmap_read8_handler\r
cc68a136 270.else\r
ee05564f 271 bl z80_xmap_read8\r
272.endif\r
273.else ;@ if !DRZ80_XMAP\r
cc68a136 274 stmfd sp!,{r3,r12}\r
275 mov lr,pc\r
276 ldr pc,[cpucontext,#z80_read8] ;@ r0 = addr - data returned in r0\r
277 ldmfd sp!,{r3,r12}\r
278.endif\r
279.endm\r
280\r
281.macro readmem8HL\r
282 mov r0,z80hl, lsr #16\r
283 readmem8\r
284.endm\r
285\r
286.macro readmem16\r
287.if UPDATE_CONTEXT\r
288 str z80pc,[cpucontext,#z80pc_pointer]\r
289.endif\r
ee05564f 290.if DRZ80_XMAP\r
291 bl z80_xmap_read16\r
cc68a136 292.else\r
293 stmfd sp!,{r3,r12}\r
294 mov lr,pc\r
295 ldr pc,[cpucontext,#z80_read16]\r
296 ldmfd sp!,{r3,r12}\r
297.endif\r
298.endm\r
299\r
300.macro writemem8\r
301.if UPDATE_CONTEXT\r
302 str z80pc,[cpucontext,#z80pc_pointer]\r
303.endif\r
ee05564f 304.if DRZ80_XMAP\r
305.if DRZ80_XMAP_MORE_INLINE\r
306 ldr r2,[cpucontext,#z80_write8]\r
307 mov lr,r1,lsr #Z80_MEM_SHIFT\r
308 ldr r2,[r2,lr,lsl #2]\r
309 movs r2,r2,lsl #1\r
310 strccb r0,[r2,r1]\r
311 blcs z80_xmap_write8_handler\r
cc68a136 312.else\r
ee05564f 313 bl z80_xmap_write8\r
314.endif\r
315.else ;@ if !DRZ80_XMAP\r
cc68a136 316 stmfd sp!,{r3,r12}\r
317 mov lr,pc\r
318 ldr pc,[cpucontext,#z80_write8] ;@ r0=data r1=addr\r
319 ldmfd sp!,{r3,r12}\r
320.endif\r
321.endm\r
322\r
323.macro writemem8DE\r
324 mov r1,z80de, lsr #16\r
325 writemem8\r
326.endm\r
327\r
328.macro writemem8HL\r
329 mov r1,z80hl, lsr #16\r
330 writemem8\r
331.endm\r
332\r
333.macro writemem16\r
334.if UPDATE_CONTEXT\r
335 str z80pc,[cpucontext,#z80pc_pointer]\r
336.endif\r
ee05564f 337.if DRZ80_XMAP\r
338 bl z80_xmap_write16\r
cc68a136 339.else\r
340 stmfd sp!,{r3,r12}\r
341 mov lr,pc\r
342 ldr pc,[cpucontext,#z80_write16] ;@ r0=data r1=addr\r
343 ldmfd sp!,{r3,r12}\r
344.endif\r
345.endm\r
346\r
347.macro copymem8HL_DE\r
348.if UPDATE_CONTEXT\r
349 str z80pc,[cpucontext,#z80pc_pointer]\r
350.endif\r
351 mov r0,z80hl, lsr #16\r
ee05564f 352.if DRZ80_XMAP\r
353 bl z80_xmap_read8\r
cc68a136 354.else\r
355 stmfd sp!,{r3,r12}\r
356 mov lr,pc\r
357 ldr pc,[cpucontext,#z80_read8] ;@ r0 = addr - data returned in r0\r
cc68a136 358.endif\r
359 mov r1,z80de, lsr #16\r
ee05564f 360.if DRZ80_XMAP\r
361 bl z80_xmap_write8\r
cc68a136 362.else\r
363 mov lr,pc\r
364 ldr pc,[cpucontext,#z80_write8] ;@ r0=data r1=addr\r
365 ldmfd sp!,{r3,r12}\r
366.endif\r
367.endm\r
368;@---------------------------------------\r
369\r
370.macro rebasepc\r
371.if UPDATE_CONTEXT\r
372 str z80pc,[cpucontext,#z80pc_pointer]\r
373.endif\r
d8f51995 374.if DRZ80_XMAP\r
375 bl z80_xmap_rebase_pc\r
cc68a136 376.else\r
377 stmfd sp!,{r3,r12}\r
378 mov lr,pc\r
379 ldr pc,[cpucontext,#z80_rebasePC] ;@ r0=new pc - external function sets z80pc_base and returns new z80pc in r0\r
380 ldmfd sp!,{r3,r12}\r
381 mov z80pc,r0\r
382.endif\r
383.endm\r
384\r
385.macro rebasesp\r
386.if UPDATE_CONTEXT\r
387 str z80pc,[cpucontext,#z80pc_pointer]\r
388.endif\r
d8f51995 389.if DRZ80_XMAP\r
b4db550e 390 bl z80_xmap_rebase_sp\r
cc68a136 391.else\r
392 stmfd sp!,{r3,r12}\r
393 mov lr,pc\r
394 ldr pc,[cpucontext,#z80_rebaseSP] ;@ external function must rebase sp\r
395 ldmfd sp!,{r3,r12}\r
b4db550e 396 mov z80sp,r0\r
cc68a136 397.endif\r
398.endm\r
399;@----------------------------------------------------------------------------\r
400\r
401.macro opADC\r
402 movs z80f,z80f,lsr#2 ;@ get C\r
403 subcs r0,r0,#0x100\r
404 eor z80f,r0,z80a,lsr#24 ;@ prepare for check of half carry\r
405 adcs z80a,z80a,r0,ror#8\r
406 mrs r0,cpsr ;@ S,Z,V&C\r
407 eor z80f,z80f,z80a,lsr#24\r
408 and z80f,z80f,#1<<HFlag ;@ H, correct\r
409 orr z80f,z80f,r0,lsr#28\r
410.endm\r
411\r
412.macro opADCA\r
413 movs z80f,z80f,lsr#2 ;@ get C\r
414 orrcs z80a,z80a,#0x00800000\r
415 adds z80a,z80a,z80a\r
416 mrs z80f,cpsr ;@ S,Z,V&C\r
417 mov z80f,z80f,lsr#28\r
418 tst z80a,#0x10000000 ;@ H, correct\r
419 orrne z80f,z80f,#1<<HFlag\r
420 fetch 4\r
421.endm\r
422\r
423.macro opADCH reg\r
424 mov r0,\reg,lsr#24\r
425 opADC\r
426 fetch 4\r
427.endm\r
428\r
429.macro opADCL reg\r
430 movs z80f,z80f,lsr#2 ;@ get C\r
431 adc r0,\reg,\reg,lsr#15\r
432 orrcs z80a,z80a,#0x00800000\r
433 mov r1,z80a,lsl#4 ;@ Prepare for check of half carry\r
434 adds z80a,z80a,r0,lsl#23\r
435 mrs z80f,cpsr ;@ S,Z,V&C\r
436 mov z80f,z80f,lsr#28\r
437 cmn r1,r0,lsl#27\r
438 orrcs z80f,z80f,#1<<HFlag ;@ H, correct\r
439 fetch 4\r
440.endm\r
441\r
442.macro opADCb\r
443 opADC\r
444.endm\r
445;@---------------------------------------\r
446\r
447.macro opADD reg shift\r
448 mov r1,z80a,lsl#4 ;@ Prepare for check of half carry\r
449 adds z80a,z80a,\reg,lsl#\shift\r
450 mrs z80f,cpsr ;@ S,Z,V&C\r
451 mov z80f,z80f,lsr#28\r
452 cmn r1,\reg,lsl#\shift+4\r
453 orrcs z80f,z80f,#1<<HFlag\r
454.endm\r
455\r
456.macro opADDA\r
457 adds z80a,z80a,z80a\r
458 mrs z80f,cpsr ;@ S,Z,V&C\r
459 mov z80f,z80f,lsr#28\r
460 tst z80a,#0x10000000 ;@ H, correct\r
461 orrne z80f,z80f,#1<<HFlag\r
462 fetch 4\r
463.endm\r
464\r
465.macro opADDH reg\r
466 and r0,\reg,#0xFF000000\r
467 opADD r0 0\r
468 fetch 4\r
469.endm\r
470\r
471.macro opADDL reg\r
472 opADD \reg 8\r
473 fetch 4\r
474.endm\r
475\r
476.macro opADDb \r
477 opADD r0 24\r
478.endm\r
479;@---------------------------------------\r
480\r
481.macro opADC16 reg\r
482 movs z80f,z80f,lsr#2 ;@ get C\r
483 adc r0,z80a,\reg,lsr#15\r
484 orrcs z80hl,z80hl,#0x00008000\r
485 mov r1,z80hl,lsl#4\r
486 adds z80hl,z80hl,r0,lsl#15\r
487 mrs z80f,cpsr ;@ S, Z, V & C\r
488 mov z80f,z80f,lsr#28\r
489 cmn r1,r0,lsl#19\r
490 orrcs z80f,z80f,#1<<HFlag\r
491 fetch 15\r
492.endm\r
493\r
494.macro opADC16HL\r
495 movs z80f,z80f,lsr#2 ;@ get C\r
496 orrcs z80hl,z80hl,#0x00008000\r
497 adds z80hl,z80hl,z80hl\r
498 mrs z80f,cpsr ;@ S, Z, V & C\r
499 mov z80f,z80f,lsr#28\r
500 tst z80hl,#0x10000000 ;@ H, correct.\r
501 orrne z80f,z80f,#1<<HFlag\r
502 fetch 15\r
503.endm\r
504\r
505.macro opADD16 reg1 reg2\r
506 mov r1,\reg1,lsl#4 ;@ Prepare for check of half carry\r
507 adds \reg1,\reg1,\reg2\r
508 bic z80f,z80f,#(1<<CFlag)|(1<<HFlag)|(1<<NFlag)\r
509 orrcs z80f,z80f,#1<<CFlag\r
510 cmn r1,\reg2,lsl#4\r
511 orrcs z80f,z80f,#1<<HFlag\r
512.endm\r
513\r
514.macro opADD16s reg1 reg2 shift\r
515 mov r1,\reg1,lsl#4 ;@ Prepare for check of half carry\r
516 adds \reg1,\reg1,\reg2,lsl#\shift\r
517 bic z80f,z80f,#(1<<CFlag)|(1<<HFlag)|(1<<NFlag)\r
518 orrcs z80f,z80f,#1<<CFlag\r
519 cmn r1,\reg2,lsl#4+\shift\r
520 orrcs z80f,z80f,#1<<HFlag\r
521.endm\r
522\r
523.macro opADD16_2 reg\r
524 adds \reg,\reg,\reg\r
525 bic z80f,z80f,#(1<<CFlag)|(1<<HFlag)|(1<<NFlag)\r
526 orrcs z80f,z80f,#1<<CFlag\r
527 tst \reg,#0x10000000 ;@ H, correct.\r
528 orrne z80f,z80f,#1<<HFlag\r
529.endm\r
530;@---------------------------------------\r
531\r
532.macro opAND reg shift\r
533 and z80a,z80a,\reg,lsl#\shift\r
534 sub r0,opcodes,#0x100\r
535 ldrb z80f,[r0,z80a, lsr #24]\r
536 orr z80f,z80f,#1<<HFlag\r
537.endm\r
538\r
539.macro opANDA\r
540 sub r0,opcodes,#0x100\r
541 ldrb z80f,[r0,z80a, lsr #24]\r
542 orr z80f,z80f,#1<<HFlag\r
543 fetch 4\r
544.endm\r
545\r
546.macro opANDH reg\r
547 opAND \reg 0\r
548 fetch 4\r
549.endm\r
550\r
551.macro opANDL reg\r
552 opAND \reg 8\r
553 fetch 4\r
554.endm\r
555\r
556.macro opANDb\r
557 opAND r0 24\r
558.endm\r
559;@---------------------------------------\r
560\r
561.macro opBITH reg bit\r
562 and z80f,z80f,#1<<CFlag\r
563 tst \reg,#1<<(24+\bit)\r
564 orreq z80f,z80f,#(1<<HFlag)|(1<<ZFlag)|(1<<VFlag)\r
565 orrne z80f,z80f,#(1<<HFlag)\r
566 fetch 8\r
567.endm\r
568\r
569.macro opBIT7H reg\r
570 and z80f,z80f,#1<<CFlag\r
571 tst \reg,#1<<(24+7)\r
572 orreq z80f,z80f,#(1<<HFlag)|(1<<ZFlag)|(1<<VFlag)\r
573 orrne z80f,z80f,#(1<<HFlag)|(1<<SFlag)\r
574 fetch 8\r
575.endm\r
576\r
577.macro opBITL reg bit\r
578 and z80f,z80f,#1<<CFlag\r
579 tst \reg,#1<<(16+\bit)\r
580 orreq z80f,z80f,#(1<<HFlag)|(1<<ZFlag)|(1<<VFlag)\r
581 orrne z80f,z80f,#(1<<HFlag)\r
582 fetch 8\r
583.endm\r
584\r
585.macro opBIT7L reg\r
586 and z80f,z80f,#1<<CFlag\r
587 tst \reg,#1<<(16+7)\r
588 orreq z80f,z80f,#(1<<HFlag)|(1<<ZFlag)|(1<<VFlag)\r
589 orrne z80f,z80f,#(1<<HFlag)|(1<<SFlag)\r
590 fetch 8\r
591.endm\r
592\r
593.macro opBITb bit\r
594 and z80f,z80f,#1<<CFlag\r
595 tst r0,#1<<\bit\r
596 orreq z80f,z80f,#(1<<HFlag)|(1<<ZFlag)|(1<<VFlag)\r
597 orrne z80f,z80f,#(1<<HFlag)\r
598.endm\r
599\r
600.macro opBIT7b\r
601 and z80f,z80f,#1<<CFlag\r
602 tst r0,#1<<7\r
603 orreq z80f,z80f,#(1<<HFlag)|(1<<ZFlag)|(1<<VFlag)\r
604 orrne z80f,z80f,#(1<<HFlag)|(1<<SFlag)\r
605.endm\r
606;@---------------------------------------\r
607\r
608.macro opCP reg shift\r
609 mov r1,z80a,lsl#4 ;@ prepare for check of half carry\r
610 cmp z80a,\reg,lsl#\shift\r
611 mrs z80f,cpsr\r
612 mov z80f,z80f,lsr#28 ;@ S,Z,V&C\r
613 eor z80f,z80f,#(1<<CFlag)|(1<<NFlag) ;@ invert C and set n\r
614 cmp r1,\reg,lsl#\shift+4\r
615 orrcc z80f,z80f,#1<<HFlag\r
616.endm\r
617\r
618.macro opCPA\r
619 mov z80f,#(1<<ZFlag)|(1<<NFlag) ;@ set Z & n\r
620 fetch 4\r
621.endm\r
622\r
623.macro opCPH reg\r
624 and r0,\reg,#0xFF000000\r
625 opCP r0 0\r
626 fetch 4\r
627.endm\r
628\r
629.macro opCPL reg\r
630 opCP \reg 8\r
631 fetch 4\r
632.endm\r
633\r
634.macro opCPb\r
635 opCP r0 24\r
636.endm\r
637;@---------------------------------------\r
638\r
639.macro opDEC8 reg ;@for A and memory\r
640 and z80f,z80f,#1<<CFlag ;@save carry\r
641 orr z80f,z80f,#1<<NFlag ;@set n\r
642 tst \reg,#0x0f000000\r
643 orreq z80f,z80f,#1<<HFlag\r
644 subs \reg,\reg,#0x01000000\r
645 orrmi z80f,z80f,#1<<SFlag\r
646 orrvs z80f,z80f,#1<<VFlag\r
647 orreq z80f,z80f,#1<<ZFlag\r
648.endm\r
649\r
650.macro opDEC8H reg ;@for B, D & H\r
651 and z80f,z80f,#1<<CFlag ;@save carry\r
652 orr z80f,z80f,#1<<NFlag ;@set n\r
653 tst \reg,#0x0f000000\r
654 orreq z80f,z80f,#1<<HFlag\r
655 subs \reg,\reg,#0x01000000\r
656 orrmi z80f,z80f,#1<<SFlag\r
657 orrvs z80f,z80f,#1<<VFlag\r
658 tst \reg,#0xff000000 ;@Z\r
659 orreq z80f,z80f,#1<<ZFlag\r
660.endm\r
661\r
662.macro opDEC8L reg ;@for C, E & L\r
663 mov \reg,\reg,ror#24\r
664 opDEC8H \reg\r
665 mov \reg,\reg,ror#8\r
666.endm\r
667\r
668.macro opDEC8b ;@for memory\r
669 mov r0,r0,lsl#24\r
670 opDEC8 r0\r
671 mov r0,r0,lsr#24\r
672.endm\r
673;@---------------------------------------\r
674\r
675.macro opIN\r
676 stmfd sp!,{r3,r12}\r
677 mov lr,pc\r
678 ldr pc,[cpucontext,#z80_in] ;@ r0=port - data returned in r0\r
679 ldmfd sp!,{r3,r12}\r
680.endm\r
681\r
682.macro opIN_C\r
683 mov r0,z80bc, lsr #16\r
684 opIN\r
685.endm\r
686;@---------------------------------------\r
687\r
688.macro opINC8 reg ;@for A and memory\r
689 and z80f,z80f,#1<<CFlag ;@save carry, clear n\r
690 adds \reg,\reg,#0x01000000\r
691 orrmi z80f,z80f,#1<<SFlag\r
692 orrvs z80f,z80f,#1<<VFlag\r
693 orrcs z80f,z80f,#1<<ZFlag ;@cs when going from 0xFF to 0x00\r
694 tst \reg,#0x0f000000\r
695 orreq z80f,z80f,#1<<HFlag\r
696.endm\r
697\r
698.macro opINC8H reg ;@for B, D & H\r
699 opINC8 \reg\r
700.endm\r
701\r
702.macro opINC8L reg ;@for C, E & L\r
703 mov \reg,\reg,ror#24\r
704 opINC8 \reg\r
705 mov \reg,\reg,ror#8\r
706.endm\r
707\r
708.macro opINC8b ;@for memory\r
709 mov r0,r0,lsl#24\r
710 opINC8 r0\r
711 mov r0,r0,lsr#24\r
712.endm\r
713;@---------------------------------------\r
714\r
715.macro opOR reg shift\r
716 orr z80a,z80a,\reg,lsl#\shift\r
717 sub r0,opcodes,#0x100\r
718 ldrb z80f,[r0,z80a, lsr #24]\r
719.endm\r
720\r
721.macro opORA\r
722 sub r0,opcodes,#0x100\r
723 ldrb z80f,[r0,z80a, lsr #24]\r
724 fetch 4\r
725.endm\r
726\r
727.macro opORH reg\r
728 and r0,\reg,#0xFF000000\r
729 opOR r0 0\r
730 fetch 4\r
731.endm\r
732\r
733.macro opORL reg\r
734 opOR \reg 8\r
735 fetch 4\r
736.endm\r
737\r
738.macro opORb\r
739 opOR r0 24\r
740.endm\r
741;@---------------------------------------\r
742\r
743.macro opOUT\r
744 stmfd sp!,{r3,r12}\r
745 mov lr,pc\r
746 ldr pc,[cpucontext,#z80_out] ;@ r0=port r1=data\r
747 ldmfd sp!,{r3,r12}\r
748.endm\r
749\r
750.macro opOUT_C\r
751 mov r0,z80bc, lsr #16\r
752 opOUT\r
753.endm\r
754;@---------------------------------------\r
755\r
756.macro opPOP\r
757.if FAST_Z80SP\r
cc68a136 758 ldrb r0,[z80sp],#1\r
759 ldrb r1,[z80sp],#1\r
760 orr r0,r0,r1, lsl #8\r
cc68a136 761.else\r
762 mov r0,z80sp\r
763 readmem16\r
764 add z80sp,z80sp,#2\r
765.endif\r
766.endm\r
767\r
768.macro opPOPreg reg\r
769 opPOP\r
770 mov \reg,r0, lsl #16\r
771 fetch 10\r
772.endm\r
773;@---------------------------------------\r
774\r
d8f51995 775.macro stack_check\r
776 @ try to protect against stack overflows, lock into current bank\r
777 ldr r1,[cpucontext,#z80sp_base]\r
778 sub r1,z80sp,r1\r
779 cmp r1,#2\r
780 addlt z80sp,z80sp,#1<<Z80_MEM_SHIFT\r
781.endm\r
782\r
cc68a136 783.macro opPUSHareg reg @ reg > r1\r
784.if FAST_Z80SP\r
d8f51995 785.if DRZ80_XMAP\r
786 stack_check\r
787.endif\r
cc68a136 788 mov r1,\reg, lsr #8\r
789 strb r1,[z80sp,#-1]!\r
790 strb \reg,[z80sp,#-1]!\r
cc68a136 791.else\r
792 mov r0,\reg\r
793 sub z80sp,z80sp,#2\r
794 mov r1,z80sp\r
795 writemem16\r
796.endif\r
797.endm\r
798\r
799.macro opPUSHreg reg\r
800.if FAST_Z80SP\r
d8f51995 801.if DRZ80_XMAP\r
802 stack_check\r
803.endif\r
cc68a136 804 mov r1,\reg, lsr #24\r
805 strb r1,[z80sp,#-1]!\r
806 mov r1,\reg, lsr #16\r
807 strb r1,[z80sp,#-1]!\r
cc68a136 808.else\r
809 mov r0,\reg,lsr #16\r
810 sub z80sp,z80sp,#2\r
811 mov r1,z80sp\r
812 writemem16\r
813.endif\r
814.endm\r
815;@---------------------------------------\r
816\r
817.macro opRESmemHL bit\r
cc68a136 818 mov r0,z80hl, lsr #16\r
ee05564f 819.if DRZ80_XMAP\r
820 bl z80_xmap_read8\r
cc68a136 821 bic r0,r0,#1<<\bit\r
822 mov r1,z80hl, lsr #16\r
ee05564f 823 bl z80_xmap_write8\r
cc68a136 824.else\r
cc68a136 825 stmfd sp!,{r3,r12}\r
826 mov lr,pc\r
827 ldr pc,[cpucontext,#z80_read8] ;@ r0 = addr - data returned in r0\r
828 bic r0,r0,#1<<\bit\r
829 mov r1,z80hl, lsr #16\r
830 mov lr,pc\r
831 ldr pc,[cpucontext,#z80_write8] ;@ r0=data r1=addr\r
832 ldmfd sp!,{r3,r12}\r
833.endif\r
834 fetch 15\r
835.endm\r
836;@---------------------------------------\r
837\r
838.macro opRESmem bit\r
ee05564f 839.if DRZ80_XMAP\r
cc68a136 840 stmfd sp!,{r0} ;@ save addr as well\r
ee05564f 841 bl z80_xmap_read8\r
cc68a136 842 bic r0,r0,#1<<\bit\r
843 ldmfd sp!,{r1} ;@ restore addr into r1\r
ee05564f 844 bl z80_xmap_write8\r
cc68a136 845.else\r
846 stmfd sp!,{r3,r12}\r
847 stmfd sp!,{r0} ;@ save addr as well\r
848 mov lr,pc\r
849 ldr pc,[cpucontext,#z80_read8] ;@ r0=addr - data returned in r0\r
850 bic r0,r0,#1<<\bit\r
851 ldmfd sp!,{r1} ;@ restore addr into r1\r
852 mov lr,pc\r
853 ldr pc,[cpucontext,#z80_write8] ;@ r0=data r1=addr\r
854 ldmfd sp!,{r3,r12}\r
855.endif\r
856 fetch 23\r
857.endm\r
858;@---------------------------------------\r
859\r
860.macro opRL reg1 reg2 shift\r
861 movs \reg1,\reg2,lsl \shift\r
862 tst z80f,#1<<CFlag ;@doesn't affect ARM carry, as long as the imidiate value is < 0x100. Watch out!\r
863 orrne \reg1,\reg1,#0x01000000\r
864;@ and r2,z80f,#1<<CFlag\r
865;@ orr $x,$x,r2,lsl#23\r
866 sub r1,opcodes,#0x100\r
867 ldrb z80f,[r1,\reg1,lsr#24] ;@get PZS\r
868 orrcs z80f,z80f,#1<<CFlag\r
869.endm\r
870\r
871.macro opRLA\r
872 opRL z80a, z80a, #1\r
873 fetch 8\r
874.endm\r
875\r
876.macro opRLH reg\r
877 and r0,\reg,#0xFF000000 ;@mask high to r0\r
878 adds \reg,\reg,r0\r
879 tst z80f,#1<<CFlag ;@doesn't affect ARM carry, as long as the imidiate value is < 0x100. Watch out!\r
880 orrne \reg,\reg,#0x01000000\r
881 sub r1,opcodes,#0x100\r
882 ldrb z80f,[r1,\reg,lsr#24] ;@get PZS\r
883 orrcs z80f,z80f,#1<<CFlag\r
884 fetch 8\r
885.endm\r
886\r
887.macro opRLL reg\r
888 opRL r0, \reg, #9\r
889 and \reg,\reg,#0xFF000000 ;@mask out high\r
890 orr \reg,\reg,r0,lsr#8\r
891 fetch 8\r
892.endm\r
893\r
894.macro opRLb\r
895 opRL r0, r0, #25\r
896 mov r0,r0,lsr#24\r
897.endm\r
898;@---------------------------------------\r
899\r
900.macro opRLC reg1 reg2 shift\r
901 movs \reg1,\reg2,lsl#\shift\r
902 orrcs \reg1,\reg1,#0x01000000\r
903 sub r1,opcodes,#0x100\r
904 ldrb z80f,[r1,\reg1,lsr#24]\r
905 orrcs z80f,z80f,#1<<CFlag\r
906.endm\r
907\r
908.macro opRLCA\r
909 opRLC z80a, z80a, 1\r
910 fetch 8\r
911.endm\r
912\r
913.macro opRLCH reg\r
914 and r0,\reg,#0xFF000000 ;@mask high to r0\r
915 adds \reg,\reg,r0\r
916 orrcs \reg,\reg,#0x01000000\r
917 sub r1,opcodes,#0x100\r
918 ldrb z80f,[r1,\reg,lsr#24]\r
919 orrcs z80f,z80f,#1<<CFlag\r
920 fetch 8\r
921.endm\r
922\r
923.macro opRLCL reg\r
924 opRLC r0, \reg, 9\r
925 and \reg,\reg,#0xFF000000 ;@mask out high\r
926 orr \reg,\reg,r0,lsr#8\r
927 fetch 8\r
928.endm\r
929\r
930.macro opRLCb\r
931 opRLC r0, r0, 25\r
932 mov r0,r0,lsr#24\r
933.endm\r
934;@---------------------------------------\r
935\r
936.macro opRR reg1 reg2 shift\r
937 movs \reg1,\reg2,lsr#\shift\r
938 tst z80f,#1<<CFlag ;@doesn't affect ARM carry, as long as the imidiate value is < 0x100. Watch out!\r
939 orrne \reg1,\reg1,#0x00000080\r
940;@ and r2,z80_f,#PSR_C\r
941;@ orr \reg1,\reg1,r2,lsl#6\r
942 sub r1,opcodes,#0x100\r
943 ldrb z80f,[r1,\reg1]\r
944 orrcs z80f,z80f,#1<<CFlag\r
945.endm\r
946\r
947.macro opRRA\r
948 orr z80a,z80a,z80f,lsr#1 ;@get C\r
949 movs z80a,z80a,ror#25\r
950 mov z80a,z80a,lsl#24\r
951 sub r1,opcodes,#0x100\r
952 ldrb z80f,[r1,z80a,lsr#24]\r
953 orrcs z80f,z80f,#1<<CFlag\r
954 fetch 8\r
955.endm\r
956\r
957.macro opRRH reg\r
958 orr r0,\reg,z80f,lsr#1 ;@get C\r
959 movs r0,r0,ror#25\r
960 and \reg,\reg,#0x00FF0000 ;@mask out low\r
961 orr \reg,\reg,r0,lsl#24\r
962 sub r1,opcodes,#0x100\r
963 ldrb z80f,[r1,\reg,lsr#24]\r
964 orrcs z80f,z80f,#1<<CFlag\r
965 fetch 8\r
966.endm\r
967\r
968.macro opRRL reg\r
969 and r0,\reg,#0x00FF0000 ;@mask out low to r0\r
970 opRR r0 r0 17\r
971 and \reg,\reg,#0xFF000000 ;@mask out high\r
972 orr \reg,\reg,r0,lsl#16\r
973 fetch 8\r
974.endm\r
975\r
976.macro opRRb\r
977 opRR r0 r0 1\r
978.endm\r
979;@---------------------------------------\r
980\r
981.macro opRRC reg1 reg2 shift\r
982 movs \reg1,\reg2,lsr#\shift\r
983 orrcs \reg1,\reg1,#0x00000080\r
984 sub r1,opcodes,#0x100\r
985 ldrb z80f,[r1,\reg1]\r
986 orrcs z80f,z80f,#1<<CFlag\r
987.endm\r
988\r
989.macro opRRCA\r
990 opRRC z80a, z80a, 25\r
991 mov z80a,z80a,lsl#24\r
992 fetch 8\r
993.endm\r
994\r
995.macro opRRCH reg\r
996 opRRC r0, \reg, 25\r
997 and \reg,\reg,#0x00FF0000 ;@mask out low\r
998 orr \reg,\reg,r0,lsl#24\r
999 fetch 8\r
1000.endm\r
1001\r
1002.macro opRRCL reg\r
1003 and r0,\reg,#0x00FF0000 ;@mask low to r0\r
1004 opRRC r0, r0, 17\r
1005 and \reg,\reg,#0xFF000000 ;@mask out high\r
1006 orr \reg,\reg,r0,lsl#16\r
1007 fetch 8\r
1008.endm\r
1009\r
1010.macro opRRCb\r
1011 opRRC r0, r0, 1\r
1012.endm\r
1013;@---------------------------------------\r
1014\r
1015.macro opRST addr\r
1016 ldr r0,[cpucontext,#z80pc_base]\r
1017 sub r2,z80pc,r0\r
1018 opPUSHareg r2\r
1019 mov r0,#\addr\r
1020 rebasepc\r
1021 fetch 11\r
1022.endm\r
1023;@---------------------------------------\r
1024\r
1025.macro opSBC\r
1026 eor z80f,z80f,#1<<CFlag ;@ invert C\r
1027 movs z80f,z80f,lsr#2 ;@ get C\r
1028 subcc r0,r0,#0x100\r
1029 eor z80f,r0,z80a,lsr#24 ;@ prepare for check of H\r
1030 sbcs z80a,z80a,r0,ror#8\r
1031 mrs r0,cpsr\r
1032 eor z80f,z80f,z80a,lsr#24\r
1033 and z80f,z80f,#1<<HFlag ;@ H, correct\r
1034 orr z80f,z80f,r0,lsr#28 ;@ S,Z,V&C\r
1035 eor z80f,z80f,#(1<<CFlag)|(1<<NFlag) ;@ invert C and set n.\r
1036.endm\r
1037\r
1038.macro opSBCA\r
1039 movs z80f,z80f,lsr#2 ;@ get C\r
1040 movcc z80a,#0x00000000\r
1041 movcs z80a,#0xFF000000\r
1042 movcc z80f,#(1<<NFlag)|(1<<ZFlag)\r
1043 movcs z80f,#(1<<NFlag)|(1<<SFlag)|(1<<CFlag)|(1<<HFlag)\r
1044 fetch 4\r
1045.endm\r
1046\r
1047.macro opSBCH reg\r
1048 mov r0,\reg,lsr#24\r
1049 opSBC\r
1050 fetch 4\r
1051.endm\r
1052\r
1053.macro opSBCL reg\r
1054 mov r0,\reg,lsl#8\r
1055 eor z80f,z80f,#1<<CFlag ;@ invert C\r
1056 movs z80f,z80f,lsr#2 ;@ get C\r
1057 sbccc r0,r0,#0xFF000000\r
1058 mov r1,z80a,lsl#4 ;@ prepare for check of H\r
1059 sbcs z80a,z80a,r0\r
1060 mrs z80f,cpsr\r
1061 mov z80f,z80f,lsr#28 ;@ S,Z,V&C\r
1062 eor z80f,z80f,#(1<<CFlag)|(1<<NFlag) ;@ invert C and set n.\r
1063 cmp r1,r0,lsl#4\r
1064 orrcc z80f,z80f,#1<<HFlag ;@ H, correct\r
1065 fetch 4\r
1066.endm\r
1067\r
1068.macro opSBCb\r
1069 opSBC\r
1070.endm\r
1071;@---------------------------------------\r
1072\r
1073.macro opSBC16 reg\r
1074 eor z80f,z80f,#1<<CFlag ;@ invert C\r
1075 movs z80f,z80f,lsr#2 ;@ get C\r
1076 sbc r1,r1,r1 ;@ set r1 to -1 or 0.\r
1077 orr r0,\reg,r1,lsr#16\r
1078 mov r1,z80hl,lsl#4 ;@ prepare for check of H\r
1079 sbcs z80hl,z80hl,r0\r
1080 mrs z80f,cpsr\r
1081 mov z80f,z80f,lsr#28 ;@ S,Z,V&C\r
1082 eor z80f,z80f,#(1<<CFlag)|(1<<NFlag) ;@ invert C and set n.\r
1083 cmp r1,r0,lsl#4\r
1084 orrcc z80f,z80f,#1<<HFlag ;@ H, correct\r
1085 fetch 15\r
1086.endm\r
1087\r
1088.macro opSBC16HL\r
1089 movs z80f,z80f,lsr#2 ;@ get C\r
1090 mov z80hl,#0x00000000\r
1091 subcs z80hl,z80hl,#0x00010000\r
1092 movcc z80f,#(1<<NFlag)|(1<<ZFlag)\r
1093 movcs z80f,#(1<<NFlag)|(1<<SFlag)|(1<<CFlag)|(1<<HFlag)\r
1094 fetch 15\r
1095.endm\r
1096;@---------------------------------------\r
1097\r
1098.macro opSETmemHL bit\r
cc68a136 1099 mov r0,z80hl, lsr #16\r
ee05564f 1100.if DRZ80_XMAP\r
1101 bl z80_xmap_read8\r
cc68a136 1102 orr r0,r0,#1<<\bit\r
1103 mov r1,z80hl, lsr #16\r
ee05564f 1104 bl z80_xmap_write8\r
cc68a136 1105.else\r
cc68a136 1106 stmfd sp!,{r3,r12}\r
1107 mov lr,pc\r
1108 ldr pc,[cpucontext,#z80_read8] ;@ r0 = addr - data returned in r0\r
1109 orr r0,r0,#1<<\bit\r
1110 mov r1,z80hl, lsr #16\r
1111 mov lr,pc\r
1112 ldr pc,[cpucontext,#z80_write8] ;@ r0=data r1=addr\r
1113 ldmfd sp!,{r3,r12}\r
1114.endif\r
1115 fetch 15\r
1116.endm\r
1117;@---------------------------------------\r
1118\r
1119.macro opSETmem bit\r
ee05564f 1120.if DRZ80_XMAP\r
cc68a136 1121 stmfd sp!,{r0} ;@ save addr as well\r
ee05564f 1122 bl z80_xmap_read8\r
cc68a136 1123 orr r0,r0,#1<<\bit\r
1124 ldmfd sp!,{r1} ;@ restore addr into r1\r
ee05564f 1125 bl z80_xmap_write8\r
cc68a136 1126.else\r
1127 stmfd sp!,{r3,r12}\r
1128 stmfd sp!,{r0} ;@ save addr as well\r
1129 mov lr,pc\r
1130 ldr pc,[cpucontext,#z80_read8] ;@ r0=addr - data returned in r0\r
1131 orr r0,r0,#1<<\bit\r
1132 ldmfd sp!,{r1} ;@ restore addr into r1\r
1133 mov lr,pc\r
1134 ldr pc,[cpucontext,#z80_write8] ;@ r0=data r1=addr\r
1135 ldmfd sp!,{r3,r12}\r
1136.endif\r
1137 fetch 23\r
1138.endm\r
1139;@---------------------------------------\r
1140\r
1141.macro opSLA reg1 reg2 shift\r
1142 movs \reg1,\reg2,lsl#\shift\r
1143 sub r1,opcodes,#0x100\r
1144 ldrb z80f,[r1,\reg1,lsr#24]\r
1145 orrcs z80f,z80f,#1<<CFlag\r
1146.endm\r
1147\r
1148.macro opSLAA\r
1149 opSLA z80a, z80a, 1\r
1150 fetch 8\r
1151.endm\r
1152\r
1153.macro opSLAH reg\r
1154 and r0,\reg,#0xFF000000 ;@mask high to r0\r
1155 adds \reg,\reg,r0\r
1156 sub r1,opcodes,#0x100\r
1157 ldrb z80f,[r1,\reg,lsr#24]\r
1158 orrcs z80f,z80f,#1<<CFlag\r
1159 fetch 8\r
1160.endm\r
1161\r
1162.macro opSLAL reg\r
1163 opSLA r0, \reg, 9\r
1164 and \reg,\reg,#0xFF000000 ;@mask out high\r
1165 orr \reg,\reg,r0,lsr#8\r
1166 fetch 8\r
1167.endm\r
1168\r
1169.macro opSLAb\r
1170 opSLA r0, r0, 25\r
1171 mov r0,r0,lsr#24\r
1172.endm\r
1173;@---------------------------------------\r
1174\r
1175.macro opSLL reg1 reg2 shift\r
1176 movs \reg1,\reg2,lsl#\shift\r
1177 orr \reg1,\reg1,#0x01000000\r
1178 sub r1,opcodes,#0x100\r
1179 ldrb z80f,[r1,\reg1,lsr#24]\r
1180 orrcs z80f,z80f,#1<<CFlag\r
1181.endm\r
1182\r
1183.macro opSLLA\r
1184 opSLL z80a, z80a, 1\r
1185 fetch 8\r
1186.endm\r
1187\r
1188.macro opSLLH reg\r
1189 and r0,\reg,#0xFF000000 ;@mask high to r0\r
1190 adds \reg,\reg,r0\r
1191 orr \reg,\reg,#0x01000000\r
1192 sub r1,opcodes,#0x100\r
1193 ldrb z80f,[r1,\reg,lsr#24]\r
1194 orrcs z80f,z80f,#1<<CFlag\r
1195 fetch 8\r
1196.endm\r
1197\r
1198.macro opSLLL reg\r
1199 opSLL r0, \reg, 9\r
1200 and \reg,\reg,#0xFF000000 ;@mask out high\r
1201 orr \reg,\reg,r0,lsr#8\r
1202 fetch 8\r
1203.endm\r
1204\r
1205.macro opSLLb\r
1206 opSLL r0, r0, 25\r
1207 mov r0,r0,lsr#24\r
1208.endm\r
1209;@---------------------------------------\r
1210\r
1211.macro opSRA reg1 reg2\r
1212 movs \reg1,\reg2,asr#25\r
1213 and \reg1,\reg1,#0xFF\r
1214 sub r1,opcodes,#0x100\r
1215 ldrb z80f,[r1,\reg1]\r
1216 orrcs z80f,z80f,#1<<CFlag\r
1217.endm\r
1218\r
1219.macro opSRAA\r
1220 movs r0,z80a,asr#25\r
1221 mov z80a,r0,lsl#24\r
1222 sub r1,opcodes,#0x100\r
1223 ldrb z80f,[r1,z80a,lsr#24]\r
1224 orrcs z80f,z80f,#1<<CFlag\r
1225 fetch 8\r
1226.endm\r
1227\r
1228.macro opSRAH reg\r
1229 movs r0,\reg,asr#25\r
1230 and \reg,\reg,#0x00FF0000 ;@mask out low\r
1231 orr \reg,\reg,r0,lsl#24\r
1232 sub r1,opcodes,#0x100\r
1233 ldrb z80f,[r1,\reg,lsr#24]\r
1234 orrcs z80f,z80f,#1<<CFlag\r
1235 fetch 8\r
1236.endm\r
1237\r
1238.macro opSRAL reg\r
1239 mov r0,\reg,lsl#8\r
1240 opSRA r0, r0\r
1241 and \reg,\reg,#0xFF000000 ;@mask out high\r
1242 orr \reg,\reg,r0,lsl#16\r
1243 fetch 8\r
1244.endm\r
1245\r
1246.macro opSRAb\r
1247 mov r0,r0,lsl#24\r
1248 opSRA r0, r0\r
1249.endm\r
1250;@---------------------------------------\r
1251\r
1252.macro opSRL reg1 reg2 shift\r
1253 movs \reg1,\reg2,lsr#\shift\r
1254 sub r1,opcodes,#0x100\r
1255 ldrb z80f,[r1,\reg1]\r
1256 orrcs z80f,z80f,#1<<CFlag\r
1257.endm\r
1258\r
1259.macro opSRLA\r
1260 opSRL z80a, z80a, 25\r
1261 mov z80a,z80a,lsl#24\r
1262 fetch 8\r
1263.endm\r
1264\r
1265.macro opSRLH reg\r
1266 opSRL r0, \reg, 25\r
1267 and \reg,\reg,#0x00FF0000 ;@mask out low\r
1268 orr \reg,\reg,r0,lsl#24\r
1269 fetch 8\r
1270.endm\r
1271\r
1272.macro opSRLL reg\r
1273 mov r0,\reg,lsl#8\r
1274 opSRL r0, r0, 25\r
1275 and \reg,\reg,#0xFF000000 ;@mask out high\r
1276 orr \reg,\reg,r0,lsl#16\r
1277 fetch 8\r
1278.endm\r
1279\r
1280.macro opSRLb\r
1281 opSRL r0, r0, 1\r
1282.endm\r
1283;@---------------------------------------\r
1284\r
1285.macro opSUB reg shift\r
1286 mov r1,z80a,lsl#4 ;@ Prepare for check of half carry\r
1287 subs z80a,z80a,\reg,lsl#\shift\r
1288 mrs z80f,cpsr\r
1289 mov z80f,z80f,lsr#28 ;@ S,Z,V&C\r
1290 eor z80f,z80f,#(1<<CFlag)|(1<<NFlag) ;@ invert C and set n\r
1291 cmp r1,\reg,lsl#\shift+4\r
1292 orrcc z80f,z80f,#1<<HFlag\r
1293.endm\r
1294\r
1295.macro opSUBA\r
1296 mov z80a,#0\r
1297 mov z80f,#(1<<ZFlag)|(1<<NFlag) ;@ set Z & n\r
1298 fetch 4\r
1299.endm\r
1300\r
1301.macro opSUBH reg\r
1302 and r0,\reg,#0xFF000000\r
1303 opSUB r0, 0\r
1304 fetch 4\r
1305.endm\r
1306\r
1307.macro opSUBL reg\r
1308 opSUB \reg, 8\r
1309 fetch 4\r
1310.endm\r
1311\r
1312.macro opSUBb\r
1313 opSUB r0, 24\r
1314.endm\r
1315;@---------------------------------------\r
1316\r
1317.macro opXOR reg shift\r
1318 eor z80a,z80a,\reg,lsl#\shift\r
1319 sub r0,opcodes,#0x100\r
1320 ldrb z80f,[r0,z80a, lsr #24]\r
1321.endm\r
1322\r
1323.macro opXORA\r
1324 mov z80a,#0\r
1325 mov z80f,#(1<<ZFlag)|(1<<VFlag)\r
1326 fetch 4\r
1327.endm\r
1328\r
1329.macro opXORH reg\r
1330 and r0,\reg,#0xFF000000\r
1331 opXOR r0, 0\r
1332 fetch 4\r
1333.endm\r
1334\r
1335.macro opXORL reg\r
1336 opXOR \reg, 8\r
1337 fetch 4\r
1338.endm\r
1339\r
1340.macro opXORb\r
1341 opXOR r0, 24\r
1342.endm\r
1343;@---------------------------------------\r
1344\r
1345\r
1346;@ --------------------------- Framework --------------------------\r
1347 \r
1348.text\r
1349\r
1350DrZ80Run:\r
1351 ;@ r0 = pointer to cpu context\r
1352 ;@ r1 = ISTATES to execute \r
1353 ;@######################################### \r
1354 stmdb sp!,{r4-r12,lr} ;@ save registers on stack\r
1355 mov cpucontext,r0 ;@ setup main memory pointer\r
1356 mov z80_icount,r1 ;@ setup number of Tstates to execute\r
1357\r
1358.if INTERRUPT_MODE == 0\r
de89bf45 1359 ldrh r0,[cpucontext,#z80irq] @ 0x4C, irq and IFF bits\r
cc68a136 1360.endif\r
1361 ldmia cpucontext,{z80pc-z80sp} ;@ load Z80 registers\r
1362\r
1363.if INTERRUPT_MODE == 0\r
1364 ;@ check ints\r
835122bc 1365 tst r0,#(Z80_NMI<<8)\r
1366 blne DoNMI\r
de89bf45 1367 tst r0,#0xff\r
1368 movne r0,r0,lsr #8\r
835122bc 1369 tstne r0,#Z80_IF1\r
de89bf45 1370 blne DoInterrupt\r
cc68a136 1371.endif\r
1372\r
cc68a136 1373 ldr opcodes,MAIN_opcodes_POINTER2\r
cc68a136 1374\r
de89bf45 1375 cmp z80_icount,#0 ;@ irq might have used all cycles\r
1376 ldrplb r0,[z80pc],#1\r
1377 ldrpl pc,[opcodes,r0, lsl #2]\r
cc68a136 1378\r
1379\r
1380z80_execute_end:\r
1381 ;@ save registers in CPU context\r
1382 stmia cpucontext,{z80pc-z80sp} ;@ save Z80 registers\r
de89bf45 1383 mov r0,z80_icount\r
cc68a136 1384 ldmia sp!,{r4-r12,pc} ;@ restore registers from stack and return to C code\r
1385\r
de89bf45 1386MAIN_opcodes_POINTER2: .word MAIN_opcodes\r
cc68a136 1387.if INTERRUPT_MODE\r
1388Interrupt_local: .word Interrupt\r
1389.endif\r
1390\r
1391DoInterrupt:\r
1392.if INTERRUPT_MODE\r
1393 ;@ Don't do own int handler, call mames instead\r
1394\r
1395 ;@ save everything back into DrZ80 context\r
1396 stmia cpucontext,{z80pc-z80sp} ;@ save Z80 registers\r
1397 stmfd sp!,{r3,r4,r5,lr} ;@ save rest of regs on stack\r
1398 mov lr,pc\r
1399 ldr pc,Interrupt_local\r
1400 ldmfd sp!,{r3,r4,r5,lr} ;@ load regs from stack\r
1401 ;@ reload regs from DrZ80 context\r
1402 ldmia cpucontext,{z80pc-z80sp} ;@ load Z80 registers\r
1403 mov pc,lr ;@ return\r
1404.else\r
de89bf45 1405\r
1406 ;@ r0 == z80if\r
cc68a136 1407 stmfd sp!,{lr}\r
1408\r
1409 tst r0,#4 ;@ check halt\r
1410 addne z80pc,z80pc,#1\r
1411\r
1412 ldrb r1,[cpucontext,#z80im]\r
1413\r
1414 ;@ clear halt and int flags\r
1415 eor r0,r0,r0\r
1416 strb r0,[cpucontext,#z80if]\r
1417\r
1418 ;@ now check int mode\r
de89bf45 1419 cmp r1,#1\r
1420 beq DoInterrupt_mode1\r
1421 bgt DoInterrupt_mode2\r
cc68a136 1422\r
1423DoInterrupt_mode0:\r
1424 ;@ get 3 byte vector\r
1425 ldr r2,[cpucontext, #z80irqvector]\r
1426 and r1,r2,#0xFF0000\r
1427 cmp r1,#0xCD0000 ;@ call\r
1428 bne 1f\r
1429 ;@ ########\r
1430 ;@ # call\r
1431 ;@ ########\r
1432 ;@ save current pc on stack\r
1433 ldr r0,[cpucontext,#z80pc_base]\r
1434 sub r0,z80pc,r0\r
1435.if FAST_Z80SP\r
1436 mov r1,r0, lsr #8\r
1437 strb r1,[z80sp,#-1]!\r
1438 strb r0,[z80sp,#-1]!\r
1439.else\r
1440 sub z80sp,z80sp,#2\r
1441 mov r1,z80sp\r
1442 writemem16\r
1443 ldr r2,[cpucontext, #z80irqvector]\r
1444.endif\r
1445 ;@ jump to vector\r
1446 mov r2,r2,lsl#16\r
1447 mov r0,r2,lsr#16\r
1448 ;@ rebase new pc\r
1449 rebasepc\r
1450\r
de89bf45 1451 eatcycles 13\r
cc68a136 1452 b DoInterrupt_end\r
1453\r
14541:\r
1455 cmp r1,#0xC30000 ;@ jump\r
1456 bne DoInterrupt_mode1 ;@ rst\r
1457 ;@ #######\r
1458 ;@ # jump\r
1459 ;@ #######\r
1460 ;@ jump to vector\r
1461 mov r2,r2,lsl#16\r
1462 mov r0,r2,lsr#16\r
1463 ;@ rebase new pc\r
1464 rebasepc\r
1465\r
de89bf45 1466 eatcycles 13\r
cc68a136 1467 b DoInterrupt_end\r
1468\r
1469DoInterrupt_mode1:\r
1470 ldr r0,[cpucontext,#z80pc_base]\r
1471 sub r2,z80pc,r0\r
1472 opPUSHareg r2\r
1473 mov r0,#0x38\r
1474 rebasepc\r
1475\r
de89bf45 1476 eatcycles 13\r
cc68a136 1477 b DoInterrupt_end\r
1478\r
1479DoInterrupt_mode2:\r
1480 ;@ push pc on stack\r
1481 ldr r0,[cpucontext,#z80pc_base]\r
1482 sub r2,z80pc,r0\r
1483 opPUSHareg r2\r
1484\r
1485 ;@ get 1 byte vector address\r
1486 ldrb r0,[cpucontext, #z80irqvector]\r
1487 ldr r1,[cpucontext, #z80i]\r
1488 orr r0,r0,r1,lsr#16\r
1489\r
1490 ;@ read new pc from vector address\r
cc68a136 1491.if UPDATE_CONTEXT\r
1492 str z80pc,[cpucontext,#z80pc_pointer]\r
1493.endif\r
ee05564f 1494.if DRZ80_XMAP\r
1495 bl z80_xmap_read16\r
1496 rebasepc\r
cc68a136 1497.else\r
1498 stmfd sp!,{r3,r12}\r
1499 mov lr,pc\r
1500 ldr pc,[cpucontext,#z80_read16]\r
1501\r
1502 ;@ rebase new pc\r
cc68a136 1503 mov lr,pc\r
1504 ldr pc,[cpucontext,#z80_rebasePC] ;@ r0=new pc - external function sets z80pc_base and returns new z80pc in r0\r
1505 ldmfd sp!,{r3,r12}\r
1506 mov z80pc,r0 \r
1507.endif\r
de89bf45 1508 eatcycles 17\r
cc68a136 1509\r
1510DoInterrupt_end:\r
1511 ;@ interupt accepted so callback irq interface\r
1512 ldr r0,[cpucontext, #z80irqcallback]\r
1513 tst r0,r0\r
de89bf45 1514 streqb r0,[cpucontext,#z80irq] ;@ default handling\r
cc68a136 1515 ldmeqfd sp!,{pc}\r
1516 stmfd sp!,{r3,r12}\r
1517 mov lr,pc\r
1518 mov pc,r0 ;@ call callback function\r
1519 ldmfd sp!,{r3,r12}\r
1520 ldmfd sp!,{pc} ;@ return\r
cc68a136 1521.endif\r
1522\r
835122bc 1523DoNMI:\r
1524 stmfd sp!,{lr}\r
1525\r
1526 bic r0,r0,#((Z80_NMI|Z80_HALT|Z80_IF1)<<8)\r
1527 strh r0,[cpucontext,#z80irq] @ 0x4C, irq and IFF bits\r
1528\r
1529 ;@ push pc on stack\r
1530 ldr r0,[cpucontext,#z80pc_base]\r
1531 sub r2,z80pc,r0\r
1532 opPUSHareg r2\r
1533\r
1534 ;@ read new pc from vector address\r
1535.if UPDATE_CONTEXT\r
1536 str z80pc,[cpucontext,#z80pc_pointer]\r
1537.endif\r
1538 mov r0,#0x66\r
1539.if DRZ80_XMAP\r
1540 rebasepc\r
1541.else\r
1542 stmfd sp!,{r3,r12}\r
1543 mov lr,pc\r
1544 ldr pc,[cpucontext,#z80_rebasePC] ;@ r0=new pc - external function sets z80pc_base and returns new z80pc in r0\r
1545 ldmfd sp!,{r3,r12}\r
1546 mov z80pc,r0 \r
1547.endif\r
1548 ldrh r0,[cpucontext,#z80irq] @ 0x4C, irq and IFF bits\r
1549 eatcycles 11\r
1550 ldmfd sp!,{pc}\r
1551\r
1552\r
cc68a136 1553.data\r
1554.align 4\r
1555\r
1556DAATable: .hword (0x00<<8)|(1<<ZFlag)|(1<<VFlag)\r
1557 .hword (0x01<<8) \r
1558 .hword (0x02<<8) \r
1559 .hword (0x03<<8) |(1<<VFlag)\r
1560 .hword (0x04<<8) \r
1561 .hword (0x05<<8) |(1<<VFlag)\r
1562 .hword (0x06<<8) |(1<<VFlag)\r
1563 .hword (0x07<<8) \r
1564 .hword (0x08<<8) \r
1565 .hword (0x09<<8) |(1<<VFlag)\r
1566 .hword (0x10<<8) |(1<<HFlag) \r
1567 .hword (0x11<<8) |(1<<HFlag) |(1<<VFlag)\r
1568 .hword (0x12<<8) |(1<<HFlag) |(1<<VFlag)\r
1569 .hword (0x13<<8) |(1<<HFlag) \r
1570 .hword (0x14<<8) |(1<<HFlag) |(1<<VFlag)\r
1571 .hword (0x15<<8) |(1<<HFlag) \r
1572 .hword (0x10<<8) \r
1573 .hword (0x11<<8) |(1<<VFlag)\r
1574 .hword (0x12<<8) |(1<<VFlag)\r
1575 .hword (0x13<<8) \r
1576 .hword (0x14<<8) |(1<<VFlag)\r
1577 .hword (0x15<<8) \r
1578 .hword (0x16<<8) \r
1579 .hword (0x17<<8) |(1<<VFlag)\r
1580 .hword (0x18<<8) |(1<<VFlag)\r
1581 .hword (0x19<<8) \r
1582 .hword (0x20<<8) |(1<<HFlag) \r
1583 .hword (0x21<<8) |(1<<HFlag) |(1<<VFlag)\r
1584 .hword (0x22<<8) |(1<<HFlag) |(1<<VFlag)\r
1585 .hword (0x23<<8) |(1<<HFlag) \r
1586 .hword (0x24<<8) |(1<<HFlag) |(1<<VFlag)\r
1587 .hword (0x25<<8) |(1<<HFlag) \r
1588 .hword (0x20<<8) \r
1589 .hword (0x21<<8) |(1<<VFlag)\r
1590 .hword (0x22<<8) |(1<<VFlag)\r
1591 .hword (0x23<<8) \r
1592 .hword (0x24<<8) |(1<<VFlag)\r
1593 .hword (0x25<<8) \r
1594 .hword (0x26<<8) \r
1595 .hword (0x27<<8) |(1<<VFlag)\r
1596 .hword (0x28<<8) |(1<<VFlag)\r
1597 .hword (0x29<<8) \r
1598 .hword (0x30<<8) |(1<<HFlag) |(1<<VFlag)\r
1599 .hword (0x31<<8) |(1<<HFlag) \r
1600 .hword (0x32<<8) |(1<<HFlag) \r
1601 .hword (0x33<<8) |(1<<HFlag) |(1<<VFlag)\r
1602 .hword (0x34<<8) |(1<<HFlag) \r
1603 .hword (0x35<<8) |(1<<HFlag) |(1<<VFlag)\r
1604 .hword (0x30<<8) |(1<<VFlag)\r
1605 .hword (0x31<<8) \r
1606 .hword (0x32<<8) \r
1607 .hword (0x33<<8) |(1<<VFlag)\r
1608 .hword (0x34<<8) \r
1609 .hword (0x35<<8) |(1<<VFlag)\r
1610 .hword (0x36<<8) |(1<<VFlag)\r
1611 .hword (0x37<<8) \r
1612 .hword (0x38<<8) \r
1613 .hword (0x39<<8) |(1<<VFlag)\r
1614 .hword (0x40<<8) |(1<<HFlag) \r
1615 .hword (0x41<<8) |(1<<HFlag) |(1<<VFlag)\r
1616 .hword (0x42<<8) |(1<<HFlag) |(1<<VFlag)\r
1617 .hword (0x43<<8) |(1<<HFlag) \r
1618 .hword (0x44<<8) |(1<<HFlag) |(1<<VFlag)\r
1619 .hword (0x45<<8) |(1<<HFlag) \r
1620 .hword (0x40<<8) \r
1621 .hword (0x41<<8) |(1<<VFlag)\r
1622 .hword (0x42<<8) |(1<<VFlag)\r
1623 .hword (0x43<<8) \r
1624 .hword (0x44<<8) |(1<<VFlag)\r
1625 .hword (0x45<<8) \r
1626 .hword (0x46<<8) \r
1627 .hword (0x47<<8) |(1<<VFlag)\r
1628 .hword (0x48<<8) |(1<<VFlag)\r
1629 .hword (0x49<<8) \r
1630 .hword (0x50<<8) |(1<<HFlag) |(1<<VFlag)\r
1631 .hword (0x51<<8) |(1<<HFlag) \r
1632 .hword (0x52<<8) |(1<<HFlag) \r
1633 .hword (0x53<<8) |(1<<HFlag) |(1<<VFlag)\r
1634 .hword (0x54<<8) |(1<<HFlag) \r
1635 .hword (0x55<<8) |(1<<HFlag) |(1<<VFlag)\r
1636 .hword (0x50<<8) |(1<<VFlag)\r
1637 .hword (0x51<<8) \r
1638 .hword (0x52<<8) \r
1639 .hword (0x53<<8) |(1<<VFlag)\r
1640 .hword (0x54<<8) \r
1641 .hword (0x55<<8) |(1<<VFlag)\r
1642 .hword (0x56<<8) |(1<<VFlag)\r
1643 .hword (0x57<<8) \r
1644 .hword (0x58<<8) \r
1645 .hword (0x59<<8) |(1<<VFlag)\r
1646 .hword (0x60<<8) |(1<<HFlag) |(1<<VFlag)\r
1647 .hword (0x61<<8) |(1<<HFlag) \r
1648 .hword (0x62<<8) |(1<<HFlag) \r
1649 .hword (0x63<<8) |(1<<HFlag) |(1<<VFlag)\r
1650 .hword (0x64<<8) |(1<<HFlag) \r
1651 .hword (0x65<<8) |(1<<HFlag) |(1<<VFlag)\r
1652 .hword (0x60<<8) |(1<<VFlag)\r
1653 .hword (0x61<<8) \r
1654 .hword (0x62<<8) \r
1655 .hword (0x63<<8) |(1<<VFlag)\r
1656 .hword (0x64<<8) \r
1657 .hword (0x65<<8) |(1<<VFlag)\r
1658 .hword (0x66<<8) |(1<<VFlag)\r
1659 .hword (0x67<<8) \r
1660 .hword (0x68<<8) \r
1661 .hword (0x69<<8) |(1<<VFlag)\r
1662 .hword (0x70<<8) |(1<<HFlag) \r
1663 .hword (0x71<<8) |(1<<HFlag) |(1<<VFlag)\r
1664 .hword (0x72<<8) |(1<<HFlag) |(1<<VFlag)\r
1665 .hword (0x73<<8) |(1<<HFlag) \r
1666 .hword (0x74<<8) |(1<<HFlag) |(1<<VFlag)\r
1667 .hword (0x75<<8) |(1<<HFlag) \r
1668 .hword (0x70<<8) \r
1669 .hword (0x71<<8) |(1<<VFlag)\r
1670 .hword (0x72<<8) |(1<<VFlag)\r
1671 .hword (0x73<<8) \r
1672 .hword (0x74<<8) |(1<<VFlag)\r
1673 .hword (0x75<<8) \r
1674 .hword (0x76<<8) \r
1675 .hword (0x77<<8) |(1<<VFlag)\r
1676 .hword (0x78<<8) |(1<<VFlag)\r
1677 .hword (0x79<<8) \r
1678 .hword (0x80<<8)|(1<<SFlag) |(1<<HFlag) \r
1679 .hword (0x81<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag)\r
1680 .hword (0x82<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag)\r
1681 .hword (0x83<<8)|(1<<SFlag) |(1<<HFlag) \r
1682 .hword (0x84<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag)\r
1683 .hword (0x85<<8)|(1<<SFlag) |(1<<HFlag) \r
1684 .hword (0x80<<8)|(1<<SFlag) \r
1685 .hword (0x81<<8)|(1<<SFlag) |(1<<VFlag)\r
1686 .hword (0x82<<8)|(1<<SFlag) |(1<<VFlag)\r
1687 .hword (0x83<<8)|(1<<SFlag) \r
1688 .hword (0x84<<8)|(1<<SFlag) |(1<<VFlag)\r
1689 .hword (0x85<<8)|(1<<SFlag) \r
1690 .hword (0x86<<8)|(1<<SFlag) \r
1691 .hword (0x87<<8)|(1<<SFlag) |(1<<VFlag)\r
1692 .hword (0x88<<8)|(1<<SFlag) |(1<<VFlag)\r
1693 .hword (0x89<<8)|(1<<SFlag) \r
1694 .hword (0x90<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag)\r
1695 .hword (0x91<<8)|(1<<SFlag) |(1<<HFlag) \r
1696 .hword (0x92<<8)|(1<<SFlag) |(1<<HFlag) \r
1697 .hword (0x93<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag)\r
1698 .hword (0x94<<8)|(1<<SFlag) |(1<<HFlag) \r
1699 .hword (0x95<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag)\r
1700 .hword (0x90<<8)|(1<<SFlag) |(1<<VFlag)\r
1701 .hword (0x91<<8)|(1<<SFlag) \r
1702 .hword (0x92<<8)|(1<<SFlag) \r
1703 .hword (0x93<<8)|(1<<SFlag) |(1<<VFlag)\r
1704 .hword (0x94<<8)|(1<<SFlag) \r
1705 .hword (0x95<<8)|(1<<SFlag) |(1<<VFlag)\r
1706 .hword (0x96<<8)|(1<<SFlag) |(1<<VFlag)\r
1707 .hword (0x97<<8)|(1<<SFlag) \r
1708 .hword (0x98<<8)|(1<<SFlag) \r
1709 .hword (0x99<<8)|(1<<SFlag) |(1<<VFlag)\r
1710 .hword (0x00<<8) |(1<<ZFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1711 .hword (0x01<<8) |(1<<HFlag) |(1<<CFlag)\r
1712 .hword (0x02<<8) |(1<<HFlag) |(1<<CFlag)\r
1713 .hword (0x03<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1714 .hword (0x04<<8) |(1<<HFlag) |(1<<CFlag)\r
1715 .hword (0x05<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1716 .hword (0x00<<8) |(1<<ZFlag) |(1<<VFlag) |(1<<CFlag)\r
1717 .hword (0x01<<8) |(1<<CFlag)\r
1718 .hword (0x02<<8) |(1<<CFlag)\r
1719 .hword (0x03<<8) |(1<<VFlag) |(1<<CFlag)\r
1720 .hword (0x04<<8) |(1<<CFlag)\r
1721 .hword (0x05<<8) |(1<<VFlag) |(1<<CFlag)\r
1722 .hword (0x06<<8) |(1<<VFlag) |(1<<CFlag)\r
1723 .hword (0x07<<8) |(1<<CFlag)\r
1724 .hword (0x08<<8) |(1<<CFlag)\r
1725 .hword (0x09<<8) |(1<<VFlag) |(1<<CFlag)\r
1726 .hword (0x10<<8) |(1<<HFlag) |(1<<CFlag)\r
1727 .hword (0x11<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1728 .hword (0x12<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1729 .hword (0x13<<8) |(1<<HFlag) |(1<<CFlag)\r
1730 .hword (0x14<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1731 .hword (0x15<<8) |(1<<HFlag) |(1<<CFlag)\r
1732 .hword (0x10<<8) |(1<<CFlag)\r
1733 .hword (0x11<<8) |(1<<VFlag) |(1<<CFlag)\r
1734 .hword (0x12<<8) |(1<<VFlag) |(1<<CFlag)\r
1735 .hword (0x13<<8) |(1<<CFlag)\r
1736 .hword (0x14<<8) |(1<<VFlag) |(1<<CFlag)\r
1737 .hword (0x15<<8) |(1<<CFlag)\r
1738 .hword (0x16<<8) |(1<<CFlag)\r
1739 .hword (0x17<<8) |(1<<VFlag) |(1<<CFlag)\r
1740 .hword (0x18<<8) |(1<<VFlag) |(1<<CFlag)\r
1741 .hword (0x19<<8) |(1<<CFlag)\r
1742 .hword (0x20<<8) |(1<<HFlag) |(1<<CFlag)\r
1743 .hword (0x21<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1744 .hword (0x22<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1745 .hword (0x23<<8) |(1<<HFlag) |(1<<CFlag)\r
1746 .hword (0x24<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1747 .hword (0x25<<8) |(1<<HFlag) |(1<<CFlag)\r
1748 .hword (0x20<<8) |(1<<CFlag)\r
1749 .hword (0x21<<8) |(1<<VFlag) |(1<<CFlag)\r
1750 .hword (0x22<<8) |(1<<VFlag) |(1<<CFlag)\r
1751 .hword (0x23<<8) |(1<<CFlag)\r
1752 .hword (0x24<<8) |(1<<VFlag) |(1<<CFlag)\r
1753 .hword (0x25<<8) |(1<<CFlag)\r
1754 .hword (0x26<<8) |(1<<CFlag)\r
1755 .hword (0x27<<8) |(1<<VFlag) |(1<<CFlag)\r
1756 .hword (0x28<<8) |(1<<VFlag) |(1<<CFlag)\r
1757 .hword (0x29<<8) |(1<<CFlag)\r
1758 .hword (0x30<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1759 .hword (0x31<<8) |(1<<HFlag) |(1<<CFlag)\r
1760 .hword (0x32<<8) |(1<<HFlag) |(1<<CFlag)\r
1761 .hword (0x33<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1762 .hword (0x34<<8) |(1<<HFlag) |(1<<CFlag)\r
1763 .hword (0x35<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1764 .hword (0x30<<8) |(1<<VFlag) |(1<<CFlag)\r
1765 .hword (0x31<<8) |(1<<CFlag)\r
1766 .hword (0x32<<8) |(1<<CFlag)\r
1767 .hword (0x33<<8) |(1<<VFlag) |(1<<CFlag)\r
1768 .hword (0x34<<8) |(1<<CFlag)\r
1769 .hword (0x35<<8) |(1<<VFlag) |(1<<CFlag)\r
1770 .hword (0x36<<8) |(1<<VFlag) |(1<<CFlag)\r
1771 .hword (0x37<<8) |(1<<CFlag)\r
1772 .hword (0x38<<8) |(1<<CFlag)\r
1773 .hword (0x39<<8) |(1<<VFlag) |(1<<CFlag)\r
1774 .hword (0x40<<8) |(1<<HFlag) |(1<<CFlag)\r
1775 .hword (0x41<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1776 .hword (0x42<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1777 .hword (0x43<<8) |(1<<HFlag) |(1<<CFlag)\r
1778 .hword (0x44<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1779 .hword (0x45<<8) |(1<<HFlag) |(1<<CFlag)\r
1780 .hword (0x40<<8) |(1<<CFlag)\r
1781 .hword (0x41<<8) |(1<<VFlag) |(1<<CFlag)\r
1782 .hword (0x42<<8) |(1<<VFlag) |(1<<CFlag)\r
1783 .hword (0x43<<8) |(1<<CFlag)\r
1784 .hword (0x44<<8) |(1<<VFlag) |(1<<CFlag)\r
1785 .hword (0x45<<8) |(1<<CFlag)\r
1786 .hword (0x46<<8) |(1<<CFlag)\r
1787 .hword (0x47<<8) |(1<<VFlag) |(1<<CFlag)\r
1788 .hword (0x48<<8) |(1<<VFlag) |(1<<CFlag)\r
1789 .hword (0x49<<8) |(1<<CFlag)\r
1790 .hword (0x50<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1791 .hword (0x51<<8) |(1<<HFlag) |(1<<CFlag)\r
1792 .hword (0x52<<8) |(1<<HFlag) |(1<<CFlag)\r
1793 .hword (0x53<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1794 .hword (0x54<<8) |(1<<HFlag) |(1<<CFlag)\r
1795 .hword (0x55<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1796 .hword (0x50<<8) |(1<<VFlag) |(1<<CFlag)\r
1797 .hword (0x51<<8) |(1<<CFlag)\r
1798 .hword (0x52<<8) |(1<<CFlag)\r
1799 .hword (0x53<<8) |(1<<VFlag) |(1<<CFlag)\r
1800 .hword (0x54<<8) |(1<<CFlag)\r
1801 .hword (0x55<<8) |(1<<VFlag) |(1<<CFlag)\r
1802 .hword (0x56<<8) |(1<<VFlag) |(1<<CFlag)\r
1803 .hword (0x57<<8) |(1<<CFlag)\r
1804 .hword (0x58<<8) |(1<<CFlag)\r
1805 .hword (0x59<<8) |(1<<VFlag) |(1<<CFlag)\r
1806 .hword (0x60<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1807 .hword (0x61<<8) |(1<<HFlag) |(1<<CFlag)\r
1808 .hword (0x62<<8) |(1<<HFlag) |(1<<CFlag)\r
1809 .hword (0x63<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1810 .hword (0x64<<8) |(1<<HFlag) |(1<<CFlag)\r
1811 .hword (0x65<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1812 .hword (0x60<<8) |(1<<VFlag) |(1<<CFlag)\r
1813 .hword (0x61<<8) |(1<<CFlag)\r
1814 .hword (0x62<<8) |(1<<CFlag)\r
1815 .hword (0x63<<8) |(1<<VFlag) |(1<<CFlag)\r
1816 .hword (0x64<<8) |(1<<CFlag)\r
1817 .hword (0x65<<8) |(1<<VFlag) |(1<<CFlag)\r
1818 .hword (0x66<<8) |(1<<VFlag) |(1<<CFlag)\r
1819 .hword (0x67<<8) |(1<<CFlag)\r
1820 .hword (0x68<<8) |(1<<CFlag)\r
1821 .hword (0x69<<8) |(1<<VFlag) |(1<<CFlag)\r
1822 .hword (0x70<<8) |(1<<HFlag) |(1<<CFlag)\r
1823 .hword (0x71<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1824 .hword (0x72<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1825 .hword (0x73<<8) |(1<<HFlag) |(1<<CFlag)\r
1826 .hword (0x74<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1827 .hword (0x75<<8) |(1<<HFlag) |(1<<CFlag)\r
1828 .hword (0x70<<8) |(1<<CFlag)\r
1829 .hword (0x71<<8) |(1<<VFlag) |(1<<CFlag)\r
1830 .hword (0x72<<8) |(1<<VFlag) |(1<<CFlag)\r
1831 .hword (0x73<<8) |(1<<CFlag)\r
1832 .hword (0x74<<8) |(1<<VFlag) |(1<<CFlag)\r
1833 .hword (0x75<<8) |(1<<CFlag)\r
1834 .hword (0x76<<8) |(1<<CFlag)\r
1835 .hword (0x77<<8) |(1<<VFlag) |(1<<CFlag)\r
1836 .hword (0x78<<8) |(1<<VFlag) |(1<<CFlag)\r
1837 .hword (0x79<<8) |(1<<CFlag)\r
1838 .hword (0x80<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
1839 .hword (0x81<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1840 .hword (0x82<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1841 .hword (0x83<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
1842 .hword (0x84<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1843 .hword (0x85<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
1844 .hword (0x80<<8)|(1<<SFlag) |(1<<CFlag)\r
1845 .hword (0x81<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
1846 .hword (0x82<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
1847 .hword (0x83<<8)|(1<<SFlag) |(1<<CFlag)\r
1848 .hword (0x84<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
1849 .hword (0x85<<8)|(1<<SFlag) |(1<<CFlag)\r
1850 .hword (0x86<<8)|(1<<SFlag) |(1<<CFlag)\r
1851 .hword (0x87<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
1852 .hword (0x88<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
1853 .hword (0x89<<8)|(1<<SFlag) |(1<<CFlag)\r
1854 .hword (0x90<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1855 .hword (0x91<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
1856 .hword (0x92<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
1857 .hword (0x93<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1858 .hword (0x94<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
1859 .hword (0x95<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1860 .hword (0x90<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
1861 .hword (0x91<<8)|(1<<SFlag) |(1<<CFlag)\r
1862 .hword (0x92<<8)|(1<<SFlag) |(1<<CFlag)\r
1863 .hword (0x93<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
1864 .hword (0x94<<8)|(1<<SFlag) |(1<<CFlag)\r
1865 .hword (0x95<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
1866 .hword (0x96<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
1867 .hword (0x97<<8)|(1<<SFlag) |(1<<CFlag)\r
1868 .hword (0x98<<8)|(1<<SFlag) |(1<<CFlag)\r
1869 .hword (0x99<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
1870 .hword (0xA0<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1871 .hword (0xA1<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
1872 .hword (0xA2<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
1873 .hword (0xA3<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1874 .hword (0xA4<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
1875 .hword (0xA5<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1876 .hword (0xA0<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
1877 .hword (0xA1<<8)|(1<<SFlag) |(1<<CFlag)\r
1878 .hword (0xA2<<8)|(1<<SFlag) |(1<<CFlag)\r
1879 .hword (0xA3<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
1880 .hword (0xA4<<8)|(1<<SFlag) |(1<<CFlag)\r
1881 .hword (0xA5<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
1882 .hword (0xA6<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
1883 .hword (0xA7<<8)|(1<<SFlag) |(1<<CFlag)\r
1884 .hword (0xA8<<8)|(1<<SFlag) |(1<<CFlag)\r
1885 .hword (0xA9<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
1886 .hword (0xB0<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
1887 .hword (0xB1<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1888 .hword (0xB2<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1889 .hword (0xB3<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
1890 .hword (0xB4<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1891 .hword (0xB5<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
1892 .hword (0xB0<<8)|(1<<SFlag) |(1<<CFlag)\r
1893 .hword (0xB1<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
1894 .hword (0xB2<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
1895 .hword (0xB3<<8)|(1<<SFlag) |(1<<CFlag)\r
1896 .hword (0xB4<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
1897 .hword (0xB5<<8)|(1<<SFlag) |(1<<CFlag)\r
1898 .hword (0xB6<<8)|(1<<SFlag) |(1<<CFlag)\r
1899 .hword (0xB7<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
1900 .hword (0xB8<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
1901 .hword (0xB9<<8)|(1<<SFlag) |(1<<CFlag)\r
1902 .hword (0xC0<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1903 .hword (0xC1<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
1904 .hword (0xC2<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
1905 .hword (0xC3<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1906 .hword (0xC4<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
1907 .hword (0xC5<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1908 .hword (0xC0<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
1909 .hword (0xC1<<8)|(1<<SFlag) |(1<<CFlag)\r
1910 .hword (0xC2<<8)|(1<<SFlag) |(1<<CFlag)\r
1911 .hword (0xC3<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
1912 .hword (0xC4<<8)|(1<<SFlag) |(1<<CFlag)\r
1913 .hword (0xC5<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
1914 .hword (0xC6<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
1915 .hword (0xC7<<8)|(1<<SFlag) |(1<<CFlag)\r
1916 .hword (0xC8<<8)|(1<<SFlag) |(1<<CFlag)\r
1917 .hword (0xC9<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
1918 .hword (0xD0<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
1919 .hword (0xD1<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1920 .hword (0xD2<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1921 .hword (0xD3<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
1922 .hword (0xD4<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1923 .hword (0xD5<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
1924 .hword (0xD0<<8)|(1<<SFlag) |(1<<CFlag)\r
1925 .hword (0xD1<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
1926 .hword (0xD2<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
1927 .hword (0xD3<<8)|(1<<SFlag) |(1<<CFlag)\r
1928 .hword (0xD4<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
1929 .hword (0xD5<<8)|(1<<SFlag) |(1<<CFlag)\r
1930 .hword (0xD6<<8)|(1<<SFlag) |(1<<CFlag)\r
1931 .hword (0xD7<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
1932 .hword (0xD8<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
1933 .hword (0xD9<<8)|(1<<SFlag) |(1<<CFlag)\r
1934 .hword (0xE0<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
1935 .hword (0xE1<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1936 .hword (0xE2<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1937 .hword (0xE3<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
1938 .hword (0xE4<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1939 .hword (0xE5<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
1940 .hword (0xE0<<8)|(1<<SFlag) |(1<<CFlag)\r
1941 .hword (0xE1<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
1942 .hword (0xE2<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
1943 .hword (0xE3<<8)|(1<<SFlag) |(1<<CFlag)\r
1944 .hword (0xE4<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
1945 .hword (0xE5<<8)|(1<<SFlag) |(1<<CFlag)\r
1946 .hword (0xE6<<8)|(1<<SFlag) |(1<<CFlag)\r
1947 .hword (0xE7<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
1948 .hword (0xE8<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
1949 .hword (0xE9<<8)|(1<<SFlag) |(1<<CFlag)\r
1950 .hword (0xF0<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1951 .hword (0xF1<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
1952 .hword (0xF2<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
1953 .hword (0xF3<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1954 .hword (0xF4<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
1955 .hword (0xF5<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1956 .hword (0xF0<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
1957 .hword (0xF1<<8)|(1<<SFlag) |(1<<CFlag)\r
1958 .hword (0xF2<<8)|(1<<SFlag) |(1<<CFlag)\r
1959 .hword (0xF3<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
1960 .hword (0xF4<<8)|(1<<SFlag) |(1<<CFlag)\r
1961 .hword (0xF5<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
1962 .hword (0xF6<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
1963 .hword (0xF7<<8)|(1<<SFlag) |(1<<CFlag)\r
1964 .hword (0xF8<<8)|(1<<SFlag) |(1<<CFlag)\r
1965 .hword (0xF9<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
1966 .hword (0x00<<8) |(1<<ZFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1967 .hword (0x01<<8) |(1<<HFlag) |(1<<CFlag)\r
1968 .hword (0x02<<8) |(1<<HFlag) |(1<<CFlag)\r
1969 .hword (0x03<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1970 .hword (0x04<<8) |(1<<HFlag) |(1<<CFlag)\r
1971 .hword (0x05<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1972 .hword (0x00<<8) |(1<<ZFlag) |(1<<VFlag) |(1<<CFlag)\r
1973 .hword (0x01<<8) |(1<<CFlag)\r
1974 .hword (0x02<<8) |(1<<CFlag)\r
1975 .hword (0x03<<8) |(1<<VFlag) |(1<<CFlag)\r
1976 .hword (0x04<<8) |(1<<CFlag)\r
1977 .hword (0x05<<8) |(1<<VFlag) |(1<<CFlag)\r
1978 .hword (0x06<<8) |(1<<VFlag) |(1<<CFlag)\r
1979 .hword (0x07<<8) |(1<<CFlag)\r
1980 .hword (0x08<<8) |(1<<CFlag)\r
1981 .hword (0x09<<8) |(1<<VFlag) |(1<<CFlag)\r
1982 .hword (0x10<<8) |(1<<HFlag) |(1<<CFlag)\r
1983 .hword (0x11<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1984 .hword (0x12<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1985 .hword (0x13<<8) |(1<<HFlag) |(1<<CFlag)\r
1986 .hword (0x14<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1987 .hword (0x15<<8) |(1<<HFlag) |(1<<CFlag)\r
1988 .hword (0x10<<8) |(1<<CFlag)\r
1989 .hword (0x11<<8) |(1<<VFlag) |(1<<CFlag)\r
1990 .hword (0x12<<8) |(1<<VFlag) |(1<<CFlag)\r
1991 .hword (0x13<<8) |(1<<CFlag)\r
1992 .hword (0x14<<8) |(1<<VFlag) |(1<<CFlag)\r
1993 .hword (0x15<<8) |(1<<CFlag)\r
1994 .hword (0x16<<8) |(1<<CFlag)\r
1995 .hword (0x17<<8) |(1<<VFlag) |(1<<CFlag)\r
1996 .hword (0x18<<8) |(1<<VFlag) |(1<<CFlag)\r
1997 .hword (0x19<<8) |(1<<CFlag)\r
1998 .hword (0x20<<8) |(1<<HFlag) |(1<<CFlag)\r
1999 .hword (0x21<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2000 .hword (0x22<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2001 .hword (0x23<<8) |(1<<HFlag) |(1<<CFlag)\r
2002 .hword (0x24<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2003 .hword (0x25<<8) |(1<<HFlag) |(1<<CFlag)\r
2004 .hword (0x20<<8) |(1<<CFlag)\r
2005 .hword (0x21<<8) |(1<<VFlag) |(1<<CFlag)\r
2006 .hword (0x22<<8) |(1<<VFlag) |(1<<CFlag)\r
2007 .hword (0x23<<8) |(1<<CFlag)\r
2008 .hword (0x24<<8) |(1<<VFlag) |(1<<CFlag)\r
2009 .hword (0x25<<8) |(1<<CFlag)\r
2010 .hword (0x26<<8) |(1<<CFlag)\r
2011 .hword (0x27<<8) |(1<<VFlag) |(1<<CFlag)\r
2012 .hword (0x28<<8) |(1<<VFlag) |(1<<CFlag)\r
2013 .hword (0x29<<8) |(1<<CFlag)\r
2014 .hword (0x30<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2015 .hword (0x31<<8) |(1<<HFlag) |(1<<CFlag)\r
2016 .hword (0x32<<8) |(1<<HFlag) |(1<<CFlag)\r
2017 .hword (0x33<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2018 .hword (0x34<<8) |(1<<HFlag) |(1<<CFlag)\r
2019 .hword (0x35<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2020 .hword (0x30<<8) |(1<<VFlag) |(1<<CFlag)\r
2021 .hword (0x31<<8) |(1<<CFlag)\r
2022 .hword (0x32<<8) |(1<<CFlag)\r
2023 .hword (0x33<<8) |(1<<VFlag) |(1<<CFlag)\r
2024 .hword (0x34<<8) |(1<<CFlag)\r
2025 .hword (0x35<<8) |(1<<VFlag) |(1<<CFlag)\r
2026 .hword (0x36<<8) |(1<<VFlag) |(1<<CFlag)\r
2027 .hword (0x37<<8) |(1<<CFlag)\r
2028 .hword (0x38<<8) |(1<<CFlag)\r
2029 .hword (0x39<<8) |(1<<VFlag) |(1<<CFlag)\r
2030 .hword (0x40<<8) |(1<<HFlag) |(1<<CFlag)\r
2031 .hword (0x41<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2032 .hword (0x42<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2033 .hword (0x43<<8) |(1<<HFlag) |(1<<CFlag)\r
2034 .hword (0x44<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2035 .hword (0x45<<8) |(1<<HFlag) |(1<<CFlag)\r
2036 .hword (0x40<<8) |(1<<CFlag)\r
2037 .hword (0x41<<8) |(1<<VFlag) |(1<<CFlag)\r
2038 .hword (0x42<<8) |(1<<VFlag) |(1<<CFlag)\r
2039 .hword (0x43<<8) |(1<<CFlag)\r
2040 .hword (0x44<<8) |(1<<VFlag) |(1<<CFlag)\r
2041 .hword (0x45<<8) |(1<<CFlag)\r
2042 .hword (0x46<<8) |(1<<CFlag)\r
2043 .hword (0x47<<8) |(1<<VFlag) |(1<<CFlag)\r
2044 .hword (0x48<<8) |(1<<VFlag) |(1<<CFlag)\r
2045 .hword (0x49<<8) |(1<<CFlag)\r
2046 .hword (0x50<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2047 .hword (0x51<<8) |(1<<HFlag) |(1<<CFlag)\r
2048 .hword (0x52<<8) |(1<<HFlag) |(1<<CFlag)\r
2049 .hword (0x53<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2050 .hword (0x54<<8) |(1<<HFlag) |(1<<CFlag)\r
2051 .hword (0x55<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2052 .hword (0x50<<8) |(1<<VFlag) |(1<<CFlag)\r
2053 .hword (0x51<<8) |(1<<CFlag)\r
2054 .hword (0x52<<8) |(1<<CFlag)\r
2055 .hword (0x53<<8) |(1<<VFlag) |(1<<CFlag)\r
2056 .hword (0x54<<8) |(1<<CFlag)\r
2057 .hword (0x55<<8) |(1<<VFlag) |(1<<CFlag)\r
2058 .hword (0x56<<8) |(1<<VFlag) |(1<<CFlag)\r
2059 .hword (0x57<<8) |(1<<CFlag)\r
2060 .hword (0x58<<8) |(1<<CFlag)\r
2061 .hword (0x59<<8) |(1<<VFlag) |(1<<CFlag)\r
2062 .hword (0x60<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2063 .hword (0x61<<8) |(1<<HFlag) |(1<<CFlag)\r
2064 .hword (0x62<<8) |(1<<HFlag) |(1<<CFlag)\r
2065 .hword (0x63<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2066 .hword (0x64<<8) |(1<<HFlag) |(1<<CFlag)\r
2067 .hword (0x65<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2068 .hword (0x06<<8) |(1<<VFlag)\r
2069 .hword (0x07<<8) \r
2070 .hword (0x08<<8) \r
2071 .hword (0x09<<8) |(1<<VFlag)\r
2072 .hword (0x0A<<8) |(1<<VFlag)\r
2073 .hword (0x0B<<8) \r
2074 .hword (0x0C<<8) |(1<<VFlag)\r
2075 .hword (0x0D<<8) \r
2076 .hword (0x0E<<8) \r
2077 .hword (0x0F<<8) |(1<<VFlag)\r
2078 .hword (0x10<<8) |(1<<HFlag) \r
2079 .hword (0x11<<8) |(1<<HFlag) |(1<<VFlag)\r
2080 .hword (0x12<<8) |(1<<HFlag) |(1<<VFlag)\r
2081 .hword (0x13<<8) |(1<<HFlag) \r
2082 .hword (0x14<<8) |(1<<HFlag) |(1<<VFlag)\r
2083 .hword (0x15<<8) |(1<<HFlag) \r
2084 .hword (0x16<<8) \r
2085 .hword (0x17<<8) |(1<<VFlag)\r
2086 .hword (0x18<<8) |(1<<VFlag)\r
2087 .hword (0x19<<8) \r
2088 .hword (0x1A<<8) \r
2089 .hword (0x1B<<8) |(1<<VFlag)\r
2090 .hword (0x1C<<8) \r
2091 .hword (0x1D<<8) |(1<<VFlag)\r
2092 .hword (0x1E<<8) |(1<<VFlag)\r
2093 .hword (0x1F<<8) \r
2094 .hword (0x20<<8) |(1<<HFlag) \r
2095 .hword (0x21<<8) |(1<<HFlag) |(1<<VFlag)\r
2096 .hword (0x22<<8) |(1<<HFlag) |(1<<VFlag)\r
2097 .hword (0x23<<8) |(1<<HFlag) \r
2098 .hword (0x24<<8) |(1<<HFlag) |(1<<VFlag)\r
2099 .hword (0x25<<8) |(1<<HFlag) \r
2100 .hword (0x26<<8) \r
2101 .hword (0x27<<8) |(1<<VFlag)\r
2102 .hword (0x28<<8) |(1<<VFlag)\r
2103 .hword (0x29<<8) \r
2104 .hword (0x2A<<8) \r
2105 .hword (0x2B<<8) |(1<<VFlag)\r
2106 .hword (0x2C<<8) \r
2107 .hword (0x2D<<8) |(1<<VFlag)\r
2108 .hword (0x2E<<8) |(1<<VFlag)\r
2109 .hword (0x2F<<8) \r
2110 .hword (0x30<<8) |(1<<HFlag) |(1<<VFlag)\r
2111 .hword (0x31<<8) |(1<<HFlag) \r
2112 .hword (0x32<<8) |(1<<HFlag) \r
2113 .hword (0x33<<8) |(1<<HFlag) |(1<<VFlag)\r
2114 .hword (0x34<<8) |(1<<HFlag) \r
2115 .hword (0x35<<8) |(1<<HFlag) |(1<<VFlag)\r
2116 .hword (0x36<<8) |(1<<VFlag)\r
2117 .hword (0x37<<8) \r
2118 .hword (0x38<<8) \r
2119 .hword (0x39<<8) |(1<<VFlag)\r
2120 .hword (0x3A<<8) |(1<<VFlag)\r
2121 .hword (0x3B<<8) \r
2122 .hword (0x3C<<8) |(1<<VFlag)\r
2123 .hword (0x3D<<8) \r
2124 .hword (0x3E<<8) \r
2125 .hword (0x3F<<8) |(1<<VFlag)\r
2126 .hword (0x40<<8) |(1<<HFlag) \r
2127 .hword (0x41<<8) |(1<<HFlag) |(1<<VFlag)\r
2128 .hword (0x42<<8) |(1<<HFlag) |(1<<VFlag)\r
2129 .hword (0x43<<8) |(1<<HFlag) \r
2130 .hword (0x44<<8) |(1<<HFlag) |(1<<VFlag)\r
2131 .hword (0x45<<8) |(1<<HFlag) \r
2132 .hword (0x46<<8) \r
2133 .hword (0x47<<8) |(1<<VFlag)\r
2134 .hword (0x48<<8) |(1<<VFlag)\r
2135 .hword (0x49<<8) \r
2136 .hword (0x4A<<8) \r
2137 .hword (0x4B<<8) |(1<<VFlag)\r
2138 .hword (0x4C<<8) \r
2139 .hword (0x4D<<8) |(1<<VFlag)\r
2140 .hword (0x4E<<8) |(1<<VFlag)\r
2141 .hword (0x4F<<8) \r
2142 .hword (0x50<<8) |(1<<HFlag) |(1<<VFlag)\r
2143 .hword (0x51<<8) |(1<<HFlag) \r
2144 .hword (0x52<<8) |(1<<HFlag) \r
2145 .hword (0x53<<8) |(1<<HFlag) |(1<<VFlag)\r
2146 .hword (0x54<<8) |(1<<HFlag) \r
2147 .hword (0x55<<8) |(1<<HFlag) |(1<<VFlag)\r
2148 .hword (0x56<<8) |(1<<VFlag)\r
2149 .hword (0x57<<8) \r
2150 .hword (0x58<<8) \r
2151 .hword (0x59<<8) |(1<<VFlag)\r
2152 .hword (0x5A<<8) |(1<<VFlag)\r
2153 .hword (0x5B<<8) \r
2154 .hword (0x5C<<8) |(1<<VFlag)\r
2155 .hword (0x5D<<8) \r
2156 .hword (0x5E<<8) \r
2157 .hword (0x5F<<8) |(1<<VFlag)\r
2158 .hword (0x60<<8) |(1<<HFlag) |(1<<VFlag)\r
2159 .hword (0x61<<8) |(1<<HFlag) \r
2160 .hword (0x62<<8) |(1<<HFlag) \r
2161 .hword (0x63<<8) |(1<<HFlag) |(1<<VFlag)\r
2162 .hword (0x64<<8) |(1<<HFlag) \r
2163 .hword (0x65<<8) |(1<<HFlag) |(1<<VFlag)\r
2164 .hword (0x66<<8) |(1<<VFlag)\r
2165 .hword (0x67<<8) \r
2166 .hword (0x68<<8) \r
2167 .hword (0x69<<8) |(1<<VFlag)\r
2168 .hword (0x6A<<8) |(1<<VFlag)\r
2169 .hword (0x6B<<8) \r
2170 .hword (0x6C<<8) |(1<<VFlag)\r
2171 .hword (0x6D<<8) \r
2172 .hword (0x6E<<8) \r
2173 .hword (0x6F<<8) |(1<<VFlag)\r
2174 .hword (0x70<<8) |(1<<HFlag) \r
2175 .hword (0x71<<8) |(1<<HFlag) |(1<<VFlag)\r
2176 .hword (0x72<<8) |(1<<HFlag) |(1<<VFlag)\r
2177 .hword (0x73<<8) |(1<<HFlag) \r
2178 .hword (0x74<<8) |(1<<HFlag) |(1<<VFlag)\r
2179 .hword (0x75<<8) |(1<<HFlag) \r
2180 .hword (0x76<<8) \r
2181 .hword (0x77<<8) |(1<<VFlag)\r
2182 .hword (0x78<<8) |(1<<VFlag)\r
2183 .hword (0x79<<8) \r
2184 .hword (0x7A<<8) \r
2185 .hword (0x7B<<8) |(1<<VFlag)\r
2186 .hword (0x7C<<8) \r
2187 .hword (0x7D<<8) |(1<<VFlag)\r
2188 .hword (0x7E<<8) |(1<<VFlag)\r
2189 .hword (0x7F<<8) \r
2190 .hword (0x80<<8)|(1<<SFlag) |(1<<HFlag) \r
2191 .hword (0x81<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag)\r
2192 .hword (0x82<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag)\r
2193 .hword (0x83<<8)|(1<<SFlag) |(1<<HFlag) \r
2194 .hword (0x84<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag)\r
2195 .hword (0x85<<8)|(1<<SFlag) |(1<<HFlag) \r
2196 .hword (0x86<<8)|(1<<SFlag) \r
2197 .hword (0x87<<8)|(1<<SFlag) |(1<<VFlag)\r
2198 .hword (0x88<<8)|(1<<SFlag) |(1<<VFlag)\r
2199 .hword (0x89<<8)|(1<<SFlag) \r
2200 .hword (0x8A<<8)|(1<<SFlag) \r
2201 .hword (0x8B<<8)|(1<<SFlag) |(1<<VFlag)\r
2202 .hword (0x8C<<8)|(1<<SFlag) \r
2203 .hword (0x8D<<8)|(1<<SFlag) |(1<<VFlag)\r
2204 .hword (0x8E<<8)|(1<<SFlag) |(1<<VFlag)\r
2205 .hword (0x8F<<8)|(1<<SFlag) \r
2206 .hword (0x90<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag)\r
2207 .hword (0x91<<8)|(1<<SFlag) |(1<<HFlag) \r
2208 .hword (0x92<<8)|(1<<SFlag) |(1<<HFlag) \r
2209 .hword (0x93<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag)\r
2210 .hword (0x94<<8)|(1<<SFlag) |(1<<HFlag) \r
2211 .hword (0x95<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag)\r
2212 .hword (0x96<<8)|(1<<SFlag) |(1<<VFlag)\r
2213 .hword (0x97<<8)|(1<<SFlag) \r
2214 .hword (0x98<<8)|(1<<SFlag) \r
2215 .hword (0x99<<8)|(1<<SFlag) |(1<<VFlag)\r
2216 .hword (0x9A<<8)|(1<<SFlag) |(1<<VFlag)\r
2217 .hword (0x9B<<8)|(1<<SFlag) \r
2218 .hword (0x9C<<8)|(1<<SFlag) |(1<<VFlag)\r
2219 .hword (0x9D<<8)|(1<<SFlag) \r
2220 .hword (0x9E<<8)|(1<<SFlag) \r
2221 .hword (0x9F<<8)|(1<<SFlag) |(1<<VFlag)\r
2222 .hword (0x00<<8) |(1<<ZFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2223 .hword (0x01<<8) |(1<<HFlag) |(1<<CFlag)\r
2224 .hword (0x02<<8) |(1<<HFlag) |(1<<CFlag)\r
2225 .hword (0x03<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2226 .hword (0x04<<8) |(1<<HFlag) |(1<<CFlag)\r
2227 .hword (0x05<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2228 .hword (0x06<<8) |(1<<VFlag) |(1<<CFlag)\r
2229 .hword (0x07<<8) |(1<<CFlag)\r
2230 .hword (0x08<<8) |(1<<CFlag)\r
2231 .hword (0x09<<8) |(1<<VFlag) |(1<<CFlag)\r
2232 .hword (0x0A<<8) |(1<<VFlag) |(1<<CFlag)\r
2233 .hword (0x0B<<8) |(1<<CFlag)\r
2234 .hword (0x0C<<8) |(1<<VFlag) |(1<<CFlag)\r
2235 .hword (0x0D<<8) |(1<<CFlag)\r
2236 .hword (0x0E<<8) |(1<<CFlag)\r
2237 .hword (0x0F<<8) |(1<<VFlag) |(1<<CFlag)\r
2238 .hword (0x10<<8) |(1<<HFlag) |(1<<CFlag)\r
2239 .hword (0x11<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2240 .hword (0x12<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2241 .hword (0x13<<8) |(1<<HFlag) |(1<<CFlag)\r
2242 .hword (0x14<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2243 .hword (0x15<<8) |(1<<HFlag) |(1<<CFlag)\r
2244 .hword (0x16<<8) |(1<<CFlag)\r
2245 .hword (0x17<<8) |(1<<VFlag) |(1<<CFlag)\r
2246 .hword (0x18<<8) |(1<<VFlag) |(1<<CFlag)\r
2247 .hword (0x19<<8) |(1<<CFlag)\r
2248 .hword (0x1A<<8) |(1<<CFlag)\r
2249 .hword (0x1B<<8) |(1<<VFlag) |(1<<CFlag)\r
2250 .hword (0x1C<<8) |(1<<CFlag)\r
2251 .hword (0x1D<<8) |(1<<VFlag) |(1<<CFlag)\r
2252 .hword (0x1E<<8) |(1<<VFlag) |(1<<CFlag)\r
2253 .hword (0x1F<<8) |(1<<CFlag)\r
2254 .hword (0x20<<8) |(1<<HFlag) |(1<<CFlag)\r
2255 .hword (0x21<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2256 .hword (0x22<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2257 .hword (0x23<<8) |(1<<HFlag) |(1<<CFlag)\r
2258 .hword (0x24<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2259 .hword (0x25<<8) |(1<<HFlag) |(1<<CFlag)\r
2260 .hword (0x26<<8) |(1<<CFlag)\r
2261 .hword (0x27<<8) |(1<<VFlag) |(1<<CFlag)\r
2262 .hword (0x28<<8) |(1<<VFlag) |(1<<CFlag)\r
2263 .hword (0x29<<8) |(1<<CFlag)\r
2264 .hword (0x2A<<8) |(1<<CFlag)\r
2265 .hword (0x2B<<8) |(1<<VFlag) |(1<<CFlag)\r
2266 .hword (0x2C<<8) |(1<<CFlag)\r
2267 .hword (0x2D<<8) |(1<<VFlag) |(1<<CFlag)\r
2268 .hword (0x2E<<8) |(1<<VFlag) |(1<<CFlag)\r
2269 .hword (0x2F<<8) |(1<<CFlag)\r
2270 .hword (0x30<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2271 .hword (0x31<<8) |(1<<HFlag) |(1<<CFlag)\r
2272 .hword (0x32<<8) |(1<<HFlag) |(1<<CFlag)\r
2273 .hword (0x33<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2274 .hword (0x34<<8) |(1<<HFlag) |(1<<CFlag)\r
2275 .hword (0x35<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2276 .hword (0x36<<8) |(1<<VFlag) |(1<<CFlag)\r
2277 .hword (0x37<<8) |(1<<CFlag)\r
2278 .hword (0x38<<8) |(1<<CFlag)\r
2279 .hword (0x39<<8) |(1<<VFlag) |(1<<CFlag)\r
2280 .hword (0x3A<<8) |(1<<VFlag) |(1<<CFlag)\r
2281 .hword (0x3B<<8) |(1<<CFlag)\r
2282 .hword (0x3C<<8) |(1<<VFlag) |(1<<CFlag)\r
2283 .hword (0x3D<<8) |(1<<CFlag)\r
2284 .hword (0x3E<<8) |(1<<CFlag)\r
2285 .hword (0x3F<<8) |(1<<VFlag) |(1<<CFlag)\r
2286 .hword (0x40<<8) |(1<<HFlag) |(1<<CFlag)\r
2287 .hword (0x41<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2288 .hword (0x42<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2289 .hword (0x43<<8) |(1<<HFlag) |(1<<CFlag)\r
2290 .hword (0x44<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2291 .hword (0x45<<8) |(1<<HFlag) |(1<<CFlag)\r
2292 .hword (0x46<<8) |(1<<CFlag)\r
2293 .hword (0x47<<8) |(1<<VFlag) |(1<<CFlag)\r
2294 .hword (0x48<<8) |(1<<VFlag) |(1<<CFlag)\r
2295 .hword (0x49<<8) |(1<<CFlag)\r
2296 .hword (0x4A<<8) |(1<<CFlag)\r
2297 .hword (0x4B<<8) |(1<<VFlag) |(1<<CFlag)\r
2298 .hword (0x4C<<8) |(1<<CFlag)\r
2299 .hword (0x4D<<8) |(1<<VFlag) |(1<<CFlag)\r
2300 .hword (0x4E<<8) |(1<<VFlag) |(1<<CFlag)\r
2301 .hword (0x4F<<8) |(1<<CFlag)\r
2302 .hword (0x50<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2303 .hword (0x51<<8) |(1<<HFlag) |(1<<CFlag)\r
2304 .hword (0x52<<8) |(1<<HFlag) |(1<<CFlag)\r
2305 .hword (0x53<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2306 .hword (0x54<<8) |(1<<HFlag) |(1<<CFlag)\r
2307 .hword (0x55<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2308 .hword (0x56<<8) |(1<<VFlag) |(1<<CFlag)\r
2309 .hword (0x57<<8) |(1<<CFlag)\r
2310 .hword (0x58<<8) |(1<<CFlag)\r
2311 .hword (0x59<<8) |(1<<VFlag) |(1<<CFlag)\r
2312 .hword (0x5A<<8) |(1<<VFlag) |(1<<CFlag)\r
2313 .hword (0x5B<<8) |(1<<CFlag)\r
2314 .hword (0x5C<<8) |(1<<VFlag) |(1<<CFlag)\r
2315 .hword (0x5D<<8) |(1<<CFlag)\r
2316 .hword (0x5E<<8) |(1<<CFlag)\r
2317 .hword (0x5F<<8) |(1<<VFlag) |(1<<CFlag)\r
2318 .hword (0x60<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2319 .hword (0x61<<8) |(1<<HFlag) |(1<<CFlag)\r
2320 .hword (0x62<<8) |(1<<HFlag) |(1<<CFlag)\r
2321 .hword (0x63<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2322 .hword (0x64<<8) |(1<<HFlag) |(1<<CFlag)\r
2323 .hword (0x65<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2324 .hword (0x66<<8) |(1<<VFlag) |(1<<CFlag)\r
2325 .hword (0x67<<8) |(1<<CFlag)\r
2326 .hword (0x68<<8) |(1<<CFlag)\r
2327 .hword (0x69<<8) |(1<<VFlag) |(1<<CFlag)\r
2328 .hword (0x6A<<8) |(1<<VFlag) |(1<<CFlag)\r
2329 .hword (0x6B<<8) |(1<<CFlag)\r
2330 .hword (0x6C<<8) |(1<<VFlag) |(1<<CFlag)\r
2331 .hword (0x6D<<8) |(1<<CFlag)\r
2332 .hword (0x6E<<8) |(1<<CFlag)\r
2333 .hword (0x6F<<8) |(1<<VFlag) |(1<<CFlag)\r
2334 .hword (0x70<<8) |(1<<HFlag) |(1<<CFlag)\r
2335 .hword (0x71<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2336 .hword (0x72<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2337 .hword (0x73<<8) |(1<<HFlag) |(1<<CFlag)\r
2338 .hword (0x74<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2339 .hword (0x75<<8) |(1<<HFlag) |(1<<CFlag)\r
2340 .hword (0x76<<8) |(1<<CFlag)\r
2341 .hword (0x77<<8) |(1<<VFlag) |(1<<CFlag)\r
2342 .hword (0x78<<8) |(1<<VFlag) |(1<<CFlag)\r
2343 .hword (0x79<<8) |(1<<CFlag)\r
2344 .hword (0x7A<<8) |(1<<CFlag)\r
2345 .hword (0x7B<<8) |(1<<VFlag) |(1<<CFlag)\r
2346 .hword (0x7C<<8) |(1<<CFlag)\r
2347 .hword (0x7D<<8) |(1<<VFlag) |(1<<CFlag)\r
2348 .hword (0x7E<<8) |(1<<VFlag) |(1<<CFlag)\r
2349 .hword (0x7F<<8) |(1<<CFlag)\r
2350 .hword (0x80<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
2351 .hword (0x81<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2352 .hword (0x82<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2353 .hword (0x83<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
2354 .hword (0x84<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2355 .hword (0x85<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
2356 .hword (0x86<<8)|(1<<SFlag) |(1<<CFlag)\r
2357 .hword (0x87<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
2358 .hword (0x88<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
2359 .hword (0x89<<8)|(1<<SFlag) |(1<<CFlag)\r
2360 .hword (0x8A<<8)|(1<<SFlag) |(1<<CFlag)\r
2361 .hword (0x8B<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
2362 .hword (0x8C<<8)|(1<<SFlag) |(1<<CFlag)\r
2363 .hword (0x8D<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
2364 .hword (0x8E<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
2365 .hword (0x8F<<8)|(1<<SFlag) |(1<<CFlag)\r
2366 .hword (0x90<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2367 .hword (0x91<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
2368 .hword (0x92<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
2369 .hword (0x93<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2370 .hword (0x94<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
2371 .hword (0x95<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2372 .hword (0x96<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
2373 .hword (0x97<<8)|(1<<SFlag) |(1<<CFlag)\r
2374 .hword (0x98<<8)|(1<<SFlag) |(1<<CFlag)\r
2375 .hword (0x99<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
2376 .hword (0x9A<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
2377 .hword (0x9B<<8)|(1<<SFlag) |(1<<CFlag)\r
2378 .hword (0x9C<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
2379 .hword (0x9D<<8)|(1<<SFlag) |(1<<CFlag)\r
2380 .hword (0x9E<<8)|(1<<SFlag) |(1<<CFlag)\r
2381 .hword (0x9F<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
2382 .hword (0xA0<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2383 .hword (0xA1<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
2384 .hword (0xA2<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
2385 .hword (0xA3<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2386 .hword (0xA4<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
2387 .hword (0xA5<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2388 .hword (0xA6<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
2389 .hword (0xA7<<8)|(1<<SFlag) |(1<<CFlag)\r
2390 .hword (0xA8<<8)|(1<<SFlag) |(1<<CFlag)\r
2391 .hword (0xA9<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
2392 .hword (0xAA<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
2393 .hword (0xAB<<8)|(1<<SFlag) |(1<<CFlag)\r
2394 .hword (0xAC<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
2395 .hword (0xAD<<8)|(1<<SFlag) |(1<<CFlag)\r
2396 .hword (0xAE<<8)|(1<<SFlag) |(1<<CFlag)\r
2397 .hword (0xAF<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
2398 .hword (0xB0<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
2399 .hword (0xB1<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2400 .hword (0xB2<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2401 .hword (0xB3<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
2402 .hword (0xB4<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2403 .hword (0xB5<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
2404 .hword (0xB6<<8)|(1<<SFlag) |(1<<CFlag)\r
2405 .hword (0xB7<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
2406 .hword (0xB8<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
2407 .hword (0xB9<<8)|(1<<SFlag) |(1<<CFlag)\r
2408 .hword (0xBA<<8)|(1<<SFlag) |(1<<CFlag)\r
2409 .hword (0xBB<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
2410 .hword (0xBC<<8)|(1<<SFlag) |(1<<CFlag)\r
2411 .hword (0xBD<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
2412 .hword (0xBE<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
2413 .hword (0xBF<<8)|(1<<SFlag) |(1<<CFlag)\r
2414 .hword (0xC0<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2415 .hword (0xC1<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
2416 .hword (0xC2<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
2417 .hword (0xC3<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2418 .hword (0xC4<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
2419 .hword (0xC5<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2420 .hword (0xC6<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
2421 .hword (0xC7<<8)|(1<<SFlag) |(1<<CFlag)\r
2422 .hword (0xC8<<8)|(1<<SFlag) |(1<<CFlag)\r
2423 .hword (0xC9<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
2424 .hword (0xCA<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
2425 .hword (0xCB<<8)|(1<<SFlag) |(1<<CFlag)\r
2426 .hword (0xCC<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
2427 .hword (0xCD<<8)|(1<<SFlag) |(1<<CFlag)\r
2428 .hword (0xCE<<8)|(1<<SFlag) |(1<<CFlag)\r
2429 .hword (0xCF<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
2430 .hword (0xD0<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
2431 .hword (0xD1<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2432 .hword (0xD2<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2433 .hword (0xD3<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
2434 .hword (0xD4<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2435 .hword (0xD5<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
2436 .hword (0xD6<<8)|(1<<SFlag) |(1<<CFlag)\r
2437 .hword (0xD7<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
2438 .hword (0xD8<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
2439 .hword (0xD9<<8)|(1<<SFlag) |(1<<CFlag)\r
2440 .hword (0xDA<<8)|(1<<SFlag) |(1<<CFlag)\r
2441 .hword (0xDB<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
2442 .hword (0xDC<<8)|(1<<SFlag) |(1<<CFlag)\r
2443 .hword (0xDD<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
2444 .hword (0xDE<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
2445 .hword (0xDF<<8)|(1<<SFlag) |(1<<CFlag)\r
2446 .hword (0xE0<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
2447 .hword (0xE1<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2448 .hword (0xE2<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2449 .hword (0xE3<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
2450 .hword (0xE4<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2451 .hword (0xE5<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
2452 .hword (0xE6<<8)|(1<<SFlag) |(1<<CFlag)\r
2453 .hword (0xE7<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
2454 .hword (0xE8<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
2455 .hword (0xE9<<8)|(1<<SFlag) |(1<<CFlag)\r
2456 .hword (0xEA<<8)|(1<<SFlag) |(1<<CFlag)\r
2457 .hword (0xEB<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
2458 .hword (0xEC<<8)|(1<<SFlag) |(1<<CFlag)\r
2459 .hword (0xED<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
2460 .hword (0xEE<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
2461 .hword (0xEF<<8)|(1<<SFlag) |(1<<CFlag)\r
2462 .hword (0xF0<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2463 .hword (0xF1<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
2464 .hword (0xF2<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
2465 .hword (0xF3<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2466 .hword (0xF4<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
2467 .hword (0xF5<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2468 .hword (0xF6<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
2469 .hword (0xF7<<8)|(1<<SFlag) |(1<<CFlag)\r
2470 .hword (0xF8<<8)|(1<<SFlag) |(1<<CFlag)\r
2471 .hword (0xF9<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
2472 .hword (0xFA<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
2473 .hword (0xFB<<8)|(1<<SFlag) |(1<<CFlag)\r
2474 .hword (0xFC<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
2475 .hword (0xFD<<8)|(1<<SFlag) |(1<<CFlag)\r
2476 .hword (0xFE<<8)|(1<<SFlag) |(1<<CFlag)\r
2477 .hword (0xFF<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
2478 .hword (0x00<<8) |(1<<ZFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2479 .hword (0x01<<8) |(1<<HFlag) |(1<<CFlag)\r
2480 .hword (0x02<<8) |(1<<HFlag) |(1<<CFlag)\r
2481 .hword (0x03<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2482 .hword (0x04<<8) |(1<<HFlag) |(1<<CFlag)\r
2483 .hword (0x05<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2484 .hword (0x06<<8) |(1<<VFlag) |(1<<CFlag)\r
2485 .hword (0x07<<8) |(1<<CFlag)\r
2486 .hword (0x08<<8) |(1<<CFlag)\r
2487 .hword (0x09<<8) |(1<<VFlag) |(1<<CFlag)\r
2488 .hword (0x0A<<8) |(1<<VFlag) |(1<<CFlag)\r
2489 .hword (0x0B<<8) |(1<<CFlag)\r
2490 .hword (0x0C<<8) |(1<<VFlag) |(1<<CFlag)\r
2491 .hword (0x0D<<8) |(1<<CFlag)\r
2492 .hword (0x0E<<8) |(1<<CFlag)\r
2493 .hword (0x0F<<8) |(1<<VFlag) |(1<<CFlag)\r
2494 .hword (0x10<<8) |(1<<HFlag) |(1<<CFlag)\r
2495 .hword (0x11<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2496 .hword (0x12<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2497 .hword (0x13<<8) |(1<<HFlag) |(1<<CFlag)\r
2498 .hword (0x14<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2499 .hword (0x15<<8) |(1<<HFlag) |(1<<CFlag)\r
2500 .hword (0x16<<8) |(1<<CFlag)\r
2501 .hword (0x17<<8) |(1<<VFlag) |(1<<CFlag)\r
2502 .hword (0x18<<8) |(1<<VFlag) |(1<<CFlag)\r
2503 .hword (0x19<<8) |(1<<CFlag)\r
2504 .hword (0x1A<<8) |(1<<CFlag)\r
2505 .hword (0x1B<<8) |(1<<VFlag) |(1<<CFlag)\r
2506 .hword (0x1C<<8) |(1<<CFlag)\r
2507 .hword (0x1D<<8) |(1<<VFlag) |(1<<CFlag)\r
2508 .hword (0x1E<<8) |(1<<VFlag) |(1<<CFlag)\r
2509 .hword (0x1F<<8) |(1<<CFlag)\r
2510 .hword (0x20<<8) |(1<<HFlag) |(1<<CFlag)\r
2511 .hword (0x21<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2512 .hword (0x22<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2513 .hword (0x23<<8) |(1<<HFlag) |(1<<CFlag)\r
2514 .hword (0x24<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2515 .hword (0x25<<8) |(1<<HFlag) |(1<<CFlag)\r
2516 .hword (0x26<<8) |(1<<CFlag)\r
2517 .hword (0x27<<8) |(1<<VFlag) |(1<<CFlag)\r
2518 .hword (0x28<<8) |(1<<VFlag) |(1<<CFlag)\r
2519 .hword (0x29<<8) |(1<<CFlag)\r
2520 .hword (0x2A<<8) |(1<<CFlag)\r
2521 .hword (0x2B<<8) |(1<<VFlag) |(1<<CFlag)\r
2522 .hword (0x2C<<8) |(1<<CFlag)\r
2523 .hword (0x2D<<8) |(1<<VFlag) |(1<<CFlag)\r
2524 .hword (0x2E<<8) |(1<<VFlag) |(1<<CFlag)\r
2525 .hword (0x2F<<8) |(1<<CFlag)\r
2526 .hword (0x30<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2527 .hword (0x31<<8) |(1<<HFlag) |(1<<CFlag)\r
2528 .hword (0x32<<8) |(1<<HFlag) |(1<<CFlag)\r
2529 .hword (0x33<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2530 .hword (0x34<<8) |(1<<HFlag) |(1<<CFlag)\r
2531 .hword (0x35<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2532 .hword (0x36<<8) |(1<<VFlag) |(1<<CFlag)\r
2533 .hword (0x37<<8) |(1<<CFlag)\r
2534 .hword (0x38<<8) |(1<<CFlag)\r
2535 .hword (0x39<<8) |(1<<VFlag) |(1<<CFlag)\r
2536 .hword (0x3A<<8) |(1<<VFlag) |(1<<CFlag)\r
2537 .hword (0x3B<<8) |(1<<CFlag)\r
2538 .hword (0x3C<<8) |(1<<VFlag) |(1<<CFlag)\r
2539 .hword (0x3D<<8) |(1<<CFlag)\r
2540 .hword (0x3E<<8) |(1<<CFlag)\r
2541 .hword (0x3F<<8) |(1<<VFlag) |(1<<CFlag)\r
2542 .hword (0x40<<8) |(1<<HFlag) |(1<<CFlag)\r
2543 .hword (0x41<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2544 .hword (0x42<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2545 .hword (0x43<<8) |(1<<HFlag) |(1<<CFlag)\r
2546 .hword (0x44<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2547 .hword (0x45<<8) |(1<<HFlag) |(1<<CFlag)\r
2548 .hword (0x46<<8) |(1<<CFlag)\r
2549 .hword (0x47<<8) |(1<<VFlag) |(1<<CFlag)\r
2550 .hword (0x48<<8) |(1<<VFlag) |(1<<CFlag)\r
2551 .hword (0x49<<8) |(1<<CFlag)\r
2552 .hword (0x4A<<8) |(1<<CFlag)\r
2553 .hword (0x4B<<8) |(1<<VFlag) |(1<<CFlag)\r
2554 .hword (0x4C<<8) |(1<<CFlag)\r
2555 .hword (0x4D<<8) |(1<<VFlag) |(1<<CFlag)\r
2556 .hword (0x4E<<8) |(1<<VFlag) |(1<<CFlag)\r
2557 .hword (0x4F<<8) |(1<<CFlag)\r
2558 .hword (0x50<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2559 .hword (0x51<<8) |(1<<HFlag) |(1<<CFlag)\r
2560 .hword (0x52<<8) |(1<<HFlag) |(1<<CFlag)\r
2561 .hword (0x53<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2562 .hword (0x54<<8) |(1<<HFlag) |(1<<CFlag)\r
2563 .hword (0x55<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2564 .hword (0x56<<8) |(1<<VFlag) |(1<<CFlag)\r
2565 .hword (0x57<<8) |(1<<CFlag)\r
2566 .hword (0x58<<8) |(1<<CFlag)\r
2567 .hword (0x59<<8) |(1<<VFlag) |(1<<CFlag)\r
2568 .hword (0x5A<<8) |(1<<VFlag) |(1<<CFlag)\r
2569 .hword (0x5B<<8) |(1<<CFlag)\r
2570 .hword (0x5C<<8) |(1<<VFlag) |(1<<CFlag)\r
2571 .hword (0x5D<<8) |(1<<CFlag)\r
2572 .hword (0x5E<<8) |(1<<CFlag)\r
2573 .hword (0x5F<<8) |(1<<VFlag) |(1<<CFlag)\r
2574 .hword (0x60<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2575 .hword (0x61<<8) |(1<<HFlag) |(1<<CFlag)\r
2576 .hword (0x62<<8) |(1<<HFlag) |(1<<CFlag)\r
2577 .hword (0x63<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2578 .hword (0x64<<8) |(1<<HFlag) |(1<<CFlag)\r
2579 .hword (0x65<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2580 .hword (0x00<<8) |(1<<ZFlag) |(1<<VFlag)|(1<<NFlag) \r
2581 .hword (0x01<<8) |(1<<NFlag) \r
2582 .hword (0x02<<8) |(1<<NFlag) \r
2583 .hword (0x03<<8) |(1<<VFlag)|(1<<NFlag) \r
2584 .hword (0x04<<8) |(1<<NFlag) \r
2585 .hword (0x05<<8) |(1<<VFlag)|(1<<NFlag) \r
2586 .hword (0x06<<8) |(1<<VFlag)|(1<<NFlag) \r
2587 .hword (0x07<<8) |(1<<NFlag) \r
2588 .hword (0x08<<8) |(1<<NFlag) \r
2589 .hword (0x09<<8) |(1<<VFlag)|(1<<NFlag) \r
2590 .hword (0x04<<8) |(1<<NFlag) \r
2591 .hword (0x05<<8) |(1<<VFlag)|(1<<NFlag) \r
2592 .hword (0x06<<8) |(1<<VFlag)|(1<<NFlag) \r
2593 .hword (0x07<<8) |(1<<NFlag) \r
2594 .hword (0x08<<8) |(1<<NFlag) \r
2595 .hword (0x09<<8) |(1<<VFlag)|(1<<NFlag) \r
2596 .hword (0x10<<8) |(1<<NFlag) \r
2597 .hword (0x11<<8) |(1<<VFlag)|(1<<NFlag) \r
2598 .hword (0x12<<8) |(1<<VFlag)|(1<<NFlag) \r
2599 .hword (0x13<<8) |(1<<NFlag) \r
2600 .hword (0x14<<8) |(1<<VFlag)|(1<<NFlag) \r
2601 .hword (0x15<<8) |(1<<NFlag) \r
2602 .hword (0x16<<8) |(1<<NFlag) \r
2603 .hword (0x17<<8) |(1<<VFlag)|(1<<NFlag) \r
2604 .hword (0x18<<8) |(1<<VFlag)|(1<<NFlag) \r
2605 .hword (0x19<<8) |(1<<NFlag) \r
2606 .hword (0x14<<8) |(1<<VFlag)|(1<<NFlag) \r
2607 .hword (0x15<<8) |(1<<NFlag) \r
2608 .hword (0x16<<8) |(1<<NFlag) \r
2609 .hword (0x17<<8) |(1<<VFlag)|(1<<NFlag) \r
2610 .hword (0x18<<8) |(1<<VFlag)|(1<<NFlag) \r
2611 .hword (0x19<<8) |(1<<NFlag) \r
2612 .hword (0x20<<8) |(1<<NFlag) \r
2613 .hword (0x21<<8) |(1<<VFlag)|(1<<NFlag) \r
2614 .hword (0x22<<8) |(1<<VFlag)|(1<<NFlag) \r
2615 .hword (0x23<<8) |(1<<NFlag) \r
2616 .hword (0x24<<8) |(1<<VFlag)|(1<<NFlag) \r
2617 .hword (0x25<<8) |(1<<NFlag) \r
2618 .hword (0x26<<8) |(1<<NFlag) \r
2619 .hword (0x27<<8) |(1<<VFlag)|(1<<NFlag) \r
2620 .hword (0x28<<8) |(1<<VFlag)|(1<<NFlag) \r
2621 .hword (0x29<<8) |(1<<NFlag) \r
2622 .hword (0x24<<8) |(1<<VFlag)|(1<<NFlag) \r
2623 .hword (0x25<<8) |(1<<NFlag) \r
2624 .hword (0x26<<8) |(1<<NFlag) \r
2625 .hword (0x27<<8) |(1<<VFlag)|(1<<NFlag) \r
2626 .hword (0x28<<8) |(1<<VFlag)|(1<<NFlag) \r
2627 .hword (0x29<<8) |(1<<NFlag) \r
2628 .hword (0x30<<8) |(1<<VFlag)|(1<<NFlag) \r
2629 .hword (0x31<<8) |(1<<NFlag) \r
2630 .hword (0x32<<8) |(1<<NFlag) \r
2631 .hword (0x33<<8) |(1<<VFlag)|(1<<NFlag) \r
2632 .hword (0x34<<8) |(1<<NFlag) \r
2633 .hword (0x35<<8) |(1<<VFlag)|(1<<NFlag) \r
2634 .hword (0x36<<8) |(1<<VFlag)|(1<<NFlag) \r
2635 .hword (0x37<<8) |(1<<NFlag) \r
2636 .hword (0x38<<8) |(1<<NFlag) \r
2637 .hword (0x39<<8) |(1<<VFlag)|(1<<NFlag) \r
2638 .hword (0x34<<8) |(1<<NFlag) \r
2639 .hword (0x35<<8) |(1<<VFlag)|(1<<NFlag) \r
2640 .hword (0x36<<8) |(1<<VFlag)|(1<<NFlag) \r
2641 .hword (0x37<<8) |(1<<NFlag) \r
2642 .hword (0x38<<8) |(1<<NFlag) \r
2643 .hword (0x39<<8) |(1<<VFlag)|(1<<NFlag) \r
2644 .hword (0x40<<8) |(1<<NFlag) \r
2645 .hword (0x41<<8) |(1<<VFlag)|(1<<NFlag) \r
2646 .hword (0x42<<8) |(1<<VFlag)|(1<<NFlag) \r
2647 .hword (0x43<<8) |(1<<NFlag) \r
2648 .hword (0x44<<8) |(1<<VFlag)|(1<<NFlag) \r
2649 .hword (0x45<<8) |(1<<NFlag) \r
2650 .hword (0x46<<8) |(1<<NFlag) \r
2651 .hword (0x47<<8) |(1<<VFlag)|(1<<NFlag) \r
2652 .hword (0x48<<8) |(1<<VFlag)|(1<<NFlag) \r
2653 .hword (0x49<<8) |(1<<NFlag) \r
2654 .hword (0x44<<8) |(1<<VFlag)|(1<<NFlag) \r
2655 .hword (0x45<<8) |(1<<NFlag) \r
2656 .hword (0x46<<8) |(1<<NFlag) \r
2657 .hword (0x47<<8) |(1<<VFlag)|(1<<NFlag) \r
2658 .hword (0x48<<8) |(1<<VFlag)|(1<<NFlag) \r
2659 .hword (0x49<<8) |(1<<NFlag) \r
2660 .hword (0x50<<8) |(1<<VFlag)|(1<<NFlag) \r
2661 .hword (0x51<<8) |(1<<NFlag) \r
2662 .hword (0x52<<8) |(1<<NFlag) \r
2663 .hword (0x53<<8) |(1<<VFlag)|(1<<NFlag) \r
2664 .hword (0x54<<8) |(1<<NFlag) \r
2665 .hword (0x55<<8) |(1<<VFlag)|(1<<NFlag) \r
2666 .hword (0x56<<8) |(1<<VFlag)|(1<<NFlag) \r
2667 .hword (0x57<<8) |(1<<NFlag) \r
2668 .hword (0x58<<8) |(1<<NFlag) \r
2669 .hword (0x59<<8) |(1<<VFlag)|(1<<NFlag) \r
2670 .hword (0x54<<8) |(1<<NFlag) \r
2671 .hword (0x55<<8) |(1<<VFlag)|(1<<NFlag) \r
2672 .hword (0x56<<8) |(1<<VFlag)|(1<<NFlag) \r
2673 .hword (0x57<<8) |(1<<NFlag) \r
2674 .hword (0x58<<8) |(1<<NFlag) \r
2675 .hword (0x59<<8) |(1<<VFlag)|(1<<NFlag) \r
2676 .hword (0x60<<8) |(1<<VFlag)|(1<<NFlag) \r
2677 .hword (0x61<<8) |(1<<NFlag) \r
2678 .hword (0x62<<8) |(1<<NFlag) \r
2679 .hword (0x63<<8) |(1<<VFlag)|(1<<NFlag) \r
2680 .hword (0x64<<8) |(1<<NFlag) \r
2681 .hword (0x65<<8) |(1<<VFlag)|(1<<NFlag) \r
2682 .hword (0x66<<8) |(1<<VFlag)|(1<<NFlag) \r
2683 .hword (0x67<<8) |(1<<NFlag) \r
2684 .hword (0x68<<8) |(1<<NFlag) \r
2685 .hword (0x69<<8) |(1<<VFlag)|(1<<NFlag) \r
2686 .hword (0x64<<8) |(1<<NFlag) \r
2687 .hword (0x65<<8) |(1<<VFlag)|(1<<NFlag) \r
2688 .hword (0x66<<8) |(1<<VFlag)|(1<<NFlag) \r
2689 .hword (0x67<<8) |(1<<NFlag) \r
2690 .hword (0x68<<8) |(1<<NFlag) \r
2691 .hword (0x69<<8) |(1<<VFlag)|(1<<NFlag) \r
2692 .hword (0x70<<8) |(1<<NFlag) \r
2693 .hword (0x71<<8) |(1<<VFlag)|(1<<NFlag) \r
2694 .hword (0x72<<8) |(1<<VFlag)|(1<<NFlag) \r
2695 .hword (0x73<<8) |(1<<NFlag) \r
2696 .hword (0x74<<8) |(1<<VFlag)|(1<<NFlag) \r
2697 .hword (0x75<<8) |(1<<NFlag) \r
2698 .hword (0x76<<8) |(1<<NFlag) \r
2699 .hword (0x77<<8) |(1<<VFlag)|(1<<NFlag) \r
2700 .hword (0x78<<8) |(1<<VFlag)|(1<<NFlag) \r
2701 .hword (0x79<<8) |(1<<NFlag) \r
2702 .hword (0x74<<8) |(1<<VFlag)|(1<<NFlag) \r
2703 .hword (0x75<<8) |(1<<NFlag) \r
2704 .hword (0x76<<8) |(1<<NFlag) \r
2705 .hword (0x77<<8) |(1<<VFlag)|(1<<NFlag) \r
2706 .hword (0x78<<8) |(1<<VFlag)|(1<<NFlag) \r
2707 .hword (0x79<<8) |(1<<NFlag) \r
2708 .hword (0x80<<8)|(1<<SFlag) |(1<<NFlag) \r
2709 .hword (0x81<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag) \r
2710 .hword (0x82<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag) \r
2711 .hword (0x83<<8)|(1<<SFlag) |(1<<NFlag) \r
2712 .hword (0x84<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag) \r
2713 .hword (0x85<<8)|(1<<SFlag) |(1<<NFlag) \r
2714 .hword (0x86<<8)|(1<<SFlag) |(1<<NFlag) \r
2715 .hword (0x87<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag) \r
2716 .hword (0x88<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag) \r
2717 .hword (0x89<<8)|(1<<SFlag) |(1<<NFlag) \r
2718 .hword (0x84<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag) \r
2719 .hword (0x85<<8)|(1<<SFlag) |(1<<NFlag) \r
2720 .hword (0x86<<8)|(1<<SFlag) |(1<<NFlag) \r
2721 .hword (0x87<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag) \r
2722 .hword (0x88<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag) \r
2723 .hword (0x89<<8)|(1<<SFlag) |(1<<NFlag) \r
2724 .hword (0x90<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag) \r
2725 .hword (0x91<<8)|(1<<SFlag) |(1<<NFlag) \r
2726 .hword (0x92<<8)|(1<<SFlag) |(1<<NFlag) \r
2727 .hword (0x93<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag) \r
2728 .hword (0x94<<8)|(1<<SFlag) |(1<<NFlag) \r
2729 .hword (0x95<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag) \r
2730 .hword (0x96<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag) \r
2731 .hword (0x97<<8)|(1<<SFlag) |(1<<NFlag) \r
2732 .hword (0x98<<8)|(1<<SFlag) |(1<<NFlag) \r
2733 .hword (0x99<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag) \r
2734 .hword (0x34<<8) |(1<<NFlag)|(1<<CFlag)\r
2735 .hword (0x35<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2736 .hword (0x36<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2737 .hword (0x37<<8) |(1<<NFlag)|(1<<CFlag)\r
2738 .hword (0x38<<8) |(1<<NFlag)|(1<<CFlag)\r
2739 .hword (0x39<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2740 .hword (0x40<<8) |(1<<NFlag)|(1<<CFlag)\r
2741 .hword (0x41<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2742 .hword (0x42<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2743 .hword (0x43<<8) |(1<<NFlag)|(1<<CFlag)\r
2744 .hword (0x44<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2745 .hword (0x45<<8) |(1<<NFlag)|(1<<CFlag)\r
2746 .hword (0x46<<8) |(1<<NFlag)|(1<<CFlag)\r
2747 .hword (0x47<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2748 .hword (0x48<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2749 .hword (0x49<<8) |(1<<NFlag)|(1<<CFlag)\r
2750 .hword (0x44<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2751 .hword (0x45<<8) |(1<<NFlag)|(1<<CFlag)\r
2752 .hword (0x46<<8) |(1<<NFlag)|(1<<CFlag)\r
2753 .hword (0x47<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2754 .hword (0x48<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2755 .hword (0x49<<8) |(1<<NFlag)|(1<<CFlag)\r
2756 .hword (0x50<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2757 .hword (0x51<<8) |(1<<NFlag)|(1<<CFlag)\r
2758 .hword (0x52<<8) |(1<<NFlag)|(1<<CFlag)\r
2759 .hword (0x53<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2760 .hword (0x54<<8) |(1<<NFlag)|(1<<CFlag)\r
2761 .hword (0x55<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2762 .hword (0x56<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2763 .hword (0x57<<8) |(1<<NFlag)|(1<<CFlag)\r
2764 .hword (0x58<<8) |(1<<NFlag)|(1<<CFlag)\r
2765 .hword (0x59<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2766 .hword (0x54<<8) |(1<<NFlag)|(1<<CFlag)\r
2767 .hword (0x55<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2768 .hword (0x56<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2769 .hword (0x57<<8) |(1<<NFlag)|(1<<CFlag)\r
2770 .hword (0x58<<8) |(1<<NFlag)|(1<<CFlag)\r
2771 .hword (0x59<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2772 .hword (0x60<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2773 .hword (0x61<<8) |(1<<NFlag)|(1<<CFlag)\r
2774 .hword (0x62<<8) |(1<<NFlag)|(1<<CFlag)\r
2775 .hword (0x63<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2776 .hword (0x64<<8) |(1<<NFlag)|(1<<CFlag)\r
2777 .hword (0x65<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2778 .hword (0x66<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2779 .hword (0x67<<8) |(1<<NFlag)|(1<<CFlag)\r
2780 .hword (0x68<<8) |(1<<NFlag)|(1<<CFlag)\r
2781 .hword (0x69<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2782 .hword (0x64<<8) |(1<<NFlag)|(1<<CFlag)\r
2783 .hword (0x65<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2784 .hword (0x66<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2785 .hword (0x67<<8) |(1<<NFlag)|(1<<CFlag)\r
2786 .hword (0x68<<8) |(1<<NFlag)|(1<<CFlag)\r
2787 .hword (0x69<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2788 .hword (0x70<<8) |(1<<NFlag)|(1<<CFlag)\r
2789 .hword (0x71<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2790 .hword (0x72<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2791 .hword (0x73<<8) |(1<<NFlag)|(1<<CFlag)\r
2792 .hword (0x74<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2793 .hword (0x75<<8) |(1<<NFlag)|(1<<CFlag)\r
2794 .hword (0x76<<8) |(1<<NFlag)|(1<<CFlag)\r
2795 .hword (0x77<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2796 .hword (0x78<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2797 .hword (0x79<<8) |(1<<NFlag)|(1<<CFlag)\r
2798 .hword (0x74<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2799 .hword (0x75<<8) |(1<<NFlag)|(1<<CFlag)\r
2800 .hword (0x76<<8) |(1<<NFlag)|(1<<CFlag)\r
2801 .hword (0x77<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2802 .hword (0x78<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2803 .hword (0x79<<8) |(1<<NFlag)|(1<<CFlag)\r
2804 .hword (0x80<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2805 .hword (0x81<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2806 .hword (0x82<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2807 .hword (0x83<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2808 .hword (0x84<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2809 .hword (0x85<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2810 .hword (0x86<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2811 .hword (0x87<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2812 .hword (0x88<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2813 .hword (0x89<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2814 .hword (0x84<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2815 .hword (0x85<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2816 .hword (0x86<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2817 .hword (0x87<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2818 .hword (0x88<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2819 .hword (0x89<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2820 .hword (0x90<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2821 .hword (0x91<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2822 .hword (0x92<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2823 .hword (0x93<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2824 .hword (0x94<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2825 .hword (0x95<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2826 .hword (0x96<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2827 .hword (0x97<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2828 .hword (0x98<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2829 .hword (0x99<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2830 .hword (0x94<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2831 .hword (0x95<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2832 .hword (0x96<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2833 .hword (0x97<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2834 .hword (0x98<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2835 .hword (0x99<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2836 .hword (0xA0<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2837 .hword (0xA1<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2838 .hword (0xA2<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2839 .hword (0xA3<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2840 .hword (0xA4<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2841 .hword (0xA5<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2842 .hword (0xA6<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2843 .hword (0xA7<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2844 .hword (0xA8<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2845 .hword (0xA9<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2846 .hword (0xA4<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2847 .hword (0xA5<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2848 .hword (0xA6<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2849 .hword (0xA7<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2850 .hword (0xA8<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2851 .hword (0xA9<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2852 .hword (0xB0<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2853 .hword (0xB1<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2854 .hword (0xB2<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2855 .hword (0xB3<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2856 .hword (0xB4<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2857 .hword (0xB5<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2858 .hword (0xB6<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2859 .hword (0xB7<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2860 .hword (0xB8<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2861 .hword (0xB9<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2862 .hword (0xB4<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2863 .hword (0xB5<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2864 .hword (0xB6<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2865 .hword (0xB7<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2866 .hword (0xB8<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2867 .hword (0xB9<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2868 .hword (0xC0<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2869 .hword (0xC1<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2870 .hword (0xC2<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2871 .hword (0xC3<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2872 .hword (0xC4<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2873 .hword (0xC5<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2874 .hword (0xC6<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2875 .hword (0xC7<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2876 .hword (0xC8<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2877 .hword (0xC9<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2878 .hword (0xC4<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2879 .hword (0xC5<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2880 .hword (0xC6<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2881 .hword (0xC7<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2882 .hword (0xC8<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2883 .hword (0xC9<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2884 .hword (0xD0<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2885 .hword (0xD1<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2886 .hword (0xD2<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2887 .hword (0xD3<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2888 .hword (0xD4<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2889 .hword (0xD5<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2890 .hword (0xD6<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2891 .hword (0xD7<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2892 .hword (0xD8<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2893 .hword (0xD9<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2894 .hword (0xD4<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2895 .hword (0xD5<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2896 .hword (0xD6<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2897 .hword (0xD7<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2898 .hword (0xD8<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2899 .hword (0xD9<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2900 .hword (0xE0<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2901 .hword (0xE1<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2902 .hword (0xE2<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2903 .hword (0xE3<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2904 .hword (0xE4<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2905 .hword (0xE5<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2906 .hword (0xE6<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2907 .hword (0xE7<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2908 .hword (0xE8<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2909 .hword (0xE9<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2910 .hword (0xE4<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2911 .hword (0xE5<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2912 .hword (0xE6<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2913 .hword (0xE7<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2914 .hword (0xE8<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2915 .hword (0xE9<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2916 .hword (0xF0<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2917 .hword (0xF1<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2918 .hword (0xF2<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2919 .hword (0xF3<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2920 .hword (0xF4<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2921 .hword (0xF5<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2922 .hword (0xF6<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2923 .hword (0xF7<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2924 .hword (0xF8<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2925 .hword (0xF9<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2926 .hword (0xF4<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2927 .hword (0xF5<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2928 .hword (0xF6<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2929 .hword (0xF7<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2930 .hword (0xF8<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2931 .hword (0xF9<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2932 .hword (0x00<<8) |(1<<ZFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2933 .hword (0x01<<8) |(1<<NFlag)|(1<<CFlag)\r
2934 .hword (0x02<<8) |(1<<NFlag)|(1<<CFlag)\r
2935 .hword (0x03<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2936 .hword (0x04<<8) |(1<<NFlag)|(1<<CFlag)\r
2937 .hword (0x05<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2938 .hword (0x06<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2939 .hword (0x07<<8) |(1<<NFlag)|(1<<CFlag)\r
2940 .hword (0x08<<8) |(1<<NFlag)|(1<<CFlag)\r
2941 .hword (0x09<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2942 .hword (0x04<<8) |(1<<NFlag)|(1<<CFlag)\r
2943 .hword (0x05<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2944 .hword (0x06<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2945 .hword (0x07<<8) |(1<<NFlag)|(1<<CFlag)\r
2946 .hword (0x08<<8) |(1<<NFlag)|(1<<CFlag)\r
2947 .hword (0x09<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2948 .hword (0x10<<8) |(1<<NFlag)|(1<<CFlag)\r
2949 .hword (0x11<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2950 .hword (0x12<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2951 .hword (0x13<<8) |(1<<NFlag)|(1<<CFlag)\r
2952 .hword (0x14<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2953 .hword (0x15<<8) |(1<<NFlag)|(1<<CFlag)\r
2954 .hword (0x16<<8) |(1<<NFlag)|(1<<CFlag)\r
2955 .hword (0x17<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2956 .hword (0x18<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2957 .hword (0x19<<8) |(1<<NFlag)|(1<<CFlag)\r
2958 .hword (0x14<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2959 .hword (0x15<<8) |(1<<NFlag)|(1<<CFlag)\r
2960 .hword (0x16<<8) |(1<<NFlag)|(1<<CFlag)\r
2961 .hword (0x17<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2962 .hword (0x18<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2963 .hword (0x19<<8) |(1<<NFlag)|(1<<CFlag)\r
2964 .hword (0x20<<8) |(1<<NFlag)|(1<<CFlag)\r
2965 .hword (0x21<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2966 .hword (0x22<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2967 .hword (0x23<<8) |(1<<NFlag)|(1<<CFlag)\r
2968 .hword (0x24<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2969 .hword (0x25<<8) |(1<<NFlag)|(1<<CFlag)\r
2970 .hword (0x26<<8) |(1<<NFlag)|(1<<CFlag)\r
2971 .hword (0x27<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2972 .hword (0x28<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2973 .hword (0x29<<8) |(1<<NFlag)|(1<<CFlag)\r
2974 .hword (0x24<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2975 .hword (0x25<<8) |(1<<NFlag)|(1<<CFlag)\r
2976 .hword (0x26<<8) |(1<<NFlag)|(1<<CFlag)\r
2977 .hword (0x27<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2978 .hword (0x28<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2979 .hword (0x29<<8) |(1<<NFlag)|(1<<CFlag)\r
2980 .hword (0x30<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2981 .hword (0x31<<8) |(1<<NFlag)|(1<<CFlag)\r
2982 .hword (0x32<<8) |(1<<NFlag)|(1<<CFlag)\r
2983 .hword (0x33<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2984 .hword (0x34<<8) |(1<<NFlag)|(1<<CFlag)\r
2985 .hword (0x35<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2986 .hword (0x36<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2987 .hword (0x37<<8) |(1<<NFlag)|(1<<CFlag)\r
2988 .hword (0x38<<8) |(1<<NFlag)|(1<<CFlag)\r
2989 .hword (0x39<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2990 .hword (0x34<<8) |(1<<NFlag)|(1<<CFlag)\r
2991 .hword (0x35<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2992 .hword (0x36<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2993 .hword (0x37<<8) |(1<<NFlag)|(1<<CFlag)\r
2994 .hword (0x38<<8) |(1<<NFlag)|(1<<CFlag)\r
2995 .hword (0x39<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2996 .hword (0x40<<8) |(1<<NFlag)|(1<<CFlag)\r
2997 .hword (0x41<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2998 .hword (0x42<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2999 .hword (0x43<<8) |(1<<NFlag)|(1<<CFlag)\r
3000 .hword (0x44<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3001 .hword (0x45<<8) |(1<<NFlag)|(1<<CFlag)\r
3002 .hword (0x46<<8) |(1<<NFlag)|(1<<CFlag)\r
3003 .hword (0x47<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3004 .hword (0x48<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3005 .hword (0x49<<8) |(1<<NFlag)|(1<<CFlag)\r
3006 .hword (0x44<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3007 .hword (0x45<<8) |(1<<NFlag)|(1<<CFlag)\r
3008 .hword (0x46<<8) |(1<<NFlag)|(1<<CFlag)\r
3009 .hword (0x47<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3010 .hword (0x48<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3011 .hword (0x49<<8) |(1<<NFlag)|(1<<CFlag)\r
3012 .hword (0x50<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3013 .hword (0x51<<8) |(1<<NFlag)|(1<<CFlag)\r
3014 .hword (0x52<<8) |(1<<NFlag)|(1<<CFlag)\r
3015 .hword (0x53<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3016 .hword (0x54<<8) |(1<<NFlag)|(1<<CFlag)\r
3017 .hword (0x55<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3018 .hword (0x56<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3019 .hword (0x57<<8) |(1<<NFlag)|(1<<CFlag)\r
3020 .hword (0x58<<8) |(1<<NFlag)|(1<<CFlag)\r
3021 .hword (0x59<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3022 .hword (0x54<<8) |(1<<NFlag)|(1<<CFlag)\r
3023 .hword (0x55<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3024 .hword (0x56<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3025 .hword (0x57<<8) |(1<<NFlag)|(1<<CFlag)\r
3026 .hword (0x58<<8) |(1<<NFlag)|(1<<CFlag)\r
3027 .hword (0x59<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3028 .hword (0x60<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3029 .hword (0x61<<8) |(1<<NFlag)|(1<<CFlag)\r
3030 .hword (0x62<<8) |(1<<NFlag)|(1<<CFlag)\r
3031 .hword (0x63<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3032 .hword (0x64<<8) |(1<<NFlag)|(1<<CFlag)\r
3033 .hword (0x65<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3034 .hword (0x66<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3035 .hword (0x67<<8) |(1<<NFlag)|(1<<CFlag)\r
3036 .hword (0x68<<8) |(1<<NFlag)|(1<<CFlag)\r
3037 .hword (0x69<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3038 .hword (0x64<<8) |(1<<NFlag)|(1<<CFlag)\r
3039 .hword (0x65<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3040 .hword (0x66<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3041 .hword (0x67<<8) |(1<<NFlag)|(1<<CFlag)\r
3042 .hword (0x68<<8) |(1<<NFlag)|(1<<CFlag)\r
3043 .hword (0x69<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3044 .hword (0x70<<8) |(1<<NFlag)|(1<<CFlag)\r
3045 .hword (0x71<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3046 .hword (0x72<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3047 .hword (0x73<<8) |(1<<NFlag)|(1<<CFlag)\r
3048 .hword (0x74<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3049 .hword (0x75<<8) |(1<<NFlag)|(1<<CFlag)\r
3050 .hword (0x76<<8) |(1<<NFlag)|(1<<CFlag)\r
3051 .hword (0x77<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3052 .hword (0x78<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3053 .hword (0x79<<8) |(1<<NFlag)|(1<<CFlag)\r
3054 .hword (0x74<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3055 .hword (0x75<<8) |(1<<NFlag)|(1<<CFlag)\r
3056 .hword (0x76<<8) |(1<<NFlag)|(1<<CFlag)\r
3057 .hword (0x77<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3058 .hword (0x78<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3059 .hword (0x79<<8) |(1<<NFlag)|(1<<CFlag)\r
3060 .hword (0x80<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3061 .hword (0x81<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3062 .hword (0x82<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3063 .hword (0x83<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3064 .hword (0x84<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3065 .hword (0x85<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3066 .hword (0x86<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3067 .hword (0x87<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3068 .hword (0x88<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3069 .hword (0x89<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3070 .hword (0x84<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3071 .hword (0x85<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3072 .hword (0x86<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3073 .hword (0x87<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3074 .hword (0x88<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3075 .hword (0x89<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3076 .hword (0x90<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3077 .hword (0x91<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3078 .hword (0x92<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3079 .hword (0x93<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3080 .hword (0x94<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3081 .hword (0x95<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3082 .hword (0x96<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3083 .hword (0x97<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3084 .hword (0x98<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3085 .hword (0x99<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3086 .hword (0x94<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3087 .hword (0x95<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3088 .hword (0x96<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3089 .hword (0x97<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3090 .hword (0x98<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3091 .hword (0x99<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3092 .hword (0xFA<<8)|(1<<SFlag) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag) \r
3093 .hword (0xFB<<8)|(1<<SFlag) |(1<<HFlag) |(1<<NFlag) \r
3094 .hword (0xFC<<8)|(1<<SFlag) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag) \r
3095 .hword (0xFD<<8)|(1<<SFlag) |(1<<HFlag) |(1<<NFlag) \r
3096 .hword (0xFE<<8)|(1<<SFlag) |(1<<HFlag) |(1<<NFlag) \r
3097 .hword (0xFF<<8)|(1<<SFlag) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag) \r
3098 .hword (0x00<<8) |(1<<ZFlag) |(1<<VFlag)|(1<<NFlag) \r
3099 .hword (0x01<<8) |(1<<NFlag) \r
3100 .hword (0x02<<8) |(1<<NFlag) \r
3101 .hword (0x03<<8) |(1<<VFlag)|(1<<NFlag) \r
3102 .hword (0x04<<8) |(1<<NFlag) \r
3103 .hword (0x05<<8) |(1<<VFlag)|(1<<NFlag) \r
3104 .hword (0x06<<8) |(1<<VFlag)|(1<<NFlag) \r
3105 .hword (0x07<<8) |(1<<NFlag) \r
3106 .hword (0x08<<8) |(1<<NFlag) \r
3107 .hword (0x09<<8) |(1<<VFlag)|(1<<NFlag) \r
3108 .hword (0x0A<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag) \r
3109 .hword (0x0B<<8) |(1<<HFlag) |(1<<NFlag) \r
3110 .hword (0x0C<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag) \r
3111 .hword (0x0D<<8) |(1<<HFlag) |(1<<NFlag) \r
3112 .hword (0x0E<<8) |(1<<HFlag) |(1<<NFlag) \r
3113 .hword (0x0F<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag) \r
3114 .hword (0x10<<8) |(1<<NFlag) \r
3115 .hword (0x11<<8) |(1<<VFlag)|(1<<NFlag) \r
3116 .hword (0x12<<8) |(1<<VFlag)|(1<<NFlag) \r
3117 .hword (0x13<<8) |(1<<NFlag) \r
3118 .hword (0x14<<8) |(1<<VFlag)|(1<<NFlag) \r
3119 .hword (0x15<<8) |(1<<NFlag) \r
3120 .hword (0x16<<8) |(1<<NFlag) \r
3121 .hword (0x17<<8) |(1<<VFlag)|(1<<NFlag) \r
3122 .hword (0x18<<8) |(1<<VFlag)|(1<<NFlag) \r
3123 .hword (0x19<<8) |(1<<NFlag) \r
3124 .hword (0x1A<<8) |(1<<HFlag) |(1<<NFlag) \r
3125 .hword (0x1B<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag) \r
3126 .hword (0x1C<<8) |(1<<HFlag) |(1<<NFlag) \r
3127 .hword (0x1D<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag) \r
3128 .hword (0x1E<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag) \r
3129 .hword (0x1F<<8) |(1<<HFlag) |(1<<NFlag) \r
3130 .hword (0x20<<8) |(1<<NFlag) \r
3131 .hword (0x21<<8) |(1<<VFlag)|(1<<NFlag) \r
3132 .hword (0x22<<8) |(1<<VFlag)|(1<<NFlag) \r
3133 .hword (0x23<<8) |(1<<NFlag) \r
3134 .hword (0x24<<8) |(1<<VFlag)|(1<<NFlag) \r
3135 .hword (0x25<<8) |(1<<NFlag) \r
3136 .hword (0x26<<8) |(1<<NFlag) \r
3137 .hword (0x27<<8) |(1<<VFlag)|(1<<NFlag) \r
3138 .hword (0x28<<8) |(1<<VFlag)|(1<<NFlag) \r
3139 .hword (0x29<<8) |(1<<NFlag) \r
3140 .hword (0x2A<<8) |(1<<HFlag) |(1<<NFlag) \r
3141 .hword (0x2B<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag) \r
3142 .hword (0x2C<<8) |(1<<HFlag) |(1<<NFlag) \r
3143 .hword (0x2D<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag) \r
3144 .hword (0x2E<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag) \r
3145 .hword (0x2F<<8) |(1<<HFlag) |(1<<NFlag) \r
3146 .hword (0x30<<8) |(1<<VFlag)|(1<<NFlag) \r
3147 .hword (0x31<<8) |(1<<NFlag) \r
3148 .hword (0x32<<8) |(1<<NFlag) \r
3149 .hword (0x33<<8) |(1<<VFlag)|(1<<NFlag) \r
3150 .hword (0x34<<8) |(1<<NFlag) \r
3151 .hword (0x35<<8) |(1<<VFlag)|(1<<NFlag) \r
3152 .hword (0x36<<8) |(1<<VFlag)|(1<<NFlag) \r
3153 .hword (0x37<<8) |(1<<NFlag) \r
3154 .hword (0x38<<8) |(1<<NFlag) \r
3155 .hword (0x39<<8) |(1<<VFlag)|(1<<NFlag) \r
3156 .hword (0x3A<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag) \r
3157 .hword (0x3B<<8) |(1<<HFlag) |(1<<NFlag) \r
3158 .hword (0x3C<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag) \r
3159 .hword (0x3D<<8) |(1<<HFlag) |(1<<NFlag) \r
3160 .hword (0x3E<<8) |(1<<HFlag) |(1<<NFlag) \r
3161 .hword (0x3F<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag) \r
3162 .hword (0x40<<8) |(1<<NFlag) \r
3163 .hword (0x41<<8) |(1<<VFlag)|(1<<NFlag) \r
3164 .hword (0x42<<8) |(1<<VFlag)|(1<<NFlag) \r
3165 .hword (0x43<<8) |(1<<NFlag) \r
3166 .hword (0x44<<8) |(1<<VFlag)|(1<<NFlag) \r
3167 .hword (0x45<<8) |(1<<NFlag) \r
3168 .hword (0x46<<8) |(1<<NFlag) \r
3169 .hword (0x47<<8) |(1<<VFlag)|(1<<NFlag) \r
3170 .hword (0x48<<8) |(1<<VFlag)|(1<<NFlag) \r
3171 .hword (0x49<<8) |(1<<NFlag) \r
3172 .hword (0x4A<<8) |(1<<HFlag) |(1<<NFlag) \r
3173 .hword (0x4B<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag) \r
3174 .hword (0x4C<<8) |(1<<HFlag) |(1<<NFlag) \r
3175 .hword (0x4D<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag) \r
3176 .hword (0x4E<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag) \r
3177 .hword (0x4F<<8) |(1<<HFlag) |(1<<NFlag) \r
3178 .hword (0x50<<8) |(1<<VFlag)|(1<<NFlag) \r
3179 .hword (0x51<<8) |(1<<NFlag) \r
3180 .hword (0x52<<8) |(1<<NFlag) \r
3181 .hword (0x53<<8) |(1<<VFlag)|(1<<NFlag) \r
3182 .hword (0x54<<8) |(1<<NFlag) \r
3183 .hword (0x55<<8) |(1<<VFlag)|(1<<NFlag) \r
3184 .hword (0x56<<8) |(1<<VFlag)|(1<<NFlag) \r
3185 .hword (0x57<<8) |(1<<NFlag) \r
3186 .hword (0x58<<8) |(1<<NFlag) \r
3187 .hword (0x59<<8) |(1<<VFlag)|(1<<NFlag) \r
3188 .hword (0x5A<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag) \r
3189 .hword (0x5B<<8) |(1<<HFlag) |(1<<NFlag) \r
3190 .hword (0x5C<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag) \r
3191 .hword (0x5D<<8) |(1<<HFlag) |(1<<NFlag) \r
3192 .hword (0x5E<<8) |(1<<HFlag) |(1<<NFlag) \r
3193 .hword (0x5F<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag) \r
3194 .hword (0x60<<8) |(1<<VFlag)|(1<<NFlag) \r
3195 .hword (0x61<<8) |(1<<NFlag) \r
3196 .hword (0x62<<8) |(1<<NFlag) \r
3197 .hword (0x63<<8) |(1<<VFlag)|(1<<NFlag) \r
3198 .hword (0x64<<8) |(1<<NFlag) \r
3199 .hword (0x65<<8) |(1<<VFlag)|(1<<NFlag) \r
3200 .hword (0x66<<8) |(1<<VFlag)|(1<<NFlag) \r
3201 .hword (0x67<<8) |(1<<NFlag) \r
3202 .hword (0x68<<8) |(1<<NFlag) \r
3203 .hword (0x69<<8) |(1<<VFlag)|(1<<NFlag) \r
3204 .hword (0x6A<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag) \r
3205 .hword (0x6B<<8) |(1<<HFlag) |(1<<NFlag) \r
3206 .hword (0x6C<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag) \r
3207 .hword (0x6D<<8) |(1<<HFlag) |(1<<NFlag) \r
3208 .hword (0x6E<<8) |(1<<HFlag) |(1<<NFlag) \r
3209 .hword (0x6F<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag) \r
3210 .hword (0x70<<8) |(1<<NFlag) \r
3211 .hword (0x71<<8) |(1<<VFlag)|(1<<NFlag) \r
3212 .hword (0x72<<8) |(1<<VFlag)|(1<<NFlag) \r
3213 .hword (0x73<<8) |(1<<NFlag) \r
3214 .hword (0x74<<8) |(1<<VFlag)|(1<<NFlag) \r
3215 .hword (0x75<<8) |(1<<NFlag) \r
3216 .hword (0x76<<8) |(1<<NFlag) \r
3217 .hword (0x77<<8) |(1<<VFlag)|(1<<NFlag) \r
3218 .hword (0x78<<8) |(1<<VFlag)|(1<<NFlag) \r
3219 .hword (0x79<<8) |(1<<NFlag) \r
3220 .hword (0x7A<<8) |(1<<HFlag) |(1<<NFlag) \r
3221 .hword (0x7B<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag) \r
3222 .hword (0x7C<<8) |(1<<HFlag) |(1<<NFlag) \r
3223 .hword (0x7D<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag) \r
3224 .hword (0x7E<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag) \r
3225 .hword (0x7F<<8) |(1<<HFlag) |(1<<NFlag) \r
3226 .hword (0x80<<8)|(1<<SFlag) |(1<<NFlag) \r
3227 .hword (0x81<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag) \r
3228 .hword (0x82<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag) \r
3229 .hword (0x83<<8)|(1<<SFlag) |(1<<NFlag) \r
3230 .hword (0x84<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag) \r
3231 .hword (0x85<<8)|(1<<SFlag) |(1<<NFlag) \r
3232 .hword (0x86<<8)|(1<<SFlag) |(1<<NFlag) \r
3233 .hword (0x87<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag) \r
3234 .hword (0x88<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag) \r
3235 .hword (0x89<<8)|(1<<SFlag) |(1<<NFlag) \r
3236 .hword (0x8A<<8)|(1<<SFlag) |(1<<HFlag) |(1<<NFlag) \r
3237 .hword (0x8B<<8)|(1<<SFlag) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag) \r
3238 .hword (0x8C<<8)|(1<<SFlag) |(1<<HFlag) |(1<<NFlag) \r
3239 .hword (0x8D<<8)|(1<<SFlag) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag) \r
3240 .hword (0x8E<<8)|(1<<SFlag) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag) \r
3241 .hword (0x8F<<8)|(1<<SFlag) |(1<<HFlag) |(1<<NFlag) \r
3242 .hword (0x90<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag) \r
3243 .hword (0x91<<8)|(1<<SFlag) |(1<<NFlag) \r
3244 .hword (0x92<<8)|(1<<SFlag) |(1<<NFlag) \r
3245 .hword (0x93<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag) \r
3246 .hword (0x34<<8) |(1<<NFlag)|(1<<CFlag)\r
3247 .hword (0x35<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3248 .hword (0x36<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3249 .hword (0x37<<8) |(1<<NFlag)|(1<<CFlag)\r
3250 .hword (0x38<<8) |(1<<NFlag)|(1<<CFlag)\r
3251 .hword (0x39<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3252 .hword (0x3A<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3253 .hword (0x3B<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3254 .hword (0x3C<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3255 .hword (0x3D<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3256 .hword (0x3E<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3257 .hword (0x3F<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3258 .hword (0x40<<8) |(1<<NFlag)|(1<<CFlag)\r
3259 .hword (0x41<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3260 .hword (0x42<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3261 .hword (0x43<<8) |(1<<NFlag)|(1<<CFlag)\r
3262 .hword (0x44<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3263 .hword (0x45<<8) |(1<<NFlag)|(1<<CFlag)\r
3264 .hword (0x46<<8) |(1<<NFlag)|(1<<CFlag)\r
3265 .hword (0x47<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3266 .hword (0x48<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3267 .hword (0x49<<8) |(1<<NFlag)|(1<<CFlag)\r
3268 .hword (0x4A<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3269 .hword (0x4B<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3270 .hword (0x4C<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3271 .hword (0x4D<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3272 .hword (0x4E<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3273 .hword (0x4F<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3274 .hword (0x50<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3275 .hword (0x51<<8) |(1<<NFlag)|(1<<CFlag)\r
3276 .hword (0x52<<8) |(1<<NFlag)|(1<<CFlag)\r
3277 .hword (0x53<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3278 .hword (0x54<<8) |(1<<NFlag)|(1<<CFlag)\r
3279 .hword (0x55<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3280 .hword (0x56<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3281 .hword (0x57<<8) |(1<<NFlag)|(1<<CFlag)\r
3282 .hword (0x58<<8) |(1<<NFlag)|(1<<CFlag)\r
3283 .hword (0x59<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3284 .hword (0x5A<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3285 .hword (0x5B<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3286 .hword (0x5C<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3287 .hword (0x5D<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3288 .hword (0x5E<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3289 .hword (0x5F<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3290 .hword (0x60<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3291 .hword (0x61<<8) |(1<<NFlag)|(1<<CFlag)\r
3292 .hword (0x62<<8) |(1<<NFlag)|(1<<CFlag)\r
3293 .hword (0x63<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3294 .hword (0x64<<8) |(1<<NFlag)|(1<<CFlag)\r
3295 .hword (0x65<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3296 .hword (0x66<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3297 .hword (0x67<<8) |(1<<NFlag)|(1<<CFlag)\r
3298 .hword (0x68<<8) |(1<<NFlag)|(1<<CFlag)\r
3299 .hword (0x69<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3300 .hword (0x6A<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3301 .hword (0x6B<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3302 .hword (0x6C<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3303 .hword (0x6D<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3304 .hword (0x6E<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3305 .hword (0x6F<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3306 .hword (0x70<<8) |(1<<NFlag)|(1<<CFlag)\r
3307 .hword (0x71<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3308 .hword (0x72<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3309 .hword (0x73<<8) |(1<<NFlag)|(1<<CFlag)\r
3310 .hword (0x74<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3311 .hword (0x75<<8) |(1<<NFlag)|(1<<CFlag)\r
3312 .hword (0x76<<8) |(1<<NFlag)|(1<<CFlag)\r
3313 .hword (0x77<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3314 .hword (0x78<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3315 .hword (0x79<<8) |(1<<NFlag)|(1<<CFlag)\r
3316 .hword (0x7A<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3317 .hword (0x7B<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3318 .hword (0x7C<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3319 .hword (0x7D<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3320 .hword (0x7E<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3321 .hword (0x7F<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3322 .hword (0x80<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3323 .hword (0x81<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3324 .hword (0x82<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3325 .hword (0x83<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3326 .hword (0x84<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3327 .hword (0x85<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3328 .hword (0x86<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3329 .hword (0x87<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3330 .hword (0x88<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3331 .hword (0x89<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3332 .hword (0x8A<<8)|(1<<SFlag) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3333 .hword (0x8B<<8)|(1<<SFlag) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3334 .hword (0x8C<<8)|(1<<SFlag) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3335 .hword (0x8D<<8)|(1<<SFlag) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3336 .hword (0x8E<<8)|(1<<SFlag) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3337 .hword (0x8F<<8)|(1<<SFlag) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3338 .hword (0x90<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3339 .hword (0x91<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3340 .hword (0x92<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3341 .hword (0x93<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3342 .hword (0x94<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3343 .hword (0x95<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3344 .hword (0x96<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3345 .hword (0x97<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3346 .hword (0x98<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3347 .hword (0x99<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3348 .hword (0x9A<<8)|(1<<SFlag) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3349 .hword (0x9B<<8)|(1<<SFlag) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3350 .hword (0x9C<<8)|(1<<SFlag) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3351 .hword (0x9D<<8)|(1<<SFlag) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3352 .hword (0x9E<<8)|(1<<SFlag) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3353 .hword (0x9F<<8)|(1<<SFlag) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3354 .hword (0xA0<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3355 .hword (0xA1<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3356 .hword (0xA2<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3357 .hword (0xA3<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3358 .hword (0xA4<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3359 .hword (0xA5<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3360 .hword (0xA6<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3361 .hword (0xA7<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3362 .hword (0xA8<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3363 .hword (0xA9<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3364 .hword (0xAA<<8)|(1<<SFlag) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3365 .hword (0xAB<<8)|(1<<SFlag) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3366 .hword (0xAC<<8)|(1<<SFlag) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3367 .hword (0xAD<<8)|(1<<SFlag) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3368 .hword (0xAE<<8)|(1<<SFlag) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3369 .hword (0xAF<<8)|(1<<SFlag) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3370 .hword (0xB0<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3371 .hword (0xB1<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3372 .hword (0xB2<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3373 .hword (0xB3<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3374 .hword (0xB4<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3375 .hword (0xB5<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3376 .hword (0xB6<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3377 .hword (0xB7<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3378 .hword (0xB8<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3379 .hword (0xB9<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3380 .hword (0xBA<<8)|(1<<SFlag) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3381 .hword (0xBB<<8)|(1<<SFlag) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3382 .hword (0xBC<<8)|(1<<SFlag) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3383 .hword (0xBD<<8)|(1<<SFlag) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3384 .hword (0xBE<<8)|(1<<SFlag) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3385 .hword (0xBF<<8)|(1<<SFlag) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3386 .hword (0xC0<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3387 .hword (0xC1<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3388 .hword (0xC2<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3389 .hword (0xC3<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3390 .hword (0xC4<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3391 .hword (0xC5<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3392 .hword (0xC6<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3393 .hword (0xC7<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3394 .hword (0xC8<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3395 .hword (0xC9<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3396 .hword (0xCA<<8)|(1<<SFlag) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3397 .hword (0xCB<<8)|(1<<SFlag) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3398 .hword (0xCC<<8)|(1<<SFlag) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3399 .hword (0xCD<<8)|(1<<SFlag) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3400 .hword (0xCE<<8)|(1<<SFlag) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3401 .hword (0xCF<<8)|(1<<SFlag) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3402 .hword (0xD0<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3403 .hword (0xD1<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3404 .hword (0xD2<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3405 .hword (0xD3<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3406 .hword (0xD4<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3407 .hword (0xD5<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3408 .hword (0xD6<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3409 .hword (0xD7<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3410 .hword (0xD8<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3411 .hword (0xD9<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3412 .hword (0xDA<<8)|(1<<SFlag) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3413 .hword (0xDB<<8)|(1<<SFlag) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3414 .hword (0xDC<<8)|(1<<SFlag) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3415 .hword (0xDD<<8)|(1<<SFlag) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3416 .hword (0xDE<<8)|(1<<SFlag) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3417 .hword (0xDF<<8)|(1<<SFlag) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3418 .hword (0xE0<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3419 .hword (0xE1<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3420 .hword (0xE2<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3421 .hword (0xE3<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3422 .hword (0xE4<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3423 .hword (0xE5<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3424 .hword (0xE6<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3425 .hword (0xE7<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3426 .hword (0xE8<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3427 .hword (0xE9<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3428 .hword (0xEA<<8)|(1<<SFlag) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3429 .hword (0xEB<<8)|(1<<SFlag) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3430 .hword (0xEC<<8)|(1<<SFlag) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3431 .hword (0xED<<8)|(1<<SFlag) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3432 .hword (0xEE<<8)|(1<<SFlag) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3433 .hword (0xEF<<8)|(1<<SFlag) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3434 .hword (0xF0<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3435 .hword (0xF1<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3436 .hword (0xF2<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3437 .hword (0xF3<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3438 .hword (0xF4<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3439 .hword (0xF5<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3440 .hword (0xF6<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3441 .hword (0xF7<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3442 .hword (0xF8<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3443 .hword (0xF9<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3444 .hword (0xFA<<8)|(1<<SFlag) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3445 .hword (0xFB<<8)|(1<<SFlag) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3446 .hword (0xFC<<8)|(1<<SFlag) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3447 .hword (0xFD<<8)|(1<<SFlag) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3448 .hword (0xFE<<8)|(1<<SFlag) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3449 .hword (0xFF<<8)|(1<<SFlag) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3450 .hword (0x00<<8) |(1<<ZFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3451 .hword (0x01<<8) |(1<<NFlag)|(1<<CFlag)\r
3452 .hword (0x02<<8) |(1<<NFlag)|(1<<CFlag)\r
3453 .hword (0x03<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3454 .hword (0x04<<8) |(1<<NFlag)|(1<<CFlag)\r
3455 .hword (0x05<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3456 .hword (0x06<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3457 .hword (0x07<<8) |(1<<NFlag)|(1<<CFlag)\r
3458 .hword (0x08<<8) |(1<<NFlag)|(1<<CFlag)\r
3459 .hword (0x09<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3460 .hword (0x0A<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3461 .hword (0x0B<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3462 .hword (0x0C<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3463 .hword (0x0D<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3464 .hword (0x0E<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3465 .hword (0x0F<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3466 .hword (0x10<<8) |(1<<NFlag)|(1<<CFlag)\r
3467 .hword (0x11<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3468 .hword (0x12<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3469 .hword (0x13<<8) |(1<<NFlag)|(1<<CFlag)\r
3470 .hword (0x14<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3471 .hword (0x15<<8) |(1<<NFlag)|(1<<CFlag)\r
3472 .hword (0x16<<8) |(1<<NFlag)|(1<<CFlag)\r
3473 .hword (0x17<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3474 .hword (0x18<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3475 .hword (0x19<<8) |(1<<NFlag)|(1<<CFlag)\r
3476 .hword (0x1A<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3477 .hword (0x1B<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3478 .hword (0x1C<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3479 .hword (0x1D<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3480 .hword (0x1E<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3481 .hword (0x1F<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3482 .hword (0x20<<8) |(1<<NFlag)|(1<<CFlag)\r
3483 .hword (0x21<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3484 .hword (0x22<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3485 .hword (0x23<<8) |(1<<NFlag)|(1<<CFlag)\r
3486 .hword (0x24<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3487 .hword (0x25<<8) |(1<<NFlag)|(1<<CFlag)\r
3488 .hword (0x26<<8) |(1<<NFlag)|(1<<CFlag)\r
3489 .hword (0x27<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3490 .hword (0x28<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3491 .hword (0x29<<8) |(1<<NFlag)|(1<<CFlag)\r
3492 .hword (0x2A<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3493 .hword (0x2B<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3494 .hword (0x2C<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3495 .hword (0x2D<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3496 .hword (0x2E<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3497 .hword (0x2F<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3498 .hword (0x30<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3499 .hword (0x31<<8) |(1<<NFlag)|(1<<CFlag)\r
3500 .hword (0x32<<8) |(1<<NFlag)|(1<<CFlag)\r
3501 .hword (0x33<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3502 .hword (0x34<<8) |(1<<NFlag)|(1<<CFlag)\r
3503 .hword (0x35<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3504 .hword (0x36<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3505 .hword (0x37<<8) |(1<<NFlag)|(1<<CFlag)\r
3506 .hword (0x38<<8) |(1<<NFlag)|(1<<CFlag)\r
3507 .hword (0x39<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3508 .hword (0x3A<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3509 .hword (0x3B<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3510 .hword (0x3C<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3511 .hword (0x3D<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3512 .hword (0x3E<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3513 .hword (0x3F<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3514 .hword (0x40<<8) |(1<<NFlag)|(1<<CFlag)\r
3515 .hword (0x41<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3516 .hword (0x42<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3517 .hword (0x43<<8) |(1<<NFlag)|(1<<CFlag)\r
3518 .hword (0x44<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3519 .hword (0x45<<8) |(1<<NFlag)|(1<<CFlag)\r
3520 .hword (0x46<<8) |(1<<NFlag)|(1<<CFlag)\r
3521 .hword (0x47<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3522 .hword (0x48<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3523 .hword (0x49<<8) |(1<<NFlag)|(1<<CFlag)\r
3524 .hword (0x4A<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3525 .hword (0x4B<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3526 .hword (0x4C<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3527 .hword (0x4D<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3528 .hword (0x4E<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3529 .hword (0x4F<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3530 .hword (0x50<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3531 .hword (0x51<<8) |(1<<NFlag)|(1<<CFlag)\r
3532 .hword (0x52<<8) |(1<<NFlag)|(1<<CFlag)\r
3533 .hword (0x53<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3534 .hword (0x54<<8) |(1<<NFlag)|(1<<CFlag)\r
3535 .hword (0x55<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3536 .hword (0x56<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3537 .hword (0x57<<8) |(1<<NFlag)|(1<<CFlag)\r
3538 .hword (0x58<<8) |(1<<NFlag)|(1<<CFlag)\r
3539 .hword (0x59<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3540 .hword (0x5A<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3541 .hword (0x5B<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3542 .hword (0x5C<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3543 .hword (0x5D<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3544 .hword (0x5E<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3545 .hword (0x5F<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3546 .hword (0x60<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3547 .hword (0x61<<8) |(1<<NFlag)|(1<<CFlag)\r
3548 .hword (0x62<<8) |(1<<NFlag)|(1<<CFlag)\r
3549 .hword (0x63<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3550 .hword (0x64<<8) |(1<<NFlag)|(1<<CFlag)\r
3551 .hword (0x65<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3552 .hword (0x66<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3553 .hword (0x67<<8) |(1<<NFlag)|(1<<CFlag)\r
3554 .hword (0x68<<8) |(1<<NFlag)|(1<<CFlag)\r
3555 .hword (0x69<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3556 .hword (0x6A<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3557 .hword (0x6B<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3558 .hword (0x6C<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3559 .hword (0x6D<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3560 .hword (0x6E<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3561 .hword (0x6F<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3562 .hword (0x70<<8) |(1<<NFlag)|(1<<CFlag)\r
3563 .hword (0x71<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3564 .hword (0x72<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3565 .hword (0x73<<8) |(1<<NFlag)|(1<<CFlag)\r
3566 .hword (0x74<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3567 .hword (0x75<<8) |(1<<NFlag)|(1<<CFlag)\r
3568 .hword (0x76<<8) |(1<<NFlag)|(1<<CFlag)\r
3569 .hword (0x77<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3570 .hword (0x78<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3571 .hword (0x79<<8) |(1<<NFlag)|(1<<CFlag)\r
3572 .hword (0x7A<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3573 .hword (0x7B<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3574 .hword (0x7C<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3575 .hword (0x7D<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3576 .hword (0x7E<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3577 .hword (0x7F<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3578 .hword (0x80<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3579 .hword (0x81<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3580 .hword (0x82<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3581 .hword (0x83<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3582 .hword (0x84<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3583 .hword (0x85<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3584 .hword (0x86<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3585 .hword (0x87<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3586 .hword (0x88<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3587 .hword (0x89<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3588 .hword (0x8A<<8)|(1<<SFlag) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3589 .hword (0x8B<<8)|(1<<SFlag) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3590 .hword (0x8C<<8)|(1<<SFlag) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3591 .hword (0x8D<<8)|(1<<SFlag) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3592 .hword (0x8E<<8)|(1<<SFlag) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3593 .hword (0x8F<<8)|(1<<SFlag) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3594 .hword (0x90<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3595 .hword (0x91<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3596 .hword (0x92<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3597 .hword (0x93<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3598 .hword (0x94<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3599 .hword (0x95<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3600 .hword (0x96<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3601 .hword (0x97<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3602 .hword (0x98<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3603 .hword (0x99<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3604 \r
3605.align 4\r
3606\r
3607AF_Z80: .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 0\r
3608 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 1\r
3609 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 2\r
3610 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 3\r
3611 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 4\r
3612 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 5\r
3613 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 6\r
3614 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 7\r
3615 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 8\r
3616 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 9\r
3617 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 10\r
3618 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 11\r
3619 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 12\r
3620 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 13\r
3621 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 14\r
3622 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 15\r
3623 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 16\r
3624 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 17\r
3625 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 18\r
3626 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 19\r
3627 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 20\r
3628 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 21\r
3629 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 22\r
3630 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 23\r
3631 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 24\r
3632 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 25\r
3633 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 26\r
3634 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 27\r
3635 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 28\r
3636 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 29\r
3637 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 30\r
3638 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 31\r
3639 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 32\r
3640 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 33\r
3641 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 34\r
3642 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 35\r
3643 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 36\r
3644 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 37\r
3645 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 38\r
3646 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 39\r
3647 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 40\r
3648 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 41\r
3649 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 42\r
3650 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 43\r
3651 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 44\r
3652 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 45\r
3653 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 46\r
3654 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 47\r
3655 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 48\r
3656 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 49\r
3657 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 50\r
3658 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 51\r
3659 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 52\r
3660 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 53\r
3661 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 54\r
3662 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 55\r
3663 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 56\r
3664 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 57\r
3665 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 58\r
3666 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 59\r
3667 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 60\r
3668 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 61\r
3669 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 62\r
3670 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 63\r
3671 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 64\r
3672 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 65\r
3673 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 66\r
3674 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 67\r
3675 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 68\r
3676 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 69\r
3677 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 70\r
3678 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 71\r
3679 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 72\r
3680 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 73\r
3681 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 74\r
3682 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 75\r
3683 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 76\r
3684 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 77\r
3685 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 78\r
3686 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 79\r
3687 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 80\r
3688 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 81\r
3689 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 82\r
3690 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 83\r
3691 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 84\r
3692 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 85\r
3693 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 86\r
3694 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 87\r
3695 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 88\r
3696 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 89\r
3697 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 90\r
3698 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 91\r
3699 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 92\r
3700 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 93\r
3701 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 94\r
3702 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 95\r
3703 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 96\r
3704 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 97\r
3705 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 98\r
3706 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 99\r
3707 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 100\r
3708 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 101\r
3709 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 102\r
3710 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 103\r
3711 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 104\r
3712 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 105\r
3713 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 106\r
3714 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 107\r
3715 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 108\r
3716 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 109\r
3717 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 110\r
3718 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 111\r
3719 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 112\r
3720 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 113\r
3721 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 114\r
3722 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 115\r
3723 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 116\r
3724 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 117\r
3725 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 118\r
3726 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 119\r
3727 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 120\r
3728 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 121\r
3729 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 122\r
3730 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 123\r
3731 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 124\r
3732 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 125\r
3733 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 126\r
3734 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 127\r
3735 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 128\r
3736 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 129\r
3737 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 130\r
3738 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 131\r
3739 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 132\r
3740 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 133\r
3741 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 134\r
3742 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 135\r
3743 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 136\r
3744 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 137\r
3745 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 138\r
3746 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 139\r
3747 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 140\r
3748 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 141\r
3749 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 142\r
3750 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 143\r
3751 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 144\r
3752 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 145\r
3753 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 146\r
3754 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 147\r
3755 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 148\r
3756 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 149\r
3757 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 150\r
3758 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 151\r
3759 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 152\r
3760 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 153\r
3761 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 154\r
3762 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 155\r
3763 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 156\r
3764 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 157\r
3765 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 158\r
3766 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 159\r
3767 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 160\r
3768 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 161\r
3769 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 162\r
3770 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 163\r
3771 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 164\r
3772 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 165\r
3773 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 166\r
3774 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 167\r
3775 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 168\r
3776 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 169\r
3777 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 170\r
3778 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 171\r
3779 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 172\r
3780 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 173\r
3781 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 174\r
3782 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 175\r
3783 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 176\r
3784 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 177\r
3785 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 178\r
3786 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 179\r
3787 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 180\r
3788 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 181\r
3789 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 182\r
3790 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 183\r
3791 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 184\r
3792 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 185\r
3793 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 186\r
3794 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 187\r
3795 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 188\r
3796 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 189\r
3797 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 190\r
3798 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 191\r
3799 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 192\r
3800 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 193\r
3801 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 194\r
3802 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 195\r
3803 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 196\r
3804 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 197\r
3805 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 198\r
3806 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 199\r
3807 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 200\r
3808 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 201\r
3809 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 202\r
3810 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 203\r
3811 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 204\r
3812 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 205\r
3813 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 206\r
3814 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 207\r
3815 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 208\r
3816 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 209\r
3817 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 210\r
3818 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 211\r
3819 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 212\r
3820 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 213\r
3821 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 214\r
3822 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 215\r
3823 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 216\r
3824 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 217\r
3825 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 218\r
3826 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 219\r
3827 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 220\r
3828 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 221\r
3829 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 222\r
3830 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 223\r
3831 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 224\r
3832 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 225\r
3833 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 226\r
3834 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 227\r
3835 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 228\r
3836 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 229\r
3837 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 230\r
3838 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 231\r
3839 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 232\r
3840 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 233\r
3841 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 234\r
3842 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 235\r
3843 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 236\r
3844 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 237\r
3845 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 238\r
3846 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 239\r
3847 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 240\r
3848 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 241\r
3849 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 242\r
3850 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 243\r
3851 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 244\r
3852 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 245\r
3853 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 246\r
3854 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 247\r
3855 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 248\r
3856 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 249\r
3857 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 250\r
3858 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 251\r
3859 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 252\r
3860 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 253\r
3861 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 254\r
3862 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 255\r
3863\r
3864.align 4\r
3865\r
3866AF_ARM: .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 0\r
3867 .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 1\r
3868 .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 2\r
3869 .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 3\r
3870 .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 4\r
3871 .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 5\r
3872 .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 6\r
3873 .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 7\r
3874 .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 8\r
3875 .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 9\r
3876 .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 10\r
3877 .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 11\r
3878 .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 12\r
3879 .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 13\r
3880 .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 14\r
3881 .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 15\r
3882 .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 16\r
3883 .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 17\r
3884 .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 18\r
3885 .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 19\r
3886 .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 20\r
3887 .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 21\r
3888 .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 22\r
3889 .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 23\r
3890 .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 24\r
3891 .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 25\r
3892 .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 26\r
3893 .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 27\r
3894 .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 28\r
3895 .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 29\r
3896 .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 30\r
3897 .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 31\r
3898 .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 32\r
3899 .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 33\r
3900 .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 34\r
3901 .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 35\r
3902 .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 36\r
3903 .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 37\r
3904 .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 38\r
3905 .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 39\r
3906 .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 40\r
3907 .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 41\r
3908 .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 42\r
3909 .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 43\r
3910 .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 44\r
3911 .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 45\r
3912 .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 46\r
3913 .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 47\r
3914 .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 48\r
3915 .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 49\r
3916 .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 50\r
3917 .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 51\r
3918 .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 52\r
3919 .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 53\r
3920 .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 54\r
3921 .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 55\r
3922 .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 56\r
3923 .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 57\r
3924 .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 58\r
3925 .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 59\r
3926 .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 60\r
3927 .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 61\r
3928 .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 62\r
3929 .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 63\r
3930 .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 64\r
3931 .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 65\r
3932 .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 66\r
3933 .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 67\r
3934 .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 68\r
3935 .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 69\r
3936 .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 70\r
3937 .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 71\r
3938 .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 72\r
3939 .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 73\r
3940 .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 74\r
3941 .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 75\r
3942 .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 76\r
3943 .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 77\r
3944 .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 78\r
3945 .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 79\r
3946 .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 80\r
3947 .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 81\r
3948 .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 82\r
3949 .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 83\r
3950 .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 84\r
3951 .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 85\r
3952 .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 86\r
3953 .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 87\r
3954 .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 88\r
3955 .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 89\r
3956 .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 90\r
3957 .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 91\r
3958 .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 92\r
3959 .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 93\r
3960 .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 94\r
3961 .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 95\r
3962 .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 96\r
3963 .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 97\r
3964 .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 98\r
3965 .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 99\r
3966 .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 100\r
3967 .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 101\r
3968 .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 102\r
3969 .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 103\r
3970 .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 104\r
3971 .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 105\r
3972 .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 106\r
3973 .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 107\r
3974 .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 108\r
3975 .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 109\r
3976 .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 110\r
3977 .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 111\r
3978 .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 112\r
3979 .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 113\r
3980 .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 114\r
3981 .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 115\r
3982 .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 116\r
3983 .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 117\r
3984 .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 118\r
3985 .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 119\r
3986 .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 120\r
3987 .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 121\r
3988 .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 122\r
3989 .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 123\r
3990 .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 124\r
3991 .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 125\r
3992 .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 126\r
3993 .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 127\r
3994 .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 128\r
3995 .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 129\r
3996 .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 130\r
3997 .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 131\r
3998 .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 132\r
3999 .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 133\r
4000 .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 134\r
4001 .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 135\r
4002 .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 136\r
4003 .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 137\r
4004 .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 138\r
4005 .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 139\r
4006 .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 140\r
4007 .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 141\r
4008 .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 142\r
4009 .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 143\r
4010 .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 144\r
4011 .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 145\r
4012 .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 146\r
4013 .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 147\r
4014 .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 148\r
4015 .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 149\r
4016 .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 150\r
4017 .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 151\r
4018 .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 152\r
4019 .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 153\r
4020 .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 154\r
4021 .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 155\r
4022 .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 156\r
4023 .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 157\r
4024 .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 158\r
4025 .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 159\r
4026 .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 160\r
4027 .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 161\r
4028 .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 162\r
4029 .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 163\r
4030 .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 164\r
4031 .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 165\r
4032 .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 166\r
4033 .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 167\r
4034 .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 168\r
4035 .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 169\r
4036 .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 170\r
4037 .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 171\r
4038 .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 172\r
4039 .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 173\r
4040 .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 174\r
4041 .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 175\r
4042 .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 176\r
4043 .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 177\r
4044 .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 178\r
4045 .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 179\r
4046 .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 180\r
4047 .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 181\r
4048 .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 182\r
4049 .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 183\r
4050 .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 184\r
4051 .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 185\r
4052 .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 186\r
4053 .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 187\r
4054 .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 188\r
4055 .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 189\r
4056 .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 190\r
4057 .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 191\r
4058 .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 192\r
4059 .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 193\r
4060 .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 194\r
4061 .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 195\r
4062 .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 196\r
4063 .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 197\r
4064 .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 198\r
4065 .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 199\r
4066 .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 200\r
4067 .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 201\r
4068 .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 202\r
4069 .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 203\r
4070 .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 204\r
4071 .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 205\r
4072 .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 206\r
4073 .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 207\r
4074 .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 208\r
4075 .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 209\r
4076 .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 210\r
4077 .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 211\r
4078 .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 212\r
4079 .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 213\r
4080 .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 214\r
4081 .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 215\r
4082 .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 216\r
4083 .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 217\r
4084 .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 218\r
4085 .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 219\r
4086 .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 220\r
4087 .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 221\r
4088 .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 222\r
4089 .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 223\r
4090 .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 224\r
4091 .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 225\r
4092 .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 226\r
4093 .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 227\r
4094 .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 228\r
4095 .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 229\r
4096 .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 230\r
4097 .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 231\r
4098 .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 232\r
4099 .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 233\r
4100 .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 234\r
4101 .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 235\r
4102 .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 236\r
4103 .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 237\r
4104 .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 238\r
4105 .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 239\r
4106 .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 240\r
4107 .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 241\r
4108 .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 242\r
4109 .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 243\r
4110 .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 244\r
4111 .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 245\r
4112 .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 246\r
4113 .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 247\r
4114 .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 248\r
4115 .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 249\r
4116 .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 250\r
4117 .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 251\r
4118 .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 252\r
4119 .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 253\r
4120 .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 254\r
4121 .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 255\r
4122\r
4123.align 4\r
4124\r
4125PZSTable_data: .byte (1<<ZFlag)|(1<<VFlag),0,0,(1<<VFlag),0,(1<<VFlag),(1<<VFlag),0\r
4126 .byte 0,(1<<VFlag),(1<<VFlag),0,(1<<VFlag),0,0,(1<<VFlag)\r
4127 .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
4128 .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
4129 .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
4130 .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
4131 .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
4132 .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
4133 .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
4134 .byte (1<<SFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)\r
4135 .byte (1<<SFlag)|(1<<VFlag),(1<<SFlag),(1<<SFlag),(1<<SFlag)|(1<<VFlag)\r
4136 .byte (1<<SFlag)|(1<<VFlag),(1<<SFlag),(1<<SFlag),(1<<SFlag)|(1<<VFlag)\r
4137 .byte (1<<SFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)\r
4138 .byte (1<<SFlag)|(1<<VFlag),(1<<SFlag),(1<<SFlag),(1<<SFlag)|(1<<VFlag)\r
4139 .byte (1<<SFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)\r
4140 .byte (1<<SFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)\r
4141 .byte (1<<SFlag)|(1<<VFlag),(1<<SFlag),(1<<SFlag),(1<<SFlag)|(1<<VFlag)\r
4142 .byte (1<<SFlag)|(1<<VFlag),(1<<SFlag),(1<<SFlag),(1<<SFlag)|(1<<VFlag)\r
4143 .byte (1<<SFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)\r
4144 .byte (1<<SFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)\r
4145 .byte (1<<SFlag)|(1<<VFlag),(1<<SFlag),(1<<SFlag),(1<<SFlag)|(1<<VFlag)\r
4146 .byte (1<<SFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)\r
4147 .byte (1<<SFlag)|(1<<VFlag),(1<<SFlag),(1<<SFlag),(1<<SFlag)|(1<<VFlag)\r
4148 .byte (1<<SFlag)|(1<<VFlag),(1<<SFlag),(1<<SFlag),(1<<SFlag)|(1<<VFlag)\r
4149 .byte (1<<SFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)\r
4150 .byte (1<<SFlag)|(1<<VFlag),(1<<SFlag),(1<<SFlag),(1<<SFlag)|(1<<VFlag)\r
4151 .byte (1<<SFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)\r
4152 .byte (1<<SFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)\r
4153 .byte (1<<SFlag)|(1<<VFlag),(1<<SFlag),(1<<SFlag),(1<<SFlag)|(1<<VFlag)\r
4154 .byte (1<<SFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)\r
4155 .byte (1<<SFlag)|(1<<VFlag),(1<<SFlag),(1<<SFlag),(1<<SFlag)|(1<<VFlag)\r
4156 .byte (1<<SFlag)|(1<<VFlag),(1<<SFlag),(1<<SFlag),(1<<SFlag)|(1<<VFlag)\r
4157 .byte (1<<SFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)\r
4158 .byte (1<<SFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)\r
4159 .byte (1<<SFlag)|(1<<VFlag),(1<<SFlag),(1<<SFlag),(1<<SFlag)|(1<<VFlag)\r
4160 .byte (1<<SFlag)|(1<<VFlag),(1<<SFlag),(1<<SFlag),(1<<SFlag)|(1<<VFlag)\r
4161 .byte (1<<SFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)\r
4162 .byte (1<<SFlag)|(1<<VFlag),(1<<SFlag),(1<<SFlag),(1<<SFlag)|(1<<VFlag)\r
4163 .byte (1<<SFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)\r
4164 .byte (1<<SFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)\r
4165 .byte (1<<SFlag)|(1<<VFlag),(1<<SFlag),(1<<SFlag),(1<<SFlag)|(1<<VFlag) \r
4166\r
4167.align 4\r
4168\r
4169MAIN_opcodes: \r
4170 .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
4171 .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
4172 .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
4173 .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
4174 .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
4175 .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
4176 .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
4177 .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
4178 .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
4179 .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
4180 .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
4181 .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
4182 .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
4183 .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
4184 .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
4185 .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
4186 .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
4187 .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
4188 .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
4189 .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
4190 .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
4191 .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
4192 .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
4193 .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
4194 .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
4195 .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
4196 .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
4197 .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
4198 .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
4199 .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
4200 .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
4201 .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
4202\r
4203.align 4\r
4204\r
4205EI_DUMMY_opcodes:\r
4206 .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@0\r
4207 .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@0\r
4208 .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@1\r
4209 .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@1\r
4210 .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@2\r
4211 .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@2\r
4212 .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@3\r
4213 .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@3\r
4214 .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@4\r
4215 .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@4\r
4216 .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@5\r
4217 .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@5\r
4218 .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@6\r
4219 .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@6\r
4220 .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@7\r
4221 .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@7\r
4222 .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@8\r
4223 .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@8\r
4224 .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@9\r
4225 .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@9\r
4226 .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@A\r
4227 .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@A\r
4228 .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@B\r
4229 .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@B\r
4230 .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@C\r
4231 .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@C\r
4232 .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@D\r
4233 .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@D\r
4234 .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@E\r
4235 .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@E\r
4236 .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@F\r
4237 .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@F\r
4238\r
4239.text\r
4240.align 4\r
4241\r
4242;@NOP\r
4243opcode_0_0:\r
4244;@LD B,B\r
4245opcode_4_0:\r
4246;@LD C,C\r
4247opcode_4_9:\r
4248;@LD D,D\r
4249opcode_5_2:\r
4250;@LD E,E\r
4251opcode_5_B:\r
4252;@LD H,H\r
4253opcode_6_4:\r
4254;@LD L,L\r
4255opcode_6_D:\r
4256;@LD A,A\r
4257opcode_7_F:\r
4258 fetch 4\r
4259;@LD BC,NN\r
4260opcode_0_1:\r
4261 ldrb r0,[z80pc],#1\r
4262 ldrb r1,[z80pc],#1\r
4263 orr r0,r0,r1, lsl #8\r
4264 mov z80bc,r0, lsl #16\r
4265 fetch 10\r
4266;@LD (BC),A\r
4267opcode_0_2:\r
4268 mov r0,z80a, lsr #24\r
4269 mov r1,z80bc, lsr #16\r
4270 writemem8\r
4271 fetch 7\r
4272;@INC BC\r
4273opcode_0_3:\r
4274 add z80bc,z80bc,#1<<16\r
4275 fetch 6\r
4276;@INC B\r
4277opcode_0_4:\r
4278 opINC8H z80bc\r
4279 fetch 4\r
4280;@DEC B\r
4281opcode_0_5:\r
4282 opDEC8H z80bc\r
4283 fetch 4\r
4284;@LD B,N\r
4285opcode_0_6:\r
4286 ldrb r1,[z80pc],#1\r
4287 and z80bc,z80bc,#0xFF<<16\r
4288 orr z80bc,z80bc,r1, lsl #24\r
4289 fetch 7\r
4290;@RLCA\r
4291opcode_0_7:\r
4292 bic z80f,z80f,#(1<<NFlag)|(1<<HFlag)|(1<<CFlag)\r
4293 movs z80a,z80a, lsl #1\r
4294 orrcs z80a,z80a,#1<<24\r
4295 orrcs z80f,z80f,#1<<CFlag\r
4296 fetch 4\r
4297;@EX AF,AF'\r
4298opcode_0_8:\r
15b5b525 4299 ldr r0,[cpucontext,#z80a2]\r
4300 ldr r1,[cpucontext,#z80f2]\r
4301 str z80a,[cpucontext,#z80a2]\r
4302 str z80f,[cpucontext,#z80f2]\r
4303 mov z80a,r0\r
4304 mov z80f,r1\r
cc68a136 4305 fetch 4\r
4306;@ADD HL,BC\r
4307opcode_0_9:\r
4308 opADD16 z80hl z80bc\r
4309 fetch 11\r
4310;@LD A,(BC)\r
4311opcode_0_A:\r
4312 mov r0,z80bc, lsr #16\r
4313 readmem8\r
4314 mov z80a,r0, lsl #24\r
4315 fetch 7\r
4316;@DEC BC\r
4317opcode_0_B:\r
4318 sub z80bc,z80bc,#1<<16\r
4319 fetch 6\r
4320;@INC C\r
4321opcode_0_C:\r
4322 opINC8L z80bc\r
4323 fetch 4\r
4324;@DEC C\r
4325opcode_0_D:\r
4326 opDEC8L z80bc\r
4327 fetch 4\r
4328;@LD C,N\r
4329opcode_0_E:\r
4330 ldrb r1,[z80pc],#1\r
4331 and z80bc,z80bc,#0xFF<<24\r
4332 orr z80bc,z80bc,r1, lsl #16\r
4333 fetch 7\r
4334;@RRCA\r
4335opcode_0_F:\r
4336 bic z80f,z80f,#(1<<NFlag)|(1<<HFlag)|(1<<CFlag)\r
4337 movs z80a,z80a, lsr #25\r
4338 orrcs z80a,z80a,#1<<7\r
4339 orrcs z80f,z80f,#1<<CFlag\r
4340 mov z80a,z80a, lsl #24\r
4341 fetch 4\r
4342;@DJNZ $+2\r
4343opcode_1_0:\r
4344 sub z80bc,z80bc,#1<<24\r
4345 tst z80bc,#0xFF<<24\r
4346 ldrsb r1,[z80pc],#1\r
4347 addne z80pc,z80pc,r1\r
4348 subne z80_icount,z80_icount,#5\r
4349 fetch 8\r
4350\r
4351;@LD DE,NN\r
4352opcode_1_1:\r
4353 ldrb r0,[z80pc],#1\r
4354 ldrb r1,[z80pc],#1\r
4355 orr r0,r0,r1, lsl #8\r
4356 mov z80de,r0, lsl #16\r
4357 fetch 10\r
4358;@LD (DE),A\r
4359opcode_1_2:\r
4360 mov r0,z80a, lsr #24\r
4361 writemem8DE\r
4362 fetch 7\r
4363;@INC DE\r
4364opcode_1_3:\r
4365 add z80de,z80de,#1<<16\r
4366 fetch 6\r
4367;@INC D\r
4368opcode_1_4:\r
4369 opINC8H z80de\r
4370 fetch 4\r
4371;@DEC D\r
4372opcode_1_5:\r
4373 opDEC8H z80de\r
4374 fetch 4\r
4375;@LD D,N\r
4376opcode_1_6:\r
4377 ldrb r1,[z80pc],#1\r
4378 and z80de,z80de,#0xFF<<16\r
4379 orr z80de,z80de,r1, lsl #24\r
4380 fetch 7\r
4381;@RLA\r
4382opcode_1_7:\r
4383 tst z80f,#1<<CFlag\r
4384 orrne z80a,z80a,#1<<23\r
4385 bic z80f,z80f,#(1<<NFlag)|(1<<HFlag)|(1<<CFlag)\r
4386 movs z80a,z80a, lsl #1\r
4387 orrcs z80f,z80f,#1<<CFlag\r
4388 fetch 4\r
4389;@JR $+2\r
4390opcode_1_8:\r
4391 ldrsb r1,[z80pc],#1\r
4392 add z80pc,z80pc,r1\r
4393 fetch 12\r
4394;@ADD HL,DE\r
4395opcode_1_9:\r
4396 opADD16 z80hl z80de\r
4397 fetch 11\r
4398;@LD A,(DE)\r
4399opcode_1_A:\r
4400 mov r0,z80de, lsr #16\r
4401 readmem8\r
4402 mov z80a,r0, lsl #24\r
4403 fetch 7\r
4404;@DEC DE\r
4405opcode_1_B:\r
4406 sub z80de,z80de,#1<<16\r
4407 fetch 6\r
4408;@INC E\r
4409opcode_1_C:\r
4410 opINC8L z80de\r
4411 fetch 4\r
4412;@DEC E\r
4413opcode_1_D:\r
4414 opDEC8L z80de\r
4415 fetch 4\r
4416;@LD E,N\r
4417opcode_1_E:\r
4418 ldrb r0,[z80pc],#1\r
4419 and z80de,z80de,#0xFF<<24\r
4420 orr z80de,z80de,r0, lsl #16\r
4421 fetch 7\r
4422;@RRA\r
4423opcode_1_F:\r
4424 orr z80a,z80a,z80f,lsr#1 ;@get C\r
4425 bic z80f,z80f,#(1<<NFlag)|(1<<HFlag)|(1<<CFlag)\r
4426 movs z80a,z80a,ror#25\r
4427 orrcs z80f,z80f,#1<<CFlag\r
4428 mov z80a,z80a,lsl#24\r
4429 fetch 4\r
4430;@JR NZ,$+2\r
4431opcode_2_0:\r
4432 tst z80f,#1<<ZFlag\r
4433 beq opcode_1_8\r
4434 add z80pc,z80pc,#1\r
4435 fetch 7\r
4436;@LD HL,NN\r
4437opcode_2_1:\r
4438 ldrb r0,[z80pc],#1\r
4439 ldrb r1,[z80pc],#1\r
4440 orr r0,r0,r1, lsl #8\r
4441 mov z80hl,r0, lsl #16\r
4442 fetch 10\r
4443;@LD (NN),HL\r
4444opcode_ED_63:\r
4445 eatcycles 4\r
4446;@LD (NN),HL\r
4447opcode_2_2:\r
4448 ldrb r0,[z80pc],#1\r
4449 ldrb r1,[z80pc],#1\r
4450 orr r1,r0,r1, lsl #8\r
4451 mov r0,z80hl, lsr #16\r
4452 writemem16\r
4453 fetch 16\r
4454;@INC HL\r
4455opcode_2_3:\r
4456 add z80hl,z80hl,#1<<16\r
4457 fetch 6\r
4458;@INC H\r
4459opcode_2_4:\r
4460 opINC8H z80hl\r
4461 fetch 4\r
4462;@DEC H\r
4463opcode_2_5:\r
4464 opDEC8H z80hl\r
4465 fetch 4\r
4466;@LD H,N\r
4467opcode_2_6:\r
4468 ldrb r1,[z80pc],#1\r
4469 and z80hl,z80hl,#0xFF<<16\r
4470 orr z80hl,z80hl,r1, lsl #24\r
4471 fetch 7\r
4472DAATABLE_LOCAL: .word DAATable\r
4473;@DAA\r
4474opcode_2_7:\r
4475 mov r1,z80a, lsr #24\r
4476 tst z80f,#1<<CFlag\r
4477 orrne r1,r1,#256\r
4478 tst z80f,#1<<HFlag\r
4479 orrne r1,r1,#512\r
4480 tst z80f,#1<<NFlag\r
4481 orrne r1,r1,#1024\r
4482 ldr r2,DAATABLE_LOCAL\r
4483 add r2,r2,r1, lsl #1\r
4484 ldrh r1,[r2]\r
4485 and z80f,r1,#0xFF\r
4486 and r2,r1,#0xFF<<8\r
4487 mov z80a,r2, lsl #16\r
4488 fetch 4\r
4489;@JR Z,$+2\r
4490opcode_2_8:\r
4491 tst z80f,#1<<ZFlag\r
4492 bne opcode_1_8\r
4493 add z80pc,z80pc,#1\r
4494 fetch 7\r
4495;@ADD HL,HL\r
4496opcode_2_9:\r
4497 opADD16_2 z80hl\r
4498 fetch 11\r
4499;@LD HL,(NN)\r
4500opcode_ED_6B:\r
4501 eatcycles 4\r
4502;@LD HL,(NN)\r
4503opcode_2_A:\r
4504 ldrb r0,[z80pc],#1\r
4505 ldrb r1,[z80pc],#1\r
4506 orr r0,r0,r1, lsl #8\r
4507 readmem16\r
4508 mov z80hl,r0, lsl #16\r
4509 fetch 16\r
4510;@DEC HL\r
4511opcode_2_B:\r
4512 sub z80hl,z80hl,#1<<16\r
4513 fetch 6\r
4514;@INC L\r
4515opcode_2_C:\r
4516 opINC8L z80hl\r
4517 fetch 4\r
4518;@DEC L\r
4519opcode_2_D:\r
4520 opDEC8L z80hl\r
4521 fetch 4\r
4522;@LD L,N\r
4523opcode_2_E:\r
4524 ldrb r0,[z80pc],#1\r
4525 and z80hl,z80hl,#0xFF<<24\r
4526 orr z80hl,z80hl,r0, lsl #16\r
4527 fetch 7\r
4528;@CPL\r
4529opcode_2_F:\r
4530 eor z80a,z80a,#0xFF<<24\r
4531 orr z80f,z80f,#(1<<NFlag)|(1<<HFlag)\r
4532 fetch 4\r
4533;@JR NC,$+2\r
4534opcode_3_0:\r
4535 tst z80f,#1<<CFlag\r
4536 beq opcode_1_8\r
4537 add z80pc,z80pc,#1\r
4538 fetch 7\r
4539;@LD SP,NN\r
4540opcode_3_1:\r
4541 ldrb r0,[z80pc],#1\r
4542 ldrb r1,[z80pc],#1\r
4543\r
4544.if FAST_Z80SP\r
4545 orr r0,r0,r1, lsl #8\r
4546 rebasesp\r
cc68a136 4547.else\r
4548 orr z80sp,r0,r1, lsl #8\r
4549.endif\r
4550 fetch 10\r
4551;@LD (NN),A\r
4552opcode_3_2:\r
4553 ldrb r0,[z80pc],#1\r
4554 ldrb r1,[z80pc],#1\r
4555 orr r1,r0,r1, lsl #8\r
4556 mov r0,z80a, lsr #24\r
4557 writemem8\r
4558 fetch 13\r
4559;@INC SP\r
4560opcode_3_3:\r
4561 add z80sp,z80sp,#1\r
4562 fetch 6\r
4563;@INC (HL)\r
4564opcode_3_4:\r
4565 readmem8HL\r
4566 opINC8b\r
4567 writemem8HL\r
4568 fetch 11\r
4569;@DEC (HL)\r
4570opcode_3_5:\r
4571 readmem8HL\r
4572 opDEC8b\r
4573 writemem8HL\r
4574 fetch 11\r
4575;@LD (HL),N\r
4576opcode_3_6:\r
4577 ldrb r0,[z80pc],#1\r
4578 writemem8HL\r
4579 fetch 10\r
4580;@SCF\r
4581opcode_3_7:\r
4582 bic z80f,z80f,#(1<<NFlag)|(1<<HFlag)\r
4583 orr z80f,z80f,#1<<CFlag\r
4584 fetch 4\r
4585;@JR C,$+2\r
4586opcode_3_8:\r
4587 tst z80f,#1<<CFlag\r
4588 bne opcode_1_8\r
4589 add z80pc,z80pc,#1\r
28d596af 4590 fetch 7\r
cc68a136 4591;@ADD HL,SP\r
4592opcode_3_9:\r
4593.if FAST_Z80SP\r
4594 ldr r0,[cpucontext,#z80sp_base]\r
4595 sub r0,z80sp,r0\r
4596 opADD16s z80hl r0 16\r
4597.else\r
4598 opADD16s z80hl z80sp 16\r
4599.endif\r
4600 fetch 11\r
4601;@LD A,(NN)\r
4602opcode_3_A:\r
4603 ldrb r0,[z80pc],#1\r
4604 ldrb r1,[z80pc],#1\r
4605 orr r0,r0,r1, lsl #8\r
4606 readmem8\r
4607 mov z80a,r0, lsl #24\r
28d596af 4608 fetch 13\r
cc68a136 4609;@DEC SP\r
4610opcode_3_B:\r
4611 sub z80sp,z80sp,#1\r
4612 fetch 6\r
4613;@INC A\r
4614opcode_3_C:\r
4615 opINC8 z80a\r
4616 fetch 4\r
4617;@DEC A\r
4618opcode_3_D:\r
4619 opDEC8 z80a\r
4620 fetch 4\r
4621;@LD A,N\r
4622opcode_3_E:\r
4623 ldrb r0,[z80pc],#1\r
4624 mov z80a,r0, lsl #24\r
4625 fetch 7\r
4626;@CCF\r
4627opcode_3_F:\r
4628 bic z80f,z80f,#(1<<NFlag)|(1<<HFlag)\r
4629 tst z80f,#1<<CFlag\r
4630 orrne z80f,z80f,#1<<HFlag\r
4631 eor z80f,z80f,#1<<CFlag\r
4632 fetch 4\r
4633\r
4634;@LD B,C\r
4635opcode_4_1:\r
4636 and z80bc,z80bc,#0xFF<<16\r
4637 orr z80bc,z80bc,z80bc, lsl #8\r
4638 fetch 4\r
4639;@LD B,D\r
4640opcode_4_2:\r
4641 and z80bc,z80bc,#0xFF<<16\r
4642 and r1,z80de,#0xFF<<24\r
4643 orr z80bc,z80bc,r1\r
4644 fetch 4\r
4645;@LD B,E\r
4646opcode_4_3:\r
4647 and z80bc,z80bc,#0xFF<<16\r
4648 and r1,z80de,#0xFF<<16\r
4649 orr z80bc,z80bc,r1, lsl #8\r
4650 fetch 4\r
4651;@LD B,H\r
4652opcode_4_4:\r
4653 and z80bc,z80bc,#0xFF<<16\r
4654 and r1,z80hl,#0xFF<<24\r
4655 orr z80bc,z80bc,r1\r
4656 fetch 4\r
4657;@LD B,L\r
4658opcode_4_5:\r
4659 and z80bc,z80bc,#0xFF<<16\r
4660 and r1,z80hl,#0xFF<<16\r
4661 orr z80bc,z80bc,r1, lsl #8\r
4662 fetch 4\r
4663;@LD B,(HL)\r
4664opcode_4_6:\r
4665 readmem8HL\r
4666 and z80bc,z80bc,#0xFF<<16\r
4667 orr z80bc,z80bc,r0, lsl #24\r
4668 fetch 7\r
4669;@LD B,A\r
4670opcode_4_7:\r
4671 and z80bc,z80bc,#0xFF<<16\r
4672 orr z80bc,z80bc,z80a\r
4673 fetch 4\r
4674;@LD C,B\r
4675opcode_4_8:\r
4676 and z80bc,z80bc,#0xFF<<24\r
4677 orr z80bc,z80bc,z80bc, lsr #8\r
4678 fetch 4\r
4679;@LD C,D\r
4680opcode_4_A:\r
4681 and z80bc,z80bc,#0xFF<<24\r
4682 and r1,z80de,#0xFF<<24\r
4683 orr z80bc,z80bc,r1, lsr #8\r
4684 fetch 4\r
4685;@LD C,E\r
4686opcode_4_B:\r
4687 and z80bc,z80bc,#0xFF<<24\r
4688 and r1,z80de,#0xFF<<16\r
4689 orr z80bc,z80bc,r1 \r
4690 fetch 4\r
4691;@LD C,H\r
4692opcode_4_C:\r
4693 and z80bc,z80bc,#0xFF<<24\r
4694 and r1,z80hl,#0xFF<<24\r
4695 orr z80bc,z80bc,r1, lsr #8\r
4696 fetch 4\r
4697;@LD C,L\r
4698opcode_4_D:\r
4699 and z80bc,z80bc,#0xFF<<24\r
4700 and r1,z80hl,#0xFF<<16\r
4701 orr z80bc,z80bc,r1 \r
4702 fetch 4\r
4703;@LD C,(HL)\r
4704opcode_4_E:\r
4705 readmem8HL\r
4706 and z80bc,z80bc,#0xFF<<24\r
4707 orr z80bc,z80bc,r0, lsl #16\r
4708 fetch 7\r
4709;@LD C,A\r
4710opcode_4_F:\r
4711 and z80bc,z80bc,#0xFF<<24\r
4712 orr z80bc,z80bc,z80a, lsr #8\r
4713 fetch 4\r
4714;@LD D,B\r
4715opcode_5_0:\r
4716 and z80de,z80de,#0xFF<<16\r
4717 and r1,z80bc,#0xFF<<24\r
4718 orr z80de,z80de,r1\r
4719 fetch 4\r
4720;@LD D,C\r
4721opcode_5_1:\r
4722 and z80de,z80de,#0xFF<<16\r
4723 orr z80de,z80de,z80bc, lsl #8\r
4724 fetch 4\r
4725;@LD D,E\r
4726opcode_5_3:\r
4727 and z80de,z80de,#0xFF<<16\r
4728 orr z80de,z80de,z80de, lsl #8\r
4729 fetch 4\r
4730;@LD D,H\r
4731opcode_5_4:\r
4732 and z80de,z80de,#0xFF<<16\r
4733 and r1,z80hl,#0xFF<<24\r
4734 orr z80de,z80de,r1\r
4735 fetch 4\r
4736;@LD D,L\r
4737opcode_5_5:\r
4738 and z80de,z80de,#0xFF<<16\r
4739 orr z80de,z80de,z80hl, lsl #8\r
4740 fetch 4\r
4741;@LD D,(HL)\r
4742opcode_5_6:\r
4743 readmem8HL\r
4744 and z80de,z80de,#0xFF<<16\r
4745 orr z80de,z80de,r0, lsl #24\r
4746 fetch 7\r
4747;@LD D,A\r
4748opcode_5_7:\r
4749 and z80de,z80de,#0xFF<<16\r
4750 orr z80de,z80de,z80a\r
4751 fetch 4\r
4752;@LD E,B\r
4753opcode_5_8:\r
4754 and z80de,z80de,#0xFF<<24\r
4755 and r1,z80bc,#0xFF<<24\r
4756 orr z80de,z80de,r1, lsr #8\r
4757 fetch 4\r
4758;@LD E,C\r
4759opcode_5_9:\r
4760 and z80de,z80de,#0xFF<<24\r
4761 and r1,z80bc,#0xFF<<16\r
4762 orr z80de,z80de,r1 \r
4763 fetch 4\r
4764;@LD E,D\r
4765opcode_5_A:\r
4766 and z80de,z80de,#0xFF<<24\r
4767 orr z80de,z80de,z80de, lsr #8\r
4768 fetch 4\r
4769;@LD E,H\r
4770opcode_5_C:\r
4771 and z80de,z80de,#0xFF<<24\r
4772 and r1,z80hl,#0xFF<<24\r
4773 orr z80de,z80de,r1, lsr #8\r
4774 fetch 4\r
4775;@LD E,L\r
4776opcode_5_D:\r
4777 and z80de,z80de,#0xFF<<24\r
4778 and r1,z80hl,#0xFF<<16\r
4779 orr z80de,z80de,r1 \r
4780 fetch 4\r
4781;@LD E,(HL)\r
4782opcode_5_E:\r
4783 readmem8HL\r
4784 and z80de,z80de,#0xFF<<24\r
4785 orr z80de,z80de,r0, lsl #16\r
4786 fetch 7\r
4787;@LD E,A\r
4788opcode_5_F:\r
4789 and z80de,z80de,#0xFF<<24\r
4790 orr z80de,z80de,z80a, lsr #8\r
4791 fetch 4\r
4792\r
4793;@LD H,B\r
4794opcode_6_0:\r
4795 and z80hl,z80hl,#0xFF<<16\r
4796 and r1,z80bc,#0xFF<<24\r
4797 orr z80hl,z80hl,r1\r
4798 fetch 4\r
4799;@LD H,C\r
4800opcode_6_1:\r
4801 and z80hl,z80hl,#0xFF<<16\r
4802 orr z80hl,z80hl,z80bc, lsl #8\r
4803 fetch 4\r
4804;@LD H,D\r
4805opcode_6_2:\r
4806 and z80hl,z80hl,#0xFF<<16\r
4807 and r1,z80de,#0xFF<<24\r
4808 orr z80hl,z80hl,r1\r
4809 fetch 4\r
4810;@LD H,E\r
4811opcode_6_3:\r
4812 and z80hl,z80hl,#0xFF<<16\r
4813 orr z80hl,z80hl,z80de, lsl #8\r
4814 fetch 4\r
4815;@LD H,L\r
4816opcode_6_5:\r
4817 and z80hl,z80hl,#0xFF<<16\r
4818 orr z80hl,z80hl,z80hl, lsl #8\r
4819 fetch 4\r
4820;@LD H,(HL)\r
4821opcode_6_6:\r
4822 readmem8HL\r
4823 and z80hl,z80hl,#0xFF<<16\r
4824 orr z80hl,z80hl,r0, lsl #24\r
4825 fetch 7\r
4826;@LD H,A\r
4827opcode_6_7:\r
4828 and z80hl,z80hl,#0xFF<<16\r
4829 orr z80hl,z80hl,z80a\r
4830 fetch 4\r
4831\r
4832;@LD L,B\r
4833opcode_6_8:\r
4834 and z80hl,z80hl,#0xFF<<24\r
4835 and r1,z80bc,#0xFF<<24\r
4836 orr z80hl,z80hl,r1, lsr #8\r
4837 fetch 4\r
4838;@LD L,C\r
4839opcode_6_9:\r
4840 and z80hl,z80hl,#0xFF<<24\r
4841 and r1,z80bc,#0xFF<<16\r
4842 orr z80hl,z80hl,r1\r
4843 fetch 4\r
4844;@LD L,D\r
4845opcode_6_A:\r
4846 and z80hl,z80hl,#0xFF<<24\r
4847 and r1,z80de,#0xFF<<24\r
4848 orr z80hl,z80hl,r1, lsr #8\r
4849 fetch 4\r
4850;@LD L,E\r
4851opcode_6_B:\r
4852 and z80hl,z80hl,#0xFF<<24\r
4853 and r1,z80de,#0xFF<<16\r
4854 orr z80hl,z80hl,r1\r
4855 fetch 4\r
4856;@LD L,H\r
4857opcode_6_C:\r
4858 and z80hl,z80hl,#0xFF<<24\r
4859 orr z80hl,z80hl,z80hl, lsr #8\r
4860 fetch 4\r
4861;@LD L,(HL)\r
4862opcode_6_E:\r
4863 readmem8HL\r
4864 and z80hl,z80hl,#0xFF<<24\r
4865 orr z80hl,z80hl,r0, lsl #16\r
4866 fetch 7\r
4867;@LD L,A\r
4868opcode_6_F:\r
4869 and z80hl,z80hl,#0xFF<<24\r
4870 orr z80hl,z80hl,z80a, lsr #8\r
4871 fetch 4\r
4872\r
4873;@LD (HL),B\r
4874opcode_7_0:\r
4875 mov r0,z80bc, lsr #24\r
4876 writemem8HL\r
4877 fetch 7\r
4878;@LD (HL),C\r
4879opcode_7_1:\r
4880 mov r0,z80bc, lsr #16\r
4881 and r0,r0,#0xFF\r
4882 writemem8HL\r
4883 fetch 7\r
4884;@LD (HL),D\r
4885opcode_7_2:\r
4886 mov r0,z80de, lsr #24\r
4887 writemem8HL\r
4888 fetch 7\r
4889;@LD (HL),E\r
4890opcode_7_3:\r
4891 mov r0,z80de, lsr #16\r
4892 and r0,r0,#0xFF\r
4893 writemem8HL\r
4894 fetch 7\r
4895;@LD (HL),H\r
4896opcode_7_4:\r
4897 mov r0,z80hl, lsr #24\r
4898 writemem8HL\r
4899 fetch 7\r
4900;@LD (HL),L\r
4901opcode_7_5:\r
4902 mov r1,z80hl, lsr #16\r
4903 and r0,r1,#0xFF\r
4904 writemem8\r
4905 fetch 7\r
4906;@HALT\r
4907opcode_7_6:\r
4908 sub z80pc,z80pc,#1\r
4909 ldrb r0,[cpucontext,#z80if]\r
4910 orr r0,r0,#Z80_HALT\r
4911 strb r0,[cpucontext,#z80if]\r
28d596af 4912 mov z80_icount,#0\r
cc68a136 4913 b z80_execute_end\r
4914;@LD (HL),A\r
4915opcode_7_7:\r
4916 mov r0,z80a, lsr #24\r
4917 writemem8HL\r
4918 fetch 7\r
4919\r
4920;@LD A,B\r
4921opcode_7_8:\r
4922 and z80a,z80bc,#0xFF<<24\r
4923 fetch 4\r
4924;@LD A,C\r
4925opcode_7_9:\r
4926 mov z80a,z80bc, lsl #8\r
4927 fetch 4\r
4928;@LD A,D\r
4929opcode_7_A:\r
4930 and z80a,z80de,#0xFF<<24\r
4931 fetch 4\r
4932;@LD A,E\r
4933opcode_7_B:\r
4934 mov z80a,z80de, lsl #8\r
4935 fetch 4\r
4936;@LD A,H\r
4937opcode_7_C:\r
4938 and z80a,z80hl,#0xFF<<24\r
4939 fetch 4\r
4940;@LD A,L\r
4941opcode_7_D:\r
4942 mov z80a,z80hl, lsl #8\r
4943 fetch 4\r
4944;@LD A,(HL)\r
4945opcode_7_E:\r
4946 readmem8HL\r
4947 mov z80a,r0, lsl #24\r
4948 fetch 7\r
4949\r
4950;@ADD A,B\r
4951opcode_8_0:\r
4952 opADDH z80bc\r
4953;@ADD A,C\r
4954opcode_8_1:\r
4955 opADDL z80bc\r
4956;@ADD A,D\r
4957opcode_8_2:\r
4958 opADDH z80de\r
4959;@ADD A,E\r
4960opcode_8_3:\r
4961 opADDL z80de\r
4962;@ADD A,H\r
4963opcode_8_4:\r
4964 opADDH z80hl\r
4965;@ADD A,L\r
4966opcode_8_5:\r
4967 opADDL z80hl\r
4968;@ADD A,(HL)\r
4969opcode_8_6:\r
4970 readmem8HL\r
4971 opADDb\r
4972 fetch 7\r
4973;@ADD A,A\r
4974opcode_8_7:\r
4975 opADDA\r
4976\r
4977;@ADC A,B\r
4978opcode_8_8:\r
4979 opADCH z80bc\r
4980;@ADC A,C\r
4981opcode_8_9:\r
4982 opADCL z80bc\r
4983;@ADC A,D\r
4984opcode_8_A:\r
4985 opADCH z80de\r
4986;@ADC A,E\r
4987opcode_8_B:\r
4988 opADCL z80de\r
4989;@ADC A,H\r
4990opcode_8_C:\r
4991 opADCH z80hl\r
4992;@ADC A,L\r
4993opcode_8_D:\r
4994 opADCL z80hl\r
4995;@ADC A,(HL)\r
4996opcode_8_E:\r
4997 readmem8HL\r
4998 opADCb\r
4999 fetch 7\r
5000;@ADC A,A\r
5001opcode_8_F:\r
5002 opADCA\r
5003\r
5004;@SUB B\r
5005opcode_9_0:\r
5006 opSUBH z80bc\r
5007;@SUB C\r
5008opcode_9_1:\r
5009 opSUBL z80bc\r
5010;@SUB D\r
5011opcode_9_2:\r
5012 opSUBH z80de\r
5013;@SUB E\r
5014opcode_9_3:\r
5015 opSUBL z80de\r
5016;@SUB H\r
5017opcode_9_4:\r
5018 opSUBH z80hl\r
5019;@SUB L\r
5020opcode_9_5:\r
5021 opSUBL z80hl\r
5022;@SUB (HL)\r
5023opcode_9_6:\r
5024 readmem8HL\r
5025 opSUBb\r
5026 fetch 7\r
5027;@SUB A\r
5028opcode_9_7:\r
5029 opSUBA\r
5030\r
5031;@SBC B \r
5032opcode_9_8:\r
5033 opSBCH z80bc\r
5034;@SBC C\r
5035opcode_9_9:\r
5036 opSBCL z80bc\r
5037;@SBC D\r
5038opcode_9_A:\r
5039 opSBCH z80de\r
5040;@SBC E\r
5041opcode_9_B:\r
5042 opSBCL z80de\r
5043;@SBC H\r
5044opcode_9_C:\r
5045 opSBCH z80hl\r
5046;@SBC L\r
5047opcode_9_D:\r
5048 opSBCL z80hl\r
5049;@SBC (HL)\r
5050opcode_9_E:\r
5051 readmem8HL\r
5052 opSBCb\r
5053 fetch 7\r
5054;@SBC A\r
5055opcode_9_F:\r
5056 opSBCA\r
5057\r
5058;@AND B\r
5059opcode_A_0:\r
5060 opANDH z80bc\r
5061;@AND C\r
5062opcode_A_1:\r
5063 opANDL z80bc\r
5064;@AND D\r
5065opcode_A_2:\r
5066 opANDH z80de\r
5067;@AND E\r
5068opcode_A_3:\r
5069 opANDL z80de\r
5070;@AND H\r
5071opcode_A_4:\r
5072 opANDH z80hl\r
5073;@AND L\r
5074opcode_A_5:\r
5075 opANDL z80hl\r
5076;@AND (HL)\r
5077opcode_A_6:\r
5078 readmem8HL\r
5079 opANDb\r
5080 fetch 7\r
5081;@AND A\r
5082opcode_A_7:\r
5083 opANDA\r
5084\r
5085;@XOR B\r
5086opcode_A_8:\r
5087 opXORH z80bc\r
5088;@XOR C\r
5089opcode_A_9:\r
5090 opXORL z80bc\r
5091;@XOR D\r
5092opcode_A_A:\r
5093 opXORH z80de\r
5094;@XOR E\r
5095opcode_A_B:\r
5096 opXORL z80de\r
5097;@XOR H\r
5098opcode_A_C:\r
5099 opXORH z80hl\r
5100;@XOR L\r
5101opcode_A_D:\r
5102 opXORL z80hl\r
5103;@XOR (HL)\r
5104opcode_A_E:\r
5105 readmem8HL\r
5106 opXORb\r
5107 fetch 7\r
5108;@XOR A\r
5109opcode_A_F:\r
5110 opXORA\r
5111\r
5112;@OR B\r
5113opcode_B_0:\r
5114 opORH z80bc\r
5115;@OR C\r
5116opcode_B_1:\r
5117 opORL z80bc\r
5118;@OR D\r
5119opcode_B_2:\r
5120 opORH z80de\r
5121;@OR E\r
5122opcode_B_3:\r
5123 opORL z80de\r
5124;@OR H\r
5125opcode_B_4:\r
5126 opORH z80hl\r
5127;@OR L\r
5128opcode_B_5:\r
5129 opORL z80hl\r
5130;@OR (HL)\r
5131opcode_B_6:\r
5132 readmem8HL\r
5133 opORb\r
5134 fetch 7\r
5135;@OR A\r
5136opcode_B_7:\r
5137 opORA\r
5138\r
5139;@CP B\r
5140opcode_B_8:\r
5141 opCPH z80bc\r
5142;@CP C\r
5143opcode_B_9:\r
5144 opCPL z80bc\r
5145;@CP D\r
5146opcode_B_A:\r
5147 opCPH z80de\r
5148;@CP E\r
5149opcode_B_B:\r
5150 opCPL z80de\r
5151;@CP H\r
5152opcode_B_C:\r
5153 opCPH z80hl\r
5154;@CP L\r
5155opcode_B_D:\r
5156 opCPL z80hl\r
5157;@CP (HL)\r
5158opcode_B_E:\r
5159 readmem8HL\r
5160 opCPb\r
5161 fetch 7\r
5162;@CP A\r
5163opcode_B_F:\r
5164 opCPA\r
5165\r
5166;@RET NZ\r
5167opcode_C_0:\r
5168 tst z80f,#1<<ZFlag\r
28d596af 5169 beq opcode_C_9_cond ;@unconditional RET\r
cc68a136 5170 fetch 5\r
5171\r
5172;@POP BC\r
5173opcode_C_1:\r
5174 opPOPreg z80bc\r
5175\r
5176;@JP NZ,$+3\r
5177opcode_C_2:\r
5178 tst z80f,#1<<ZFlag\r
5179 beq opcode_C_3 ;@unconditional JP\r
5180 add z80pc,z80pc,#2\r
5181 fetch 10\r
5182;@JP $+3\r
5183opcode_C_3:\r
5184 ldrb r0,[z80pc],#1\r
5185 ldrb r1,[z80pc],#1\r
5186 orr r0,r0,r1, lsl #8\r
5187 rebasepc\r
5188 fetch 10\r
5189;@CALL NZ,NN\r
5190opcode_C_4:\r
5191 tst z80f,#1<<ZFlag\r
5192 beq opcode_C_D ;@unconditional CALL\r
5193 add z80pc,z80pc,#2\r
5194 fetch 10\r
5195\r
5196;@PUSH BC\r
5197opcode_C_5:\r
5198 opPUSHreg z80bc\r
5199 fetch 11\r
5200;@ADD A,N\r
5201opcode_C_6:\r
5202 ldrb r0,[z80pc],#1\r
5203 opADDb\r
5204 fetch 7\r
5205;@RST 0\r
5206opcode_C_7:\r
5207 opRST 0x00\r
5208\r
5209;@RET Z\r
5210opcode_C_8:\r
5211 tst z80f,#1<<ZFlag\r
28d596af 5212 bne opcode_C_9_cond ;@unconditional RET\r
cc68a136 5213 fetch 5\r
28d596af 5214\r
5215opcode_C_9_cond:\r
de89bf45 5216 eatcycles 1\r
cc68a136 5217;@RET\r
5218opcode_C_9:\r
5219 opPOP\r
5220 rebasepc\r
5221 fetch 10\r
5222;@JP Z,$+3\r
5223opcode_C_A:\r
5224 tst z80f,#1<<ZFlag\r
5225 bne opcode_C_3 ;@unconditional JP\r
5226 add z80pc,z80pc,#2\r
5227 fetch 10\r
5228\r
5229;@This reads this opcodes_CB lookup table to find the location of\r
5230;@the CB sub for the intruction and then branches to that location\r
5231opcode_C_B:\r
5232 ldrb r0,[z80pc],#1\r
5233 ldr pc,[pc,r0, lsl #2]\r
5234opcodes_CB: .word 0x00000000\r
5235 .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
5236 .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
5237 .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
5238 .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
5239 .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
5240 .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
5241 .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
5242 .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
5243 .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
5244 .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
5245 .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
5246 .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
5247 .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
5248 .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
5249 .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
5250 .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
5251 .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
5252 .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
5253 .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
5254 .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
5255 .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
5256 .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
5257 .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
5258 .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
5259 .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
5260 .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
5261 .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
5262 .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
5263 .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
5264 .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
5265 .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
5266 .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
5267\r
5268;@CALL Z,NN\r
5269opcode_C_C:\r
5270 tst z80f,#1<<ZFlag\r
5271 bne opcode_C_D ;@unconditional CALL\r
5272 add z80pc,z80pc,#2\r
5273 fetch 10\r
5274;@CALL NN\r
5275opcode_C_D:\r
5276 ldrb r0,[z80pc],#1\r
5277 ldrb r1,[z80pc],#1\r
5278 ldr r2,[cpucontext,#z80pc_base]\r
5279 sub r2,z80pc,r2\r
5280 orr z80pc,r0,r1, lsl #8\r
5281 opPUSHareg r2\r
5282 mov r0,z80pc\r
5283 rebasepc\r
5284 fetch 17\r
5285;@ADC A,N\r
5286opcode_C_E:\r
5287 ldrb r0,[z80pc],#1\r
5288 opADCb\r
5289 fetch 7\r
5290;@RST 8H\r
5291opcode_C_F:\r
5292 opRST 0x08\r
5293\r
5294;@RET NC\r
5295opcode_D_0:\r
5296 tst z80f,#1<<CFlag\r
28d596af 5297 beq opcode_C_9_cond ;@unconditional RET\r
cc68a136 5298 fetch 5\r
5299;@POP DE\r
5300opcode_D_1:\r
5301 opPOPreg z80de\r
5302\r
5303;@JP NC, $+3\r
5304opcode_D_2 :\r
5305 tst z80f,#1<<CFlag\r
5306 beq opcode_C_3 ;@unconditional JP\r
5307 add z80pc,z80pc,#2\r
5308 fetch 10\r
5309;@OUT (N),A\r
5310opcode_D_3:\r
5311 ldrb r0,[z80pc],#1\r
5312 orr r0,r0,z80a,lsr#16\r
5313 mov r1,z80a, lsr #24\r
5314 opOUT\r
5315 fetch 11\r
5316;@CALL NC,NN\r
5317opcode_D_4:\r
5318 tst z80f,#1<<CFlag\r
5319 beq opcode_C_D ;@unconditional CALL\r
5320 add z80pc,z80pc,#2\r
5321 fetch 10\r
5322;@PUSH DE\r
5323opcode_D_5:\r
5324 opPUSHreg z80de\r
5325 fetch 11\r
5326;@SUB N\r
5327opcode_D_6:\r
5328 ldrb r0,[z80pc],#1\r
5329 opSUBb\r
5330 fetch 7\r
5331\r
5332;@RST 10H\r
5333opcode_D_7:\r
5334 opRST 0x10\r
5335\r
5336;@RET C\r
5337opcode_D_8:\r
5338 tst z80f,#1<<CFlag\r
28d596af 5339 bne opcode_C_9_cond ;@unconditional RET\r
cc68a136 5340 fetch 5\r
5341;@EXX\r
5342opcode_D_9:\r
15b5b525 5343 ldr r0,[cpucontext,#z80bc2]\r
5344 ldr r1,[cpucontext,#z80de2]\r
5345 ldr r2,[cpucontext,#z80hl2]\r
5346 str z80bc,[cpucontext,#z80bc2]\r
5347 str z80de,[cpucontext,#z80de2]\r
5348 str z80hl,[cpucontext,#z80hl2]\r
5349 mov z80bc,r0\r
5350 mov z80de,r1\r
5351 mov z80hl,r2\r
cc68a136 5352 fetch 4\r
5353;@JP C,$+3\r
5354opcode_D_A:\r
5355 tst z80f,#1<<CFlag\r
5356 bne opcode_C_3 ;@unconditional JP\r
5357 add z80pc,z80pc,#2\r
5358 fetch 10\r
5359;@IN A,(N)\r
5360opcode_D_B:\r
5361 ldrb r0,[z80pc],#1\r
5362 orr r0,r0,z80a,lsr#16\r
5363 opIN\r
5364 mov z80a,r0, lsl #24 ;@ r0 = data read\r
5365 fetch 11\r
5366;@CALL C,NN\r
5367opcode_D_C:\r
5368 tst z80f,#1<<CFlag\r
5369 bne opcode_C_D ;@unconditional CALL\r
5370 add z80pc,z80pc,#2\r
5371 fetch 10\r
5372\r
5373;@opcodes_DD\r
5374opcode_D_D:\r
5375 add z80xx,cpucontext,#z80ix\r
5376 b opcode_D_D_F_D\r
5377opcode_F_D:\r
5378 add z80xx,cpucontext,#z80iy\r
5379opcode_D_D_F_D:\r
5380 ldrb r0,[z80pc],#1\r
5381 ldr pc,[pc,r0, lsl #2]\r
5382opcodes_DD: .word 0x00000000\r
5383 .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
5384 .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
5385 .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
5386 .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
5387 .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
5388 .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
5389 .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
5390 .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
5391 .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
5392 .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
5393 .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
5394 .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
5395 .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
5396 .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
5397 .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
5398 .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
5399 .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
5400 .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
5401 .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
5402 .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
5403 .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
5404 .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
5405 .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
5406 .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
5407 .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
5408 .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
5409 .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
5410 .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
5411 .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
5412 .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
5413 .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
5414 .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
5415\r
5416;@SBC A,N\r
5417opcode_D_E:\r
5418 ldrb r0,[z80pc],#1\r
5419 opSBCb\r
5420 fetch 7\r
5421;@RST 18H\r
5422opcode_D_F:\r
5423 opRST 0x18\r
5424\r
5425;@RET PO\r
5426opcode_E_0:\r
5427 tst z80f,#1<<VFlag\r
28d596af 5428 beq opcode_C_9_cond ;@unconditional RET\r
cc68a136 5429 fetch 5\r
5430;@POP HL\r
5431opcode_E_1:\r
5432 opPOPreg z80hl\r
5433\r
5434;@JP PO,$+3\r
5435opcode_E_2:\r
5436 tst z80f,#1<<VFlag\r
5437 beq opcode_C_3 ;@unconditional JP\r
5438 add z80pc,z80pc,#2\r
5439 fetch 10\r
5440;@EX (SP),HL\r
5441opcode_E_3:\r
5442.if FAST_Z80SP\r
5443 ldrb r0,[z80sp]\r
5444 ldrb r1,[z80sp,#1]\r
5445 orr r0,r0,r1, lsl #8\r
5446 mov r1,z80hl, lsr #24\r
5447 strb r1,[z80sp,#1]\r
5448 mov r1,z80hl, lsr #16\r
5449 strb r1,[z80sp]\r
5450 mov z80hl,r0, lsl #16\r
5451.else\r
5452 mov r0,z80sp\r
5453 readmem16\r
5454 mov r1,r0\r
5455 mov r0,z80hl,lsr#16\r
5456 mov z80hl,r1,lsl#16\r
5457 mov r1,z80sp\r
5458 writemem16\r
5459.endif\r
5460 fetch 19\r
5461;@CALL PO,NN\r
5462opcode_E_4:\r
5463 tst z80f,#1<<VFlag\r
5464 beq opcode_C_D ;@unconditional CALL\r
5465 add z80pc,z80pc,#2\r
5466 fetch 10\r
5467;@PUSH HL\r
5468opcode_E_5:\r
5469 opPUSHreg z80hl\r
5470 fetch 11\r
5471;@AND N\r
5472opcode_E_6:\r
5473 ldrb r0,[z80pc],#1\r
5474 opANDb\r
5475 fetch 7\r
5476;@RST 20H\r
5477opcode_E_7:\r
5478 opRST 0x20\r
5479\r
5480;@RET PE\r
5481opcode_E_8:\r
5482 tst z80f,#1<<VFlag\r
28d596af 5483 bne opcode_C_9_cond ;@unconditional RET\r
cc68a136 5484 fetch 5\r
5485;@JP (HL)\r
5486opcode_E_9:\r
5487 mov r0,z80hl, lsr #16\r
5488 rebasepc\r
5489 fetch 4\r
5490;@JP PE,$+3\r
5491opcode_E_A:\r
5492 tst z80f,#1<<VFlag\r
5493 bne opcode_C_3 ;@unconditional JP\r
5494 add z80pc,z80pc,#2\r
5495 fetch 10\r
5496;@EX DE,HL\r
5497opcode_E_B:\r
5498 mov r1,z80de\r
5499 mov z80de,z80hl\r
5500 mov z80hl,r1\r
5501 fetch 4\r
5502;@CALL PE,NN\r
5503opcode_E_C:\r
5504 tst z80f,#1<<VFlag\r
5505 bne opcode_C_D ;@unconditional CALL\r
5506 add z80pc,z80pc,#2\r
5507 fetch 10\r
5508\r
5509;@This should be caught at start\r
5510opcode_E_D:\r
5511 ldrb r1,[z80pc],#1\r
5512 ldr pc,[pc,r1, lsl #2]\r
5513opcodes_ED: .word 0x00000000\r
5514 .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
5515 .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
5516 .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
5517 .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
5518 .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
5519 .word opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF\r
5520 .word opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF\r
5521 .word opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF\r
5522 .word opcode_ED_40,opcode_ED_41,opcode_ED_42,opcode_ED_43,opcode_ED_44,opcode_ED_45,opcode_ED_46,opcode_ED_47\r
5523 .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
5524 .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
5525 .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
5526 .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
5527 .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
5528 .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
5529 .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
5530 .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
5531 .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
5532 .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
5533 .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
5534 .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
5535 .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
5536 .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
5537 .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
5538 .word opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF\r
5539 .word opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF\r
5540 .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
5541 .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
5542 .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
5543 .word opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF\r
5544 .word opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF\r
5545 .word opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF\r
5546\r
5547;@XOR N\r
5548opcode_E_E:\r
5549 ldrb r0,[z80pc],#1\r
5550 opXORb\r
5551 fetch 7\r
5552;@RST 28H\r
5553opcode_E_F:\r
5554 opRST 0x28\r
5555\r
5556;@RET P\r
5557opcode_F_0:\r
5558 tst z80f,#1<<SFlag\r
28d596af 5559 beq opcode_C_9_cond ;@unconditional RET\r
cc68a136 5560 fetch 5\r
5561;@POP AF\r
5562opcode_F_1:\r
5563.if FAST_Z80SP\r
5564 ldrb z80f,[z80sp],#1\r
5565 sub r0,opcodes,#0x200\r
5566 ldrb z80f,[r0,z80f]\r
5567 ldrb z80a,[z80sp],#1\r
5568 mov z80a,z80a, lsl #24\r
5569.else\r
5570 mov r0,z80sp\r
5571 readmem16\r
5572 add z80sp,z80sp,#2\r
5573 and z80a,r0,#0xFF00\r
5574 mov z80a,z80a,lsl#16\r
5575 and z80f,r0,#0xFF\r
5576 sub r0,opcodes,#0x200\r
5577 ldrb z80f,[r0,z80f]\r
5578.endif\r
5579 fetch 10\r
5580;@JP P,$+3\r
5581opcode_F_2:\r
5582 tst z80f,#1<<SFlag\r
5583 beq opcode_C_3 ;@unconditional JP\r
5584 add z80pc,z80pc,#2\r
5585 fetch 10\r
5586;@DI\r
5587opcode_F_3:\r
5588 ldrb r1,[cpucontext,#z80if]\r
5589 bic r1,r1,#(Z80_IF1)|(Z80_IF2)\r
5590 strb r1,[cpucontext,#z80if]\r
5591 fetch 4\r
5592;@CALL P,NN\r
5593opcode_F_4:\r
5594 tst z80f,#1<<SFlag\r
5595 beq opcode_C_D ;@unconditional CALL\r
5596 add z80pc,z80pc,#2\r
5597 fetch 10\r
5598;@PUSH AF\r
5599opcode_F_5:\r
5600 sub r0,opcodes,#0x300\r
5601 ldrb r0,[r0,z80f]\r
5602 orr r2,r0,z80a,lsr#16\r
5603 opPUSHareg r2\r
5604 fetch 11\r
5605;@OR N\r
5606opcode_F_6:\r
5607 ldrb r0,[z80pc],#1\r
5608 opORb\r
5609 fetch 7\r
5610;@RST 30H\r
5611opcode_F_7:\r
5612 opRST 0x30\r
5613\r
5614;@RET M\r
5615opcode_F_8:\r
5616 tst z80f,#1<<SFlag\r
28d596af 5617 bne opcode_C_9_cond ;@unconditional RET\r
cc68a136 5618 fetch 5\r
5619;@LD SP,HL\r
5620opcode_F_9:\r
5621.if FAST_Z80SP\r
5622 mov r0,z80hl, lsr #16\r
5623 rebasesp\r
cc68a136 5624.else\r
5625 mov z80sp,z80hl, lsr #16\r
5626.endif\r
28d596af 5627 fetch 6\r
cc68a136 5628;@JP M,$+3\r
5629opcode_F_A:\r
5630 tst z80f,#1<<SFlag\r
5631 bne opcode_C_3 ;@unconditional JP\r
5632 add z80pc,z80pc,#2\r
5633 fetch 10\r
5634MAIN_opcodes_POINTER: .word MAIN_opcodes\r
5635EI_DUMMY_opcodes_POINTER: .word EI_DUMMY_opcodes\r
5636;@EI\r
5637opcode_F_B:\r
5638 ldrb r1,[cpucontext,#z80if]\r
de89bf45 5639 mov r2,opcodes\r
cc68a136 5640 orr r1,r1,#(Z80_IF1)|(Z80_IF2)\r
5641 strb r1,[cpucontext,#z80if]\r
5642\r
de89bf45 5643 ldrb r0,[z80pc],#1\r
5644 eatcycles 4\r
cc68a136 5645 ldr opcodes,EI_DUMMY_opcodes_POINTER\r
5646 ldr pc,[r2,r0, lsl #2]\r
5647\r
5648ei_return:\r
5649 ;@point that program returns from EI to check interupts\r
5650 ;@an interupt can not be taken directly after a EI opcode\r
5651 ;@ reset z80pc and opcode pointer\r
de89bf45 5652 ldrh r0,[cpucontext,#z80irq] @ 0x4C, irq and IFF bits\r
cc68a136 5653 sub z80pc,z80pc,#1\r
5654 ldr opcodes,MAIN_opcodes_POINTER\r
5655 ;@ check ints\r
de89bf45 5656 tst r0,#0xff\r
5657 movne r0,r0,lsr #8\r
835122bc 5658 tstne r0,#Z80_IF1\r
de89bf45 5659 blne DoInterrupt\r
5660\r
cc68a136 5661 ;@ continue\r
de89bf45 5662 fetch 0\r
cc68a136 5663\r
5664;@CALL M,NN\r
5665opcode_F_C:\r
5666 tst z80f,#1<<SFlag\r
5667 bne opcode_C_D ;@unconditional CALL\r
5668 add z80pc,z80pc,#2\r
5669 fetch 10\r
5670\r
5671;@SHOULD BE CAUGHT AT START - FD SECTION\r
5672\r
5673;@CP N\r
5674opcode_F_E:\r
5675 ldrb r0,[z80pc],#1\r
5676 opCPb\r
5677 fetch 7\r
5678;@RST 38H\r
5679opcode_F_F:\r
5680 opRST 0x38\r
5681\r
5682\r
5683;@##################################\r
5684;@##################################\r
5685;@### opcodes CB #########################\r
5686;@##################################\r
5687;@##################################\r
5688\r
5689\r
5690;@RLC B\r
5691opcode_CB_00:\r
5692 opRLCH z80bc\r
5693;@RLC C\r
5694opcode_CB_01:\r
5695 opRLCL z80bc\r
5696;@RLC D\r
5697opcode_CB_02:\r
5698 opRLCH z80de\r
5699;@RLC E\r
5700opcode_CB_03:\r
5701 opRLCL z80de\r
5702;@RLC H\r
5703opcode_CB_04:\r
5704 opRLCH z80hl\r
5705;@RLC L\r
5706opcode_CB_05:\r
5707 opRLCL z80hl\r
5708;@RLC (HL)\r
5709opcode_CB_06:\r
5710 readmem8HL\r
5711 opRLCb\r
5712 writemem8HL\r
5713 fetch 15\r
5714;@RLC A\r
5715opcode_CB_07:\r
5716 opRLCA\r
5717\r
5718;@RRC B\r
5719opcode_CB_08:\r
5720 opRRCH z80bc\r
5721;@RRC C\r
5722opcode_CB_09:\r
5723 opRRCL z80bc\r
5724;@RRC D\r
5725opcode_CB_0A:\r
5726 opRRCH z80de\r
5727;@RRC E\r
5728opcode_CB_0B:\r
5729 opRRCL z80de\r
5730;@RRC H\r
5731opcode_CB_0C:\r
5732 opRRCH z80hl\r
5733;@RRC L\r
5734opcode_CB_0D:\r
5735 opRRCL z80hl\r
5736;@RRC (HL)\r
5737opcode_CB_0E :\r
5738 readmem8HL\r
5739 opRRCb\r
5740 writemem8HL\r
5741 fetch 15\r
5742;@RRC A\r
5743opcode_CB_0F:\r
5744 opRRCA\r
5745\r
5746;@RL B\r
5747opcode_CB_10:\r
5748 opRLH z80bc\r
5749;@RL C\r
5750opcode_CB_11:\r
5751 opRLL z80bc\r
5752;@RL D\r
5753opcode_CB_12:\r
5754 opRLH z80de\r
5755;@RL E\r
5756opcode_CB_13:\r
5757 opRLL z80de\r
5758;@RL H\r
5759opcode_CB_14:\r
5760 opRLH z80hl\r
5761;@RL L\r
5762opcode_CB_15:\r
5763 opRLL z80hl\r
5764;@RL (HL)\r
5765opcode_CB_16:\r
5766 readmem8HL\r
5767 opRLb\r
5768 writemem8HL\r
5769 fetch 15\r
5770;@RL A\r
5771opcode_CB_17:\r
5772 opRLA\r
5773\r
5774;@RR B \r
5775opcode_CB_18:\r
5776 opRRH z80bc\r
5777;@RR C\r
5778opcode_CB_19:\r
5779 opRRL z80bc\r
5780;@RR D\r
5781opcode_CB_1A:\r
5782 opRRH z80de\r
5783;@RR E\r
5784opcode_CB_1B:\r
5785 opRRL z80de\r
5786;@RR H\r
5787opcode_CB_1C:\r
5788 opRRH z80hl\r
5789;@RR L\r
5790opcode_CB_1D:\r
5791 opRRL z80hl\r
5792;@RR (HL)\r
5793opcode_CB_1E:\r
5794 readmem8HL\r
5795 opRRb\r
5796 writemem8HL\r
5797 fetch 15\r
5798;@RR A\r
5799opcode_CB_1F:\r
5800 opRRA\r
5801\r
5802;@SLA B\r
5803opcode_CB_20:\r
5804 opSLAH z80bc\r
5805;@SLA C\r
5806opcode_CB_21:\r
5807 opSLAL z80bc\r
5808;@SLA D\r
5809opcode_CB_22:\r
5810 opSLAH z80de\r
5811;@SLA E\r
5812opcode_CB_23:\r
5813 opSLAL z80de\r
5814;@SLA H\r
5815opcode_CB_24:\r
5816 opSLAH z80hl\r
5817;@SLA L\r
5818opcode_CB_25:\r
5819 opSLAL z80hl\r
5820;@SLA (HL)\r
5821opcode_CB_26:\r
5822 readmem8HL\r
5823 opSLAb\r
5824 writemem8HL\r
5825 fetch 15\r
5826;@SLA A\r
5827opcode_CB_27:\r
5828 opSLAA\r
5829\r
5830;@SRA B\r
5831opcode_CB_28:\r
5832 opSRAH z80bc\r
5833;@SRA C\r
5834opcode_CB_29:\r
5835 opSRAL z80bc\r
5836;@SRA D\r
5837opcode_CB_2A:\r
5838 opSRAH z80de\r
5839;@SRA E\r
5840opcode_CB_2B:\r
5841 opSRAL z80de\r
5842;@SRA H\r
5843opcode_CB_2C:\r
5844 opSRAH z80hl\r
5845;@SRA L\r
5846opcode_CB_2D:\r
5847 opSRAL z80hl\r
5848;@SRA (HL)\r
5849opcode_CB_2E:\r
5850 readmem8HL\r
5851 opSRAb\r
5852 writemem8HL\r
5853 fetch 15\r
5854;@SRA A\r
5855opcode_CB_2F:\r
5856 opSRAA\r
5857\r
5858;@SLL B\r
5859opcode_CB_30:\r
5860 opSLLH z80bc\r
5861;@SLL C\r
5862opcode_CB_31:\r
5863 opSLLL z80bc\r
5864;@SLL D\r
5865opcode_CB_32:\r
5866 opSLLH z80de\r
5867;@SLL E\r
5868opcode_CB_33:\r
5869 opSLLL z80de\r
5870;@SLL H\r
5871opcode_CB_34:\r
5872 opSLLH z80hl\r
5873;@SLL L\r
5874opcode_CB_35:\r
5875 opSLLL z80hl\r
5876;@SLL (HL)\r
5877opcode_CB_36:\r
5878 readmem8HL\r
5879 opSLLb\r
5880 writemem8HL\r
5881 fetch 15\r
5882;@SLL A\r
5883opcode_CB_37:\r
5884 opSLLA\r
5885\r
5886;@SRL B\r
5887opcode_CB_38:\r
5888 opSRLH z80bc\r
5889;@SRL C\r
5890opcode_CB_39:\r
5891 opSRLL z80bc\r
5892;@SRL D\r
5893opcode_CB_3A:\r
5894 opSRLH z80de\r
5895;@SRL E\r
5896opcode_CB_3B:\r
5897 opSRLL z80de\r
5898;@SRL H\r
5899opcode_CB_3C:\r
5900 opSRLH z80hl\r
5901;@SRL L\r
5902opcode_CB_3D:\r
5903 opSRLL z80hl\r
5904;@SRL (HL)\r
5905opcode_CB_3E:\r
5906 readmem8HL\r
5907 opSRLb\r
5908 writemem8HL\r
5909 fetch 15\r
5910;@SRL A\r
5911opcode_CB_3F:\r
5912 opSRLA\r
5913\r
5914\r
5915;@BIT 0,B\r
5916opcode_CB_40:\r
5917 opBITH z80bc 0\r
5918;@BIT 0,C\r
5919opcode_CB_41:\r
5920 opBITL z80bc 0\r
5921;@BIT 0,D\r
5922opcode_CB_42:\r
5923 opBITH z80de 0\r
5924;@BIT 0,E\r
5925opcode_CB_43:\r
5926 opBITL z80de 0\r
5927;@BIT 0,H\r
5928opcode_CB_44:\r
5929 opBITH z80hl 0\r
5930;@BIT 0,L\r
5931opcode_CB_45:\r
5932 opBITL z80hl 0\r
5933;@BIT 0,(HL)\r
5934opcode_CB_46:\r
5935 readmem8HL\r
5936 opBITb 0\r
5937 fetch 12\r
5938;@BIT 0,A\r
5939opcode_CB_47:\r
5940 opBITH z80a 0\r
5941\r
5942;@BIT 1,B\r
5943opcode_CB_48:\r
5944 opBITH z80bc 1\r
5945;@BIT 1,C\r
5946opcode_CB_49:\r
5947 opBITL z80bc 1\r
5948;@BIT 1,D\r
5949opcode_CB_4A:\r
5950 opBITH z80de 1\r
5951;@BIT 1,E\r
5952opcode_CB_4B:\r
5953 opBITL z80de 1\r
5954;@BIT 1,H\r
5955opcode_CB_4C:\r
5956 opBITH z80hl 1\r
5957;@BIT 1,L\r
5958opcode_CB_4D:\r
5959 opBITL z80hl 1\r
5960;@BIT 1,(HL)\r
5961opcode_CB_4E:\r
5962 readmem8HL\r
5963 opBITb 1\r
5964 fetch 12\r
5965;@BIT 1,A\r
5966opcode_CB_4F:\r
5967 opBITH z80a 1\r
5968\r
5969;@BIT 2,B\r
5970opcode_CB_50:\r
5971 opBITH z80bc 2\r
5972;@BIT 2,C\r
5973opcode_CB_51:\r
5974 opBITL z80bc 2\r
5975;@BIT 2,D\r
5976opcode_CB_52:\r
5977 opBITH z80de 2\r
5978;@BIT 2,E\r
5979opcode_CB_53:\r
5980 opBITL z80de 2\r
5981;@BIT 2,H\r
5982opcode_CB_54:\r
5983 opBITH z80hl 2\r
5984;@BIT 2,L\r
5985opcode_CB_55:\r
5986 opBITL z80hl 2\r
5987;@BIT 2,(HL)\r
5988opcode_CB_56:\r
5989 readmem8HL\r
5990 opBITb 2\r
5991 fetch 12\r
5992;@BIT 2,A\r
5993opcode_CB_57:\r
5994 opBITH z80a 2\r
5995\r
5996;@BIT 3,B\r
5997opcode_CB_58:\r
5998 opBITH z80bc 3\r
5999;@BIT 3,C\r
6000opcode_CB_59:\r
6001 opBITL z80bc 3\r
6002;@BIT 3,D\r
6003opcode_CB_5A:\r
6004 opBITH z80de 3\r
6005;@BIT 3,E\r
6006opcode_CB_5B:\r
6007 opBITL z80de 3\r
6008;@BIT 3,H\r
6009opcode_CB_5C:\r
6010 opBITH z80hl 3\r
6011;@BIT 3,L\r
6012opcode_CB_5D:\r
6013 opBITL z80hl 3\r
6014;@BIT 3,(HL)\r
6015opcode_CB_5E:\r
6016 readmem8HL\r
6017 opBITb 3\r
6018 fetch 12\r
6019;@BIT 3,A\r
6020opcode_CB_5F:\r
6021 opBITH z80a 3\r
6022\r
6023;@BIT 4,B\r
6024opcode_CB_60:\r
6025 opBITH z80bc 4\r
6026;@BIT 4,C\r
6027opcode_CB_61:\r
6028 opBITL z80bc 4\r
6029;@BIT 4,D\r
6030opcode_CB_62:\r
6031 opBITH z80de 4\r
6032;@BIT 4,E\r
6033opcode_CB_63:\r
6034 opBITL z80de 4\r
6035;@BIT 4,H\r
6036opcode_CB_64:\r
6037 opBITH z80hl 4\r
6038;@BIT 4,L\r
6039opcode_CB_65:\r
6040 opBITL z80hl 4\r
6041;@BIT 4,(HL)\r
6042opcode_CB_66:\r
6043 readmem8HL\r
6044 opBITb 4\r
6045 fetch 12\r
6046;@BIT 4,A\r
6047opcode_CB_67:\r
6048 opBITH z80a 4\r
6049\r
6050;@BIT 5,B\r
6051opcode_CB_68:\r
6052 opBITH z80bc 5\r
6053;@BIT 5,C\r
6054opcode_CB_69:\r
6055 opBITL z80bc 5\r
6056;@BIT 5,D\r
6057opcode_CB_6A:\r
6058 opBITH z80de 5\r
6059;@BIT 5,E\r
6060opcode_CB_6B:\r
6061 opBITL z80de 5\r
6062;@BIT 5,H\r
6063opcode_CB_6C:\r
6064 opBITH z80hl 5\r
6065;@BIT 5,L\r
6066opcode_CB_6D:\r
6067 opBITL z80hl 5\r
6068;@BIT 5,(HL)\r
6069opcode_CB_6E:\r
6070 readmem8HL\r
6071 opBITb 5\r
6072 fetch 12\r
6073;@BIT 5,A\r
6074opcode_CB_6F:\r
6075 opBITH z80a 5\r
6076\r
6077;@BIT 6,B\r
6078opcode_CB_70:\r
6079 opBITH z80bc 6\r
6080;@BIT 6,C\r
6081opcode_CB_71:\r
6082 opBITL z80bc 6\r
6083;@BIT 6,D\r
6084opcode_CB_72:\r
6085 opBITH z80de 6\r
6086;@BIT 6,E\r
6087opcode_CB_73:\r
6088 opBITL z80de 6\r
6089;@BIT 6,H\r
6090opcode_CB_74:\r
6091 opBITH z80hl 6\r
6092;@BIT 6,L\r
6093opcode_CB_75:\r
6094 opBITL z80hl 6\r
6095;@BIT 6,(HL)\r
6096opcode_CB_76:\r
6097 readmem8HL\r
6098 opBITb 6\r
6099 fetch 12\r
6100;@BIT 6,A\r
6101opcode_CB_77:\r
6102 opBITH z80a 6\r
6103\r
6104;@BIT 7,B\r
6105opcode_CB_78:\r
6106 opBIT7H z80bc\r
6107;@BIT 7,C\r
6108opcode_CB_79:\r
6109 opBIT7L z80bc\r
6110;@BIT 7,D\r
6111opcode_CB_7A:\r
6112 opBIT7H z80de\r
6113;@BIT 7,E\r
6114opcode_CB_7B:\r
6115 opBIT7L z80de\r
6116;@BIT 7,H\r
6117opcode_CB_7C:\r
6118 opBIT7H z80hl\r
6119;@BIT 7,L\r
6120opcode_CB_7D:\r
6121 opBIT7L z80hl\r
6122;@BIT 7,(HL)\r
6123opcode_CB_7E:\r
6124 readmem8HL\r
6125 opBIT7b\r
6126 fetch 12\r
6127;@BIT 7,A\r
6128opcode_CB_7F:\r
6129 opBIT7H z80a\r
6130\r
6131;@RES 0,B\r
6132opcode_CB_80:\r
6133 bic z80bc,z80bc,#1<<24\r
6134 fetch 8\r
6135;@RES 0,C\r
6136opcode_CB_81:\r
6137 bic z80bc,z80bc,#1<<16\r
6138 fetch 8\r
6139;@RES 0,D\r
6140opcode_CB_82:\r
6141 bic z80de,z80de,#1<<24\r
6142 fetch 8\r
6143;@RES 0,E\r
6144opcode_CB_83:\r
6145 bic z80de,z80de,#1<<16\r
6146 fetch 8\r
6147;@RES 0,H\r
6148opcode_CB_84:\r
6149 bic z80hl,z80hl,#1<<24\r
6150 fetch 8\r
6151;@RES 0,L\r
6152opcode_CB_85:\r
6153 bic z80hl,z80hl,#1<<16\r
6154 fetch 8\r
6155;@RES 0,(HL)\r
6156opcode_CB_86:\r
6157 opRESmemHL 0\r
6158;@RES 0,A\r
6159opcode_CB_87:\r
6160 bic z80a,z80a,#1<<24\r
6161 fetch 8\r
6162\r
6163;@RES 1,B\r
6164opcode_CB_88:\r
6165 bic z80bc,z80bc,#1<<25\r
6166 fetch 8\r
6167;@RES 1,C\r
6168opcode_CB_89:\r
6169 bic z80bc,z80bc,#1<<17\r
6170 fetch 8\r
6171;@RES 1,D\r
6172opcode_CB_8A:\r
6173 bic z80de,z80de,#1<<25\r
6174 fetch 8\r
6175;@RES 1,E\r
6176opcode_CB_8B:\r
6177 bic z80de,z80de,#1<<17\r
6178 fetch 8\r
6179;@RES 1,H\r
6180opcode_CB_8C:\r
6181 bic z80hl,z80hl,#1<<25\r
6182 fetch 8\r
6183;@RES 1,L\r
6184opcode_CB_8D:\r
6185 bic z80hl,z80hl,#1<<17\r
6186 fetch 8\r
6187;@RES 1,(HL)\r
6188opcode_CB_8E:\r
6189 opRESmemHL 1\r
6190;@RES 1,A\r
6191opcode_CB_8F:\r
6192 bic z80a,z80a,#1<<25\r
6193 fetch 8\r
6194\r
6195;@RES 2,B\r
6196opcode_CB_90:\r
6197 bic z80bc,z80bc,#1<<26\r
6198 fetch 8\r
6199;@RES 2,C\r
6200opcode_CB_91:\r
6201 bic z80bc,z80bc,#1<<18\r
6202 fetch 8\r
6203;@RES 2,D\r
6204opcode_CB_92:\r
6205 bic z80de,z80de,#1<<26\r
6206 fetch 8\r
6207;@RES 2,E\r
6208opcode_CB_93:\r
6209 bic z80de,z80de,#1<<18\r
6210 fetch 8\r
6211;@RES 2,H\r
6212opcode_CB_94:\r
6213 bic z80hl,z80hl,#1<<26\r
6214 fetch 8\r
6215;@RES 2,L\r
6216opcode_CB_95:\r
6217 bic z80hl,z80hl,#1<<18\r
6218 fetch 8\r
6219;@RES 2,(HL)\r
6220opcode_CB_96:\r
6221 opRESmemHL 2\r
6222;@RES 2,A\r
6223opcode_CB_97:\r
6224 bic z80a,z80a,#1<<26\r
6225 fetch 8\r
6226\r
6227;@RES 3,B\r
6228opcode_CB_98:\r
6229 bic z80bc,z80bc,#1<<27\r
6230 fetch 8\r
6231;@RES 3,C\r
6232opcode_CB_99:\r
6233 bic z80bc,z80bc,#1<<19\r
6234 fetch 8\r
6235;@RES 3,D\r
6236opcode_CB_9A:\r
6237 bic z80de,z80de,#1<<27\r
6238 fetch 8\r
6239;@RES 3,E\r
6240opcode_CB_9B:\r
6241 bic z80de,z80de,#1<<19\r
6242 fetch 8\r
6243;@RES 3,H\r
6244opcode_CB_9C:\r
6245 bic z80hl,z80hl,#1<<27\r
6246 fetch 8\r
6247;@RES 3,L\r
6248opcode_CB_9D:\r
6249 bic z80hl,z80hl,#1<<19\r
6250 fetch 8\r
6251;@RES 3,(HL)\r
6252opcode_CB_9E:\r
6253 opRESmemHL 3\r
6254;@RES 3,A\r
6255opcode_CB_9F:\r
6256 bic z80a,z80a,#1<<27\r
6257 fetch 8\r
6258\r
6259;@RES 4,B\r
6260opcode_CB_A0:\r
6261 bic z80bc,z80bc,#1<<28\r
6262 fetch 8\r
6263;@RES 4,C\r
6264opcode_CB_A1:\r
6265 bic z80bc,z80bc,#1<<20\r
6266 fetch 8\r
6267;@RES 4,D\r
6268opcode_CB_A2:\r
6269 bic z80de,z80de,#1<<28\r
6270 fetch 8\r
6271;@RES 4,E\r
6272opcode_CB_A3:\r
6273 bic z80de,z80de,#1<<20\r
6274 fetch 8\r
6275;@RES 4,H\r
6276opcode_CB_A4:\r
6277 bic z80hl,z80hl,#1<<28\r
6278 fetch 8\r
6279;@RES 4,L\r
6280opcode_CB_A5:\r
6281 bic z80hl,z80hl,#1<<20\r
6282 fetch 8\r
6283;@RES 4,(HL)\r
6284opcode_CB_A6:\r
6285 opRESmemHL 4\r
6286;@RES 4,A\r
6287opcode_CB_A7:\r
6288 bic z80a,z80a,#1<<28\r
6289 fetch 8\r
6290\r
6291;@RES 5,B\r
6292opcode_CB_A8:\r
6293 bic z80bc,z80bc,#1<<29\r
6294 fetch 8\r
6295;@RES 5,C\r
6296opcode_CB_A9:\r
6297 bic z80bc,z80bc,#1<<21\r
6298 fetch 8\r
6299;@RES 5,D\r
6300opcode_CB_AA:\r
6301 bic z80de,z80de,#1<<29\r
6302 fetch 8\r
6303;@RES 5,E\r
6304opcode_CB_AB:\r
6305 bic z80de,z80de,#1<<21\r
6306 fetch 8\r
6307;@RES 5,H\r
6308opcode_CB_AC:\r
6309 bic z80hl,z80hl,#1<<29\r
6310 fetch 8\r
6311;@RES 5,L\r
6312opcode_CB_AD:\r
6313 bic z80hl,z80hl,#1<<21\r
6314 fetch 8\r
6315;@RES 5,(HL)\r
6316opcode_CB_AE:\r
6317 opRESmemHL 5\r
6318;@RES 5,A\r
6319opcode_CB_AF:\r
6320 bic z80a,z80a,#1<<29\r
6321 fetch 8\r
6322\r
6323;@RES 6,B\r
6324opcode_CB_B0:\r
6325 bic z80bc,z80bc,#1<<30\r
6326 fetch 8\r
6327;@RES 6,C\r
6328opcode_CB_B1:\r
6329 bic z80bc,z80bc,#1<<22\r
6330 fetch 8\r
6331;@RES 6,D\r
6332opcode_CB_B2:\r
6333 bic z80de,z80de,#1<<30\r
6334 fetch 8\r
6335;@RES 6,E\r
6336opcode_CB_B3:\r
6337 bic z80de,z80de,#1<<22\r
6338 fetch 8\r
6339;@RES 6,H\r
6340opcode_CB_B4:\r
6341 bic z80hl,z80hl,#1<<30\r
6342 fetch 8\r
6343;@RES 6,L\r
6344opcode_CB_B5:\r
6345 bic z80hl,z80hl,#1<<22\r
6346 fetch 8\r
6347;@RES 6,(HL)\r
6348opcode_CB_B6:\r
6349 opRESmemHL 6\r
6350;@RES 6,A\r
6351opcode_CB_B7:\r
6352 bic z80a,z80a,#1<<30\r
6353 fetch 8\r
6354\r
6355;@RES 7,B\r
6356opcode_CB_B8:\r
6357 bic z80bc,z80bc,#1<<31\r
6358 fetch 8\r
6359;@RES 7,C\r
6360opcode_CB_B9:\r
6361 bic z80bc,z80bc,#1<<23\r
6362 fetch 8\r
6363;@RES 7,D\r
6364opcode_CB_BA:\r
6365 bic z80de,z80de,#1<<31\r
6366 fetch 8\r
6367;@RES 7,E\r
6368opcode_CB_BB:\r
6369 bic z80de,z80de,#1<<23\r
6370 fetch 8\r
6371;@RES 7,H\r
6372opcode_CB_BC:\r
6373 bic z80hl,z80hl,#1<<31\r
6374 fetch 8\r
6375;@RES 7,L\r
6376opcode_CB_BD:\r
6377 bic z80hl,z80hl,#1<<23\r
6378 fetch 8\r
6379;@RES 7,(HL)\r
6380opcode_CB_BE:\r
6381 opRESmemHL 7\r
6382;@RES 7,A\r
6383opcode_CB_BF:\r
6384 bic z80a,z80a,#1<<31\r
6385 fetch 8\r
6386\r
6387;@SET 0,B\r
6388opcode_CB_C0:\r
6389 orr z80bc,z80bc,#1<<24\r
6390 fetch 8\r
6391;@SET 0,C\r
6392opcode_CB_C1:\r
6393 orr z80bc,z80bc,#1<<16\r
6394 fetch 8\r
6395;@SET 0,D\r
6396opcode_CB_C2:\r
6397 orr z80de,z80de,#1<<24\r
6398 fetch 8\r
6399;@SET 0,E\r
6400opcode_CB_C3:\r
6401 orr z80de,z80de,#1<<16\r
6402 fetch 8\r
6403;@SET 0,H\r
6404opcode_CB_C4:\r
6405 orr z80hl,z80hl,#1<<24\r
6406 fetch 8\r
6407;@SET 0,L\r
6408opcode_CB_C5:\r
6409 orr z80hl,z80hl,#1<<16\r
6410 fetch 8\r
6411;@SET 0,(HL)\r
6412opcode_CB_C6:\r
6413 opSETmemHL 0\r
6414;@SET 0,A\r
6415opcode_CB_C7:\r
6416 orr z80a,z80a,#1<<24\r
6417 fetch 8\r
6418\r
6419;@SET 1,B\r
6420opcode_CB_C8:\r
6421 orr z80bc,z80bc,#1<<25\r
6422 fetch 8\r
6423;@SET 1,C\r
6424opcode_CB_C9:\r
6425 orr z80bc,z80bc,#1<<17\r
6426 fetch 8\r
6427;@SET 1,D\r
6428opcode_CB_CA:\r
6429 orr z80de,z80de,#1<<25\r
6430 fetch 8\r
6431;@SET 1,E\r
6432opcode_CB_CB:\r
6433 orr z80de,z80de,#1<<17\r
6434 fetch 8\r
6435;@SET 1,H\r
6436opcode_CB_CC:\r
6437 orr z80hl,z80hl,#1<<25\r
6438 fetch 8\r
6439;@SET 1,L\r
6440opcode_CB_CD:\r
6441 orr z80hl,z80hl,#1<<17\r
6442 fetch 8\r
6443;@SET 1,(HL)\r
6444opcode_CB_CE:\r
6445 opSETmemHL 1\r
6446;@SET 1,A\r
6447opcode_CB_CF:\r
6448 orr z80a,z80a,#1<<25\r
6449 fetch 8\r
6450\r
6451;@SET 2,B\r
6452opcode_CB_D0:\r
6453 orr z80bc,z80bc,#1<<26\r
6454 fetch 8\r
6455;@SET 2,C\r
6456opcode_CB_D1:\r
6457 orr z80bc,z80bc,#1<<18\r
6458 fetch 8\r
6459;@SET 2,D\r
6460opcode_CB_D2:\r
6461 orr z80de,z80de,#1<<26\r
6462 fetch 8\r
6463;@SET 2,E\r
6464opcode_CB_D3:\r
6465 orr z80de,z80de,#1<<18\r
6466 fetch 8\r
6467;@SET 2,H\r
6468opcode_CB_D4:\r
6469 orr z80hl,z80hl,#1<<26\r
6470 fetch 8\r
6471;@SET 2,L\r
6472opcode_CB_D5:\r
6473 orr z80hl,z80hl,#1<<18\r
6474 fetch 8\r
6475;@SET 2,(HL)\r
6476opcode_CB_D6:\r
6477 opSETmemHL 2\r
6478;@SET 2,A\r
6479opcode_CB_D7:\r
6480 orr z80a,z80a,#1<<26\r
6481 fetch 8\r
6482\r
6483;@SET 3,B\r
6484opcode_CB_D8:\r
6485 orr z80bc,z80bc,#1<<27\r
6486 fetch 8\r
6487;@SET 3,C\r
6488opcode_CB_D9:\r
6489 orr z80bc,z80bc,#1<<19\r
6490 fetch 8\r
6491;@SET 3,D\r
6492opcode_CB_DA:\r
6493 orr z80de,z80de,#1<<27\r
6494 fetch 8\r
6495;@SET 3,E\r
6496opcode_CB_DB:\r
6497 orr z80de,z80de,#1<<19\r
6498 fetch 8\r
6499;@SET 3,H\r
6500opcode_CB_DC:\r
6501 orr z80hl,z80hl,#1<<27\r
6502 fetch 8\r
6503;@SET 3,L\r
6504opcode_CB_DD:\r
6505 orr z80hl,z80hl,#1<<19\r
6506 fetch 8\r
6507;@SET 3,(HL)\r
6508opcode_CB_DE:\r
6509 opSETmemHL 3\r
6510;@SET 3,A\r
6511opcode_CB_DF:\r
6512 orr z80a,z80a,#1<<27\r
6513 fetch 8\r
6514\r
6515;@SET 4,B\r
6516opcode_CB_E0:\r
6517 orr z80bc,z80bc,#1<<28\r
6518 fetch 8\r
6519;@SET 4,C\r
6520opcode_CB_E1:\r
6521 orr z80bc,z80bc,#1<<20\r
6522 fetch 8\r
6523;@SET 4,D\r
6524opcode_CB_E2:\r
6525 orr z80de,z80de,#1<<28\r
6526 fetch 8\r
6527;@SET 4,E\r
6528opcode_CB_E3:\r
6529 orr z80de,z80de,#1<<20\r
6530 fetch 8\r
6531;@SET 4,H\r
6532opcode_CB_E4:\r
6533 orr z80hl,z80hl,#1<<28\r
6534 fetch 8\r
6535;@SET 4,L\r
6536opcode_CB_E5:\r
6537 orr z80hl,z80hl,#1<<20\r
6538 fetch 8\r
6539;@SET 4,(HL)\r
6540opcode_CB_E6:\r
6541 opSETmemHL 4\r
6542;@SET 4,A\r
6543opcode_CB_E7:\r
6544 orr z80a,z80a,#1<<28\r
6545 fetch 8\r
6546\r
6547;@SET 5,B\r
6548opcode_CB_E8:\r
6549 orr z80bc,z80bc,#1<<29\r
6550 fetch 8\r
6551;@SET 5,C\r
6552opcode_CB_E9:\r
6553 orr z80bc,z80bc,#1<<21\r
6554 fetch 8\r
6555;@SET 5,D\r
6556opcode_CB_EA:\r
6557 orr z80de,z80de,#1<<29\r
6558 fetch 8\r
6559;@SET 5,E\r
6560opcode_CB_EB:\r
6561 orr z80de,z80de,#1<<21\r
6562 fetch 8\r
6563;@SET 5,H\r
6564opcode_CB_EC:\r
6565 orr z80hl,z80hl,#1<<29\r
6566 fetch 8\r
6567;@SET 5,L\r
6568opcode_CB_ED:\r
6569 orr z80hl,z80hl,#1<<21\r
6570 fetch 8\r
6571;@SET 5,(HL)\r
6572opcode_CB_EE:\r
6573 opSETmemHL 5\r
6574;@SET 5,A\r
6575opcode_CB_EF:\r
6576 orr z80a,z80a,#1<<29\r
6577 fetch 8\r
6578\r
6579;@SET 6,B\r
6580opcode_CB_F0:\r
6581 orr z80bc,z80bc,#1<<30\r
6582 fetch 8\r
6583;@SET 6,C\r
6584opcode_CB_F1:\r
6585 orr z80bc,z80bc,#1<<22\r
6586 fetch 8\r
6587;@SET 6,D\r
6588opcode_CB_F2:\r
6589 orr z80de,z80de,#1<<30\r
6590 fetch 8\r
6591;@SET 6,E\r
6592opcode_CB_F3:\r
6593 orr z80de,z80de,#1<<22\r
6594 fetch 8\r
6595;@SET 6,H\r
6596opcode_CB_F4:\r
6597 orr z80hl,z80hl,#1<<30\r
6598 fetch 8\r
6599;@SET 6,L\r
6600opcode_CB_F5:\r
6601 orr z80hl,z80hl,#1<<22\r
6602 fetch 8\r
6603;@SET 6,(HL)\r
6604opcode_CB_F6:\r
6605 opSETmemHL 6\r
6606;@SET 6,A\r
6607opcode_CB_F7:\r
6608 orr z80a,z80a,#1<<30\r
6609 fetch 8\r
6610\r
6611;@SET 7,B\r
6612opcode_CB_F8:\r
6613 orr z80bc,z80bc,#1<<31\r
6614 fetch 8\r
6615;@SET 7,C\r
6616opcode_CB_F9:\r
6617 orr z80bc,z80bc,#1<<23\r
6618 fetch 8\r
6619;@SET 7,D\r
6620opcode_CB_FA:\r
6621 orr z80de,z80de,#1<<31\r
6622 fetch 8\r
6623;@SET 7,E\r
6624opcode_CB_FB:\r
6625 orr z80de,z80de,#1<<23\r
6626 fetch 8\r
6627;@SET 7,H\r
6628opcode_CB_FC:\r
6629 orr z80hl,z80hl,#1<<31\r
6630 fetch 8\r
6631;@SET 7,L\r
6632opcode_CB_FD:\r
6633 orr z80hl,z80hl,#1<<23\r
6634 fetch 8\r
6635;@SET 7,(HL)\r
6636opcode_CB_FE:\r
6637 opSETmemHL 7\r
6638;@SET 7,A\r
6639opcode_CB_FF:\r
6640 orr z80a,z80a,#1<<31\r
6641 fetch 8\r
6642\r
6643\r
6644\r
6645;@##################################\r
6646;@##################################\r
6647;@### opcodes DD #########################\r
6648;@##################################\r
6649;@##################################\r
6650;@Because the DD opcodes are not a complete range from 00-FF I have\r
6651;@created this sub routine that will catch any undocumented ops\r
6652;@halt the emulator and mov the current instruction to r0\r
6653;@at a later stage I may change to display a text message on the screen\r
6654opcode_DD_NF:\r
6655 eatcycles 4\r
6656 ldr pc,[opcodes,r0, lsl #2]\r
6657;@ mov r2,#0x10*4\r
6658;@ cmp r2,z80xx\r
6659;@ bne opcode_FD_NF\r
6660;@ mov r0,#0xDD00\r
6661;@ orr r0,r0,r1\r
6662;@ b end_loop\r
6663;@opcode_FD_NF:\r
6664;@ mov r0,#0xFD00\r
6665;@ orr r0,r0,r1\r
6666;@ b end_loop\r
f0243975 6667\r
cc68a136 6668opcode_DD_NF2:\r
28d596af 6669 fetch 23\r
f0243975 6670;@ notaz: we don't want to deadlock here\r
6671;@ mov r0,#0xDD0000\r
6672;@ orr r0,r0,#0xCB00\r
6673;@ orr r0,r0,r1\r
6674;@ b end_loop\r
cc68a136 6675\r
6676;@ADD IX,BC\r
6677opcode_DD_09:\r
6678 ldr r0,[z80xx]\r
6679 opADD16 r0 z80bc\r
6680 str r0,[z80xx]\r
6681 fetch 15\r
6682;@ADD IX,DE\r
6683opcode_DD_19:\r
6684 ldr r0,[z80xx]\r
6685 opADD16 r0 z80de\r
6686 str r0,[z80xx]\r
6687 fetch 15\r
6688;@LD IX,NN\r
6689opcode_DD_21:\r
6690 ldrb r0,[z80pc],#1\r
6691 ldrb r1,[z80pc],#1\r
6692 orr r0,r0,r1, lsl #8\r
6693 strh r0,[z80xx,#2]\r
6694 fetch 14\r
6695;@LD (NN),IX\r
6696opcode_DD_22:\r
6697 ldrb r0,[z80pc],#1\r
6698 ldrb r1,[z80pc],#1\r
6699 orr r1,r0,r1, lsl #8\r
6700 ldrh r0,[z80xx,#2]\r
6701 writemem16\r
6702 fetch 20\r
6703;@INC IX\r
6704opcode_DD_23:\r
6705 ldr r0,[z80xx]\r
6706 add r0,r0,#1<<16\r
6707 str r0,[z80xx]\r
6708 fetch 10\r
6709;@INC I (IX)\r
6710opcode_DD_24:\r
6711 ldr r0,[z80xx]\r
6712 opINC8H r0\r
6713 str r0,[z80xx]\r
6714 fetch 8\r
6715;@DEC I (IX)\r
6716opcode_DD_25:\r
6717 ldr r0,[z80xx]\r
6718 opDEC8H r0\r
6719 str r0,[z80xx]\r
6720 fetch 8\r
6721;@LD I,N (IX)\r
6722opcode_DD_26:\r
6723 ldrb r0,[z80pc],#1\r
6724 strb r0,[z80xx,#3]\r
6725 fetch 11\r
6726;@ADD IX,IX\r
6727opcode_DD_29:\r
6728 ldr r0,[z80xx]\r
6729 opADD16_2 r0\r
6730 str r0,[z80xx]\r
6731 fetch 15\r
6732;@LD IX,(NN)\r
6733opcode_DD_2A:\r
6734 ldrb r0,[z80pc],#1\r
6735 ldrb r1,[z80pc],#1\r
6736 orr r0,r0,r1, lsl #8\r
6737 stmfd sp!,{z80xx}\r
6738 readmem16\r
6739 ldmfd sp!,{z80xx}\r
6740 strh r0,[z80xx,#2]\r
6741 fetch 20\r
6742;@DEC IX\r
6743opcode_DD_2B:\r
6744 ldr r0,[z80xx]\r
6745 sub r0,r0,#1<<16\r
6746 str r0,[z80xx]\r
6747 fetch 10\r
6748;@INC X (IX)\r
6749opcode_DD_2C:\r
6750 ldr r0,[z80xx]\r
6751 opINC8L r0\r
6752 str r0,[z80xx]\r
6753 fetch 8\r
6754;@DEC X (IX)\r
6755opcode_DD_2D:\r
6756 ldr r0,[z80xx]\r
6757 opDEC8L r0\r
6758 str r0,[z80xx]\r
6759 fetch 8\r
6760;@LD X,N (IX)\r
6761opcode_DD_2E:\r
6762 ldrb r0,[z80pc],#1\r
6763 strb r0,[z80xx,#2]\r
6764 fetch 11\r
6765;@INC (IX+N)\r
6766opcode_DD_34:\r
6767 ldrsb r0,[z80pc],#1\r
6768 ldr r1,[z80xx]\r
5d572e52 6769 add r0,r1,r0, lsl #16\r
6770 mov r0,r0,lsr #16\r
cc68a136 6771 stmfd sp!,{r0} ;@ save addr\r
6772 readmem8\r
6773 opINC8b\r
6774 ldmfd sp!,{r1} ;@ restore addr into r1\r
6775 writemem8\r
6776 fetch 23\r
6777;@DEC (IX+N)\r
6778opcode_DD_35:\r
6779 ldrsb r0,[z80pc],#1\r
6780 ldr r1,[z80xx]\r
5d572e52 6781 add r0,r1,r0, lsl #16\r
6782 mov r0,r0,lsr #16\r
cc68a136 6783 stmfd sp!,{r0} ;@ save addr\r
6784 readmem8\r
6785 opDEC8b\r
6786 ldmfd sp!,{r1} ;@ restore addr into r1\r
6787 writemem8\r
6788 fetch 23\r
6789;@LD (IX+N),N\r
6790opcode_DD_36:\r
6791 ldrsb r2,[z80pc],#1\r
6792 ldrb r0,[z80pc],#1\r
6793 ldr r1,[z80xx]\r
5d572e52 6794 add r1,r1,r2, lsl #16\r
6795 mov r1,r1,lsr #16\r
cc68a136 6796 writemem8\r
6797 fetch 19\r
6798;@ADD IX,SP\r
6799opcode_DD_39:\r
6800 ldr r0,[z80xx]\r
6801.if FAST_Z80SP\r
6802 ldr r2,[cpucontext,#z80sp_base]\r
6803 sub r2,z80sp,r2\r
6804 opADD16s r0 r2 16\r
6805.else\r
6806 opADD16s r0 z80sp 16\r
6807.endif\r
6808 str r0,[z80xx]\r
6809 fetch 15\r
6810;@LD B,I ( IX )\r
6811opcode_DD_44:\r
6812 ldrb r0,[z80xx,#3]\r
6813 and z80bc,z80bc,#0xFF<<16\r
6814 orr z80bc,z80bc,r0, lsl #24\r
6815 fetch 8\r
6816;@LD B,X ( IX )\r
6817opcode_DD_45:\r
6818 ldrb r0,[z80xx,#2]\r
6819 and z80bc,z80bc,#0xFF<<16\r
6820 orr z80bc,z80bc,r0, lsl #24\r
6821 fetch 8\r
6822;@LD B,(IX,N)\r
6823opcode_DD_46:\r
6824 ldrsb r0,[z80pc],#1\r
6825 ldr r1,[z80xx]\r
5d572e52 6826 add r0,r1,r0, lsl #16\r
6827 mov r0,r0,lsr #16\r
cc68a136 6828 readmem8\r
6829 and z80bc,z80bc,#0xFF<<16\r
6830 orr z80bc,z80bc,r0, lsl #24\r
6831 fetch 19\r
6832;@LD C,I (IX)\r
6833opcode_DD_4C:\r
6834 ldrb r0,[z80xx,#3]\r
6835 and z80bc,z80bc,#0xFF<<24\r
6836 orr z80bc,z80bc,r0, lsl #16\r
6837 fetch 8\r
6838;@LD C,X (IX)\r
6839opcode_DD_4D:\r
6840 ldrb r0,[z80xx,#2]\r
6841 and z80bc,z80bc,#0xFF<<24\r
6842 orr z80bc,z80bc,r0, lsl #16\r
6843 fetch 8\r
6844;@LD C,(IX,N)\r
6845opcode_DD_4E:\r
6846 ldrsb r0,[z80pc],#1\r
6847 ldr r1,[z80xx]\r
5d572e52 6848 add r0,r1,r0, lsl #16\r
6849 mov r0,r0,lsr #16\r
cc68a136 6850 readmem8\r
6851 and z80bc,z80bc,#0xFF<<24\r
6852 orr z80bc,z80bc,r0, lsl #16\r
6853 fetch 19\r
6854\r
6855;@LD D,I (IX)\r
6856opcode_DD_54:\r
6857 ldrb r0,[z80xx,#3]\r
6858 and z80de,z80de,#0xFF<<16\r
6859 orr z80de,z80de,r0, lsl #24\r
6860 fetch 8\r
6861;@LD D,X (IX)\r
6862opcode_DD_55:\r
6863 ldrb r0,[z80xx,#2]\r
6864 and z80de,z80de,#0xFF<<16\r
6865 orr z80de,z80de,r0, lsl #24\r
6866 fetch 8\r
6867;@LD D,(IX,N)\r
6868opcode_DD_56:\r
6869 ldrsb r0,[z80pc],#1\r
6870 ldr r1,[z80xx]\r
5d572e52 6871 add r0,r1,r0, lsl #16\r
6872 mov r0,r0,lsr #16\r
cc68a136 6873 readmem8\r
6874 and z80de,z80de,#0xFF<<16\r
6875 orr z80de,z80de,r0, lsl #24\r
6876 fetch 19\r
6877;@LD E,I (IX)\r
6878opcode_DD_5C:\r
6879 ldrb r0,[z80xx,#3]\r
6880 and z80de,z80de,#0xFF<<24\r
6881 orr z80de,z80de,r0, lsl #16\r
6882 fetch 8\r
6883;@LD E,X (IX)\r
6884opcode_DD_5D:\r
6885 ldrb r0,[z80xx,#2]\r
6886 and z80de,z80de,#0xFF<<24\r
6887 orr z80de,z80de,r0, lsl #16\r
6888 fetch 8\r
6889;@LD E,(IX,N)\r
6890opcode_DD_5E:\r
6891 ldrsb r0,[z80pc],#1\r
6892 ldr r1,[z80xx]\r
5d572e52 6893 add r0,r1,r0, lsl #16\r
6894 mov r0,r0,lsr #16\r
cc68a136 6895 readmem8\r
6896 and z80de,z80de,#0xFF<<24\r
6897 orr z80de,z80de,r0, lsl #16\r
6898 fetch 19\r
6899;@LD I,B (IX)\r
6900opcode_DD_60:\r
6901 mov r0,z80bc,lsr#24\r
6902 strb r0,[z80xx,#3]\r
6903 fetch 8\r
6904;@LD I,C (IX)\r
6905opcode_DD_61:\r
6906 mov r0,z80bc,lsr#16\r
6907 strb r0,[z80xx,#3]\r
6908 fetch 8\r
6909;@LD I,D (IX)\r
6910opcode_DD_62:\r
6911 mov r0,z80de,lsr#24\r
6912 strb r0,[z80xx,#3]\r
6913 fetch 8\r
6914;@LD I,E (IX)\r
6915opcode_DD_63:\r
6916 mov r0,z80de,lsr#16\r
6917 strb r0,[z80xx,#3]\r
6918 fetch 8\r
6919;@LD I,I (IX)\r
6920opcode_DD_64:\r
6921 fetch 8\r
6922;@LD I,X (IX)\r
6923opcode_DD_65:\r
6924 ldrb r0,[z80xx,#2]\r
6925 strb r0,[z80xx,#3]\r
6926 fetch 8\r
6927;@LD H,(IX,N)\r
6928opcode_DD_66:\r
6929 ldrsb r0,[z80pc],#1\r
6930 ldr r1,[z80xx]\r
5d572e52 6931 add r0,r1,r0, lsl #16\r
6932 mov r0,r0,lsr #16\r
cc68a136 6933 readmem8\r
6934 and z80hl,z80hl,#0xFF<<16\r
6935 orr z80hl,z80hl,r0, lsl #24\r
6936 fetch 19\r
6937;@LD I,A (IX)\r
6938opcode_DD_67:\r
6939 mov r0,z80a,lsr#24\r
6940 strb r0,[z80xx,#3]\r
6941 fetch 8\r
6942;@LD X,B (IX)\r
6943opcode_DD_68:\r
6944 mov r0,z80bc,lsr#24\r
6945 strb r0,[z80xx,#2]\r
6946 fetch 8\r
6947;@LD X,C (IX)\r
6948opcode_DD_69:\r
6949 mov r0,z80bc,lsr#16\r
6950 strb r0,[z80xx,#2]\r
6951 fetch 8\r
6952;@LD X,D (IX)\r
6953opcode_DD_6A:\r
6954 mov r0,z80de,lsr#24\r
6955 strb r0,[z80xx,#2]\r
6956 fetch 8\r
6957;@LD X,E (IX)\r
6958opcode_DD_6B:\r
6959 mov r0,z80de,lsr#16\r
6960 strb r0,[z80xx,#2]\r
6961 fetch 8\r
6962;@LD X,I (IX)\r
6963opcode_DD_6C:\r
6964 ldrb r0,[z80xx,#3]\r
6965 strb r0,[z80xx,#2]\r
6966 fetch 8\r
6967;@LD X,X (IX)\r
6968opcode_DD_6D:\r
6969 fetch 8\r
6970;@LD L,(IX,N)\r
6971opcode_DD_6E:\r
6972 ldrsb r0,[z80pc],#1\r
6973 ldr r1,[z80xx]\r
5d572e52 6974 add r0,r1,r0, lsl #16\r
6975 mov r0,r0,lsr #16\r
cc68a136 6976 readmem8\r
6977 and z80hl,z80hl,#0xFF<<24\r
6978 orr z80hl,z80hl,r0, lsl #16\r
6979 fetch 19\r
6980;@LD X,A (IX)\r
6981opcode_DD_6F:\r
6982 mov r0,z80a,lsr#24\r
6983 strb r0,[z80xx,#2]\r
6984 fetch 8\r
6985\r
6986;@LD (IX,N),B\r
6987opcode_DD_70:\r
6988 ldrsb r0,[z80pc],#1\r
6989 ldr r1,[z80xx]\r
5d572e52 6990 add r1,r1,r0, lsl #16\r
6991 mov r1,r1,lsr #16\r
cc68a136 6992 mov r0,z80bc, lsr #24\r
6993 writemem8\r
6994 fetch 19\r
6995;@LD (IX,N),C\r
6996opcode_DD_71:\r
6997 ldrsb r0,[z80pc],#1\r
6998 ldr r1,[z80xx]\r
5d572e52 6999 add r1,r1,r0, lsl #16\r
7000 mov r1,r1,lsr #16\r
cc68a136 7001 mov r0,z80bc, lsr #16\r
7002 and r0,r0,#0xFF\r
7003 writemem8\r
7004 fetch 19\r
7005;@LD (IX,N),D\r
7006opcode_DD_72:\r
7007 ldrsb r0,[z80pc],#1\r
7008 ldr r1,[z80xx]\r
5d572e52 7009 add r1,r1,r0, lsl #16\r
7010 mov r1,r1,lsr #16\r
cc68a136 7011 mov r0,z80de, lsr #24\r
7012 writemem8\r
7013 fetch 19\r
7014;@LD (IX,N),E\r
7015opcode_DD_73:\r
7016 ldrsb r0,[z80pc],#1\r
7017 ldr r1,[z80xx]\r
5d572e52 7018 add r1,r1,r0, lsl #16\r
7019 mov r1,r1,lsr #16\r
cc68a136 7020 mov r0,z80de, lsr #16\r
7021 and r0,r0,#0xFF\r
7022 writemem8\r
7023 fetch 19\r
7024;@LD (IX,N),H\r
7025opcode_DD_74:\r
7026 ldrsb r0,[z80pc],#1\r
7027 ldr r1,[z80xx]\r
5d572e52 7028 add r1,r1,r0, lsl #16\r
7029 mov r1,r1,lsr #16\r
cc68a136 7030 mov r0,z80hl, lsr #24\r
7031 writemem8\r
7032 fetch 19\r
7033;@LD (IX,N),L\r
7034opcode_DD_75:\r
7035 ldrsb r0,[z80pc],#1\r
7036 ldr r1,[z80xx]\r
5d572e52 7037 add r1,r1,r0, lsl #16\r
7038 mov r1,r1,lsr #16\r
cc68a136 7039 mov r0,z80hl, lsr #16\r
7040 and r0,r0,#0xFF\r
7041 writemem8\r
7042 fetch 19\r
7043;@LD (IX,N),A\r
7044opcode_DD_77:\r
7045 ldrsb r0,[z80pc],#1\r
7046 ldr r1,[z80xx]\r
5d572e52 7047 add r1,r1,r0, lsl #16\r
7048 mov r1,r1,lsr #16\r
cc68a136 7049 mov r0,z80a, lsr #24\r
7050 writemem8\r
7051 fetch 19\r
7052\r
7053;@LD A,I from (IX)\r
7054opcode_DD_7C:\r
7055 ldrb r0,[z80xx,#3]\r
7056 mov z80a,r0, lsl #24\r
7057 fetch 8\r
7058;@LD A,X from (IX)\r
7059opcode_DD_7D:\r
7060 ldrb r0,[z80xx,#2]\r
7061 mov z80a,r0, lsl #24\r
7062 fetch 8\r
7063;@LD A,(IX,N)\r
7064opcode_DD_7E:\r
7065 ldrsb r0,[z80pc],#1\r
7066 ldr r1,[z80xx]\r
5d572e52 7067 add r0,r1,r0, lsl #16\r
7068 mov r0,r0,lsr #16\r
cc68a136 7069 readmem8\r
7070 mov z80a,r0, lsl #24\r
7071 fetch 19\r
7072\r
7073;@ADD A,I ( IX)\r
7074opcode_DD_84:\r
7075 ldrb r0,[z80xx,#3]\r
7076 opADDb\r
7077 fetch 8\r
7078;@ADD A,X ( IX)\r
7079opcode_DD_85:\r
7080 ldrb r0,[z80xx,#2]\r
7081 opADDb\r
7082 fetch 8\r
7083;@ADD A,(IX+N)\r
7084opcode_DD_86:\r
7085 ldrsb r0,[z80pc],#1\r
7086 ldr r1,[z80xx]\r
5d572e52 7087 add r0,r1,r0, lsl #16\r
7088 mov r0,r0,lsr #16\r
cc68a136 7089 readmem8\r
7090 opADDb\r
7091 fetch 19\r
7092\r
7093;@ADC A,I (IX)\r
7094opcode_DD_8C:\r
7095 ldrb r0,[z80xx,#3]\r
7096 opADCb\r
7097 fetch 8\r
7098;@ADC A,X (IX)\r
7099opcode_DD_8D:\r
7100 ldrb r0,[z80xx,#2]\r
7101 opADCb\r
7102 fetch 8\r
7103;@ADC A,(IX+N)\r
7104opcode_DD_8E:\r
7105 ldrsb r0,[z80pc],#1\r
7106 ldr r1,[z80xx]\r
5d572e52 7107 add r0,r1,r0, lsl #16\r
7108 mov r0,r0,lsr #16\r
cc68a136 7109 readmem8\r
7110 opADCb\r
7111 fetch 19\r
7112\r
7113;@SUB A,I (IX)\r
7114opcode_DD_94:\r
7115 ldrb r0,[z80xx,#3]\r
7116 opSUBb\r
7117 fetch 8\r
7118;@SUB A,X (IX)\r
7119opcode_DD_95:\r
7120 ldrb r0,[z80xx,#2]\r
7121 opSUBb\r
7122 fetch 8\r
7123;@SUB A,(IX+N)\r
7124opcode_DD_96:\r
7125 ldrsb r0,[z80pc],#1\r
7126 ldr r1,[z80xx]\r
5d572e52 7127 add r0,r1,r0, lsl #16\r
7128 mov r0,r0,lsr #16\r
cc68a136 7129 readmem8\r
7130 opSUBb\r
7131 fetch 19\r
7132\r
7133;@SBC A,I (IX)\r
7134opcode_DD_9C:\r
7135 ldrb r0,[z80xx,#3]\r
7136 opSBCb\r
7137 fetch 8\r
7138;@SBC A,X (IX)\r
7139opcode_DD_9D:\r
7140 ldrb r0,[z80xx,#2]\r
7141 opSBCb\r
7142 fetch 8\r
7143;@SBC A,(IX+N)\r
7144opcode_DD_9E:\r
7145 ldrsb r0,[z80pc],#1\r
7146 ldr r1,[z80xx]\r
5d572e52 7147 add r0,r1,r0, lsl #16\r
7148 mov r0,r0,lsr #16\r
cc68a136 7149 readmem8\r
7150 opSBCb\r
7151 fetch 19\r
7152\r
7153;@AND I (IX)\r
7154opcode_DD_A4:\r
7155 ldrb r0,[z80xx,#3]\r
7156 opANDb\r
7157 fetch 8\r
7158;@AND X (IX)\r
7159opcode_DD_A5:\r
7160 ldrb r0,[z80xx,#2]\r
7161 opANDb\r
7162 fetch 8\r
7163;@AND (IX+N)\r
7164opcode_DD_A6:\r
7165 ldrsb r0,[z80pc],#1\r
7166 ldr r1,[z80xx]\r
5d572e52 7167 add r0,r1,r0, lsl #16\r
7168 mov r0,r0,lsr #16\r
cc68a136 7169 readmem8\r
7170 opANDb\r
7171 fetch 19\r
7172\r
7173;@XOR I (IX)\r
7174opcode_DD_AC:\r
7175 ldrb r0,[z80xx,#3]\r
7176 opXORb\r
7177 fetch 8\r
7178;@XOR X (IX)\r
7179opcode_DD_AD:\r
7180 ldrb r0,[z80xx,#2]\r
7181 opXORb\r
7182 fetch 8\r
7183;@XOR (IX+N)\r
7184opcode_DD_AE:\r
7185 ldrsb r0,[z80pc],#1\r
7186 ldr r1,[z80xx]\r
5d572e52 7187 add r0,r1,r0, lsl #16\r
7188 mov r0,r0,lsr #16\r
cc68a136 7189 readmem8\r
7190 opXORb\r
7191 fetch 19\r
7192\r
7193;@OR I (IX)\r
7194opcode_DD_B4:\r
7195 ldrb r0,[z80xx,#3]\r
7196 opORb\r
7197 fetch 8\r
7198;@OR X (IX)\r
7199opcode_DD_B5:\r
7200 ldrb r0,[z80xx,#2]\r
7201 opORb\r
7202 fetch 8\r
7203;@OR (IX+N)\r
7204opcode_DD_B6:\r
7205 ldrsb r0,[z80pc],#1\r
7206 ldr r1,[z80xx]\r
5d572e52 7207 add r0,r1,r0, lsl #16\r
7208 mov r0,r0,lsr #16\r
cc68a136 7209 readmem8\r
7210 opORb\r
7211 fetch 19\r
7212\r
7213;@CP I (IX)\r
7214opcode_DD_BC:\r
7215 ldrb r0,[z80xx,#3]\r
7216 opCPb\r
7217 fetch 8\r
7218;@CP X (IX)\r
7219opcode_DD_BD:\r
7220 ldrb r0,[z80xx,#2]\r
7221 opCPb\r
7222 fetch 8\r
7223;@CP (IX+N)\r
7224opcode_DD_BE:\r
7225 ldrsb r0,[z80pc],#1\r
7226 ldr r1,[z80xx]\r
5d572e52 7227 add r0,r1,r0, lsl #16\r
7228 mov r0,r0,lsr #16\r
cc68a136 7229 readmem8\r
7230 opCPb\r
7231 fetch 19\r
7232\r
7233\r
7234opcodes_DD_CB_LOCAL: .word opcodes_DD_CB\r
7235opcode_DD_CB:\r
7236;@Looks up the opcode on the opcodes_DD_CB table and then \r
7237;@moves the PC to the location of the subroutine\r
7238 ldrsb r0,[z80pc],#1\r
7239 ldr r1,[z80xx]\r
5d572e52 7240 add r0,r1,r0, lsl #16\r
7241 mov r0,r0,lsr #16\r
cc68a136 7242\r
7243 ldrb r1,[z80pc],#1\r
7244 ldr pc,[pc,r1, lsl #2]\r
7245 .word 0x00\r
7246opcodes_DD_CB:\r
7247 .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
7248 .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
7249 .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
7250 .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
7251 .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
7252 .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
7253 .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
7254 .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
7255 .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
7256 .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
7257 .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
7258 .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
7259 .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
7260 .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
7261 .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
7262 .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
7263 .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
7264 .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
7265 .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
7266 .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
7267 .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
7268 .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
7269 .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
7270 .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
7271 .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
7272 .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
7273 .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
7274 .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
7275 .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
7276 .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
7277 .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
7278 .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
7279\r
7280;@RLC (IX+N) \r
7281opcode_DD_CB_06:\r
7282 stmfd sp!,{r0} ;@ save addr\r
7283 readmem8\r
7284 opRLCb\r
7285 ldmfd sp!,{r1} ;@ restore addr into r1\r
7286 writemem8\r
7287 fetch 23\r
7288;@RRC (IX+N) \r
7289opcode_DD_CB_0E:\r
7290 stmfd sp!,{r0} ;@ save addr\r
7291 readmem8\r
7292 opRRCb\r
7293 ldmfd sp!,{r1} ;@ restore addr into r1\r
7294 writemem8\r
7295 fetch 23\r
7296;@RL (IX+N) \r
7297opcode_DD_CB_16:\r
7298 stmfd sp!,{r0} ;@ save addr\r
7299 readmem8\r
7300 opRLb\r
7301 ldmfd sp!,{r1} ;@ restore addr into r1\r
7302 writemem8\r
7303 fetch 23\r
7304;@RR (IX+N) \r
7305opcode_DD_CB_1E:\r
7306 stmfd sp!,{r0} ;@ save addr \r
7307 readmem8\r
7308 opRRb\r
7309 ldmfd sp!,{r1} ;@ restore addr into r1\r
7310 writemem8\r
7311 fetch 23\r
7312\r
7313;@SLA (IX+N) \r
7314opcode_DD_CB_26:\r
7315 stmfd sp!,{r0} ;@ save addr \r
7316 readmem8\r
7317 opSLAb\r
7318 ldmfd sp!,{r1} ;@ restore addr into r1\r
7319 writemem8\r
7320 fetch 23\r
7321;@SRA (IX+N) \r
7322opcode_DD_CB_2E:\r
7323 stmfd sp!,{r0} ;@ save addr \r
7324 readmem8\r
7325 opSRAb\r
7326 ldmfd sp!,{r1} ;@ restore addr into r1\r
7327 writemem8\r
7328 fetch 23\r
7329;@SLL (IX+N) \r
7330opcode_DD_CB_36:\r
7331 stmfd sp!,{r0} ;@ save addr \r
7332 readmem8\r
7333 opSLLb\r
7334 ldmfd sp!,{r1} ;@ restore addr into r1\r
7335 writemem8\r
7336 fetch 23\r
7337;@SRL (IX+N)\r
7338opcode_DD_CB_3E:\r
7339 stmfd sp!,{r0} ;@ save addr \r
7340 readmem8\r
7341 opSRLb\r
7342 ldmfd sp!,{r1} ;@ restore addr into r1\r
7343 writemem8\r
7344 fetch 23\r
7345\r
7346;@BIT 0,(IX+N) \r
7347opcode_DD_CB_46:\r
7348 readmem8\r
7349 opBITb 0\r
7350 fetch 20\r
7351;@BIT 1,(IX+N) \r
7352opcode_DD_CB_4E:\r
7353 readmem8\r
7354 opBITb 1\r
7355 fetch 20\r
7356;@BIT 2,(IX+N) \r
7357opcode_DD_CB_56:\r
7358 readmem8\r
7359 opBITb 2\r
7360 fetch 20\r
7361;@BIT 3,(IX+N) \r
7362opcode_DD_CB_5E:\r
7363 readmem8\r
7364 opBITb 3\r
7365 fetch 20\r
7366;@BIT 4,(IX+N) \r
7367opcode_DD_CB_66:\r
7368 readmem8\r
7369 opBITb 4\r
7370 fetch 20\r
7371;@BIT 5,(IX+N) \r
7372opcode_DD_CB_6E:\r
7373 readmem8\r
7374 opBITb 5\r
7375 fetch 20\r
7376;@BIT 6,(IX+N) \r
7377opcode_DD_CB_76:\r
7378 readmem8\r
7379 opBITb 6\r
7380 fetch 20\r
7381;@BIT 7,(IX+N) \r
7382opcode_DD_CB_7E:\r
7383 readmem8\r
7384 opBIT7b\r
7385 fetch 20\r
7386;@RES 0,(IX+N) \r
7387opcode_DD_CB_86:\r
7388 opRESmem 0\r
7389;@RES 1,(IX+N) \r
7390opcode_DD_CB_8E:\r
7391 opRESmem 1\r
7392;@RES 2,(IX+N) \r
7393opcode_DD_CB_96:\r
7394 opRESmem 2\r
7395;@RES 3,(IX+N) \r
7396opcode_DD_CB_9E:\r
7397 opRESmem 3\r
7398;@RES 4,(IX+N) \r
7399opcode_DD_CB_A6:\r
7400 opRESmem 4\r
7401;@RES 5,(IX+N) \r
7402opcode_DD_CB_AE:\r
7403 opRESmem 5\r
7404;@RES 6,(IX+N) \r
7405opcode_DD_CB_B6:\r
7406 opRESmem 6\r
7407;@RES 7,(IX+N) \r
7408opcode_DD_CB_BE:\r
7409 opRESmem 7\r
7410\r
7411;@SET 0,(IX+N) \r
7412opcode_DD_CB_C6:\r
7413 opSETmem 0\r
7414;@SET 1,(IX+N) \r
7415opcode_DD_CB_CE:\r
7416 opSETmem 1\r
7417;@SET 2,(IX+N) \r
7418opcode_DD_CB_D6:\r
7419 opSETmem 2\r
7420;@SET 3,(IX+N) \r
7421opcode_DD_CB_DE:\r
7422 opSETmem 3\r
7423;@SET 4,(IX+N) \r
7424opcode_DD_CB_E6:\r
7425 opSETmem 4\r
7426;@SET 5,(IX+N) \r
7427opcode_DD_CB_EE:\r
7428 opSETmem 5\r
7429;@SET 6,(IX+N) \r
7430opcode_DD_CB_F6:\r
7431 opSETmem 6\r
7432;@SET 7,(IX+N) \r
7433opcode_DD_CB_FE:\r
7434 opSETmem 7\r
7435\r
7436\r
7437\r
7438;@POP IX\r
7439opcode_DD_E1:\r
7440.if FAST_Z80SP\r
7441 opPOP\r
7442.else\r
7443 mov r0,z80sp\r
7444 stmfd sp!,{z80xx}\r
7445 readmem16\r
7446 ldmfd sp!,{z80xx}\r
7447 add z80sp,z80sp,#2\r
7448.endif\r
7449 strh r0,[z80xx,#2]\r
7450 fetch 14\r
7451;@EX (SP),IX\r
7452opcode_DD_E3:\r
7453.if FAST_Z80SP\r
7454 ldrb r0,[z80sp]\r
7455 ldrb r1,[z80sp,#1]\r
7456 orr r2,r0,r1, lsl #8\r
7457 ldrh r1,[z80xx,#2]\r
7458 mov r0,r1, lsr #8\r
7459 strb r0,[z80sp,#1]\r
7460 strb r1,[z80sp]\r
7461 strh r2,[z80xx,#2]\r
7462.else\r
7463 mov r0,z80sp\r
7464 stmfd sp!,{z80xx}\r
7465 readmem16\r
7466 ldmfd sp!,{z80xx}\r
7467 mov r2,r0\r
7468 ldrh r0,[z80xx,#2]\r
7469 strh r2,[z80xx,#2]\r
7470 mov r1,z80sp\r
7471 writemem16\r
7472.endif\r
7473 fetch 23\r
7474;@PUSH IX\r
7475opcode_DD_E5:\r
7476 ldr r2,[z80xx]\r
7477 opPUSHreg r2\r
7478 fetch 15\r
7479;@JP (IX)\r
7480opcode_DD_E9:\r
7481 ldrh r0,[z80xx,#2]\r
7482 rebasepc\r
7483 fetch 8\r
7484;@LD SP,IX\r
7485opcode_DD_F9:\r
7486.if FAST_Z80SP\r
7487 ldrh r0,[z80xx,#2]\r
7488 rebasesp\r
cc68a136 7489.else\r
7490 ldrh z80sp,[z80xx,#2]\r
7491.endif\r
7492 fetch 10\r
7493\r
7494;@##################################\r
7495;@##################################\r
7496;@### opcodes ED #########################\r
7497;@##################################\r
7498;@##################################\r
7499\r
7500opcode_ED_NF:\r
7501 fetch 8\r
7502;@ ldrb r0,[z80pc],#1\r
7503;@ ldr pc,[opcodes,r0, lsl #2]\r
7504;@ mov r0,#0xED00\r
7505;@ orr r0,r0,r1\r
7506;@ b end_loop\r
7507\r
7508;@IN B,(C)\r
7509opcode_ED_40:\r
7510 opIN_C\r
7511 and z80bc,z80bc,#0xFF<<16\r
7512 orr z80bc,z80bc,r0, lsl #24\r
7513 sub r1,opcodes,#0x100\r
7514 ldrb r0,[r1,r0]\r
7515 and z80f,z80f,#1<<CFlag\r
7516 orr z80f,z80f,r0\r
7517 fetch 12\r
7518;@OUT (C),B\r
7519opcode_ED_41:\r
7520 mov r1,z80bc, lsr #24\r
7521 opOUT_C\r
7522 fetch 12\r
7523\r
7524;@SBC HL,BC\r
7525opcode_ED_42:\r
7526 opSBC16 z80bc\r
7527\r
7528;@LD (NN),BC\r
7529opcode_ED_43:\r
7530 ldrb r0,[z80pc],#1\r
7531 ldrb r1,[z80pc],#1\r
7532 orr r1,r0,r1, lsl #8\r
7533 mov r0,z80bc, lsr #16\r
7534 writemem16\r
7535 fetch 20\r
7536;@NEG\r
7537opcode_ED_44:\r
7538 rsbs z80a,z80a,#0\r
7539 mrs z80f,cpsr\r
7540 mov z80f,z80f,lsr#28 ;@S,Z,V&C\r
7541 eor z80f,z80f,#(1<<CFlag)|(1<<NFlag) ;@invert C and set n.\r
7542 tst z80a,#0x0F000000 ;@H, correct\r
7543 orrne z80f,z80f,#1<<HFlag\r
7544 fetch 8\r
7545 \r
7546;@RETN, moved to ED_4D\r
7547;@opcode_ED_45:\r
7548\r
7549;@IM 0\r
7550opcode_ED_46:\r
7551 strb z80a,[cpucontext,#z80im]\r
7552 fetch 8\r
7553;@LD I,A\r
7554opcode_ED_47:\r
7555 str z80a,[cpucontext,#z80i]\r
7556 fetch 9\r
7557;@IN C,(C)\r
7558opcode_ED_48:\r
7559 opIN_C\r
7560 and z80bc,z80bc,#0xFF<<24\r
7561 orr z80bc,z80bc,r0, lsl #16\r
7562 sub r1,opcodes,#0x100\r
7563 ldrb r0,[r1,r0]\r
7564 and z80f,z80f,#1<<CFlag\r
7565 orr z80f,z80f,r0\r
7566 fetch 12\r
7567;@OUT (C),C\r
7568opcode_ED_49:\r
7569 mov r0,z80bc, lsr #16\r
7570 and r1,r0,#0xFF\r
7571 opOUT\r
7572 fetch 12\r
7573;@ADC HL,BC\r
7574opcode_ED_4A:\r
7575 opADC16 z80bc\r
7576;@LD BC,(NN)\r
7577opcode_ED_4B:\r
7578 ldrb r0,[z80pc],#1\r
7579 ldrb r1,[z80pc],#1\r
7580 orr r0,r0,r1, lsl #8\r
7581 readmem16\r
7582 mov z80bc,r0, lsl #16\r
7583 fetch 20\r
7584\r
7585;@RETN\r
7586opcode_ED_45:\r
7587;@RETI\r
7588opcode_ED_4D:\r
7589 ldrb r0,[cpucontext,#z80if]\r
7590 tst r0,#Z80_IF2\r
7591 orrne r0,r0,#Z80_IF1\r
7592 biceq r0,r0,#Z80_IF1\r
7593 strb r0,[cpucontext,#z80if]\r
7594 opPOP\r
7595 rebasepc\r
7596 fetch 14\r
7597\r
7598;@LD R,A\r
7599opcode_ED_4F:\r
7600 mov r0,z80a,lsr#24\r
7601 strb r0,[cpucontext,#z80r]\r
7602 fetch 9\r
7603\r
7604;@IN D,(C)\r
7605opcode_ED_50:\r
7606 opIN_C\r
7607 and z80de,z80de,#0xFF<<16\r
7608 orr z80de,z80de,r0, lsl #24\r
7609 sub r1,opcodes,#0x100\r
7610 ldrb r0,[r1,r0]\r
7611 and z80f,z80f,#1<<CFlag\r
7612 orr z80f,z80f,r0\r
7613 fetch 12\r
7614;@OUT (C),D\r
7615opcode_ED_51:\r
7616 mov r1,z80de, lsr #24\r
7617 opOUT_C\r
7618 fetch 12\r
7619;@SBC HL,DE\r
7620opcode_ED_52:\r
7621 opSBC16 z80de\r
7622;@LD (NN),DE\r
7623opcode_ED_53:\r
7624 ldrb r0,[z80pc],#1\r
7625 ldrb r1,[z80pc],#1\r
7626 orr r1,r0,r1, lsl #8\r
7627 mov r0,z80de, lsr #16\r
7628 writemem16\r
7629 fetch 20\r
7630;@IM 1\r
7631opcode_ED_56:\r
7632 mov r0,#1\r
7633 strb r0,[cpucontext,#z80im]\r
7634 fetch 8\r
7635;@LD A,I\r
7636opcode_ED_57:\r
7637 ldr z80a,[cpucontext,#z80i]\r
7638 tst z80a,#0xFF000000\r
7639 and z80f,z80f,#(1<<CFlag)\r
7640 orreq z80f,z80f,#(1<<ZFlag)\r
7641 orrmi z80f,z80f,#(1<<SFlag)\r
7642 ldrb r0,[cpucontext,#z80if]\r
7643 tst r0,#Z80_IF2\r
7644 orrne z80f,z80f,#(1<<VFlag)\r
7645 fetch 9\r
7646;@IN E,(C)\r
7647opcode_ED_58:\r
7648 opIN_C\r
7649 and z80de,z80de,#0xFF<<24\r
7650 orr z80de,z80de,r0, lsl #16\r
7651 sub r1,opcodes,#0x100\r
7652 ldrb r0,[r1,r0]\r
7653 and z80f,z80f,#1<<CFlag\r
7654 orr z80f,z80f,r0\r
7655 fetch 12\r
7656;@OUT (C),E\r
7657opcode_ED_59:\r
7658 mov r1,z80de, lsr #16\r
7659 and r1,r1,#0xFF\r
7660 opOUT_C\r
7661 fetch 12\r
7662;@ADC HL,DE\r
7663opcode_ED_5A:\r
7664 opADC16 z80de\r
7665;@LD DE,(NN)\r
7666opcode_ED_5B:\r
7667 ldrb r0,[z80pc],#1\r
7668 ldrb r1,[z80pc],#1\r
7669 orr r0,r0,r1, lsl #8\r
7670 readmem16\r
7671 mov z80de,r0, lsl #16\r
7672 fetch 20\r
7673;@IM 2\r
7674opcode_ED_5E:\r
7675 mov r0,#2\r
7676 strb r0,[cpucontext,#z80im]\r
7677 fetch 8\r
7678;@LD A,R\r
7679opcode_ED_5F:\r
7680 ldrb r0,[cpucontext,#z80r]\r
7681 and r0,r0,#0x80\r
7682 rsb r1,z80_icount,#0\r
7683 and r1,r1,#0x7F\r
7684 orr r0,r0,r1\r
7685 movs z80a,r0, lsl #24\r
7686 and z80f,z80f,#1<<CFlag\r
7687 orrmi z80f,z80f,#(1<<SFlag)\r
7688 orreq z80f,z80f,#(1<<ZFlag)\r
7689 ldrb r0,[cpucontext,#z80if]\r
7690 tst r0,#Z80_IF2\r
7691 orrne z80f,z80f,#(1<<VFlag)\r
7692 fetch 9\r
7693;@IN H,(C)\r
7694opcode_ED_60:\r
7695 opIN_C\r
7696 and z80hl,z80hl,#0xFF<<16\r
7697 orr z80hl,z80hl,r0, lsl #24\r
7698 sub r1,opcodes,#0x100\r
7699 ldrb r0,[r1,r0]\r
7700 and z80f,z80f,#1<<CFlag\r
7701 orr z80f,z80f,r0\r
7702 fetch 12\r
7703;@OUT (C),H\r
7704opcode_ED_61:\r
7705 mov r1,z80hl, lsr #24\r
7706 opOUT_C\r
7707 fetch 12\r
7708;@SBC HL,HL\r
7709opcode_ED_62:\r
7710 opSBC16HL\r
7711;@RRD\r
7712opcode_ED_67:\r
7713 readmem8HL\r
7714 mov r1,r0,ror#4\r
7715 orr r0,r1,z80a,lsr#20\r
7716 bic z80a,z80a,#0x0F000000\r
7717 orr z80a,z80a,r1,lsr#4\r
7718 writemem8HL\r
7719 sub r1,opcodes,#0x100\r
7720 ldrb r0,[r1,z80a, lsr #24]\r
7721 and z80f,z80f,#1<<CFlag\r
7722 orr z80f,z80f,r0\r
7723 fetch 18\r
7724;@IN L,(C)\r
7725opcode_ED_68:\r
7726 opIN_C\r
7727 and z80hl,z80hl,#0xFF<<24\r
7728 orr z80hl,z80hl,r0, lsl #16\r
7729 and z80f,z80f,#1<<CFlag\r
7730 sub r1,opcodes,#0x100\r
7731 ldrb r0,[r1,r0]\r
7732 orr z80f,z80f,r0\r
7733 fetch 12\r
7734;@OUT (C),L\r
7735opcode_ED_69:\r
7736 mov r1,z80hl, lsr #16\r
7737 and r1,r1,#0xFF\r
7738 opOUT_C\r
7739 fetch 12\r
7740;@ADC HL,HL\r
7741opcode_ED_6A:\r
7742 opADC16HL\r
7743;@RLD\r
7744opcode_ED_6F:\r
7745 readmem8HL\r
7746 orr r0,r0,z80a,lsl#4\r
7747 mov r0,r0,ror#28\r
7748 and z80a,z80a,#0xF0000000\r
7749 orr z80a,z80a,r0,lsl#16\r
7750 and z80a,z80a,#0xFF000000\r
7751 writemem8HL\r
7752 sub r1,opcodes,#0x100\r
7753 ldrb r0,[r1,z80a, lsr #24]\r
7754 and z80f,z80f,#1<<CFlag\r
7755 orr z80f,z80f,r0\r
7756 fetch 18\r
7757;@IN F,(C)\r
7758opcode_ED_70:\r
7759 opIN_C\r
7760 and z80f,z80f,#1<<CFlag\r
7761 sub r1,opcodes,#0x100\r
7762 ldrb r0,[r1,r0]\r
7763 orr z80f,z80f,r0\r
7764 fetch 12\r
7765;@OUT (C),0\r
7766opcode_ED_71:\r
7767 mov r1,#0\r
7768 opOUT_C\r
7769 fetch 12\r
7770\r
7771;@SBC HL,SP\r
7772opcode_ED_72:\r
7773.if FAST_Z80SP\r
7774 ldr r0,[cpucontext,#z80sp_base]\r
7775 sub r0,z80sp,r0\r
7776 mov r0, r0, lsl #16\r
7777.else\r
7778 mov r0,z80sp,lsl#16\r
7779.endif\r
7780 opSBC16 r0\r
7781;@LD (NN),SP\r
7782opcode_ED_73:\r
7783 ldrb r0,[z80pc],#1\r
7784 ldrb r1,[z80pc],#1\r
7785 orr r1,r0,r1, lsl #8\r
7786.if FAST_Z80SP\r
7787 ldr r0,[cpucontext,#z80sp_base]\r
7788 sub r0,z80sp,r0\r
7789.else\r
7790 mov r0,z80sp\r
7791.endif\r
7792 writemem16\r
7793 fetch 16\r
7794;@IN A,(C)\r
7795opcode_ED_78:\r
7796 opIN_C\r
7797 mov z80a,r0, lsl #24\r
7798 and z80f,z80f,#1<<CFlag\r
7799 sub r1,opcodes,#0x100\r
7800 ldrb r0,[r1,r0]\r
7801 orr z80f,z80f,r0\r
7802 fetch 12\r
7803;@OUT (C),A\r
7804opcode_ED_79:\r
7805 mov r1,z80a, lsr #24\r
7806 opOUT_C\r
7807 fetch 12\r
7808;@ADC HL,SP\r
7809opcode_ED_7A:\r
7810.if FAST_Z80SP\r
7811 ldr r0,[cpucontext,#z80sp_base]\r
7812 sub r0,z80sp,r0\r
7813 mov r0, r0, lsl #16\r
7814.else\r
7815 mov r0,z80sp,lsl#16\r
7816.endif\r
7817 opADC16 r0\r
7818;@LD SP,(NN)\r
7819opcode_ED_7B:\r
7820 ldrb r0,[z80pc],#1\r
7821 ldrb r1,[z80pc],#1\r
7822 orr r0,r0,r1, lsl #8\r
7823 readmem16\r
7824.if FAST_Z80SP\r
7825 rebasesp\r
b4db550e 7826.else\r
cc68a136 7827 mov z80sp,r0\r
b4db550e 7828.endif\r
cc68a136 7829 fetch 20\r
7830;@LDI\r
7831opcode_ED_A0:\r
7832 copymem8HL_DE\r
7833 add z80hl,z80hl,#1<<16\r
7834 add z80de,z80de,#1<<16\r
7835 subs z80bc,z80bc,#1<<16\r
7836 bic z80f,z80f,#(1<<VFlag)|(1<<NFlag)|(1<<HFlag)\r
7837 orrne z80f,z80f,#1<<VFlag\r
7838 fetch 16\r
7839;@CPI\r
7840opcode_ED_A1:\r
7841 readmem8HL\r
7842 add z80hl,z80hl,#0x00010000\r
7843 mov r1,z80a,lsl#4\r
7844 cmp z80a,r0,lsl#24\r
7845 and z80f,z80f,#1<<CFlag\r
7846 orr z80f,z80f,#1<<NFlag\r
7847 orrmi z80f,z80f,#1<<SFlag\r
7848 orreq z80f,z80f,#1<<ZFlag\r
7849 cmp r1,r0,lsl#28\r
7850 orrcc z80f,z80f,#1<<HFlag\r
7851 subs z80bc,z80bc,#0x00010000\r
7852 orrne z80f,z80f,#1<<VFlag\r
7853 fetch 16\r
7854;@INI\r
7855opcode_ED_A2:\r
7856 opIN_C\r
7857 and z80f,r0,#0x80\r
7858 mov z80f,z80f,lsr#2 ;@NFlag set by bit 7\r
7859;@ mov r1,z80bc,lsl#8\r
7860;@ add r1,r1,#0x01000000\r
7861;@ adds r1,r1,r0,lsl#24\r
7862;@ orrcs z80f,z80f,#(1<<CFlag)|(1<<HFlag) ;@ CF & HF set if (HL) + ((C+1) & 0xFF) > 0xFF\r
7863 writemem8HL\r
7864 add z80hl,z80hl,#1<<16\r
7865 sub z80bc,z80bc,#1<<24\r
7866 tst z80bc,#0xFF<<24\r
7867 orrmi z80f,z80f,#1<<SFlag\r
7868 orreq z80f,z80f,#1<<ZFlag\r
7869 fetch 16\r
7870\r
7871;@OUTI\r
7872opcode_ED_A3:\r
7873 readmem8HL\r
7874 add z80hl,z80hl,#1<<16\r
7875 and z80f,r0,#0x80\r
7876 mov z80f,z80f,lsr#2 ;@NFlag set by bit 7\r
7877 mov r1,z80hl,lsl#8\r
7878 adds r1,r1,r0,lsl#24\r
7879 orrcs z80f,z80f,#(1<<CFlag)|(1<<HFlag) ;@ CF & HF set if (HL)+L > 0xFF\r
7880 sub z80bc,z80bc,#1<<24\r
7881 tst z80bc,#0xFF<<24\r
7882 orrmi z80f,z80f,#1<<SFlag\r
7883 orreq z80f,z80f,#1<<ZFlag\r
7884 mov r1,r0\r
7885 opOUT_C\r
7886 fetch 16\r
7887\r
7888;@LDD\r
7889opcode_ED_A8:\r
7890 copymem8HL_DE\r
7891 sub z80hl,z80hl,#1<<16\r
7892 sub z80de,z80de,#1<<16\r
7893 subs z80bc,z80bc,#1<<16\r
7894 bic z80f,z80f,#(1<<VFlag)|(1<<NFlag)|(1<<HFlag)\r
7895 orrne z80f,z80f,#1<<VFlag\r
7896 fetch 16\r
7897\r
7898;@CPD\r
7899opcode_ED_A9:\r
7900 readmem8HL\r
7901 sub z80hl,z80hl,#1<<16\r
7902 mov r1,z80a,lsl#4\r
7903 cmp z80a,r0,lsl#24\r
7904 and z80f,z80f,#1<<CFlag\r
7905 orr z80f,z80f,#1<<NFlag\r
7906 orrmi z80f,z80f,#1<<SFlag\r
7907 orreq z80f,z80f,#1<<ZFlag\r
7908 cmp r1,r0,lsl#28\r
7909 orrcc z80f,z80f,#1<<HFlag\r
7910 subs z80bc,z80bc,#0x00010000\r
7911 orrne z80f,z80f,#1<<VFlag\r
7912 fetch 16\r
7913\r
7914;@IND\r
7915opcode_ED_AA:\r
7916 opIN_C\r
7917 and z80f,r0,#0x80\r
7918 mov z80f,z80f,lsr#2 ;@NFlag set by bit 7\r
7919;@ mov r1,z80bc,lsl#8\r
7920;@ sub r1,r1,#0x01000000\r
7921;@ adds r1,r1,r0,lsl#24\r
7922;@ orrcs z80f,z80f,#(1<<CFlag)|(1<<HFlag) ;@ CF & HF set if (HL) + ((C-1) & 0xFF) > 0xFF\r
7923 writemem8HL\r
7924 sub z80hl,z80hl,#1<<16\r
7925 sub z80bc,z80bc,#1<<24\r
7926 tst z80bc,#0xFF<<24\r
7927 orrmi z80f,z80f,#1<<SFlag\r
7928 orreq z80f,z80f,#1<<ZFlag\r
7929 fetch 16\r
7930\r
7931;@OUTD\r
7932opcode_ED_AB:\r
7933 readmem8HL\r
7934 sub z80hl,z80hl,#1<<16\r
7935 and z80f,r0,#0x80\r
7936 mov z80f,z80f,lsr#2 ;@NFlag set by bit 7\r
7937 mov r1,z80hl,lsl#8\r
7938 adds r1,r1,r0,lsl#24\r
7939 orrcs z80f,z80f,#(1<<CFlag)|(1<<HFlag) ;@ CF & HF set if r0+HL > 0xFF\r
7940 sub z80bc,z80bc,#1<<24\r
7941 tst z80bc,#0xFF<<24\r
7942 orrmi z80f,z80f,#1<<SFlag\r
7943 orreq z80f,z80f,#1<<ZFlag\r
7944 mov r1,r0\r
7945 opOUT_C\r
7946 fetch 16\r
7947;@LDIR\r
7948opcode_ED_B0:\r
7949 copymem8HL_DE\r
7950 add z80hl,z80hl,#1<<16\r
7951 add z80de,z80de,#1<<16\r
7952 subs z80bc,z80bc,#1<<16\r
7953 bic z80f,z80f,#(1<<VFlag)|(1<<NFlag)|(1<<HFlag)\r
7954 orrne z80f,z80f,#1<<VFlag\r
7955 subne z80pc,z80pc,#2\r
7956 subne z80_icount,z80_icount,#5\r
7957 fetch 16\r
7958\r
7959;@CPIR\r
7960opcode_ED_B1:\r
7961 readmem8HL\r
7962 add z80hl,z80hl,#1<<16 \r
7963 mov r1,z80a,lsl#4\r
7964 cmp z80a,r0,lsl#24\r
7965 and z80f,z80f,#1<<CFlag\r
7966 orr z80f,z80f,#1<<NFlag\r
7967 orrmi z80f,z80f,#1<<SFlag\r
7968 orreq z80f,z80f,#1<<ZFlag\r
7969 cmp r1,r0,lsl#28\r
7970 orrcc z80f,z80f,#1<<HFlag\r
7971 subs z80bc,z80bc,#1<<16\r
7972 bne opcode_ED_B1_decpc\r
7973 fetch 16\r
7974opcode_ED_B1_decpc:\r
7975 orr z80f,z80f,#1<<VFlag\r
7976 tst z80f,#1<<ZFlag\r
7977 subeq z80pc,z80pc,#2\r
7978 subeq z80_icount,z80_icount,#5\r
7979 fetch 16\r
7980;@INIR\r
7981opcode_ED_B2:\r
7982 opIN_C\r
7983 and z80f,r0,#0x80\r
7984 mov z80f,z80f,lsr#2 ;@NFlag set by bit 7\r
7985;@ mov r1,z80bc,lsl#8\r
7986;@ add r1,r1,#0x01000000\r
7987;@ adds r1,r1,r0,lsl#24\r
7988;@ orrcs z80f,z80f,#(1<<CFlag)|(1<<HFlag) ;@ CF & HF set if (HL) + ((C+1) & 0xFF) > 0xFF\r
7989 writemem8HL\r
7990 add z80hl,z80hl,#1<<16\r
7991 sub z80bc,z80bc,#1<<24\r
7992 tst z80bc,#0xFF<<24\r
7993 orrmi z80f,z80f,#1<<SFlag\r
7994 orreq z80f,z80f,#1<<ZFlag\r
7995 subne z80pc,z80pc,#2\r
7996 subne z80_icount,z80_icount,#5\r
7997 fetch 16\r
7998;@OTIR\r
7999opcode_ED_B3:\r
8000 readmem8HL\r
8001 add z80hl,z80hl,#1<<16\r
8002 and z80f,r0,#0x80\r
8003 mov z80f,z80f,lsr#2 ;@NFlag set by bit 7\r
8004 mov r1,z80hl,lsl#8\r
8005 adds r1,r1,r0,lsl#24\r
8006 orrcs z80f,z80f,#(1<<CFlag)|(1<<HFlag) ;@ CF & HF set if r0+HL > 0xFF\r
8007 sub z80bc,z80bc,#1<<24\r
8008 tst z80bc,#0xFF<<24\r
8009 orrmi z80f,z80f,#1<<SFlag\r
8010 orreq z80f,z80f,#1<<ZFlag\r
8011 subne z80pc,z80pc,#2\r
8012 subne z80_icount,z80_icount,#5\r
8013 mov r1,r0\r
8014 opOUT_C\r
8015 fetch 16\r
8016;@LDDR\r
8017opcode_ED_B8:\r
8018 copymem8HL_DE\r
8019 sub z80hl,z80hl,#1<<16\r
8020 sub z80de,z80de,#1<<16\r
8021 subs z80bc,z80bc,#1<<16\r
8022 bic z80f,z80f,#(1<<VFlag)|(1<<NFlag)|(1<<HFlag)\r
8023 orrne z80f,z80f,#1<<VFlag\r
8024 subne z80pc,z80pc,#2\r
8025 subne z80_icount,z80_icount,#5\r
8026 fetch 16\r
8027\r
8028;@CPDR\r
8029opcode_ED_B9:\r
8030 readmem8HL\r
8031 sub z80hl,z80hl,#1<<16\r
8032 mov r1,z80a,lsl#4\r
8033 cmp z80a,r0,lsl#24\r
8034 and z80f,z80f,#1<<CFlag\r
8035 orr z80f,z80f,#1<<NFlag\r
8036 orrmi z80f,z80f,#1<<SFlag\r
8037 orreq z80f,z80f,#1<<ZFlag\r
8038 cmp r1,r0,lsl#28\r
8039 orrcc z80f,z80f,#1<<HFlag\r
8040 subs z80bc,z80bc,#1<<16\r
8041 bne opcode_ED_B9_decpc\r
8042 fetch 16\r
8043opcode_ED_B9_decpc:\r
8044 orr z80f,z80f,#1<<VFlag\r
8045 tst z80f,#1<<ZFlag\r
8046 subeq z80pc,z80pc,#2\r
8047 subeq z80_icount,z80_icount,#5\r
8048 fetch 16\r
8049;@INDR\r
8050opcode_ED_BA:\r
8051 opIN_C\r
8052 and z80f,r0,#0x80\r
8053 mov z80f,z80f,lsr#2 ;@NFlag set by bit 7\r
8054;@ mov r1,z80bc,lsl#8\r
8055;@ sub r1,r1,#0x01000000\r
8056;@ adds r1,r1,r0,lsl#24\r
8057;@ orrcs z80f,z80f,#(1<<CFlag)|(1<<HFlag) ;@ CF & HF set if (HL) + ((C-1) & 0xFF) > 0xFF\r
8058 writemem8HL\r
8059 sub z80hl,z80hl,#1<<16\r
8060 sub z80bc,z80bc,#1<<24\r
8061 tst z80bc,#0xFF<<24\r
8062 orrmi z80f,z80f,#1<<SFlag\r
8063 orreq z80f,z80f,#1<<ZFlag\r
8064 subne z80pc,z80pc,#2\r
8065 subne z80_icount,z80_icount,#5\r
8066 fetch 16\r
8067;@OTDR\r
8068opcode_ED_BB:\r
8069 readmem8HL\r
8070 sub z80hl,z80hl,#1<<16\r
8071 and z80f,r0,#0x80\r
8072 mov z80f,z80f,lsr#2 ;@NFlag set by bit 7\r
8073 mov r1,z80hl,lsl#8\r
8074 adds r1,r1,r0,lsl#24\r
8075 orrcs z80f,z80f,#(1<<CFlag)|(1<<HFlag) ;@ CF & HF set if r0+HL > 0xFF\r
8076 sub z80bc,z80bc,#1<<24\r
8077 tst z80bc,#0xFF<<24\r
8078 orrmi z80f,z80f,#1<<SFlag\r
8079 orreq z80f,z80f,#1<<ZFlag\r
8080 subne z80pc,z80pc,#2\r
8081 subne z80_icount,z80_icount,#5\r
8082 mov r1,r0\r
8083 opOUT_C\r
8084 fetch 16\r
8085;@##################################\r
8086;@##################################\r
8087;@### opcodes FD #########################\r
8088;@##################################\r
8089;@##################################\r
8090;@Since DD and FD opcodes are all the same apart from the address\r
8091;@register they use. When a FD intruction the program runs the code\r
8092;@from the DD location but the address of the IY reg is passed instead\r
8093;@of IX\r
8094\r
f0243975 8095;@end_loop:\r
8096;@ b end_loop\r
cc68a136 8097\r
de89bf45 8098;@ vim:filetype=armasm\r
cc68a136 8099\r