32x and sms savestates. Core-independent z80 state. SS bugfixing/refactoring.
[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
15 .equiv FAST_Z80SP, 1 ;@0 = Use mem functions for stack pointer, 1 = Use direct mem pointer\r
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
100\r
101;@---------------------------------------\r
102\r
103.text\r
104\r
ee05564f 105.if DRZ80_XMAP\r
cc68a136 106\r
ee05564f 107z80_xmap_read8: @ addr\r
108 ldr r1,[cpucontext,#z80_read8]\r
109 mov r2,r0,lsr #Z80_MEM_SHIFT\r
110 ldr r1,[r1,r2,lsl #2]\r
111 movs r1,r1,lsl #1\r
112 ldrccb r0,[r1,r0]\r
113 bxcc lr\r
114\r
115z80_xmap_read8_handler: @ addr, func\r
17043584 116 str z80_icount,[cpucontext,#cycles_pointer]\r
ee05564f 117 stmfd sp!,{r12,lr}\r
118 mov lr,pc\r
119 bx r1\r
120 ldr z80_icount,[cpucontext,#cycles_pointer]\r
121 ldmfd sp!,{r12,pc}\r
122\r
123z80_xmap_write8: @ data, addr\r
124 ldr r2,[cpucontext,#z80_write8]\r
125 add r2,r2,r1,lsr #Z80_MEM_SHIFT-2\r
126 bic r2,r2,#3\r
127 ldr r2,[r2]\r
128 movs r2,r2,lsl #1\r
129 strccb r0,[r2,r1]\r
130 bxcc lr\r
131\r
132z80_xmap_write8_handler: @ data, addr, func\r
133 str z80_icount,[cpucontext,#cycles_pointer]\r
134 mov r3,r0\r
135 mov r0,r1\r
136 mov r1,r3\r
137 stmfd sp!,{r12,lr}\r
138 mov lr,pc\r
139 bx r2\r
140 ldr z80_icount,[cpucontext,#cycles_pointer]\r
141 ldmfd sp!,{r12,pc}\r
142\r
143z80_xmap_read16: @ addr\r
144 @ check if we cross bank boundary\r
145 add r1,r0,#1\r
460603fa 146 eor r1,r1,r0\r
ee05564f 147 tst r1,#1<<Z80_MEM_SHIFT\r
148 bne 0f\r
cc68a136 149\r
ee05564f 150 ldr r1,[cpucontext,#z80_read8]\r
151 mov r2,r0,lsr #Z80_MEM_SHIFT\r
152 ldr r1,[r1,r2,lsl #2]\r
153 movs r1,r1,lsl #1\r
154 bcs 0f\r
cc68a136 155 ldrb r0,[r1,r0]!\r
156 ldrb r1,[r1,#1]\r
157 orr r0,r0,r1,lsl #8\r
158 bx lr\r
159\r
ee05564f 1600:\r
161 @ z80_xmap_read8 will save r3 and r12 for us\r
d8f51995 162 stmfd sp!,{r8,r9,lr}\r
163 mov r8,r0\r
ee05564f 164 bl z80_xmap_read8\r
d8f51995 165 mov r9,r0\r
166 add r0,r8,#1\r
ee05564f 167 bl z80_xmap_read8\r
d8f51995 168 orr r0,r9,r0,lsl #8\r
169 ldmfd sp!,{r8,r9,pc}\r
cc68a136 170\r
ee05564f 171z80_xmap_write16: @ data, addr\r
172 add r2,r1,#1\r
460603fa 173 eor r2,r2,r1\r
ee05564f 174 tst r2,#1<<Z80_MEM_SHIFT\r
175 bne 0f\r
cc68a136 176\r
460603fa 177 ldr r2,[cpucontext,#z80_write8]\r
ee05564f 178 add r2,r2,r1,lsr #Z80_MEM_SHIFT-2\r
179 bic r2,r2,#3\r
180 ldr r2,[r2]\r
181 movs r2,r2,lsl #1\r
182 bcs 0f\r
cc68a136 183 strb r0,[r2,r1]!\r
184 mov r0,r0,lsr #8\r
185 strb r0,[r2,#1]\r
186 bx lr\r
ee05564f 187\r
1880:\r
d8f51995 189 stmfd sp!,{r8,r9,lr}\r
190 mov r8,r0\r
191 mov r9,r1\r
ee05564f 192 bl z80_xmap_write8\r
d8f51995 193 mov r0,r8,lsr #8\r
194 add r1,r9,#1\r
ee05564f 195 bl z80_xmap_write8\r
d8f51995 196 ldmfd sp!,{r8,r9,pc}\r
197\r
198z80_xmap_rebase_pc:\r
199 ldr r1,[cpucontext,#z80_read8]\r
200 mov r2,r0,lsr #Z80_MEM_SHIFT\r
201 ldr r1,[r1,r2,lsl #2]\r
202 movs r1,r1,lsl #1\r
203 strcc r1,[cpucontext,#z80pc_base]\r
204 addcc z80pc,r1,r0\r
205 bxcc lr\r
206\r
207z80_bad_jump:\r
b4db550e 208 stmfd sp!,{r3,r12,lr}\r
209 mov lr,pc\r
210 ldr pc,[cpucontext,#z80_rebasePC]\r
d8f51995 211 mov z80pc,r0\r
b4db550e 212 ldmfd sp!,{r3,r12,pc}\r
213\r
214z80_xmap_rebase_sp:\r
215 ldr r1,[cpucontext,#z80_read8]\r
216 sub r2,r0,#1\r
217 mov r2,r2,lsl #16\r
218 mov r2,r2,lsr #(Z80_MEM_SHIFT+16)\r
219 ldr r1,[r1,r2,lsl #2]\r
220 movs r1,r1,lsl #1\r
221 strcc r1,[cpucontext,#z80sp_base]\r
222 addcc z80sp,r1,r0\r
223 bxcc lr\r
224\r
225 stmfd sp!,{r3,r12,lr}\r
226 mov lr,pc\r
227 ldr pc,[cpucontext,#z80_rebaseSP]\r
228 mov z80sp,r0\r
229 ldmfd sp!,{r3,r12,pc}\r
230 \r
231.endif @ DRZ80_XMAP\r
cc68a136 232\r
ee05564f 233\r
cc68a136 234.macro fetch cycs\r
235 subs z80_icount,z80_icount,#\cycs\r
236.if UPDATE_CONTEXT\r
237 str z80pc,[cpucontext,#z80pc_pointer]\r
238 str z80_icount,[cpucontext,#cycles_pointer]\r
239 ldr r1,[cpucontext,#z80pc_base]\r
240 sub r2,z80pc,r1\r
241 str r2,[cpucontext,#previouspc]\r
242.endif\r
243 ldrplb r0,[z80pc],#1\r
244 ldrpl pc,[opcodes,r0, lsl #2]\r
245 bmi z80_execute_end\r
246.endm\r
247\r
248.macro eatcycles cycs\r
249 sub z80_icount,z80_icount,#\cycs\r
250.if UPDATE_CONTEXT\r
251 str z80_icount,[cpucontext,#cycles_pointer]\r
252.endif\r
253.endm\r
254\r
255.macro readmem8\r
256.if UPDATE_CONTEXT\r
257 str z80pc,[cpucontext,#z80pc_pointer]\r
258.endif\r
ee05564f 259.if DRZ80_XMAP\r
260.if !DRZ80_XMAP_MORE_INLINE\r
261 ldr r1,[cpucontext,#z80_read8]\r
262 mov r2,r0,lsr #Z80_MEM_SHIFT\r
263 ldr r1,[r1,r2,lsl #2]\r
264 movs r1,r1,lsl #1\r
265 ldrccb r0,[r1,r0]\r
266 blcs z80_xmap_read8_handler\r
cc68a136 267.else\r
ee05564f 268 bl z80_xmap_read8\r
269.endif\r
270.else ;@ if !DRZ80_XMAP\r
cc68a136 271 stmfd sp!,{r3,r12}\r
272 mov lr,pc\r
273 ldr pc,[cpucontext,#z80_read8] ;@ r0 = addr - data returned in r0\r
274 ldmfd sp!,{r3,r12}\r
275.endif\r
276.endm\r
277\r
278.macro readmem8HL\r
279 mov r0,z80hl, lsr #16\r
280 readmem8\r
281.endm\r
282\r
283.macro readmem16\r
284.if UPDATE_CONTEXT\r
285 str z80pc,[cpucontext,#z80pc_pointer]\r
286.endif\r
ee05564f 287.if DRZ80_XMAP\r
288 bl z80_xmap_read16\r
cc68a136 289.else\r
290 stmfd sp!,{r3,r12}\r
291 mov lr,pc\r
292 ldr pc,[cpucontext,#z80_read16]\r
293 ldmfd sp!,{r3,r12}\r
294.endif\r
295.endm\r
296\r
297.macro writemem8\r
298.if UPDATE_CONTEXT\r
299 str z80pc,[cpucontext,#z80pc_pointer]\r
300.endif\r
ee05564f 301.if DRZ80_XMAP\r
302.if DRZ80_XMAP_MORE_INLINE\r
303 ldr r2,[cpucontext,#z80_write8]\r
304 mov lr,r1,lsr #Z80_MEM_SHIFT\r
305 ldr r2,[r2,lr,lsl #2]\r
306 movs r2,r2,lsl #1\r
307 strccb r0,[r2,r1]\r
308 blcs z80_xmap_write8_handler\r
cc68a136 309.else\r
ee05564f 310 bl z80_xmap_write8\r
311.endif\r
312.else ;@ if !DRZ80_XMAP\r
cc68a136 313 stmfd sp!,{r3,r12}\r
314 mov lr,pc\r
315 ldr pc,[cpucontext,#z80_write8] ;@ r0=data r1=addr\r
316 ldmfd sp!,{r3,r12}\r
317.endif\r
318.endm\r
319\r
320.macro writemem8DE\r
321 mov r1,z80de, lsr #16\r
322 writemem8\r
323.endm\r
324\r
325.macro writemem8HL\r
326 mov r1,z80hl, lsr #16\r
327 writemem8\r
328.endm\r
329\r
330.macro writemem16\r
331.if UPDATE_CONTEXT\r
332 str z80pc,[cpucontext,#z80pc_pointer]\r
333.endif\r
ee05564f 334.if DRZ80_XMAP\r
335 bl z80_xmap_write16\r
cc68a136 336.else\r
337 stmfd sp!,{r3,r12}\r
338 mov lr,pc\r
339 ldr pc,[cpucontext,#z80_write16] ;@ r0=data r1=addr\r
340 ldmfd sp!,{r3,r12}\r
341.endif\r
342.endm\r
343\r
344.macro copymem8HL_DE\r
345.if UPDATE_CONTEXT\r
346 str z80pc,[cpucontext,#z80pc_pointer]\r
347.endif\r
348 mov r0,z80hl, lsr #16\r
ee05564f 349.if DRZ80_XMAP\r
350 bl z80_xmap_read8\r
cc68a136 351.else\r
352 stmfd sp!,{r3,r12}\r
353 mov lr,pc\r
354 ldr pc,[cpucontext,#z80_read8] ;@ r0 = addr - data returned in r0\r
cc68a136 355.endif\r
356 mov r1,z80de, lsr #16\r
ee05564f 357.if DRZ80_XMAP\r
358 bl z80_xmap_write8\r
cc68a136 359.else\r
360 mov lr,pc\r
361 ldr pc,[cpucontext,#z80_write8] ;@ r0=data r1=addr\r
362 ldmfd sp!,{r3,r12}\r
363.endif\r
364.endm\r
365;@---------------------------------------\r
366\r
367.macro rebasepc\r
368.if UPDATE_CONTEXT\r
369 str z80pc,[cpucontext,#z80pc_pointer]\r
370.endif\r
d8f51995 371.if DRZ80_XMAP\r
372 bl z80_xmap_rebase_pc\r
cc68a136 373.else\r
374 stmfd sp!,{r3,r12}\r
375 mov lr,pc\r
376 ldr pc,[cpucontext,#z80_rebasePC] ;@ r0=new pc - external function sets z80pc_base and returns new z80pc in r0\r
377 ldmfd sp!,{r3,r12}\r
378 mov z80pc,r0\r
379.endif\r
380.endm\r
381\r
382.macro rebasesp\r
383.if UPDATE_CONTEXT\r
384 str z80pc,[cpucontext,#z80pc_pointer]\r
385.endif\r
d8f51995 386.if DRZ80_XMAP\r
b4db550e 387 bl z80_xmap_rebase_sp\r
cc68a136 388.else\r
389 stmfd sp!,{r3,r12}\r
390 mov lr,pc\r
391 ldr pc,[cpucontext,#z80_rebaseSP] ;@ external function must rebase sp\r
392 ldmfd sp!,{r3,r12}\r
b4db550e 393 mov z80sp,r0\r
cc68a136 394.endif\r
395.endm\r
396;@----------------------------------------------------------------------------\r
397\r
398.macro opADC\r
399 movs z80f,z80f,lsr#2 ;@ get C\r
400 subcs r0,r0,#0x100\r
401 eor z80f,r0,z80a,lsr#24 ;@ prepare for check of half carry\r
402 adcs z80a,z80a,r0,ror#8\r
403 mrs r0,cpsr ;@ S,Z,V&C\r
404 eor z80f,z80f,z80a,lsr#24\r
405 and z80f,z80f,#1<<HFlag ;@ H, correct\r
406 orr z80f,z80f,r0,lsr#28\r
407.endm\r
408\r
409.macro opADCA\r
410 movs z80f,z80f,lsr#2 ;@ get C\r
411 orrcs z80a,z80a,#0x00800000\r
412 adds z80a,z80a,z80a\r
413 mrs z80f,cpsr ;@ S,Z,V&C\r
414 mov z80f,z80f,lsr#28\r
415 tst z80a,#0x10000000 ;@ H, correct\r
416 orrne z80f,z80f,#1<<HFlag\r
417 fetch 4\r
418.endm\r
419\r
420.macro opADCH reg\r
421 mov r0,\reg,lsr#24\r
422 opADC\r
423 fetch 4\r
424.endm\r
425\r
426.macro opADCL reg\r
427 movs z80f,z80f,lsr#2 ;@ get C\r
428 adc r0,\reg,\reg,lsr#15\r
429 orrcs z80a,z80a,#0x00800000\r
430 mov r1,z80a,lsl#4 ;@ Prepare for check of half carry\r
431 adds z80a,z80a,r0,lsl#23\r
432 mrs z80f,cpsr ;@ S,Z,V&C\r
433 mov z80f,z80f,lsr#28\r
434 cmn r1,r0,lsl#27\r
435 orrcs z80f,z80f,#1<<HFlag ;@ H, correct\r
436 fetch 4\r
437.endm\r
438\r
439.macro opADCb\r
440 opADC\r
441.endm\r
442;@---------------------------------------\r
443\r
444.macro opADD reg shift\r
445 mov r1,z80a,lsl#4 ;@ Prepare for check of half carry\r
446 adds z80a,z80a,\reg,lsl#\shift\r
447 mrs z80f,cpsr ;@ S,Z,V&C\r
448 mov z80f,z80f,lsr#28\r
449 cmn r1,\reg,lsl#\shift+4\r
450 orrcs z80f,z80f,#1<<HFlag\r
451.endm\r
452\r
453.macro opADDA\r
454 adds z80a,z80a,z80a\r
455 mrs z80f,cpsr ;@ S,Z,V&C\r
456 mov z80f,z80f,lsr#28\r
457 tst z80a,#0x10000000 ;@ H, correct\r
458 orrne z80f,z80f,#1<<HFlag\r
459 fetch 4\r
460.endm\r
461\r
462.macro opADDH reg\r
463 and r0,\reg,#0xFF000000\r
464 opADD r0 0\r
465 fetch 4\r
466.endm\r
467\r
468.macro opADDL reg\r
469 opADD \reg 8\r
470 fetch 4\r
471.endm\r
472\r
473.macro opADDb \r
474 opADD r0 24\r
475.endm\r
476;@---------------------------------------\r
477\r
478.macro opADC16 reg\r
479 movs z80f,z80f,lsr#2 ;@ get C\r
480 adc r0,z80a,\reg,lsr#15\r
481 orrcs z80hl,z80hl,#0x00008000\r
482 mov r1,z80hl,lsl#4\r
483 adds z80hl,z80hl,r0,lsl#15\r
484 mrs z80f,cpsr ;@ S, Z, V & C\r
485 mov z80f,z80f,lsr#28\r
486 cmn r1,r0,lsl#19\r
487 orrcs z80f,z80f,#1<<HFlag\r
488 fetch 15\r
489.endm\r
490\r
491.macro opADC16HL\r
492 movs z80f,z80f,lsr#2 ;@ get C\r
493 orrcs z80hl,z80hl,#0x00008000\r
494 adds z80hl,z80hl,z80hl\r
495 mrs z80f,cpsr ;@ S, Z, V & C\r
496 mov z80f,z80f,lsr#28\r
497 tst z80hl,#0x10000000 ;@ H, correct.\r
498 orrne z80f,z80f,#1<<HFlag\r
499 fetch 15\r
500.endm\r
501\r
502.macro opADD16 reg1 reg2\r
503 mov r1,\reg1,lsl#4 ;@ Prepare for check of half carry\r
504 adds \reg1,\reg1,\reg2\r
505 bic z80f,z80f,#(1<<CFlag)|(1<<HFlag)|(1<<NFlag)\r
506 orrcs z80f,z80f,#1<<CFlag\r
507 cmn r1,\reg2,lsl#4\r
508 orrcs z80f,z80f,#1<<HFlag\r
509.endm\r
510\r
511.macro opADD16s reg1 reg2 shift\r
512 mov r1,\reg1,lsl#4 ;@ Prepare for check of half carry\r
513 adds \reg1,\reg1,\reg2,lsl#\shift\r
514 bic z80f,z80f,#(1<<CFlag)|(1<<HFlag)|(1<<NFlag)\r
515 orrcs z80f,z80f,#1<<CFlag\r
516 cmn r1,\reg2,lsl#4+\shift\r
517 orrcs z80f,z80f,#1<<HFlag\r
518.endm\r
519\r
520.macro opADD16_2 reg\r
521 adds \reg,\reg,\reg\r
522 bic z80f,z80f,#(1<<CFlag)|(1<<HFlag)|(1<<NFlag)\r
523 orrcs z80f,z80f,#1<<CFlag\r
524 tst \reg,#0x10000000 ;@ H, correct.\r
525 orrne z80f,z80f,#1<<HFlag\r
526.endm\r
527;@---------------------------------------\r
528\r
529.macro opAND reg shift\r
530 and z80a,z80a,\reg,lsl#\shift\r
531 sub r0,opcodes,#0x100\r
532 ldrb z80f,[r0,z80a, lsr #24]\r
533 orr z80f,z80f,#1<<HFlag\r
534.endm\r
535\r
536.macro opANDA\r
537 sub r0,opcodes,#0x100\r
538 ldrb z80f,[r0,z80a, lsr #24]\r
539 orr z80f,z80f,#1<<HFlag\r
540 fetch 4\r
541.endm\r
542\r
543.macro opANDH reg\r
544 opAND \reg 0\r
545 fetch 4\r
546.endm\r
547\r
548.macro opANDL reg\r
549 opAND \reg 8\r
550 fetch 4\r
551.endm\r
552\r
553.macro opANDb\r
554 opAND r0 24\r
555.endm\r
556;@---------------------------------------\r
557\r
558.macro opBITH reg bit\r
559 and z80f,z80f,#1<<CFlag\r
560 tst \reg,#1<<(24+\bit)\r
561 orreq z80f,z80f,#(1<<HFlag)|(1<<ZFlag)|(1<<VFlag)\r
562 orrne z80f,z80f,#(1<<HFlag)\r
563 fetch 8\r
564.endm\r
565\r
566.macro opBIT7H reg\r
567 and z80f,z80f,#1<<CFlag\r
568 tst \reg,#1<<(24+7)\r
569 orreq z80f,z80f,#(1<<HFlag)|(1<<ZFlag)|(1<<VFlag)\r
570 orrne z80f,z80f,#(1<<HFlag)|(1<<SFlag)\r
571 fetch 8\r
572.endm\r
573\r
574.macro opBITL reg bit\r
575 and z80f,z80f,#1<<CFlag\r
576 tst \reg,#1<<(16+\bit)\r
577 orreq z80f,z80f,#(1<<HFlag)|(1<<ZFlag)|(1<<VFlag)\r
578 orrne z80f,z80f,#(1<<HFlag)\r
579 fetch 8\r
580.endm\r
581\r
582.macro opBIT7L reg\r
583 and z80f,z80f,#1<<CFlag\r
584 tst \reg,#1<<(16+7)\r
585 orreq z80f,z80f,#(1<<HFlag)|(1<<ZFlag)|(1<<VFlag)\r
586 orrne z80f,z80f,#(1<<HFlag)|(1<<SFlag)\r
587 fetch 8\r
588.endm\r
589\r
590.macro opBITb bit\r
591 and z80f,z80f,#1<<CFlag\r
592 tst r0,#1<<\bit\r
593 orreq z80f,z80f,#(1<<HFlag)|(1<<ZFlag)|(1<<VFlag)\r
594 orrne z80f,z80f,#(1<<HFlag)\r
595.endm\r
596\r
597.macro opBIT7b\r
598 and z80f,z80f,#1<<CFlag\r
599 tst r0,#1<<7\r
600 orreq z80f,z80f,#(1<<HFlag)|(1<<ZFlag)|(1<<VFlag)\r
601 orrne z80f,z80f,#(1<<HFlag)|(1<<SFlag)\r
602.endm\r
603;@---------------------------------------\r
604\r
605.macro opCP reg shift\r
606 mov r1,z80a,lsl#4 ;@ prepare for check of half carry\r
607 cmp z80a,\reg,lsl#\shift\r
608 mrs z80f,cpsr\r
609 mov z80f,z80f,lsr#28 ;@ S,Z,V&C\r
610 eor z80f,z80f,#(1<<CFlag)|(1<<NFlag) ;@ invert C and set n\r
611 cmp r1,\reg,lsl#\shift+4\r
612 orrcc z80f,z80f,#1<<HFlag\r
613.endm\r
614\r
615.macro opCPA\r
616 mov z80f,#(1<<ZFlag)|(1<<NFlag) ;@ set Z & n\r
617 fetch 4\r
618.endm\r
619\r
620.macro opCPH reg\r
621 and r0,\reg,#0xFF000000\r
622 opCP r0 0\r
623 fetch 4\r
624.endm\r
625\r
626.macro opCPL reg\r
627 opCP \reg 8\r
628 fetch 4\r
629.endm\r
630\r
631.macro opCPb\r
632 opCP r0 24\r
633.endm\r
634;@---------------------------------------\r
635\r
636.macro opDEC8 reg ;@for A and memory\r
637 and z80f,z80f,#1<<CFlag ;@save carry\r
638 orr z80f,z80f,#1<<NFlag ;@set n\r
639 tst \reg,#0x0f000000\r
640 orreq z80f,z80f,#1<<HFlag\r
641 subs \reg,\reg,#0x01000000\r
642 orrmi z80f,z80f,#1<<SFlag\r
643 orrvs z80f,z80f,#1<<VFlag\r
644 orreq z80f,z80f,#1<<ZFlag\r
645.endm\r
646\r
647.macro opDEC8H reg ;@for B, D & H\r
648 and z80f,z80f,#1<<CFlag ;@save carry\r
649 orr z80f,z80f,#1<<NFlag ;@set n\r
650 tst \reg,#0x0f000000\r
651 orreq z80f,z80f,#1<<HFlag\r
652 subs \reg,\reg,#0x01000000\r
653 orrmi z80f,z80f,#1<<SFlag\r
654 orrvs z80f,z80f,#1<<VFlag\r
655 tst \reg,#0xff000000 ;@Z\r
656 orreq z80f,z80f,#1<<ZFlag\r
657.endm\r
658\r
659.macro opDEC8L reg ;@for C, E & L\r
660 mov \reg,\reg,ror#24\r
661 opDEC8H \reg\r
662 mov \reg,\reg,ror#8\r
663.endm\r
664\r
665.macro opDEC8b ;@for memory\r
666 mov r0,r0,lsl#24\r
667 opDEC8 r0\r
668 mov r0,r0,lsr#24\r
669.endm\r
670;@---------------------------------------\r
671\r
672.macro opIN\r
673 stmfd sp!,{r3,r12}\r
674 mov lr,pc\r
675 ldr pc,[cpucontext,#z80_in] ;@ r0=port - data returned in r0\r
676 ldmfd sp!,{r3,r12}\r
677.endm\r
678\r
679.macro opIN_C\r
680 mov r0,z80bc, lsr #16\r
681 opIN\r
682.endm\r
683;@---------------------------------------\r
684\r
685.macro opINC8 reg ;@for A and memory\r
686 and z80f,z80f,#1<<CFlag ;@save carry, clear n\r
687 adds \reg,\reg,#0x01000000\r
688 orrmi z80f,z80f,#1<<SFlag\r
689 orrvs z80f,z80f,#1<<VFlag\r
690 orrcs z80f,z80f,#1<<ZFlag ;@cs when going from 0xFF to 0x00\r
691 tst \reg,#0x0f000000\r
692 orreq z80f,z80f,#1<<HFlag\r
693.endm\r
694\r
695.macro opINC8H reg ;@for B, D & H\r
696 opINC8 \reg\r
697.endm\r
698\r
699.macro opINC8L reg ;@for C, E & L\r
700 mov \reg,\reg,ror#24\r
701 opINC8 \reg\r
702 mov \reg,\reg,ror#8\r
703.endm\r
704\r
705.macro opINC8b ;@for memory\r
706 mov r0,r0,lsl#24\r
707 opINC8 r0\r
708 mov r0,r0,lsr#24\r
709.endm\r
710;@---------------------------------------\r
711\r
712.macro opOR reg shift\r
713 orr z80a,z80a,\reg,lsl#\shift\r
714 sub r0,opcodes,#0x100\r
715 ldrb z80f,[r0,z80a, lsr #24]\r
716.endm\r
717\r
718.macro opORA\r
719 sub r0,opcodes,#0x100\r
720 ldrb z80f,[r0,z80a, lsr #24]\r
721 fetch 4\r
722.endm\r
723\r
724.macro opORH reg\r
725 and r0,\reg,#0xFF000000\r
726 opOR r0 0\r
727 fetch 4\r
728.endm\r
729\r
730.macro opORL reg\r
731 opOR \reg 8\r
732 fetch 4\r
733.endm\r
734\r
735.macro opORb\r
736 opOR r0 24\r
737.endm\r
738;@---------------------------------------\r
739\r
740.macro opOUT\r
741 stmfd sp!,{r3,r12}\r
742 mov lr,pc\r
743 ldr pc,[cpucontext,#z80_out] ;@ r0=port r1=data\r
744 ldmfd sp!,{r3,r12}\r
745.endm\r
746\r
747.macro opOUT_C\r
748 mov r0,z80bc, lsr #16\r
749 opOUT\r
750.endm\r
751;@---------------------------------------\r
752\r
753.macro opPOP\r
754.if FAST_Z80SP\r
cc68a136 755 ldrb r0,[z80sp],#1\r
756 ldrb r1,[z80sp],#1\r
757 orr r0,r0,r1, lsl #8\r
cc68a136 758.else\r
759 mov r0,z80sp\r
760 readmem16\r
761 add z80sp,z80sp,#2\r
762.endif\r
763.endm\r
764\r
765.macro opPOPreg reg\r
766 opPOP\r
767 mov \reg,r0, lsl #16\r
768 fetch 10\r
769.endm\r
770;@---------------------------------------\r
771\r
d8f51995 772.macro stack_check\r
773 @ try to protect against stack overflows, lock into current bank\r
774 ldr r1,[cpucontext,#z80sp_base]\r
775 sub r1,z80sp,r1\r
776 cmp r1,#2\r
777 addlt z80sp,z80sp,#1<<Z80_MEM_SHIFT\r
778.endm\r
779\r
cc68a136 780.macro opPUSHareg reg @ reg > r1\r
781.if FAST_Z80SP\r
d8f51995 782.if DRZ80_XMAP\r
783 stack_check\r
784.endif\r
cc68a136 785 mov r1,\reg, lsr #8\r
786 strb r1,[z80sp,#-1]!\r
787 strb \reg,[z80sp,#-1]!\r
cc68a136 788.else\r
789 mov r0,\reg\r
790 sub z80sp,z80sp,#2\r
791 mov r1,z80sp\r
792 writemem16\r
793.endif\r
794.endm\r
795\r
796.macro opPUSHreg reg\r
797.if FAST_Z80SP\r
d8f51995 798.if DRZ80_XMAP\r
799 stack_check\r
800.endif\r
cc68a136 801 mov r1,\reg, lsr #24\r
802 strb r1,[z80sp,#-1]!\r
803 mov r1,\reg, lsr #16\r
804 strb r1,[z80sp,#-1]!\r
cc68a136 805.else\r
806 mov r0,\reg,lsr #16\r
807 sub z80sp,z80sp,#2\r
808 mov r1,z80sp\r
809 writemem16\r
810.endif\r
811.endm\r
812;@---------------------------------------\r
813\r
814.macro opRESmemHL bit\r
cc68a136 815 mov r0,z80hl, lsr #16\r
ee05564f 816.if DRZ80_XMAP\r
817 bl z80_xmap_read8\r
cc68a136 818 bic r0,r0,#1<<\bit\r
819 mov r1,z80hl, lsr #16\r
ee05564f 820 bl z80_xmap_write8\r
cc68a136 821.else\r
cc68a136 822 stmfd sp!,{r3,r12}\r
823 mov lr,pc\r
824 ldr pc,[cpucontext,#z80_read8] ;@ r0 = addr - data returned in r0\r
825 bic r0,r0,#1<<\bit\r
826 mov r1,z80hl, lsr #16\r
827 mov lr,pc\r
828 ldr pc,[cpucontext,#z80_write8] ;@ r0=data r1=addr\r
829 ldmfd sp!,{r3,r12}\r
830.endif\r
831 fetch 15\r
832.endm\r
833;@---------------------------------------\r
834\r
835.macro opRESmem bit\r
ee05564f 836.if DRZ80_XMAP\r
cc68a136 837 stmfd sp!,{r0} ;@ save addr as well\r
ee05564f 838 bl z80_xmap_read8\r
cc68a136 839 bic r0,r0,#1<<\bit\r
840 ldmfd sp!,{r1} ;@ restore addr into r1\r
ee05564f 841 bl z80_xmap_write8\r
cc68a136 842.else\r
843 stmfd sp!,{r3,r12}\r
844 stmfd sp!,{r0} ;@ save addr as well\r
845 mov lr,pc\r
846 ldr pc,[cpucontext,#z80_read8] ;@ r0=addr - data returned in r0\r
847 bic r0,r0,#1<<\bit\r
848 ldmfd sp!,{r1} ;@ restore addr into r1\r
849 mov lr,pc\r
850 ldr pc,[cpucontext,#z80_write8] ;@ r0=data r1=addr\r
851 ldmfd sp!,{r3,r12}\r
852.endif\r
853 fetch 23\r
854.endm\r
855;@---------------------------------------\r
856\r
857.macro opRL reg1 reg2 shift\r
858 movs \reg1,\reg2,lsl \shift\r
859 tst z80f,#1<<CFlag ;@doesn't affect ARM carry, as long as the imidiate value is < 0x100. Watch out!\r
860 orrne \reg1,\reg1,#0x01000000\r
861;@ and r2,z80f,#1<<CFlag\r
862;@ orr $x,$x,r2,lsl#23\r
863 sub r1,opcodes,#0x100\r
864 ldrb z80f,[r1,\reg1,lsr#24] ;@get PZS\r
865 orrcs z80f,z80f,#1<<CFlag\r
866.endm\r
867\r
868.macro opRLA\r
869 opRL z80a, z80a, #1\r
870 fetch 8\r
871.endm\r
872\r
873.macro opRLH reg\r
874 and r0,\reg,#0xFF000000 ;@mask high to r0\r
875 adds \reg,\reg,r0\r
876 tst z80f,#1<<CFlag ;@doesn't affect ARM carry, as long as the imidiate value is < 0x100. Watch out!\r
877 orrne \reg,\reg,#0x01000000\r
878 sub r1,opcodes,#0x100\r
879 ldrb z80f,[r1,\reg,lsr#24] ;@get PZS\r
880 orrcs z80f,z80f,#1<<CFlag\r
881 fetch 8\r
882.endm\r
883\r
884.macro opRLL reg\r
885 opRL r0, \reg, #9\r
886 and \reg,\reg,#0xFF000000 ;@mask out high\r
887 orr \reg,\reg,r0,lsr#8\r
888 fetch 8\r
889.endm\r
890\r
891.macro opRLb\r
892 opRL r0, r0, #25\r
893 mov r0,r0,lsr#24\r
894.endm\r
895;@---------------------------------------\r
896\r
897.macro opRLC reg1 reg2 shift\r
898 movs \reg1,\reg2,lsl#\shift\r
899 orrcs \reg1,\reg1,#0x01000000\r
900 sub r1,opcodes,#0x100\r
901 ldrb z80f,[r1,\reg1,lsr#24]\r
902 orrcs z80f,z80f,#1<<CFlag\r
903.endm\r
904\r
905.macro opRLCA\r
906 opRLC z80a, z80a, 1\r
907 fetch 8\r
908.endm\r
909\r
910.macro opRLCH reg\r
911 and r0,\reg,#0xFF000000 ;@mask high to r0\r
912 adds \reg,\reg,r0\r
913 orrcs \reg,\reg,#0x01000000\r
914 sub r1,opcodes,#0x100\r
915 ldrb z80f,[r1,\reg,lsr#24]\r
916 orrcs z80f,z80f,#1<<CFlag\r
917 fetch 8\r
918.endm\r
919\r
920.macro opRLCL reg\r
921 opRLC r0, \reg, 9\r
922 and \reg,\reg,#0xFF000000 ;@mask out high\r
923 orr \reg,\reg,r0,lsr#8\r
924 fetch 8\r
925.endm\r
926\r
927.macro opRLCb\r
928 opRLC r0, r0, 25\r
929 mov r0,r0,lsr#24\r
930.endm\r
931;@---------------------------------------\r
932\r
933.macro opRR reg1 reg2 shift\r
934 movs \reg1,\reg2,lsr#\shift\r
935 tst z80f,#1<<CFlag ;@doesn't affect ARM carry, as long as the imidiate value is < 0x100. Watch out!\r
936 orrne \reg1,\reg1,#0x00000080\r
937;@ and r2,z80_f,#PSR_C\r
938;@ orr \reg1,\reg1,r2,lsl#6\r
939 sub r1,opcodes,#0x100\r
940 ldrb z80f,[r1,\reg1]\r
941 orrcs z80f,z80f,#1<<CFlag\r
942.endm\r
943\r
944.macro opRRA\r
945 orr z80a,z80a,z80f,lsr#1 ;@get C\r
946 movs z80a,z80a,ror#25\r
947 mov z80a,z80a,lsl#24\r
948 sub r1,opcodes,#0x100\r
949 ldrb z80f,[r1,z80a,lsr#24]\r
950 orrcs z80f,z80f,#1<<CFlag\r
951 fetch 8\r
952.endm\r
953\r
954.macro opRRH reg\r
955 orr r0,\reg,z80f,lsr#1 ;@get C\r
956 movs r0,r0,ror#25\r
957 and \reg,\reg,#0x00FF0000 ;@mask out low\r
958 orr \reg,\reg,r0,lsl#24\r
959 sub r1,opcodes,#0x100\r
960 ldrb z80f,[r1,\reg,lsr#24]\r
961 orrcs z80f,z80f,#1<<CFlag\r
962 fetch 8\r
963.endm\r
964\r
965.macro opRRL reg\r
966 and r0,\reg,#0x00FF0000 ;@mask out low to r0\r
967 opRR r0 r0 17\r
968 and \reg,\reg,#0xFF000000 ;@mask out high\r
969 orr \reg,\reg,r0,lsl#16\r
970 fetch 8\r
971.endm\r
972\r
973.macro opRRb\r
974 opRR r0 r0 1\r
975.endm\r
976;@---------------------------------------\r
977\r
978.macro opRRC reg1 reg2 shift\r
979 movs \reg1,\reg2,lsr#\shift\r
980 orrcs \reg1,\reg1,#0x00000080\r
981 sub r1,opcodes,#0x100\r
982 ldrb z80f,[r1,\reg1]\r
983 orrcs z80f,z80f,#1<<CFlag\r
984.endm\r
985\r
986.macro opRRCA\r
987 opRRC z80a, z80a, 25\r
988 mov z80a,z80a,lsl#24\r
989 fetch 8\r
990.endm\r
991\r
992.macro opRRCH reg\r
993 opRRC r0, \reg, 25\r
994 and \reg,\reg,#0x00FF0000 ;@mask out low\r
995 orr \reg,\reg,r0,lsl#24\r
996 fetch 8\r
997.endm\r
998\r
999.macro opRRCL reg\r
1000 and r0,\reg,#0x00FF0000 ;@mask low to r0\r
1001 opRRC r0, r0, 17\r
1002 and \reg,\reg,#0xFF000000 ;@mask out high\r
1003 orr \reg,\reg,r0,lsl#16\r
1004 fetch 8\r
1005.endm\r
1006\r
1007.macro opRRCb\r
1008 opRRC r0, r0, 1\r
1009.endm\r
1010;@---------------------------------------\r
1011\r
1012.macro opRST addr\r
1013 ldr r0,[cpucontext,#z80pc_base]\r
1014 sub r2,z80pc,r0\r
1015 opPUSHareg r2\r
1016 mov r0,#\addr\r
1017 rebasepc\r
1018 fetch 11\r
1019.endm\r
1020;@---------------------------------------\r
1021\r
1022.macro opSBC\r
1023 eor z80f,z80f,#1<<CFlag ;@ invert C\r
1024 movs z80f,z80f,lsr#2 ;@ get C\r
1025 subcc r0,r0,#0x100\r
1026 eor z80f,r0,z80a,lsr#24 ;@ prepare for check of H\r
1027 sbcs z80a,z80a,r0,ror#8\r
1028 mrs r0,cpsr\r
1029 eor z80f,z80f,z80a,lsr#24\r
1030 and z80f,z80f,#1<<HFlag ;@ H, correct\r
1031 orr z80f,z80f,r0,lsr#28 ;@ S,Z,V&C\r
1032 eor z80f,z80f,#(1<<CFlag)|(1<<NFlag) ;@ invert C and set n.\r
1033.endm\r
1034\r
1035.macro opSBCA\r
1036 movs z80f,z80f,lsr#2 ;@ get C\r
1037 movcc z80a,#0x00000000\r
1038 movcs z80a,#0xFF000000\r
1039 movcc z80f,#(1<<NFlag)|(1<<ZFlag)\r
1040 movcs z80f,#(1<<NFlag)|(1<<SFlag)|(1<<CFlag)|(1<<HFlag)\r
1041 fetch 4\r
1042.endm\r
1043\r
1044.macro opSBCH reg\r
1045 mov r0,\reg,lsr#24\r
1046 opSBC\r
1047 fetch 4\r
1048.endm\r
1049\r
1050.macro opSBCL reg\r
1051 mov r0,\reg,lsl#8\r
1052 eor z80f,z80f,#1<<CFlag ;@ invert C\r
1053 movs z80f,z80f,lsr#2 ;@ get C\r
1054 sbccc r0,r0,#0xFF000000\r
1055 mov r1,z80a,lsl#4 ;@ prepare for check of H\r
1056 sbcs z80a,z80a,r0\r
1057 mrs z80f,cpsr\r
1058 mov z80f,z80f,lsr#28 ;@ S,Z,V&C\r
1059 eor z80f,z80f,#(1<<CFlag)|(1<<NFlag) ;@ invert C and set n.\r
1060 cmp r1,r0,lsl#4\r
1061 orrcc z80f,z80f,#1<<HFlag ;@ H, correct\r
1062 fetch 4\r
1063.endm\r
1064\r
1065.macro opSBCb\r
1066 opSBC\r
1067.endm\r
1068;@---------------------------------------\r
1069\r
1070.macro opSBC16 reg\r
1071 eor z80f,z80f,#1<<CFlag ;@ invert C\r
1072 movs z80f,z80f,lsr#2 ;@ get C\r
1073 sbc r1,r1,r1 ;@ set r1 to -1 or 0.\r
1074 orr r0,\reg,r1,lsr#16\r
1075 mov r1,z80hl,lsl#4 ;@ prepare for check of H\r
1076 sbcs z80hl,z80hl,r0\r
1077 mrs z80f,cpsr\r
1078 mov z80f,z80f,lsr#28 ;@ S,Z,V&C\r
1079 eor z80f,z80f,#(1<<CFlag)|(1<<NFlag) ;@ invert C and set n.\r
1080 cmp r1,r0,lsl#4\r
1081 orrcc z80f,z80f,#1<<HFlag ;@ H, correct\r
1082 fetch 15\r
1083.endm\r
1084\r
1085.macro opSBC16HL\r
1086 movs z80f,z80f,lsr#2 ;@ get C\r
1087 mov z80hl,#0x00000000\r
1088 subcs z80hl,z80hl,#0x00010000\r
1089 movcc z80f,#(1<<NFlag)|(1<<ZFlag)\r
1090 movcs z80f,#(1<<NFlag)|(1<<SFlag)|(1<<CFlag)|(1<<HFlag)\r
1091 fetch 15\r
1092.endm\r
1093;@---------------------------------------\r
1094\r
1095.macro opSETmemHL bit\r
cc68a136 1096 mov r0,z80hl, lsr #16\r
ee05564f 1097.if DRZ80_XMAP\r
1098 bl z80_xmap_read8\r
cc68a136 1099 orr r0,r0,#1<<\bit\r
1100 mov r1,z80hl, lsr #16\r
ee05564f 1101 bl z80_xmap_write8\r
cc68a136 1102.else\r
cc68a136 1103 stmfd sp!,{r3,r12}\r
1104 mov lr,pc\r
1105 ldr pc,[cpucontext,#z80_read8] ;@ r0 = addr - data returned in r0\r
1106 orr r0,r0,#1<<\bit\r
1107 mov r1,z80hl, lsr #16\r
1108 mov lr,pc\r
1109 ldr pc,[cpucontext,#z80_write8] ;@ r0=data r1=addr\r
1110 ldmfd sp!,{r3,r12}\r
1111.endif\r
1112 fetch 15\r
1113.endm\r
1114;@---------------------------------------\r
1115\r
1116.macro opSETmem bit\r
ee05564f 1117.if DRZ80_XMAP\r
cc68a136 1118 stmfd sp!,{r0} ;@ save addr as well\r
ee05564f 1119 bl z80_xmap_read8\r
cc68a136 1120 orr r0,r0,#1<<\bit\r
1121 ldmfd sp!,{r1} ;@ restore addr into r1\r
ee05564f 1122 bl z80_xmap_write8\r
cc68a136 1123.else\r
1124 stmfd sp!,{r3,r12}\r
1125 stmfd sp!,{r0} ;@ save addr as well\r
1126 mov lr,pc\r
1127 ldr pc,[cpucontext,#z80_read8] ;@ r0=addr - data returned in r0\r
1128 orr r0,r0,#1<<\bit\r
1129 ldmfd sp!,{r1} ;@ restore addr into r1\r
1130 mov lr,pc\r
1131 ldr pc,[cpucontext,#z80_write8] ;@ r0=data r1=addr\r
1132 ldmfd sp!,{r3,r12}\r
1133.endif\r
1134 fetch 23\r
1135.endm\r
1136;@---------------------------------------\r
1137\r
1138.macro opSLA reg1 reg2 shift\r
1139 movs \reg1,\reg2,lsl#\shift\r
1140 sub r1,opcodes,#0x100\r
1141 ldrb z80f,[r1,\reg1,lsr#24]\r
1142 orrcs z80f,z80f,#1<<CFlag\r
1143.endm\r
1144\r
1145.macro opSLAA\r
1146 opSLA z80a, z80a, 1\r
1147 fetch 8\r
1148.endm\r
1149\r
1150.macro opSLAH reg\r
1151 and r0,\reg,#0xFF000000 ;@mask high to r0\r
1152 adds \reg,\reg,r0\r
1153 sub r1,opcodes,#0x100\r
1154 ldrb z80f,[r1,\reg,lsr#24]\r
1155 orrcs z80f,z80f,#1<<CFlag\r
1156 fetch 8\r
1157.endm\r
1158\r
1159.macro opSLAL reg\r
1160 opSLA r0, \reg, 9\r
1161 and \reg,\reg,#0xFF000000 ;@mask out high\r
1162 orr \reg,\reg,r0,lsr#8\r
1163 fetch 8\r
1164.endm\r
1165\r
1166.macro opSLAb\r
1167 opSLA r0, r0, 25\r
1168 mov r0,r0,lsr#24\r
1169.endm\r
1170;@---------------------------------------\r
1171\r
1172.macro opSLL reg1 reg2 shift\r
1173 movs \reg1,\reg2,lsl#\shift\r
1174 orr \reg1,\reg1,#0x01000000\r
1175 sub r1,opcodes,#0x100\r
1176 ldrb z80f,[r1,\reg1,lsr#24]\r
1177 orrcs z80f,z80f,#1<<CFlag\r
1178.endm\r
1179\r
1180.macro opSLLA\r
1181 opSLL z80a, z80a, 1\r
1182 fetch 8\r
1183.endm\r
1184\r
1185.macro opSLLH reg\r
1186 and r0,\reg,#0xFF000000 ;@mask high to r0\r
1187 adds \reg,\reg,r0\r
1188 orr \reg,\reg,#0x01000000\r
1189 sub r1,opcodes,#0x100\r
1190 ldrb z80f,[r1,\reg,lsr#24]\r
1191 orrcs z80f,z80f,#1<<CFlag\r
1192 fetch 8\r
1193.endm\r
1194\r
1195.macro opSLLL reg\r
1196 opSLL r0, \reg, 9\r
1197 and \reg,\reg,#0xFF000000 ;@mask out high\r
1198 orr \reg,\reg,r0,lsr#8\r
1199 fetch 8\r
1200.endm\r
1201\r
1202.macro opSLLb\r
1203 opSLL r0, r0, 25\r
1204 mov r0,r0,lsr#24\r
1205.endm\r
1206;@---------------------------------------\r
1207\r
1208.macro opSRA reg1 reg2\r
1209 movs \reg1,\reg2,asr#25\r
1210 and \reg1,\reg1,#0xFF\r
1211 sub r1,opcodes,#0x100\r
1212 ldrb z80f,[r1,\reg1]\r
1213 orrcs z80f,z80f,#1<<CFlag\r
1214.endm\r
1215\r
1216.macro opSRAA\r
1217 movs r0,z80a,asr#25\r
1218 mov z80a,r0,lsl#24\r
1219 sub r1,opcodes,#0x100\r
1220 ldrb z80f,[r1,z80a,lsr#24]\r
1221 orrcs z80f,z80f,#1<<CFlag\r
1222 fetch 8\r
1223.endm\r
1224\r
1225.macro opSRAH reg\r
1226 movs r0,\reg,asr#25\r
1227 and \reg,\reg,#0x00FF0000 ;@mask out low\r
1228 orr \reg,\reg,r0,lsl#24\r
1229 sub r1,opcodes,#0x100\r
1230 ldrb z80f,[r1,\reg,lsr#24]\r
1231 orrcs z80f,z80f,#1<<CFlag\r
1232 fetch 8\r
1233.endm\r
1234\r
1235.macro opSRAL reg\r
1236 mov r0,\reg,lsl#8\r
1237 opSRA r0, r0\r
1238 and \reg,\reg,#0xFF000000 ;@mask out high\r
1239 orr \reg,\reg,r0,lsl#16\r
1240 fetch 8\r
1241.endm\r
1242\r
1243.macro opSRAb\r
1244 mov r0,r0,lsl#24\r
1245 opSRA r0, r0\r
1246.endm\r
1247;@---------------------------------------\r
1248\r
1249.macro opSRL reg1 reg2 shift\r
1250 movs \reg1,\reg2,lsr#\shift\r
1251 sub r1,opcodes,#0x100\r
1252 ldrb z80f,[r1,\reg1]\r
1253 orrcs z80f,z80f,#1<<CFlag\r
1254.endm\r
1255\r
1256.macro opSRLA\r
1257 opSRL z80a, z80a, 25\r
1258 mov z80a,z80a,lsl#24\r
1259 fetch 8\r
1260.endm\r
1261\r
1262.macro opSRLH reg\r
1263 opSRL r0, \reg, 25\r
1264 and \reg,\reg,#0x00FF0000 ;@mask out low\r
1265 orr \reg,\reg,r0,lsl#24\r
1266 fetch 8\r
1267.endm\r
1268\r
1269.macro opSRLL reg\r
1270 mov r0,\reg,lsl#8\r
1271 opSRL r0, r0, 25\r
1272 and \reg,\reg,#0xFF000000 ;@mask out high\r
1273 orr \reg,\reg,r0,lsl#16\r
1274 fetch 8\r
1275.endm\r
1276\r
1277.macro opSRLb\r
1278 opSRL r0, r0, 1\r
1279.endm\r
1280;@---------------------------------------\r
1281\r
1282.macro opSUB reg shift\r
1283 mov r1,z80a,lsl#4 ;@ Prepare for check of half carry\r
1284 subs z80a,z80a,\reg,lsl#\shift\r
1285 mrs z80f,cpsr\r
1286 mov z80f,z80f,lsr#28 ;@ S,Z,V&C\r
1287 eor z80f,z80f,#(1<<CFlag)|(1<<NFlag) ;@ invert C and set n\r
1288 cmp r1,\reg,lsl#\shift+4\r
1289 orrcc z80f,z80f,#1<<HFlag\r
1290.endm\r
1291\r
1292.macro opSUBA\r
1293 mov z80a,#0\r
1294 mov z80f,#(1<<ZFlag)|(1<<NFlag) ;@ set Z & n\r
1295 fetch 4\r
1296.endm\r
1297\r
1298.macro opSUBH reg\r
1299 and r0,\reg,#0xFF000000\r
1300 opSUB r0, 0\r
1301 fetch 4\r
1302.endm\r
1303\r
1304.macro opSUBL reg\r
1305 opSUB \reg, 8\r
1306 fetch 4\r
1307.endm\r
1308\r
1309.macro opSUBb\r
1310 opSUB r0, 24\r
1311.endm\r
1312;@---------------------------------------\r
1313\r
1314.macro opXOR reg shift\r
1315 eor z80a,z80a,\reg,lsl#\shift\r
1316 sub r0,opcodes,#0x100\r
1317 ldrb z80f,[r0,z80a, lsr #24]\r
1318.endm\r
1319\r
1320.macro opXORA\r
1321 mov z80a,#0\r
1322 mov z80f,#(1<<ZFlag)|(1<<VFlag)\r
1323 fetch 4\r
1324.endm\r
1325\r
1326.macro opXORH reg\r
1327 and r0,\reg,#0xFF000000\r
1328 opXOR r0, 0\r
1329 fetch 4\r
1330.endm\r
1331\r
1332.macro opXORL reg\r
1333 opXOR \reg, 8\r
1334 fetch 4\r
1335.endm\r
1336\r
1337.macro opXORb\r
1338 opXOR r0, 24\r
1339.endm\r
1340;@---------------------------------------\r
1341\r
1342\r
1343;@ --------------------------- Framework --------------------------\r
1344 \r
1345.text\r
1346\r
1347DrZ80Run:\r
1348 ;@ r0 = pointer to cpu context\r
1349 ;@ r1 = ISTATES to execute \r
1350 ;@######################################### \r
1351 stmdb sp!,{r4-r12,lr} ;@ save registers on stack\r
1352 mov cpucontext,r0 ;@ setup main memory pointer\r
1353 mov z80_icount,r1 ;@ setup number of Tstates to execute\r
1354\r
1355.if INTERRUPT_MODE == 0\r
de89bf45 1356 ldrh r0,[cpucontext,#z80irq] @ 0x4C, irq and IFF bits\r
cc68a136 1357.endif\r
1358 ldmia cpucontext,{z80pc-z80sp} ;@ load Z80 registers\r
1359\r
1360.if INTERRUPT_MODE == 0\r
1361 ;@ check ints\r
de89bf45 1362 tst r0,#0xff\r
1363 movne r0,r0,lsr #8\r
1364 tstne r0,#1\r
1365 blne DoInterrupt\r
cc68a136 1366.endif\r
1367\r
cc68a136 1368 ldr opcodes,MAIN_opcodes_POINTER2\r
cc68a136 1369\r
de89bf45 1370 cmp z80_icount,#0 ;@ irq might have used all cycles\r
1371 ldrplb r0,[z80pc],#1\r
1372 ldrpl pc,[opcodes,r0, lsl #2]\r
cc68a136 1373\r
1374\r
1375z80_execute_end:\r
1376 ;@ save registers in CPU context\r
1377 stmia cpucontext,{z80pc-z80sp} ;@ save Z80 registers\r
de89bf45 1378 mov r0,z80_icount\r
cc68a136 1379 ldmia sp!,{r4-r12,pc} ;@ restore registers from stack and return to C code\r
1380\r
de89bf45 1381MAIN_opcodes_POINTER2: .word MAIN_opcodes\r
cc68a136 1382.if INTERRUPT_MODE\r
1383Interrupt_local: .word Interrupt\r
1384.endif\r
1385\r
1386DoInterrupt:\r
1387.if INTERRUPT_MODE\r
1388 ;@ Don't do own int handler, call mames instead\r
1389\r
1390 ;@ save everything back into DrZ80 context\r
1391 stmia cpucontext,{z80pc-z80sp} ;@ save Z80 registers\r
1392 stmfd sp!,{r3,r4,r5,lr} ;@ save rest of regs on stack\r
1393 mov lr,pc\r
1394 ldr pc,Interrupt_local\r
1395 ldmfd sp!,{r3,r4,r5,lr} ;@ load regs from stack\r
1396 ;@ reload regs from DrZ80 context\r
1397 ldmia cpucontext,{z80pc-z80sp} ;@ load Z80 registers\r
1398 mov pc,lr ;@ return\r
1399.else\r
de89bf45 1400\r
1401 ;@ r0 == z80if\r
cc68a136 1402 stmfd sp!,{lr}\r
1403\r
1404 tst r0,#4 ;@ check halt\r
1405 addne z80pc,z80pc,#1\r
1406\r
1407 ldrb r1,[cpucontext,#z80im]\r
1408\r
1409 ;@ clear halt and int flags\r
1410 eor r0,r0,r0\r
1411 strb r0,[cpucontext,#z80if]\r
1412\r
1413 ;@ now check int mode\r
de89bf45 1414 cmp r1,#1\r
1415 beq DoInterrupt_mode1\r
1416 bgt DoInterrupt_mode2\r
cc68a136 1417\r
1418DoInterrupt_mode0:\r
1419 ;@ get 3 byte vector\r
1420 ldr r2,[cpucontext, #z80irqvector]\r
1421 and r1,r2,#0xFF0000\r
1422 cmp r1,#0xCD0000 ;@ call\r
1423 bne 1f\r
1424 ;@ ########\r
1425 ;@ # call\r
1426 ;@ ########\r
1427 ;@ save current pc on stack\r
1428 ldr r0,[cpucontext,#z80pc_base]\r
1429 sub r0,z80pc,r0\r
1430.if FAST_Z80SP\r
1431 mov r1,r0, lsr #8\r
1432 strb r1,[z80sp,#-1]!\r
1433 strb r0,[z80sp,#-1]!\r
1434.else\r
1435 sub z80sp,z80sp,#2\r
1436 mov r1,z80sp\r
1437 writemem16\r
1438 ldr r2,[cpucontext, #z80irqvector]\r
1439.endif\r
1440 ;@ jump to vector\r
1441 mov r2,r2,lsl#16\r
1442 mov r0,r2,lsr#16\r
1443 ;@ rebase new pc\r
1444 rebasepc\r
1445\r
de89bf45 1446 eatcycles 13\r
cc68a136 1447 b DoInterrupt_end\r
1448\r
14491:\r
1450 cmp r1,#0xC30000 ;@ jump\r
1451 bne DoInterrupt_mode1 ;@ rst\r
1452 ;@ #######\r
1453 ;@ # jump\r
1454 ;@ #######\r
1455 ;@ jump to vector\r
1456 mov r2,r2,lsl#16\r
1457 mov r0,r2,lsr#16\r
1458 ;@ rebase new pc\r
1459 rebasepc\r
1460\r
de89bf45 1461 eatcycles 13\r
cc68a136 1462 b DoInterrupt_end\r
1463\r
1464DoInterrupt_mode1:\r
1465 ldr r0,[cpucontext,#z80pc_base]\r
1466 sub r2,z80pc,r0\r
1467 opPUSHareg r2\r
1468 mov r0,#0x38\r
1469 rebasepc\r
1470\r
de89bf45 1471 eatcycles 13\r
cc68a136 1472 b DoInterrupt_end\r
1473\r
1474DoInterrupt_mode2:\r
1475 ;@ push pc on stack\r
1476 ldr r0,[cpucontext,#z80pc_base]\r
1477 sub r2,z80pc,r0\r
1478 opPUSHareg r2\r
1479\r
1480 ;@ get 1 byte vector address\r
1481 ldrb r0,[cpucontext, #z80irqvector]\r
1482 ldr r1,[cpucontext, #z80i]\r
1483 orr r0,r0,r1,lsr#16\r
1484\r
1485 ;@ read new pc from vector address\r
cc68a136 1486.if UPDATE_CONTEXT\r
1487 str z80pc,[cpucontext,#z80pc_pointer]\r
1488.endif\r
ee05564f 1489.if DRZ80_XMAP\r
1490 bl z80_xmap_read16\r
1491 rebasepc\r
cc68a136 1492.else\r
1493 stmfd sp!,{r3,r12}\r
1494 mov lr,pc\r
1495 ldr pc,[cpucontext,#z80_read16]\r
1496\r
1497 ;@ rebase new pc\r
cc68a136 1498 mov lr,pc\r
1499 ldr pc,[cpucontext,#z80_rebasePC] ;@ r0=new pc - external function sets z80pc_base and returns new z80pc in r0\r
1500 ldmfd sp!,{r3,r12}\r
1501 mov z80pc,r0 \r
1502.endif\r
de89bf45 1503 eatcycles 17\r
cc68a136 1504\r
1505DoInterrupt_end:\r
1506 ;@ interupt accepted so callback irq interface\r
1507 ldr r0,[cpucontext, #z80irqcallback]\r
1508 tst r0,r0\r
de89bf45 1509 streqb r0,[cpucontext,#z80irq] ;@ default handling\r
cc68a136 1510 ldmeqfd sp!,{pc}\r
1511 stmfd sp!,{r3,r12}\r
1512 mov lr,pc\r
1513 mov pc,r0 ;@ call callback function\r
1514 ldmfd sp!,{r3,r12}\r
1515 ldmfd sp!,{pc} ;@ return\r
cc68a136 1516.endif\r
1517\r
1518.data\r
1519.align 4\r
1520\r
1521DAATable: .hword (0x00<<8)|(1<<ZFlag)|(1<<VFlag)\r
1522 .hword (0x01<<8) \r
1523 .hword (0x02<<8) \r
1524 .hword (0x03<<8) |(1<<VFlag)\r
1525 .hword (0x04<<8) \r
1526 .hword (0x05<<8) |(1<<VFlag)\r
1527 .hword (0x06<<8) |(1<<VFlag)\r
1528 .hword (0x07<<8) \r
1529 .hword (0x08<<8) \r
1530 .hword (0x09<<8) |(1<<VFlag)\r
1531 .hword (0x10<<8) |(1<<HFlag) \r
1532 .hword (0x11<<8) |(1<<HFlag) |(1<<VFlag)\r
1533 .hword (0x12<<8) |(1<<HFlag) |(1<<VFlag)\r
1534 .hword (0x13<<8) |(1<<HFlag) \r
1535 .hword (0x14<<8) |(1<<HFlag) |(1<<VFlag)\r
1536 .hword (0x15<<8) |(1<<HFlag) \r
1537 .hword (0x10<<8) \r
1538 .hword (0x11<<8) |(1<<VFlag)\r
1539 .hword (0x12<<8) |(1<<VFlag)\r
1540 .hword (0x13<<8) \r
1541 .hword (0x14<<8) |(1<<VFlag)\r
1542 .hword (0x15<<8) \r
1543 .hword (0x16<<8) \r
1544 .hword (0x17<<8) |(1<<VFlag)\r
1545 .hword (0x18<<8) |(1<<VFlag)\r
1546 .hword (0x19<<8) \r
1547 .hword (0x20<<8) |(1<<HFlag) \r
1548 .hword (0x21<<8) |(1<<HFlag) |(1<<VFlag)\r
1549 .hword (0x22<<8) |(1<<HFlag) |(1<<VFlag)\r
1550 .hword (0x23<<8) |(1<<HFlag) \r
1551 .hword (0x24<<8) |(1<<HFlag) |(1<<VFlag)\r
1552 .hword (0x25<<8) |(1<<HFlag) \r
1553 .hword (0x20<<8) \r
1554 .hword (0x21<<8) |(1<<VFlag)\r
1555 .hword (0x22<<8) |(1<<VFlag)\r
1556 .hword (0x23<<8) \r
1557 .hword (0x24<<8) |(1<<VFlag)\r
1558 .hword (0x25<<8) \r
1559 .hword (0x26<<8) \r
1560 .hword (0x27<<8) |(1<<VFlag)\r
1561 .hword (0x28<<8) |(1<<VFlag)\r
1562 .hword (0x29<<8) \r
1563 .hword (0x30<<8) |(1<<HFlag) |(1<<VFlag)\r
1564 .hword (0x31<<8) |(1<<HFlag) \r
1565 .hword (0x32<<8) |(1<<HFlag) \r
1566 .hword (0x33<<8) |(1<<HFlag) |(1<<VFlag)\r
1567 .hword (0x34<<8) |(1<<HFlag) \r
1568 .hword (0x35<<8) |(1<<HFlag) |(1<<VFlag)\r
1569 .hword (0x30<<8) |(1<<VFlag)\r
1570 .hword (0x31<<8) \r
1571 .hword (0x32<<8) \r
1572 .hword (0x33<<8) |(1<<VFlag)\r
1573 .hword (0x34<<8) \r
1574 .hword (0x35<<8) |(1<<VFlag)\r
1575 .hword (0x36<<8) |(1<<VFlag)\r
1576 .hword (0x37<<8) \r
1577 .hword (0x38<<8) \r
1578 .hword (0x39<<8) |(1<<VFlag)\r
1579 .hword (0x40<<8) |(1<<HFlag) \r
1580 .hword (0x41<<8) |(1<<HFlag) |(1<<VFlag)\r
1581 .hword (0x42<<8) |(1<<HFlag) |(1<<VFlag)\r
1582 .hword (0x43<<8) |(1<<HFlag) \r
1583 .hword (0x44<<8) |(1<<HFlag) |(1<<VFlag)\r
1584 .hword (0x45<<8) |(1<<HFlag) \r
1585 .hword (0x40<<8) \r
1586 .hword (0x41<<8) |(1<<VFlag)\r
1587 .hword (0x42<<8) |(1<<VFlag)\r
1588 .hword (0x43<<8) \r
1589 .hword (0x44<<8) |(1<<VFlag)\r
1590 .hword (0x45<<8) \r
1591 .hword (0x46<<8) \r
1592 .hword (0x47<<8) |(1<<VFlag)\r
1593 .hword (0x48<<8) |(1<<VFlag)\r
1594 .hword (0x49<<8) \r
1595 .hword (0x50<<8) |(1<<HFlag) |(1<<VFlag)\r
1596 .hword (0x51<<8) |(1<<HFlag) \r
1597 .hword (0x52<<8) |(1<<HFlag) \r
1598 .hword (0x53<<8) |(1<<HFlag) |(1<<VFlag)\r
1599 .hword (0x54<<8) |(1<<HFlag) \r
1600 .hword (0x55<<8) |(1<<HFlag) |(1<<VFlag)\r
1601 .hword (0x50<<8) |(1<<VFlag)\r
1602 .hword (0x51<<8) \r
1603 .hword (0x52<<8) \r
1604 .hword (0x53<<8) |(1<<VFlag)\r
1605 .hword (0x54<<8) \r
1606 .hword (0x55<<8) |(1<<VFlag)\r
1607 .hword (0x56<<8) |(1<<VFlag)\r
1608 .hword (0x57<<8) \r
1609 .hword (0x58<<8) \r
1610 .hword (0x59<<8) |(1<<VFlag)\r
1611 .hword (0x60<<8) |(1<<HFlag) |(1<<VFlag)\r
1612 .hword (0x61<<8) |(1<<HFlag) \r
1613 .hword (0x62<<8) |(1<<HFlag) \r
1614 .hword (0x63<<8) |(1<<HFlag) |(1<<VFlag)\r
1615 .hword (0x64<<8) |(1<<HFlag) \r
1616 .hword (0x65<<8) |(1<<HFlag) |(1<<VFlag)\r
1617 .hword (0x60<<8) |(1<<VFlag)\r
1618 .hword (0x61<<8) \r
1619 .hword (0x62<<8) \r
1620 .hword (0x63<<8) |(1<<VFlag)\r
1621 .hword (0x64<<8) \r
1622 .hword (0x65<<8) |(1<<VFlag)\r
1623 .hword (0x66<<8) |(1<<VFlag)\r
1624 .hword (0x67<<8) \r
1625 .hword (0x68<<8) \r
1626 .hword (0x69<<8) |(1<<VFlag)\r
1627 .hword (0x70<<8) |(1<<HFlag) \r
1628 .hword (0x71<<8) |(1<<HFlag) |(1<<VFlag)\r
1629 .hword (0x72<<8) |(1<<HFlag) |(1<<VFlag)\r
1630 .hword (0x73<<8) |(1<<HFlag) \r
1631 .hword (0x74<<8) |(1<<HFlag) |(1<<VFlag)\r
1632 .hword (0x75<<8) |(1<<HFlag) \r
1633 .hword (0x70<<8) \r
1634 .hword (0x71<<8) |(1<<VFlag)\r
1635 .hword (0x72<<8) |(1<<VFlag)\r
1636 .hword (0x73<<8) \r
1637 .hword (0x74<<8) |(1<<VFlag)\r
1638 .hword (0x75<<8) \r
1639 .hword (0x76<<8) \r
1640 .hword (0x77<<8) |(1<<VFlag)\r
1641 .hword (0x78<<8) |(1<<VFlag)\r
1642 .hword (0x79<<8) \r
1643 .hword (0x80<<8)|(1<<SFlag) |(1<<HFlag) \r
1644 .hword (0x81<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag)\r
1645 .hword (0x82<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag)\r
1646 .hword (0x83<<8)|(1<<SFlag) |(1<<HFlag) \r
1647 .hword (0x84<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag)\r
1648 .hword (0x85<<8)|(1<<SFlag) |(1<<HFlag) \r
1649 .hword (0x80<<8)|(1<<SFlag) \r
1650 .hword (0x81<<8)|(1<<SFlag) |(1<<VFlag)\r
1651 .hword (0x82<<8)|(1<<SFlag) |(1<<VFlag)\r
1652 .hword (0x83<<8)|(1<<SFlag) \r
1653 .hword (0x84<<8)|(1<<SFlag) |(1<<VFlag)\r
1654 .hword (0x85<<8)|(1<<SFlag) \r
1655 .hword (0x86<<8)|(1<<SFlag) \r
1656 .hword (0x87<<8)|(1<<SFlag) |(1<<VFlag)\r
1657 .hword (0x88<<8)|(1<<SFlag) |(1<<VFlag)\r
1658 .hword (0x89<<8)|(1<<SFlag) \r
1659 .hword (0x90<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag)\r
1660 .hword (0x91<<8)|(1<<SFlag) |(1<<HFlag) \r
1661 .hword (0x92<<8)|(1<<SFlag) |(1<<HFlag) \r
1662 .hword (0x93<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag)\r
1663 .hword (0x94<<8)|(1<<SFlag) |(1<<HFlag) \r
1664 .hword (0x95<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag)\r
1665 .hword (0x90<<8)|(1<<SFlag) |(1<<VFlag)\r
1666 .hword (0x91<<8)|(1<<SFlag) \r
1667 .hword (0x92<<8)|(1<<SFlag) \r
1668 .hword (0x93<<8)|(1<<SFlag) |(1<<VFlag)\r
1669 .hword (0x94<<8)|(1<<SFlag) \r
1670 .hword (0x95<<8)|(1<<SFlag) |(1<<VFlag)\r
1671 .hword (0x96<<8)|(1<<SFlag) |(1<<VFlag)\r
1672 .hword (0x97<<8)|(1<<SFlag) \r
1673 .hword (0x98<<8)|(1<<SFlag) \r
1674 .hword (0x99<<8)|(1<<SFlag) |(1<<VFlag)\r
1675 .hword (0x00<<8) |(1<<ZFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1676 .hword (0x01<<8) |(1<<HFlag) |(1<<CFlag)\r
1677 .hword (0x02<<8) |(1<<HFlag) |(1<<CFlag)\r
1678 .hword (0x03<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1679 .hword (0x04<<8) |(1<<HFlag) |(1<<CFlag)\r
1680 .hword (0x05<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1681 .hword (0x00<<8) |(1<<ZFlag) |(1<<VFlag) |(1<<CFlag)\r
1682 .hword (0x01<<8) |(1<<CFlag)\r
1683 .hword (0x02<<8) |(1<<CFlag)\r
1684 .hword (0x03<<8) |(1<<VFlag) |(1<<CFlag)\r
1685 .hword (0x04<<8) |(1<<CFlag)\r
1686 .hword (0x05<<8) |(1<<VFlag) |(1<<CFlag)\r
1687 .hword (0x06<<8) |(1<<VFlag) |(1<<CFlag)\r
1688 .hword (0x07<<8) |(1<<CFlag)\r
1689 .hword (0x08<<8) |(1<<CFlag)\r
1690 .hword (0x09<<8) |(1<<VFlag) |(1<<CFlag)\r
1691 .hword (0x10<<8) |(1<<HFlag) |(1<<CFlag)\r
1692 .hword (0x11<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1693 .hword (0x12<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1694 .hword (0x13<<8) |(1<<HFlag) |(1<<CFlag)\r
1695 .hword (0x14<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1696 .hword (0x15<<8) |(1<<HFlag) |(1<<CFlag)\r
1697 .hword (0x10<<8) |(1<<CFlag)\r
1698 .hword (0x11<<8) |(1<<VFlag) |(1<<CFlag)\r
1699 .hword (0x12<<8) |(1<<VFlag) |(1<<CFlag)\r
1700 .hword (0x13<<8) |(1<<CFlag)\r
1701 .hword (0x14<<8) |(1<<VFlag) |(1<<CFlag)\r
1702 .hword (0x15<<8) |(1<<CFlag)\r
1703 .hword (0x16<<8) |(1<<CFlag)\r
1704 .hword (0x17<<8) |(1<<VFlag) |(1<<CFlag)\r
1705 .hword (0x18<<8) |(1<<VFlag) |(1<<CFlag)\r
1706 .hword (0x19<<8) |(1<<CFlag)\r
1707 .hword (0x20<<8) |(1<<HFlag) |(1<<CFlag)\r
1708 .hword (0x21<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1709 .hword (0x22<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1710 .hword (0x23<<8) |(1<<HFlag) |(1<<CFlag)\r
1711 .hword (0x24<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1712 .hword (0x25<<8) |(1<<HFlag) |(1<<CFlag)\r
1713 .hword (0x20<<8) |(1<<CFlag)\r
1714 .hword (0x21<<8) |(1<<VFlag) |(1<<CFlag)\r
1715 .hword (0x22<<8) |(1<<VFlag) |(1<<CFlag)\r
1716 .hword (0x23<<8) |(1<<CFlag)\r
1717 .hword (0x24<<8) |(1<<VFlag) |(1<<CFlag)\r
1718 .hword (0x25<<8) |(1<<CFlag)\r
1719 .hword (0x26<<8) |(1<<CFlag)\r
1720 .hword (0x27<<8) |(1<<VFlag) |(1<<CFlag)\r
1721 .hword (0x28<<8) |(1<<VFlag) |(1<<CFlag)\r
1722 .hword (0x29<<8) |(1<<CFlag)\r
1723 .hword (0x30<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1724 .hword (0x31<<8) |(1<<HFlag) |(1<<CFlag)\r
1725 .hword (0x32<<8) |(1<<HFlag) |(1<<CFlag)\r
1726 .hword (0x33<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1727 .hword (0x34<<8) |(1<<HFlag) |(1<<CFlag)\r
1728 .hword (0x35<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1729 .hword (0x30<<8) |(1<<VFlag) |(1<<CFlag)\r
1730 .hword (0x31<<8) |(1<<CFlag)\r
1731 .hword (0x32<<8) |(1<<CFlag)\r
1732 .hword (0x33<<8) |(1<<VFlag) |(1<<CFlag)\r
1733 .hword (0x34<<8) |(1<<CFlag)\r
1734 .hword (0x35<<8) |(1<<VFlag) |(1<<CFlag)\r
1735 .hword (0x36<<8) |(1<<VFlag) |(1<<CFlag)\r
1736 .hword (0x37<<8) |(1<<CFlag)\r
1737 .hword (0x38<<8) |(1<<CFlag)\r
1738 .hword (0x39<<8) |(1<<VFlag) |(1<<CFlag)\r
1739 .hword (0x40<<8) |(1<<HFlag) |(1<<CFlag)\r
1740 .hword (0x41<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1741 .hword (0x42<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1742 .hword (0x43<<8) |(1<<HFlag) |(1<<CFlag)\r
1743 .hword (0x44<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1744 .hword (0x45<<8) |(1<<HFlag) |(1<<CFlag)\r
1745 .hword (0x40<<8) |(1<<CFlag)\r
1746 .hword (0x41<<8) |(1<<VFlag) |(1<<CFlag)\r
1747 .hword (0x42<<8) |(1<<VFlag) |(1<<CFlag)\r
1748 .hword (0x43<<8) |(1<<CFlag)\r
1749 .hword (0x44<<8) |(1<<VFlag) |(1<<CFlag)\r
1750 .hword (0x45<<8) |(1<<CFlag)\r
1751 .hword (0x46<<8) |(1<<CFlag)\r
1752 .hword (0x47<<8) |(1<<VFlag) |(1<<CFlag)\r
1753 .hword (0x48<<8) |(1<<VFlag) |(1<<CFlag)\r
1754 .hword (0x49<<8) |(1<<CFlag)\r
1755 .hword (0x50<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1756 .hword (0x51<<8) |(1<<HFlag) |(1<<CFlag)\r
1757 .hword (0x52<<8) |(1<<HFlag) |(1<<CFlag)\r
1758 .hword (0x53<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1759 .hword (0x54<<8) |(1<<HFlag) |(1<<CFlag)\r
1760 .hword (0x55<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1761 .hword (0x50<<8) |(1<<VFlag) |(1<<CFlag)\r
1762 .hword (0x51<<8) |(1<<CFlag)\r
1763 .hword (0x52<<8) |(1<<CFlag)\r
1764 .hword (0x53<<8) |(1<<VFlag) |(1<<CFlag)\r
1765 .hword (0x54<<8) |(1<<CFlag)\r
1766 .hword (0x55<<8) |(1<<VFlag) |(1<<CFlag)\r
1767 .hword (0x56<<8) |(1<<VFlag) |(1<<CFlag)\r
1768 .hword (0x57<<8) |(1<<CFlag)\r
1769 .hword (0x58<<8) |(1<<CFlag)\r
1770 .hword (0x59<<8) |(1<<VFlag) |(1<<CFlag)\r
1771 .hword (0x60<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1772 .hword (0x61<<8) |(1<<HFlag) |(1<<CFlag)\r
1773 .hword (0x62<<8) |(1<<HFlag) |(1<<CFlag)\r
1774 .hword (0x63<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1775 .hword (0x64<<8) |(1<<HFlag) |(1<<CFlag)\r
1776 .hword (0x65<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1777 .hword (0x60<<8) |(1<<VFlag) |(1<<CFlag)\r
1778 .hword (0x61<<8) |(1<<CFlag)\r
1779 .hword (0x62<<8) |(1<<CFlag)\r
1780 .hword (0x63<<8) |(1<<VFlag) |(1<<CFlag)\r
1781 .hword (0x64<<8) |(1<<CFlag)\r
1782 .hword (0x65<<8) |(1<<VFlag) |(1<<CFlag)\r
1783 .hword (0x66<<8) |(1<<VFlag) |(1<<CFlag)\r
1784 .hword (0x67<<8) |(1<<CFlag)\r
1785 .hword (0x68<<8) |(1<<CFlag)\r
1786 .hword (0x69<<8) |(1<<VFlag) |(1<<CFlag)\r
1787 .hword (0x70<<8) |(1<<HFlag) |(1<<CFlag)\r
1788 .hword (0x71<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1789 .hword (0x72<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1790 .hword (0x73<<8) |(1<<HFlag) |(1<<CFlag)\r
1791 .hword (0x74<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1792 .hword (0x75<<8) |(1<<HFlag) |(1<<CFlag)\r
1793 .hword (0x70<<8) |(1<<CFlag)\r
1794 .hword (0x71<<8) |(1<<VFlag) |(1<<CFlag)\r
1795 .hword (0x72<<8) |(1<<VFlag) |(1<<CFlag)\r
1796 .hword (0x73<<8) |(1<<CFlag)\r
1797 .hword (0x74<<8) |(1<<VFlag) |(1<<CFlag)\r
1798 .hword (0x75<<8) |(1<<CFlag)\r
1799 .hword (0x76<<8) |(1<<CFlag)\r
1800 .hword (0x77<<8) |(1<<VFlag) |(1<<CFlag)\r
1801 .hword (0x78<<8) |(1<<VFlag) |(1<<CFlag)\r
1802 .hword (0x79<<8) |(1<<CFlag)\r
1803 .hword (0x80<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
1804 .hword (0x81<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1805 .hword (0x82<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1806 .hword (0x83<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
1807 .hword (0x84<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1808 .hword (0x85<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
1809 .hword (0x80<<8)|(1<<SFlag) |(1<<CFlag)\r
1810 .hword (0x81<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
1811 .hword (0x82<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
1812 .hword (0x83<<8)|(1<<SFlag) |(1<<CFlag)\r
1813 .hword (0x84<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
1814 .hword (0x85<<8)|(1<<SFlag) |(1<<CFlag)\r
1815 .hword (0x86<<8)|(1<<SFlag) |(1<<CFlag)\r
1816 .hword (0x87<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
1817 .hword (0x88<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
1818 .hword (0x89<<8)|(1<<SFlag) |(1<<CFlag)\r
1819 .hword (0x90<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1820 .hword (0x91<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
1821 .hword (0x92<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
1822 .hword (0x93<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1823 .hword (0x94<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
1824 .hword (0x95<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1825 .hword (0x90<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
1826 .hword (0x91<<8)|(1<<SFlag) |(1<<CFlag)\r
1827 .hword (0x92<<8)|(1<<SFlag) |(1<<CFlag)\r
1828 .hword (0x93<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
1829 .hword (0x94<<8)|(1<<SFlag) |(1<<CFlag)\r
1830 .hword (0x95<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
1831 .hword (0x96<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
1832 .hword (0x97<<8)|(1<<SFlag) |(1<<CFlag)\r
1833 .hword (0x98<<8)|(1<<SFlag) |(1<<CFlag)\r
1834 .hword (0x99<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
1835 .hword (0xA0<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1836 .hword (0xA1<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
1837 .hword (0xA2<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
1838 .hword (0xA3<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1839 .hword (0xA4<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
1840 .hword (0xA5<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1841 .hword (0xA0<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
1842 .hword (0xA1<<8)|(1<<SFlag) |(1<<CFlag)\r
1843 .hword (0xA2<<8)|(1<<SFlag) |(1<<CFlag)\r
1844 .hword (0xA3<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
1845 .hword (0xA4<<8)|(1<<SFlag) |(1<<CFlag)\r
1846 .hword (0xA5<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
1847 .hword (0xA6<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
1848 .hword (0xA7<<8)|(1<<SFlag) |(1<<CFlag)\r
1849 .hword (0xA8<<8)|(1<<SFlag) |(1<<CFlag)\r
1850 .hword (0xA9<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
1851 .hword (0xB0<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
1852 .hword (0xB1<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1853 .hword (0xB2<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1854 .hword (0xB3<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
1855 .hword (0xB4<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1856 .hword (0xB5<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
1857 .hword (0xB0<<8)|(1<<SFlag) |(1<<CFlag)\r
1858 .hword (0xB1<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
1859 .hword (0xB2<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
1860 .hword (0xB3<<8)|(1<<SFlag) |(1<<CFlag)\r
1861 .hword (0xB4<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
1862 .hword (0xB5<<8)|(1<<SFlag) |(1<<CFlag)\r
1863 .hword (0xB6<<8)|(1<<SFlag) |(1<<CFlag)\r
1864 .hword (0xB7<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
1865 .hword (0xB8<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
1866 .hword (0xB9<<8)|(1<<SFlag) |(1<<CFlag)\r
1867 .hword (0xC0<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1868 .hword (0xC1<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
1869 .hword (0xC2<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
1870 .hword (0xC3<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1871 .hword (0xC4<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
1872 .hword (0xC5<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1873 .hword (0xC0<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
1874 .hword (0xC1<<8)|(1<<SFlag) |(1<<CFlag)\r
1875 .hword (0xC2<<8)|(1<<SFlag) |(1<<CFlag)\r
1876 .hword (0xC3<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
1877 .hword (0xC4<<8)|(1<<SFlag) |(1<<CFlag)\r
1878 .hword (0xC5<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
1879 .hword (0xC6<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
1880 .hword (0xC7<<8)|(1<<SFlag) |(1<<CFlag)\r
1881 .hword (0xC8<<8)|(1<<SFlag) |(1<<CFlag)\r
1882 .hword (0xC9<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
1883 .hword (0xD0<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
1884 .hword (0xD1<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1885 .hword (0xD2<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1886 .hword (0xD3<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
1887 .hword (0xD4<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1888 .hword (0xD5<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
1889 .hword (0xD0<<8)|(1<<SFlag) |(1<<CFlag)\r
1890 .hword (0xD1<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
1891 .hword (0xD2<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
1892 .hword (0xD3<<8)|(1<<SFlag) |(1<<CFlag)\r
1893 .hword (0xD4<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
1894 .hword (0xD5<<8)|(1<<SFlag) |(1<<CFlag)\r
1895 .hword (0xD6<<8)|(1<<SFlag) |(1<<CFlag)\r
1896 .hword (0xD7<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
1897 .hword (0xD8<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
1898 .hword (0xD9<<8)|(1<<SFlag) |(1<<CFlag)\r
1899 .hword (0xE0<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
1900 .hword (0xE1<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1901 .hword (0xE2<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1902 .hword (0xE3<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
1903 .hword (0xE4<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1904 .hword (0xE5<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
1905 .hword (0xE0<<8)|(1<<SFlag) |(1<<CFlag)\r
1906 .hword (0xE1<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
1907 .hword (0xE2<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
1908 .hword (0xE3<<8)|(1<<SFlag) |(1<<CFlag)\r
1909 .hword (0xE4<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
1910 .hword (0xE5<<8)|(1<<SFlag) |(1<<CFlag)\r
1911 .hword (0xE6<<8)|(1<<SFlag) |(1<<CFlag)\r
1912 .hword (0xE7<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
1913 .hword (0xE8<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
1914 .hword (0xE9<<8)|(1<<SFlag) |(1<<CFlag)\r
1915 .hword (0xF0<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1916 .hword (0xF1<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
1917 .hword (0xF2<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
1918 .hword (0xF3<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1919 .hword (0xF4<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
1920 .hword (0xF5<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1921 .hword (0xF0<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
1922 .hword (0xF1<<8)|(1<<SFlag) |(1<<CFlag)\r
1923 .hword (0xF2<<8)|(1<<SFlag) |(1<<CFlag)\r
1924 .hword (0xF3<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
1925 .hword (0xF4<<8)|(1<<SFlag) |(1<<CFlag)\r
1926 .hword (0xF5<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
1927 .hword (0xF6<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
1928 .hword (0xF7<<8)|(1<<SFlag) |(1<<CFlag)\r
1929 .hword (0xF8<<8)|(1<<SFlag) |(1<<CFlag)\r
1930 .hword (0xF9<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
1931 .hword (0x00<<8) |(1<<ZFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1932 .hword (0x01<<8) |(1<<HFlag) |(1<<CFlag)\r
1933 .hword (0x02<<8) |(1<<HFlag) |(1<<CFlag)\r
1934 .hword (0x03<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1935 .hword (0x04<<8) |(1<<HFlag) |(1<<CFlag)\r
1936 .hword (0x05<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1937 .hword (0x00<<8) |(1<<ZFlag) |(1<<VFlag) |(1<<CFlag)\r
1938 .hword (0x01<<8) |(1<<CFlag)\r
1939 .hword (0x02<<8) |(1<<CFlag)\r
1940 .hword (0x03<<8) |(1<<VFlag) |(1<<CFlag)\r
1941 .hword (0x04<<8) |(1<<CFlag)\r
1942 .hword (0x05<<8) |(1<<VFlag) |(1<<CFlag)\r
1943 .hword (0x06<<8) |(1<<VFlag) |(1<<CFlag)\r
1944 .hword (0x07<<8) |(1<<CFlag)\r
1945 .hword (0x08<<8) |(1<<CFlag)\r
1946 .hword (0x09<<8) |(1<<VFlag) |(1<<CFlag)\r
1947 .hword (0x10<<8) |(1<<HFlag) |(1<<CFlag)\r
1948 .hword (0x11<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1949 .hword (0x12<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1950 .hword (0x13<<8) |(1<<HFlag) |(1<<CFlag)\r
1951 .hword (0x14<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1952 .hword (0x15<<8) |(1<<HFlag) |(1<<CFlag)\r
1953 .hword (0x10<<8) |(1<<CFlag)\r
1954 .hword (0x11<<8) |(1<<VFlag) |(1<<CFlag)\r
1955 .hword (0x12<<8) |(1<<VFlag) |(1<<CFlag)\r
1956 .hword (0x13<<8) |(1<<CFlag)\r
1957 .hword (0x14<<8) |(1<<VFlag) |(1<<CFlag)\r
1958 .hword (0x15<<8) |(1<<CFlag)\r
1959 .hword (0x16<<8) |(1<<CFlag)\r
1960 .hword (0x17<<8) |(1<<VFlag) |(1<<CFlag)\r
1961 .hword (0x18<<8) |(1<<VFlag) |(1<<CFlag)\r
1962 .hword (0x19<<8) |(1<<CFlag)\r
1963 .hword (0x20<<8) |(1<<HFlag) |(1<<CFlag)\r
1964 .hword (0x21<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1965 .hword (0x22<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1966 .hword (0x23<<8) |(1<<HFlag) |(1<<CFlag)\r
1967 .hword (0x24<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1968 .hword (0x25<<8) |(1<<HFlag) |(1<<CFlag)\r
1969 .hword (0x20<<8) |(1<<CFlag)\r
1970 .hword (0x21<<8) |(1<<VFlag) |(1<<CFlag)\r
1971 .hword (0x22<<8) |(1<<VFlag) |(1<<CFlag)\r
1972 .hword (0x23<<8) |(1<<CFlag)\r
1973 .hword (0x24<<8) |(1<<VFlag) |(1<<CFlag)\r
1974 .hword (0x25<<8) |(1<<CFlag)\r
1975 .hword (0x26<<8) |(1<<CFlag)\r
1976 .hword (0x27<<8) |(1<<VFlag) |(1<<CFlag)\r
1977 .hword (0x28<<8) |(1<<VFlag) |(1<<CFlag)\r
1978 .hword (0x29<<8) |(1<<CFlag)\r
1979 .hword (0x30<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1980 .hword (0x31<<8) |(1<<HFlag) |(1<<CFlag)\r
1981 .hword (0x32<<8) |(1<<HFlag) |(1<<CFlag)\r
1982 .hword (0x33<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1983 .hword (0x34<<8) |(1<<HFlag) |(1<<CFlag)\r
1984 .hword (0x35<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1985 .hword (0x30<<8) |(1<<VFlag) |(1<<CFlag)\r
1986 .hword (0x31<<8) |(1<<CFlag)\r
1987 .hword (0x32<<8) |(1<<CFlag)\r
1988 .hword (0x33<<8) |(1<<VFlag) |(1<<CFlag)\r
1989 .hword (0x34<<8) |(1<<CFlag)\r
1990 .hword (0x35<<8) |(1<<VFlag) |(1<<CFlag)\r
1991 .hword (0x36<<8) |(1<<VFlag) |(1<<CFlag)\r
1992 .hword (0x37<<8) |(1<<CFlag)\r
1993 .hword (0x38<<8) |(1<<CFlag)\r
1994 .hword (0x39<<8) |(1<<VFlag) |(1<<CFlag)\r
1995 .hword (0x40<<8) |(1<<HFlag) |(1<<CFlag)\r
1996 .hword (0x41<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1997 .hword (0x42<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1998 .hword (0x43<<8) |(1<<HFlag) |(1<<CFlag)\r
1999 .hword (0x44<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2000 .hword (0x45<<8) |(1<<HFlag) |(1<<CFlag)\r
2001 .hword (0x40<<8) |(1<<CFlag)\r
2002 .hword (0x41<<8) |(1<<VFlag) |(1<<CFlag)\r
2003 .hword (0x42<<8) |(1<<VFlag) |(1<<CFlag)\r
2004 .hword (0x43<<8) |(1<<CFlag)\r
2005 .hword (0x44<<8) |(1<<VFlag) |(1<<CFlag)\r
2006 .hword (0x45<<8) |(1<<CFlag)\r
2007 .hword (0x46<<8) |(1<<CFlag)\r
2008 .hword (0x47<<8) |(1<<VFlag) |(1<<CFlag)\r
2009 .hword (0x48<<8) |(1<<VFlag) |(1<<CFlag)\r
2010 .hword (0x49<<8) |(1<<CFlag)\r
2011 .hword (0x50<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2012 .hword (0x51<<8) |(1<<HFlag) |(1<<CFlag)\r
2013 .hword (0x52<<8) |(1<<HFlag) |(1<<CFlag)\r
2014 .hword (0x53<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2015 .hword (0x54<<8) |(1<<HFlag) |(1<<CFlag)\r
2016 .hword (0x55<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2017 .hword (0x50<<8) |(1<<VFlag) |(1<<CFlag)\r
2018 .hword (0x51<<8) |(1<<CFlag)\r
2019 .hword (0x52<<8) |(1<<CFlag)\r
2020 .hword (0x53<<8) |(1<<VFlag) |(1<<CFlag)\r
2021 .hword (0x54<<8) |(1<<CFlag)\r
2022 .hword (0x55<<8) |(1<<VFlag) |(1<<CFlag)\r
2023 .hword (0x56<<8) |(1<<VFlag) |(1<<CFlag)\r
2024 .hword (0x57<<8) |(1<<CFlag)\r
2025 .hword (0x58<<8) |(1<<CFlag)\r
2026 .hword (0x59<<8) |(1<<VFlag) |(1<<CFlag)\r
2027 .hword (0x60<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2028 .hword (0x61<<8) |(1<<HFlag) |(1<<CFlag)\r
2029 .hword (0x62<<8) |(1<<HFlag) |(1<<CFlag)\r
2030 .hword (0x63<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2031 .hword (0x64<<8) |(1<<HFlag) |(1<<CFlag)\r
2032 .hword (0x65<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2033 .hword (0x06<<8) |(1<<VFlag)\r
2034 .hword (0x07<<8) \r
2035 .hword (0x08<<8) \r
2036 .hword (0x09<<8) |(1<<VFlag)\r
2037 .hword (0x0A<<8) |(1<<VFlag)\r
2038 .hword (0x0B<<8) \r
2039 .hword (0x0C<<8) |(1<<VFlag)\r
2040 .hword (0x0D<<8) \r
2041 .hword (0x0E<<8) \r
2042 .hword (0x0F<<8) |(1<<VFlag)\r
2043 .hword (0x10<<8) |(1<<HFlag) \r
2044 .hword (0x11<<8) |(1<<HFlag) |(1<<VFlag)\r
2045 .hword (0x12<<8) |(1<<HFlag) |(1<<VFlag)\r
2046 .hword (0x13<<8) |(1<<HFlag) \r
2047 .hword (0x14<<8) |(1<<HFlag) |(1<<VFlag)\r
2048 .hword (0x15<<8) |(1<<HFlag) \r
2049 .hword (0x16<<8) \r
2050 .hword (0x17<<8) |(1<<VFlag)\r
2051 .hword (0x18<<8) |(1<<VFlag)\r
2052 .hword (0x19<<8) \r
2053 .hword (0x1A<<8) \r
2054 .hword (0x1B<<8) |(1<<VFlag)\r
2055 .hword (0x1C<<8) \r
2056 .hword (0x1D<<8) |(1<<VFlag)\r
2057 .hword (0x1E<<8) |(1<<VFlag)\r
2058 .hword (0x1F<<8) \r
2059 .hword (0x20<<8) |(1<<HFlag) \r
2060 .hword (0x21<<8) |(1<<HFlag) |(1<<VFlag)\r
2061 .hword (0x22<<8) |(1<<HFlag) |(1<<VFlag)\r
2062 .hword (0x23<<8) |(1<<HFlag) \r
2063 .hword (0x24<<8) |(1<<HFlag) |(1<<VFlag)\r
2064 .hword (0x25<<8) |(1<<HFlag) \r
2065 .hword (0x26<<8) \r
2066 .hword (0x27<<8) |(1<<VFlag)\r
2067 .hword (0x28<<8) |(1<<VFlag)\r
2068 .hword (0x29<<8) \r
2069 .hword (0x2A<<8) \r
2070 .hword (0x2B<<8) |(1<<VFlag)\r
2071 .hword (0x2C<<8) \r
2072 .hword (0x2D<<8) |(1<<VFlag)\r
2073 .hword (0x2E<<8) |(1<<VFlag)\r
2074 .hword (0x2F<<8) \r
2075 .hword (0x30<<8) |(1<<HFlag) |(1<<VFlag)\r
2076 .hword (0x31<<8) |(1<<HFlag) \r
2077 .hword (0x32<<8) |(1<<HFlag) \r
2078 .hword (0x33<<8) |(1<<HFlag) |(1<<VFlag)\r
2079 .hword (0x34<<8) |(1<<HFlag) \r
2080 .hword (0x35<<8) |(1<<HFlag) |(1<<VFlag)\r
2081 .hword (0x36<<8) |(1<<VFlag)\r
2082 .hword (0x37<<8) \r
2083 .hword (0x38<<8) \r
2084 .hword (0x39<<8) |(1<<VFlag)\r
2085 .hword (0x3A<<8) |(1<<VFlag)\r
2086 .hword (0x3B<<8) \r
2087 .hword (0x3C<<8) |(1<<VFlag)\r
2088 .hword (0x3D<<8) \r
2089 .hword (0x3E<<8) \r
2090 .hword (0x3F<<8) |(1<<VFlag)\r
2091 .hword (0x40<<8) |(1<<HFlag) \r
2092 .hword (0x41<<8) |(1<<HFlag) |(1<<VFlag)\r
2093 .hword (0x42<<8) |(1<<HFlag) |(1<<VFlag)\r
2094 .hword (0x43<<8) |(1<<HFlag) \r
2095 .hword (0x44<<8) |(1<<HFlag) |(1<<VFlag)\r
2096 .hword (0x45<<8) |(1<<HFlag) \r
2097 .hword (0x46<<8) \r
2098 .hword (0x47<<8) |(1<<VFlag)\r
2099 .hword (0x48<<8) |(1<<VFlag)\r
2100 .hword (0x49<<8) \r
2101 .hword (0x4A<<8) \r
2102 .hword (0x4B<<8) |(1<<VFlag)\r
2103 .hword (0x4C<<8) \r
2104 .hword (0x4D<<8) |(1<<VFlag)\r
2105 .hword (0x4E<<8) |(1<<VFlag)\r
2106 .hword (0x4F<<8) \r
2107 .hword (0x50<<8) |(1<<HFlag) |(1<<VFlag)\r
2108 .hword (0x51<<8) |(1<<HFlag) \r
2109 .hword (0x52<<8) |(1<<HFlag) \r
2110 .hword (0x53<<8) |(1<<HFlag) |(1<<VFlag)\r
2111 .hword (0x54<<8) |(1<<HFlag) \r
2112 .hword (0x55<<8) |(1<<HFlag) |(1<<VFlag)\r
2113 .hword (0x56<<8) |(1<<VFlag)\r
2114 .hword (0x57<<8) \r
2115 .hword (0x58<<8) \r
2116 .hword (0x59<<8) |(1<<VFlag)\r
2117 .hword (0x5A<<8) |(1<<VFlag)\r
2118 .hword (0x5B<<8) \r
2119 .hword (0x5C<<8) |(1<<VFlag)\r
2120 .hword (0x5D<<8) \r
2121 .hword (0x5E<<8) \r
2122 .hword (0x5F<<8) |(1<<VFlag)\r
2123 .hword (0x60<<8) |(1<<HFlag) |(1<<VFlag)\r
2124 .hword (0x61<<8) |(1<<HFlag) \r
2125 .hword (0x62<<8) |(1<<HFlag) \r
2126 .hword (0x63<<8) |(1<<HFlag) |(1<<VFlag)\r
2127 .hword (0x64<<8) |(1<<HFlag) \r
2128 .hword (0x65<<8) |(1<<HFlag) |(1<<VFlag)\r
2129 .hword (0x66<<8) |(1<<VFlag)\r
2130 .hword (0x67<<8) \r
2131 .hword (0x68<<8) \r
2132 .hword (0x69<<8) |(1<<VFlag)\r
2133 .hword (0x6A<<8) |(1<<VFlag)\r
2134 .hword (0x6B<<8) \r
2135 .hword (0x6C<<8) |(1<<VFlag)\r
2136 .hword (0x6D<<8) \r
2137 .hword (0x6E<<8) \r
2138 .hword (0x6F<<8) |(1<<VFlag)\r
2139 .hword (0x70<<8) |(1<<HFlag) \r
2140 .hword (0x71<<8) |(1<<HFlag) |(1<<VFlag)\r
2141 .hword (0x72<<8) |(1<<HFlag) |(1<<VFlag)\r
2142 .hword (0x73<<8) |(1<<HFlag) \r
2143 .hword (0x74<<8) |(1<<HFlag) |(1<<VFlag)\r
2144 .hword (0x75<<8) |(1<<HFlag) \r
2145 .hword (0x76<<8) \r
2146 .hword (0x77<<8) |(1<<VFlag)\r
2147 .hword (0x78<<8) |(1<<VFlag)\r
2148 .hword (0x79<<8) \r
2149 .hword (0x7A<<8) \r
2150 .hword (0x7B<<8) |(1<<VFlag)\r
2151 .hword (0x7C<<8) \r
2152 .hword (0x7D<<8) |(1<<VFlag)\r
2153 .hword (0x7E<<8) |(1<<VFlag)\r
2154 .hword (0x7F<<8) \r
2155 .hword (0x80<<8)|(1<<SFlag) |(1<<HFlag) \r
2156 .hword (0x81<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag)\r
2157 .hword (0x82<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag)\r
2158 .hword (0x83<<8)|(1<<SFlag) |(1<<HFlag) \r
2159 .hword (0x84<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag)\r
2160 .hword (0x85<<8)|(1<<SFlag) |(1<<HFlag) \r
2161 .hword (0x86<<8)|(1<<SFlag) \r
2162 .hword (0x87<<8)|(1<<SFlag) |(1<<VFlag)\r
2163 .hword (0x88<<8)|(1<<SFlag) |(1<<VFlag)\r
2164 .hword (0x89<<8)|(1<<SFlag) \r
2165 .hword (0x8A<<8)|(1<<SFlag) \r
2166 .hword (0x8B<<8)|(1<<SFlag) |(1<<VFlag)\r
2167 .hword (0x8C<<8)|(1<<SFlag) \r
2168 .hword (0x8D<<8)|(1<<SFlag) |(1<<VFlag)\r
2169 .hword (0x8E<<8)|(1<<SFlag) |(1<<VFlag)\r
2170 .hword (0x8F<<8)|(1<<SFlag) \r
2171 .hword (0x90<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag)\r
2172 .hword (0x91<<8)|(1<<SFlag) |(1<<HFlag) \r
2173 .hword (0x92<<8)|(1<<SFlag) |(1<<HFlag) \r
2174 .hword (0x93<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag)\r
2175 .hword (0x94<<8)|(1<<SFlag) |(1<<HFlag) \r
2176 .hword (0x95<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag)\r
2177 .hword (0x96<<8)|(1<<SFlag) |(1<<VFlag)\r
2178 .hword (0x97<<8)|(1<<SFlag) \r
2179 .hword (0x98<<8)|(1<<SFlag) \r
2180 .hword (0x99<<8)|(1<<SFlag) |(1<<VFlag)\r
2181 .hword (0x9A<<8)|(1<<SFlag) |(1<<VFlag)\r
2182 .hword (0x9B<<8)|(1<<SFlag) \r
2183 .hword (0x9C<<8)|(1<<SFlag) |(1<<VFlag)\r
2184 .hword (0x9D<<8)|(1<<SFlag) \r
2185 .hword (0x9E<<8)|(1<<SFlag) \r
2186 .hword (0x9F<<8)|(1<<SFlag) |(1<<VFlag)\r
2187 .hword (0x00<<8) |(1<<ZFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2188 .hword (0x01<<8) |(1<<HFlag) |(1<<CFlag)\r
2189 .hword (0x02<<8) |(1<<HFlag) |(1<<CFlag)\r
2190 .hword (0x03<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2191 .hword (0x04<<8) |(1<<HFlag) |(1<<CFlag)\r
2192 .hword (0x05<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2193 .hword (0x06<<8) |(1<<VFlag) |(1<<CFlag)\r
2194 .hword (0x07<<8) |(1<<CFlag)\r
2195 .hword (0x08<<8) |(1<<CFlag)\r
2196 .hword (0x09<<8) |(1<<VFlag) |(1<<CFlag)\r
2197 .hword (0x0A<<8) |(1<<VFlag) |(1<<CFlag)\r
2198 .hword (0x0B<<8) |(1<<CFlag)\r
2199 .hword (0x0C<<8) |(1<<VFlag) |(1<<CFlag)\r
2200 .hword (0x0D<<8) |(1<<CFlag)\r
2201 .hword (0x0E<<8) |(1<<CFlag)\r
2202 .hword (0x0F<<8) |(1<<VFlag) |(1<<CFlag)\r
2203 .hword (0x10<<8) |(1<<HFlag) |(1<<CFlag)\r
2204 .hword (0x11<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2205 .hword (0x12<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2206 .hword (0x13<<8) |(1<<HFlag) |(1<<CFlag)\r
2207 .hword (0x14<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2208 .hword (0x15<<8) |(1<<HFlag) |(1<<CFlag)\r
2209 .hword (0x16<<8) |(1<<CFlag)\r
2210 .hword (0x17<<8) |(1<<VFlag) |(1<<CFlag)\r
2211 .hword (0x18<<8) |(1<<VFlag) |(1<<CFlag)\r
2212 .hword (0x19<<8) |(1<<CFlag)\r
2213 .hword (0x1A<<8) |(1<<CFlag)\r
2214 .hword (0x1B<<8) |(1<<VFlag) |(1<<CFlag)\r
2215 .hword (0x1C<<8) |(1<<CFlag)\r
2216 .hword (0x1D<<8) |(1<<VFlag) |(1<<CFlag)\r
2217 .hword (0x1E<<8) |(1<<VFlag) |(1<<CFlag)\r
2218 .hword (0x1F<<8) |(1<<CFlag)\r
2219 .hword (0x20<<8) |(1<<HFlag) |(1<<CFlag)\r
2220 .hword (0x21<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2221 .hword (0x22<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2222 .hword (0x23<<8) |(1<<HFlag) |(1<<CFlag)\r
2223 .hword (0x24<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2224 .hword (0x25<<8) |(1<<HFlag) |(1<<CFlag)\r
2225 .hword (0x26<<8) |(1<<CFlag)\r
2226 .hword (0x27<<8) |(1<<VFlag) |(1<<CFlag)\r
2227 .hword (0x28<<8) |(1<<VFlag) |(1<<CFlag)\r
2228 .hword (0x29<<8) |(1<<CFlag)\r
2229 .hword (0x2A<<8) |(1<<CFlag)\r
2230 .hword (0x2B<<8) |(1<<VFlag) |(1<<CFlag)\r
2231 .hword (0x2C<<8) |(1<<CFlag)\r
2232 .hword (0x2D<<8) |(1<<VFlag) |(1<<CFlag)\r
2233 .hword (0x2E<<8) |(1<<VFlag) |(1<<CFlag)\r
2234 .hword (0x2F<<8) |(1<<CFlag)\r
2235 .hword (0x30<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2236 .hword (0x31<<8) |(1<<HFlag) |(1<<CFlag)\r
2237 .hword (0x32<<8) |(1<<HFlag) |(1<<CFlag)\r
2238 .hword (0x33<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2239 .hword (0x34<<8) |(1<<HFlag) |(1<<CFlag)\r
2240 .hword (0x35<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2241 .hword (0x36<<8) |(1<<VFlag) |(1<<CFlag)\r
2242 .hword (0x37<<8) |(1<<CFlag)\r
2243 .hword (0x38<<8) |(1<<CFlag)\r
2244 .hword (0x39<<8) |(1<<VFlag) |(1<<CFlag)\r
2245 .hword (0x3A<<8) |(1<<VFlag) |(1<<CFlag)\r
2246 .hword (0x3B<<8) |(1<<CFlag)\r
2247 .hword (0x3C<<8) |(1<<VFlag) |(1<<CFlag)\r
2248 .hword (0x3D<<8) |(1<<CFlag)\r
2249 .hword (0x3E<<8) |(1<<CFlag)\r
2250 .hword (0x3F<<8) |(1<<VFlag) |(1<<CFlag)\r
2251 .hword (0x40<<8) |(1<<HFlag) |(1<<CFlag)\r
2252 .hword (0x41<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2253 .hword (0x42<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2254 .hword (0x43<<8) |(1<<HFlag) |(1<<CFlag)\r
2255 .hword (0x44<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2256 .hword (0x45<<8) |(1<<HFlag) |(1<<CFlag)\r
2257 .hword (0x46<<8) |(1<<CFlag)\r
2258 .hword (0x47<<8) |(1<<VFlag) |(1<<CFlag)\r
2259 .hword (0x48<<8) |(1<<VFlag) |(1<<CFlag)\r
2260 .hword (0x49<<8) |(1<<CFlag)\r
2261 .hword (0x4A<<8) |(1<<CFlag)\r
2262 .hword (0x4B<<8) |(1<<VFlag) |(1<<CFlag)\r
2263 .hword (0x4C<<8) |(1<<CFlag)\r
2264 .hword (0x4D<<8) |(1<<VFlag) |(1<<CFlag)\r
2265 .hword (0x4E<<8) |(1<<VFlag) |(1<<CFlag)\r
2266 .hword (0x4F<<8) |(1<<CFlag)\r
2267 .hword (0x50<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2268 .hword (0x51<<8) |(1<<HFlag) |(1<<CFlag)\r
2269 .hword (0x52<<8) |(1<<HFlag) |(1<<CFlag)\r
2270 .hword (0x53<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2271 .hword (0x54<<8) |(1<<HFlag) |(1<<CFlag)\r
2272 .hword (0x55<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2273 .hword (0x56<<8) |(1<<VFlag) |(1<<CFlag)\r
2274 .hword (0x57<<8) |(1<<CFlag)\r
2275 .hword (0x58<<8) |(1<<CFlag)\r
2276 .hword (0x59<<8) |(1<<VFlag) |(1<<CFlag)\r
2277 .hword (0x5A<<8) |(1<<VFlag) |(1<<CFlag)\r
2278 .hword (0x5B<<8) |(1<<CFlag)\r
2279 .hword (0x5C<<8) |(1<<VFlag) |(1<<CFlag)\r
2280 .hword (0x5D<<8) |(1<<CFlag)\r
2281 .hword (0x5E<<8) |(1<<CFlag)\r
2282 .hword (0x5F<<8) |(1<<VFlag) |(1<<CFlag)\r
2283 .hword (0x60<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2284 .hword (0x61<<8) |(1<<HFlag) |(1<<CFlag)\r
2285 .hword (0x62<<8) |(1<<HFlag) |(1<<CFlag)\r
2286 .hword (0x63<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2287 .hword (0x64<<8) |(1<<HFlag) |(1<<CFlag)\r
2288 .hword (0x65<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2289 .hword (0x66<<8) |(1<<VFlag) |(1<<CFlag)\r
2290 .hword (0x67<<8) |(1<<CFlag)\r
2291 .hword (0x68<<8) |(1<<CFlag)\r
2292 .hword (0x69<<8) |(1<<VFlag) |(1<<CFlag)\r
2293 .hword (0x6A<<8) |(1<<VFlag) |(1<<CFlag)\r
2294 .hword (0x6B<<8) |(1<<CFlag)\r
2295 .hword (0x6C<<8) |(1<<VFlag) |(1<<CFlag)\r
2296 .hword (0x6D<<8) |(1<<CFlag)\r
2297 .hword (0x6E<<8) |(1<<CFlag)\r
2298 .hword (0x6F<<8) |(1<<VFlag) |(1<<CFlag)\r
2299 .hword (0x70<<8) |(1<<HFlag) |(1<<CFlag)\r
2300 .hword (0x71<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2301 .hword (0x72<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2302 .hword (0x73<<8) |(1<<HFlag) |(1<<CFlag)\r
2303 .hword (0x74<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2304 .hword (0x75<<8) |(1<<HFlag) |(1<<CFlag)\r
2305 .hword (0x76<<8) |(1<<CFlag)\r
2306 .hword (0x77<<8) |(1<<VFlag) |(1<<CFlag)\r
2307 .hword (0x78<<8) |(1<<VFlag) |(1<<CFlag)\r
2308 .hword (0x79<<8) |(1<<CFlag)\r
2309 .hword (0x7A<<8) |(1<<CFlag)\r
2310 .hword (0x7B<<8) |(1<<VFlag) |(1<<CFlag)\r
2311 .hword (0x7C<<8) |(1<<CFlag)\r
2312 .hword (0x7D<<8) |(1<<VFlag) |(1<<CFlag)\r
2313 .hword (0x7E<<8) |(1<<VFlag) |(1<<CFlag)\r
2314 .hword (0x7F<<8) |(1<<CFlag)\r
2315 .hword (0x80<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
2316 .hword (0x81<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2317 .hword (0x82<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2318 .hword (0x83<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
2319 .hword (0x84<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2320 .hword (0x85<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
2321 .hword (0x86<<8)|(1<<SFlag) |(1<<CFlag)\r
2322 .hword (0x87<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
2323 .hword (0x88<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
2324 .hword (0x89<<8)|(1<<SFlag) |(1<<CFlag)\r
2325 .hword (0x8A<<8)|(1<<SFlag) |(1<<CFlag)\r
2326 .hword (0x8B<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
2327 .hword (0x8C<<8)|(1<<SFlag) |(1<<CFlag)\r
2328 .hword (0x8D<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
2329 .hword (0x8E<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
2330 .hword (0x8F<<8)|(1<<SFlag) |(1<<CFlag)\r
2331 .hword (0x90<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2332 .hword (0x91<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
2333 .hword (0x92<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
2334 .hword (0x93<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2335 .hword (0x94<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
2336 .hword (0x95<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2337 .hword (0x96<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
2338 .hword (0x97<<8)|(1<<SFlag) |(1<<CFlag)\r
2339 .hword (0x98<<8)|(1<<SFlag) |(1<<CFlag)\r
2340 .hword (0x99<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
2341 .hword (0x9A<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
2342 .hword (0x9B<<8)|(1<<SFlag) |(1<<CFlag)\r
2343 .hword (0x9C<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
2344 .hword (0x9D<<8)|(1<<SFlag) |(1<<CFlag)\r
2345 .hword (0x9E<<8)|(1<<SFlag) |(1<<CFlag)\r
2346 .hword (0x9F<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
2347 .hword (0xA0<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2348 .hword (0xA1<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
2349 .hword (0xA2<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
2350 .hword (0xA3<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2351 .hword (0xA4<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
2352 .hword (0xA5<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2353 .hword (0xA6<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
2354 .hword (0xA7<<8)|(1<<SFlag) |(1<<CFlag)\r
2355 .hword (0xA8<<8)|(1<<SFlag) |(1<<CFlag)\r
2356 .hword (0xA9<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
2357 .hword (0xAA<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
2358 .hword (0xAB<<8)|(1<<SFlag) |(1<<CFlag)\r
2359 .hword (0xAC<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
2360 .hword (0xAD<<8)|(1<<SFlag) |(1<<CFlag)\r
2361 .hword (0xAE<<8)|(1<<SFlag) |(1<<CFlag)\r
2362 .hword (0xAF<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
2363 .hword (0xB0<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
2364 .hword (0xB1<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2365 .hword (0xB2<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2366 .hword (0xB3<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
2367 .hword (0xB4<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2368 .hword (0xB5<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
2369 .hword (0xB6<<8)|(1<<SFlag) |(1<<CFlag)\r
2370 .hword (0xB7<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
2371 .hword (0xB8<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
2372 .hword (0xB9<<8)|(1<<SFlag) |(1<<CFlag)\r
2373 .hword (0xBA<<8)|(1<<SFlag) |(1<<CFlag)\r
2374 .hword (0xBB<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
2375 .hword (0xBC<<8)|(1<<SFlag) |(1<<CFlag)\r
2376 .hword (0xBD<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
2377 .hword (0xBE<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
2378 .hword (0xBF<<8)|(1<<SFlag) |(1<<CFlag)\r
2379 .hword (0xC0<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2380 .hword (0xC1<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
2381 .hword (0xC2<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
2382 .hword (0xC3<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2383 .hword (0xC4<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
2384 .hword (0xC5<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2385 .hword (0xC6<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
2386 .hword (0xC7<<8)|(1<<SFlag) |(1<<CFlag)\r
2387 .hword (0xC8<<8)|(1<<SFlag) |(1<<CFlag)\r
2388 .hword (0xC9<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
2389 .hword (0xCA<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
2390 .hword (0xCB<<8)|(1<<SFlag) |(1<<CFlag)\r
2391 .hword (0xCC<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
2392 .hword (0xCD<<8)|(1<<SFlag) |(1<<CFlag)\r
2393 .hword (0xCE<<8)|(1<<SFlag) |(1<<CFlag)\r
2394 .hword (0xCF<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
2395 .hword (0xD0<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
2396 .hword (0xD1<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2397 .hword (0xD2<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2398 .hword (0xD3<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
2399 .hword (0xD4<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2400 .hword (0xD5<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
2401 .hword (0xD6<<8)|(1<<SFlag) |(1<<CFlag)\r
2402 .hword (0xD7<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
2403 .hword (0xD8<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
2404 .hword (0xD9<<8)|(1<<SFlag) |(1<<CFlag)\r
2405 .hword (0xDA<<8)|(1<<SFlag) |(1<<CFlag)\r
2406 .hword (0xDB<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
2407 .hword (0xDC<<8)|(1<<SFlag) |(1<<CFlag)\r
2408 .hword (0xDD<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
2409 .hword (0xDE<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
2410 .hword (0xDF<<8)|(1<<SFlag) |(1<<CFlag)\r
2411 .hword (0xE0<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
2412 .hword (0xE1<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2413 .hword (0xE2<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2414 .hword (0xE3<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
2415 .hword (0xE4<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2416 .hword (0xE5<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
2417 .hword (0xE6<<8)|(1<<SFlag) |(1<<CFlag)\r
2418 .hword (0xE7<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
2419 .hword (0xE8<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
2420 .hword (0xE9<<8)|(1<<SFlag) |(1<<CFlag)\r
2421 .hword (0xEA<<8)|(1<<SFlag) |(1<<CFlag)\r
2422 .hword (0xEB<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
2423 .hword (0xEC<<8)|(1<<SFlag) |(1<<CFlag)\r
2424 .hword (0xED<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
2425 .hword (0xEE<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
2426 .hword (0xEF<<8)|(1<<SFlag) |(1<<CFlag)\r
2427 .hword (0xF0<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2428 .hword (0xF1<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
2429 .hword (0xF2<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
2430 .hword (0xF3<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2431 .hword (0xF4<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
2432 .hword (0xF5<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2433 .hword (0xF6<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
2434 .hword (0xF7<<8)|(1<<SFlag) |(1<<CFlag)\r
2435 .hword (0xF8<<8)|(1<<SFlag) |(1<<CFlag)\r
2436 .hword (0xF9<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
2437 .hword (0xFA<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
2438 .hword (0xFB<<8)|(1<<SFlag) |(1<<CFlag)\r
2439 .hword (0xFC<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
2440 .hword (0xFD<<8)|(1<<SFlag) |(1<<CFlag)\r
2441 .hword (0xFE<<8)|(1<<SFlag) |(1<<CFlag)\r
2442 .hword (0xFF<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
2443 .hword (0x00<<8) |(1<<ZFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2444 .hword (0x01<<8) |(1<<HFlag) |(1<<CFlag)\r
2445 .hword (0x02<<8) |(1<<HFlag) |(1<<CFlag)\r
2446 .hword (0x03<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2447 .hword (0x04<<8) |(1<<HFlag) |(1<<CFlag)\r
2448 .hword (0x05<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2449 .hword (0x06<<8) |(1<<VFlag) |(1<<CFlag)\r
2450 .hword (0x07<<8) |(1<<CFlag)\r
2451 .hword (0x08<<8) |(1<<CFlag)\r
2452 .hword (0x09<<8) |(1<<VFlag) |(1<<CFlag)\r
2453 .hword (0x0A<<8) |(1<<VFlag) |(1<<CFlag)\r
2454 .hword (0x0B<<8) |(1<<CFlag)\r
2455 .hword (0x0C<<8) |(1<<VFlag) |(1<<CFlag)\r
2456 .hword (0x0D<<8) |(1<<CFlag)\r
2457 .hword (0x0E<<8) |(1<<CFlag)\r
2458 .hword (0x0F<<8) |(1<<VFlag) |(1<<CFlag)\r
2459 .hword (0x10<<8) |(1<<HFlag) |(1<<CFlag)\r
2460 .hword (0x11<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2461 .hword (0x12<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2462 .hword (0x13<<8) |(1<<HFlag) |(1<<CFlag)\r
2463 .hword (0x14<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2464 .hword (0x15<<8) |(1<<HFlag) |(1<<CFlag)\r
2465 .hword (0x16<<8) |(1<<CFlag)\r
2466 .hword (0x17<<8) |(1<<VFlag) |(1<<CFlag)\r
2467 .hword (0x18<<8) |(1<<VFlag) |(1<<CFlag)\r
2468 .hword (0x19<<8) |(1<<CFlag)\r
2469 .hword (0x1A<<8) |(1<<CFlag)\r
2470 .hword (0x1B<<8) |(1<<VFlag) |(1<<CFlag)\r
2471 .hword (0x1C<<8) |(1<<CFlag)\r
2472 .hword (0x1D<<8) |(1<<VFlag) |(1<<CFlag)\r
2473 .hword (0x1E<<8) |(1<<VFlag) |(1<<CFlag)\r
2474 .hword (0x1F<<8) |(1<<CFlag)\r
2475 .hword (0x20<<8) |(1<<HFlag) |(1<<CFlag)\r
2476 .hword (0x21<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2477 .hword (0x22<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2478 .hword (0x23<<8) |(1<<HFlag) |(1<<CFlag)\r
2479 .hword (0x24<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2480 .hword (0x25<<8) |(1<<HFlag) |(1<<CFlag)\r
2481 .hword (0x26<<8) |(1<<CFlag)\r
2482 .hword (0x27<<8) |(1<<VFlag) |(1<<CFlag)\r
2483 .hword (0x28<<8) |(1<<VFlag) |(1<<CFlag)\r
2484 .hword (0x29<<8) |(1<<CFlag)\r
2485 .hword (0x2A<<8) |(1<<CFlag)\r
2486 .hword (0x2B<<8) |(1<<VFlag) |(1<<CFlag)\r
2487 .hword (0x2C<<8) |(1<<CFlag)\r
2488 .hword (0x2D<<8) |(1<<VFlag) |(1<<CFlag)\r
2489 .hword (0x2E<<8) |(1<<VFlag) |(1<<CFlag)\r
2490 .hword (0x2F<<8) |(1<<CFlag)\r
2491 .hword (0x30<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2492 .hword (0x31<<8) |(1<<HFlag) |(1<<CFlag)\r
2493 .hword (0x32<<8) |(1<<HFlag) |(1<<CFlag)\r
2494 .hword (0x33<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2495 .hword (0x34<<8) |(1<<HFlag) |(1<<CFlag)\r
2496 .hword (0x35<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2497 .hword (0x36<<8) |(1<<VFlag) |(1<<CFlag)\r
2498 .hword (0x37<<8) |(1<<CFlag)\r
2499 .hword (0x38<<8) |(1<<CFlag)\r
2500 .hword (0x39<<8) |(1<<VFlag) |(1<<CFlag)\r
2501 .hword (0x3A<<8) |(1<<VFlag) |(1<<CFlag)\r
2502 .hword (0x3B<<8) |(1<<CFlag)\r
2503 .hword (0x3C<<8) |(1<<VFlag) |(1<<CFlag)\r
2504 .hword (0x3D<<8) |(1<<CFlag)\r
2505 .hword (0x3E<<8) |(1<<CFlag)\r
2506 .hword (0x3F<<8) |(1<<VFlag) |(1<<CFlag)\r
2507 .hword (0x40<<8) |(1<<HFlag) |(1<<CFlag)\r
2508 .hword (0x41<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2509 .hword (0x42<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2510 .hword (0x43<<8) |(1<<HFlag) |(1<<CFlag)\r
2511 .hword (0x44<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2512 .hword (0x45<<8) |(1<<HFlag) |(1<<CFlag)\r
2513 .hword (0x46<<8) |(1<<CFlag)\r
2514 .hword (0x47<<8) |(1<<VFlag) |(1<<CFlag)\r
2515 .hword (0x48<<8) |(1<<VFlag) |(1<<CFlag)\r
2516 .hword (0x49<<8) |(1<<CFlag)\r
2517 .hword (0x4A<<8) |(1<<CFlag)\r
2518 .hword (0x4B<<8) |(1<<VFlag) |(1<<CFlag)\r
2519 .hword (0x4C<<8) |(1<<CFlag)\r
2520 .hword (0x4D<<8) |(1<<VFlag) |(1<<CFlag)\r
2521 .hword (0x4E<<8) |(1<<VFlag) |(1<<CFlag)\r
2522 .hword (0x4F<<8) |(1<<CFlag)\r
2523 .hword (0x50<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2524 .hword (0x51<<8) |(1<<HFlag) |(1<<CFlag)\r
2525 .hword (0x52<<8) |(1<<HFlag) |(1<<CFlag)\r
2526 .hword (0x53<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2527 .hword (0x54<<8) |(1<<HFlag) |(1<<CFlag)\r
2528 .hword (0x55<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2529 .hword (0x56<<8) |(1<<VFlag) |(1<<CFlag)\r
2530 .hword (0x57<<8) |(1<<CFlag)\r
2531 .hword (0x58<<8) |(1<<CFlag)\r
2532 .hword (0x59<<8) |(1<<VFlag) |(1<<CFlag)\r
2533 .hword (0x5A<<8) |(1<<VFlag) |(1<<CFlag)\r
2534 .hword (0x5B<<8) |(1<<CFlag)\r
2535 .hword (0x5C<<8) |(1<<VFlag) |(1<<CFlag)\r
2536 .hword (0x5D<<8) |(1<<CFlag)\r
2537 .hword (0x5E<<8) |(1<<CFlag)\r
2538 .hword (0x5F<<8) |(1<<VFlag) |(1<<CFlag)\r
2539 .hword (0x60<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2540 .hword (0x61<<8) |(1<<HFlag) |(1<<CFlag)\r
2541 .hword (0x62<<8) |(1<<HFlag) |(1<<CFlag)\r
2542 .hword (0x63<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2543 .hword (0x64<<8) |(1<<HFlag) |(1<<CFlag)\r
2544 .hword (0x65<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2545 .hword (0x00<<8) |(1<<ZFlag) |(1<<VFlag)|(1<<NFlag) \r
2546 .hword (0x01<<8) |(1<<NFlag) \r
2547 .hword (0x02<<8) |(1<<NFlag) \r
2548 .hword (0x03<<8) |(1<<VFlag)|(1<<NFlag) \r
2549 .hword (0x04<<8) |(1<<NFlag) \r
2550 .hword (0x05<<8) |(1<<VFlag)|(1<<NFlag) \r
2551 .hword (0x06<<8) |(1<<VFlag)|(1<<NFlag) \r
2552 .hword (0x07<<8) |(1<<NFlag) \r
2553 .hword (0x08<<8) |(1<<NFlag) \r
2554 .hword (0x09<<8) |(1<<VFlag)|(1<<NFlag) \r
2555 .hword (0x04<<8) |(1<<NFlag) \r
2556 .hword (0x05<<8) |(1<<VFlag)|(1<<NFlag) \r
2557 .hword (0x06<<8) |(1<<VFlag)|(1<<NFlag) \r
2558 .hword (0x07<<8) |(1<<NFlag) \r
2559 .hword (0x08<<8) |(1<<NFlag) \r
2560 .hword (0x09<<8) |(1<<VFlag)|(1<<NFlag) \r
2561 .hword (0x10<<8) |(1<<NFlag) \r
2562 .hword (0x11<<8) |(1<<VFlag)|(1<<NFlag) \r
2563 .hword (0x12<<8) |(1<<VFlag)|(1<<NFlag) \r
2564 .hword (0x13<<8) |(1<<NFlag) \r
2565 .hword (0x14<<8) |(1<<VFlag)|(1<<NFlag) \r
2566 .hword (0x15<<8) |(1<<NFlag) \r
2567 .hword (0x16<<8) |(1<<NFlag) \r
2568 .hword (0x17<<8) |(1<<VFlag)|(1<<NFlag) \r
2569 .hword (0x18<<8) |(1<<VFlag)|(1<<NFlag) \r
2570 .hword (0x19<<8) |(1<<NFlag) \r
2571 .hword (0x14<<8) |(1<<VFlag)|(1<<NFlag) \r
2572 .hword (0x15<<8) |(1<<NFlag) \r
2573 .hword (0x16<<8) |(1<<NFlag) \r
2574 .hword (0x17<<8) |(1<<VFlag)|(1<<NFlag) \r
2575 .hword (0x18<<8) |(1<<VFlag)|(1<<NFlag) \r
2576 .hword (0x19<<8) |(1<<NFlag) \r
2577 .hword (0x20<<8) |(1<<NFlag) \r
2578 .hword (0x21<<8) |(1<<VFlag)|(1<<NFlag) \r
2579 .hword (0x22<<8) |(1<<VFlag)|(1<<NFlag) \r
2580 .hword (0x23<<8) |(1<<NFlag) \r
2581 .hword (0x24<<8) |(1<<VFlag)|(1<<NFlag) \r
2582 .hword (0x25<<8) |(1<<NFlag) \r
2583 .hword (0x26<<8) |(1<<NFlag) \r
2584 .hword (0x27<<8) |(1<<VFlag)|(1<<NFlag) \r
2585 .hword (0x28<<8) |(1<<VFlag)|(1<<NFlag) \r
2586 .hword (0x29<<8) |(1<<NFlag) \r
2587 .hword (0x24<<8) |(1<<VFlag)|(1<<NFlag) \r
2588 .hword (0x25<<8) |(1<<NFlag) \r
2589 .hword (0x26<<8) |(1<<NFlag) \r
2590 .hword (0x27<<8) |(1<<VFlag)|(1<<NFlag) \r
2591 .hword (0x28<<8) |(1<<VFlag)|(1<<NFlag) \r
2592 .hword (0x29<<8) |(1<<NFlag) \r
2593 .hword (0x30<<8) |(1<<VFlag)|(1<<NFlag) \r
2594 .hword (0x31<<8) |(1<<NFlag) \r
2595 .hword (0x32<<8) |(1<<NFlag) \r
2596 .hword (0x33<<8) |(1<<VFlag)|(1<<NFlag) \r
2597 .hword (0x34<<8) |(1<<NFlag) \r
2598 .hword (0x35<<8) |(1<<VFlag)|(1<<NFlag) \r
2599 .hword (0x36<<8) |(1<<VFlag)|(1<<NFlag) \r
2600 .hword (0x37<<8) |(1<<NFlag) \r
2601 .hword (0x38<<8) |(1<<NFlag) \r
2602 .hword (0x39<<8) |(1<<VFlag)|(1<<NFlag) \r
2603 .hword (0x34<<8) |(1<<NFlag) \r
2604 .hword (0x35<<8) |(1<<VFlag)|(1<<NFlag) \r
2605 .hword (0x36<<8) |(1<<VFlag)|(1<<NFlag) \r
2606 .hword (0x37<<8) |(1<<NFlag) \r
2607 .hword (0x38<<8) |(1<<NFlag) \r
2608 .hword (0x39<<8) |(1<<VFlag)|(1<<NFlag) \r
2609 .hword (0x40<<8) |(1<<NFlag) \r
2610 .hword (0x41<<8) |(1<<VFlag)|(1<<NFlag) \r
2611 .hword (0x42<<8) |(1<<VFlag)|(1<<NFlag) \r
2612 .hword (0x43<<8) |(1<<NFlag) \r
2613 .hword (0x44<<8) |(1<<VFlag)|(1<<NFlag) \r
2614 .hword (0x45<<8) |(1<<NFlag) \r
2615 .hword (0x46<<8) |(1<<NFlag) \r
2616 .hword (0x47<<8) |(1<<VFlag)|(1<<NFlag) \r
2617 .hword (0x48<<8) |(1<<VFlag)|(1<<NFlag) \r
2618 .hword (0x49<<8) |(1<<NFlag) \r
2619 .hword (0x44<<8) |(1<<VFlag)|(1<<NFlag) \r
2620 .hword (0x45<<8) |(1<<NFlag) \r
2621 .hword (0x46<<8) |(1<<NFlag) \r
2622 .hword (0x47<<8) |(1<<VFlag)|(1<<NFlag) \r
2623 .hword (0x48<<8) |(1<<VFlag)|(1<<NFlag) \r
2624 .hword (0x49<<8) |(1<<NFlag) \r
2625 .hword (0x50<<8) |(1<<VFlag)|(1<<NFlag) \r
2626 .hword (0x51<<8) |(1<<NFlag) \r
2627 .hword (0x52<<8) |(1<<NFlag) \r
2628 .hword (0x53<<8) |(1<<VFlag)|(1<<NFlag) \r
2629 .hword (0x54<<8) |(1<<NFlag) \r
2630 .hword (0x55<<8) |(1<<VFlag)|(1<<NFlag) \r
2631 .hword (0x56<<8) |(1<<VFlag)|(1<<NFlag) \r
2632 .hword (0x57<<8) |(1<<NFlag) \r
2633 .hword (0x58<<8) |(1<<NFlag) \r
2634 .hword (0x59<<8) |(1<<VFlag)|(1<<NFlag) \r
2635 .hword (0x54<<8) |(1<<NFlag) \r
2636 .hword (0x55<<8) |(1<<VFlag)|(1<<NFlag) \r
2637 .hword (0x56<<8) |(1<<VFlag)|(1<<NFlag) \r
2638 .hword (0x57<<8) |(1<<NFlag) \r
2639 .hword (0x58<<8) |(1<<NFlag) \r
2640 .hword (0x59<<8) |(1<<VFlag)|(1<<NFlag) \r
2641 .hword (0x60<<8) |(1<<VFlag)|(1<<NFlag) \r
2642 .hword (0x61<<8) |(1<<NFlag) \r
2643 .hword (0x62<<8) |(1<<NFlag) \r
2644 .hword (0x63<<8) |(1<<VFlag)|(1<<NFlag) \r
2645 .hword (0x64<<8) |(1<<NFlag) \r
2646 .hword (0x65<<8) |(1<<VFlag)|(1<<NFlag) \r
2647 .hword (0x66<<8) |(1<<VFlag)|(1<<NFlag) \r
2648 .hword (0x67<<8) |(1<<NFlag) \r
2649 .hword (0x68<<8) |(1<<NFlag) \r
2650 .hword (0x69<<8) |(1<<VFlag)|(1<<NFlag) \r
2651 .hword (0x64<<8) |(1<<NFlag) \r
2652 .hword (0x65<<8) |(1<<VFlag)|(1<<NFlag) \r
2653 .hword (0x66<<8) |(1<<VFlag)|(1<<NFlag) \r
2654 .hword (0x67<<8) |(1<<NFlag) \r
2655 .hword (0x68<<8) |(1<<NFlag) \r
2656 .hword (0x69<<8) |(1<<VFlag)|(1<<NFlag) \r
2657 .hword (0x70<<8) |(1<<NFlag) \r
2658 .hword (0x71<<8) |(1<<VFlag)|(1<<NFlag) \r
2659 .hword (0x72<<8) |(1<<VFlag)|(1<<NFlag) \r
2660 .hword (0x73<<8) |(1<<NFlag) \r
2661 .hword (0x74<<8) |(1<<VFlag)|(1<<NFlag) \r
2662 .hword (0x75<<8) |(1<<NFlag) \r
2663 .hword (0x76<<8) |(1<<NFlag) \r
2664 .hword (0x77<<8) |(1<<VFlag)|(1<<NFlag) \r
2665 .hword (0x78<<8) |(1<<VFlag)|(1<<NFlag) \r
2666 .hword (0x79<<8) |(1<<NFlag) \r
2667 .hword (0x74<<8) |(1<<VFlag)|(1<<NFlag) \r
2668 .hword (0x75<<8) |(1<<NFlag) \r
2669 .hword (0x76<<8) |(1<<NFlag) \r
2670 .hword (0x77<<8) |(1<<VFlag)|(1<<NFlag) \r
2671 .hword (0x78<<8) |(1<<VFlag)|(1<<NFlag) \r
2672 .hword (0x79<<8) |(1<<NFlag) \r
2673 .hword (0x80<<8)|(1<<SFlag) |(1<<NFlag) \r
2674 .hword (0x81<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag) \r
2675 .hword (0x82<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag) \r
2676 .hword (0x83<<8)|(1<<SFlag) |(1<<NFlag) \r
2677 .hword (0x84<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag) \r
2678 .hword (0x85<<8)|(1<<SFlag) |(1<<NFlag) \r
2679 .hword (0x86<<8)|(1<<SFlag) |(1<<NFlag) \r
2680 .hword (0x87<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag) \r
2681 .hword (0x88<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag) \r
2682 .hword (0x89<<8)|(1<<SFlag) |(1<<NFlag) \r
2683 .hword (0x84<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag) \r
2684 .hword (0x85<<8)|(1<<SFlag) |(1<<NFlag) \r
2685 .hword (0x86<<8)|(1<<SFlag) |(1<<NFlag) \r
2686 .hword (0x87<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag) \r
2687 .hword (0x88<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag) \r
2688 .hword (0x89<<8)|(1<<SFlag) |(1<<NFlag) \r
2689 .hword (0x90<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag) \r
2690 .hword (0x91<<8)|(1<<SFlag) |(1<<NFlag) \r
2691 .hword (0x92<<8)|(1<<SFlag) |(1<<NFlag) \r
2692 .hword (0x93<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag) \r
2693 .hword (0x94<<8)|(1<<SFlag) |(1<<NFlag) \r
2694 .hword (0x95<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag) \r
2695 .hword (0x96<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag) \r
2696 .hword (0x97<<8)|(1<<SFlag) |(1<<NFlag) \r
2697 .hword (0x98<<8)|(1<<SFlag) |(1<<NFlag) \r
2698 .hword (0x99<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag) \r
2699 .hword (0x34<<8) |(1<<NFlag)|(1<<CFlag)\r
2700 .hword (0x35<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2701 .hword (0x36<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2702 .hword (0x37<<8) |(1<<NFlag)|(1<<CFlag)\r
2703 .hword (0x38<<8) |(1<<NFlag)|(1<<CFlag)\r
2704 .hword (0x39<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2705 .hword (0x40<<8) |(1<<NFlag)|(1<<CFlag)\r
2706 .hword (0x41<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2707 .hword (0x42<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2708 .hword (0x43<<8) |(1<<NFlag)|(1<<CFlag)\r
2709 .hword (0x44<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2710 .hword (0x45<<8) |(1<<NFlag)|(1<<CFlag)\r
2711 .hword (0x46<<8) |(1<<NFlag)|(1<<CFlag)\r
2712 .hword (0x47<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2713 .hword (0x48<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2714 .hword (0x49<<8) |(1<<NFlag)|(1<<CFlag)\r
2715 .hword (0x44<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2716 .hword (0x45<<8) |(1<<NFlag)|(1<<CFlag)\r
2717 .hword (0x46<<8) |(1<<NFlag)|(1<<CFlag)\r
2718 .hword (0x47<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2719 .hword (0x48<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2720 .hword (0x49<<8) |(1<<NFlag)|(1<<CFlag)\r
2721 .hword (0x50<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2722 .hword (0x51<<8) |(1<<NFlag)|(1<<CFlag)\r
2723 .hword (0x52<<8) |(1<<NFlag)|(1<<CFlag)\r
2724 .hword (0x53<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2725 .hword (0x54<<8) |(1<<NFlag)|(1<<CFlag)\r
2726 .hword (0x55<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2727 .hword (0x56<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2728 .hword (0x57<<8) |(1<<NFlag)|(1<<CFlag)\r
2729 .hword (0x58<<8) |(1<<NFlag)|(1<<CFlag)\r
2730 .hword (0x59<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2731 .hword (0x54<<8) |(1<<NFlag)|(1<<CFlag)\r
2732 .hword (0x55<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2733 .hword (0x56<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2734 .hword (0x57<<8) |(1<<NFlag)|(1<<CFlag)\r
2735 .hword (0x58<<8) |(1<<NFlag)|(1<<CFlag)\r
2736 .hword (0x59<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2737 .hword (0x60<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2738 .hword (0x61<<8) |(1<<NFlag)|(1<<CFlag)\r
2739 .hword (0x62<<8) |(1<<NFlag)|(1<<CFlag)\r
2740 .hword (0x63<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2741 .hword (0x64<<8) |(1<<NFlag)|(1<<CFlag)\r
2742 .hword (0x65<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2743 .hword (0x66<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2744 .hword (0x67<<8) |(1<<NFlag)|(1<<CFlag)\r
2745 .hword (0x68<<8) |(1<<NFlag)|(1<<CFlag)\r
2746 .hword (0x69<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2747 .hword (0x64<<8) |(1<<NFlag)|(1<<CFlag)\r
2748 .hword (0x65<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2749 .hword (0x66<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2750 .hword (0x67<<8) |(1<<NFlag)|(1<<CFlag)\r
2751 .hword (0x68<<8) |(1<<NFlag)|(1<<CFlag)\r
2752 .hword (0x69<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2753 .hword (0x70<<8) |(1<<NFlag)|(1<<CFlag)\r
2754 .hword (0x71<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2755 .hword (0x72<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2756 .hword (0x73<<8) |(1<<NFlag)|(1<<CFlag)\r
2757 .hword (0x74<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2758 .hword (0x75<<8) |(1<<NFlag)|(1<<CFlag)\r
2759 .hword (0x76<<8) |(1<<NFlag)|(1<<CFlag)\r
2760 .hword (0x77<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2761 .hword (0x78<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2762 .hword (0x79<<8) |(1<<NFlag)|(1<<CFlag)\r
2763 .hword (0x74<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2764 .hword (0x75<<8) |(1<<NFlag)|(1<<CFlag)\r
2765 .hword (0x76<<8) |(1<<NFlag)|(1<<CFlag)\r
2766 .hword (0x77<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2767 .hword (0x78<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2768 .hword (0x79<<8) |(1<<NFlag)|(1<<CFlag)\r
2769 .hword (0x80<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2770 .hword (0x81<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2771 .hword (0x82<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2772 .hword (0x83<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2773 .hword (0x84<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2774 .hword (0x85<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2775 .hword (0x86<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2776 .hword (0x87<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2777 .hword (0x88<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2778 .hword (0x89<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2779 .hword (0x84<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2780 .hword (0x85<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2781 .hword (0x86<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2782 .hword (0x87<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2783 .hword (0x88<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2784 .hword (0x89<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2785 .hword (0x90<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2786 .hword (0x91<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2787 .hword (0x92<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2788 .hword (0x93<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2789 .hword (0x94<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2790 .hword (0x95<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2791 .hword (0x96<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2792 .hword (0x97<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2793 .hword (0x98<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2794 .hword (0x99<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2795 .hword (0x94<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2796 .hword (0x95<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2797 .hword (0x96<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2798 .hword (0x97<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2799 .hword (0x98<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2800 .hword (0x99<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2801 .hword (0xA0<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2802 .hword (0xA1<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2803 .hword (0xA2<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2804 .hword (0xA3<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2805 .hword (0xA4<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2806 .hword (0xA5<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2807 .hword (0xA6<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2808 .hword (0xA7<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2809 .hword (0xA8<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2810 .hword (0xA9<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2811 .hword (0xA4<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2812 .hword (0xA5<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2813 .hword (0xA6<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2814 .hword (0xA7<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2815 .hword (0xA8<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2816 .hword (0xA9<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2817 .hword (0xB0<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2818 .hword (0xB1<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2819 .hword (0xB2<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2820 .hword (0xB3<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2821 .hword (0xB4<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2822 .hword (0xB5<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2823 .hword (0xB6<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2824 .hword (0xB7<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2825 .hword (0xB8<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2826 .hword (0xB9<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2827 .hword (0xB4<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2828 .hword (0xB5<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2829 .hword (0xB6<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2830 .hword (0xB7<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2831 .hword (0xB8<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2832 .hword (0xB9<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2833 .hword (0xC0<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2834 .hword (0xC1<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2835 .hword (0xC2<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2836 .hword (0xC3<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2837 .hword (0xC4<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2838 .hword (0xC5<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2839 .hword (0xC6<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2840 .hword (0xC7<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2841 .hword (0xC8<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2842 .hword (0xC9<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2843 .hword (0xC4<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2844 .hword (0xC5<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2845 .hword (0xC6<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2846 .hword (0xC7<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2847 .hword (0xC8<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2848 .hword (0xC9<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2849 .hword (0xD0<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2850 .hword (0xD1<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2851 .hword (0xD2<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2852 .hword (0xD3<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2853 .hword (0xD4<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2854 .hword (0xD5<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2855 .hword (0xD6<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2856 .hword (0xD7<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2857 .hword (0xD8<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2858 .hword (0xD9<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2859 .hword (0xD4<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2860 .hword (0xD5<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2861 .hword (0xD6<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2862 .hword (0xD7<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2863 .hword (0xD8<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2864 .hword (0xD9<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2865 .hword (0xE0<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2866 .hword (0xE1<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2867 .hword (0xE2<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2868 .hword (0xE3<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2869 .hword (0xE4<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2870 .hword (0xE5<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2871 .hword (0xE6<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2872 .hword (0xE7<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2873 .hword (0xE8<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2874 .hword (0xE9<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2875 .hword (0xE4<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2876 .hword (0xE5<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2877 .hword (0xE6<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2878 .hword (0xE7<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2879 .hword (0xE8<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2880 .hword (0xE9<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2881 .hword (0xF0<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2882 .hword (0xF1<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2883 .hword (0xF2<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2884 .hword (0xF3<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2885 .hword (0xF4<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2886 .hword (0xF5<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2887 .hword (0xF6<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2888 .hword (0xF7<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2889 .hword (0xF8<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2890 .hword (0xF9<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2891 .hword (0xF4<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2892 .hword (0xF5<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2893 .hword (0xF6<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2894 .hword (0xF7<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2895 .hword (0xF8<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2896 .hword (0xF9<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2897 .hword (0x00<<8) |(1<<ZFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2898 .hword (0x01<<8) |(1<<NFlag)|(1<<CFlag)\r
2899 .hword (0x02<<8) |(1<<NFlag)|(1<<CFlag)\r
2900 .hword (0x03<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2901 .hword (0x04<<8) |(1<<NFlag)|(1<<CFlag)\r
2902 .hword (0x05<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2903 .hword (0x06<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2904 .hword (0x07<<8) |(1<<NFlag)|(1<<CFlag)\r
2905 .hword (0x08<<8) |(1<<NFlag)|(1<<CFlag)\r
2906 .hword (0x09<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2907 .hword (0x04<<8) |(1<<NFlag)|(1<<CFlag)\r
2908 .hword (0x05<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2909 .hword (0x06<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2910 .hword (0x07<<8) |(1<<NFlag)|(1<<CFlag)\r
2911 .hword (0x08<<8) |(1<<NFlag)|(1<<CFlag)\r
2912 .hword (0x09<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2913 .hword (0x10<<8) |(1<<NFlag)|(1<<CFlag)\r
2914 .hword (0x11<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2915 .hword (0x12<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2916 .hword (0x13<<8) |(1<<NFlag)|(1<<CFlag)\r
2917 .hword (0x14<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2918 .hword (0x15<<8) |(1<<NFlag)|(1<<CFlag)\r
2919 .hword (0x16<<8) |(1<<NFlag)|(1<<CFlag)\r
2920 .hword (0x17<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2921 .hword (0x18<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2922 .hword (0x19<<8) |(1<<NFlag)|(1<<CFlag)\r
2923 .hword (0x14<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2924 .hword (0x15<<8) |(1<<NFlag)|(1<<CFlag)\r
2925 .hword (0x16<<8) |(1<<NFlag)|(1<<CFlag)\r
2926 .hword (0x17<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2927 .hword (0x18<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2928 .hword (0x19<<8) |(1<<NFlag)|(1<<CFlag)\r
2929 .hword (0x20<<8) |(1<<NFlag)|(1<<CFlag)\r
2930 .hword (0x21<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2931 .hword (0x22<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2932 .hword (0x23<<8) |(1<<NFlag)|(1<<CFlag)\r
2933 .hword (0x24<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2934 .hword (0x25<<8) |(1<<NFlag)|(1<<CFlag)\r
2935 .hword (0x26<<8) |(1<<NFlag)|(1<<CFlag)\r
2936 .hword (0x27<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2937 .hword (0x28<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2938 .hword (0x29<<8) |(1<<NFlag)|(1<<CFlag)\r
2939 .hword (0x24<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2940 .hword (0x25<<8) |(1<<NFlag)|(1<<CFlag)\r
2941 .hword (0x26<<8) |(1<<NFlag)|(1<<CFlag)\r
2942 .hword (0x27<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2943 .hword (0x28<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2944 .hword (0x29<<8) |(1<<NFlag)|(1<<CFlag)\r
2945 .hword (0x30<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2946 .hword (0x31<<8) |(1<<NFlag)|(1<<CFlag)\r
2947 .hword (0x32<<8) |(1<<NFlag)|(1<<CFlag)\r
2948 .hword (0x33<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2949 .hword (0x34<<8) |(1<<NFlag)|(1<<CFlag)\r
2950 .hword (0x35<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2951 .hword (0x36<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2952 .hword (0x37<<8) |(1<<NFlag)|(1<<CFlag)\r
2953 .hword (0x38<<8) |(1<<NFlag)|(1<<CFlag)\r
2954 .hword (0x39<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2955 .hword (0x34<<8) |(1<<NFlag)|(1<<CFlag)\r
2956 .hword (0x35<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2957 .hword (0x36<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2958 .hword (0x37<<8) |(1<<NFlag)|(1<<CFlag)\r
2959 .hword (0x38<<8) |(1<<NFlag)|(1<<CFlag)\r
2960 .hword (0x39<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2961 .hword (0x40<<8) |(1<<NFlag)|(1<<CFlag)\r
2962 .hword (0x41<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2963 .hword (0x42<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2964 .hword (0x43<<8) |(1<<NFlag)|(1<<CFlag)\r
2965 .hword (0x44<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2966 .hword (0x45<<8) |(1<<NFlag)|(1<<CFlag)\r
2967 .hword (0x46<<8) |(1<<NFlag)|(1<<CFlag)\r
2968 .hword (0x47<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2969 .hword (0x48<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2970 .hword (0x49<<8) |(1<<NFlag)|(1<<CFlag)\r
2971 .hword (0x44<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2972 .hword (0x45<<8) |(1<<NFlag)|(1<<CFlag)\r
2973 .hword (0x46<<8) |(1<<NFlag)|(1<<CFlag)\r
2974 .hword (0x47<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2975 .hword (0x48<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2976 .hword (0x49<<8) |(1<<NFlag)|(1<<CFlag)\r
2977 .hword (0x50<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2978 .hword (0x51<<8) |(1<<NFlag)|(1<<CFlag)\r
2979 .hword (0x52<<8) |(1<<NFlag)|(1<<CFlag)\r
2980 .hword (0x53<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2981 .hword (0x54<<8) |(1<<NFlag)|(1<<CFlag)\r
2982 .hword (0x55<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2983 .hword (0x56<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2984 .hword (0x57<<8) |(1<<NFlag)|(1<<CFlag)\r
2985 .hword (0x58<<8) |(1<<NFlag)|(1<<CFlag)\r
2986 .hword (0x59<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2987 .hword (0x54<<8) |(1<<NFlag)|(1<<CFlag)\r
2988 .hword (0x55<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2989 .hword (0x56<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2990 .hword (0x57<<8) |(1<<NFlag)|(1<<CFlag)\r
2991 .hword (0x58<<8) |(1<<NFlag)|(1<<CFlag)\r
2992 .hword (0x59<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2993 .hword (0x60<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2994 .hword (0x61<<8) |(1<<NFlag)|(1<<CFlag)\r
2995 .hword (0x62<<8) |(1<<NFlag)|(1<<CFlag)\r
2996 .hword (0x63<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2997 .hword (0x64<<8) |(1<<NFlag)|(1<<CFlag)\r
2998 .hword (0x65<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2999 .hword (0x66<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3000 .hword (0x67<<8) |(1<<NFlag)|(1<<CFlag)\r
3001 .hword (0x68<<8) |(1<<NFlag)|(1<<CFlag)\r
3002 .hword (0x69<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3003 .hword (0x64<<8) |(1<<NFlag)|(1<<CFlag)\r
3004 .hword (0x65<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3005 .hword (0x66<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3006 .hword (0x67<<8) |(1<<NFlag)|(1<<CFlag)\r
3007 .hword (0x68<<8) |(1<<NFlag)|(1<<CFlag)\r
3008 .hword (0x69<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3009 .hword (0x70<<8) |(1<<NFlag)|(1<<CFlag)\r
3010 .hword (0x71<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3011 .hword (0x72<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3012 .hword (0x73<<8) |(1<<NFlag)|(1<<CFlag)\r
3013 .hword (0x74<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3014 .hword (0x75<<8) |(1<<NFlag)|(1<<CFlag)\r
3015 .hword (0x76<<8) |(1<<NFlag)|(1<<CFlag)\r
3016 .hword (0x77<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3017 .hword (0x78<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3018 .hword (0x79<<8) |(1<<NFlag)|(1<<CFlag)\r
3019 .hword (0x74<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3020 .hword (0x75<<8) |(1<<NFlag)|(1<<CFlag)\r
3021 .hword (0x76<<8) |(1<<NFlag)|(1<<CFlag)\r
3022 .hword (0x77<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3023 .hword (0x78<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3024 .hword (0x79<<8) |(1<<NFlag)|(1<<CFlag)\r
3025 .hword (0x80<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3026 .hword (0x81<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3027 .hword (0x82<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3028 .hword (0x83<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3029 .hword (0x84<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3030 .hword (0x85<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3031 .hword (0x86<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3032 .hword (0x87<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3033 .hword (0x88<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3034 .hword (0x89<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3035 .hword (0x84<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3036 .hword (0x85<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3037 .hword (0x86<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3038 .hword (0x87<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3039 .hword (0x88<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3040 .hword (0x89<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3041 .hword (0x90<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3042 .hword (0x91<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3043 .hword (0x92<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3044 .hword (0x93<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3045 .hword (0x94<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3046 .hword (0x95<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3047 .hword (0x96<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3048 .hword (0x97<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3049 .hword (0x98<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3050 .hword (0x99<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3051 .hword (0x94<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3052 .hword (0x95<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3053 .hword (0x96<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3054 .hword (0x97<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3055 .hword (0x98<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3056 .hword (0x99<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3057 .hword (0xFA<<8)|(1<<SFlag) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag) \r
3058 .hword (0xFB<<8)|(1<<SFlag) |(1<<HFlag) |(1<<NFlag) \r
3059 .hword (0xFC<<8)|(1<<SFlag) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag) \r
3060 .hword (0xFD<<8)|(1<<SFlag) |(1<<HFlag) |(1<<NFlag) \r
3061 .hword (0xFE<<8)|(1<<SFlag) |(1<<HFlag) |(1<<NFlag) \r
3062 .hword (0xFF<<8)|(1<<SFlag) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag) \r
3063 .hword (0x00<<8) |(1<<ZFlag) |(1<<VFlag)|(1<<NFlag) \r
3064 .hword (0x01<<8) |(1<<NFlag) \r
3065 .hword (0x02<<8) |(1<<NFlag) \r
3066 .hword (0x03<<8) |(1<<VFlag)|(1<<NFlag) \r
3067 .hword (0x04<<8) |(1<<NFlag) \r
3068 .hword (0x05<<8) |(1<<VFlag)|(1<<NFlag) \r
3069 .hword (0x06<<8) |(1<<VFlag)|(1<<NFlag) \r
3070 .hword (0x07<<8) |(1<<NFlag) \r
3071 .hword (0x08<<8) |(1<<NFlag) \r
3072 .hword (0x09<<8) |(1<<VFlag)|(1<<NFlag) \r
3073 .hword (0x0A<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag) \r
3074 .hword (0x0B<<8) |(1<<HFlag) |(1<<NFlag) \r
3075 .hword (0x0C<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag) \r
3076 .hword (0x0D<<8) |(1<<HFlag) |(1<<NFlag) \r
3077 .hword (0x0E<<8) |(1<<HFlag) |(1<<NFlag) \r
3078 .hword (0x0F<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag) \r
3079 .hword (0x10<<8) |(1<<NFlag) \r
3080 .hword (0x11<<8) |(1<<VFlag)|(1<<NFlag) \r
3081 .hword (0x12<<8) |(1<<VFlag)|(1<<NFlag) \r
3082 .hword (0x13<<8) |(1<<NFlag) \r
3083 .hword (0x14<<8) |(1<<VFlag)|(1<<NFlag) \r
3084 .hword (0x15<<8) |(1<<NFlag) \r
3085 .hword (0x16<<8) |(1<<NFlag) \r
3086 .hword (0x17<<8) |(1<<VFlag)|(1<<NFlag) \r
3087 .hword (0x18<<8) |(1<<VFlag)|(1<<NFlag) \r
3088 .hword (0x19<<8) |(1<<NFlag) \r
3089 .hword (0x1A<<8) |(1<<HFlag) |(1<<NFlag) \r
3090 .hword (0x1B<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag) \r
3091 .hword (0x1C<<8) |(1<<HFlag) |(1<<NFlag) \r
3092 .hword (0x1D<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag) \r
3093 .hword (0x1E<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag) \r
3094 .hword (0x1F<<8) |(1<<HFlag) |(1<<NFlag) \r
3095 .hword (0x20<<8) |(1<<NFlag) \r
3096 .hword (0x21<<8) |(1<<VFlag)|(1<<NFlag) \r
3097 .hword (0x22<<8) |(1<<VFlag)|(1<<NFlag) \r
3098 .hword (0x23<<8) |(1<<NFlag) \r
3099 .hword (0x24<<8) |(1<<VFlag)|(1<<NFlag) \r
3100 .hword (0x25<<8) |(1<<NFlag) \r
3101 .hword (0x26<<8) |(1<<NFlag) \r
3102 .hword (0x27<<8) |(1<<VFlag)|(1<<NFlag) \r
3103 .hword (0x28<<8) |(1<<VFlag)|(1<<NFlag) \r
3104 .hword (0x29<<8) |(1<<NFlag) \r
3105 .hword (0x2A<<8) |(1<<HFlag) |(1<<NFlag) \r
3106 .hword (0x2B<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag) \r
3107 .hword (0x2C<<8) |(1<<HFlag) |(1<<NFlag) \r
3108 .hword (0x2D<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag) \r
3109 .hword (0x2E<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag) \r
3110 .hword (0x2F<<8) |(1<<HFlag) |(1<<NFlag) \r
3111 .hword (0x30<<8) |(1<<VFlag)|(1<<NFlag) \r
3112 .hword (0x31<<8) |(1<<NFlag) \r
3113 .hword (0x32<<8) |(1<<NFlag) \r
3114 .hword (0x33<<8) |(1<<VFlag)|(1<<NFlag) \r
3115 .hword (0x34<<8) |(1<<NFlag) \r
3116 .hword (0x35<<8) |(1<<VFlag)|(1<<NFlag) \r
3117 .hword (0x36<<8) |(1<<VFlag)|(1<<NFlag) \r
3118 .hword (0x37<<8) |(1<<NFlag) \r
3119 .hword (0x38<<8) |(1<<NFlag) \r
3120 .hword (0x39<<8) |(1<<VFlag)|(1<<NFlag) \r
3121 .hword (0x3A<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag) \r
3122 .hword (0x3B<<8) |(1<<HFlag) |(1<<NFlag) \r
3123 .hword (0x3C<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag) \r
3124 .hword (0x3D<<8) |(1<<HFlag) |(1<<NFlag) \r
3125 .hword (0x3E<<8) |(1<<HFlag) |(1<<NFlag) \r
3126 .hword (0x3F<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag) \r
3127 .hword (0x40<<8) |(1<<NFlag) \r
3128 .hword (0x41<<8) |(1<<VFlag)|(1<<NFlag) \r
3129 .hword (0x42<<8) |(1<<VFlag)|(1<<NFlag) \r
3130 .hword (0x43<<8) |(1<<NFlag) \r
3131 .hword (0x44<<8) |(1<<VFlag)|(1<<NFlag) \r
3132 .hword (0x45<<8) |(1<<NFlag) \r
3133 .hword (0x46<<8) |(1<<NFlag) \r
3134 .hword (0x47<<8) |(1<<VFlag)|(1<<NFlag) \r
3135 .hword (0x48<<8) |(1<<VFlag)|(1<<NFlag) \r
3136 .hword (0x49<<8) |(1<<NFlag) \r
3137 .hword (0x4A<<8) |(1<<HFlag) |(1<<NFlag) \r
3138 .hword (0x4B<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag) \r
3139 .hword (0x4C<<8) |(1<<HFlag) |(1<<NFlag) \r
3140 .hword (0x4D<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag) \r
3141 .hword (0x4E<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag) \r
3142 .hword (0x4F<<8) |(1<<HFlag) |(1<<NFlag) \r
3143 .hword (0x50<<8) |(1<<VFlag)|(1<<NFlag) \r
3144 .hword (0x51<<8) |(1<<NFlag) \r
3145 .hword (0x52<<8) |(1<<NFlag) \r
3146 .hword (0x53<<8) |(1<<VFlag)|(1<<NFlag) \r
3147 .hword (0x54<<8) |(1<<NFlag) \r
3148 .hword (0x55<<8) |(1<<VFlag)|(1<<NFlag) \r
3149 .hword (0x56<<8) |(1<<VFlag)|(1<<NFlag) \r
3150 .hword (0x57<<8) |(1<<NFlag) \r
3151 .hword (0x58<<8) |(1<<NFlag) \r
3152 .hword (0x59<<8) |(1<<VFlag)|(1<<NFlag) \r
3153 .hword (0x5A<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag) \r
3154 .hword (0x5B<<8) |(1<<HFlag) |(1<<NFlag) \r
3155 .hword (0x5C<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag) \r
3156 .hword (0x5D<<8) |(1<<HFlag) |(1<<NFlag) \r
3157 .hword (0x5E<<8) |(1<<HFlag) |(1<<NFlag) \r
3158 .hword (0x5F<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag) \r
3159 .hword (0x60<<8) |(1<<VFlag)|(1<<NFlag) \r
3160 .hword (0x61<<8) |(1<<NFlag) \r
3161 .hword (0x62<<8) |(1<<NFlag) \r
3162 .hword (0x63<<8) |(1<<VFlag)|(1<<NFlag) \r
3163 .hword (0x64<<8) |(1<<NFlag) \r
3164 .hword (0x65<<8) |(1<<VFlag)|(1<<NFlag) \r
3165 .hword (0x66<<8) |(1<<VFlag)|(1<<NFlag) \r
3166 .hword (0x67<<8) |(1<<NFlag) \r
3167 .hword (0x68<<8) |(1<<NFlag) \r
3168 .hword (0x69<<8) |(1<<VFlag)|(1<<NFlag) \r
3169 .hword (0x6A<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag) \r
3170 .hword (0x6B<<8) |(1<<HFlag) |(1<<NFlag) \r
3171 .hword (0x6C<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag) \r
3172 .hword (0x6D<<8) |(1<<HFlag) |(1<<NFlag) \r
3173 .hword (0x6E<<8) |(1<<HFlag) |(1<<NFlag) \r
3174 .hword (0x6F<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag) \r
3175 .hword (0x70<<8) |(1<<NFlag) \r
3176 .hword (0x71<<8) |(1<<VFlag)|(1<<NFlag) \r
3177 .hword (0x72<<8) |(1<<VFlag)|(1<<NFlag) \r
3178 .hword (0x73<<8) |(1<<NFlag) \r
3179 .hword (0x74<<8) |(1<<VFlag)|(1<<NFlag) \r
3180 .hword (0x75<<8) |(1<<NFlag) \r
3181 .hword (0x76<<8) |(1<<NFlag) \r
3182 .hword (0x77<<8) |(1<<VFlag)|(1<<NFlag) \r
3183 .hword (0x78<<8) |(1<<VFlag)|(1<<NFlag) \r
3184 .hword (0x79<<8) |(1<<NFlag) \r
3185 .hword (0x7A<<8) |(1<<HFlag) |(1<<NFlag) \r
3186 .hword (0x7B<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag) \r
3187 .hword (0x7C<<8) |(1<<HFlag) |(1<<NFlag) \r
3188 .hword (0x7D<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag) \r
3189 .hword (0x7E<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag) \r
3190 .hword (0x7F<<8) |(1<<HFlag) |(1<<NFlag) \r
3191 .hword (0x80<<8)|(1<<SFlag) |(1<<NFlag) \r
3192 .hword (0x81<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag) \r
3193 .hword (0x82<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag) \r
3194 .hword (0x83<<8)|(1<<SFlag) |(1<<NFlag) \r
3195 .hword (0x84<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag) \r
3196 .hword (0x85<<8)|(1<<SFlag) |(1<<NFlag) \r
3197 .hword (0x86<<8)|(1<<SFlag) |(1<<NFlag) \r
3198 .hword (0x87<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag) \r
3199 .hword (0x88<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag) \r
3200 .hword (0x89<<8)|(1<<SFlag) |(1<<NFlag) \r
3201 .hword (0x8A<<8)|(1<<SFlag) |(1<<HFlag) |(1<<NFlag) \r
3202 .hword (0x8B<<8)|(1<<SFlag) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag) \r
3203 .hword (0x8C<<8)|(1<<SFlag) |(1<<HFlag) |(1<<NFlag) \r
3204 .hword (0x8D<<8)|(1<<SFlag) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag) \r
3205 .hword (0x8E<<8)|(1<<SFlag) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag) \r
3206 .hword (0x8F<<8)|(1<<SFlag) |(1<<HFlag) |(1<<NFlag) \r
3207 .hword (0x90<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag) \r
3208 .hword (0x91<<8)|(1<<SFlag) |(1<<NFlag) \r
3209 .hword (0x92<<8)|(1<<SFlag) |(1<<NFlag) \r
3210 .hword (0x93<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag) \r
3211 .hword (0x34<<8) |(1<<NFlag)|(1<<CFlag)\r
3212 .hword (0x35<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3213 .hword (0x36<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3214 .hword (0x37<<8) |(1<<NFlag)|(1<<CFlag)\r
3215 .hword (0x38<<8) |(1<<NFlag)|(1<<CFlag)\r
3216 .hword (0x39<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3217 .hword (0x3A<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3218 .hword (0x3B<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3219 .hword (0x3C<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3220 .hword (0x3D<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3221 .hword (0x3E<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3222 .hword (0x3F<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3223 .hword (0x40<<8) |(1<<NFlag)|(1<<CFlag)\r
3224 .hword (0x41<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3225 .hword (0x42<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3226 .hword (0x43<<8) |(1<<NFlag)|(1<<CFlag)\r
3227 .hword (0x44<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3228 .hword (0x45<<8) |(1<<NFlag)|(1<<CFlag)\r
3229 .hword (0x46<<8) |(1<<NFlag)|(1<<CFlag)\r
3230 .hword (0x47<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3231 .hword (0x48<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3232 .hword (0x49<<8) |(1<<NFlag)|(1<<CFlag)\r
3233 .hword (0x4A<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3234 .hword (0x4B<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3235 .hword (0x4C<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3236 .hword (0x4D<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3237 .hword (0x4E<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3238 .hword (0x4F<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3239 .hword (0x50<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3240 .hword (0x51<<8) |(1<<NFlag)|(1<<CFlag)\r
3241 .hword (0x52<<8) |(1<<NFlag)|(1<<CFlag)\r
3242 .hword (0x53<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3243 .hword (0x54<<8) |(1<<NFlag)|(1<<CFlag)\r
3244 .hword (0x55<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3245 .hword (0x56<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3246 .hword (0x57<<8) |(1<<NFlag)|(1<<CFlag)\r
3247 .hword (0x58<<8) |(1<<NFlag)|(1<<CFlag)\r
3248 .hword (0x59<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3249 .hword (0x5A<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3250 .hword (0x5B<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3251 .hword (0x5C<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3252 .hword (0x5D<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3253 .hword (0x5E<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3254 .hword (0x5F<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3255 .hword (0x60<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3256 .hword (0x61<<8) |(1<<NFlag)|(1<<CFlag)\r
3257 .hword (0x62<<8) |(1<<NFlag)|(1<<CFlag)\r
3258 .hword (0x63<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3259 .hword (0x64<<8) |(1<<NFlag)|(1<<CFlag)\r
3260 .hword (0x65<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3261 .hword (0x66<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3262 .hword (0x67<<8) |(1<<NFlag)|(1<<CFlag)\r
3263 .hword (0x68<<8) |(1<<NFlag)|(1<<CFlag)\r
3264 .hword (0x69<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3265 .hword (0x6A<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3266 .hword (0x6B<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3267 .hword (0x6C<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3268 .hword (0x6D<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3269 .hword (0x6E<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3270 .hword (0x6F<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3271 .hword (0x70<<8) |(1<<NFlag)|(1<<CFlag)\r
3272 .hword (0x71<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3273 .hword (0x72<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3274 .hword (0x73<<8) |(1<<NFlag)|(1<<CFlag)\r
3275 .hword (0x74<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3276 .hword (0x75<<8) |(1<<NFlag)|(1<<CFlag)\r
3277 .hword (0x76<<8) |(1<<NFlag)|(1<<CFlag)\r
3278 .hword (0x77<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3279 .hword (0x78<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3280 .hword (0x79<<8) |(1<<NFlag)|(1<<CFlag)\r
3281 .hword (0x7A<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3282 .hword (0x7B<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3283 .hword (0x7C<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3284 .hword (0x7D<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3285 .hword (0x7E<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3286 .hword (0x7F<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3287 .hword (0x80<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3288 .hword (0x81<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3289 .hword (0x82<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3290 .hword (0x83<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3291 .hword (0x84<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3292 .hword (0x85<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3293 .hword (0x86<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3294 .hword (0x87<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3295 .hword (0x88<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3296 .hword (0x89<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3297 .hword (0x8A<<8)|(1<<SFlag) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3298 .hword (0x8B<<8)|(1<<SFlag) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3299 .hword (0x8C<<8)|(1<<SFlag) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3300 .hword (0x8D<<8)|(1<<SFlag) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3301 .hword (0x8E<<8)|(1<<SFlag) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3302 .hword (0x8F<<8)|(1<<SFlag) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3303 .hword (0x90<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3304 .hword (0x91<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3305 .hword (0x92<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3306 .hword (0x93<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3307 .hword (0x94<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3308 .hword (0x95<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3309 .hword (0x96<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3310 .hword (0x97<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3311 .hword (0x98<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3312 .hword (0x99<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3313 .hword (0x9A<<8)|(1<<SFlag) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3314 .hword (0x9B<<8)|(1<<SFlag) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3315 .hword (0x9C<<8)|(1<<SFlag) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3316 .hword (0x9D<<8)|(1<<SFlag) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3317 .hword (0x9E<<8)|(1<<SFlag) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3318 .hword (0x9F<<8)|(1<<SFlag) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3319 .hword (0xA0<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3320 .hword (0xA1<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3321 .hword (0xA2<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3322 .hword (0xA3<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3323 .hword (0xA4<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3324 .hword (0xA5<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3325 .hword (0xA6<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3326 .hword (0xA7<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3327 .hword (0xA8<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3328 .hword (0xA9<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3329 .hword (0xAA<<8)|(1<<SFlag) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3330 .hword (0xAB<<8)|(1<<SFlag) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3331 .hword (0xAC<<8)|(1<<SFlag) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3332 .hword (0xAD<<8)|(1<<SFlag) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3333 .hword (0xAE<<8)|(1<<SFlag) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3334 .hword (0xAF<<8)|(1<<SFlag) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3335 .hword (0xB0<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3336 .hword (0xB1<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3337 .hword (0xB2<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3338 .hword (0xB3<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3339 .hword (0xB4<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3340 .hword (0xB5<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3341 .hword (0xB6<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3342 .hword (0xB7<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3343 .hword (0xB8<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3344 .hword (0xB9<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3345 .hword (0xBA<<8)|(1<<SFlag) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3346 .hword (0xBB<<8)|(1<<SFlag) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3347 .hword (0xBC<<8)|(1<<SFlag) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3348 .hword (0xBD<<8)|(1<<SFlag) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3349 .hword (0xBE<<8)|(1<<SFlag) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3350 .hword (0xBF<<8)|(1<<SFlag) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3351 .hword (0xC0<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3352 .hword (0xC1<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3353 .hword (0xC2<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3354 .hword (0xC3<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3355 .hword (0xC4<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3356 .hword (0xC5<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3357 .hword (0xC6<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3358 .hword (0xC7<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3359 .hword (0xC8<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3360 .hword (0xC9<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3361 .hword (0xCA<<8)|(1<<SFlag) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3362 .hword (0xCB<<8)|(1<<SFlag) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3363 .hword (0xCC<<8)|(1<<SFlag) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3364 .hword (0xCD<<8)|(1<<SFlag) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3365 .hword (0xCE<<8)|(1<<SFlag) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3366 .hword (0xCF<<8)|(1<<SFlag) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3367 .hword (0xD0<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3368 .hword (0xD1<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3369 .hword (0xD2<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3370 .hword (0xD3<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3371 .hword (0xD4<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3372 .hword (0xD5<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3373 .hword (0xD6<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3374 .hword (0xD7<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3375 .hword (0xD8<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3376 .hword (0xD9<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3377 .hword (0xDA<<8)|(1<<SFlag) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3378 .hword (0xDB<<8)|(1<<SFlag) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3379 .hword (0xDC<<8)|(1<<SFlag) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3380 .hword (0xDD<<8)|(1<<SFlag) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3381 .hword (0xDE<<8)|(1<<SFlag) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3382 .hword (0xDF<<8)|(1<<SFlag) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3383 .hword (0xE0<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3384 .hword (0xE1<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3385 .hword (0xE2<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3386 .hword (0xE3<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3387 .hword (0xE4<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3388 .hword (0xE5<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3389 .hword (0xE6<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3390 .hword (0xE7<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3391 .hword (0xE8<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3392 .hword (0xE9<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3393 .hword (0xEA<<8)|(1<<SFlag) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3394 .hword (0xEB<<8)|(1<<SFlag) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3395 .hword (0xEC<<8)|(1<<SFlag) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3396 .hword (0xED<<8)|(1<<SFlag) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3397 .hword (0xEE<<8)|(1<<SFlag) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3398 .hword (0xEF<<8)|(1<<SFlag) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3399 .hword (0xF0<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3400 .hword (0xF1<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3401 .hword (0xF2<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3402 .hword (0xF3<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3403 .hword (0xF4<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3404 .hword (0xF5<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3405 .hword (0xF6<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3406 .hword (0xF7<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3407 .hword (0xF8<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3408 .hword (0xF9<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3409 .hword (0xFA<<8)|(1<<SFlag) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3410 .hword (0xFB<<8)|(1<<SFlag) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3411 .hword (0xFC<<8)|(1<<SFlag) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3412 .hword (0xFD<<8)|(1<<SFlag) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3413 .hword (0xFE<<8)|(1<<SFlag) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3414 .hword (0xFF<<8)|(1<<SFlag) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3415 .hword (0x00<<8) |(1<<ZFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3416 .hword (0x01<<8) |(1<<NFlag)|(1<<CFlag)\r
3417 .hword (0x02<<8) |(1<<NFlag)|(1<<CFlag)\r
3418 .hword (0x03<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3419 .hword (0x04<<8) |(1<<NFlag)|(1<<CFlag)\r
3420 .hword (0x05<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3421 .hword (0x06<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3422 .hword (0x07<<8) |(1<<NFlag)|(1<<CFlag)\r
3423 .hword (0x08<<8) |(1<<NFlag)|(1<<CFlag)\r
3424 .hword (0x09<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3425 .hword (0x0A<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3426 .hword (0x0B<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3427 .hword (0x0C<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3428 .hword (0x0D<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3429 .hword (0x0E<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3430 .hword (0x0F<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3431 .hword (0x10<<8) |(1<<NFlag)|(1<<CFlag)\r
3432 .hword (0x11<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3433 .hword (0x12<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3434 .hword (0x13<<8) |(1<<NFlag)|(1<<CFlag)\r
3435 .hword (0x14<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3436 .hword (0x15<<8) |(1<<NFlag)|(1<<CFlag)\r
3437 .hword (0x16<<8) |(1<<NFlag)|(1<<CFlag)\r
3438 .hword (0x17<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3439 .hword (0x18<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3440 .hword (0x19<<8) |(1<<NFlag)|(1<<CFlag)\r
3441 .hword (0x1A<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3442 .hword (0x1B<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3443 .hword (0x1C<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3444 .hword (0x1D<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3445 .hword (0x1E<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3446 .hword (0x1F<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3447 .hword (0x20<<8) |(1<<NFlag)|(1<<CFlag)\r
3448 .hword (0x21<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3449 .hword (0x22<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3450 .hword (0x23<<8) |(1<<NFlag)|(1<<CFlag)\r
3451 .hword (0x24<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3452 .hword (0x25<<8) |(1<<NFlag)|(1<<CFlag)\r
3453 .hword (0x26<<8) |(1<<NFlag)|(1<<CFlag)\r
3454 .hword (0x27<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3455 .hword (0x28<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3456 .hword (0x29<<8) |(1<<NFlag)|(1<<CFlag)\r
3457 .hword (0x2A<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3458 .hword (0x2B<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3459 .hword (0x2C<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3460 .hword (0x2D<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3461 .hword (0x2E<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3462 .hword (0x2F<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3463 .hword (0x30<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3464 .hword (0x31<<8) |(1<<NFlag)|(1<<CFlag)\r
3465 .hword (0x32<<8) |(1<<NFlag)|(1<<CFlag)\r
3466 .hword (0x33<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3467 .hword (0x34<<8) |(1<<NFlag)|(1<<CFlag)\r
3468 .hword (0x35<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3469 .hword (0x36<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3470 .hword (0x37<<8) |(1<<NFlag)|(1<<CFlag)\r
3471 .hword (0x38<<8) |(1<<NFlag)|(1<<CFlag)\r
3472 .hword (0x39<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3473 .hword (0x3A<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3474 .hword (0x3B<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3475 .hword (0x3C<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3476 .hword (0x3D<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3477 .hword (0x3E<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3478 .hword (0x3F<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3479 .hword (0x40<<8) |(1<<NFlag)|(1<<CFlag)\r
3480 .hword (0x41<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3481 .hword (0x42<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3482 .hword (0x43<<8) |(1<<NFlag)|(1<<CFlag)\r
3483 .hword (0x44<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3484 .hword (0x45<<8) |(1<<NFlag)|(1<<CFlag)\r
3485 .hword (0x46<<8) |(1<<NFlag)|(1<<CFlag)\r
3486 .hword (0x47<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3487 .hword (0x48<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3488 .hword (0x49<<8) |(1<<NFlag)|(1<<CFlag)\r
3489 .hword (0x4A<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3490 .hword (0x4B<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3491 .hword (0x4C<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3492 .hword (0x4D<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3493 .hword (0x4E<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3494 .hword (0x4F<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3495 .hword (0x50<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3496 .hword (0x51<<8) |(1<<NFlag)|(1<<CFlag)\r
3497 .hword (0x52<<8) |(1<<NFlag)|(1<<CFlag)\r
3498 .hword (0x53<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3499 .hword (0x54<<8) |(1<<NFlag)|(1<<CFlag)\r
3500 .hword (0x55<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3501 .hword (0x56<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3502 .hword (0x57<<8) |(1<<NFlag)|(1<<CFlag)\r
3503 .hword (0x58<<8) |(1<<NFlag)|(1<<CFlag)\r
3504 .hword (0x59<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3505 .hword (0x5A<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3506 .hword (0x5B<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3507 .hword (0x5C<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3508 .hword (0x5D<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3509 .hword (0x5E<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3510 .hword (0x5F<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3511 .hword (0x60<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3512 .hword (0x61<<8) |(1<<NFlag)|(1<<CFlag)\r
3513 .hword (0x62<<8) |(1<<NFlag)|(1<<CFlag)\r
3514 .hword (0x63<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3515 .hword (0x64<<8) |(1<<NFlag)|(1<<CFlag)\r
3516 .hword (0x65<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3517 .hword (0x66<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3518 .hword (0x67<<8) |(1<<NFlag)|(1<<CFlag)\r
3519 .hword (0x68<<8) |(1<<NFlag)|(1<<CFlag)\r
3520 .hword (0x69<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3521 .hword (0x6A<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3522 .hword (0x6B<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3523 .hword (0x6C<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3524 .hword (0x6D<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3525 .hword (0x6E<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3526 .hword (0x6F<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3527 .hword (0x70<<8) |(1<<NFlag)|(1<<CFlag)\r
3528 .hword (0x71<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3529 .hword (0x72<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3530 .hword (0x73<<8) |(1<<NFlag)|(1<<CFlag)\r
3531 .hword (0x74<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3532 .hword (0x75<<8) |(1<<NFlag)|(1<<CFlag)\r
3533 .hword (0x76<<8) |(1<<NFlag)|(1<<CFlag)\r
3534 .hword (0x77<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3535 .hword (0x78<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3536 .hword (0x79<<8) |(1<<NFlag)|(1<<CFlag)\r
3537 .hword (0x7A<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3538 .hword (0x7B<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3539 .hword (0x7C<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3540 .hword (0x7D<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3541 .hword (0x7E<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3542 .hword (0x7F<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3543 .hword (0x80<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3544 .hword (0x81<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3545 .hword (0x82<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3546 .hword (0x83<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3547 .hword (0x84<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3548 .hword (0x85<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3549 .hword (0x86<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3550 .hword (0x87<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3551 .hword (0x88<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3552 .hword (0x89<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3553 .hword (0x8A<<8)|(1<<SFlag) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3554 .hword (0x8B<<8)|(1<<SFlag) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3555 .hword (0x8C<<8)|(1<<SFlag) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3556 .hword (0x8D<<8)|(1<<SFlag) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3557 .hword (0x8E<<8)|(1<<SFlag) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3558 .hword (0x8F<<8)|(1<<SFlag) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3559 .hword (0x90<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3560 .hword (0x91<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3561 .hword (0x92<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3562 .hword (0x93<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3563 .hword (0x94<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3564 .hword (0x95<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3565 .hword (0x96<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3566 .hword (0x97<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3567 .hword (0x98<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3568 .hword (0x99<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3569 \r
3570.align 4\r
3571\r
3572AF_Z80: .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 0\r
3573 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 1\r
3574 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 2\r
3575 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 3\r
3576 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 4\r
3577 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 5\r
3578 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 6\r
3579 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 7\r
3580 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 8\r
3581 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 9\r
3582 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 10\r
3583 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 11\r
3584 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 12\r
3585 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 13\r
3586 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 14\r
3587 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 15\r
3588 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 16\r
3589 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 17\r
3590 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 18\r
3591 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 19\r
3592 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 20\r
3593 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 21\r
3594 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 22\r
3595 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 23\r
3596 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 24\r
3597 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 25\r
3598 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 26\r
3599 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 27\r
3600 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 28\r
3601 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 29\r
3602 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 30\r
3603 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 31\r
3604 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 32\r
3605 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 33\r
3606 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 34\r
3607 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 35\r
3608 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 36\r
3609 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 37\r
3610 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 38\r
3611 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 39\r
3612 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 40\r
3613 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 41\r
3614 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 42\r
3615 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 43\r
3616 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 44\r
3617 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 45\r
3618 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 46\r
3619 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 47\r
3620 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 48\r
3621 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 49\r
3622 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 50\r
3623 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 51\r
3624 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 52\r
3625 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 53\r
3626 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 54\r
3627 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 55\r
3628 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 56\r
3629 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 57\r
3630 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 58\r
3631 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 59\r
3632 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 60\r
3633 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 61\r
3634 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 62\r
3635 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 63\r
3636 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 64\r
3637 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 65\r
3638 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 66\r
3639 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 67\r
3640 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 68\r
3641 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 69\r
3642 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 70\r
3643 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 71\r
3644 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 72\r
3645 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 73\r
3646 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 74\r
3647 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 75\r
3648 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 76\r
3649 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 77\r
3650 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 78\r
3651 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 79\r
3652 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 80\r
3653 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 81\r
3654 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 82\r
3655 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 83\r
3656 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 84\r
3657 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 85\r
3658 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 86\r
3659 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 87\r
3660 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 88\r
3661 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 89\r
3662 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 90\r
3663 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 91\r
3664 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 92\r
3665 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 93\r
3666 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 94\r
3667 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 95\r
3668 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 96\r
3669 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 97\r
3670 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 98\r
3671 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 99\r
3672 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 100\r
3673 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 101\r
3674 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 102\r
3675 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 103\r
3676 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 104\r
3677 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 105\r
3678 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 106\r
3679 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 107\r
3680 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 108\r
3681 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 109\r
3682 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 110\r
3683 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 111\r
3684 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 112\r
3685 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 113\r
3686 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 114\r
3687 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 115\r
3688 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 116\r
3689 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 117\r
3690 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 118\r
3691 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 119\r
3692 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 120\r
3693 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 121\r
3694 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 122\r
3695 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 123\r
3696 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 124\r
3697 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 125\r
3698 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 126\r
3699 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 127\r
3700 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 128\r
3701 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 129\r
3702 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 130\r
3703 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 131\r
3704 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 132\r
3705 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 133\r
3706 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 134\r
3707 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 135\r
3708 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 136\r
3709 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 137\r
3710 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 138\r
3711 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 139\r
3712 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 140\r
3713 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 141\r
3714 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 142\r
3715 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 143\r
3716 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 144\r
3717 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 145\r
3718 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 146\r
3719 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 147\r
3720 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 148\r
3721 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 149\r
3722 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 150\r
3723 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 151\r
3724 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 152\r
3725 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 153\r
3726 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 154\r
3727 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 155\r
3728 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 156\r
3729 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 157\r
3730 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 158\r
3731 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 159\r
3732 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 160\r
3733 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 161\r
3734 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 162\r
3735 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 163\r
3736 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 164\r
3737 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 165\r
3738 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 166\r
3739 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 167\r
3740 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 168\r
3741 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 169\r
3742 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 170\r
3743 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 171\r
3744 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 172\r
3745 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 173\r
3746 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 174\r
3747 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 175\r
3748 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 176\r
3749 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 177\r
3750 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 178\r
3751 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 179\r
3752 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 180\r
3753 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 181\r
3754 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 182\r
3755 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 183\r
3756 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 184\r
3757 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 185\r
3758 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 186\r
3759 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 187\r
3760 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 188\r
3761 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 189\r
3762 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 190\r
3763 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 191\r
3764 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 192\r
3765 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 193\r
3766 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 194\r
3767 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 195\r
3768 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 196\r
3769 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 197\r
3770 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 198\r
3771 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 199\r
3772 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 200\r
3773 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 201\r
3774 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 202\r
3775 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 203\r
3776 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 204\r
3777 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 205\r
3778 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 206\r
3779 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 207\r
3780 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 208\r
3781 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 209\r
3782 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 210\r
3783 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 211\r
3784 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 212\r
3785 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 213\r
3786 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 214\r
3787 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 215\r
3788 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 216\r
3789 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 217\r
3790 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 218\r
3791 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 219\r
3792 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 220\r
3793 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 221\r
3794 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 222\r
3795 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 223\r
3796 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 224\r
3797 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 225\r
3798 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 226\r
3799 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 227\r
3800 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 228\r
3801 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 229\r
3802 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 230\r
3803 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 231\r
3804 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 232\r
3805 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 233\r
3806 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 234\r
3807 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 235\r
3808 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 236\r
3809 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 237\r
3810 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 238\r
3811 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 239\r
3812 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 240\r
3813 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 241\r
3814 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 242\r
3815 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 243\r
3816 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 244\r
3817 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 245\r
3818 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 246\r
3819 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 247\r
3820 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 248\r
3821 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 249\r
3822 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 250\r
3823 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 251\r
3824 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 252\r
3825 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 253\r
3826 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 254\r
3827 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 255\r
3828\r
3829.align 4\r
3830\r
3831AF_ARM: .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 0\r
3832 .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 1\r
3833 .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 2\r
3834 .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 3\r
3835 .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 4\r
3836 .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 5\r
3837 .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 6\r
3838 .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 7\r
3839 .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 8\r
3840 .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 9\r
3841 .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 10\r
3842 .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 11\r
3843 .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 12\r
3844 .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 13\r
3845 .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 14\r
3846 .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 15\r
3847 .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 16\r
3848 .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 17\r
3849 .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 18\r
3850 .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 19\r
3851 .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 20\r
3852 .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 21\r
3853 .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 22\r
3854 .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 23\r
3855 .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 24\r
3856 .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 25\r
3857 .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 26\r
3858 .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 27\r
3859 .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 28\r
3860 .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 29\r
3861 .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 30\r
3862 .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 31\r
3863 .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 32\r
3864 .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 33\r
3865 .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 34\r
3866 .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 35\r
3867 .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 36\r
3868 .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 37\r
3869 .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 38\r
3870 .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 39\r
3871 .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 40\r
3872 .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 41\r
3873 .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 42\r
3874 .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 43\r
3875 .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 44\r
3876 .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 45\r
3877 .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 46\r
3878 .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 47\r
3879 .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 48\r
3880 .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 49\r
3881 .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 50\r
3882 .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 51\r
3883 .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 52\r
3884 .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 53\r
3885 .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 54\r
3886 .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 55\r
3887 .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 56\r
3888 .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 57\r
3889 .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 58\r
3890 .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 59\r
3891 .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 60\r
3892 .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 61\r
3893 .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 62\r
3894 .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 63\r
3895 .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 64\r
3896 .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 65\r
3897 .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 66\r
3898 .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 67\r
3899 .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 68\r
3900 .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 69\r
3901 .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 70\r
3902 .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 71\r
3903 .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 72\r
3904 .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 73\r
3905 .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 74\r
3906 .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 75\r
3907 .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 76\r
3908 .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 77\r
3909 .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 78\r
3910 .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 79\r
3911 .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 80\r
3912 .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 81\r
3913 .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 82\r
3914 .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 83\r
3915 .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 84\r
3916 .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 85\r
3917 .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 86\r
3918 .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 87\r
3919 .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 88\r
3920 .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 89\r
3921 .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 90\r
3922 .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 91\r
3923 .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 92\r
3924 .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 93\r
3925 .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 94\r
3926 .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 95\r
3927 .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 96\r
3928 .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 97\r
3929 .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 98\r
3930 .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 99\r
3931 .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 100\r
3932 .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 101\r
3933 .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 102\r
3934 .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 103\r
3935 .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 104\r
3936 .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 105\r
3937 .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 106\r
3938 .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 107\r
3939 .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 108\r
3940 .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 109\r
3941 .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 110\r
3942 .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 111\r
3943 .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 112\r
3944 .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 113\r
3945 .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 114\r
3946 .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 115\r
3947 .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 116\r
3948 .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 117\r
3949 .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 118\r
3950 .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 119\r
3951 .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 120\r
3952 .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 121\r
3953 .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 122\r
3954 .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 123\r
3955 .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 124\r
3956 .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 125\r
3957 .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 126\r
3958 .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 127\r
3959 .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 128\r
3960 .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 129\r
3961 .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 130\r
3962 .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 131\r
3963 .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 132\r
3964 .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 133\r
3965 .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 134\r
3966 .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 135\r
3967 .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 136\r
3968 .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 137\r
3969 .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 138\r
3970 .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 139\r
3971 .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 140\r
3972 .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 141\r
3973 .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 142\r
3974 .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 143\r
3975 .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 144\r
3976 .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 145\r
3977 .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 146\r
3978 .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 147\r
3979 .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 148\r
3980 .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 149\r
3981 .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 150\r
3982 .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 151\r
3983 .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 152\r
3984 .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 153\r
3985 .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 154\r
3986 .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 155\r
3987 .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 156\r
3988 .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 157\r
3989 .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 158\r
3990 .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 159\r
3991 .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 160\r
3992 .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 161\r
3993 .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 162\r
3994 .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 163\r
3995 .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 164\r
3996 .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 165\r
3997 .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 166\r
3998 .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 167\r
3999 .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 168\r
4000 .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 169\r
4001 .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 170\r
4002 .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 171\r
4003 .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 172\r
4004 .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 173\r
4005 .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 174\r
4006 .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 175\r
4007 .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 176\r
4008 .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 177\r
4009 .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 178\r
4010 .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 179\r
4011 .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 180\r
4012 .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 181\r
4013 .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 182\r
4014 .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 183\r
4015 .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 184\r
4016 .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 185\r
4017 .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 186\r
4018 .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 187\r
4019 .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 188\r
4020 .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 189\r
4021 .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 190\r
4022 .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 191\r
4023 .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 192\r
4024 .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 193\r
4025 .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 194\r
4026 .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 195\r
4027 .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 196\r
4028 .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 197\r
4029 .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 198\r
4030 .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 199\r
4031 .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 200\r
4032 .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 201\r
4033 .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 202\r
4034 .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 203\r
4035 .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 204\r
4036 .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 205\r
4037 .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 206\r
4038 .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 207\r
4039 .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 208\r
4040 .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 209\r
4041 .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 210\r
4042 .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 211\r
4043 .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 212\r
4044 .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 213\r
4045 .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 214\r
4046 .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 215\r
4047 .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 216\r
4048 .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 217\r
4049 .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 218\r
4050 .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 219\r
4051 .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 220\r
4052 .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 221\r
4053 .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 222\r
4054 .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 223\r
4055 .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 224\r
4056 .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 225\r
4057 .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 226\r
4058 .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 227\r
4059 .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 228\r
4060 .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 229\r
4061 .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 230\r
4062 .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 231\r
4063 .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 232\r
4064 .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 233\r
4065 .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 234\r
4066 .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 235\r
4067 .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 236\r
4068 .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 237\r
4069 .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 238\r
4070 .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 239\r
4071 .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 240\r
4072 .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 241\r
4073 .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 242\r
4074 .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 243\r
4075 .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 244\r
4076 .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 245\r
4077 .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 246\r
4078 .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 247\r
4079 .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 248\r
4080 .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 249\r
4081 .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 250\r
4082 .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 251\r
4083 .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 252\r
4084 .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 253\r
4085 .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 254\r
4086 .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 255\r
4087\r
4088.align 4\r
4089\r
4090PZSTable_data: .byte (1<<ZFlag)|(1<<VFlag),0,0,(1<<VFlag),0,(1<<VFlag),(1<<VFlag),0\r
4091 .byte 0,(1<<VFlag),(1<<VFlag),0,(1<<VFlag),0,0,(1<<VFlag)\r
4092 .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
4093 .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
4094 .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
4095 .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
4096 .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
4097 .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
4098 .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
4099 .byte (1<<SFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)\r
4100 .byte (1<<SFlag)|(1<<VFlag),(1<<SFlag),(1<<SFlag),(1<<SFlag)|(1<<VFlag)\r
4101 .byte (1<<SFlag)|(1<<VFlag),(1<<SFlag),(1<<SFlag),(1<<SFlag)|(1<<VFlag)\r
4102 .byte (1<<SFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)\r
4103 .byte (1<<SFlag)|(1<<VFlag),(1<<SFlag),(1<<SFlag),(1<<SFlag)|(1<<VFlag)\r
4104 .byte (1<<SFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)\r
4105 .byte (1<<SFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)\r
4106 .byte (1<<SFlag)|(1<<VFlag),(1<<SFlag),(1<<SFlag),(1<<SFlag)|(1<<VFlag)\r
4107 .byte (1<<SFlag)|(1<<VFlag),(1<<SFlag),(1<<SFlag),(1<<SFlag)|(1<<VFlag)\r
4108 .byte (1<<SFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)\r
4109 .byte (1<<SFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)\r
4110 .byte (1<<SFlag)|(1<<VFlag),(1<<SFlag),(1<<SFlag),(1<<SFlag)|(1<<VFlag)\r
4111 .byte (1<<SFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)\r
4112 .byte (1<<SFlag)|(1<<VFlag),(1<<SFlag),(1<<SFlag),(1<<SFlag)|(1<<VFlag)\r
4113 .byte (1<<SFlag)|(1<<VFlag),(1<<SFlag),(1<<SFlag),(1<<SFlag)|(1<<VFlag)\r
4114 .byte (1<<SFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)\r
4115 .byte (1<<SFlag)|(1<<VFlag),(1<<SFlag),(1<<SFlag),(1<<SFlag)|(1<<VFlag)\r
4116 .byte (1<<SFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)\r
4117 .byte (1<<SFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)\r
4118 .byte (1<<SFlag)|(1<<VFlag),(1<<SFlag),(1<<SFlag),(1<<SFlag)|(1<<VFlag)\r
4119 .byte (1<<SFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)\r
4120 .byte (1<<SFlag)|(1<<VFlag),(1<<SFlag),(1<<SFlag),(1<<SFlag)|(1<<VFlag)\r
4121 .byte (1<<SFlag)|(1<<VFlag),(1<<SFlag),(1<<SFlag),(1<<SFlag)|(1<<VFlag)\r
4122 .byte (1<<SFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)\r
4123 .byte (1<<SFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)\r
4124 .byte (1<<SFlag)|(1<<VFlag),(1<<SFlag),(1<<SFlag),(1<<SFlag)|(1<<VFlag)\r
4125 .byte (1<<SFlag)|(1<<VFlag),(1<<SFlag),(1<<SFlag),(1<<SFlag)|(1<<VFlag)\r
4126 .byte (1<<SFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)\r
4127 .byte (1<<SFlag)|(1<<VFlag),(1<<SFlag),(1<<SFlag),(1<<SFlag)|(1<<VFlag)\r
4128 .byte (1<<SFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)\r
4129 .byte (1<<SFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)\r
4130 .byte (1<<SFlag)|(1<<VFlag),(1<<SFlag),(1<<SFlag),(1<<SFlag)|(1<<VFlag) \r
4131\r
4132.align 4\r
4133\r
4134MAIN_opcodes: \r
4135 .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
4136 .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
4137 .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
4138 .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
4139 .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
4140 .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
4141 .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
4142 .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
4143 .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
4144 .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
4145 .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
4146 .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
4147 .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
4148 .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
4149 .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
4150 .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
4151 .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
4152 .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
4153 .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
4154 .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
4155 .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
4156 .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
4157 .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
4158 .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
4159 .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
4160 .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
4161 .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
4162 .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
4163 .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
4164 .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
4165 .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
4166 .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
4167\r
4168.align 4\r
4169\r
4170EI_DUMMY_opcodes:\r
4171 .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@0\r
4172 .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@0\r
4173 .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@1\r
4174 .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@1\r
4175 .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@2\r
4176 .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@2\r
4177 .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@3\r
4178 .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@3\r
4179 .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@4\r
4180 .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@4\r
4181 .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@5\r
4182 .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@5\r
4183 .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@6\r
4184 .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@6\r
4185 .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@7\r
4186 .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@7\r
4187 .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@8\r
4188 .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@8\r
4189 .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@9\r
4190 .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@9\r
4191 .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@A\r
4192 .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@A\r
4193 .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@B\r
4194 .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@B\r
4195 .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@C\r
4196 .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@C\r
4197 .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@D\r
4198 .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@D\r
4199 .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@E\r
4200 .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@E\r
4201 .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@F\r
4202 .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@F\r
4203\r
4204.text\r
4205.align 4\r
4206\r
4207;@NOP\r
4208opcode_0_0:\r
4209;@LD B,B\r
4210opcode_4_0:\r
4211;@LD C,C\r
4212opcode_4_9:\r
4213;@LD D,D\r
4214opcode_5_2:\r
4215;@LD E,E\r
4216opcode_5_B:\r
4217;@LD H,H\r
4218opcode_6_4:\r
4219;@LD L,L\r
4220opcode_6_D:\r
4221;@LD A,A\r
4222opcode_7_F:\r
4223 fetch 4\r
4224;@LD BC,NN\r
4225opcode_0_1:\r
4226 ldrb r0,[z80pc],#1\r
4227 ldrb r1,[z80pc],#1\r
4228 orr r0,r0,r1, lsl #8\r
4229 mov z80bc,r0, lsl #16\r
4230 fetch 10\r
4231;@LD (BC),A\r
4232opcode_0_2:\r
4233 mov r0,z80a, lsr #24\r
4234 mov r1,z80bc, lsr #16\r
4235 writemem8\r
4236 fetch 7\r
4237;@INC BC\r
4238opcode_0_3:\r
4239 add z80bc,z80bc,#1<<16\r
4240 fetch 6\r
4241;@INC B\r
4242opcode_0_4:\r
4243 opINC8H z80bc\r
4244 fetch 4\r
4245;@DEC B\r
4246opcode_0_5:\r
4247 opDEC8H z80bc\r
4248 fetch 4\r
4249;@LD B,N\r
4250opcode_0_6:\r
4251 ldrb r1,[z80pc],#1\r
4252 and z80bc,z80bc,#0xFF<<16\r
4253 orr z80bc,z80bc,r1, lsl #24\r
4254 fetch 7\r
4255;@RLCA\r
4256opcode_0_7:\r
4257 bic z80f,z80f,#(1<<NFlag)|(1<<HFlag)|(1<<CFlag)\r
4258 movs z80a,z80a, lsl #1\r
4259 orrcs z80a,z80a,#1<<24\r
4260 orrcs z80f,z80f,#1<<CFlag\r
4261 fetch 4\r
4262;@EX AF,AF'\r
4263opcode_0_8:\r
4264 add r1,cpucontext,#z80a2\r
4265 swp z80a,z80a,[r1]\r
4266 add r1,cpucontext,#z80f2\r
4267 swp z80f,z80f,[r1]\r
4268 fetch 4\r
4269;@ADD HL,BC\r
4270opcode_0_9:\r
4271 opADD16 z80hl z80bc\r
4272 fetch 11\r
4273;@LD A,(BC)\r
4274opcode_0_A:\r
4275 mov r0,z80bc, lsr #16\r
4276 readmem8\r
4277 mov z80a,r0, lsl #24\r
4278 fetch 7\r
4279;@DEC BC\r
4280opcode_0_B:\r
4281 sub z80bc,z80bc,#1<<16\r
4282 fetch 6\r
4283;@INC C\r
4284opcode_0_C:\r
4285 opINC8L z80bc\r
4286 fetch 4\r
4287;@DEC C\r
4288opcode_0_D:\r
4289 opDEC8L z80bc\r
4290 fetch 4\r
4291;@LD C,N\r
4292opcode_0_E:\r
4293 ldrb r1,[z80pc],#1\r
4294 and z80bc,z80bc,#0xFF<<24\r
4295 orr z80bc,z80bc,r1, lsl #16\r
4296 fetch 7\r
4297;@RRCA\r
4298opcode_0_F:\r
4299 bic z80f,z80f,#(1<<NFlag)|(1<<HFlag)|(1<<CFlag)\r
4300 movs z80a,z80a, lsr #25\r
4301 orrcs z80a,z80a,#1<<7\r
4302 orrcs z80f,z80f,#1<<CFlag\r
4303 mov z80a,z80a, lsl #24\r
4304 fetch 4\r
4305;@DJNZ $+2\r
4306opcode_1_0:\r
4307 sub z80bc,z80bc,#1<<24\r
4308 tst z80bc,#0xFF<<24\r
4309 ldrsb r1,[z80pc],#1\r
4310 addne z80pc,z80pc,r1\r
4311 subne z80_icount,z80_icount,#5\r
4312 fetch 8\r
4313\r
4314;@LD DE,NN\r
4315opcode_1_1:\r
4316 ldrb r0,[z80pc],#1\r
4317 ldrb r1,[z80pc],#1\r
4318 orr r0,r0,r1, lsl #8\r
4319 mov z80de,r0, lsl #16\r
4320 fetch 10\r
4321;@LD (DE),A\r
4322opcode_1_2:\r
4323 mov r0,z80a, lsr #24\r
4324 writemem8DE\r
4325 fetch 7\r
4326;@INC DE\r
4327opcode_1_3:\r
4328 add z80de,z80de,#1<<16\r
4329 fetch 6\r
4330;@INC D\r
4331opcode_1_4:\r
4332 opINC8H z80de\r
4333 fetch 4\r
4334;@DEC D\r
4335opcode_1_5:\r
4336 opDEC8H z80de\r
4337 fetch 4\r
4338;@LD D,N\r
4339opcode_1_6:\r
4340 ldrb r1,[z80pc],#1\r
4341 and z80de,z80de,#0xFF<<16\r
4342 orr z80de,z80de,r1, lsl #24\r
4343 fetch 7\r
4344;@RLA\r
4345opcode_1_7:\r
4346 tst z80f,#1<<CFlag\r
4347 orrne z80a,z80a,#1<<23\r
4348 bic z80f,z80f,#(1<<NFlag)|(1<<HFlag)|(1<<CFlag)\r
4349 movs z80a,z80a, lsl #1\r
4350 orrcs z80f,z80f,#1<<CFlag\r
4351 fetch 4\r
4352;@JR $+2\r
4353opcode_1_8:\r
4354 ldrsb r1,[z80pc],#1\r
4355 add z80pc,z80pc,r1\r
4356 fetch 12\r
4357;@ADD HL,DE\r
4358opcode_1_9:\r
4359 opADD16 z80hl z80de\r
4360 fetch 11\r
4361;@LD A,(DE)\r
4362opcode_1_A:\r
4363 mov r0,z80de, lsr #16\r
4364 readmem8\r
4365 mov z80a,r0, lsl #24\r
4366 fetch 7\r
4367;@DEC DE\r
4368opcode_1_B:\r
4369 sub z80de,z80de,#1<<16\r
4370 fetch 6\r
4371;@INC E\r
4372opcode_1_C:\r
4373 opINC8L z80de\r
4374 fetch 4\r
4375;@DEC E\r
4376opcode_1_D:\r
4377 opDEC8L z80de\r
4378 fetch 4\r
4379;@LD E,N\r
4380opcode_1_E:\r
4381 ldrb r0,[z80pc],#1\r
4382 and z80de,z80de,#0xFF<<24\r
4383 orr z80de,z80de,r0, lsl #16\r
4384 fetch 7\r
4385;@RRA\r
4386opcode_1_F:\r
4387 orr z80a,z80a,z80f,lsr#1 ;@get C\r
4388 bic z80f,z80f,#(1<<NFlag)|(1<<HFlag)|(1<<CFlag)\r
4389 movs z80a,z80a,ror#25\r
4390 orrcs z80f,z80f,#1<<CFlag\r
4391 mov z80a,z80a,lsl#24\r
4392 fetch 4\r
4393;@JR NZ,$+2\r
4394opcode_2_0:\r
4395 tst z80f,#1<<ZFlag\r
4396 beq opcode_1_8\r
4397 add z80pc,z80pc,#1\r
4398 fetch 7\r
4399;@LD HL,NN\r
4400opcode_2_1:\r
4401 ldrb r0,[z80pc],#1\r
4402 ldrb r1,[z80pc],#1\r
4403 orr r0,r0,r1, lsl #8\r
4404 mov z80hl,r0, lsl #16\r
4405 fetch 10\r
4406;@LD (NN),HL\r
4407opcode_ED_63:\r
4408 eatcycles 4\r
4409;@LD (NN),HL\r
4410opcode_2_2:\r
4411 ldrb r0,[z80pc],#1\r
4412 ldrb r1,[z80pc],#1\r
4413 orr r1,r0,r1, lsl #8\r
4414 mov r0,z80hl, lsr #16\r
4415 writemem16\r
4416 fetch 16\r
4417;@INC HL\r
4418opcode_2_3:\r
4419 add z80hl,z80hl,#1<<16\r
4420 fetch 6\r
4421;@INC H\r
4422opcode_2_4:\r
4423 opINC8H z80hl\r
4424 fetch 4\r
4425;@DEC H\r
4426opcode_2_5:\r
4427 opDEC8H z80hl\r
4428 fetch 4\r
4429;@LD H,N\r
4430opcode_2_6:\r
4431 ldrb r1,[z80pc],#1\r
4432 and z80hl,z80hl,#0xFF<<16\r
4433 orr z80hl,z80hl,r1, lsl #24\r
4434 fetch 7\r
4435DAATABLE_LOCAL: .word DAATable\r
4436;@DAA\r
4437opcode_2_7:\r
4438 mov r1,z80a, lsr #24\r
4439 tst z80f,#1<<CFlag\r
4440 orrne r1,r1,#256\r
4441 tst z80f,#1<<HFlag\r
4442 orrne r1,r1,#512\r
4443 tst z80f,#1<<NFlag\r
4444 orrne r1,r1,#1024\r
4445 ldr r2,DAATABLE_LOCAL\r
4446 add r2,r2,r1, lsl #1\r
4447 ldrh r1,[r2]\r
4448 and z80f,r1,#0xFF\r
4449 and r2,r1,#0xFF<<8\r
4450 mov z80a,r2, lsl #16\r
4451 fetch 4\r
4452;@JR Z,$+2\r
4453opcode_2_8:\r
4454 tst z80f,#1<<ZFlag\r
4455 bne opcode_1_8\r
4456 add z80pc,z80pc,#1\r
4457 fetch 7\r
4458;@ADD HL,HL\r
4459opcode_2_9:\r
4460 opADD16_2 z80hl\r
4461 fetch 11\r
4462;@LD HL,(NN)\r
4463opcode_ED_6B:\r
4464 eatcycles 4\r
4465;@LD HL,(NN)\r
4466opcode_2_A:\r
4467 ldrb r0,[z80pc],#1\r
4468 ldrb r1,[z80pc],#1\r
4469 orr r0,r0,r1, lsl #8\r
4470 readmem16\r
4471 mov z80hl,r0, lsl #16\r
4472 fetch 16\r
4473;@DEC HL\r
4474opcode_2_B:\r
4475 sub z80hl,z80hl,#1<<16\r
4476 fetch 6\r
4477;@INC L\r
4478opcode_2_C:\r
4479 opINC8L z80hl\r
4480 fetch 4\r
4481;@DEC L\r
4482opcode_2_D:\r
4483 opDEC8L z80hl\r
4484 fetch 4\r
4485;@LD L,N\r
4486opcode_2_E:\r
4487 ldrb r0,[z80pc],#1\r
4488 and z80hl,z80hl,#0xFF<<24\r
4489 orr z80hl,z80hl,r0, lsl #16\r
4490 fetch 7\r
4491;@CPL\r
4492opcode_2_F:\r
4493 eor z80a,z80a,#0xFF<<24\r
4494 orr z80f,z80f,#(1<<NFlag)|(1<<HFlag)\r
4495 fetch 4\r
4496;@JR NC,$+2\r
4497opcode_3_0:\r
4498 tst z80f,#1<<CFlag\r
4499 beq opcode_1_8\r
4500 add z80pc,z80pc,#1\r
4501 fetch 7\r
4502;@LD SP,NN\r
4503opcode_3_1:\r
4504 ldrb r0,[z80pc],#1\r
4505 ldrb r1,[z80pc],#1\r
4506\r
4507.if FAST_Z80SP\r
4508 orr r0,r0,r1, lsl #8\r
4509 rebasesp\r
cc68a136 4510.else\r
4511 orr z80sp,r0,r1, lsl #8\r
4512.endif\r
4513 fetch 10\r
4514;@LD (NN),A\r
4515opcode_3_2:\r
4516 ldrb r0,[z80pc],#1\r
4517 ldrb r1,[z80pc],#1\r
4518 orr r1,r0,r1, lsl #8\r
4519 mov r0,z80a, lsr #24\r
4520 writemem8\r
4521 fetch 13\r
4522;@INC SP\r
4523opcode_3_3:\r
4524 add z80sp,z80sp,#1\r
4525 fetch 6\r
4526;@INC (HL)\r
4527opcode_3_4:\r
4528 readmem8HL\r
4529 opINC8b\r
4530 writemem8HL\r
4531 fetch 11\r
4532;@DEC (HL)\r
4533opcode_3_5:\r
4534 readmem8HL\r
4535 opDEC8b\r
4536 writemem8HL\r
4537 fetch 11\r
4538;@LD (HL),N\r
4539opcode_3_6:\r
4540 ldrb r0,[z80pc],#1\r
4541 writemem8HL\r
4542 fetch 10\r
4543;@SCF\r
4544opcode_3_7:\r
4545 bic z80f,z80f,#(1<<NFlag)|(1<<HFlag)\r
4546 orr z80f,z80f,#1<<CFlag\r
4547 fetch 4\r
4548;@JR C,$+2\r
4549opcode_3_8:\r
4550 tst z80f,#1<<CFlag\r
4551 bne opcode_1_8\r
4552 add z80pc,z80pc,#1\r
28d596af 4553 fetch 7\r
cc68a136 4554;@ADD HL,SP\r
4555opcode_3_9:\r
4556.if FAST_Z80SP\r
4557 ldr r0,[cpucontext,#z80sp_base]\r
4558 sub r0,z80sp,r0\r
4559 opADD16s z80hl r0 16\r
4560.else\r
4561 opADD16s z80hl z80sp 16\r
4562.endif\r
4563 fetch 11\r
4564;@LD A,(NN)\r
4565opcode_3_A:\r
4566 ldrb r0,[z80pc],#1\r
4567 ldrb r1,[z80pc],#1\r
4568 orr r0,r0,r1, lsl #8\r
4569 readmem8\r
4570 mov z80a,r0, lsl #24\r
28d596af 4571 fetch 13\r
cc68a136 4572;@DEC SP\r
4573opcode_3_B:\r
4574 sub z80sp,z80sp,#1\r
4575 fetch 6\r
4576;@INC A\r
4577opcode_3_C:\r
4578 opINC8 z80a\r
4579 fetch 4\r
4580;@DEC A\r
4581opcode_3_D:\r
4582 opDEC8 z80a\r
4583 fetch 4\r
4584;@LD A,N\r
4585opcode_3_E:\r
4586 ldrb r0,[z80pc],#1\r
4587 mov z80a,r0, lsl #24\r
4588 fetch 7\r
4589;@CCF\r
4590opcode_3_F:\r
4591 bic z80f,z80f,#(1<<NFlag)|(1<<HFlag)\r
4592 tst z80f,#1<<CFlag\r
4593 orrne z80f,z80f,#1<<HFlag\r
4594 eor z80f,z80f,#1<<CFlag\r
4595 fetch 4\r
4596\r
4597;@LD B,C\r
4598opcode_4_1:\r
4599 and z80bc,z80bc,#0xFF<<16\r
4600 orr z80bc,z80bc,z80bc, lsl #8\r
4601 fetch 4\r
4602;@LD B,D\r
4603opcode_4_2:\r
4604 and z80bc,z80bc,#0xFF<<16\r
4605 and r1,z80de,#0xFF<<24\r
4606 orr z80bc,z80bc,r1\r
4607 fetch 4\r
4608;@LD B,E\r
4609opcode_4_3:\r
4610 and z80bc,z80bc,#0xFF<<16\r
4611 and r1,z80de,#0xFF<<16\r
4612 orr z80bc,z80bc,r1, lsl #8\r
4613 fetch 4\r
4614;@LD B,H\r
4615opcode_4_4:\r
4616 and z80bc,z80bc,#0xFF<<16\r
4617 and r1,z80hl,#0xFF<<24\r
4618 orr z80bc,z80bc,r1\r
4619 fetch 4\r
4620;@LD B,L\r
4621opcode_4_5:\r
4622 and z80bc,z80bc,#0xFF<<16\r
4623 and r1,z80hl,#0xFF<<16\r
4624 orr z80bc,z80bc,r1, lsl #8\r
4625 fetch 4\r
4626;@LD B,(HL)\r
4627opcode_4_6:\r
4628 readmem8HL\r
4629 and z80bc,z80bc,#0xFF<<16\r
4630 orr z80bc,z80bc,r0, lsl #24\r
4631 fetch 7\r
4632;@LD B,A\r
4633opcode_4_7:\r
4634 and z80bc,z80bc,#0xFF<<16\r
4635 orr z80bc,z80bc,z80a\r
4636 fetch 4\r
4637;@LD C,B\r
4638opcode_4_8:\r
4639 and z80bc,z80bc,#0xFF<<24\r
4640 orr z80bc,z80bc,z80bc, lsr #8\r
4641 fetch 4\r
4642;@LD C,D\r
4643opcode_4_A:\r
4644 and z80bc,z80bc,#0xFF<<24\r
4645 and r1,z80de,#0xFF<<24\r
4646 orr z80bc,z80bc,r1, lsr #8\r
4647 fetch 4\r
4648;@LD C,E\r
4649opcode_4_B:\r
4650 and z80bc,z80bc,#0xFF<<24\r
4651 and r1,z80de,#0xFF<<16\r
4652 orr z80bc,z80bc,r1 \r
4653 fetch 4\r
4654;@LD C,H\r
4655opcode_4_C:\r
4656 and z80bc,z80bc,#0xFF<<24\r
4657 and r1,z80hl,#0xFF<<24\r
4658 orr z80bc,z80bc,r1, lsr #8\r
4659 fetch 4\r
4660;@LD C,L\r
4661opcode_4_D:\r
4662 and z80bc,z80bc,#0xFF<<24\r
4663 and r1,z80hl,#0xFF<<16\r
4664 orr z80bc,z80bc,r1 \r
4665 fetch 4\r
4666;@LD C,(HL)\r
4667opcode_4_E:\r
4668 readmem8HL\r
4669 and z80bc,z80bc,#0xFF<<24\r
4670 orr z80bc,z80bc,r0, lsl #16\r
4671 fetch 7\r
4672;@LD C,A\r
4673opcode_4_F:\r
4674 and z80bc,z80bc,#0xFF<<24\r
4675 orr z80bc,z80bc,z80a, lsr #8\r
4676 fetch 4\r
4677;@LD D,B\r
4678opcode_5_0:\r
4679 and z80de,z80de,#0xFF<<16\r
4680 and r1,z80bc,#0xFF<<24\r
4681 orr z80de,z80de,r1\r
4682 fetch 4\r
4683;@LD D,C\r
4684opcode_5_1:\r
4685 and z80de,z80de,#0xFF<<16\r
4686 orr z80de,z80de,z80bc, lsl #8\r
4687 fetch 4\r
4688;@LD D,E\r
4689opcode_5_3:\r
4690 and z80de,z80de,#0xFF<<16\r
4691 orr z80de,z80de,z80de, lsl #8\r
4692 fetch 4\r
4693;@LD D,H\r
4694opcode_5_4:\r
4695 and z80de,z80de,#0xFF<<16\r
4696 and r1,z80hl,#0xFF<<24\r
4697 orr z80de,z80de,r1\r
4698 fetch 4\r
4699;@LD D,L\r
4700opcode_5_5:\r
4701 and z80de,z80de,#0xFF<<16\r
4702 orr z80de,z80de,z80hl, lsl #8\r
4703 fetch 4\r
4704;@LD D,(HL)\r
4705opcode_5_6:\r
4706 readmem8HL\r
4707 and z80de,z80de,#0xFF<<16\r
4708 orr z80de,z80de,r0, lsl #24\r
4709 fetch 7\r
4710;@LD D,A\r
4711opcode_5_7:\r
4712 and z80de,z80de,#0xFF<<16\r
4713 orr z80de,z80de,z80a\r
4714 fetch 4\r
4715;@LD E,B\r
4716opcode_5_8:\r
4717 and z80de,z80de,#0xFF<<24\r
4718 and r1,z80bc,#0xFF<<24\r
4719 orr z80de,z80de,r1, lsr #8\r
4720 fetch 4\r
4721;@LD E,C\r
4722opcode_5_9:\r
4723 and z80de,z80de,#0xFF<<24\r
4724 and r1,z80bc,#0xFF<<16\r
4725 orr z80de,z80de,r1 \r
4726 fetch 4\r
4727;@LD E,D\r
4728opcode_5_A:\r
4729 and z80de,z80de,#0xFF<<24\r
4730 orr z80de,z80de,z80de, lsr #8\r
4731 fetch 4\r
4732;@LD E,H\r
4733opcode_5_C:\r
4734 and z80de,z80de,#0xFF<<24\r
4735 and r1,z80hl,#0xFF<<24\r
4736 orr z80de,z80de,r1, lsr #8\r
4737 fetch 4\r
4738;@LD E,L\r
4739opcode_5_D:\r
4740 and z80de,z80de,#0xFF<<24\r
4741 and r1,z80hl,#0xFF<<16\r
4742 orr z80de,z80de,r1 \r
4743 fetch 4\r
4744;@LD E,(HL)\r
4745opcode_5_E:\r
4746 readmem8HL\r
4747 and z80de,z80de,#0xFF<<24\r
4748 orr z80de,z80de,r0, lsl #16\r
4749 fetch 7\r
4750;@LD E,A\r
4751opcode_5_F:\r
4752 and z80de,z80de,#0xFF<<24\r
4753 orr z80de,z80de,z80a, lsr #8\r
4754 fetch 4\r
4755\r
4756;@LD H,B\r
4757opcode_6_0:\r
4758 and z80hl,z80hl,#0xFF<<16\r
4759 and r1,z80bc,#0xFF<<24\r
4760 orr z80hl,z80hl,r1\r
4761 fetch 4\r
4762;@LD H,C\r
4763opcode_6_1:\r
4764 and z80hl,z80hl,#0xFF<<16\r
4765 orr z80hl,z80hl,z80bc, lsl #8\r
4766 fetch 4\r
4767;@LD H,D\r
4768opcode_6_2:\r
4769 and z80hl,z80hl,#0xFF<<16\r
4770 and r1,z80de,#0xFF<<24\r
4771 orr z80hl,z80hl,r1\r
4772 fetch 4\r
4773;@LD H,E\r
4774opcode_6_3:\r
4775 and z80hl,z80hl,#0xFF<<16\r
4776 orr z80hl,z80hl,z80de, lsl #8\r
4777 fetch 4\r
4778;@LD H,L\r
4779opcode_6_5:\r
4780 and z80hl,z80hl,#0xFF<<16\r
4781 orr z80hl,z80hl,z80hl, lsl #8\r
4782 fetch 4\r
4783;@LD H,(HL)\r
4784opcode_6_6:\r
4785 readmem8HL\r
4786 and z80hl,z80hl,#0xFF<<16\r
4787 orr z80hl,z80hl,r0, lsl #24\r
4788 fetch 7\r
4789;@LD H,A\r
4790opcode_6_7:\r
4791 and z80hl,z80hl,#0xFF<<16\r
4792 orr z80hl,z80hl,z80a\r
4793 fetch 4\r
4794\r
4795;@LD L,B\r
4796opcode_6_8:\r
4797 and z80hl,z80hl,#0xFF<<24\r
4798 and r1,z80bc,#0xFF<<24\r
4799 orr z80hl,z80hl,r1, lsr #8\r
4800 fetch 4\r
4801;@LD L,C\r
4802opcode_6_9:\r
4803 and z80hl,z80hl,#0xFF<<24\r
4804 and r1,z80bc,#0xFF<<16\r
4805 orr z80hl,z80hl,r1\r
4806 fetch 4\r
4807;@LD L,D\r
4808opcode_6_A:\r
4809 and z80hl,z80hl,#0xFF<<24\r
4810 and r1,z80de,#0xFF<<24\r
4811 orr z80hl,z80hl,r1, lsr #8\r
4812 fetch 4\r
4813;@LD L,E\r
4814opcode_6_B:\r
4815 and z80hl,z80hl,#0xFF<<24\r
4816 and r1,z80de,#0xFF<<16\r
4817 orr z80hl,z80hl,r1\r
4818 fetch 4\r
4819;@LD L,H\r
4820opcode_6_C:\r
4821 and z80hl,z80hl,#0xFF<<24\r
4822 orr z80hl,z80hl,z80hl, lsr #8\r
4823 fetch 4\r
4824;@LD L,(HL)\r
4825opcode_6_E:\r
4826 readmem8HL\r
4827 and z80hl,z80hl,#0xFF<<24\r
4828 orr z80hl,z80hl,r0, lsl #16\r
4829 fetch 7\r
4830;@LD L,A\r
4831opcode_6_F:\r
4832 and z80hl,z80hl,#0xFF<<24\r
4833 orr z80hl,z80hl,z80a, lsr #8\r
4834 fetch 4\r
4835\r
4836;@LD (HL),B\r
4837opcode_7_0:\r
4838 mov r0,z80bc, lsr #24\r
4839 writemem8HL\r
4840 fetch 7\r
4841;@LD (HL),C\r
4842opcode_7_1:\r
4843 mov r0,z80bc, lsr #16\r
4844 and r0,r0,#0xFF\r
4845 writemem8HL\r
4846 fetch 7\r
4847;@LD (HL),D\r
4848opcode_7_2:\r
4849 mov r0,z80de, lsr #24\r
4850 writemem8HL\r
4851 fetch 7\r
4852;@LD (HL),E\r
4853opcode_7_3:\r
4854 mov r0,z80de, lsr #16\r
4855 and r0,r0,#0xFF\r
4856 writemem8HL\r
4857 fetch 7\r
4858;@LD (HL),H\r
4859opcode_7_4:\r
4860 mov r0,z80hl, lsr #24\r
4861 writemem8HL\r
4862 fetch 7\r
4863;@LD (HL),L\r
4864opcode_7_5:\r
4865 mov r1,z80hl, lsr #16\r
4866 and r0,r1,#0xFF\r
4867 writemem8\r
4868 fetch 7\r
4869;@HALT\r
4870opcode_7_6:\r
4871 sub z80pc,z80pc,#1\r
4872 ldrb r0,[cpucontext,#z80if]\r
4873 orr r0,r0,#Z80_HALT\r
4874 strb r0,[cpucontext,#z80if]\r
28d596af 4875 mov z80_icount,#0\r
cc68a136 4876 b z80_execute_end\r
4877;@LD (HL),A\r
4878opcode_7_7:\r
4879 mov r0,z80a, lsr #24\r
4880 writemem8HL\r
4881 fetch 7\r
4882\r
4883;@LD A,B\r
4884opcode_7_8:\r
4885 and z80a,z80bc,#0xFF<<24\r
4886 fetch 4\r
4887;@LD A,C\r
4888opcode_7_9:\r
4889 mov z80a,z80bc, lsl #8\r
4890 fetch 4\r
4891;@LD A,D\r
4892opcode_7_A:\r
4893 and z80a,z80de,#0xFF<<24\r
4894 fetch 4\r
4895;@LD A,E\r
4896opcode_7_B:\r
4897 mov z80a,z80de, lsl #8\r
4898 fetch 4\r
4899;@LD A,H\r
4900opcode_7_C:\r
4901 and z80a,z80hl,#0xFF<<24\r
4902 fetch 4\r
4903;@LD A,L\r
4904opcode_7_D:\r
4905 mov z80a,z80hl, lsl #8\r
4906 fetch 4\r
4907;@LD A,(HL)\r
4908opcode_7_E:\r
4909 readmem8HL\r
4910 mov z80a,r0, lsl #24\r
4911 fetch 7\r
4912\r
4913;@ADD A,B\r
4914opcode_8_0:\r
4915 opADDH z80bc\r
4916;@ADD A,C\r
4917opcode_8_1:\r
4918 opADDL z80bc\r
4919;@ADD A,D\r
4920opcode_8_2:\r
4921 opADDH z80de\r
4922;@ADD A,E\r
4923opcode_8_3:\r
4924 opADDL z80de\r
4925;@ADD A,H\r
4926opcode_8_4:\r
4927 opADDH z80hl\r
4928;@ADD A,L\r
4929opcode_8_5:\r
4930 opADDL z80hl\r
4931;@ADD A,(HL)\r
4932opcode_8_6:\r
4933 readmem8HL\r
4934 opADDb\r
4935 fetch 7\r
4936;@ADD A,A\r
4937opcode_8_7:\r
4938 opADDA\r
4939\r
4940;@ADC A,B\r
4941opcode_8_8:\r
4942 opADCH z80bc\r
4943;@ADC A,C\r
4944opcode_8_9:\r
4945 opADCL z80bc\r
4946;@ADC A,D\r
4947opcode_8_A:\r
4948 opADCH z80de\r
4949;@ADC A,E\r
4950opcode_8_B:\r
4951 opADCL z80de\r
4952;@ADC A,H\r
4953opcode_8_C:\r
4954 opADCH z80hl\r
4955;@ADC A,L\r
4956opcode_8_D:\r
4957 opADCL z80hl\r
4958;@ADC A,(HL)\r
4959opcode_8_E:\r
4960 readmem8HL\r
4961 opADCb\r
4962 fetch 7\r
4963;@ADC A,A\r
4964opcode_8_F:\r
4965 opADCA\r
4966\r
4967;@SUB B\r
4968opcode_9_0:\r
4969 opSUBH z80bc\r
4970;@SUB C\r
4971opcode_9_1:\r
4972 opSUBL z80bc\r
4973;@SUB D\r
4974opcode_9_2:\r
4975 opSUBH z80de\r
4976;@SUB E\r
4977opcode_9_3:\r
4978 opSUBL z80de\r
4979;@SUB H\r
4980opcode_9_4:\r
4981 opSUBH z80hl\r
4982;@SUB L\r
4983opcode_9_5:\r
4984 opSUBL z80hl\r
4985;@SUB (HL)\r
4986opcode_9_6:\r
4987 readmem8HL\r
4988 opSUBb\r
4989 fetch 7\r
4990;@SUB A\r
4991opcode_9_7:\r
4992 opSUBA\r
4993\r
4994;@SBC B \r
4995opcode_9_8:\r
4996 opSBCH z80bc\r
4997;@SBC C\r
4998opcode_9_9:\r
4999 opSBCL z80bc\r
5000;@SBC D\r
5001opcode_9_A:\r
5002 opSBCH z80de\r
5003;@SBC E\r
5004opcode_9_B:\r
5005 opSBCL z80de\r
5006;@SBC H\r
5007opcode_9_C:\r
5008 opSBCH z80hl\r
5009;@SBC L\r
5010opcode_9_D:\r
5011 opSBCL z80hl\r
5012;@SBC (HL)\r
5013opcode_9_E:\r
5014 readmem8HL\r
5015 opSBCb\r
5016 fetch 7\r
5017;@SBC A\r
5018opcode_9_F:\r
5019 opSBCA\r
5020\r
5021;@AND B\r
5022opcode_A_0:\r
5023 opANDH z80bc\r
5024;@AND C\r
5025opcode_A_1:\r
5026 opANDL z80bc\r
5027;@AND D\r
5028opcode_A_2:\r
5029 opANDH z80de\r
5030;@AND E\r
5031opcode_A_3:\r
5032 opANDL z80de\r
5033;@AND H\r
5034opcode_A_4:\r
5035 opANDH z80hl\r
5036;@AND L\r
5037opcode_A_5:\r
5038 opANDL z80hl\r
5039;@AND (HL)\r
5040opcode_A_6:\r
5041 readmem8HL\r
5042 opANDb\r
5043 fetch 7\r
5044;@AND A\r
5045opcode_A_7:\r
5046 opANDA\r
5047\r
5048;@XOR B\r
5049opcode_A_8:\r
5050 opXORH z80bc\r
5051;@XOR C\r
5052opcode_A_9:\r
5053 opXORL z80bc\r
5054;@XOR D\r
5055opcode_A_A:\r
5056 opXORH z80de\r
5057;@XOR E\r
5058opcode_A_B:\r
5059 opXORL z80de\r
5060;@XOR H\r
5061opcode_A_C:\r
5062 opXORH z80hl\r
5063;@XOR L\r
5064opcode_A_D:\r
5065 opXORL z80hl\r
5066;@XOR (HL)\r
5067opcode_A_E:\r
5068 readmem8HL\r
5069 opXORb\r
5070 fetch 7\r
5071;@XOR A\r
5072opcode_A_F:\r
5073 opXORA\r
5074\r
5075;@OR B\r
5076opcode_B_0:\r
5077 opORH z80bc\r
5078;@OR C\r
5079opcode_B_1:\r
5080 opORL z80bc\r
5081;@OR D\r
5082opcode_B_2:\r
5083 opORH z80de\r
5084;@OR E\r
5085opcode_B_3:\r
5086 opORL z80de\r
5087;@OR H\r
5088opcode_B_4:\r
5089 opORH z80hl\r
5090;@OR L\r
5091opcode_B_5:\r
5092 opORL z80hl\r
5093;@OR (HL)\r
5094opcode_B_6:\r
5095 readmem8HL\r
5096 opORb\r
5097 fetch 7\r
5098;@OR A\r
5099opcode_B_7:\r
5100 opORA\r
5101\r
5102;@CP B\r
5103opcode_B_8:\r
5104 opCPH z80bc\r
5105;@CP C\r
5106opcode_B_9:\r
5107 opCPL z80bc\r
5108;@CP D\r
5109opcode_B_A:\r
5110 opCPH z80de\r
5111;@CP E\r
5112opcode_B_B:\r
5113 opCPL z80de\r
5114;@CP H\r
5115opcode_B_C:\r
5116 opCPH z80hl\r
5117;@CP L\r
5118opcode_B_D:\r
5119 opCPL z80hl\r
5120;@CP (HL)\r
5121opcode_B_E:\r
5122 readmem8HL\r
5123 opCPb\r
5124 fetch 7\r
5125;@CP A\r
5126opcode_B_F:\r
5127 opCPA\r
5128\r
5129;@RET NZ\r
5130opcode_C_0:\r
5131 tst z80f,#1<<ZFlag\r
28d596af 5132 beq opcode_C_9_cond ;@unconditional RET\r
cc68a136 5133 fetch 5\r
5134\r
5135;@POP BC\r
5136opcode_C_1:\r
5137 opPOPreg z80bc\r
5138\r
5139;@JP NZ,$+3\r
5140opcode_C_2:\r
5141 tst z80f,#1<<ZFlag\r
5142 beq opcode_C_3 ;@unconditional JP\r
5143 add z80pc,z80pc,#2\r
5144 fetch 10\r
5145;@JP $+3\r
5146opcode_C_3:\r
5147 ldrb r0,[z80pc],#1\r
5148 ldrb r1,[z80pc],#1\r
5149 orr r0,r0,r1, lsl #8\r
5150 rebasepc\r
5151 fetch 10\r
5152;@CALL NZ,NN\r
5153opcode_C_4:\r
5154 tst z80f,#1<<ZFlag\r
5155 beq opcode_C_D ;@unconditional CALL\r
5156 add z80pc,z80pc,#2\r
5157 fetch 10\r
5158\r
5159;@PUSH BC\r
5160opcode_C_5:\r
5161 opPUSHreg z80bc\r
5162 fetch 11\r
5163;@ADD A,N\r
5164opcode_C_6:\r
5165 ldrb r0,[z80pc],#1\r
5166 opADDb\r
5167 fetch 7\r
5168;@RST 0\r
5169opcode_C_7:\r
5170 opRST 0x00\r
5171\r
5172;@RET Z\r
5173opcode_C_8:\r
5174 tst z80f,#1<<ZFlag\r
28d596af 5175 bne opcode_C_9_cond ;@unconditional RET\r
cc68a136 5176 fetch 5\r
28d596af 5177\r
5178opcode_C_9_cond:\r
de89bf45 5179 eatcycles 1\r
cc68a136 5180;@RET\r
5181opcode_C_9:\r
5182 opPOP\r
5183 rebasepc\r
5184 fetch 10\r
5185;@JP Z,$+3\r
5186opcode_C_A:\r
5187 tst z80f,#1<<ZFlag\r
5188 bne opcode_C_3 ;@unconditional JP\r
5189 add z80pc,z80pc,#2\r
5190 fetch 10\r
5191\r
5192;@This reads this opcodes_CB lookup table to find the location of\r
5193;@the CB sub for the intruction and then branches to that location\r
5194opcode_C_B:\r
5195 ldrb r0,[z80pc],#1\r
5196 ldr pc,[pc,r0, lsl #2]\r
5197opcodes_CB: .word 0x00000000\r
5198 .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
5199 .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
5200 .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
5201 .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
5202 .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
5203 .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
5204 .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
5205 .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
5206 .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
5207 .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
5208 .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
5209 .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
5210 .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
5211 .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
5212 .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
5213 .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
5214 .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
5215 .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
5216 .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
5217 .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
5218 .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
5219 .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
5220 .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
5221 .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
5222 .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
5223 .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
5224 .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
5225 .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
5226 .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
5227 .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
5228 .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
5229 .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
5230\r
5231;@CALL Z,NN\r
5232opcode_C_C:\r
5233 tst z80f,#1<<ZFlag\r
5234 bne opcode_C_D ;@unconditional CALL\r
5235 add z80pc,z80pc,#2\r
5236 fetch 10\r
5237;@CALL NN\r
5238opcode_C_D:\r
5239 ldrb r0,[z80pc],#1\r
5240 ldrb r1,[z80pc],#1\r
5241 ldr r2,[cpucontext,#z80pc_base]\r
5242 sub r2,z80pc,r2\r
5243 orr z80pc,r0,r1, lsl #8\r
5244 opPUSHareg r2\r
5245 mov r0,z80pc\r
5246 rebasepc\r
5247 fetch 17\r
5248;@ADC A,N\r
5249opcode_C_E:\r
5250 ldrb r0,[z80pc],#1\r
5251 opADCb\r
5252 fetch 7\r
5253;@RST 8H\r
5254opcode_C_F:\r
5255 opRST 0x08\r
5256\r
5257;@RET NC\r
5258opcode_D_0:\r
5259 tst z80f,#1<<CFlag\r
28d596af 5260 beq opcode_C_9_cond ;@unconditional RET\r
cc68a136 5261 fetch 5\r
5262;@POP DE\r
5263opcode_D_1:\r
5264 opPOPreg z80de\r
5265\r
5266;@JP NC, $+3\r
5267opcode_D_2 :\r
5268 tst z80f,#1<<CFlag\r
5269 beq opcode_C_3 ;@unconditional JP\r
5270 add z80pc,z80pc,#2\r
5271 fetch 10\r
5272;@OUT (N),A\r
5273opcode_D_3:\r
5274 ldrb r0,[z80pc],#1\r
5275 orr r0,r0,z80a,lsr#16\r
5276 mov r1,z80a, lsr #24\r
5277 opOUT\r
5278 fetch 11\r
5279;@CALL NC,NN\r
5280opcode_D_4:\r
5281 tst z80f,#1<<CFlag\r
5282 beq opcode_C_D ;@unconditional CALL\r
5283 add z80pc,z80pc,#2\r
5284 fetch 10\r
5285;@PUSH DE\r
5286opcode_D_5:\r
5287 opPUSHreg z80de\r
5288 fetch 11\r
5289;@SUB N\r
5290opcode_D_6:\r
5291 ldrb r0,[z80pc],#1\r
5292 opSUBb\r
5293 fetch 7\r
5294\r
5295;@RST 10H\r
5296opcode_D_7:\r
5297 opRST 0x10\r
5298\r
5299;@RET C\r
5300opcode_D_8:\r
5301 tst z80f,#1<<CFlag\r
28d596af 5302 bne opcode_C_9_cond ;@unconditional RET\r
cc68a136 5303 fetch 5\r
5304;@EXX\r
5305opcode_D_9:\r
5306 add r1,cpucontext,#z80bc2\r
5307 swp z80bc,z80bc,[r1]\r
5308 add r1,cpucontext,#z80de2\r
5309 swp z80de,z80de,[r1]\r
5310 add r1,cpucontext,#z80hl2\r
5311 swp z80hl,z80hl,[r1]\r
5312 fetch 4\r
5313;@JP C,$+3\r
5314opcode_D_A:\r
5315 tst z80f,#1<<CFlag\r
5316 bne opcode_C_3 ;@unconditional JP\r
5317 add z80pc,z80pc,#2\r
5318 fetch 10\r
5319;@IN A,(N)\r
5320opcode_D_B:\r
5321 ldrb r0,[z80pc],#1\r
5322 orr r0,r0,z80a,lsr#16\r
5323 opIN\r
5324 mov z80a,r0, lsl #24 ;@ r0 = data read\r
5325 fetch 11\r
5326;@CALL C,NN\r
5327opcode_D_C:\r
5328 tst z80f,#1<<CFlag\r
5329 bne opcode_C_D ;@unconditional CALL\r
5330 add z80pc,z80pc,#2\r
5331 fetch 10\r
5332\r
5333;@opcodes_DD\r
5334opcode_D_D:\r
5335 add z80xx,cpucontext,#z80ix\r
5336 b opcode_D_D_F_D\r
5337opcode_F_D:\r
5338 add z80xx,cpucontext,#z80iy\r
5339opcode_D_D_F_D:\r
5340 ldrb r0,[z80pc],#1\r
5341 ldr pc,[pc,r0, lsl #2]\r
5342opcodes_DD: .word 0x00000000\r
5343 .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
5344 .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
5345 .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
5346 .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
5347 .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
5348 .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
5349 .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
5350 .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
5351 .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
5352 .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
5353 .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
5354 .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
5355 .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
5356 .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
5357 .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
5358 .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
5359 .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
5360 .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
5361 .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
5362 .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
5363 .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
5364 .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
5365 .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
5366 .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
5367 .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
5368 .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
5369 .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
5370 .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
5371 .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
5372 .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
5373 .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
5374 .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
5375\r
5376;@SBC A,N\r
5377opcode_D_E:\r
5378 ldrb r0,[z80pc],#1\r
5379 opSBCb\r
5380 fetch 7\r
5381;@RST 18H\r
5382opcode_D_F:\r
5383 opRST 0x18\r
5384\r
5385;@RET PO\r
5386opcode_E_0:\r
5387 tst z80f,#1<<VFlag\r
28d596af 5388 beq opcode_C_9_cond ;@unconditional RET\r
cc68a136 5389 fetch 5\r
5390;@POP HL\r
5391opcode_E_1:\r
5392 opPOPreg z80hl\r
5393\r
5394;@JP PO,$+3\r
5395opcode_E_2:\r
5396 tst z80f,#1<<VFlag\r
5397 beq opcode_C_3 ;@unconditional JP\r
5398 add z80pc,z80pc,#2\r
5399 fetch 10\r
5400;@EX (SP),HL\r
5401opcode_E_3:\r
5402.if FAST_Z80SP\r
5403 ldrb r0,[z80sp]\r
5404 ldrb r1,[z80sp,#1]\r
5405 orr r0,r0,r1, lsl #8\r
5406 mov r1,z80hl, lsr #24\r
5407 strb r1,[z80sp,#1]\r
5408 mov r1,z80hl, lsr #16\r
5409 strb r1,[z80sp]\r
5410 mov z80hl,r0, lsl #16\r
5411.else\r
5412 mov r0,z80sp\r
5413 readmem16\r
5414 mov r1,r0\r
5415 mov r0,z80hl,lsr#16\r
5416 mov z80hl,r1,lsl#16\r
5417 mov r1,z80sp\r
5418 writemem16\r
5419.endif\r
5420 fetch 19\r
5421;@CALL PO,NN\r
5422opcode_E_4:\r
5423 tst z80f,#1<<VFlag\r
5424 beq opcode_C_D ;@unconditional CALL\r
5425 add z80pc,z80pc,#2\r
5426 fetch 10\r
5427;@PUSH HL\r
5428opcode_E_5:\r
5429 opPUSHreg z80hl\r
5430 fetch 11\r
5431;@AND N\r
5432opcode_E_6:\r
5433 ldrb r0,[z80pc],#1\r
5434 opANDb\r
5435 fetch 7\r
5436;@RST 20H\r
5437opcode_E_7:\r
5438 opRST 0x20\r
5439\r
5440;@RET PE\r
5441opcode_E_8:\r
5442 tst z80f,#1<<VFlag\r
28d596af 5443 bne opcode_C_9_cond ;@unconditional RET\r
cc68a136 5444 fetch 5\r
5445;@JP (HL)\r
5446opcode_E_9:\r
5447 mov r0,z80hl, lsr #16\r
5448 rebasepc\r
5449 fetch 4\r
5450;@JP PE,$+3\r
5451opcode_E_A:\r
5452 tst z80f,#1<<VFlag\r
5453 bne opcode_C_3 ;@unconditional JP\r
5454 add z80pc,z80pc,#2\r
5455 fetch 10\r
5456;@EX DE,HL\r
5457opcode_E_B:\r
5458 mov r1,z80de\r
5459 mov z80de,z80hl\r
5460 mov z80hl,r1\r
5461 fetch 4\r
5462;@CALL PE,NN\r
5463opcode_E_C:\r
5464 tst z80f,#1<<VFlag\r
5465 bne opcode_C_D ;@unconditional CALL\r
5466 add z80pc,z80pc,#2\r
5467 fetch 10\r
5468\r
5469;@This should be caught at start\r
5470opcode_E_D:\r
5471 ldrb r1,[z80pc],#1\r
5472 ldr pc,[pc,r1, lsl #2]\r
5473opcodes_ED: .word 0x00000000\r
5474 .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
5475 .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
5476 .word opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF\r
5477 .word opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF\r
5478 .word opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF\r
5479 .word opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF\r
5480 .word opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF\r
5481 .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
5482 .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
5483 .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
5484 .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
5485 .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
5486 .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
5487 .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
5488 .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
5489 .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
5490 .word opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF\r
5491 .word opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF\r
5492 .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
5493 .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
5494 .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
5495 .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
5496 .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
5497 .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
5498 .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
5499 .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
5500 .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
5501 .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
5502 .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
5503 .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
5504 .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
5505 .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
5506\r
5507;@XOR N\r
5508opcode_E_E:\r
5509 ldrb r0,[z80pc],#1\r
5510 opXORb\r
5511 fetch 7\r
5512;@RST 28H\r
5513opcode_E_F:\r
5514 opRST 0x28\r
5515\r
5516;@RET P\r
5517opcode_F_0:\r
5518 tst z80f,#1<<SFlag\r
28d596af 5519 beq opcode_C_9_cond ;@unconditional RET\r
cc68a136 5520 fetch 5\r
5521;@POP AF\r
5522opcode_F_1:\r
5523.if FAST_Z80SP\r
5524 ldrb z80f,[z80sp],#1\r
5525 sub r0,opcodes,#0x200\r
5526 ldrb z80f,[r0,z80f]\r
5527 ldrb z80a,[z80sp],#1\r
5528 mov z80a,z80a, lsl #24\r
5529.else\r
5530 mov r0,z80sp\r
5531 readmem16\r
5532 add z80sp,z80sp,#2\r
5533 and z80a,r0,#0xFF00\r
5534 mov z80a,z80a,lsl#16\r
5535 and z80f,r0,#0xFF\r
5536 sub r0,opcodes,#0x200\r
5537 ldrb z80f,[r0,z80f]\r
5538.endif\r
5539 fetch 10\r
5540;@JP P,$+3\r
5541opcode_F_2:\r
5542 tst z80f,#1<<SFlag\r
5543 beq opcode_C_3 ;@unconditional JP\r
5544 add z80pc,z80pc,#2\r
5545 fetch 10\r
5546;@DI\r
5547opcode_F_3:\r
5548 ldrb r1,[cpucontext,#z80if]\r
5549 bic r1,r1,#(Z80_IF1)|(Z80_IF2)\r
5550 strb r1,[cpucontext,#z80if]\r
5551 fetch 4\r
5552;@CALL P,NN\r
5553opcode_F_4:\r
5554 tst z80f,#1<<SFlag\r
5555 beq opcode_C_D ;@unconditional CALL\r
5556 add z80pc,z80pc,#2\r
5557 fetch 10\r
5558;@PUSH AF\r
5559opcode_F_5:\r
5560 sub r0,opcodes,#0x300\r
5561 ldrb r0,[r0,z80f]\r
5562 orr r2,r0,z80a,lsr#16\r
5563 opPUSHareg r2\r
5564 fetch 11\r
5565;@OR N\r
5566opcode_F_6:\r
5567 ldrb r0,[z80pc],#1\r
5568 opORb\r
5569 fetch 7\r
5570;@RST 30H\r
5571opcode_F_7:\r
5572 opRST 0x30\r
5573\r
5574;@RET M\r
5575opcode_F_8:\r
5576 tst z80f,#1<<SFlag\r
28d596af 5577 bne opcode_C_9_cond ;@unconditional RET\r
cc68a136 5578 fetch 5\r
5579;@LD SP,HL\r
5580opcode_F_9:\r
5581.if FAST_Z80SP\r
5582 mov r0,z80hl, lsr #16\r
5583 rebasesp\r
cc68a136 5584.else\r
5585 mov z80sp,z80hl, lsr #16\r
5586.endif\r
28d596af 5587 fetch 6\r
cc68a136 5588;@JP M,$+3\r
5589opcode_F_A:\r
5590 tst z80f,#1<<SFlag\r
5591 bne opcode_C_3 ;@unconditional JP\r
5592 add z80pc,z80pc,#2\r
5593 fetch 10\r
5594MAIN_opcodes_POINTER: .word MAIN_opcodes\r
5595EI_DUMMY_opcodes_POINTER: .word EI_DUMMY_opcodes\r
5596;@EI\r
5597opcode_F_B:\r
5598 ldrb r1,[cpucontext,#z80if]\r
de89bf45 5599 mov r2,opcodes\r
cc68a136 5600 orr r1,r1,#(Z80_IF1)|(Z80_IF2)\r
5601 strb r1,[cpucontext,#z80if]\r
5602\r
de89bf45 5603 ldrb r0,[z80pc],#1\r
5604 eatcycles 4\r
cc68a136 5605 ldr opcodes,EI_DUMMY_opcodes_POINTER\r
5606 ldr pc,[r2,r0, lsl #2]\r
5607\r
5608ei_return:\r
5609 ;@point that program returns from EI to check interupts\r
5610 ;@an interupt can not be taken directly after a EI opcode\r
5611 ;@ reset z80pc and opcode pointer\r
de89bf45 5612 ldrh r0,[cpucontext,#z80irq] @ 0x4C, irq and IFF bits\r
cc68a136 5613 sub z80pc,z80pc,#1\r
5614 ldr opcodes,MAIN_opcodes_POINTER\r
5615 ;@ check ints\r
de89bf45 5616 tst r0,#0xff\r
5617 movne r0,r0,lsr #8\r
5618 tstne r0,#1\r
5619 blne DoInterrupt\r
5620\r
cc68a136 5621 ;@ continue\r
de89bf45 5622 fetch 0\r
cc68a136 5623\r
5624;@CALL M,NN\r
5625opcode_F_C:\r
5626 tst z80f,#1<<SFlag\r
5627 bne opcode_C_D ;@unconditional CALL\r
5628 add z80pc,z80pc,#2\r
5629 fetch 10\r
5630\r
5631;@SHOULD BE CAUGHT AT START - FD SECTION\r
5632\r
5633;@CP N\r
5634opcode_F_E:\r
5635 ldrb r0,[z80pc],#1\r
5636 opCPb\r
5637 fetch 7\r
5638;@RST 38H\r
5639opcode_F_F:\r
5640 opRST 0x38\r
5641\r
5642\r
5643;@##################################\r
5644;@##################################\r
5645;@### opcodes CB #########################\r
5646;@##################################\r
5647;@##################################\r
5648\r
5649\r
5650;@RLC B\r
5651opcode_CB_00:\r
5652 opRLCH z80bc\r
5653;@RLC C\r
5654opcode_CB_01:\r
5655 opRLCL z80bc\r
5656;@RLC D\r
5657opcode_CB_02:\r
5658 opRLCH z80de\r
5659;@RLC E\r
5660opcode_CB_03:\r
5661 opRLCL z80de\r
5662;@RLC H\r
5663opcode_CB_04:\r
5664 opRLCH z80hl\r
5665;@RLC L\r
5666opcode_CB_05:\r
5667 opRLCL z80hl\r
5668;@RLC (HL)\r
5669opcode_CB_06:\r
5670 readmem8HL\r
5671 opRLCb\r
5672 writemem8HL\r
5673 fetch 15\r
5674;@RLC A\r
5675opcode_CB_07:\r
5676 opRLCA\r
5677\r
5678;@RRC B\r
5679opcode_CB_08:\r
5680 opRRCH z80bc\r
5681;@RRC C\r
5682opcode_CB_09:\r
5683 opRRCL z80bc\r
5684;@RRC D\r
5685opcode_CB_0A:\r
5686 opRRCH z80de\r
5687;@RRC E\r
5688opcode_CB_0B:\r
5689 opRRCL z80de\r
5690;@RRC H\r
5691opcode_CB_0C:\r
5692 opRRCH z80hl\r
5693;@RRC L\r
5694opcode_CB_0D:\r
5695 opRRCL z80hl\r
5696;@RRC (HL)\r
5697opcode_CB_0E :\r
5698 readmem8HL\r
5699 opRRCb\r
5700 writemem8HL\r
5701 fetch 15\r
5702;@RRC A\r
5703opcode_CB_0F:\r
5704 opRRCA\r
5705\r
5706;@RL B\r
5707opcode_CB_10:\r
5708 opRLH z80bc\r
5709;@RL C\r
5710opcode_CB_11:\r
5711 opRLL z80bc\r
5712;@RL D\r
5713opcode_CB_12:\r
5714 opRLH z80de\r
5715;@RL E\r
5716opcode_CB_13:\r
5717 opRLL z80de\r
5718;@RL H\r
5719opcode_CB_14:\r
5720 opRLH z80hl\r
5721;@RL L\r
5722opcode_CB_15:\r
5723 opRLL z80hl\r
5724;@RL (HL)\r
5725opcode_CB_16:\r
5726 readmem8HL\r
5727 opRLb\r
5728 writemem8HL\r
5729 fetch 15\r
5730;@RL A\r
5731opcode_CB_17:\r
5732 opRLA\r
5733\r
5734;@RR B \r
5735opcode_CB_18:\r
5736 opRRH z80bc\r
5737;@RR C\r
5738opcode_CB_19:\r
5739 opRRL z80bc\r
5740;@RR D\r
5741opcode_CB_1A:\r
5742 opRRH z80de\r
5743;@RR E\r
5744opcode_CB_1B:\r
5745 opRRL z80de\r
5746;@RR H\r
5747opcode_CB_1C:\r
5748 opRRH z80hl\r
5749;@RR L\r
5750opcode_CB_1D:\r
5751 opRRL z80hl\r
5752;@RR (HL)\r
5753opcode_CB_1E:\r
5754 readmem8HL\r
5755 opRRb\r
5756 writemem8HL\r
5757 fetch 15\r
5758;@RR A\r
5759opcode_CB_1F:\r
5760 opRRA\r
5761\r
5762;@SLA B\r
5763opcode_CB_20:\r
5764 opSLAH z80bc\r
5765;@SLA C\r
5766opcode_CB_21:\r
5767 opSLAL z80bc\r
5768;@SLA D\r
5769opcode_CB_22:\r
5770 opSLAH z80de\r
5771;@SLA E\r
5772opcode_CB_23:\r
5773 opSLAL z80de\r
5774;@SLA H\r
5775opcode_CB_24:\r
5776 opSLAH z80hl\r
5777;@SLA L\r
5778opcode_CB_25:\r
5779 opSLAL z80hl\r
5780;@SLA (HL)\r
5781opcode_CB_26:\r
5782 readmem8HL\r
5783 opSLAb\r
5784 writemem8HL\r
5785 fetch 15\r
5786;@SLA A\r
5787opcode_CB_27:\r
5788 opSLAA\r
5789\r
5790;@SRA B\r
5791opcode_CB_28:\r
5792 opSRAH z80bc\r
5793;@SRA C\r
5794opcode_CB_29:\r
5795 opSRAL z80bc\r
5796;@SRA D\r
5797opcode_CB_2A:\r
5798 opSRAH z80de\r
5799;@SRA E\r
5800opcode_CB_2B:\r
5801 opSRAL z80de\r
5802;@SRA H\r
5803opcode_CB_2C:\r
5804 opSRAH z80hl\r
5805;@SRA L\r
5806opcode_CB_2D:\r
5807 opSRAL z80hl\r
5808;@SRA (HL)\r
5809opcode_CB_2E:\r
5810 readmem8HL\r
5811 opSRAb\r
5812 writemem8HL\r
5813 fetch 15\r
5814;@SRA A\r
5815opcode_CB_2F:\r
5816 opSRAA\r
5817\r
5818;@SLL B\r
5819opcode_CB_30:\r
5820 opSLLH z80bc\r
5821;@SLL C\r
5822opcode_CB_31:\r
5823 opSLLL z80bc\r
5824;@SLL D\r
5825opcode_CB_32:\r
5826 opSLLH z80de\r
5827;@SLL E\r
5828opcode_CB_33:\r
5829 opSLLL z80de\r
5830;@SLL H\r
5831opcode_CB_34:\r
5832 opSLLH z80hl\r
5833;@SLL L\r
5834opcode_CB_35:\r
5835 opSLLL z80hl\r
5836;@SLL (HL)\r
5837opcode_CB_36:\r
5838 readmem8HL\r
5839 opSLLb\r
5840 writemem8HL\r
5841 fetch 15\r
5842;@SLL A\r
5843opcode_CB_37:\r
5844 opSLLA\r
5845\r
5846;@SRL B\r
5847opcode_CB_38:\r
5848 opSRLH z80bc\r
5849;@SRL C\r
5850opcode_CB_39:\r
5851 opSRLL z80bc\r
5852;@SRL D\r
5853opcode_CB_3A:\r
5854 opSRLH z80de\r
5855;@SRL E\r
5856opcode_CB_3B:\r
5857 opSRLL z80de\r
5858;@SRL H\r
5859opcode_CB_3C:\r
5860 opSRLH z80hl\r
5861;@SRL L\r
5862opcode_CB_3D:\r
5863 opSRLL z80hl\r
5864;@SRL (HL)\r
5865opcode_CB_3E:\r
5866 readmem8HL\r
5867 opSRLb\r
5868 writemem8HL\r
5869 fetch 15\r
5870;@SRL A\r
5871opcode_CB_3F:\r
5872 opSRLA\r
5873\r
5874\r
5875;@BIT 0,B\r
5876opcode_CB_40:\r
5877 opBITH z80bc 0\r
5878;@BIT 0,C\r
5879opcode_CB_41:\r
5880 opBITL z80bc 0\r
5881;@BIT 0,D\r
5882opcode_CB_42:\r
5883 opBITH z80de 0\r
5884;@BIT 0,E\r
5885opcode_CB_43:\r
5886 opBITL z80de 0\r
5887;@BIT 0,H\r
5888opcode_CB_44:\r
5889 opBITH z80hl 0\r
5890;@BIT 0,L\r
5891opcode_CB_45:\r
5892 opBITL z80hl 0\r
5893;@BIT 0,(HL)\r
5894opcode_CB_46:\r
5895 readmem8HL\r
5896 opBITb 0\r
5897 fetch 12\r
5898;@BIT 0,A\r
5899opcode_CB_47:\r
5900 opBITH z80a 0\r
5901\r
5902;@BIT 1,B\r
5903opcode_CB_48:\r
5904 opBITH z80bc 1\r
5905;@BIT 1,C\r
5906opcode_CB_49:\r
5907 opBITL z80bc 1\r
5908;@BIT 1,D\r
5909opcode_CB_4A:\r
5910 opBITH z80de 1\r
5911;@BIT 1,E\r
5912opcode_CB_4B:\r
5913 opBITL z80de 1\r
5914;@BIT 1,H\r
5915opcode_CB_4C:\r
5916 opBITH z80hl 1\r
5917;@BIT 1,L\r
5918opcode_CB_4D:\r
5919 opBITL z80hl 1\r
5920;@BIT 1,(HL)\r
5921opcode_CB_4E:\r
5922 readmem8HL\r
5923 opBITb 1\r
5924 fetch 12\r
5925;@BIT 1,A\r
5926opcode_CB_4F:\r
5927 opBITH z80a 1\r
5928\r
5929;@BIT 2,B\r
5930opcode_CB_50:\r
5931 opBITH z80bc 2\r
5932;@BIT 2,C\r
5933opcode_CB_51:\r
5934 opBITL z80bc 2\r
5935;@BIT 2,D\r
5936opcode_CB_52:\r
5937 opBITH z80de 2\r
5938;@BIT 2,E\r
5939opcode_CB_53:\r
5940 opBITL z80de 2\r
5941;@BIT 2,H\r
5942opcode_CB_54:\r
5943 opBITH z80hl 2\r
5944;@BIT 2,L\r
5945opcode_CB_55:\r
5946 opBITL z80hl 2\r
5947;@BIT 2,(HL)\r
5948opcode_CB_56:\r
5949 readmem8HL\r
5950 opBITb 2\r
5951 fetch 12\r
5952;@BIT 2,A\r
5953opcode_CB_57:\r
5954 opBITH z80a 2\r
5955\r
5956;@BIT 3,B\r
5957opcode_CB_58:\r
5958 opBITH z80bc 3\r
5959;@BIT 3,C\r
5960opcode_CB_59:\r
5961 opBITL z80bc 3\r
5962;@BIT 3,D\r
5963opcode_CB_5A:\r
5964 opBITH z80de 3\r
5965;@BIT 3,E\r
5966opcode_CB_5B:\r
5967 opBITL z80de 3\r
5968;@BIT 3,H\r
5969opcode_CB_5C:\r
5970 opBITH z80hl 3\r
5971;@BIT 3,L\r
5972opcode_CB_5D:\r
5973 opBITL z80hl 3\r
5974;@BIT 3,(HL)\r
5975opcode_CB_5E:\r
5976 readmem8HL\r
5977 opBITb 3\r
5978 fetch 12\r
5979;@BIT 3,A\r
5980opcode_CB_5F:\r
5981 opBITH z80a 3\r
5982\r
5983;@BIT 4,B\r
5984opcode_CB_60:\r
5985 opBITH z80bc 4\r
5986;@BIT 4,C\r
5987opcode_CB_61:\r
5988 opBITL z80bc 4\r
5989;@BIT 4,D\r
5990opcode_CB_62:\r
5991 opBITH z80de 4\r
5992;@BIT 4,E\r
5993opcode_CB_63:\r
5994 opBITL z80de 4\r
5995;@BIT 4,H\r
5996opcode_CB_64:\r
5997 opBITH z80hl 4\r
5998;@BIT 4,L\r
5999opcode_CB_65:\r
6000 opBITL z80hl 4\r
6001;@BIT 4,(HL)\r
6002opcode_CB_66:\r
6003 readmem8HL\r
6004 opBITb 4\r
6005 fetch 12\r
6006;@BIT 4,A\r
6007opcode_CB_67:\r
6008 opBITH z80a 4\r
6009\r
6010;@BIT 5,B\r
6011opcode_CB_68:\r
6012 opBITH z80bc 5\r
6013;@BIT 5,C\r
6014opcode_CB_69:\r
6015 opBITL z80bc 5\r
6016;@BIT 5,D\r
6017opcode_CB_6A:\r
6018 opBITH z80de 5\r
6019;@BIT 5,E\r
6020opcode_CB_6B:\r
6021 opBITL z80de 5\r
6022;@BIT 5,H\r
6023opcode_CB_6C:\r
6024 opBITH z80hl 5\r
6025;@BIT 5,L\r
6026opcode_CB_6D:\r
6027 opBITL z80hl 5\r
6028;@BIT 5,(HL)\r
6029opcode_CB_6E:\r
6030 readmem8HL\r
6031 opBITb 5\r
6032 fetch 12\r
6033;@BIT 5,A\r
6034opcode_CB_6F:\r
6035 opBITH z80a 5\r
6036\r
6037;@BIT 6,B\r
6038opcode_CB_70:\r
6039 opBITH z80bc 6\r
6040;@BIT 6,C\r
6041opcode_CB_71:\r
6042 opBITL z80bc 6\r
6043;@BIT 6,D\r
6044opcode_CB_72:\r
6045 opBITH z80de 6\r
6046;@BIT 6,E\r
6047opcode_CB_73:\r
6048 opBITL z80de 6\r
6049;@BIT 6,H\r
6050opcode_CB_74:\r
6051 opBITH z80hl 6\r
6052;@BIT 6,L\r
6053opcode_CB_75:\r
6054 opBITL z80hl 6\r
6055;@BIT 6,(HL)\r
6056opcode_CB_76:\r
6057 readmem8HL\r
6058 opBITb 6\r
6059 fetch 12\r
6060;@BIT 6,A\r
6061opcode_CB_77:\r
6062 opBITH z80a 6\r
6063\r
6064;@BIT 7,B\r
6065opcode_CB_78:\r
6066 opBIT7H z80bc\r
6067;@BIT 7,C\r
6068opcode_CB_79:\r
6069 opBIT7L z80bc\r
6070;@BIT 7,D\r
6071opcode_CB_7A:\r
6072 opBIT7H z80de\r
6073;@BIT 7,E\r
6074opcode_CB_7B:\r
6075 opBIT7L z80de\r
6076;@BIT 7,H\r
6077opcode_CB_7C:\r
6078 opBIT7H z80hl\r
6079;@BIT 7,L\r
6080opcode_CB_7D:\r
6081 opBIT7L z80hl\r
6082;@BIT 7,(HL)\r
6083opcode_CB_7E:\r
6084 readmem8HL\r
6085 opBIT7b\r
6086 fetch 12\r
6087;@BIT 7,A\r
6088opcode_CB_7F:\r
6089 opBIT7H z80a\r
6090\r
6091;@RES 0,B\r
6092opcode_CB_80:\r
6093 bic z80bc,z80bc,#1<<24\r
6094 fetch 8\r
6095;@RES 0,C\r
6096opcode_CB_81:\r
6097 bic z80bc,z80bc,#1<<16\r
6098 fetch 8\r
6099;@RES 0,D\r
6100opcode_CB_82:\r
6101 bic z80de,z80de,#1<<24\r
6102 fetch 8\r
6103;@RES 0,E\r
6104opcode_CB_83:\r
6105 bic z80de,z80de,#1<<16\r
6106 fetch 8\r
6107;@RES 0,H\r
6108opcode_CB_84:\r
6109 bic z80hl,z80hl,#1<<24\r
6110 fetch 8\r
6111;@RES 0,L\r
6112opcode_CB_85:\r
6113 bic z80hl,z80hl,#1<<16\r
6114 fetch 8\r
6115;@RES 0,(HL)\r
6116opcode_CB_86:\r
6117 opRESmemHL 0\r
6118;@RES 0,A\r
6119opcode_CB_87:\r
6120 bic z80a,z80a,#1<<24\r
6121 fetch 8\r
6122\r
6123;@RES 1,B\r
6124opcode_CB_88:\r
6125 bic z80bc,z80bc,#1<<25\r
6126 fetch 8\r
6127;@RES 1,C\r
6128opcode_CB_89:\r
6129 bic z80bc,z80bc,#1<<17\r
6130 fetch 8\r
6131;@RES 1,D\r
6132opcode_CB_8A:\r
6133 bic z80de,z80de,#1<<25\r
6134 fetch 8\r
6135;@RES 1,E\r
6136opcode_CB_8B:\r
6137 bic z80de,z80de,#1<<17\r
6138 fetch 8\r
6139;@RES 1,H\r
6140opcode_CB_8C:\r
6141 bic z80hl,z80hl,#1<<25\r
6142 fetch 8\r
6143;@RES 1,L\r
6144opcode_CB_8D:\r
6145 bic z80hl,z80hl,#1<<17\r
6146 fetch 8\r
6147;@RES 1,(HL)\r
6148opcode_CB_8E:\r
6149 opRESmemHL 1\r
6150;@RES 1,A\r
6151opcode_CB_8F:\r
6152 bic z80a,z80a,#1<<25\r
6153 fetch 8\r
6154\r
6155;@RES 2,B\r
6156opcode_CB_90:\r
6157 bic z80bc,z80bc,#1<<26\r
6158 fetch 8\r
6159;@RES 2,C\r
6160opcode_CB_91:\r
6161 bic z80bc,z80bc,#1<<18\r
6162 fetch 8\r
6163;@RES 2,D\r
6164opcode_CB_92:\r
6165 bic z80de,z80de,#1<<26\r
6166 fetch 8\r
6167;@RES 2,E\r
6168opcode_CB_93:\r
6169 bic z80de,z80de,#1<<18\r
6170 fetch 8\r
6171;@RES 2,H\r
6172opcode_CB_94:\r
6173 bic z80hl,z80hl,#1<<26\r
6174 fetch 8\r
6175;@RES 2,L\r
6176opcode_CB_95:\r
6177 bic z80hl,z80hl,#1<<18\r
6178 fetch 8\r
6179;@RES 2,(HL)\r
6180opcode_CB_96:\r
6181 opRESmemHL 2\r
6182;@RES 2,A\r
6183opcode_CB_97:\r
6184 bic z80a,z80a,#1<<26\r
6185 fetch 8\r
6186\r
6187;@RES 3,B\r
6188opcode_CB_98:\r
6189 bic z80bc,z80bc,#1<<27\r
6190 fetch 8\r
6191;@RES 3,C\r
6192opcode_CB_99:\r
6193 bic z80bc,z80bc,#1<<19\r
6194 fetch 8\r
6195;@RES 3,D\r
6196opcode_CB_9A:\r
6197 bic z80de,z80de,#1<<27\r
6198 fetch 8\r
6199;@RES 3,E\r
6200opcode_CB_9B:\r
6201 bic z80de,z80de,#1<<19\r
6202 fetch 8\r
6203;@RES 3,H\r
6204opcode_CB_9C:\r
6205 bic z80hl,z80hl,#1<<27\r
6206 fetch 8\r
6207;@RES 3,L\r
6208opcode_CB_9D:\r
6209 bic z80hl,z80hl,#1<<19\r
6210 fetch 8\r
6211;@RES 3,(HL)\r
6212opcode_CB_9E:\r
6213 opRESmemHL 3\r
6214;@RES 3,A\r
6215opcode_CB_9F:\r
6216 bic z80a,z80a,#1<<27\r
6217 fetch 8\r
6218\r
6219;@RES 4,B\r
6220opcode_CB_A0:\r
6221 bic z80bc,z80bc,#1<<28\r
6222 fetch 8\r
6223;@RES 4,C\r
6224opcode_CB_A1:\r
6225 bic z80bc,z80bc,#1<<20\r
6226 fetch 8\r
6227;@RES 4,D\r
6228opcode_CB_A2:\r
6229 bic z80de,z80de,#1<<28\r
6230 fetch 8\r
6231;@RES 4,E\r
6232opcode_CB_A3:\r
6233 bic z80de,z80de,#1<<20\r
6234 fetch 8\r
6235;@RES 4,H\r
6236opcode_CB_A4:\r
6237 bic z80hl,z80hl,#1<<28\r
6238 fetch 8\r
6239;@RES 4,L\r
6240opcode_CB_A5:\r
6241 bic z80hl,z80hl,#1<<20\r
6242 fetch 8\r
6243;@RES 4,(HL)\r
6244opcode_CB_A6:\r
6245 opRESmemHL 4\r
6246;@RES 4,A\r
6247opcode_CB_A7:\r
6248 bic z80a,z80a,#1<<28\r
6249 fetch 8\r
6250\r
6251;@RES 5,B\r
6252opcode_CB_A8:\r
6253 bic z80bc,z80bc,#1<<29\r
6254 fetch 8\r
6255;@RES 5,C\r
6256opcode_CB_A9:\r
6257 bic z80bc,z80bc,#1<<21\r
6258 fetch 8\r
6259;@RES 5,D\r
6260opcode_CB_AA:\r
6261 bic z80de,z80de,#1<<29\r
6262 fetch 8\r
6263;@RES 5,E\r
6264opcode_CB_AB:\r
6265 bic z80de,z80de,#1<<21\r
6266 fetch 8\r
6267;@RES 5,H\r
6268opcode_CB_AC:\r
6269 bic z80hl,z80hl,#1<<29\r
6270 fetch 8\r
6271;@RES 5,L\r
6272opcode_CB_AD:\r
6273 bic z80hl,z80hl,#1<<21\r
6274 fetch 8\r
6275;@RES 5,(HL)\r
6276opcode_CB_AE:\r
6277 opRESmemHL 5\r
6278;@RES 5,A\r
6279opcode_CB_AF:\r
6280 bic z80a,z80a,#1<<29\r
6281 fetch 8\r
6282\r
6283;@RES 6,B\r
6284opcode_CB_B0:\r
6285 bic z80bc,z80bc,#1<<30\r
6286 fetch 8\r
6287;@RES 6,C\r
6288opcode_CB_B1:\r
6289 bic z80bc,z80bc,#1<<22\r
6290 fetch 8\r
6291;@RES 6,D\r
6292opcode_CB_B2:\r
6293 bic z80de,z80de,#1<<30\r
6294 fetch 8\r
6295;@RES 6,E\r
6296opcode_CB_B3:\r
6297 bic z80de,z80de,#1<<22\r
6298 fetch 8\r
6299;@RES 6,H\r
6300opcode_CB_B4:\r
6301 bic z80hl,z80hl,#1<<30\r
6302 fetch 8\r
6303;@RES 6,L\r
6304opcode_CB_B5:\r
6305 bic z80hl,z80hl,#1<<22\r
6306 fetch 8\r
6307;@RES 6,(HL)\r
6308opcode_CB_B6:\r
6309 opRESmemHL 6\r
6310;@RES 6,A\r
6311opcode_CB_B7:\r
6312 bic z80a,z80a,#1<<30\r
6313 fetch 8\r
6314\r
6315;@RES 7,B\r
6316opcode_CB_B8:\r
6317 bic z80bc,z80bc,#1<<31\r
6318 fetch 8\r
6319;@RES 7,C\r
6320opcode_CB_B9:\r
6321 bic z80bc,z80bc,#1<<23\r
6322 fetch 8\r
6323;@RES 7,D\r
6324opcode_CB_BA:\r
6325 bic z80de,z80de,#1<<31\r
6326 fetch 8\r
6327;@RES 7,E\r
6328opcode_CB_BB:\r
6329 bic z80de,z80de,#1<<23\r
6330 fetch 8\r
6331;@RES 7,H\r
6332opcode_CB_BC:\r
6333 bic z80hl,z80hl,#1<<31\r
6334 fetch 8\r
6335;@RES 7,L\r
6336opcode_CB_BD:\r
6337 bic z80hl,z80hl,#1<<23\r
6338 fetch 8\r
6339;@RES 7,(HL)\r
6340opcode_CB_BE:\r
6341 opRESmemHL 7\r
6342;@RES 7,A\r
6343opcode_CB_BF:\r
6344 bic z80a,z80a,#1<<31\r
6345 fetch 8\r
6346\r
6347;@SET 0,B\r
6348opcode_CB_C0:\r
6349 orr z80bc,z80bc,#1<<24\r
6350 fetch 8\r
6351;@SET 0,C\r
6352opcode_CB_C1:\r
6353 orr z80bc,z80bc,#1<<16\r
6354 fetch 8\r
6355;@SET 0,D\r
6356opcode_CB_C2:\r
6357 orr z80de,z80de,#1<<24\r
6358 fetch 8\r
6359;@SET 0,E\r
6360opcode_CB_C3:\r
6361 orr z80de,z80de,#1<<16\r
6362 fetch 8\r
6363;@SET 0,H\r
6364opcode_CB_C4:\r
6365 orr z80hl,z80hl,#1<<24\r
6366 fetch 8\r
6367;@SET 0,L\r
6368opcode_CB_C5:\r
6369 orr z80hl,z80hl,#1<<16\r
6370 fetch 8\r
6371;@SET 0,(HL)\r
6372opcode_CB_C6:\r
6373 opSETmemHL 0\r
6374;@SET 0,A\r
6375opcode_CB_C7:\r
6376 orr z80a,z80a,#1<<24\r
6377 fetch 8\r
6378\r
6379;@SET 1,B\r
6380opcode_CB_C8:\r
6381 orr z80bc,z80bc,#1<<25\r
6382 fetch 8\r
6383;@SET 1,C\r
6384opcode_CB_C9:\r
6385 orr z80bc,z80bc,#1<<17\r
6386 fetch 8\r
6387;@SET 1,D\r
6388opcode_CB_CA:\r
6389 orr z80de,z80de,#1<<25\r
6390 fetch 8\r
6391;@SET 1,E\r
6392opcode_CB_CB:\r
6393 orr z80de,z80de,#1<<17\r
6394 fetch 8\r
6395;@SET 1,H\r
6396opcode_CB_CC:\r
6397 orr z80hl,z80hl,#1<<25\r
6398 fetch 8\r
6399;@SET 1,L\r
6400opcode_CB_CD:\r
6401 orr z80hl,z80hl,#1<<17\r
6402 fetch 8\r
6403;@SET 1,(HL)\r
6404opcode_CB_CE:\r
6405 opSETmemHL 1\r
6406;@SET 1,A\r
6407opcode_CB_CF:\r
6408 orr z80a,z80a,#1<<25\r
6409 fetch 8\r
6410\r
6411;@SET 2,B\r
6412opcode_CB_D0:\r
6413 orr z80bc,z80bc,#1<<26\r
6414 fetch 8\r
6415;@SET 2,C\r
6416opcode_CB_D1:\r
6417 orr z80bc,z80bc,#1<<18\r
6418 fetch 8\r
6419;@SET 2,D\r
6420opcode_CB_D2:\r
6421 orr z80de,z80de,#1<<26\r
6422 fetch 8\r
6423;@SET 2,E\r
6424opcode_CB_D3:\r
6425 orr z80de,z80de,#1<<18\r
6426 fetch 8\r
6427;@SET 2,H\r
6428opcode_CB_D4:\r
6429 orr z80hl,z80hl,#1<<26\r
6430 fetch 8\r
6431;@SET 2,L\r
6432opcode_CB_D5:\r
6433 orr z80hl,z80hl,#1<<18\r
6434 fetch 8\r
6435;@SET 2,(HL)\r
6436opcode_CB_D6:\r
6437 opSETmemHL 2\r
6438;@SET 2,A\r
6439opcode_CB_D7:\r
6440 orr z80a,z80a,#1<<26\r
6441 fetch 8\r
6442\r
6443;@SET 3,B\r
6444opcode_CB_D8:\r
6445 orr z80bc,z80bc,#1<<27\r
6446 fetch 8\r
6447;@SET 3,C\r
6448opcode_CB_D9:\r
6449 orr z80bc,z80bc,#1<<19\r
6450 fetch 8\r
6451;@SET 3,D\r
6452opcode_CB_DA:\r
6453 orr z80de,z80de,#1<<27\r
6454 fetch 8\r
6455;@SET 3,E\r
6456opcode_CB_DB:\r
6457 orr z80de,z80de,#1<<19\r
6458 fetch 8\r
6459;@SET 3,H\r
6460opcode_CB_DC:\r
6461 orr z80hl,z80hl,#1<<27\r
6462 fetch 8\r
6463;@SET 3,L\r
6464opcode_CB_DD:\r
6465 orr z80hl,z80hl,#1<<19\r
6466 fetch 8\r
6467;@SET 3,(HL)\r
6468opcode_CB_DE:\r
6469 opSETmemHL 3\r
6470;@SET 3,A\r
6471opcode_CB_DF:\r
6472 orr z80a,z80a,#1<<27\r
6473 fetch 8\r
6474\r
6475;@SET 4,B\r
6476opcode_CB_E0:\r
6477 orr z80bc,z80bc,#1<<28\r
6478 fetch 8\r
6479;@SET 4,C\r
6480opcode_CB_E1:\r
6481 orr z80bc,z80bc,#1<<20\r
6482 fetch 8\r
6483;@SET 4,D\r
6484opcode_CB_E2:\r
6485 orr z80de,z80de,#1<<28\r
6486 fetch 8\r
6487;@SET 4,E\r
6488opcode_CB_E3:\r
6489 orr z80de,z80de,#1<<20\r
6490 fetch 8\r
6491;@SET 4,H\r
6492opcode_CB_E4:\r
6493 orr z80hl,z80hl,#1<<28\r
6494 fetch 8\r
6495;@SET 4,L\r
6496opcode_CB_E5:\r
6497 orr z80hl,z80hl,#1<<20\r
6498 fetch 8\r
6499;@SET 4,(HL)\r
6500opcode_CB_E6:\r
6501 opSETmemHL 4\r
6502;@SET 4,A\r
6503opcode_CB_E7:\r
6504 orr z80a,z80a,#1<<28\r
6505 fetch 8\r
6506\r
6507;@SET 5,B\r
6508opcode_CB_E8:\r
6509 orr z80bc,z80bc,#1<<29\r
6510 fetch 8\r
6511;@SET 5,C\r
6512opcode_CB_E9:\r
6513 orr z80bc,z80bc,#1<<21\r
6514 fetch 8\r
6515;@SET 5,D\r
6516opcode_CB_EA:\r
6517 orr z80de,z80de,#1<<29\r
6518 fetch 8\r
6519;@SET 5,E\r
6520opcode_CB_EB:\r
6521 orr z80de,z80de,#1<<21\r
6522 fetch 8\r
6523;@SET 5,H\r
6524opcode_CB_EC:\r
6525 orr z80hl,z80hl,#1<<29\r
6526 fetch 8\r
6527;@SET 5,L\r
6528opcode_CB_ED:\r
6529 orr z80hl,z80hl,#1<<21\r
6530 fetch 8\r
6531;@SET 5,(HL)\r
6532opcode_CB_EE:\r
6533 opSETmemHL 5\r
6534;@SET 5,A\r
6535opcode_CB_EF:\r
6536 orr z80a,z80a,#1<<29\r
6537 fetch 8\r
6538\r
6539;@SET 6,B\r
6540opcode_CB_F0:\r
6541 orr z80bc,z80bc,#1<<30\r
6542 fetch 8\r
6543;@SET 6,C\r
6544opcode_CB_F1:\r
6545 orr z80bc,z80bc,#1<<22\r
6546 fetch 8\r
6547;@SET 6,D\r
6548opcode_CB_F2:\r
6549 orr z80de,z80de,#1<<30\r
6550 fetch 8\r
6551;@SET 6,E\r
6552opcode_CB_F3:\r
6553 orr z80de,z80de,#1<<22\r
6554 fetch 8\r
6555;@SET 6,H\r
6556opcode_CB_F4:\r
6557 orr z80hl,z80hl,#1<<30\r
6558 fetch 8\r
6559;@SET 6,L\r
6560opcode_CB_F5:\r
6561 orr z80hl,z80hl,#1<<22\r
6562 fetch 8\r
6563;@SET 6,(HL)\r
6564opcode_CB_F6:\r
6565 opSETmemHL 6\r
6566;@SET 6,A\r
6567opcode_CB_F7:\r
6568 orr z80a,z80a,#1<<30\r
6569 fetch 8\r
6570\r
6571;@SET 7,B\r
6572opcode_CB_F8:\r
6573 orr z80bc,z80bc,#1<<31\r
6574 fetch 8\r
6575;@SET 7,C\r
6576opcode_CB_F9:\r
6577 orr z80bc,z80bc,#1<<23\r
6578 fetch 8\r
6579;@SET 7,D\r
6580opcode_CB_FA:\r
6581 orr z80de,z80de,#1<<31\r
6582 fetch 8\r
6583;@SET 7,E\r
6584opcode_CB_FB:\r
6585 orr z80de,z80de,#1<<23\r
6586 fetch 8\r
6587;@SET 7,H\r
6588opcode_CB_FC:\r
6589 orr z80hl,z80hl,#1<<31\r
6590 fetch 8\r
6591;@SET 7,L\r
6592opcode_CB_FD:\r
6593 orr z80hl,z80hl,#1<<23\r
6594 fetch 8\r
6595;@SET 7,(HL)\r
6596opcode_CB_FE:\r
6597 opSETmemHL 7\r
6598;@SET 7,A\r
6599opcode_CB_FF:\r
6600 orr z80a,z80a,#1<<31\r
6601 fetch 8\r
6602\r
6603\r
6604\r
6605;@##################################\r
6606;@##################################\r
6607;@### opcodes DD #########################\r
6608;@##################################\r
6609;@##################################\r
6610;@Because the DD opcodes are not a complete range from 00-FF I have\r
6611;@created this sub routine that will catch any undocumented ops\r
6612;@halt the emulator and mov the current instruction to r0\r
6613;@at a later stage I may change to display a text message on the screen\r
6614opcode_DD_NF:\r
6615 eatcycles 4\r
6616 ldr pc,[opcodes,r0, lsl #2]\r
6617;@ mov r2,#0x10*4\r
6618;@ cmp r2,z80xx\r
6619;@ bne opcode_FD_NF\r
6620;@ mov r0,#0xDD00\r
6621;@ orr r0,r0,r1\r
6622;@ b end_loop\r
6623;@opcode_FD_NF:\r
6624;@ mov r0,#0xFD00\r
6625;@ orr r0,r0,r1\r
6626;@ b end_loop\r
f0243975 6627\r
cc68a136 6628opcode_DD_NF2:\r
28d596af 6629 fetch 23\r
f0243975 6630;@ notaz: we don't want to deadlock here\r
6631;@ mov r0,#0xDD0000\r
6632;@ orr r0,r0,#0xCB00\r
6633;@ orr r0,r0,r1\r
6634;@ b end_loop\r
cc68a136 6635\r
6636;@ADD IX,BC\r
6637opcode_DD_09:\r
6638 ldr r0,[z80xx]\r
6639 opADD16 r0 z80bc\r
6640 str r0,[z80xx]\r
6641 fetch 15\r
6642;@ADD IX,DE\r
6643opcode_DD_19:\r
6644 ldr r0,[z80xx]\r
6645 opADD16 r0 z80de\r
6646 str r0,[z80xx]\r
6647 fetch 15\r
6648;@LD IX,NN\r
6649opcode_DD_21:\r
6650 ldrb r0,[z80pc],#1\r
6651 ldrb r1,[z80pc],#1\r
6652 orr r0,r0,r1, lsl #8\r
6653 strh r0,[z80xx,#2]\r
6654 fetch 14\r
6655;@LD (NN),IX\r
6656opcode_DD_22:\r
6657 ldrb r0,[z80pc],#1\r
6658 ldrb r1,[z80pc],#1\r
6659 orr r1,r0,r1, lsl #8\r
6660 ldrh r0,[z80xx,#2]\r
6661 writemem16\r
6662 fetch 20\r
6663;@INC IX\r
6664opcode_DD_23:\r
6665 ldr r0,[z80xx]\r
6666 add r0,r0,#1<<16\r
6667 str r0,[z80xx]\r
6668 fetch 10\r
6669;@INC I (IX)\r
6670opcode_DD_24:\r
6671 ldr r0,[z80xx]\r
6672 opINC8H r0\r
6673 str r0,[z80xx]\r
6674 fetch 8\r
6675;@DEC I (IX)\r
6676opcode_DD_25:\r
6677 ldr r0,[z80xx]\r
6678 opDEC8H r0\r
6679 str r0,[z80xx]\r
6680 fetch 8\r
6681;@LD I,N (IX)\r
6682opcode_DD_26:\r
6683 ldrb r0,[z80pc],#1\r
6684 strb r0,[z80xx,#3]\r
6685 fetch 11\r
6686;@ADD IX,IX\r
6687opcode_DD_29:\r
6688 ldr r0,[z80xx]\r
6689 opADD16_2 r0\r
6690 str r0,[z80xx]\r
6691 fetch 15\r
6692;@LD IX,(NN)\r
6693opcode_DD_2A:\r
6694 ldrb r0,[z80pc],#1\r
6695 ldrb r1,[z80pc],#1\r
6696 orr r0,r0,r1, lsl #8\r
6697 stmfd sp!,{z80xx}\r
6698 readmem16\r
6699 ldmfd sp!,{z80xx}\r
6700 strh r0,[z80xx,#2]\r
6701 fetch 20\r
6702;@DEC IX\r
6703opcode_DD_2B:\r
6704 ldr r0,[z80xx]\r
6705 sub r0,r0,#1<<16\r
6706 str r0,[z80xx]\r
6707 fetch 10\r
6708;@INC X (IX)\r
6709opcode_DD_2C:\r
6710 ldr r0,[z80xx]\r
6711 opINC8L r0\r
6712 str r0,[z80xx]\r
6713 fetch 8\r
6714;@DEC X (IX)\r
6715opcode_DD_2D:\r
6716 ldr r0,[z80xx]\r
6717 opDEC8L r0\r
6718 str r0,[z80xx]\r
6719 fetch 8\r
6720;@LD X,N (IX)\r
6721opcode_DD_2E:\r
6722 ldrb r0,[z80pc],#1\r
6723 strb r0,[z80xx,#2]\r
6724 fetch 11\r
6725;@INC (IX+N)\r
6726opcode_DD_34:\r
6727 ldrsb r0,[z80pc],#1\r
6728 ldr r1,[z80xx]\r
5d572e52 6729 add r0,r1,r0, lsl #16\r
6730 mov r0,r0,lsr #16\r
cc68a136 6731 stmfd sp!,{r0} ;@ save addr\r
6732 readmem8\r
6733 opINC8b\r
6734 ldmfd sp!,{r1} ;@ restore addr into r1\r
6735 writemem8\r
6736 fetch 23\r
6737;@DEC (IX+N)\r
6738opcode_DD_35:\r
6739 ldrsb r0,[z80pc],#1\r
6740 ldr r1,[z80xx]\r
5d572e52 6741 add r0,r1,r0, lsl #16\r
6742 mov r0,r0,lsr #16\r
cc68a136 6743 stmfd sp!,{r0} ;@ save addr\r
6744 readmem8\r
6745 opDEC8b\r
6746 ldmfd sp!,{r1} ;@ restore addr into r1\r
6747 writemem8\r
6748 fetch 23\r
6749;@LD (IX+N),N\r
6750opcode_DD_36:\r
6751 ldrsb r2,[z80pc],#1\r
6752 ldrb r0,[z80pc],#1\r
6753 ldr r1,[z80xx]\r
5d572e52 6754 add r1,r1,r2, lsl #16\r
6755 mov r1,r1,lsr #16\r
cc68a136 6756 writemem8\r
6757 fetch 19\r
6758;@ADD IX,SP\r
6759opcode_DD_39:\r
6760 ldr r0,[z80xx]\r
6761.if FAST_Z80SP\r
6762 ldr r2,[cpucontext,#z80sp_base]\r
6763 sub r2,z80sp,r2\r
6764 opADD16s r0 r2 16\r
6765.else\r
6766 opADD16s r0 z80sp 16\r
6767.endif\r
6768 str r0,[z80xx]\r
6769 fetch 15\r
6770;@LD B,I ( IX )\r
6771opcode_DD_44:\r
6772 ldrb r0,[z80xx,#3]\r
6773 and z80bc,z80bc,#0xFF<<16\r
6774 orr z80bc,z80bc,r0, lsl #24\r
6775 fetch 8\r
6776;@LD B,X ( IX )\r
6777opcode_DD_45:\r
6778 ldrb r0,[z80xx,#2]\r
6779 and z80bc,z80bc,#0xFF<<16\r
6780 orr z80bc,z80bc,r0, lsl #24\r
6781 fetch 8\r
6782;@LD B,(IX,N)\r
6783opcode_DD_46:\r
6784 ldrsb r0,[z80pc],#1\r
6785 ldr r1,[z80xx]\r
5d572e52 6786 add r0,r1,r0, lsl #16\r
6787 mov r0,r0,lsr #16\r
cc68a136 6788 readmem8\r
6789 and z80bc,z80bc,#0xFF<<16\r
6790 orr z80bc,z80bc,r0, lsl #24\r
6791 fetch 19\r
6792;@LD C,I (IX)\r
6793opcode_DD_4C:\r
6794 ldrb r0,[z80xx,#3]\r
6795 and z80bc,z80bc,#0xFF<<24\r
6796 orr z80bc,z80bc,r0, lsl #16\r
6797 fetch 8\r
6798;@LD C,X (IX)\r
6799opcode_DD_4D:\r
6800 ldrb r0,[z80xx,#2]\r
6801 and z80bc,z80bc,#0xFF<<24\r
6802 orr z80bc,z80bc,r0, lsl #16\r
6803 fetch 8\r
6804;@LD C,(IX,N)\r
6805opcode_DD_4E:\r
6806 ldrsb r0,[z80pc],#1\r
6807 ldr r1,[z80xx]\r
5d572e52 6808 add r0,r1,r0, lsl #16\r
6809 mov r0,r0,lsr #16\r
cc68a136 6810 readmem8\r
6811 and z80bc,z80bc,#0xFF<<24\r
6812 orr z80bc,z80bc,r0, lsl #16\r
6813 fetch 19\r
6814\r
6815;@LD D,I (IX)\r
6816opcode_DD_54:\r
6817 ldrb r0,[z80xx,#3]\r
6818 and z80de,z80de,#0xFF<<16\r
6819 orr z80de,z80de,r0, lsl #24\r
6820 fetch 8\r
6821;@LD D,X (IX)\r
6822opcode_DD_55:\r
6823 ldrb r0,[z80xx,#2]\r
6824 and z80de,z80de,#0xFF<<16\r
6825 orr z80de,z80de,r0, lsl #24\r
6826 fetch 8\r
6827;@LD D,(IX,N)\r
6828opcode_DD_56:\r
6829 ldrsb r0,[z80pc],#1\r
6830 ldr r1,[z80xx]\r
5d572e52 6831 add r0,r1,r0, lsl #16\r
6832 mov r0,r0,lsr #16\r
cc68a136 6833 readmem8\r
6834 and z80de,z80de,#0xFF<<16\r
6835 orr z80de,z80de,r0, lsl #24\r
6836 fetch 19\r
6837;@LD E,I (IX)\r
6838opcode_DD_5C:\r
6839 ldrb r0,[z80xx,#3]\r
6840 and z80de,z80de,#0xFF<<24\r
6841 orr z80de,z80de,r0, lsl #16\r
6842 fetch 8\r
6843;@LD E,X (IX)\r
6844opcode_DD_5D:\r
6845 ldrb r0,[z80xx,#2]\r
6846 and z80de,z80de,#0xFF<<24\r
6847 orr z80de,z80de,r0, lsl #16\r
6848 fetch 8\r
6849;@LD E,(IX,N)\r
6850opcode_DD_5E:\r
6851 ldrsb r0,[z80pc],#1\r
6852 ldr r1,[z80xx]\r
5d572e52 6853 add r0,r1,r0, lsl #16\r
6854 mov r0,r0,lsr #16\r
cc68a136 6855 readmem8\r
6856 and z80de,z80de,#0xFF<<24\r
6857 orr z80de,z80de,r0, lsl #16\r
6858 fetch 19\r
6859;@LD I,B (IX)\r
6860opcode_DD_60:\r
6861 mov r0,z80bc,lsr#24\r
6862 strb r0,[z80xx,#3]\r
6863 fetch 8\r
6864;@LD I,C (IX)\r
6865opcode_DD_61:\r
6866 mov r0,z80bc,lsr#16\r
6867 strb r0,[z80xx,#3]\r
6868 fetch 8\r
6869;@LD I,D (IX)\r
6870opcode_DD_62:\r
6871 mov r0,z80de,lsr#24\r
6872 strb r0,[z80xx,#3]\r
6873 fetch 8\r
6874;@LD I,E (IX)\r
6875opcode_DD_63:\r
6876 mov r0,z80de,lsr#16\r
6877 strb r0,[z80xx,#3]\r
6878 fetch 8\r
6879;@LD I,I (IX)\r
6880opcode_DD_64:\r
6881 fetch 8\r
6882;@LD I,X (IX)\r
6883opcode_DD_65:\r
6884 ldrb r0,[z80xx,#2]\r
6885 strb r0,[z80xx,#3]\r
6886 fetch 8\r
6887;@LD H,(IX,N)\r
6888opcode_DD_66:\r
6889 ldrsb r0,[z80pc],#1\r
6890 ldr r1,[z80xx]\r
5d572e52 6891 add r0,r1,r0, lsl #16\r
6892 mov r0,r0,lsr #16\r
cc68a136 6893 readmem8\r
6894 and z80hl,z80hl,#0xFF<<16\r
6895 orr z80hl,z80hl,r0, lsl #24\r
6896 fetch 19\r
6897;@LD I,A (IX)\r
6898opcode_DD_67:\r
6899 mov r0,z80a,lsr#24\r
6900 strb r0,[z80xx,#3]\r
6901 fetch 8\r
6902;@LD X,B (IX)\r
6903opcode_DD_68:\r
6904 mov r0,z80bc,lsr#24\r
6905 strb r0,[z80xx,#2]\r
6906 fetch 8\r
6907;@LD X,C (IX)\r
6908opcode_DD_69:\r
6909 mov r0,z80bc,lsr#16\r
6910 strb r0,[z80xx,#2]\r
6911 fetch 8\r
6912;@LD X,D (IX)\r
6913opcode_DD_6A:\r
6914 mov r0,z80de,lsr#24\r
6915 strb r0,[z80xx,#2]\r
6916 fetch 8\r
6917;@LD X,E (IX)\r
6918opcode_DD_6B:\r
6919 mov r0,z80de,lsr#16\r
6920 strb r0,[z80xx,#2]\r
6921 fetch 8\r
6922;@LD X,I (IX)\r
6923opcode_DD_6C:\r
6924 ldrb r0,[z80xx,#3]\r
6925 strb r0,[z80xx,#2]\r
6926 fetch 8\r
6927;@LD X,X (IX)\r
6928opcode_DD_6D:\r
6929 fetch 8\r
6930;@LD L,(IX,N)\r
6931opcode_DD_6E:\r
6932 ldrsb r0,[z80pc],#1\r
6933 ldr r1,[z80xx]\r
5d572e52 6934 add r0,r1,r0, lsl #16\r
6935 mov r0,r0,lsr #16\r
cc68a136 6936 readmem8\r
6937 and z80hl,z80hl,#0xFF<<24\r
6938 orr z80hl,z80hl,r0, lsl #16\r
6939 fetch 19\r
6940;@LD X,A (IX)\r
6941opcode_DD_6F:\r
6942 mov r0,z80a,lsr#24\r
6943 strb r0,[z80xx,#2]\r
6944 fetch 8\r
6945\r
6946;@LD (IX,N),B\r
6947opcode_DD_70:\r
6948 ldrsb r0,[z80pc],#1\r
6949 ldr r1,[z80xx]\r
5d572e52 6950 add r1,r1,r0, lsl #16\r
6951 mov r1,r1,lsr #16\r
cc68a136 6952 mov r0,z80bc, lsr #24\r
6953 writemem8\r
6954 fetch 19\r
6955;@LD (IX,N),C\r
6956opcode_DD_71:\r
6957 ldrsb r0,[z80pc],#1\r
6958 ldr r1,[z80xx]\r
5d572e52 6959 add r1,r1,r0, lsl #16\r
6960 mov r1,r1,lsr #16\r
cc68a136 6961 mov r0,z80bc, lsr #16\r
6962 and r0,r0,#0xFF\r
6963 writemem8\r
6964 fetch 19\r
6965;@LD (IX,N),D\r
6966opcode_DD_72:\r
6967 ldrsb r0,[z80pc],#1\r
6968 ldr r1,[z80xx]\r
5d572e52 6969 add r1,r1,r0, lsl #16\r
6970 mov r1,r1,lsr #16\r
cc68a136 6971 mov r0,z80de, lsr #24\r
6972 writemem8\r
6973 fetch 19\r
6974;@LD (IX,N),E\r
6975opcode_DD_73:\r
6976 ldrsb r0,[z80pc],#1\r
6977 ldr r1,[z80xx]\r
5d572e52 6978 add r1,r1,r0, lsl #16\r
6979 mov r1,r1,lsr #16\r
cc68a136 6980 mov r0,z80de, lsr #16\r
6981 and r0,r0,#0xFF\r
6982 writemem8\r
6983 fetch 19\r
6984;@LD (IX,N),H\r
6985opcode_DD_74:\r
6986 ldrsb r0,[z80pc],#1\r
6987 ldr r1,[z80xx]\r
5d572e52 6988 add r1,r1,r0, lsl #16\r
6989 mov r1,r1,lsr #16\r
cc68a136 6990 mov r0,z80hl, lsr #24\r
6991 writemem8\r
6992 fetch 19\r
6993;@LD (IX,N),L\r
6994opcode_DD_75:\r
6995 ldrsb r0,[z80pc],#1\r
6996 ldr r1,[z80xx]\r
5d572e52 6997 add r1,r1,r0, lsl #16\r
6998 mov r1,r1,lsr #16\r
cc68a136 6999 mov r0,z80hl, lsr #16\r
7000 and r0,r0,#0xFF\r
7001 writemem8\r
7002 fetch 19\r
7003;@LD (IX,N),A\r
7004opcode_DD_77:\r
7005 ldrsb r0,[z80pc],#1\r
7006 ldr r1,[z80xx]\r
5d572e52 7007 add r1,r1,r0, lsl #16\r
7008 mov r1,r1,lsr #16\r
cc68a136 7009 mov r0,z80a, lsr #24\r
7010 writemem8\r
7011 fetch 19\r
7012\r
7013;@LD A,I from (IX)\r
7014opcode_DD_7C:\r
7015 ldrb r0,[z80xx,#3]\r
7016 mov z80a,r0, lsl #24\r
7017 fetch 8\r
7018;@LD A,X from (IX)\r
7019opcode_DD_7D:\r
7020 ldrb r0,[z80xx,#2]\r
7021 mov z80a,r0, lsl #24\r
7022 fetch 8\r
7023;@LD A,(IX,N)\r
7024opcode_DD_7E:\r
7025 ldrsb r0,[z80pc],#1\r
7026 ldr r1,[z80xx]\r
5d572e52 7027 add r0,r1,r0, lsl #16\r
7028 mov r0,r0,lsr #16\r
cc68a136 7029 readmem8\r
7030 mov z80a,r0, lsl #24\r
7031 fetch 19\r
7032\r
7033;@ADD A,I ( IX)\r
7034opcode_DD_84:\r
7035 ldrb r0,[z80xx,#3]\r
7036 opADDb\r
7037 fetch 8\r
7038;@ADD A,X ( IX)\r
7039opcode_DD_85:\r
7040 ldrb r0,[z80xx,#2]\r
7041 opADDb\r
7042 fetch 8\r
7043;@ADD A,(IX+N)\r
7044opcode_DD_86:\r
7045 ldrsb r0,[z80pc],#1\r
7046 ldr r1,[z80xx]\r
5d572e52 7047 add r0,r1,r0, lsl #16\r
7048 mov r0,r0,lsr #16\r
cc68a136 7049 readmem8\r
7050 opADDb\r
7051 fetch 19\r
7052\r
7053;@ADC A,I (IX)\r
7054opcode_DD_8C:\r
7055 ldrb r0,[z80xx,#3]\r
7056 opADCb\r
7057 fetch 8\r
7058;@ADC A,X (IX)\r
7059opcode_DD_8D:\r
7060 ldrb r0,[z80xx,#2]\r
7061 opADCb\r
7062 fetch 8\r
7063;@ADC A,(IX+N)\r
7064opcode_DD_8E:\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 opADCb\r
7071 fetch 19\r
7072\r
7073;@SUB A,I (IX)\r
7074opcode_DD_94:\r
7075 ldrb r0,[z80xx,#3]\r
7076 opSUBb\r
7077 fetch 8\r
7078;@SUB A,X (IX)\r
7079opcode_DD_95:\r
7080 ldrb r0,[z80xx,#2]\r
7081 opSUBb\r
7082 fetch 8\r
7083;@SUB A,(IX+N)\r
7084opcode_DD_96:\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 opSUBb\r
7091 fetch 19\r
7092\r
7093;@SBC A,I (IX)\r
7094opcode_DD_9C:\r
7095 ldrb r0,[z80xx,#3]\r
7096 opSBCb\r
7097 fetch 8\r
7098;@SBC A,X (IX)\r
7099opcode_DD_9D:\r
7100 ldrb r0,[z80xx,#2]\r
7101 opSBCb\r
7102 fetch 8\r
7103;@SBC A,(IX+N)\r
7104opcode_DD_9E:\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 opSBCb\r
7111 fetch 19\r
7112\r
7113;@AND I (IX)\r
7114opcode_DD_A4:\r
7115 ldrb r0,[z80xx,#3]\r
7116 opANDb\r
7117 fetch 8\r
7118;@AND X (IX)\r
7119opcode_DD_A5:\r
7120 ldrb r0,[z80xx,#2]\r
7121 opANDb\r
7122 fetch 8\r
7123;@AND (IX+N)\r
7124opcode_DD_A6:\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 opANDb\r
7131 fetch 19\r
7132\r
7133;@XOR I (IX)\r
7134opcode_DD_AC:\r
7135 ldrb r0,[z80xx,#3]\r
7136 opXORb\r
7137 fetch 8\r
7138;@XOR X (IX)\r
7139opcode_DD_AD:\r
7140 ldrb r0,[z80xx,#2]\r
7141 opXORb\r
7142 fetch 8\r
7143;@XOR (IX+N)\r
7144opcode_DD_AE:\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 opXORb\r
7151 fetch 19\r
7152\r
7153;@OR I (IX)\r
7154opcode_DD_B4:\r
7155 ldrb r0,[z80xx,#3]\r
7156 opORb\r
7157 fetch 8\r
7158;@OR X (IX)\r
7159opcode_DD_B5:\r
7160 ldrb r0,[z80xx,#2]\r
7161 opORb\r
7162 fetch 8\r
7163;@OR (IX+N)\r
7164opcode_DD_B6:\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 opORb\r
7171 fetch 19\r
7172\r
7173;@CP I (IX)\r
7174opcode_DD_BC:\r
7175 ldrb r0,[z80xx,#3]\r
7176 opCPb\r
7177 fetch 8\r
7178;@CP X (IX)\r
7179opcode_DD_BD:\r
7180 ldrb r0,[z80xx,#2]\r
7181 opCPb\r
7182 fetch 8\r
7183;@CP (IX+N)\r
7184opcode_DD_BE:\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 opCPb\r
7191 fetch 19\r
7192\r
7193\r
7194opcodes_DD_CB_LOCAL: .word opcodes_DD_CB\r
7195opcode_DD_CB:\r
7196;@Looks up the opcode on the opcodes_DD_CB table and then \r
7197;@moves the PC to the location of the subroutine\r
7198 ldrsb r0,[z80pc],#1\r
7199 ldr r1,[z80xx]\r
5d572e52 7200 add r0,r1,r0, lsl #16\r
7201 mov r0,r0,lsr #16\r
cc68a136 7202\r
7203 ldrb r1,[z80pc],#1\r
7204 ldr pc,[pc,r1, lsl #2]\r
7205 .word 0x00\r
7206opcodes_DD_CB:\r
7207 .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
7208 .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
7209 .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
7210 .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
7211 .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
7212 .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
7213 .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
7214 .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
7215 .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
7216 .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
7217 .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
7218 .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
7219 .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
7220 .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
7221 .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
7222 .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
7223 .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
7224 .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
7225 .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
7226 .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
7227 .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
7228 .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
7229 .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
7230 .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
7231 .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
7232 .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
7233 .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
7234 .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
7235 .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
7236 .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
7237 .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
7238 .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
7239\r
7240;@RLC (IX+N) \r
7241opcode_DD_CB_06:\r
7242 stmfd sp!,{r0} ;@ save addr\r
7243 readmem8\r
7244 opRLCb\r
7245 ldmfd sp!,{r1} ;@ restore addr into r1\r
7246 writemem8\r
7247 fetch 23\r
7248;@RRC (IX+N) \r
7249opcode_DD_CB_0E:\r
7250 stmfd sp!,{r0} ;@ save addr\r
7251 readmem8\r
7252 opRRCb\r
7253 ldmfd sp!,{r1} ;@ restore addr into r1\r
7254 writemem8\r
7255 fetch 23\r
7256;@RL (IX+N) \r
7257opcode_DD_CB_16:\r
7258 stmfd sp!,{r0} ;@ save addr\r
7259 readmem8\r
7260 opRLb\r
7261 ldmfd sp!,{r1} ;@ restore addr into r1\r
7262 writemem8\r
7263 fetch 23\r
7264;@RR (IX+N) \r
7265opcode_DD_CB_1E:\r
7266 stmfd sp!,{r0} ;@ save addr \r
7267 readmem8\r
7268 opRRb\r
7269 ldmfd sp!,{r1} ;@ restore addr into r1\r
7270 writemem8\r
7271 fetch 23\r
7272\r
7273;@SLA (IX+N) \r
7274opcode_DD_CB_26:\r
7275 stmfd sp!,{r0} ;@ save addr \r
7276 readmem8\r
7277 opSLAb\r
7278 ldmfd sp!,{r1} ;@ restore addr into r1\r
7279 writemem8\r
7280 fetch 23\r
7281;@SRA (IX+N) \r
7282opcode_DD_CB_2E:\r
7283 stmfd sp!,{r0} ;@ save addr \r
7284 readmem8\r
7285 opSRAb\r
7286 ldmfd sp!,{r1} ;@ restore addr into r1\r
7287 writemem8\r
7288 fetch 23\r
7289;@SLL (IX+N) \r
7290opcode_DD_CB_36:\r
7291 stmfd sp!,{r0} ;@ save addr \r
7292 readmem8\r
7293 opSLLb\r
7294 ldmfd sp!,{r1} ;@ restore addr into r1\r
7295 writemem8\r
7296 fetch 23\r
7297;@SRL (IX+N)\r
7298opcode_DD_CB_3E:\r
7299 stmfd sp!,{r0} ;@ save addr \r
7300 readmem8\r
7301 opSRLb\r
7302 ldmfd sp!,{r1} ;@ restore addr into r1\r
7303 writemem8\r
7304 fetch 23\r
7305\r
7306;@BIT 0,(IX+N) \r
7307opcode_DD_CB_46:\r
7308 readmem8\r
7309 opBITb 0\r
7310 fetch 20\r
7311;@BIT 1,(IX+N) \r
7312opcode_DD_CB_4E:\r
7313 readmem8\r
7314 opBITb 1\r
7315 fetch 20\r
7316;@BIT 2,(IX+N) \r
7317opcode_DD_CB_56:\r
7318 readmem8\r
7319 opBITb 2\r
7320 fetch 20\r
7321;@BIT 3,(IX+N) \r
7322opcode_DD_CB_5E:\r
7323 readmem8\r
7324 opBITb 3\r
7325 fetch 20\r
7326;@BIT 4,(IX+N) \r
7327opcode_DD_CB_66:\r
7328 readmem8\r
7329 opBITb 4\r
7330 fetch 20\r
7331;@BIT 5,(IX+N) \r
7332opcode_DD_CB_6E:\r
7333 readmem8\r
7334 opBITb 5\r
7335 fetch 20\r
7336;@BIT 6,(IX+N) \r
7337opcode_DD_CB_76:\r
7338 readmem8\r
7339 opBITb 6\r
7340 fetch 20\r
7341;@BIT 7,(IX+N) \r
7342opcode_DD_CB_7E:\r
7343 readmem8\r
7344 opBIT7b\r
7345 fetch 20\r
7346;@RES 0,(IX+N) \r
7347opcode_DD_CB_86:\r
7348 opRESmem 0\r
7349;@RES 1,(IX+N) \r
7350opcode_DD_CB_8E:\r
7351 opRESmem 1\r
7352;@RES 2,(IX+N) \r
7353opcode_DD_CB_96:\r
7354 opRESmem 2\r
7355;@RES 3,(IX+N) \r
7356opcode_DD_CB_9E:\r
7357 opRESmem 3\r
7358;@RES 4,(IX+N) \r
7359opcode_DD_CB_A6:\r
7360 opRESmem 4\r
7361;@RES 5,(IX+N) \r
7362opcode_DD_CB_AE:\r
7363 opRESmem 5\r
7364;@RES 6,(IX+N) \r
7365opcode_DD_CB_B6:\r
7366 opRESmem 6\r
7367;@RES 7,(IX+N) \r
7368opcode_DD_CB_BE:\r
7369 opRESmem 7\r
7370\r
7371;@SET 0,(IX+N) \r
7372opcode_DD_CB_C6:\r
7373 opSETmem 0\r
7374;@SET 1,(IX+N) \r
7375opcode_DD_CB_CE:\r
7376 opSETmem 1\r
7377;@SET 2,(IX+N) \r
7378opcode_DD_CB_D6:\r
7379 opSETmem 2\r
7380;@SET 3,(IX+N) \r
7381opcode_DD_CB_DE:\r
7382 opSETmem 3\r
7383;@SET 4,(IX+N) \r
7384opcode_DD_CB_E6:\r
7385 opSETmem 4\r
7386;@SET 5,(IX+N) \r
7387opcode_DD_CB_EE:\r
7388 opSETmem 5\r
7389;@SET 6,(IX+N) \r
7390opcode_DD_CB_F6:\r
7391 opSETmem 6\r
7392;@SET 7,(IX+N) \r
7393opcode_DD_CB_FE:\r
7394 opSETmem 7\r
7395\r
7396\r
7397\r
7398;@POP IX\r
7399opcode_DD_E1:\r
7400.if FAST_Z80SP\r
7401 opPOP\r
7402.else\r
7403 mov r0,z80sp\r
7404 stmfd sp!,{z80xx}\r
7405 readmem16\r
7406 ldmfd sp!,{z80xx}\r
7407 add z80sp,z80sp,#2\r
7408.endif\r
7409 strh r0,[z80xx,#2]\r
7410 fetch 14\r
7411;@EX (SP),IX\r
7412opcode_DD_E3:\r
7413.if FAST_Z80SP\r
7414 ldrb r0,[z80sp]\r
7415 ldrb r1,[z80sp,#1]\r
7416 orr r2,r0,r1, lsl #8\r
7417 ldrh r1,[z80xx,#2]\r
7418 mov r0,r1, lsr #8\r
7419 strb r0,[z80sp,#1]\r
7420 strb r1,[z80sp]\r
7421 strh r2,[z80xx,#2]\r
7422.else\r
7423 mov r0,z80sp\r
7424 stmfd sp!,{z80xx}\r
7425 readmem16\r
7426 ldmfd sp!,{z80xx}\r
7427 mov r2,r0\r
7428 ldrh r0,[z80xx,#2]\r
7429 strh r2,[z80xx,#2]\r
7430 mov r1,z80sp\r
7431 writemem16\r
7432.endif\r
7433 fetch 23\r
7434;@PUSH IX\r
7435opcode_DD_E5:\r
7436 ldr r2,[z80xx]\r
7437 opPUSHreg r2\r
7438 fetch 15\r
7439;@JP (IX)\r
7440opcode_DD_E9:\r
7441 ldrh r0,[z80xx,#2]\r
7442 rebasepc\r
7443 fetch 8\r
7444;@LD SP,IX\r
7445opcode_DD_F9:\r
7446.if FAST_Z80SP\r
7447 ldrh r0,[z80xx,#2]\r
7448 rebasesp\r
cc68a136 7449.else\r
7450 ldrh z80sp,[z80xx,#2]\r
7451.endif\r
7452 fetch 10\r
7453\r
7454;@##################################\r
7455;@##################################\r
7456;@### opcodes ED #########################\r
7457;@##################################\r
7458;@##################################\r
7459\r
7460opcode_ED_NF:\r
7461 fetch 8\r
7462;@ ldrb r0,[z80pc],#1\r
7463;@ ldr pc,[opcodes,r0, lsl #2]\r
7464;@ mov r0,#0xED00\r
7465;@ orr r0,r0,r1\r
7466;@ b end_loop\r
7467\r
7468;@IN B,(C)\r
7469opcode_ED_40:\r
7470 opIN_C\r
7471 and z80bc,z80bc,#0xFF<<16\r
7472 orr z80bc,z80bc,r0, lsl #24\r
7473 sub r1,opcodes,#0x100\r
7474 ldrb r0,[r1,r0]\r
7475 and z80f,z80f,#1<<CFlag\r
7476 orr z80f,z80f,r0\r
7477 fetch 12\r
7478;@OUT (C),B\r
7479opcode_ED_41:\r
7480 mov r1,z80bc, lsr #24\r
7481 opOUT_C\r
7482 fetch 12\r
7483\r
7484;@SBC HL,BC\r
7485opcode_ED_42:\r
7486 opSBC16 z80bc\r
7487\r
7488;@LD (NN),BC\r
7489opcode_ED_43:\r
7490 ldrb r0,[z80pc],#1\r
7491 ldrb r1,[z80pc],#1\r
7492 orr r1,r0,r1, lsl #8\r
7493 mov r0,z80bc, lsr #16\r
7494 writemem16\r
7495 fetch 20\r
7496;@NEG\r
7497opcode_ED_44:\r
7498 rsbs z80a,z80a,#0\r
7499 mrs z80f,cpsr\r
7500 mov z80f,z80f,lsr#28 ;@S,Z,V&C\r
7501 eor z80f,z80f,#(1<<CFlag)|(1<<NFlag) ;@invert C and set n.\r
7502 tst z80a,#0x0F000000 ;@H, correct\r
7503 orrne z80f,z80f,#1<<HFlag\r
7504 fetch 8\r
7505 \r
7506;@RETN, moved to ED_4D\r
7507;@opcode_ED_45:\r
7508\r
7509;@IM 0\r
7510opcode_ED_46:\r
7511 strb z80a,[cpucontext,#z80im]\r
7512 fetch 8\r
7513;@LD I,A\r
7514opcode_ED_47:\r
7515 str z80a,[cpucontext,#z80i]\r
7516 fetch 9\r
7517;@IN C,(C)\r
7518opcode_ED_48:\r
7519 opIN_C\r
7520 and z80bc,z80bc,#0xFF<<24\r
7521 orr z80bc,z80bc,r0, lsl #16\r
7522 sub r1,opcodes,#0x100\r
7523 ldrb r0,[r1,r0]\r
7524 and z80f,z80f,#1<<CFlag\r
7525 orr z80f,z80f,r0\r
7526 fetch 12\r
7527;@OUT (C),C\r
7528opcode_ED_49:\r
7529 mov r0,z80bc, lsr #16\r
7530 and r1,r0,#0xFF\r
7531 opOUT\r
7532 fetch 12\r
7533;@ADC HL,BC\r
7534opcode_ED_4A:\r
7535 opADC16 z80bc\r
7536;@LD BC,(NN)\r
7537opcode_ED_4B:\r
7538 ldrb r0,[z80pc],#1\r
7539 ldrb r1,[z80pc],#1\r
7540 orr r0,r0,r1, lsl #8\r
7541 readmem16\r
7542 mov z80bc,r0, lsl #16\r
7543 fetch 20\r
7544\r
7545;@RETN\r
7546opcode_ED_45:\r
7547;@RETI\r
7548opcode_ED_4D:\r
7549 ldrb r0,[cpucontext,#z80if]\r
7550 tst r0,#Z80_IF2\r
7551 orrne r0,r0,#Z80_IF1\r
7552 biceq r0,r0,#Z80_IF1\r
7553 strb r0,[cpucontext,#z80if]\r
7554 opPOP\r
7555 rebasepc\r
7556 fetch 14\r
7557\r
7558;@LD R,A\r
7559opcode_ED_4F:\r
7560 mov r0,z80a,lsr#24\r
7561 strb r0,[cpucontext,#z80r]\r
7562 fetch 9\r
7563\r
7564;@IN D,(C)\r
7565opcode_ED_50:\r
7566 opIN_C\r
7567 and z80de,z80de,#0xFF<<16\r
7568 orr z80de,z80de,r0, lsl #24\r
7569 sub r1,opcodes,#0x100\r
7570 ldrb r0,[r1,r0]\r
7571 and z80f,z80f,#1<<CFlag\r
7572 orr z80f,z80f,r0\r
7573 fetch 12\r
7574;@OUT (C),D\r
7575opcode_ED_51:\r
7576 mov r1,z80de, lsr #24\r
7577 opOUT_C\r
7578 fetch 12\r
7579;@SBC HL,DE\r
7580opcode_ED_52:\r
7581 opSBC16 z80de\r
7582;@LD (NN),DE\r
7583opcode_ED_53:\r
7584 ldrb r0,[z80pc],#1\r
7585 ldrb r1,[z80pc],#1\r
7586 orr r1,r0,r1, lsl #8\r
7587 mov r0,z80de, lsr #16\r
7588 writemem16\r
7589 fetch 20\r
7590;@IM 1\r
7591opcode_ED_56:\r
7592 mov r0,#1\r
7593 strb r0,[cpucontext,#z80im]\r
7594 fetch 8\r
7595;@LD A,I\r
7596opcode_ED_57:\r
7597 ldr z80a,[cpucontext,#z80i]\r
7598 tst z80a,#0xFF000000\r
7599 and z80f,z80f,#(1<<CFlag)\r
7600 orreq z80f,z80f,#(1<<ZFlag)\r
7601 orrmi z80f,z80f,#(1<<SFlag)\r
7602 ldrb r0,[cpucontext,#z80if]\r
7603 tst r0,#Z80_IF2\r
7604 orrne z80f,z80f,#(1<<VFlag)\r
7605 fetch 9\r
7606;@IN E,(C)\r
7607opcode_ED_58:\r
7608 opIN_C\r
7609 and z80de,z80de,#0xFF<<24\r
7610 orr z80de,z80de,r0, lsl #16\r
7611 sub r1,opcodes,#0x100\r
7612 ldrb r0,[r1,r0]\r
7613 and z80f,z80f,#1<<CFlag\r
7614 orr z80f,z80f,r0\r
7615 fetch 12\r
7616;@OUT (C),E\r
7617opcode_ED_59:\r
7618 mov r1,z80de, lsr #16\r
7619 and r1,r1,#0xFF\r
7620 opOUT_C\r
7621 fetch 12\r
7622;@ADC HL,DE\r
7623opcode_ED_5A:\r
7624 opADC16 z80de\r
7625;@LD DE,(NN)\r
7626opcode_ED_5B:\r
7627 ldrb r0,[z80pc],#1\r
7628 ldrb r1,[z80pc],#1\r
7629 orr r0,r0,r1, lsl #8\r
7630 readmem16\r
7631 mov z80de,r0, lsl #16\r
7632 fetch 20\r
7633;@IM 2\r
7634opcode_ED_5E:\r
7635 mov r0,#2\r
7636 strb r0,[cpucontext,#z80im]\r
7637 fetch 8\r
7638;@LD A,R\r
7639opcode_ED_5F:\r
7640 ldrb r0,[cpucontext,#z80r]\r
7641 and r0,r0,#0x80\r
7642 rsb r1,z80_icount,#0\r
7643 and r1,r1,#0x7F\r
7644 orr r0,r0,r1\r
7645 movs z80a,r0, lsl #24\r
7646 and z80f,z80f,#1<<CFlag\r
7647 orrmi z80f,z80f,#(1<<SFlag)\r
7648 orreq z80f,z80f,#(1<<ZFlag)\r
7649 ldrb r0,[cpucontext,#z80if]\r
7650 tst r0,#Z80_IF2\r
7651 orrne z80f,z80f,#(1<<VFlag)\r
7652 fetch 9\r
7653;@IN H,(C)\r
7654opcode_ED_60:\r
7655 opIN_C\r
7656 and z80hl,z80hl,#0xFF<<16\r
7657 orr z80hl,z80hl,r0, lsl #24\r
7658 sub r1,opcodes,#0x100\r
7659 ldrb r0,[r1,r0]\r
7660 and z80f,z80f,#1<<CFlag\r
7661 orr z80f,z80f,r0\r
7662 fetch 12\r
7663;@OUT (C),H\r
7664opcode_ED_61:\r
7665 mov r1,z80hl, lsr #24\r
7666 opOUT_C\r
7667 fetch 12\r
7668;@SBC HL,HL\r
7669opcode_ED_62:\r
7670 opSBC16HL\r
7671;@RRD\r
7672opcode_ED_67:\r
7673 readmem8HL\r
7674 mov r1,r0,ror#4\r
7675 orr r0,r1,z80a,lsr#20\r
7676 bic z80a,z80a,#0x0F000000\r
7677 orr z80a,z80a,r1,lsr#4\r
7678 writemem8HL\r
7679 sub r1,opcodes,#0x100\r
7680 ldrb r0,[r1,z80a, lsr #24]\r
7681 and z80f,z80f,#1<<CFlag\r
7682 orr z80f,z80f,r0\r
7683 fetch 18\r
7684;@IN L,(C)\r
7685opcode_ED_68:\r
7686 opIN_C\r
7687 and z80hl,z80hl,#0xFF<<24\r
7688 orr z80hl,z80hl,r0, lsl #16\r
7689 and z80f,z80f,#1<<CFlag\r
7690 sub r1,opcodes,#0x100\r
7691 ldrb r0,[r1,r0]\r
7692 orr z80f,z80f,r0\r
7693 fetch 12\r
7694;@OUT (C),L\r
7695opcode_ED_69:\r
7696 mov r1,z80hl, lsr #16\r
7697 and r1,r1,#0xFF\r
7698 opOUT_C\r
7699 fetch 12\r
7700;@ADC HL,HL\r
7701opcode_ED_6A:\r
7702 opADC16HL\r
7703;@RLD\r
7704opcode_ED_6F:\r
7705 readmem8HL\r
7706 orr r0,r0,z80a,lsl#4\r
7707 mov r0,r0,ror#28\r
7708 and z80a,z80a,#0xF0000000\r
7709 orr z80a,z80a,r0,lsl#16\r
7710 and z80a,z80a,#0xFF000000\r
7711 writemem8HL\r
7712 sub r1,opcodes,#0x100\r
7713 ldrb r0,[r1,z80a, lsr #24]\r
7714 and z80f,z80f,#1<<CFlag\r
7715 orr z80f,z80f,r0\r
7716 fetch 18\r
7717;@IN F,(C)\r
7718opcode_ED_70:\r
7719 opIN_C\r
7720 and z80f,z80f,#1<<CFlag\r
7721 sub r1,opcodes,#0x100\r
7722 ldrb r0,[r1,r0]\r
7723 orr z80f,z80f,r0\r
7724 fetch 12\r
7725;@OUT (C),0\r
7726opcode_ED_71:\r
7727 mov r1,#0\r
7728 opOUT_C\r
7729 fetch 12\r
7730\r
7731;@SBC HL,SP\r
7732opcode_ED_72:\r
7733.if FAST_Z80SP\r
7734 ldr r0,[cpucontext,#z80sp_base]\r
7735 sub r0,z80sp,r0\r
7736 mov r0, r0, lsl #16\r
7737.else\r
7738 mov r0,z80sp,lsl#16\r
7739.endif\r
7740 opSBC16 r0\r
7741;@LD (NN),SP\r
7742opcode_ED_73:\r
7743 ldrb r0,[z80pc],#1\r
7744 ldrb r1,[z80pc],#1\r
7745 orr r1,r0,r1, lsl #8\r
7746.if FAST_Z80SP\r
7747 ldr r0,[cpucontext,#z80sp_base]\r
7748 sub r0,z80sp,r0\r
7749.else\r
7750 mov r0,z80sp\r
7751.endif\r
7752 writemem16\r
7753 fetch 16\r
7754;@IN A,(C)\r
7755opcode_ED_78:\r
7756 opIN_C\r
7757 mov z80a,r0, lsl #24\r
7758 and z80f,z80f,#1<<CFlag\r
7759 sub r1,opcodes,#0x100\r
7760 ldrb r0,[r1,r0]\r
7761 orr z80f,z80f,r0\r
7762 fetch 12\r
7763;@OUT (C),A\r
7764opcode_ED_79:\r
7765 mov r1,z80a, lsr #24\r
7766 opOUT_C\r
7767 fetch 12\r
7768;@ADC HL,SP\r
7769opcode_ED_7A:\r
7770.if FAST_Z80SP\r
7771 ldr r0,[cpucontext,#z80sp_base]\r
7772 sub r0,z80sp,r0\r
7773 mov r0, r0, lsl #16\r
7774.else\r
7775 mov r0,z80sp,lsl#16\r
7776.endif\r
7777 opADC16 r0\r
7778;@LD SP,(NN)\r
7779opcode_ED_7B:\r
7780 ldrb r0,[z80pc],#1\r
7781 ldrb r1,[z80pc],#1\r
7782 orr r0,r0,r1, lsl #8\r
7783 readmem16\r
7784.if FAST_Z80SP\r
7785 rebasesp\r
b4db550e 7786.else\r
cc68a136 7787 mov z80sp,r0\r
b4db550e 7788.endif\r
cc68a136 7789 fetch 20\r
7790;@LDI\r
7791opcode_ED_A0:\r
7792 copymem8HL_DE\r
7793 add z80hl,z80hl,#1<<16\r
7794 add z80de,z80de,#1<<16\r
7795 subs z80bc,z80bc,#1<<16\r
7796 bic z80f,z80f,#(1<<VFlag)|(1<<NFlag)|(1<<HFlag)\r
7797 orrne z80f,z80f,#1<<VFlag\r
7798 fetch 16\r
7799;@CPI\r
7800opcode_ED_A1:\r
7801 readmem8HL\r
7802 add z80hl,z80hl,#0x00010000\r
7803 mov r1,z80a,lsl#4\r
7804 cmp z80a,r0,lsl#24\r
7805 and z80f,z80f,#1<<CFlag\r
7806 orr z80f,z80f,#1<<NFlag\r
7807 orrmi z80f,z80f,#1<<SFlag\r
7808 orreq z80f,z80f,#1<<ZFlag\r
7809 cmp r1,r0,lsl#28\r
7810 orrcc z80f,z80f,#1<<HFlag\r
7811 subs z80bc,z80bc,#0x00010000\r
7812 orrne z80f,z80f,#1<<VFlag\r
7813 fetch 16\r
7814;@INI\r
7815opcode_ED_A2:\r
7816 opIN_C\r
7817 and z80f,r0,#0x80\r
7818 mov z80f,z80f,lsr#2 ;@NFlag set by bit 7\r
7819;@ mov r1,z80bc,lsl#8\r
7820;@ add r1,r1,#0x01000000\r
7821;@ adds r1,r1,r0,lsl#24\r
7822;@ orrcs z80f,z80f,#(1<<CFlag)|(1<<HFlag) ;@ CF & HF set if (HL) + ((C+1) & 0xFF) > 0xFF\r
7823 writemem8HL\r
7824 add z80hl,z80hl,#1<<16\r
7825 sub z80bc,z80bc,#1<<24\r
7826 tst z80bc,#0xFF<<24\r
7827 orrmi z80f,z80f,#1<<SFlag\r
7828 orreq z80f,z80f,#1<<ZFlag\r
7829 fetch 16\r
7830\r
7831;@OUTI\r
7832opcode_ED_A3:\r
7833 readmem8HL\r
7834 add z80hl,z80hl,#1<<16\r
7835 and z80f,r0,#0x80\r
7836 mov z80f,z80f,lsr#2 ;@NFlag set by bit 7\r
7837 mov r1,z80hl,lsl#8\r
7838 adds r1,r1,r0,lsl#24\r
7839 orrcs z80f,z80f,#(1<<CFlag)|(1<<HFlag) ;@ CF & HF set if (HL)+L > 0xFF\r
7840 sub z80bc,z80bc,#1<<24\r
7841 tst z80bc,#0xFF<<24\r
7842 orrmi z80f,z80f,#1<<SFlag\r
7843 orreq z80f,z80f,#1<<ZFlag\r
7844 mov r1,r0\r
7845 opOUT_C\r
7846 fetch 16\r
7847\r
7848;@LDD\r
7849opcode_ED_A8:\r
7850 copymem8HL_DE\r
7851 sub z80hl,z80hl,#1<<16\r
7852 sub z80de,z80de,#1<<16\r
7853 subs z80bc,z80bc,#1<<16\r
7854 bic z80f,z80f,#(1<<VFlag)|(1<<NFlag)|(1<<HFlag)\r
7855 orrne z80f,z80f,#1<<VFlag\r
7856 fetch 16\r
7857\r
7858;@CPD\r
7859opcode_ED_A9:\r
7860 readmem8HL\r
7861 sub z80hl,z80hl,#1<<16\r
7862 mov r1,z80a,lsl#4\r
7863 cmp z80a,r0,lsl#24\r
7864 and z80f,z80f,#1<<CFlag\r
7865 orr z80f,z80f,#1<<NFlag\r
7866 orrmi z80f,z80f,#1<<SFlag\r
7867 orreq z80f,z80f,#1<<ZFlag\r
7868 cmp r1,r0,lsl#28\r
7869 orrcc z80f,z80f,#1<<HFlag\r
7870 subs z80bc,z80bc,#0x00010000\r
7871 orrne z80f,z80f,#1<<VFlag\r
7872 fetch 16\r
7873\r
7874;@IND\r
7875opcode_ED_AA:\r
7876 opIN_C\r
7877 and z80f,r0,#0x80\r
7878 mov z80f,z80f,lsr#2 ;@NFlag set by bit 7\r
7879;@ mov r1,z80bc,lsl#8\r
7880;@ sub r1,r1,#0x01000000\r
7881;@ adds r1,r1,r0,lsl#24\r
7882;@ orrcs z80f,z80f,#(1<<CFlag)|(1<<HFlag) ;@ CF & HF set if (HL) + ((C-1) & 0xFF) > 0xFF\r
7883 writemem8HL\r
7884 sub z80hl,z80hl,#1<<16\r
7885 sub z80bc,z80bc,#1<<24\r
7886 tst z80bc,#0xFF<<24\r
7887 orrmi z80f,z80f,#1<<SFlag\r
7888 orreq z80f,z80f,#1<<ZFlag\r
7889 fetch 16\r
7890\r
7891;@OUTD\r
7892opcode_ED_AB:\r
7893 readmem8HL\r
7894 sub z80hl,z80hl,#1<<16\r
7895 and z80f,r0,#0x80\r
7896 mov z80f,z80f,lsr#2 ;@NFlag set by bit 7\r
7897 mov r1,z80hl,lsl#8\r
7898 adds r1,r1,r0,lsl#24\r
7899 orrcs z80f,z80f,#(1<<CFlag)|(1<<HFlag) ;@ CF & HF set if r0+HL > 0xFF\r
7900 sub z80bc,z80bc,#1<<24\r
7901 tst z80bc,#0xFF<<24\r
7902 orrmi z80f,z80f,#1<<SFlag\r
7903 orreq z80f,z80f,#1<<ZFlag\r
7904 mov r1,r0\r
7905 opOUT_C\r
7906 fetch 16\r
7907;@LDIR\r
7908opcode_ED_B0:\r
7909 copymem8HL_DE\r
7910 add z80hl,z80hl,#1<<16\r
7911 add z80de,z80de,#1<<16\r
7912 subs z80bc,z80bc,#1<<16\r
7913 bic z80f,z80f,#(1<<VFlag)|(1<<NFlag)|(1<<HFlag)\r
7914 orrne z80f,z80f,#1<<VFlag\r
7915 subne z80pc,z80pc,#2\r
7916 subne z80_icount,z80_icount,#5\r
7917 fetch 16\r
7918\r
7919;@CPIR\r
7920opcode_ED_B1:\r
7921 readmem8HL\r
7922 add z80hl,z80hl,#1<<16 \r
7923 mov r1,z80a,lsl#4\r
7924 cmp z80a,r0,lsl#24\r
7925 and z80f,z80f,#1<<CFlag\r
7926 orr z80f,z80f,#1<<NFlag\r
7927 orrmi z80f,z80f,#1<<SFlag\r
7928 orreq z80f,z80f,#1<<ZFlag\r
7929 cmp r1,r0,lsl#28\r
7930 orrcc z80f,z80f,#1<<HFlag\r
7931 subs z80bc,z80bc,#1<<16\r
7932 bne opcode_ED_B1_decpc\r
7933 fetch 16\r
7934opcode_ED_B1_decpc:\r
7935 orr z80f,z80f,#1<<VFlag\r
7936 tst z80f,#1<<ZFlag\r
7937 subeq z80pc,z80pc,#2\r
7938 subeq z80_icount,z80_icount,#5\r
7939 fetch 16\r
7940;@INIR\r
7941opcode_ED_B2:\r
7942 opIN_C\r
7943 and z80f,r0,#0x80\r
7944 mov z80f,z80f,lsr#2 ;@NFlag set by bit 7\r
7945;@ mov r1,z80bc,lsl#8\r
7946;@ add r1,r1,#0x01000000\r
7947;@ adds r1,r1,r0,lsl#24\r
7948;@ orrcs z80f,z80f,#(1<<CFlag)|(1<<HFlag) ;@ CF & HF set if (HL) + ((C+1) & 0xFF) > 0xFF\r
7949 writemem8HL\r
7950 add z80hl,z80hl,#1<<16\r
7951 sub z80bc,z80bc,#1<<24\r
7952 tst z80bc,#0xFF<<24\r
7953 orrmi z80f,z80f,#1<<SFlag\r
7954 orreq z80f,z80f,#1<<ZFlag\r
7955 subne z80pc,z80pc,#2\r
7956 subne z80_icount,z80_icount,#5\r
7957 fetch 16\r
7958;@OTIR\r
7959opcode_ED_B3:\r
7960 readmem8HL\r
7961 add z80hl,z80hl,#1<<16\r
7962 and z80f,r0,#0x80\r
7963 mov z80f,z80f,lsr#2 ;@NFlag set by bit 7\r
7964 mov r1,z80hl,lsl#8\r
7965 adds r1,r1,r0,lsl#24\r
7966 orrcs z80f,z80f,#(1<<CFlag)|(1<<HFlag) ;@ CF & HF set if r0+HL > 0xFF\r
7967 sub z80bc,z80bc,#1<<24\r
7968 tst z80bc,#0xFF<<24\r
7969 orrmi z80f,z80f,#1<<SFlag\r
7970 orreq z80f,z80f,#1<<ZFlag\r
7971 subne z80pc,z80pc,#2\r
7972 subne z80_icount,z80_icount,#5\r
7973 mov r1,r0\r
7974 opOUT_C\r
7975 fetch 16\r
7976;@LDDR\r
7977opcode_ED_B8:\r
7978 copymem8HL_DE\r
7979 sub z80hl,z80hl,#1<<16\r
7980 sub z80de,z80de,#1<<16\r
7981 subs z80bc,z80bc,#1<<16\r
7982 bic z80f,z80f,#(1<<VFlag)|(1<<NFlag)|(1<<HFlag)\r
7983 orrne z80f,z80f,#1<<VFlag\r
7984 subne z80pc,z80pc,#2\r
7985 subne z80_icount,z80_icount,#5\r
7986 fetch 16\r
7987\r
7988;@CPDR\r
7989opcode_ED_B9:\r
7990 readmem8HL\r
7991 sub z80hl,z80hl,#1<<16\r
7992 mov r1,z80a,lsl#4\r
7993 cmp z80a,r0,lsl#24\r
7994 and z80f,z80f,#1<<CFlag\r
7995 orr z80f,z80f,#1<<NFlag\r
7996 orrmi z80f,z80f,#1<<SFlag\r
7997 orreq z80f,z80f,#1<<ZFlag\r
7998 cmp r1,r0,lsl#28\r
7999 orrcc z80f,z80f,#1<<HFlag\r
8000 subs z80bc,z80bc,#1<<16\r
8001 bne opcode_ED_B9_decpc\r
8002 fetch 16\r
8003opcode_ED_B9_decpc:\r
8004 orr z80f,z80f,#1<<VFlag\r
8005 tst z80f,#1<<ZFlag\r
8006 subeq z80pc,z80pc,#2\r
8007 subeq z80_icount,z80_icount,#5\r
8008 fetch 16\r
8009;@INDR\r
8010opcode_ED_BA:\r
8011 opIN_C\r
8012 and z80f,r0,#0x80\r
8013 mov z80f,z80f,lsr#2 ;@NFlag set by bit 7\r
8014;@ mov r1,z80bc,lsl#8\r
8015;@ sub r1,r1,#0x01000000\r
8016;@ adds r1,r1,r0,lsl#24\r
8017;@ orrcs z80f,z80f,#(1<<CFlag)|(1<<HFlag) ;@ CF & HF set if (HL) + ((C-1) & 0xFF) > 0xFF\r
8018 writemem8HL\r
8019 sub z80hl,z80hl,#1<<16\r
8020 sub z80bc,z80bc,#1<<24\r
8021 tst z80bc,#0xFF<<24\r
8022 orrmi z80f,z80f,#1<<SFlag\r
8023 orreq z80f,z80f,#1<<ZFlag\r
8024 subne z80pc,z80pc,#2\r
8025 subne z80_icount,z80_icount,#5\r
8026 fetch 16\r
8027;@OTDR\r
8028opcode_ED_BB:\r
8029 readmem8HL\r
8030 sub z80hl,z80hl,#1<<16\r
8031 and z80f,r0,#0x80\r
8032 mov z80f,z80f,lsr#2 ;@NFlag set by bit 7\r
8033 mov r1,z80hl,lsl#8\r
8034 adds r1,r1,r0,lsl#24\r
8035 orrcs z80f,z80f,#(1<<CFlag)|(1<<HFlag) ;@ CF & HF set if r0+HL > 0xFF\r
8036 sub z80bc,z80bc,#1<<24\r
8037 tst z80bc,#0xFF<<24\r
8038 orrmi z80f,z80f,#1<<SFlag\r
8039 orreq z80f,z80f,#1<<ZFlag\r
8040 subne z80pc,z80pc,#2\r
8041 subne z80_icount,z80_icount,#5\r
8042 mov r1,r0\r
8043 opOUT_C\r
8044 fetch 16\r
8045;@##################################\r
8046;@##################################\r
8047;@### opcodes FD #########################\r
8048;@##################################\r
8049;@##################################\r
8050;@Since DD and FD opcodes are all the same apart from the address\r
8051;@register they use. When a FD intruction the program runs the code\r
8052;@from the DD location but the address of the IY reg is passed instead\r
8053;@of IX\r
8054\r
f0243975 8055;@end_loop:\r
8056;@ b end_loop\r
cc68a136 8057\r
de89bf45 8058;@ vim:filetype=armasm\r
cc68a136 8059\r