bugfixes related to mmap usage for ROM
[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
d8f51995 22 ;@ note: stack is locked in single bank that z80sp_base points to\r
ee05564f 23.endif\r
cc68a136 24\r
25.if INTERRUPT_MODE\r
e5f426aa 26 .extern Interrupt\r
cc68a136 27.endif\r
28\r
cc68a136 29DrZ80Ver: .long 0x0001\r
30\r
31;@ --------------------------- Defines ----------------------------\r
32;@ Make sure that regs/pointers for z80pc to z80sp match up!\r
33\r
ee05564f 34 z80_icount .req r3\r
35 opcodes .req r4\r
cc68a136 36 cpucontext .req r5\r
37 z80pc .req r6\r
38 z80a .req r7\r
39 z80f .req r8\r
40 z80bc .req r9\r
41 z80de .req r10\r
42 z80hl .req r11\r
43 z80sp .req r12 \r
44 z80xx .req lr\r
45\r
46 .equ z80pc_pointer, 0 ;@ 0\r
47 .equ z80a_pointer, z80pc_pointer+4 ;@ 4\r
48 .equ z80f_pointer, z80a_pointer+4 ;@ 8\r
49 .equ z80bc_pointer, z80f_pointer+4 ;@ \r
50 .equ z80de_pointer, z80bc_pointer+4\r
51 .equ z80hl_pointer, z80de_pointer+4\r
52 .equ z80sp_pointer, z80hl_pointer+4\r
53 .equ z80pc_base, z80sp_pointer+4\r
54 .equ z80sp_base, z80pc_base+4\r
55 .equ z80ix, z80sp_base+4\r
56 .equ z80iy, z80ix+4\r
57 .equ z80i, z80iy+4\r
58 .equ z80a2, z80i+4\r
59 .equ z80f2, z80a2+4\r
60 .equ z80bc2, z80f2+4\r
61 .equ z80de2, z80bc2+4\r
62 .equ z80hl2, z80de2+4\r
63 .equ cycles_pointer, z80hl2+4 \r
64 .equ previouspc, cycles_pointer+4 \r
65 .equ z80irq, previouspc+4\r
66 .equ z80if, z80irq+1\r
67 .equ z80im, z80if+1\r
68 .equ z80r, z80im+1\r
69 .equ z80irqvector, z80r+1\r
70 .equ z80irqcallback, z80irqvector+4\r
71 .equ z80_write8, z80irqcallback+4\r
72 .equ z80_write16, z80_write8+4\r
73 .equ z80_in, z80_write16+4\r
74 .equ z80_out, z80_in+4\r
75 .equ z80_read8, z80_out+4\r
76 .equ z80_read16, z80_read8+4\r
77 .equ z80_rebaseSP, z80_read16+4\r
78 .equ z80_rebasePC, z80_rebaseSP+4\r
79\r
80 .equ VFlag, 0\r
81 .equ CFlag, 1\r
82 .equ ZFlag, 2\r
83 .equ SFlag, 3\r
84 .equ HFlag, 4\r
85 .equ NFlag, 5\r
86 .equ Flag3, 6\r
87 .equ Flag5, 7\r
88\r
89 .equ Z80_CFlag, 0\r
90 .equ Z80_NFlag, 1\r
91 .equ Z80_VFlag, 2\r
92 .equ Z80_Flag3, 3\r
93 .equ Z80_HFlag, 4\r
94 .equ Z80_Flag5, 5\r
95 .equ Z80_ZFlag, 6\r
96 .equ Z80_SFlag, 7\r
97\r
98 .equ Z80_IF1, 1<<0\r
99 .equ Z80_IF2, 1<<1\r
100 .equ Z80_HALT, 1<<2\r
101\r
102;@---------------------------------------\r
103\r
104.text\r
105\r
ee05564f 106.if DRZ80_XMAP\r
cc68a136 107\r
ee05564f 108z80_xmap_read8: @ addr\r
109 ldr r1,[cpucontext,#z80_read8]\r
110 mov r2,r0,lsr #Z80_MEM_SHIFT\r
111 ldr r1,[r1,r2,lsl #2]\r
112 movs r1,r1,lsl #1\r
113 ldrccb r0,[r1,r0]\r
114 bxcc lr\r
115\r
116z80_xmap_read8_handler: @ addr, func\r
17043584 117 str z80_icount,[cpucontext,#cycles_pointer]\r
ee05564f 118 stmfd sp!,{r12,lr}\r
119 mov lr,pc\r
120 bx r1\r
121 ldr z80_icount,[cpucontext,#cycles_pointer]\r
122 ldmfd sp!,{r12,pc}\r
123\r
124z80_xmap_write8: @ data, addr\r
125 ldr r2,[cpucontext,#z80_write8]\r
126 add r2,r2,r1,lsr #Z80_MEM_SHIFT-2\r
127 bic r2,r2,#3\r
128 ldr r2,[r2]\r
129 movs r2,r2,lsl #1\r
130 strccb r0,[r2,r1]\r
131 bxcc lr\r
132\r
133z80_xmap_write8_handler: @ data, addr, func\r
134 str z80_icount,[cpucontext,#cycles_pointer]\r
135 mov r3,r0\r
136 mov r0,r1\r
137 mov r1,r3\r
138 stmfd sp!,{r12,lr}\r
139 mov lr,pc\r
140 bx r2\r
141 ldr z80_icount,[cpucontext,#cycles_pointer]\r
142 ldmfd sp!,{r12,pc}\r
143\r
144z80_xmap_read16: @ addr\r
145 @ check if we cross bank boundary\r
146 add r1,r0,#1\r
460603fa 147 eor r1,r1,r0\r
ee05564f 148 tst r1,#1<<Z80_MEM_SHIFT\r
149 bne 0f\r
cc68a136 150\r
ee05564f 151 ldr r1,[cpucontext,#z80_read8]\r
152 mov r2,r0,lsr #Z80_MEM_SHIFT\r
153 ldr r1,[r1,r2,lsl #2]\r
154 movs r1,r1,lsl #1\r
155 bcs 0f\r
cc68a136 156 ldrb r0,[r1,r0]!\r
157 ldrb r1,[r1,#1]\r
158 orr r0,r0,r1,lsl #8\r
159 bx lr\r
160\r
ee05564f 1610:\r
162 @ z80_xmap_read8 will save r3 and r12 for us\r
d8f51995 163 stmfd sp!,{r8,r9,lr}\r
164 mov r8,r0\r
ee05564f 165 bl z80_xmap_read8\r
d8f51995 166 mov r9,r0\r
167 add r0,r8,#1\r
ee05564f 168 bl z80_xmap_read8\r
d8f51995 169 orr r0,r9,r0,lsl #8\r
170 ldmfd sp!,{r8,r9,pc}\r
cc68a136 171\r
ee05564f 172z80_xmap_write16: @ data, addr\r
173 add r2,r1,#1\r
460603fa 174 eor r2,r2,r1\r
ee05564f 175 tst r2,#1<<Z80_MEM_SHIFT\r
176 bne 0f\r
cc68a136 177\r
460603fa 178 ldr r2,[cpucontext,#z80_write8]\r
ee05564f 179 add r2,r2,r1,lsr #Z80_MEM_SHIFT-2\r
180 bic r2,r2,#3\r
181 ldr r2,[r2]\r
182 movs r2,r2,lsl #1\r
183 bcs 0f\r
cc68a136 184 strb r0,[r2,r1]!\r
185 mov r0,r0,lsr #8\r
186 strb r0,[r2,#1]\r
187 bx lr\r
ee05564f 188\r
1890:\r
d8f51995 190 stmfd sp!,{r8,r9,lr}\r
191 mov r8,r0\r
192 mov r9,r1\r
ee05564f 193 bl z80_xmap_write8\r
d8f51995 194 mov r0,r8,lsr #8\r
195 add r1,r9,#1\r
ee05564f 196 bl z80_xmap_write8\r
d8f51995 197 ldmfd sp!,{r8,r9,pc}\r
198\r
199z80_xmap_rebase_pc:\r
200 ldr r1,[cpucontext,#z80_read8]\r
201 mov r2,r0,lsr #Z80_MEM_SHIFT\r
202 ldr r1,[r1,r2,lsl #2]\r
203 movs r1,r1,lsl #1\r
204 strcc r1,[cpucontext,#z80pc_base]\r
205 addcc z80pc,r1,r0\r
206 bxcc lr\r
207\r
208z80_bad_jump:\r
209 ldr r0,[cpucontext,#z80_read8]\r
210 ldr r0,[r0]\r
211 str r0,[cpucontext,#z80pc_base]\r
212 mov z80pc,r0\r
213 bx lr\r
cc68a136 214.endif\r
215\r
ee05564f 216\r
cc68a136 217.macro fetch cycs\r
218 subs z80_icount,z80_icount,#\cycs\r
219.if UPDATE_CONTEXT\r
220 str z80pc,[cpucontext,#z80pc_pointer]\r
221 str z80_icount,[cpucontext,#cycles_pointer]\r
222 ldr r1,[cpucontext,#z80pc_base]\r
223 sub r2,z80pc,r1\r
224 str r2,[cpucontext,#previouspc]\r
225.endif\r
226 ldrplb r0,[z80pc],#1\r
227 ldrpl pc,[opcodes,r0, lsl #2]\r
228 bmi z80_execute_end\r
229.endm\r
230\r
231.macro eatcycles cycs\r
232 sub z80_icount,z80_icount,#\cycs\r
233.if UPDATE_CONTEXT\r
234 str z80_icount,[cpucontext,#cycles_pointer]\r
235.endif\r
236.endm\r
237\r
238.macro readmem8\r
239.if UPDATE_CONTEXT\r
240 str z80pc,[cpucontext,#z80pc_pointer]\r
241.endif\r
ee05564f 242.if DRZ80_XMAP\r
243.if !DRZ80_XMAP_MORE_INLINE\r
244 ldr r1,[cpucontext,#z80_read8]\r
245 mov r2,r0,lsr #Z80_MEM_SHIFT\r
246 ldr r1,[r1,r2,lsl #2]\r
247 movs r1,r1,lsl #1\r
248 ldrccb r0,[r1,r0]\r
249 blcs z80_xmap_read8_handler\r
cc68a136 250.else\r
ee05564f 251 bl z80_xmap_read8\r
252.endif\r
253.else ;@ if !DRZ80_XMAP\r
cc68a136 254 stmfd sp!,{r3,r12}\r
255 mov lr,pc\r
256 ldr pc,[cpucontext,#z80_read8] ;@ r0 = addr - data returned in r0\r
257 ldmfd sp!,{r3,r12}\r
258.endif\r
259.endm\r
260\r
261.macro readmem8HL\r
262 mov r0,z80hl, lsr #16\r
263 readmem8\r
264.endm\r
265\r
266.macro readmem16\r
267.if UPDATE_CONTEXT\r
268 str z80pc,[cpucontext,#z80pc_pointer]\r
269.endif\r
ee05564f 270.if DRZ80_XMAP\r
271 bl z80_xmap_read16\r
cc68a136 272.else\r
273 stmfd sp!,{r3,r12}\r
274 mov lr,pc\r
275 ldr pc,[cpucontext,#z80_read16]\r
276 ldmfd sp!,{r3,r12}\r
277.endif\r
278.endm\r
279\r
280.macro writemem8\r
281.if UPDATE_CONTEXT\r
282 str z80pc,[cpucontext,#z80pc_pointer]\r
283.endif\r
ee05564f 284.if DRZ80_XMAP\r
285.if DRZ80_XMAP_MORE_INLINE\r
286 ldr r2,[cpucontext,#z80_write8]\r
287 mov lr,r1,lsr #Z80_MEM_SHIFT\r
288 ldr r2,[r2,lr,lsl #2]\r
289 movs r2,r2,lsl #1\r
290 strccb r0,[r2,r1]\r
291 blcs z80_xmap_write8_handler\r
cc68a136 292.else\r
ee05564f 293 bl z80_xmap_write8\r
294.endif\r
295.else ;@ if !DRZ80_XMAP\r
cc68a136 296 stmfd sp!,{r3,r12}\r
297 mov lr,pc\r
298 ldr pc,[cpucontext,#z80_write8] ;@ r0=data r1=addr\r
299 ldmfd sp!,{r3,r12}\r
300.endif\r
301.endm\r
302\r
303.macro writemem8DE\r
304 mov r1,z80de, lsr #16\r
305 writemem8\r
306.endm\r
307\r
308.macro writemem8HL\r
309 mov r1,z80hl, lsr #16\r
310 writemem8\r
311.endm\r
312\r
313.macro writemem16\r
314.if UPDATE_CONTEXT\r
315 str z80pc,[cpucontext,#z80pc_pointer]\r
316.endif\r
ee05564f 317.if DRZ80_XMAP\r
318 bl z80_xmap_write16\r
cc68a136 319.else\r
320 stmfd sp!,{r3,r12}\r
321 mov lr,pc\r
322 ldr pc,[cpucontext,#z80_write16] ;@ r0=data r1=addr\r
323 ldmfd sp!,{r3,r12}\r
324.endif\r
325.endm\r
326\r
327.macro copymem8HL_DE\r
328.if UPDATE_CONTEXT\r
329 str z80pc,[cpucontext,#z80pc_pointer]\r
330.endif\r
331 mov r0,z80hl, lsr #16\r
ee05564f 332.if DRZ80_XMAP\r
333 bl z80_xmap_read8\r
cc68a136 334.else\r
335 stmfd sp!,{r3,r12}\r
336 mov lr,pc\r
337 ldr pc,[cpucontext,#z80_read8] ;@ r0 = addr - data returned in r0\r
cc68a136 338.endif\r
339 mov r1,z80de, lsr #16\r
ee05564f 340.if DRZ80_XMAP\r
341 bl z80_xmap_write8\r
cc68a136 342.else\r
343 mov lr,pc\r
344 ldr pc,[cpucontext,#z80_write8] ;@ r0=data r1=addr\r
345 ldmfd sp!,{r3,r12}\r
346.endif\r
347.endm\r
348;@---------------------------------------\r
349\r
350.macro rebasepc\r
351.if UPDATE_CONTEXT\r
352 str z80pc,[cpucontext,#z80pc_pointer]\r
353.endif\r
d8f51995 354.if DRZ80_XMAP\r
355 bl z80_xmap_rebase_pc\r
cc68a136 356.else\r
357 stmfd sp!,{r3,r12}\r
358 mov lr,pc\r
359 ldr pc,[cpucontext,#z80_rebasePC] ;@ r0=new pc - external function sets z80pc_base and returns new z80pc in r0\r
360 ldmfd sp!,{r3,r12}\r
361 mov z80pc,r0\r
362.endif\r
363.endm\r
364\r
365.macro rebasesp\r
366.if UPDATE_CONTEXT\r
367 str z80pc,[cpucontext,#z80pc_pointer]\r
368.endif\r
d8f51995 369.if DRZ80_XMAP\r
370 ;@ XXX: SP is locked to single back z80sp_base points to.\r
cc68a136 371 ldr r1,[cpucontext,#z80sp_base]\r
d8f51995 372 bic r0,r0,#0x7f<<Z80_MEM_SHIFT\r
cc68a136 373 add r0,r1,r0\r
374.else\r
375 stmfd sp!,{r3,r12}\r
376 mov lr,pc\r
377 ldr pc,[cpucontext,#z80_rebaseSP] ;@ external function must rebase sp\r
378 ldmfd sp!,{r3,r12}\r
379.endif\r
380.endm\r
381;@----------------------------------------------------------------------------\r
382\r
383.macro opADC\r
384 movs z80f,z80f,lsr#2 ;@ get C\r
385 subcs r0,r0,#0x100\r
386 eor z80f,r0,z80a,lsr#24 ;@ prepare for check of half carry\r
387 adcs z80a,z80a,r0,ror#8\r
388 mrs r0,cpsr ;@ S,Z,V&C\r
389 eor z80f,z80f,z80a,lsr#24\r
390 and z80f,z80f,#1<<HFlag ;@ H, correct\r
391 orr z80f,z80f,r0,lsr#28\r
392.endm\r
393\r
394.macro opADCA\r
395 movs z80f,z80f,lsr#2 ;@ get C\r
396 orrcs z80a,z80a,#0x00800000\r
397 adds z80a,z80a,z80a\r
398 mrs z80f,cpsr ;@ S,Z,V&C\r
399 mov z80f,z80f,lsr#28\r
400 tst z80a,#0x10000000 ;@ H, correct\r
401 orrne z80f,z80f,#1<<HFlag\r
402 fetch 4\r
403.endm\r
404\r
405.macro opADCH reg\r
406 mov r0,\reg,lsr#24\r
407 opADC\r
408 fetch 4\r
409.endm\r
410\r
411.macro opADCL reg\r
412 movs z80f,z80f,lsr#2 ;@ get C\r
413 adc r0,\reg,\reg,lsr#15\r
414 orrcs z80a,z80a,#0x00800000\r
415 mov r1,z80a,lsl#4 ;@ Prepare for check of half carry\r
416 adds z80a,z80a,r0,lsl#23\r
417 mrs z80f,cpsr ;@ S,Z,V&C\r
418 mov z80f,z80f,lsr#28\r
419 cmn r1,r0,lsl#27\r
420 orrcs z80f,z80f,#1<<HFlag ;@ H, correct\r
421 fetch 4\r
422.endm\r
423\r
424.macro opADCb\r
425 opADC\r
426.endm\r
427;@---------------------------------------\r
428\r
429.macro opADD reg shift\r
430 mov r1,z80a,lsl#4 ;@ Prepare for check of half carry\r
431 adds z80a,z80a,\reg,lsl#\shift\r
432 mrs z80f,cpsr ;@ S,Z,V&C\r
433 mov z80f,z80f,lsr#28\r
434 cmn r1,\reg,lsl#\shift+4\r
435 orrcs z80f,z80f,#1<<HFlag\r
436.endm\r
437\r
438.macro opADDA\r
439 adds z80a,z80a,z80a\r
440 mrs z80f,cpsr ;@ S,Z,V&C\r
441 mov z80f,z80f,lsr#28\r
442 tst z80a,#0x10000000 ;@ H, correct\r
443 orrne z80f,z80f,#1<<HFlag\r
444 fetch 4\r
445.endm\r
446\r
447.macro opADDH reg\r
448 and r0,\reg,#0xFF000000\r
449 opADD r0 0\r
450 fetch 4\r
451.endm\r
452\r
453.macro opADDL reg\r
454 opADD \reg 8\r
455 fetch 4\r
456.endm\r
457\r
458.macro opADDb \r
459 opADD r0 24\r
460.endm\r
461;@---------------------------------------\r
462\r
463.macro opADC16 reg\r
464 movs z80f,z80f,lsr#2 ;@ get C\r
465 adc r0,z80a,\reg,lsr#15\r
466 orrcs z80hl,z80hl,#0x00008000\r
467 mov r1,z80hl,lsl#4\r
468 adds z80hl,z80hl,r0,lsl#15\r
469 mrs z80f,cpsr ;@ S, Z, V & C\r
470 mov z80f,z80f,lsr#28\r
471 cmn r1,r0,lsl#19\r
472 orrcs z80f,z80f,#1<<HFlag\r
473 fetch 15\r
474.endm\r
475\r
476.macro opADC16HL\r
477 movs z80f,z80f,lsr#2 ;@ get C\r
478 orrcs z80hl,z80hl,#0x00008000\r
479 adds z80hl,z80hl,z80hl\r
480 mrs z80f,cpsr ;@ S, Z, V & C\r
481 mov z80f,z80f,lsr#28\r
482 tst z80hl,#0x10000000 ;@ H, correct.\r
483 orrne z80f,z80f,#1<<HFlag\r
484 fetch 15\r
485.endm\r
486\r
487.macro opADD16 reg1 reg2\r
488 mov r1,\reg1,lsl#4 ;@ Prepare for check of half carry\r
489 adds \reg1,\reg1,\reg2\r
490 bic z80f,z80f,#(1<<CFlag)|(1<<HFlag)|(1<<NFlag)\r
491 orrcs z80f,z80f,#1<<CFlag\r
492 cmn r1,\reg2,lsl#4\r
493 orrcs z80f,z80f,#1<<HFlag\r
494.endm\r
495\r
496.macro opADD16s reg1 reg2 shift\r
497 mov r1,\reg1,lsl#4 ;@ Prepare for check of half carry\r
498 adds \reg1,\reg1,\reg2,lsl#\shift\r
499 bic z80f,z80f,#(1<<CFlag)|(1<<HFlag)|(1<<NFlag)\r
500 orrcs z80f,z80f,#1<<CFlag\r
501 cmn r1,\reg2,lsl#4+\shift\r
502 orrcs z80f,z80f,#1<<HFlag\r
503.endm\r
504\r
505.macro opADD16_2 reg\r
506 adds \reg,\reg,\reg\r
507 bic z80f,z80f,#(1<<CFlag)|(1<<HFlag)|(1<<NFlag)\r
508 orrcs z80f,z80f,#1<<CFlag\r
509 tst \reg,#0x10000000 ;@ H, correct.\r
510 orrne z80f,z80f,#1<<HFlag\r
511.endm\r
512;@---------------------------------------\r
513\r
514.macro opAND reg shift\r
515 and z80a,z80a,\reg,lsl#\shift\r
516 sub r0,opcodes,#0x100\r
517 ldrb z80f,[r0,z80a, lsr #24]\r
518 orr z80f,z80f,#1<<HFlag\r
519.endm\r
520\r
521.macro opANDA\r
522 sub r0,opcodes,#0x100\r
523 ldrb z80f,[r0,z80a, lsr #24]\r
524 orr z80f,z80f,#1<<HFlag\r
525 fetch 4\r
526.endm\r
527\r
528.macro opANDH reg\r
529 opAND \reg 0\r
530 fetch 4\r
531.endm\r
532\r
533.macro opANDL reg\r
534 opAND \reg 8\r
535 fetch 4\r
536.endm\r
537\r
538.macro opANDb\r
539 opAND r0 24\r
540.endm\r
541;@---------------------------------------\r
542\r
543.macro opBITH reg bit\r
544 and z80f,z80f,#1<<CFlag\r
545 tst \reg,#1<<(24+\bit)\r
546 orreq z80f,z80f,#(1<<HFlag)|(1<<ZFlag)|(1<<VFlag)\r
547 orrne z80f,z80f,#(1<<HFlag)\r
548 fetch 8\r
549.endm\r
550\r
551.macro opBIT7H reg\r
552 and z80f,z80f,#1<<CFlag\r
553 tst \reg,#1<<(24+7)\r
554 orreq z80f,z80f,#(1<<HFlag)|(1<<ZFlag)|(1<<VFlag)\r
555 orrne z80f,z80f,#(1<<HFlag)|(1<<SFlag)\r
556 fetch 8\r
557.endm\r
558\r
559.macro opBITL reg bit\r
560 and z80f,z80f,#1<<CFlag\r
561 tst \reg,#1<<(16+\bit)\r
562 orreq z80f,z80f,#(1<<HFlag)|(1<<ZFlag)|(1<<VFlag)\r
563 orrne z80f,z80f,#(1<<HFlag)\r
564 fetch 8\r
565.endm\r
566\r
567.macro opBIT7L reg\r
568 and z80f,z80f,#1<<CFlag\r
569 tst \reg,#1<<(16+7)\r
570 orreq z80f,z80f,#(1<<HFlag)|(1<<ZFlag)|(1<<VFlag)\r
571 orrne z80f,z80f,#(1<<HFlag)|(1<<SFlag)\r
572 fetch 8\r
573.endm\r
574\r
575.macro opBITb bit\r
576 and z80f,z80f,#1<<CFlag\r
577 tst r0,#1<<\bit\r
578 orreq z80f,z80f,#(1<<HFlag)|(1<<ZFlag)|(1<<VFlag)\r
579 orrne z80f,z80f,#(1<<HFlag)\r
580.endm\r
581\r
582.macro opBIT7b\r
583 and z80f,z80f,#1<<CFlag\r
584 tst r0,#1<<7\r
585 orreq z80f,z80f,#(1<<HFlag)|(1<<ZFlag)|(1<<VFlag)\r
586 orrne z80f,z80f,#(1<<HFlag)|(1<<SFlag)\r
587.endm\r
588;@---------------------------------------\r
589\r
590.macro opCP reg shift\r
591 mov r1,z80a,lsl#4 ;@ prepare for check of half carry\r
592 cmp z80a,\reg,lsl#\shift\r
593 mrs z80f,cpsr\r
594 mov z80f,z80f,lsr#28 ;@ S,Z,V&C\r
595 eor z80f,z80f,#(1<<CFlag)|(1<<NFlag) ;@ invert C and set n\r
596 cmp r1,\reg,lsl#\shift+4\r
597 orrcc z80f,z80f,#1<<HFlag\r
598.endm\r
599\r
600.macro opCPA\r
601 mov z80f,#(1<<ZFlag)|(1<<NFlag) ;@ set Z & n\r
602 fetch 4\r
603.endm\r
604\r
605.macro opCPH reg\r
606 and r0,\reg,#0xFF000000\r
607 opCP r0 0\r
608 fetch 4\r
609.endm\r
610\r
611.macro opCPL reg\r
612 opCP \reg 8\r
613 fetch 4\r
614.endm\r
615\r
616.macro opCPb\r
617 opCP r0 24\r
618.endm\r
619;@---------------------------------------\r
620\r
621.macro opDEC8 reg ;@for A and memory\r
622 and z80f,z80f,#1<<CFlag ;@save carry\r
623 orr z80f,z80f,#1<<NFlag ;@set n\r
624 tst \reg,#0x0f000000\r
625 orreq z80f,z80f,#1<<HFlag\r
626 subs \reg,\reg,#0x01000000\r
627 orrmi z80f,z80f,#1<<SFlag\r
628 orrvs z80f,z80f,#1<<VFlag\r
629 orreq z80f,z80f,#1<<ZFlag\r
630.endm\r
631\r
632.macro opDEC8H reg ;@for B, D & H\r
633 and z80f,z80f,#1<<CFlag ;@save carry\r
634 orr z80f,z80f,#1<<NFlag ;@set n\r
635 tst \reg,#0x0f000000\r
636 orreq z80f,z80f,#1<<HFlag\r
637 subs \reg,\reg,#0x01000000\r
638 orrmi z80f,z80f,#1<<SFlag\r
639 orrvs z80f,z80f,#1<<VFlag\r
640 tst \reg,#0xff000000 ;@Z\r
641 orreq z80f,z80f,#1<<ZFlag\r
642.endm\r
643\r
644.macro opDEC8L reg ;@for C, E & L\r
645 mov \reg,\reg,ror#24\r
646 opDEC8H \reg\r
647 mov \reg,\reg,ror#8\r
648.endm\r
649\r
650.macro opDEC8b ;@for memory\r
651 mov r0,r0,lsl#24\r
652 opDEC8 r0\r
653 mov r0,r0,lsr#24\r
654.endm\r
655;@---------------------------------------\r
656\r
657.macro opIN\r
658 stmfd sp!,{r3,r12}\r
659 mov lr,pc\r
660 ldr pc,[cpucontext,#z80_in] ;@ r0=port - data returned in r0\r
661 ldmfd sp!,{r3,r12}\r
662.endm\r
663\r
664.macro opIN_C\r
665 mov r0,z80bc, lsr #16\r
666 opIN\r
667.endm\r
668;@---------------------------------------\r
669\r
670.macro opINC8 reg ;@for A and memory\r
671 and z80f,z80f,#1<<CFlag ;@save carry, clear n\r
672 adds \reg,\reg,#0x01000000\r
673 orrmi z80f,z80f,#1<<SFlag\r
674 orrvs z80f,z80f,#1<<VFlag\r
675 orrcs z80f,z80f,#1<<ZFlag ;@cs when going from 0xFF to 0x00\r
676 tst \reg,#0x0f000000\r
677 orreq z80f,z80f,#1<<HFlag\r
678.endm\r
679\r
680.macro opINC8H reg ;@for B, D & H\r
681 opINC8 \reg\r
682.endm\r
683\r
684.macro opINC8L reg ;@for C, E & L\r
685 mov \reg,\reg,ror#24\r
686 opINC8 \reg\r
687 mov \reg,\reg,ror#8\r
688.endm\r
689\r
690.macro opINC8b ;@for memory\r
691 mov r0,r0,lsl#24\r
692 opINC8 r0\r
693 mov r0,r0,lsr#24\r
694.endm\r
695;@---------------------------------------\r
696\r
697.macro opOR reg shift\r
698 orr z80a,z80a,\reg,lsl#\shift\r
699 sub r0,opcodes,#0x100\r
700 ldrb z80f,[r0,z80a, lsr #24]\r
701.endm\r
702\r
703.macro opORA\r
704 sub r0,opcodes,#0x100\r
705 ldrb z80f,[r0,z80a, lsr #24]\r
706 fetch 4\r
707.endm\r
708\r
709.macro opORH reg\r
710 and r0,\reg,#0xFF000000\r
711 opOR r0 0\r
712 fetch 4\r
713.endm\r
714\r
715.macro opORL reg\r
716 opOR \reg 8\r
717 fetch 4\r
718.endm\r
719\r
720.macro opORb\r
721 opOR r0 24\r
722.endm\r
723;@---------------------------------------\r
724\r
725.macro opOUT\r
726 stmfd sp!,{r3,r12}\r
727 mov lr,pc\r
728 ldr pc,[cpucontext,#z80_out] ;@ r0=port r1=data\r
729 ldmfd sp!,{r3,r12}\r
730.endm\r
731\r
732.macro opOUT_C\r
733 mov r0,z80bc, lsr #16\r
734 opOUT\r
735.endm\r
736;@---------------------------------------\r
737\r
738.macro opPOP\r
739.if FAST_Z80SP\r
cc68a136 740 ldrb r0,[z80sp],#1\r
741 ldrb r1,[z80sp],#1\r
742 orr r0,r0,r1, lsl #8\r
cc68a136 743.else\r
744 mov r0,z80sp\r
745 readmem16\r
746 add z80sp,z80sp,#2\r
747.endif\r
748.endm\r
749\r
750.macro opPOPreg reg\r
751 opPOP\r
752 mov \reg,r0, lsl #16\r
753 fetch 10\r
754.endm\r
755;@---------------------------------------\r
756\r
d8f51995 757.macro stack_check\r
758 @ try to protect against stack overflows, lock into current bank\r
759 ldr r1,[cpucontext,#z80sp_base]\r
760 sub r1,z80sp,r1\r
761 cmp r1,#2\r
762 addlt z80sp,z80sp,#1<<Z80_MEM_SHIFT\r
763.endm\r
764\r
cc68a136 765.macro opPUSHareg reg @ reg > r1\r
766.if FAST_Z80SP\r
d8f51995 767.if DRZ80_XMAP\r
768 stack_check\r
769.endif\r
cc68a136 770 mov r1,\reg, lsr #8\r
771 strb r1,[z80sp,#-1]!\r
772 strb \reg,[z80sp,#-1]!\r
cc68a136 773.else\r
774 mov r0,\reg\r
775 sub z80sp,z80sp,#2\r
776 mov r1,z80sp\r
777 writemem16\r
778.endif\r
779.endm\r
780\r
781.macro opPUSHreg reg\r
782.if FAST_Z80SP\r
d8f51995 783.if DRZ80_XMAP\r
784 stack_check\r
785.endif\r
cc68a136 786 mov r1,\reg, lsr #24\r
787 strb r1,[z80sp,#-1]!\r
788 mov r1,\reg, lsr #16\r
789 strb r1,[z80sp,#-1]!\r
cc68a136 790.else\r
791 mov r0,\reg,lsr #16\r
792 sub z80sp,z80sp,#2\r
793 mov r1,z80sp\r
794 writemem16\r
795.endif\r
796.endm\r
797;@---------------------------------------\r
798\r
799.macro opRESmemHL bit\r
cc68a136 800 mov r0,z80hl, lsr #16\r
ee05564f 801.if DRZ80_XMAP\r
802 bl z80_xmap_read8\r
cc68a136 803 bic r0,r0,#1<<\bit\r
804 mov r1,z80hl, lsr #16\r
ee05564f 805 bl z80_xmap_write8\r
cc68a136 806.else\r
cc68a136 807 stmfd sp!,{r3,r12}\r
808 mov lr,pc\r
809 ldr pc,[cpucontext,#z80_read8] ;@ r0 = addr - data returned in r0\r
810 bic r0,r0,#1<<\bit\r
811 mov r1,z80hl, lsr #16\r
812 mov lr,pc\r
813 ldr pc,[cpucontext,#z80_write8] ;@ r0=data r1=addr\r
814 ldmfd sp!,{r3,r12}\r
815.endif\r
816 fetch 15\r
817.endm\r
818;@---------------------------------------\r
819\r
820.macro opRESmem bit\r
ee05564f 821.if DRZ80_XMAP\r
cc68a136 822 stmfd sp!,{r0} ;@ save addr as well\r
ee05564f 823 bl z80_xmap_read8\r
cc68a136 824 bic r0,r0,#1<<\bit\r
825 ldmfd sp!,{r1} ;@ restore addr into r1\r
ee05564f 826 bl z80_xmap_write8\r
cc68a136 827.else\r
828 stmfd sp!,{r3,r12}\r
829 stmfd sp!,{r0} ;@ save addr as well\r
830 mov lr,pc\r
831 ldr pc,[cpucontext,#z80_read8] ;@ r0=addr - data returned in r0\r
832 bic r0,r0,#1<<\bit\r
833 ldmfd sp!,{r1} ;@ restore addr into r1\r
834 mov lr,pc\r
835 ldr pc,[cpucontext,#z80_write8] ;@ r0=data r1=addr\r
836 ldmfd sp!,{r3,r12}\r
837.endif\r
838 fetch 23\r
839.endm\r
840;@---------------------------------------\r
841\r
842.macro opRL reg1 reg2 shift\r
843 movs \reg1,\reg2,lsl \shift\r
844 tst z80f,#1<<CFlag ;@doesn't affect ARM carry, as long as the imidiate value is < 0x100. Watch out!\r
845 orrne \reg1,\reg1,#0x01000000\r
846;@ and r2,z80f,#1<<CFlag\r
847;@ orr $x,$x,r2,lsl#23\r
848 sub r1,opcodes,#0x100\r
849 ldrb z80f,[r1,\reg1,lsr#24] ;@get PZS\r
850 orrcs z80f,z80f,#1<<CFlag\r
851.endm\r
852\r
853.macro opRLA\r
854 opRL z80a, z80a, #1\r
855 fetch 8\r
856.endm\r
857\r
858.macro opRLH reg\r
859 and r0,\reg,#0xFF000000 ;@mask high to r0\r
860 adds \reg,\reg,r0\r
861 tst z80f,#1<<CFlag ;@doesn't affect ARM carry, as long as the imidiate value is < 0x100. Watch out!\r
862 orrne \reg,\reg,#0x01000000\r
863 sub r1,opcodes,#0x100\r
864 ldrb z80f,[r1,\reg,lsr#24] ;@get PZS\r
865 orrcs z80f,z80f,#1<<CFlag\r
866 fetch 8\r
867.endm\r
868\r
869.macro opRLL reg\r
870 opRL r0, \reg, #9\r
871 and \reg,\reg,#0xFF000000 ;@mask out high\r
872 orr \reg,\reg,r0,lsr#8\r
873 fetch 8\r
874.endm\r
875\r
876.macro opRLb\r
877 opRL r0, r0, #25\r
878 mov r0,r0,lsr#24\r
879.endm\r
880;@---------------------------------------\r
881\r
882.macro opRLC reg1 reg2 shift\r
883 movs \reg1,\reg2,lsl#\shift\r
884 orrcs \reg1,\reg1,#0x01000000\r
885 sub r1,opcodes,#0x100\r
886 ldrb z80f,[r1,\reg1,lsr#24]\r
887 orrcs z80f,z80f,#1<<CFlag\r
888.endm\r
889\r
890.macro opRLCA\r
891 opRLC z80a, z80a, 1\r
892 fetch 8\r
893.endm\r
894\r
895.macro opRLCH reg\r
896 and r0,\reg,#0xFF000000 ;@mask high to r0\r
897 adds \reg,\reg,r0\r
898 orrcs \reg,\reg,#0x01000000\r
899 sub r1,opcodes,#0x100\r
900 ldrb z80f,[r1,\reg,lsr#24]\r
901 orrcs z80f,z80f,#1<<CFlag\r
902 fetch 8\r
903.endm\r
904\r
905.macro opRLCL reg\r
906 opRLC r0, \reg, 9\r
907 and \reg,\reg,#0xFF000000 ;@mask out high\r
908 orr \reg,\reg,r0,lsr#8\r
909 fetch 8\r
910.endm\r
911\r
912.macro opRLCb\r
913 opRLC r0, r0, 25\r
914 mov r0,r0,lsr#24\r
915.endm\r
916;@---------------------------------------\r
917\r
918.macro opRR reg1 reg2 shift\r
919 movs \reg1,\reg2,lsr#\shift\r
920 tst z80f,#1<<CFlag ;@doesn't affect ARM carry, as long as the imidiate value is < 0x100. Watch out!\r
921 orrne \reg1,\reg1,#0x00000080\r
922;@ and r2,z80_f,#PSR_C\r
923;@ orr \reg1,\reg1,r2,lsl#6\r
924 sub r1,opcodes,#0x100\r
925 ldrb z80f,[r1,\reg1]\r
926 orrcs z80f,z80f,#1<<CFlag\r
927.endm\r
928\r
929.macro opRRA\r
930 orr z80a,z80a,z80f,lsr#1 ;@get C\r
931 movs z80a,z80a,ror#25\r
932 mov z80a,z80a,lsl#24\r
933 sub r1,opcodes,#0x100\r
934 ldrb z80f,[r1,z80a,lsr#24]\r
935 orrcs z80f,z80f,#1<<CFlag\r
936 fetch 8\r
937.endm\r
938\r
939.macro opRRH reg\r
940 orr r0,\reg,z80f,lsr#1 ;@get C\r
941 movs r0,r0,ror#25\r
942 and \reg,\reg,#0x00FF0000 ;@mask out low\r
943 orr \reg,\reg,r0,lsl#24\r
944 sub r1,opcodes,#0x100\r
945 ldrb z80f,[r1,\reg,lsr#24]\r
946 orrcs z80f,z80f,#1<<CFlag\r
947 fetch 8\r
948.endm\r
949\r
950.macro opRRL reg\r
951 and r0,\reg,#0x00FF0000 ;@mask out low to r0\r
952 opRR r0 r0 17\r
953 and \reg,\reg,#0xFF000000 ;@mask out high\r
954 orr \reg,\reg,r0,lsl#16\r
955 fetch 8\r
956.endm\r
957\r
958.macro opRRb\r
959 opRR r0 r0 1\r
960.endm\r
961;@---------------------------------------\r
962\r
963.macro opRRC reg1 reg2 shift\r
964 movs \reg1,\reg2,lsr#\shift\r
965 orrcs \reg1,\reg1,#0x00000080\r
966 sub r1,opcodes,#0x100\r
967 ldrb z80f,[r1,\reg1]\r
968 orrcs z80f,z80f,#1<<CFlag\r
969.endm\r
970\r
971.macro opRRCA\r
972 opRRC z80a, z80a, 25\r
973 mov z80a,z80a,lsl#24\r
974 fetch 8\r
975.endm\r
976\r
977.macro opRRCH reg\r
978 opRRC r0, \reg, 25\r
979 and \reg,\reg,#0x00FF0000 ;@mask out low\r
980 orr \reg,\reg,r0,lsl#24\r
981 fetch 8\r
982.endm\r
983\r
984.macro opRRCL reg\r
985 and r0,\reg,#0x00FF0000 ;@mask low to r0\r
986 opRRC r0, r0, 17\r
987 and \reg,\reg,#0xFF000000 ;@mask out high\r
988 orr \reg,\reg,r0,lsl#16\r
989 fetch 8\r
990.endm\r
991\r
992.macro opRRCb\r
993 opRRC r0, r0, 1\r
994.endm\r
995;@---------------------------------------\r
996\r
997.macro opRST addr\r
998 ldr r0,[cpucontext,#z80pc_base]\r
999 sub r2,z80pc,r0\r
1000 opPUSHareg r2\r
1001 mov r0,#\addr\r
1002 rebasepc\r
1003 fetch 11\r
1004.endm\r
1005;@---------------------------------------\r
1006\r
1007.macro opSBC\r
1008 eor z80f,z80f,#1<<CFlag ;@ invert C\r
1009 movs z80f,z80f,lsr#2 ;@ get C\r
1010 subcc r0,r0,#0x100\r
1011 eor z80f,r0,z80a,lsr#24 ;@ prepare for check of H\r
1012 sbcs z80a,z80a,r0,ror#8\r
1013 mrs r0,cpsr\r
1014 eor z80f,z80f,z80a,lsr#24\r
1015 and z80f,z80f,#1<<HFlag ;@ H, correct\r
1016 orr z80f,z80f,r0,lsr#28 ;@ S,Z,V&C\r
1017 eor z80f,z80f,#(1<<CFlag)|(1<<NFlag) ;@ invert C and set n.\r
1018.endm\r
1019\r
1020.macro opSBCA\r
1021 movs z80f,z80f,lsr#2 ;@ get C\r
1022 movcc z80a,#0x00000000\r
1023 movcs z80a,#0xFF000000\r
1024 movcc z80f,#(1<<NFlag)|(1<<ZFlag)\r
1025 movcs z80f,#(1<<NFlag)|(1<<SFlag)|(1<<CFlag)|(1<<HFlag)\r
1026 fetch 4\r
1027.endm\r
1028\r
1029.macro opSBCH reg\r
1030 mov r0,\reg,lsr#24\r
1031 opSBC\r
1032 fetch 4\r
1033.endm\r
1034\r
1035.macro opSBCL reg\r
1036 mov r0,\reg,lsl#8\r
1037 eor z80f,z80f,#1<<CFlag ;@ invert C\r
1038 movs z80f,z80f,lsr#2 ;@ get C\r
1039 sbccc r0,r0,#0xFF000000\r
1040 mov r1,z80a,lsl#4 ;@ prepare for check of H\r
1041 sbcs z80a,z80a,r0\r
1042 mrs z80f,cpsr\r
1043 mov z80f,z80f,lsr#28 ;@ S,Z,V&C\r
1044 eor z80f,z80f,#(1<<CFlag)|(1<<NFlag) ;@ invert C and set n.\r
1045 cmp r1,r0,lsl#4\r
1046 orrcc z80f,z80f,#1<<HFlag ;@ H, correct\r
1047 fetch 4\r
1048.endm\r
1049\r
1050.macro opSBCb\r
1051 opSBC\r
1052.endm\r
1053;@---------------------------------------\r
1054\r
1055.macro opSBC16 reg\r
1056 eor z80f,z80f,#1<<CFlag ;@ invert C\r
1057 movs z80f,z80f,lsr#2 ;@ get C\r
1058 sbc r1,r1,r1 ;@ set r1 to -1 or 0.\r
1059 orr r0,\reg,r1,lsr#16\r
1060 mov r1,z80hl,lsl#4 ;@ prepare for check of H\r
1061 sbcs z80hl,z80hl,r0\r
1062 mrs z80f,cpsr\r
1063 mov z80f,z80f,lsr#28 ;@ S,Z,V&C\r
1064 eor z80f,z80f,#(1<<CFlag)|(1<<NFlag) ;@ invert C and set n.\r
1065 cmp r1,r0,lsl#4\r
1066 orrcc z80f,z80f,#1<<HFlag ;@ H, correct\r
1067 fetch 15\r
1068.endm\r
1069\r
1070.macro opSBC16HL\r
1071 movs z80f,z80f,lsr#2 ;@ get C\r
1072 mov z80hl,#0x00000000\r
1073 subcs z80hl,z80hl,#0x00010000\r
1074 movcc z80f,#(1<<NFlag)|(1<<ZFlag)\r
1075 movcs z80f,#(1<<NFlag)|(1<<SFlag)|(1<<CFlag)|(1<<HFlag)\r
1076 fetch 15\r
1077.endm\r
1078;@---------------------------------------\r
1079\r
1080.macro opSETmemHL bit\r
cc68a136 1081 mov r0,z80hl, lsr #16\r
ee05564f 1082.if DRZ80_XMAP\r
1083 bl z80_xmap_read8\r
cc68a136 1084 orr r0,r0,#1<<\bit\r
1085 mov r1,z80hl, lsr #16\r
ee05564f 1086 bl z80_xmap_write8\r
cc68a136 1087.else\r
cc68a136 1088 stmfd sp!,{r3,r12}\r
1089 mov lr,pc\r
1090 ldr pc,[cpucontext,#z80_read8] ;@ r0 = addr - data returned in r0\r
1091 orr r0,r0,#1<<\bit\r
1092 mov r1,z80hl, lsr #16\r
1093 mov lr,pc\r
1094 ldr pc,[cpucontext,#z80_write8] ;@ r0=data r1=addr\r
1095 ldmfd sp!,{r3,r12}\r
1096.endif\r
1097 fetch 15\r
1098.endm\r
1099;@---------------------------------------\r
1100\r
1101.macro opSETmem bit\r
ee05564f 1102.if DRZ80_XMAP\r
cc68a136 1103 stmfd sp!,{r0} ;@ save addr as well\r
ee05564f 1104 bl z80_xmap_read8\r
cc68a136 1105 orr r0,r0,#1<<\bit\r
1106 ldmfd sp!,{r1} ;@ restore addr into r1\r
ee05564f 1107 bl z80_xmap_write8\r
cc68a136 1108.else\r
1109 stmfd sp!,{r3,r12}\r
1110 stmfd sp!,{r0} ;@ save addr as well\r
1111 mov lr,pc\r
1112 ldr pc,[cpucontext,#z80_read8] ;@ r0=addr - data returned in r0\r
1113 orr r0,r0,#1<<\bit\r
1114 ldmfd sp!,{r1} ;@ restore addr into r1\r
1115 mov lr,pc\r
1116 ldr pc,[cpucontext,#z80_write8] ;@ r0=data r1=addr\r
1117 ldmfd sp!,{r3,r12}\r
1118.endif\r
1119 fetch 23\r
1120.endm\r
1121;@---------------------------------------\r
1122\r
1123.macro opSLA reg1 reg2 shift\r
1124 movs \reg1,\reg2,lsl#\shift\r
1125 sub r1,opcodes,#0x100\r
1126 ldrb z80f,[r1,\reg1,lsr#24]\r
1127 orrcs z80f,z80f,#1<<CFlag\r
1128.endm\r
1129\r
1130.macro opSLAA\r
1131 opSLA z80a, z80a, 1\r
1132 fetch 8\r
1133.endm\r
1134\r
1135.macro opSLAH reg\r
1136 and r0,\reg,#0xFF000000 ;@mask high to r0\r
1137 adds \reg,\reg,r0\r
1138 sub r1,opcodes,#0x100\r
1139 ldrb z80f,[r1,\reg,lsr#24]\r
1140 orrcs z80f,z80f,#1<<CFlag\r
1141 fetch 8\r
1142.endm\r
1143\r
1144.macro opSLAL reg\r
1145 opSLA r0, \reg, 9\r
1146 and \reg,\reg,#0xFF000000 ;@mask out high\r
1147 orr \reg,\reg,r0,lsr#8\r
1148 fetch 8\r
1149.endm\r
1150\r
1151.macro opSLAb\r
1152 opSLA r0, r0, 25\r
1153 mov r0,r0,lsr#24\r
1154.endm\r
1155;@---------------------------------------\r
1156\r
1157.macro opSLL reg1 reg2 shift\r
1158 movs \reg1,\reg2,lsl#\shift\r
1159 orr \reg1,\reg1,#0x01000000\r
1160 sub r1,opcodes,#0x100\r
1161 ldrb z80f,[r1,\reg1,lsr#24]\r
1162 orrcs z80f,z80f,#1<<CFlag\r
1163.endm\r
1164\r
1165.macro opSLLA\r
1166 opSLL z80a, z80a, 1\r
1167 fetch 8\r
1168.endm\r
1169\r
1170.macro opSLLH reg\r
1171 and r0,\reg,#0xFF000000 ;@mask high to r0\r
1172 adds \reg,\reg,r0\r
1173 orr \reg,\reg,#0x01000000\r
1174 sub r1,opcodes,#0x100\r
1175 ldrb z80f,[r1,\reg,lsr#24]\r
1176 orrcs z80f,z80f,#1<<CFlag\r
1177 fetch 8\r
1178.endm\r
1179\r
1180.macro opSLLL reg\r
1181 opSLL r0, \reg, 9\r
1182 and \reg,\reg,#0xFF000000 ;@mask out high\r
1183 orr \reg,\reg,r0,lsr#8\r
1184 fetch 8\r
1185.endm\r
1186\r
1187.macro opSLLb\r
1188 opSLL r0, r0, 25\r
1189 mov r0,r0,lsr#24\r
1190.endm\r
1191;@---------------------------------------\r
1192\r
1193.macro opSRA reg1 reg2\r
1194 movs \reg1,\reg2,asr#25\r
1195 and \reg1,\reg1,#0xFF\r
1196 sub r1,opcodes,#0x100\r
1197 ldrb z80f,[r1,\reg1]\r
1198 orrcs z80f,z80f,#1<<CFlag\r
1199.endm\r
1200\r
1201.macro opSRAA\r
1202 movs r0,z80a,asr#25\r
1203 mov z80a,r0,lsl#24\r
1204 sub r1,opcodes,#0x100\r
1205 ldrb z80f,[r1,z80a,lsr#24]\r
1206 orrcs z80f,z80f,#1<<CFlag\r
1207 fetch 8\r
1208.endm\r
1209\r
1210.macro opSRAH reg\r
1211 movs r0,\reg,asr#25\r
1212 and \reg,\reg,#0x00FF0000 ;@mask out low\r
1213 orr \reg,\reg,r0,lsl#24\r
1214 sub r1,opcodes,#0x100\r
1215 ldrb z80f,[r1,\reg,lsr#24]\r
1216 orrcs z80f,z80f,#1<<CFlag\r
1217 fetch 8\r
1218.endm\r
1219\r
1220.macro opSRAL reg\r
1221 mov r0,\reg,lsl#8\r
1222 opSRA r0, r0\r
1223 and \reg,\reg,#0xFF000000 ;@mask out high\r
1224 orr \reg,\reg,r0,lsl#16\r
1225 fetch 8\r
1226.endm\r
1227\r
1228.macro opSRAb\r
1229 mov r0,r0,lsl#24\r
1230 opSRA r0, r0\r
1231.endm\r
1232;@---------------------------------------\r
1233\r
1234.macro opSRL reg1 reg2 shift\r
1235 movs \reg1,\reg2,lsr#\shift\r
1236 sub r1,opcodes,#0x100\r
1237 ldrb z80f,[r1,\reg1]\r
1238 orrcs z80f,z80f,#1<<CFlag\r
1239.endm\r
1240\r
1241.macro opSRLA\r
1242 opSRL z80a, z80a, 25\r
1243 mov z80a,z80a,lsl#24\r
1244 fetch 8\r
1245.endm\r
1246\r
1247.macro opSRLH reg\r
1248 opSRL r0, \reg, 25\r
1249 and \reg,\reg,#0x00FF0000 ;@mask out low\r
1250 orr \reg,\reg,r0,lsl#24\r
1251 fetch 8\r
1252.endm\r
1253\r
1254.macro opSRLL reg\r
1255 mov r0,\reg,lsl#8\r
1256 opSRL r0, r0, 25\r
1257 and \reg,\reg,#0xFF000000 ;@mask out high\r
1258 orr \reg,\reg,r0,lsl#16\r
1259 fetch 8\r
1260.endm\r
1261\r
1262.macro opSRLb\r
1263 opSRL r0, r0, 1\r
1264.endm\r
1265;@---------------------------------------\r
1266\r
1267.macro opSUB reg shift\r
1268 mov r1,z80a,lsl#4 ;@ Prepare for check of half carry\r
1269 subs z80a,z80a,\reg,lsl#\shift\r
1270 mrs z80f,cpsr\r
1271 mov z80f,z80f,lsr#28 ;@ S,Z,V&C\r
1272 eor z80f,z80f,#(1<<CFlag)|(1<<NFlag) ;@ invert C and set n\r
1273 cmp r1,\reg,lsl#\shift+4\r
1274 orrcc z80f,z80f,#1<<HFlag\r
1275.endm\r
1276\r
1277.macro opSUBA\r
1278 mov z80a,#0\r
1279 mov z80f,#(1<<ZFlag)|(1<<NFlag) ;@ set Z & n\r
1280 fetch 4\r
1281.endm\r
1282\r
1283.macro opSUBH reg\r
1284 and r0,\reg,#0xFF000000\r
1285 opSUB r0, 0\r
1286 fetch 4\r
1287.endm\r
1288\r
1289.macro opSUBL reg\r
1290 opSUB \reg, 8\r
1291 fetch 4\r
1292.endm\r
1293\r
1294.macro opSUBb\r
1295 opSUB r0, 24\r
1296.endm\r
1297;@---------------------------------------\r
1298\r
1299.macro opXOR reg shift\r
1300 eor z80a,z80a,\reg,lsl#\shift\r
1301 sub r0,opcodes,#0x100\r
1302 ldrb z80f,[r0,z80a, lsr #24]\r
1303.endm\r
1304\r
1305.macro opXORA\r
1306 mov z80a,#0\r
1307 mov z80f,#(1<<ZFlag)|(1<<VFlag)\r
1308 fetch 4\r
1309.endm\r
1310\r
1311.macro opXORH reg\r
1312 and r0,\reg,#0xFF000000\r
1313 opXOR r0, 0\r
1314 fetch 4\r
1315.endm\r
1316\r
1317.macro opXORL reg\r
1318 opXOR \reg, 8\r
1319 fetch 4\r
1320.endm\r
1321\r
1322.macro opXORb\r
1323 opXOR r0, 24\r
1324.endm\r
1325;@---------------------------------------\r
1326\r
1327\r
1328;@ --------------------------- Framework --------------------------\r
1329 \r
1330.text\r
1331\r
1332DrZ80Run:\r
1333 ;@ r0 = pointer to cpu context\r
1334 ;@ r1 = ISTATES to execute \r
1335 ;@######################################### \r
1336 stmdb sp!,{r4-r12,lr} ;@ save registers on stack\r
1337 mov cpucontext,r0 ;@ setup main memory pointer\r
1338 mov z80_icount,r1 ;@ setup number of Tstates to execute\r
1339\r
1340.if INTERRUPT_MODE == 0\r
de89bf45 1341 ldrh r0,[cpucontext,#z80irq] @ 0x4C, irq and IFF bits\r
cc68a136 1342.endif\r
1343 ldmia cpucontext,{z80pc-z80sp} ;@ load Z80 registers\r
1344\r
1345.if INTERRUPT_MODE == 0\r
1346 ;@ check ints\r
de89bf45 1347 tst r0,#0xff\r
1348 movne r0,r0,lsr #8\r
1349 tstne r0,#1\r
1350 blne DoInterrupt\r
cc68a136 1351.endif\r
1352\r
cc68a136 1353 ldr opcodes,MAIN_opcodes_POINTER2\r
cc68a136 1354\r
de89bf45 1355 cmp z80_icount,#0 ;@ irq might have used all cycles\r
1356 ldrplb r0,[z80pc],#1\r
1357 ldrpl pc,[opcodes,r0, lsl #2]\r
cc68a136 1358\r
1359\r
1360z80_execute_end:\r
1361 ;@ save registers in CPU context\r
1362 stmia cpucontext,{z80pc-z80sp} ;@ save Z80 registers\r
de89bf45 1363 mov r0,z80_icount\r
cc68a136 1364 ldmia sp!,{r4-r12,pc} ;@ restore registers from stack and return to C code\r
1365\r
de89bf45 1366MAIN_opcodes_POINTER2: .word MAIN_opcodes\r
cc68a136 1367.if INTERRUPT_MODE\r
1368Interrupt_local: .word Interrupt\r
1369.endif\r
1370\r
1371DoInterrupt:\r
1372.if INTERRUPT_MODE\r
1373 ;@ Don't do own int handler, call mames instead\r
1374\r
1375 ;@ save everything back into DrZ80 context\r
1376 stmia cpucontext,{z80pc-z80sp} ;@ save Z80 registers\r
1377 stmfd sp!,{r3,r4,r5,lr} ;@ save rest of regs on stack\r
1378 mov lr,pc\r
1379 ldr pc,Interrupt_local\r
1380 ldmfd sp!,{r3,r4,r5,lr} ;@ load regs from stack\r
1381 ;@ reload regs from DrZ80 context\r
1382 ldmia cpucontext,{z80pc-z80sp} ;@ load Z80 registers\r
1383 mov pc,lr ;@ return\r
1384.else\r
de89bf45 1385\r
1386 ;@ r0 == z80if\r
cc68a136 1387 stmfd sp!,{lr}\r
1388\r
1389 tst r0,#4 ;@ check halt\r
1390 addne z80pc,z80pc,#1\r
1391\r
1392 ldrb r1,[cpucontext,#z80im]\r
1393\r
1394 ;@ clear halt and int flags\r
1395 eor r0,r0,r0\r
1396 strb r0,[cpucontext,#z80if]\r
1397\r
1398 ;@ now check int mode\r
de89bf45 1399 cmp r1,#1\r
1400 beq DoInterrupt_mode1\r
1401 bgt DoInterrupt_mode2\r
cc68a136 1402\r
1403DoInterrupt_mode0:\r
1404 ;@ get 3 byte vector\r
1405 ldr r2,[cpucontext, #z80irqvector]\r
1406 and r1,r2,#0xFF0000\r
1407 cmp r1,#0xCD0000 ;@ call\r
1408 bne 1f\r
1409 ;@ ########\r
1410 ;@ # call\r
1411 ;@ ########\r
1412 ;@ save current pc on stack\r
1413 ldr r0,[cpucontext,#z80pc_base]\r
1414 sub r0,z80pc,r0\r
1415.if FAST_Z80SP\r
1416 mov r1,r0, lsr #8\r
1417 strb r1,[z80sp,#-1]!\r
1418 strb r0,[z80sp,#-1]!\r
1419.else\r
1420 sub z80sp,z80sp,#2\r
1421 mov r1,z80sp\r
1422 writemem16\r
1423 ldr r2,[cpucontext, #z80irqvector]\r
1424.endif\r
1425 ;@ jump to vector\r
1426 mov r2,r2,lsl#16\r
1427 mov r0,r2,lsr#16\r
1428 ;@ rebase new pc\r
1429 rebasepc\r
1430\r
de89bf45 1431 eatcycles 13\r
cc68a136 1432 b DoInterrupt_end\r
1433\r
14341:\r
1435 cmp r1,#0xC30000 ;@ jump\r
1436 bne DoInterrupt_mode1 ;@ rst\r
1437 ;@ #######\r
1438 ;@ # jump\r
1439 ;@ #######\r
1440 ;@ jump to vector\r
1441 mov r2,r2,lsl#16\r
1442 mov r0,r2,lsr#16\r
1443 ;@ rebase new pc\r
1444 rebasepc\r
1445\r
de89bf45 1446 eatcycles 13\r
cc68a136 1447 b DoInterrupt_end\r
1448\r
1449DoInterrupt_mode1:\r
1450 ldr r0,[cpucontext,#z80pc_base]\r
1451 sub r2,z80pc,r0\r
1452 opPUSHareg r2\r
1453 mov r0,#0x38\r
1454 rebasepc\r
1455\r
de89bf45 1456 eatcycles 13\r
cc68a136 1457 b DoInterrupt_end\r
1458\r
1459DoInterrupt_mode2:\r
1460 ;@ push pc on stack\r
1461 ldr r0,[cpucontext,#z80pc_base]\r
1462 sub r2,z80pc,r0\r
1463 opPUSHareg r2\r
1464\r
1465 ;@ get 1 byte vector address\r
1466 ldrb r0,[cpucontext, #z80irqvector]\r
1467 ldr r1,[cpucontext, #z80i]\r
1468 orr r0,r0,r1,lsr#16\r
1469\r
1470 ;@ read new pc from vector address\r
cc68a136 1471.if UPDATE_CONTEXT\r
1472 str z80pc,[cpucontext,#z80pc_pointer]\r
1473.endif\r
ee05564f 1474.if DRZ80_XMAP\r
1475 bl z80_xmap_read16\r
1476 rebasepc\r
cc68a136 1477.else\r
1478 stmfd sp!,{r3,r12}\r
1479 mov lr,pc\r
1480 ldr pc,[cpucontext,#z80_read16]\r
1481\r
1482 ;@ rebase new pc\r
cc68a136 1483 mov lr,pc\r
1484 ldr pc,[cpucontext,#z80_rebasePC] ;@ r0=new pc - external function sets z80pc_base and returns new z80pc in r0\r
1485 ldmfd sp!,{r3,r12}\r
1486 mov z80pc,r0 \r
1487.endif\r
de89bf45 1488 eatcycles 17\r
cc68a136 1489\r
1490DoInterrupt_end:\r
1491 ;@ interupt accepted so callback irq interface\r
1492 ldr r0,[cpucontext, #z80irqcallback]\r
1493 tst r0,r0\r
de89bf45 1494 streqb r0,[cpucontext,#z80irq] ;@ default handling\r
cc68a136 1495 ldmeqfd sp!,{pc}\r
1496 stmfd sp!,{r3,r12}\r
1497 mov lr,pc\r
1498 mov pc,r0 ;@ call callback function\r
1499 ldmfd sp!,{r3,r12}\r
1500 ldmfd sp!,{pc} ;@ return\r
cc68a136 1501.endif\r
1502\r
1503.data\r
1504.align 4\r
1505\r
1506DAATable: .hword (0x00<<8)|(1<<ZFlag)|(1<<VFlag)\r
1507 .hword (0x01<<8) \r
1508 .hword (0x02<<8) \r
1509 .hword (0x03<<8) |(1<<VFlag)\r
1510 .hword (0x04<<8) \r
1511 .hword (0x05<<8) |(1<<VFlag)\r
1512 .hword (0x06<<8) |(1<<VFlag)\r
1513 .hword (0x07<<8) \r
1514 .hword (0x08<<8) \r
1515 .hword (0x09<<8) |(1<<VFlag)\r
1516 .hword (0x10<<8) |(1<<HFlag) \r
1517 .hword (0x11<<8) |(1<<HFlag) |(1<<VFlag)\r
1518 .hword (0x12<<8) |(1<<HFlag) |(1<<VFlag)\r
1519 .hword (0x13<<8) |(1<<HFlag) \r
1520 .hword (0x14<<8) |(1<<HFlag) |(1<<VFlag)\r
1521 .hword (0x15<<8) |(1<<HFlag) \r
1522 .hword (0x10<<8) \r
1523 .hword (0x11<<8) |(1<<VFlag)\r
1524 .hword (0x12<<8) |(1<<VFlag)\r
1525 .hword (0x13<<8) \r
1526 .hword (0x14<<8) |(1<<VFlag)\r
1527 .hword (0x15<<8) \r
1528 .hword (0x16<<8) \r
1529 .hword (0x17<<8) |(1<<VFlag)\r
1530 .hword (0x18<<8) |(1<<VFlag)\r
1531 .hword (0x19<<8) \r
1532 .hword (0x20<<8) |(1<<HFlag) \r
1533 .hword (0x21<<8) |(1<<HFlag) |(1<<VFlag)\r
1534 .hword (0x22<<8) |(1<<HFlag) |(1<<VFlag)\r
1535 .hword (0x23<<8) |(1<<HFlag) \r
1536 .hword (0x24<<8) |(1<<HFlag) |(1<<VFlag)\r
1537 .hword (0x25<<8) |(1<<HFlag) \r
1538 .hword (0x20<<8) \r
1539 .hword (0x21<<8) |(1<<VFlag)\r
1540 .hword (0x22<<8) |(1<<VFlag)\r
1541 .hword (0x23<<8) \r
1542 .hword (0x24<<8) |(1<<VFlag)\r
1543 .hword (0x25<<8) \r
1544 .hword (0x26<<8) \r
1545 .hword (0x27<<8) |(1<<VFlag)\r
1546 .hword (0x28<<8) |(1<<VFlag)\r
1547 .hword (0x29<<8) \r
1548 .hword (0x30<<8) |(1<<HFlag) |(1<<VFlag)\r
1549 .hword (0x31<<8) |(1<<HFlag) \r
1550 .hword (0x32<<8) |(1<<HFlag) \r
1551 .hword (0x33<<8) |(1<<HFlag) |(1<<VFlag)\r
1552 .hword (0x34<<8) |(1<<HFlag) \r
1553 .hword (0x35<<8) |(1<<HFlag) |(1<<VFlag)\r
1554 .hword (0x30<<8) |(1<<VFlag)\r
1555 .hword (0x31<<8) \r
1556 .hword (0x32<<8) \r
1557 .hword (0x33<<8) |(1<<VFlag)\r
1558 .hword (0x34<<8) \r
1559 .hword (0x35<<8) |(1<<VFlag)\r
1560 .hword (0x36<<8) |(1<<VFlag)\r
1561 .hword (0x37<<8) \r
1562 .hword (0x38<<8) \r
1563 .hword (0x39<<8) |(1<<VFlag)\r
1564 .hword (0x40<<8) |(1<<HFlag) \r
1565 .hword (0x41<<8) |(1<<HFlag) |(1<<VFlag)\r
1566 .hword (0x42<<8) |(1<<HFlag) |(1<<VFlag)\r
1567 .hword (0x43<<8) |(1<<HFlag) \r
1568 .hword (0x44<<8) |(1<<HFlag) |(1<<VFlag)\r
1569 .hword (0x45<<8) |(1<<HFlag) \r
1570 .hword (0x40<<8) \r
1571 .hword (0x41<<8) |(1<<VFlag)\r
1572 .hword (0x42<<8) |(1<<VFlag)\r
1573 .hword (0x43<<8) \r
1574 .hword (0x44<<8) |(1<<VFlag)\r
1575 .hword (0x45<<8) \r
1576 .hword (0x46<<8) \r
1577 .hword (0x47<<8) |(1<<VFlag)\r
1578 .hword (0x48<<8) |(1<<VFlag)\r
1579 .hword (0x49<<8) \r
1580 .hword (0x50<<8) |(1<<HFlag) |(1<<VFlag)\r
1581 .hword (0x51<<8) |(1<<HFlag) \r
1582 .hword (0x52<<8) |(1<<HFlag) \r
1583 .hword (0x53<<8) |(1<<HFlag) |(1<<VFlag)\r
1584 .hword (0x54<<8) |(1<<HFlag) \r
1585 .hword (0x55<<8) |(1<<HFlag) |(1<<VFlag)\r
1586 .hword (0x50<<8) |(1<<VFlag)\r
1587 .hword (0x51<<8) \r
1588 .hword (0x52<<8) \r
1589 .hword (0x53<<8) |(1<<VFlag)\r
1590 .hword (0x54<<8) \r
1591 .hword (0x55<<8) |(1<<VFlag)\r
1592 .hword (0x56<<8) |(1<<VFlag)\r
1593 .hword (0x57<<8) \r
1594 .hword (0x58<<8) \r
1595 .hword (0x59<<8) |(1<<VFlag)\r
1596 .hword (0x60<<8) |(1<<HFlag) |(1<<VFlag)\r
1597 .hword (0x61<<8) |(1<<HFlag) \r
1598 .hword (0x62<<8) |(1<<HFlag) \r
1599 .hword (0x63<<8) |(1<<HFlag) |(1<<VFlag)\r
1600 .hword (0x64<<8) |(1<<HFlag) \r
1601 .hword (0x65<<8) |(1<<HFlag) |(1<<VFlag)\r
1602 .hword (0x60<<8) |(1<<VFlag)\r
1603 .hword (0x61<<8) \r
1604 .hword (0x62<<8) \r
1605 .hword (0x63<<8) |(1<<VFlag)\r
1606 .hword (0x64<<8) \r
1607 .hword (0x65<<8) |(1<<VFlag)\r
1608 .hword (0x66<<8) |(1<<VFlag)\r
1609 .hword (0x67<<8) \r
1610 .hword (0x68<<8) \r
1611 .hword (0x69<<8) |(1<<VFlag)\r
1612 .hword (0x70<<8) |(1<<HFlag) \r
1613 .hword (0x71<<8) |(1<<HFlag) |(1<<VFlag)\r
1614 .hword (0x72<<8) |(1<<HFlag) |(1<<VFlag)\r
1615 .hword (0x73<<8) |(1<<HFlag) \r
1616 .hword (0x74<<8) |(1<<HFlag) |(1<<VFlag)\r
1617 .hword (0x75<<8) |(1<<HFlag) \r
1618 .hword (0x70<<8) \r
1619 .hword (0x71<<8) |(1<<VFlag)\r
1620 .hword (0x72<<8) |(1<<VFlag)\r
1621 .hword (0x73<<8) \r
1622 .hword (0x74<<8) |(1<<VFlag)\r
1623 .hword (0x75<<8) \r
1624 .hword (0x76<<8) \r
1625 .hword (0x77<<8) |(1<<VFlag)\r
1626 .hword (0x78<<8) |(1<<VFlag)\r
1627 .hword (0x79<<8) \r
1628 .hword (0x80<<8)|(1<<SFlag) |(1<<HFlag) \r
1629 .hword (0x81<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag)\r
1630 .hword (0x82<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag)\r
1631 .hword (0x83<<8)|(1<<SFlag) |(1<<HFlag) \r
1632 .hword (0x84<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag)\r
1633 .hword (0x85<<8)|(1<<SFlag) |(1<<HFlag) \r
1634 .hword (0x80<<8)|(1<<SFlag) \r
1635 .hword (0x81<<8)|(1<<SFlag) |(1<<VFlag)\r
1636 .hword (0x82<<8)|(1<<SFlag) |(1<<VFlag)\r
1637 .hword (0x83<<8)|(1<<SFlag) \r
1638 .hword (0x84<<8)|(1<<SFlag) |(1<<VFlag)\r
1639 .hword (0x85<<8)|(1<<SFlag) \r
1640 .hword (0x86<<8)|(1<<SFlag) \r
1641 .hword (0x87<<8)|(1<<SFlag) |(1<<VFlag)\r
1642 .hword (0x88<<8)|(1<<SFlag) |(1<<VFlag)\r
1643 .hword (0x89<<8)|(1<<SFlag) \r
1644 .hword (0x90<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag)\r
1645 .hword (0x91<<8)|(1<<SFlag) |(1<<HFlag) \r
1646 .hword (0x92<<8)|(1<<SFlag) |(1<<HFlag) \r
1647 .hword (0x93<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag)\r
1648 .hword (0x94<<8)|(1<<SFlag) |(1<<HFlag) \r
1649 .hword (0x95<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag)\r
1650 .hword (0x90<<8)|(1<<SFlag) |(1<<VFlag)\r
1651 .hword (0x91<<8)|(1<<SFlag) \r
1652 .hword (0x92<<8)|(1<<SFlag) \r
1653 .hword (0x93<<8)|(1<<SFlag) |(1<<VFlag)\r
1654 .hword (0x94<<8)|(1<<SFlag) \r
1655 .hword (0x95<<8)|(1<<SFlag) |(1<<VFlag)\r
1656 .hword (0x96<<8)|(1<<SFlag) |(1<<VFlag)\r
1657 .hword (0x97<<8)|(1<<SFlag) \r
1658 .hword (0x98<<8)|(1<<SFlag) \r
1659 .hword (0x99<<8)|(1<<SFlag) |(1<<VFlag)\r
1660 .hword (0x00<<8) |(1<<ZFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1661 .hword (0x01<<8) |(1<<HFlag) |(1<<CFlag)\r
1662 .hword (0x02<<8) |(1<<HFlag) |(1<<CFlag)\r
1663 .hword (0x03<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1664 .hword (0x04<<8) |(1<<HFlag) |(1<<CFlag)\r
1665 .hword (0x05<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1666 .hword (0x00<<8) |(1<<ZFlag) |(1<<VFlag) |(1<<CFlag)\r
1667 .hword (0x01<<8) |(1<<CFlag)\r
1668 .hword (0x02<<8) |(1<<CFlag)\r
1669 .hword (0x03<<8) |(1<<VFlag) |(1<<CFlag)\r
1670 .hword (0x04<<8) |(1<<CFlag)\r
1671 .hword (0x05<<8) |(1<<VFlag) |(1<<CFlag)\r
1672 .hword (0x06<<8) |(1<<VFlag) |(1<<CFlag)\r
1673 .hword (0x07<<8) |(1<<CFlag)\r
1674 .hword (0x08<<8) |(1<<CFlag)\r
1675 .hword (0x09<<8) |(1<<VFlag) |(1<<CFlag)\r
1676 .hword (0x10<<8) |(1<<HFlag) |(1<<CFlag)\r
1677 .hword (0x11<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1678 .hword (0x12<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1679 .hword (0x13<<8) |(1<<HFlag) |(1<<CFlag)\r
1680 .hword (0x14<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1681 .hword (0x15<<8) |(1<<HFlag) |(1<<CFlag)\r
1682 .hword (0x10<<8) |(1<<CFlag)\r
1683 .hword (0x11<<8) |(1<<VFlag) |(1<<CFlag)\r
1684 .hword (0x12<<8) |(1<<VFlag) |(1<<CFlag)\r
1685 .hword (0x13<<8) |(1<<CFlag)\r
1686 .hword (0x14<<8) |(1<<VFlag) |(1<<CFlag)\r
1687 .hword (0x15<<8) |(1<<CFlag)\r
1688 .hword (0x16<<8) |(1<<CFlag)\r
1689 .hword (0x17<<8) |(1<<VFlag) |(1<<CFlag)\r
1690 .hword (0x18<<8) |(1<<VFlag) |(1<<CFlag)\r
1691 .hword (0x19<<8) |(1<<CFlag)\r
1692 .hword (0x20<<8) |(1<<HFlag) |(1<<CFlag)\r
1693 .hword (0x21<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1694 .hword (0x22<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1695 .hword (0x23<<8) |(1<<HFlag) |(1<<CFlag)\r
1696 .hword (0x24<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1697 .hword (0x25<<8) |(1<<HFlag) |(1<<CFlag)\r
1698 .hword (0x20<<8) |(1<<CFlag)\r
1699 .hword (0x21<<8) |(1<<VFlag) |(1<<CFlag)\r
1700 .hword (0x22<<8) |(1<<VFlag) |(1<<CFlag)\r
1701 .hword (0x23<<8) |(1<<CFlag)\r
1702 .hword (0x24<<8) |(1<<VFlag) |(1<<CFlag)\r
1703 .hword (0x25<<8) |(1<<CFlag)\r
1704 .hword (0x26<<8) |(1<<CFlag)\r
1705 .hword (0x27<<8) |(1<<VFlag) |(1<<CFlag)\r
1706 .hword (0x28<<8) |(1<<VFlag) |(1<<CFlag)\r
1707 .hword (0x29<<8) |(1<<CFlag)\r
1708 .hword (0x30<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1709 .hword (0x31<<8) |(1<<HFlag) |(1<<CFlag)\r
1710 .hword (0x32<<8) |(1<<HFlag) |(1<<CFlag)\r
1711 .hword (0x33<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1712 .hword (0x34<<8) |(1<<HFlag) |(1<<CFlag)\r
1713 .hword (0x35<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1714 .hword (0x30<<8) |(1<<VFlag) |(1<<CFlag)\r
1715 .hword (0x31<<8) |(1<<CFlag)\r
1716 .hword (0x32<<8) |(1<<CFlag)\r
1717 .hword (0x33<<8) |(1<<VFlag) |(1<<CFlag)\r
1718 .hword (0x34<<8) |(1<<CFlag)\r
1719 .hword (0x35<<8) |(1<<VFlag) |(1<<CFlag)\r
1720 .hword (0x36<<8) |(1<<VFlag) |(1<<CFlag)\r
1721 .hword (0x37<<8) |(1<<CFlag)\r
1722 .hword (0x38<<8) |(1<<CFlag)\r
1723 .hword (0x39<<8) |(1<<VFlag) |(1<<CFlag)\r
1724 .hword (0x40<<8) |(1<<HFlag) |(1<<CFlag)\r
1725 .hword (0x41<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1726 .hword (0x42<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1727 .hword (0x43<<8) |(1<<HFlag) |(1<<CFlag)\r
1728 .hword (0x44<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1729 .hword (0x45<<8) |(1<<HFlag) |(1<<CFlag)\r
1730 .hword (0x40<<8) |(1<<CFlag)\r
1731 .hword (0x41<<8) |(1<<VFlag) |(1<<CFlag)\r
1732 .hword (0x42<<8) |(1<<VFlag) |(1<<CFlag)\r
1733 .hword (0x43<<8) |(1<<CFlag)\r
1734 .hword (0x44<<8) |(1<<VFlag) |(1<<CFlag)\r
1735 .hword (0x45<<8) |(1<<CFlag)\r
1736 .hword (0x46<<8) |(1<<CFlag)\r
1737 .hword (0x47<<8) |(1<<VFlag) |(1<<CFlag)\r
1738 .hword (0x48<<8) |(1<<VFlag) |(1<<CFlag)\r
1739 .hword (0x49<<8) |(1<<CFlag)\r
1740 .hword (0x50<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1741 .hword (0x51<<8) |(1<<HFlag) |(1<<CFlag)\r
1742 .hword (0x52<<8) |(1<<HFlag) |(1<<CFlag)\r
1743 .hword (0x53<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1744 .hword (0x54<<8) |(1<<HFlag) |(1<<CFlag)\r
1745 .hword (0x55<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1746 .hword (0x50<<8) |(1<<VFlag) |(1<<CFlag)\r
1747 .hword (0x51<<8) |(1<<CFlag)\r
1748 .hword (0x52<<8) |(1<<CFlag)\r
1749 .hword (0x53<<8) |(1<<VFlag) |(1<<CFlag)\r
1750 .hword (0x54<<8) |(1<<CFlag)\r
1751 .hword (0x55<<8) |(1<<VFlag) |(1<<CFlag)\r
1752 .hword (0x56<<8) |(1<<VFlag) |(1<<CFlag)\r
1753 .hword (0x57<<8) |(1<<CFlag)\r
1754 .hword (0x58<<8) |(1<<CFlag)\r
1755 .hword (0x59<<8) |(1<<VFlag) |(1<<CFlag)\r
1756 .hword (0x60<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1757 .hword (0x61<<8) |(1<<HFlag) |(1<<CFlag)\r
1758 .hword (0x62<<8) |(1<<HFlag) |(1<<CFlag)\r
1759 .hword (0x63<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1760 .hword (0x64<<8) |(1<<HFlag) |(1<<CFlag)\r
1761 .hword (0x65<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1762 .hword (0x60<<8) |(1<<VFlag) |(1<<CFlag)\r
1763 .hword (0x61<<8) |(1<<CFlag)\r
1764 .hword (0x62<<8) |(1<<CFlag)\r
1765 .hword (0x63<<8) |(1<<VFlag) |(1<<CFlag)\r
1766 .hword (0x64<<8) |(1<<CFlag)\r
1767 .hword (0x65<<8) |(1<<VFlag) |(1<<CFlag)\r
1768 .hword (0x66<<8) |(1<<VFlag) |(1<<CFlag)\r
1769 .hword (0x67<<8) |(1<<CFlag)\r
1770 .hword (0x68<<8) |(1<<CFlag)\r
1771 .hword (0x69<<8) |(1<<VFlag) |(1<<CFlag)\r
1772 .hword (0x70<<8) |(1<<HFlag) |(1<<CFlag)\r
1773 .hword (0x71<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1774 .hword (0x72<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1775 .hword (0x73<<8) |(1<<HFlag) |(1<<CFlag)\r
1776 .hword (0x74<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1777 .hword (0x75<<8) |(1<<HFlag) |(1<<CFlag)\r
1778 .hword (0x70<<8) |(1<<CFlag)\r
1779 .hword (0x71<<8) |(1<<VFlag) |(1<<CFlag)\r
1780 .hword (0x72<<8) |(1<<VFlag) |(1<<CFlag)\r
1781 .hword (0x73<<8) |(1<<CFlag)\r
1782 .hword (0x74<<8) |(1<<VFlag) |(1<<CFlag)\r
1783 .hword (0x75<<8) |(1<<CFlag)\r
1784 .hword (0x76<<8) |(1<<CFlag)\r
1785 .hword (0x77<<8) |(1<<VFlag) |(1<<CFlag)\r
1786 .hword (0x78<<8) |(1<<VFlag) |(1<<CFlag)\r
1787 .hword (0x79<<8) |(1<<CFlag)\r
1788 .hword (0x80<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
1789 .hword (0x81<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1790 .hword (0x82<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1791 .hword (0x83<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
1792 .hword (0x84<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1793 .hword (0x85<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
1794 .hword (0x80<<8)|(1<<SFlag) |(1<<CFlag)\r
1795 .hword (0x81<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
1796 .hword (0x82<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
1797 .hword (0x83<<8)|(1<<SFlag) |(1<<CFlag)\r
1798 .hword (0x84<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
1799 .hword (0x85<<8)|(1<<SFlag) |(1<<CFlag)\r
1800 .hword (0x86<<8)|(1<<SFlag) |(1<<CFlag)\r
1801 .hword (0x87<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
1802 .hword (0x88<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
1803 .hword (0x89<<8)|(1<<SFlag) |(1<<CFlag)\r
1804 .hword (0x90<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1805 .hword (0x91<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
1806 .hword (0x92<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
1807 .hword (0x93<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1808 .hword (0x94<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
1809 .hword (0x95<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1810 .hword (0x90<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
1811 .hword (0x91<<8)|(1<<SFlag) |(1<<CFlag)\r
1812 .hword (0x92<<8)|(1<<SFlag) |(1<<CFlag)\r
1813 .hword (0x93<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
1814 .hword (0x94<<8)|(1<<SFlag) |(1<<CFlag)\r
1815 .hword (0x95<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
1816 .hword (0x96<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
1817 .hword (0x97<<8)|(1<<SFlag) |(1<<CFlag)\r
1818 .hword (0x98<<8)|(1<<SFlag) |(1<<CFlag)\r
1819 .hword (0x99<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
1820 .hword (0xA0<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1821 .hword (0xA1<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
1822 .hword (0xA2<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
1823 .hword (0xA3<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1824 .hword (0xA4<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
1825 .hword (0xA5<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1826 .hword (0xA0<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
1827 .hword (0xA1<<8)|(1<<SFlag) |(1<<CFlag)\r
1828 .hword (0xA2<<8)|(1<<SFlag) |(1<<CFlag)\r
1829 .hword (0xA3<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
1830 .hword (0xA4<<8)|(1<<SFlag) |(1<<CFlag)\r
1831 .hword (0xA5<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
1832 .hword (0xA6<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
1833 .hword (0xA7<<8)|(1<<SFlag) |(1<<CFlag)\r
1834 .hword (0xA8<<8)|(1<<SFlag) |(1<<CFlag)\r
1835 .hword (0xA9<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
1836 .hword (0xB0<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
1837 .hword (0xB1<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1838 .hword (0xB2<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1839 .hword (0xB3<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
1840 .hword (0xB4<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1841 .hword (0xB5<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
1842 .hword (0xB0<<8)|(1<<SFlag) |(1<<CFlag)\r
1843 .hword (0xB1<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
1844 .hword (0xB2<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
1845 .hword (0xB3<<8)|(1<<SFlag) |(1<<CFlag)\r
1846 .hword (0xB4<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
1847 .hword (0xB5<<8)|(1<<SFlag) |(1<<CFlag)\r
1848 .hword (0xB6<<8)|(1<<SFlag) |(1<<CFlag)\r
1849 .hword (0xB7<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
1850 .hword (0xB8<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
1851 .hword (0xB9<<8)|(1<<SFlag) |(1<<CFlag)\r
1852 .hword (0xC0<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1853 .hword (0xC1<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
1854 .hword (0xC2<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
1855 .hword (0xC3<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1856 .hword (0xC4<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
1857 .hword (0xC5<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1858 .hword (0xC0<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
1859 .hword (0xC1<<8)|(1<<SFlag) |(1<<CFlag)\r
1860 .hword (0xC2<<8)|(1<<SFlag) |(1<<CFlag)\r
1861 .hword (0xC3<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
1862 .hword (0xC4<<8)|(1<<SFlag) |(1<<CFlag)\r
1863 .hword (0xC5<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
1864 .hword (0xC6<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
1865 .hword (0xC7<<8)|(1<<SFlag) |(1<<CFlag)\r
1866 .hword (0xC8<<8)|(1<<SFlag) |(1<<CFlag)\r
1867 .hword (0xC9<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
1868 .hword (0xD0<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
1869 .hword (0xD1<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1870 .hword (0xD2<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1871 .hword (0xD3<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
1872 .hword (0xD4<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1873 .hword (0xD5<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
1874 .hword (0xD0<<8)|(1<<SFlag) |(1<<CFlag)\r
1875 .hword (0xD1<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
1876 .hword (0xD2<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
1877 .hword (0xD3<<8)|(1<<SFlag) |(1<<CFlag)\r
1878 .hword (0xD4<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
1879 .hword (0xD5<<8)|(1<<SFlag) |(1<<CFlag)\r
1880 .hword (0xD6<<8)|(1<<SFlag) |(1<<CFlag)\r
1881 .hword (0xD7<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
1882 .hword (0xD8<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
1883 .hword (0xD9<<8)|(1<<SFlag) |(1<<CFlag)\r
1884 .hword (0xE0<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
1885 .hword (0xE1<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1886 .hword (0xE2<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1887 .hword (0xE3<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
1888 .hword (0xE4<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1889 .hword (0xE5<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
1890 .hword (0xE0<<8)|(1<<SFlag) |(1<<CFlag)\r
1891 .hword (0xE1<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
1892 .hword (0xE2<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
1893 .hword (0xE3<<8)|(1<<SFlag) |(1<<CFlag)\r
1894 .hword (0xE4<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
1895 .hword (0xE5<<8)|(1<<SFlag) |(1<<CFlag)\r
1896 .hword (0xE6<<8)|(1<<SFlag) |(1<<CFlag)\r
1897 .hword (0xE7<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
1898 .hword (0xE8<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
1899 .hword (0xE9<<8)|(1<<SFlag) |(1<<CFlag)\r
1900 .hword (0xF0<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1901 .hword (0xF1<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
1902 .hword (0xF2<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
1903 .hword (0xF3<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1904 .hword (0xF4<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
1905 .hword (0xF5<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1906 .hword (0xF0<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
1907 .hword (0xF1<<8)|(1<<SFlag) |(1<<CFlag)\r
1908 .hword (0xF2<<8)|(1<<SFlag) |(1<<CFlag)\r
1909 .hword (0xF3<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
1910 .hword (0xF4<<8)|(1<<SFlag) |(1<<CFlag)\r
1911 .hword (0xF5<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
1912 .hword (0xF6<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
1913 .hword (0xF7<<8)|(1<<SFlag) |(1<<CFlag)\r
1914 .hword (0xF8<<8)|(1<<SFlag) |(1<<CFlag)\r
1915 .hword (0xF9<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
1916 .hword (0x00<<8) |(1<<ZFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1917 .hword (0x01<<8) |(1<<HFlag) |(1<<CFlag)\r
1918 .hword (0x02<<8) |(1<<HFlag) |(1<<CFlag)\r
1919 .hword (0x03<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1920 .hword (0x04<<8) |(1<<HFlag) |(1<<CFlag)\r
1921 .hword (0x05<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1922 .hword (0x00<<8) |(1<<ZFlag) |(1<<VFlag) |(1<<CFlag)\r
1923 .hword (0x01<<8) |(1<<CFlag)\r
1924 .hword (0x02<<8) |(1<<CFlag)\r
1925 .hword (0x03<<8) |(1<<VFlag) |(1<<CFlag)\r
1926 .hword (0x04<<8) |(1<<CFlag)\r
1927 .hword (0x05<<8) |(1<<VFlag) |(1<<CFlag)\r
1928 .hword (0x06<<8) |(1<<VFlag) |(1<<CFlag)\r
1929 .hword (0x07<<8) |(1<<CFlag)\r
1930 .hword (0x08<<8) |(1<<CFlag)\r
1931 .hword (0x09<<8) |(1<<VFlag) |(1<<CFlag)\r
1932 .hword (0x10<<8) |(1<<HFlag) |(1<<CFlag)\r
1933 .hword (0x11<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1934 .hword (0x12<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1935 .hword (0x13<<8) |(1<<HFlag) |(1<<CFlag)\r
1936 .hword (0x14<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1937 .hword (0x15<<8) |(1<<HFlag) |(1<<CFlag)\r
1938 .hword (0x10<<8) |(1<<CFlag)\r
1939 .hword (0x11<<8) |(1<<VFlag) |(1<<CFlag)\r
1940 .hword (0x12<<8) |(1<<VFlag) |(1<<CFlag)\r
1941 .hword (0x13<<8) |(1<<CFlag)\r
1942 .hword (0x14<<8) |(1<<VFlag) |(1<<CFlag)\r
1943 .hword (0x15<<8) |(1<<CFlag)\r
1944 .hword (0x16<<8) |(1<<CFlag)\r
1945 .hword (0x17<<8) |(1<<VFlag) |(1<<CFlag)\r
1946 .hword (0x18<<8) |(1<<VFlag) |(1<<CFlag)\r
1947 .hword (0x19<<8) |(1<<CFlag)\r
1948 .hword (0x20<<8) |(1<<HFlag) |(1<<CFlag)\r
1949 .hword (0x21<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1950 .hword (0x22<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1951 .hword (0x23<<8) |(1<<HFlag) |(1<<CFlag)\r
1952 .hword (0x24<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1953 .hword (0x25<<8) |(1<<HFlag) |(1<<CFlag)\r
1954 .hword (0x20<<8) |(1<<CFlag)\r
1955 .hword (0x21<<8) |(1<<VFlag) |(1<<CFlag)\r
1956 .hword (0x22<<8) |(1<<VFlag) |(1<<CFlag)\r
1957 .hword (0x23<<8) |(1<<CFlag)\r
1958 .hword (0x24<<8) |(1<<VFlag) |(1<<CFlag)\r
1959 .hword (0x25<<8) |(1<<CFlag)\r
1960 .hword (0x26<<8) |(1<<CFlag)\r
1961 .hword (0x27<<8) |(1<<VFlag) |(1<<CFlag)\r
1962 .hword (0x28<<8) |(1<<VFlag) |(1<<CFlag)\r
1963 .hword (0x29<<8) |(1<<CFlag)\r
1964 .hword (0x30<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1965 .hword (0x31<<8) |(1<<HFlag) |(1<<CFlag)\r
1966 .hword (0x32<<8) |(1<<HFlag) |(1<<CFlag)\r
1967 .hword (0x33<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1968 .hword (0x34<<8) |(1<<HFlag) |(1<<CFlag)\r
1969 .hword (0x35<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1970 .hword (0x30<<8) |(1<<VFlag) |(1<<CFlag)\r
1971 .hword (0x31<<8) |(1<<CFlag)\r
1972 .hword (0x32<<8) |(1<<CFlag)\r
1973 .hword (0x33<<8) |(1<<VFlag) |(1<<CFlag)\r
1974 .hword (0x34<<8) |(1<<CFlag)\r
1975 .hword (0x35<<8) |(1<<VFlag) |(1<<CFlag)\r
1976 .hword (0x36<<8) |(1<<VFlag) |(1<<CFlag)\r
1977 .hword (0x37<<8) |(1<<CFlag)\r
1978 .hword (0x38<<8) |(1<<CFlag)\r
1979 .hword (0x39<<8) |(1<<VFlag) |(1<<CFlag)\r
1980 .hword (0x40<<8) |(1<<HFlag) |(1<<CFlag)\r
1981 .hword (0x41<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1982 .hword (0x42<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1983 .hword (0x43<<8) |(1<<HFlag) |(1<<CFlag)\r
1984 .hword (0x44<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1985 .hword (0x45<<8) |(1<<HFlag) |(1<<CFlag)\r
1986 .hword (0x40<<8) |(1<<CFlag)\r
1987 .hword (0x41<<8) |(1<<VFlag) |(1<<CFlag)\r
1988 .hword (0x42<<8) |(1<<VFlag) |(1<<CFlag)\r
1989 .hword (0x43<<8) |(1<<CFlag)\r
1990 .hword (0x44<<8) |(1<<VFlag) |(1<<CFlag)\r
1991 .hword (0x45<<8) |(1<<CFlag)\r
1992 .hword (0x46<<8) |(1<<CFlag)\r
1993 .hword (0x47<<8) |(1<<VFlag) |(1<<CFlag)\r
1994 .hword (0x48<<8) |(1<<VFlag) |(1<<CFlag)\r
1995 .hword (0x49<<8) |(1<<CFlag)\r
1996 .hword (0x50<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1997 .hword (0x51<<8) |(1<<HFlag) |(1<<CFlag)\r
1998 .hword (0x52<<8) |(1<<HFlag) |(1<<CFlag)\r
1999 .hword (0x53<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2000 .hword (0x54<<8) |(1<<HFlag) |(1<<CFlag)\r
2001 .hword (0x55<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2002 .hword (0x50<<8) |(1<<VFlag) |(1<<CFlag)\r
2003 .hword (0x51<<8) |(1<<CFlag)\r
2004 .hword (0x52<<8) |(1<<CFlag)\r
2005 .hword (0x53<<8) |(1<<VFlag) |(1<<CFlag)\r
2006 .hword (0x54<<8) |(1<<CFlag)\r
2007 .hword (0x55<<8) |(1<<VFlag) |(1<<CFlag)\r
2008 .hword (0x56<<8) |(1<<VFlag) |(1<<CFlag)\r
2009 .hword (0x57<<8) |(1<<CFlag)\r
2010 .hword (0x58<<8) |(1<<CFlag)\r
2011 .hword (0x59<<8) |(1<<VFlag) |(1<<CFlag)\r
2012 .hword (0x60<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2013 .hword (0x61<<8) |(1<<HFlag) |(1<<CFlag)\r
2014 .hword (0x62<<8) |(1<<HFlag) |(1<<CFlag)\r
2015 .hword (0x63<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2016 .hword (0x64<<8) |(1<<HFlag) |(1<<CFlag)\r
2017 .hword (0x65<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2018 .hword (0x06<<8) |(1<<VFlag)\r
2019 .hword (0x07<<8) \r
2020 .hword (0x08<<8) \r
2021 .hword (0x09<<8) |(1<<VFlag)\r
2022 .hword (0x0A<<8) |(1<<VFlag)\r
2023 .hword (0x0B<<8) \r
2024 .hword (0x0C<<8) |(1<<VFlag)\r
2025 .hword (0x0D<<8) \r
2026 .hword (0x0E<<8) \r
2027 .hword (0x0F<<8) |(1<<VFlag)\r
2028 .hword (0x10<<8) |(1<<HFlag) \r
2029 .hword (0x11<<8) |(1<<HFlag) |(1<<VFlag)\r
2030 .hword (0x12<<8) |(1<<HFlag) |(1<<VFlag)\r
2031 .hword (0x13<<8) |(1<<HFlag) \r
2032 .hword (0x14<<8) |(1<<HFlag) |(1<<VFlag)\r
2033 .hword (0x15<<8) |(1<<HFlag) \r
2034 .hword (0x16<<8) \r
2035 .hword (0x17<<8) |(1<<VFlag)\r
2036 .hword (0x18<<8) |(1<<VFlag)\r
2037 .hword (0x19<<8) \r
2038 .hword (0x1A<<8) \r
2039 .hword (0x1B<<8) |(1<<VFlag)\r
2040 .hword (0x1C<<8) \r
2041 .hword (0x1D<<8) |(1<<VFlag)\r
2042 .hword (0x1E<<8) |(1<<VFlag)\r
2043 .hword (0x1F<<8) \r
2044 .hword (0x20<<8) |(1<<HFlag) \r
2045 .hword (0x21<<8) |(1<<HFlag) |(1<<VFlag)\r
2046 .hword (0x22<<8) |(1<<HFlag) |(1<<VFlag)\r
2047 .hword (0x23<<8) |(1<<HFlag) \r
2048 .hword (0x24<<8) |(1<<HFlag) |(1<<VFlag)\r
2049 .hword (0x25<<8) |(1<<HFlag) \r
2050 .hword (0x26<<8) \r
2051 .hword (0x27<<8) |(1<<VFlag)\r
2052 .hword (0x28<<8) |(1<<VFlag)\r
2053 .hword (0x29<<8) \r
2054 .hword (0x2A<<8) \r
2055 .hword (0x2B<<8) |(1<<VFlag)\r
2056 .hword (0x2C<<8) \r
2057 .hword (0x2D<<8) |(1<<VFlag)\r
2058 .hword (0x2E<<8) |(1<<VFlag)\r
2059 .hword (0x2F<<8) \r
2060 .hword (0x30<<8) |(1<<HFlag) |(1<<VFlag)\r
2061 .hword (0x31<<8) |(1<<HFlag) \r
2062 .hword (0x32<<8) |(1<<HFlag) \r
2063 .hword (0x33<<8) |(1<<HFlag) |(1<<VFlag)\r
2064 .hword (0x34<<8) |(1<<HFlag) \r
2065 .hword (0x35<<8) |(1<<HFlag) |(1<<VFlag)\r
2066 .hword (0x36<<8) |(1<<VFlag)\r
2067 .hword (0x37<<8) \r
2068 .hword (0x38<<8) \r
2069 .hword (0x39<<8) |(1<<VFlag)\r
2070 .hword (0x3A<<8) |(1<<VFlag)\r
2071 .hword (0x3B<<8) \r
2072 .hword (0x3C<<8) |(1<<VFlag)\r
2073 .hword (0x3D<<8) \r
2074 .hword (0x3E<<8) \r
2075 .hword (0x3F<<8) |(1<<VFlag)\r
2076 .hword (0x40<<8) |(1<<HFlag) \r
2077 .hword (0x41<<8) |(1<<HFlag) |(1<<VFlag)\r
2078 .hword (0x42<<8) |(1<<HFlag) |(1<<VFlag)\r
2079 .hword (0x43<<8) |(1<<HFlag) \r
2080 .hword (0x44<<8) |(1<<HFlag) |(1<<VFlag)\r
2081 .hword (0x45<<8) |(1<<HFlag) \r
2082 .hword (0x46<<8) \r
2083 .hword (0x47<<8) |(1<<VFlag)\r
2084 .hword (0x48<<8) |(1<<VFlag)\r
2085 .hword (0x49<<8) \r
2086 .hword (0x4A<<8) \r
2087 .hword (0x4B<<8) |(1<<VFlag)\r
2088 .hword (0x4C<<8) \r
2089 .hword (0x4D<<8) |(1<<VFlag)\r
2090 .hword (0x4E<<8) |(1<<VFlag)\r
2091 .hword (0x4F<<8) \r
2092 .hword (0x50<<8) |(1<<HFlag) |(1<<VFlag)\r
2093 .hword (0x51<<8) |(1<<HFlag) \r
2094 .hword (0x52<<8) |(1<<HFlag) \r
2095 .hword (0x53<<8) |(1<<HFlag) |(1<<VFlag)\r
2096 .hword (0x54<<8) |(1<<HFlag) \r
2097 .hword (0x55<<8) |(1<<HFlag) |(1<<VFlag)\r
2098 .hword (0x56<<8) |(1<<VFlag)\r
2099 .hword (0x57<<8) \r
2100 .hword (0x58<<8) \r
2101 .hword (0x59<<8) |(1<<VFlag)\r
2102 .hword (0x5A<<8) |(1<<VFlag)\r
2103 .hword (0x5B<<8) \r
2104 .hword (0x5C<<8) |(1<<VFlag)\r
2105 .hword (0x5D<<8) \r
2106 .hword (0x5E<<8) \r
2107 .hword (0x5F<<8) |(1<<VFlag)\r
2108 .hword (0x60<<8) |(1<<HFlag) |(1<<VFlag)\r
2109 .hword (0x61<<8) |(1<<HFlag) \r
2110 .hword (0x62<<8) |(1<<HFlag) \r
2111 .hword (0x63<<8) |(1<<HFlag) |(1<<VFlag)\r
2112 .hword (0x64<<8) |(1<<HFlag) \r
2113 .hword (0x65<<8) |(1<<HFlag) |(1<<VFlag)\r
2114 .hword (0x66<<8) |(1<<VFlag)\r
2115 .hword (0x67<<8) \r
2116 .hword (0x68<<8) \r
2117 .hword (0x69<<8) |(1<<VFlag)\r
2118 .hword (0x6A<<8) |(1<<VFlag)\r
2119 .hword (0x6B<<8) \r
2120 .hword (0x6C<<8) |(1<<VFlag)\r
2121 .hword (0x6D<<8) \r
2122 .hword (0x6E<<8) \r
2123 .hword (0x6F<<8) |(1<<VFlag)\r
2124 .hword (0x70<<8) |(1<<HFlag) \r
2125 .hword (0x71<<8) |(1<<HFlag) |(1<<VFlag)\r
2126 .hword (0x72<<8) |(1<<HFlag) |(1<<VFlag)\r
2127 .hword (0x73<<8) |(1<<HFlag) \r
2128 .hword (0x74<<8) |(1<<HFlag) |(1<<VFlag)\r
2129 .hword (0x75<<8) |(1<<HFlag) \r
2130 .hword (0x76<<8) \r
2131 .hword (0x77<<8) |(1<<VFlag)\r
2132 .hword (0x78<<8) |(1<<VFlag)\r
2133 .hword (0x79<<8) \r
2134 .hword (0x7A<<8) \r
2135 .hword (0x7B<<8) |(1<<VFlag)\r
2136 .hword (0x7C<<8) \r
2137 .hword (0x7D<<8) |(1<<VFlag)\r
2138 .hword (0x7E<<8) |(1<<VFlag)\r
2139 .hword (0x7F<<8) \r
2140 .hword (0x80<<8)|(1<<SFlag) |(1<<HFlag) \r
2141 .hword (0x81<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag)\r
2142 .hword (0x82<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag)\r
2143 .hword (0x83<<8)|(1<<SFlag) |(1<<HFlag) \r
2144 .hword (0x84<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag)\r
2145 .hword (0x85<<8)|(1<<SFlag) |(1<<HFlag) \r
2146 .hword (0x86<<8)|(1<<SFlag) \r
2147 .hword (0x87<<8)|(1<<SFlag) |(1<<VFlag)\r
2148 .hword (0x88<<8)|(1<<SFlag) |(1<<VFlag)\r
2149 .hword (0x89<<8)|(1<<SFlag) \r
2150 .hword (0x8A<<8)|(1<<SFlag) \r
2151 .hword (0x8B<<8)|(1<<SFlag) |(1<<VFlag)\r
2152 .hword (0x8C<<8)|(1<<SFlag) \r
2153 .hword (0x8D<<8)|(1<<SFlag) |(1<<VFlag)\r
2154 .hword (0x8E<<8)|(1<<SFlag) |(1<<VFlag)\r
2155 .hword (0x8F<<8)|(1<<SFlag) \r
2156 .hword (0x90<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag)\r
2157 .hword (0x91<<8)|(1<<SFlag) |(1<<HFlag) \r
2158 .hword (0x92<<8)|(1<<SFlag) |(1<<HFlag) \r
2159 .hword (0x93<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag)\r
2160 .hword (0x94<<8)|(1<<SFlag) |(1<<HFlag) \r
2161 .hword (0x95<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag)\r
2162 .hword (0x96<<8)|(1<<SFlag) |(1<<VFlag)\r
2163 .hword (0x97<<8)|(1<<SFlag) \r
2164 .hword (0x98<<8)|(1<<SFlag) \r
2165 .hword (0x99<<8)|(1<<SFlag) |(1<<VFlag)\r
2166 .hword (0x9A<<8)|(1<<SFlag) |(1<<VFlag)\r
2167 .hword (0x9B<<8)|(1<<SFlag) \r
2168 .hword (0x9C<<8)|(1<<SFlag) |(1<<VFlag)\r
2169 .hword (0x9D<<8)|(1<<SFlag) \r
2170 .hword (0x9E<<8)|(1<<SFlag) \r
2171 .hword (0x9F<<8)|(1<<SFlag) |(1<<VFlag)\r
2172 .hword (0x00<<8) |(1<<ZFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2173 .hword (0x01<<8) |(1<<HFlag) |(1<<CFlag)\r
2174 .hword (0x02<<8) |(1<<HFlag) |(1<<CFlag)\r
2175 .hword (0x03<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2176 .hword (0x04<<8) |(1<<HFlag) |(1<<CFlag)\r
2177 .hword (0x05<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2178 .hword (0x06<<8) |(1<<VFlag) |(1<<CFlag)\r
2179 .hword (0x07<<8) |(1<<CFlag)\r
2180 .hword (0x08<<8) |(1<<CFlag)\r
2181 .hword (0x09<<8) |(1<<VFlag) |(1<<CFlag)\r
2182 .hword (0x0A<<8) |(1<<VFlag) |(1<<CFlag)\r
2183 .hword (0x0B<<8) |(1<<CFlag)\r
2184 .hword (0x0C<<8) |(1<<VFlag) |(1<<CFlag)\r
2185 .hword (0x0D<<8) |(1<<CFlag)\r
2186 .hword (0x0E<<8) |(1<<CFlag)\r
2187 .hword (0x0F<<8) |(1<<VFlag) |(1<<CFlag)\r
2188 .hword (0x10<<8) |(1<<HFlag) |(1<<CFlag)\r
2189 .hword (0x11<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2190 .hword (0x12<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2191 .hword (0x13<<8) |(1<<HFlag) |(1<<CFlag)\r
2192 .hword (0x14<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2193 .hword (0x15<<8) |(1<<HFlag) |(1<<CFlag)\r
2194 .hword (0x16<<8) |(1<<CFlag)\r
2195 .hword (0x17<<8) |(1<<VFlag) |(1<<CFlag)\r
2196 .hword (0x18<<8) |(1<<VFlag) |(1<<CFlag)\r
2197 .hword (0x19<<8) |(1<<CFlag)\r
2198 .hword (0x1A<<8) |(1<<CFlag)\r
2199 .hword (0x1B<<8) |(1<<VFlag) |(1<<CFlag)\r
2200 .hword (0x1C<<8) |(1<<CFlag)\r
2201 .hword (0x1D<<8) |(1<<VFlag) |(1<<CFlag)\r
2202 .hword (0x1E<<8) |(1<<VFlag) |(1<<CFlag)\r
2203 .hword (0x1F<<8) |(1<<CFlag)\r
2204 .hword (0x20<<8) |(1<<HFlag) |(1<<CFlag)\r
2205 .hword (0x21<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2206 .hword (0x22<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2207 .hword (0x23<<8) |(1<<HFlag) |(1<<CFlag)\r
2208 .hword (0x24<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2209 .hword (0x25<<8) |(1<<HFlag) |(1<<CFlag)\r
2210 .hword (0x26<<8) |(1<<CFlag)\r
2211 .hword (0x27<<8) |(1<<VFlag) |(1<<CFlag)\r
2212 .hword (0x28<<8) |(1<<VFlag) |(1<<CFlag)\r
2213 .hword (0x29<<8) |(1<<CFlag)\r
2214 .hword (0x2A<<8) |(1<<CFlag)\r
2215 .hword (0x2B<<8) |(1<<VFlag) |(1<<CFlag)\r
2216 .hword (0x2C<<8) |(1<<CFlag)\r
2217 .hword (0x2D<<8) |(1<<VFlag) |(1<<CFlag)\r
2218 .hword (0x2E<<8) |(1<<VFlag) |(1<<CFlag)\r
2219 .hword (0x2F<<8) |(1<<CFlag)\r
2220 .hword (0x30<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2221 .hword (0x31<<8) |(1<<HFlag) |(1<<CFlag)\r
2222 .hword (0x32<<8) |(1<<HFlag) |(1<<CFlag)\r
2223 .hword (0x33<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2224 .hword (0x34<<8) |(1<<HFlag) |(1<<CFlag)\r
2225 .hword (0x35<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2226 .hword (0x36<<8) |(1<<VFlag) |(1<<CFlag)\r
2227 .hword (0x37<<8) |(1<<CFlag)\r
2228 .hword (0x38<<8) |(1<<CFlag)\r
2229 .hword (0x39<<8) |(1<<VFlag) |(1<<CFlag)\r
2230 .hword (0x3A<<8) |(1<<VFlag) |(1<<CFlag)\r
2231 .hword (0x3B<<8) |(1<<CFlag)\r
2232 .hword (0x3C<<8) |(1<<VFlag) |(1<<CFlag)\r
2233 .hword (0x3D<<8) |(1<<CFlag)\r
2234 .hword (0x3E<<8) |(1<<CFlag)\r
2235 .hword (0x3F<<8) |(1<<VFlag) |(1<<CFlag)\r
2236 .hword (0x40<<8) |(1<<HFlag) |(1<<CFlag)\r
2237 .hword (0x41<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2238 .hword (0x42<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2239 .hword (0x43<<8) |(1<<HFlag) |(1<<CFlag)\r
2240 .hword (0x44<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2241 .hword (0x45<<8) |(1<<HFlag) |(1<<CFlag)\r
2242 .hword (0x46<<8) |(1<<CFlag)\r
2243 .hword (0x47<<8) |(1<<VFlag) |(1<<CFlag)\r
2244 .hword (0x48<<8) |(1<<VFlag) |(1<<CFlag)\r
2245 .hword (0x49<<8) |(1<<CFlag)\r
2246 .hword (0x4A<<8) |(1<<CFlag)\r
2247 .hword (0x4B<<8) |(1<<VFlag) |(1<<CFlag)\r
2248 .hword (0x4C<<8) |(1<<CFlag)\r
2249 .hword (0x4D<<8) |(1<<VFlag) |(1<<CFlag)\r
2250 .hword (0x4E<<8) |(1<<VFlag) |(1<<CFlag)\r
2251 .hword (0x4F<<8) |(1<<CFlag)\r
2252 .hword (0x50<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2253 .hword (0x51<<8) |(1<<HFlag) |(1<<CFlag)\r
2254 .hword (0x52<<8) |(1<<HFlag) |(1<<CFlag)\r
2255 .hword (0x53<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2256 .hword (0x54<<8) |(1<<HFlag) |(1<<CFlag)\r
2257 .hword (0x55<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2258 .hword (0x56<<8) |(1<<VFlag) |(1<<CFlag)\r
2259 .hword (0x57<<8) |(1<<CFlag)\r
2260 .hword (0x58<<8) |(1<<CFlag)\r
2261 .hword (0x59<<8) |(1<<VFlag) |(1<<CFlag)\r
2262 .hword (0x5A<<8) |(1<<VFlag) |(1<<CFlag)\r
2263 .hword (0x5B<<8) |(1<<CFlag)\r
2264 .hword (0x5C<<8) |(1<<VFlag) |(1<<CFlag)\r
2265 .hword (0x5D<<8) |(1<<CFlag)\r
2266 .hword (0x5E<<8) |(1<<CFlag)\r
2267 .hword (0x5F<<8) |(1<<VFlag) |(1<<CFlag)\r
2268 .hword (0x60<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2269 .hword (0x61<<8) |(1<<HFlag) |(1<<CFlag)\r
2270 .hword (0x62<<8) |(1<<HFlag) |(1<<CFlag)\r
2271 .hword (0x63<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2272 .hword (0x64<<8) |(1<<HFlag) |(1<<CFlag)\r
2273 .hword (0x65<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2274 .hword (0x66<<8) |(1<<VFlag) |(1<<CFlag)\r
2275 .hword (0x67<<8) |(1<<CFlag)\r
2276 .hword (0x68<<8) |(1<<CFlag)\r
2277 .hword (0x69<<8) |(1<<VFlag) |(1<<CFlag)\r
2278 .hword (0x6A<<8) |(1<<VFlag) |(1<<CFlag)\r
2279 .hword (0x6B<<8) |(1<<CFlag)\r
2280 .hword (0x6C<<8) |(1<<VFlag) |(1<<CFlag)\r
2281 .hword (0x6D<<8) |(1<<CFlag)\r
2282 .hword (0x6E<<8) |(1<<CFlag)\r
2283 .hword (0x6F<<8) |(1<<VFlag) |(1<<CFlag)\r
2284 .hword (0x70<<8) |(1<<HFlag) |(1<<CFlag)\r
2285 .hword (0x71<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2286 .hword (0x72<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2287 .hword (0x73<<8) |(1<<HFlag) |(1<<CFlag)\r
2288 .hword (0x74<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2289 .hword (0x75<<8) |(1<<HFlag) |(1<<CFlag)\r
2290 .hword (0x76<<8) |(1<<CFlag)\r
2291 .hword (0x77<<8) |(1<<VFlag) |(1<<CFlag)\r
2292 .hword (0x78<<8) |(1<<VFlag) |(1<<CFlag)\r
2293 .hword (0x79<<8) |(1<<CFlag)\r
2294 .hword (0x7A<<8) |(1<<CFlag)\r
2295 .hword (0x7B<<8) |(1<<VFlag) |(1<<CFlag)\r
2296 .hword (0x7C<<8) |(1<<CFlag)\r
2297 .hword (0x7D<<8) |(1<<VFlag) |(1<<CFlag)\r
2298 .hword (0x7E<<8) |(1<<VFlag) |(1<<CFlag)\r
2299 .hword (0x7F<<8) |(1<<CFlag)\r
2300 .hword (0x80<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
2301 .hword (0x81<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2302 .hword (0x82<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2303 .hword (0x83<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
2304 .hword (0x84<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2305 .hword (0x85<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
2306 .hword (0x86<<8)|(1<<SFlag) |(1<<CFlag)\r
2307 .hword (0x87<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
2308 .hword (0x88<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
2309 .hword (0x89<<8)|(1<<SFlag) |(1<<CFlag)\r
2310 .hword (0x8A<<8)|(1<<SFlag) |(1<<CFlag)\r
2311 .hword (0x8B<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
2312 .hword (0x8C<<8)|(1<<SFlag) |(1<<CFlag)\r
2313 .hword (0x8D<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
2314 .hword (0x8E<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
2315 .hword (0x8F<<8)|(1<<SFlag) |(1<<CFlag)\r
2316 .hword (0x90<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2317 .hword (0x91<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
2318 .hword (0x92<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
2319 .hword (0x93<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2320 .hword (0x94<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
2321 .hword (0x95<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2322 .hword (0x96<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
2323 .hword (0x97<<8)|(1<<SFlag) |(1<<CFlag)\r
2324 .hword (0x98<<8)|(1<<SFlag) |(1<<CFlag)\r
2325 .hword (0x99<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
2326 .hword (0x9A<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
2327 .hword (0x9B<<8)|(1<<SFlag) |(1<<CFlag)\r
2328 .hword (0x9C<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
2329 .hword (0x9D<<8)|(1<<SFlag) |(1<<CFlag)\r
2330 .hword (0x9E<<8)|(1<<SFlag) |(1<<CFlag)\r
2331 .hword (0x9F<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
2332 .hword (0xA0<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2333 .hword (0xA1<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
2334 .hword (0xA2<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
2335 .hword (0xA3<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2336 .hword (0xA4<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
2337 .hword (0xA5<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2338 .hword (0xA6<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
2339 .hword (0xA7<<8)|(1<<SFlag) |(1<<CFlag)\r
2340 .hword (0xA8<<8)|(1<<SFlag) |(1<<CFlag)\r
2341 .hword (0xA9<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
2342 .hword (0xAA<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
2343 .hword (0xAB<<8)|(1<<SFlag) |(1<<CFlag)\r
2344 .hword (0xAC<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
2345 .hword (0xAD<<8)|(1<<SFlag) |(1<<CFlag)\r
2346 .hword (0xAE<<8)|(1<<SFlag) |(1<<CFlag)\r
2347 .hword (0xAF<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
2348 .hword (0xB0<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
2349 .hword (0xB1<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2350 .hword (0xB2<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2351 .hword (0xB3<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
2352 .hword (0xB4<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2353 .hword (0xB5<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
2354 .hword (0xB6<<8)|(1<<SFlag) |(1<<CFlag)\r
2355 .hword (0xB7<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
2356 .hword (0xB8<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
2357 .hword (0xB9<<8)|(1<<SFlag) |(1<<CFlag)\r
2358 .hword (0xBA<<8)|(1<<SFlag) |(1<<CFlag)\r
2359 .hword (0xBB<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
2360 .hword (0xBC<<8)|(1<<SFlag) |(1<<CFlag)\r
2361 .hword (0xBD<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
2362 .hword (0xBE<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
2363 .hword (0xBF<<8)|(1<<SFlag) |(1<<CFlag)\r
2364 .hword (0xC0<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2365 .hword (0xC1<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
2366 .hword (0xC2<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
2367 .hword (0xC3<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2368 .hword (0xC4<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
2369 .hword (0xC5<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2370 .hword (0xC6<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
2371 .hword (0xC7<<8)|(1<<SFlag) |(1<<CFlag)\r
2372 .hword (0xC8<<8)|(1<<SFlag) |(1<<CFlag)\r
2373 .hword (0xC9<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
2374 .hword (0xCA<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
2375 .hword (0xCB<<8)|(1<<SFlag) |(1<<CFlag)\r
2376 .hword (0xCC<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
2377 .hword (0xCD<<8)|(1<<SFlag) |(1<<CFlag)\r
2378 .hword (0xCE<<8)|(1<<SFlag) |(1<<CFlag)\r
2379 .hword (0xCF<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
2380 .hword (0xD0<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
2381 .hword (0xD1<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2382 .hword (0xD2<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2383 .hword (0xD3<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
2384 .hword (0xD4<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2385 .hword (0xD5<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
2386 .hword (0xD6<<8)|(1<<SFlag) |(1<<CFlag)\r
2387 .hword (0xD7<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
2388 .hword (0xD8<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
2389 .hword (0xD9<<8)|(1<<SFlag) |(1<<CFlag)\r
2390 .hword (0xDA<<8)|(1<<SFlag) |(1<<CFlag)\r
2391 .hword (0xDB<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
2392 .hword (0xDC<<8)|(1<<SFlag) |(1<<CFlag)\r
2393 .hword (0xDD<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
2394 .hword (0xDE<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
2395 .hword (0xDF<<8)|(1<<SFlag) |(1<<CFlag)\r
2396 .hword (0xE0<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
2397 .hword (0xE1<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2398 .hword (0xE2<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2399 .hword (0xE3<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
2400 .hword (0xE4<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2401 .hword (0xE5<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
2402 .hword (0xE6<<8)|(1<<SFlag) |(1<<CFlag)\r
2403 .hword (0xE7<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
2404 .hword (0xE8<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
2405 .hword (0xE9<<8)|(1<<SFlag) |(1<<CFlag)\r
2406 .hword (0xEA<<8)|(1<<SFlag) |(1<<CFlag)\r
2407 .hword (0xEB<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
2408 .hword (0xEC<<8)|(1<<SFlag) |(1<<CFlag)\r
2409 .hword (0xED<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
2410 .hword (0xEE<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
2411 .hword (0xEF<<8)|(1<<SFlag) |(1<<CFlag)\r
2412 .hword (0xF0<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2413 .hword (0xF1<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
2414 .hword (0xF2<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
2415 .hword (0xF3<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2416 .hword (0xF4<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
2417 .hword (0xF5<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2418 .hword (0xF6<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
2419 .hword (0xF7<<8)|(1<<SFlag) |(1<<CFlag)\r
2420 .hword (0xF8<<8)|(1<<SFlag) |(1<<CFlag)\r
2421 .hword (0xF9<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
2422 .hword (0xFA<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
2423 .hword (0xFB<<8)|(1<<SFlag) |(1<<CFlag)\r
2424 .hword (0xFC<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
2425 .hword (0xFD<<8)|(1<<SFlag) |(1<<CFlag)\r
2426 .hword (0xFE<<8)|(1<<SFlag) |(1<<CFlag)\r
2427 .hword (0xFF<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
2428 .hword (0x00<<8) |(1<<ZFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2429 .hword (0x01<<8) |(1<<HFlag) |(1<<CFlag)\r
2430 .hword (0x02<<8) |(1<<HFlag) |(1<<CFlag)\r
2431 .hword (0x03<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2432 .hword (0x04<<8) |(1<<HFlag) |(1<<CFlag)\r
2433 .hword (0x05<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2434 .hword (0x06<<8) |(1<<VFlag) |(1<<CFlag)\r
2435 .hword (0x07<<8) |(1<<CFlag)\r
2436 .hword (0x08<<8) |(1<<CFlag)\r
2437 .hword (0x09<<8) |(1<<VFlag) |(1<<CFlag)\r
2438 .hword (0x0A<<8) |(1<<VFlag) |(1<<CFlag)\r
2439 .hword (0x0B<<8) |(1<<CFlag)\r
2440 .hword (0x0C<<8) |(1<<VFlag) |(1<<CFlag)\r
2441 .hword (0x0D<<8) |(1<<CFlag)\r
2442 .hword (0x0E<<8) |(1<<CFlag)\r
2443 .hword (0x0F<<8) |(1<<VFlag) |(1<<CFlag)\r
2444 .hword (0x10<<8) |(1<<HFlag) |(1<<CFlag)\r
2445 .hword (0x11<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2446 .hword (0x12<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2447 .hword (0x13<<8) |(1<<HFlag) |(1<<CFlag)\r
2448 .hword (0x14<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2449 .hword (0x15<<8) |(1<<HFlag) |(1<<CFlag)\r
2450 .hword (0x16<<8) |(1<<CFlag)\r
2451 .hword (0x17<<8) |(1<<VFlag) |(1<<CFlag)\r
2452 .hword (0x18<<8) |(1<<VFlag) |(1<<CFlag)\r
2453 .hword (0x19<<8) |(1<<CFlag)\r
2454 .hword (0x1A<<8) |(1<<CFlag)\r
2455 .hword (0x1B<<8) |(1<<VFlag) |(1<<CFlag)\r
2456 .hword (0x1C<<8) |(1<<CFlag)\r
2457 .hword (0x1D<<8) |(1<<VFlag) |(1<<CFlag)\r
2458 .hword (0x1E<<8) |(1<<VFlag) |(1<<CFlag)\r
2459 .hword (0x1F<<8) |(1<<CFlag)\r
2460 .hword (0x20<<8) |(1<<HFlag) |(1<<CFlag)\r
2461 .hword (0x21<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2462 .hword (0x22<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2463 .hword (0x23<<8) |(1<<HFlag) |(1<<CFlag)\r
2464 .hword (0x24<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2465 .hword (0x25<<8) |(1<<HFlag) |(1<<CFlag)\r
2466 .hword (0x26<<8) |(1<<CFlag)\r
2467 .hword (0x27<<8) |(1<<VFlag) |(1<<CFlag)\r
2468 .hword (0x28<<8) |(1<<VFlag) |(1<<CFlag)\r
2469 .hword (0x29<<8) |(1<<CFlag)\r
2470 .hword (0x2A<<8) |(1<<CFlag)\r
2471 .hword (0x2B<<8) |(1<<VFlag) |(1<<CFlag)\r
2472 .hword (0x2C<<8) |(1<<CFlag)\r
2473 .hword (0x2D<<8) |(1<<VFlag) |(1<<CFlag)\r
2474 .hword (0x2E<<8) |(1<<VFlag) |(1<<CFlag)\r
2475 .hword (0x2F<<8) |(1<<CFlag)\r
2476 .hword (0x30<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2477 .hword (0x31<<8) |(1<<HFlag) |(1<<CFlag)\r
2478 .hword (0x32<<8) |(1<<HFlag) |(1<<CFlag)\r
2479 .hword (0x33<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2480 .hword (0x34<<8) |(1<<HFlag) |(1<<CFlag)\r
2481 .hword (0x35<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2482 .hword (0x36<<8) |(1<<VFlag) |(1<<CFlag)\r
2483 .hword (0x37<<8) |(1<<CFlag)\r
2484 .hword (0x38<<8) |(1<<CFlag)\r
2485 .hword (0x39<<8) |(1<<VFlag) |(1<<CFlag)\r
2486 .hword (0x3A<<8) |(1<<VFlag) |(1<<CFlag)\r
2487 .hword (0x3B<<8) |(1<<CFlag)\r
2488 .hword (0x3C<<8) |(1<<VFlag) |(1<<CFlag)\r
2489 .hword (0x3D<<8) |(1<<CFlag)\r
2490 .hword (0x3E<<8) |(1<<CFlag)\r
2491 .hword (0x3F<<8) |(1<<VFlag) |(1<<CFlag)\r
2492 .hword (0x40<<8) |(1<<HFlag) |(1<<CFlag)\r
2493 .hword (0x41<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2494 .hword (0x42<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2495 .hword (0x43<<8) |(1<<HFlag) |(1<<CFlag)\r
2496 .hword (0x44<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2497 .hword (0x45<<8) |(1<<HFlag) |(1<<CFlag)\r
2498 .hword (0x46<<8) |(1<<CFlag)\r
2499 .hword (0x47<<8) |(1<<VFlag) |(1<<CFlag)\r
2500 .hword (0x48<<8) |(1<<VFlag) |(1<<CFlag)\r
2501 .hword (0x49<<8) |(1<<CFlag)\r
2502 .hword (0x4A<<8) |(1<<CFlag)\r
2503 .hword (0x4B<<8) |(1<<VFlag) |(1<<CFlag)\r
2504 .hword (0x4C<<8) |(1<<CFlag)\r
2505 .hword (0x4D<<8) |(1<<VFlag) |(1<<CFlag)\r
2506 .hword (0x4E<<8) |(1<<VFlag) |(1<<CFlag)\r
2507 .hword (0x4F<<8) |(1<<CFlag)\r
2508 .hword (0x50<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2509 .hword (0x51<<8) |(1<<HFlag) |(1<<CFlag)\r
2510 .hword (0x52<<8) |(1<<HFlag) |(1<<CFlag)\r
2511 .hword (0x53<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2512 .hword (0x54<<8) |(1<<HFlag) |(1<<CFlag)\r
2513 .hword (0x55<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2514 .hword (0x56<<8) |(1<<VFlag) |(1<<CFlag)\r
2515 .hword (0x57<<8) |(1<<CFlag)\r
2516 .hword (0x58<<8) |(1<<CFlag)\r
2517 .hword (0x59<<8) |(1<<VFlag) |(1<<CFlag)\r
2518 .hword (0x5A<<8) |(1<<VFlag) |(1<<CFlag)\r
2519 .hword (0x5B<<8) |(1<<CFlag)\r
2520 .hword (0x5C<<8) |(1<<VFlag) |(1<<CFlag)\r
2521 .hword (0x5D<<8) |(1<<CFlag)\r
2522 .hword (0x5E<<8) |(1<<CFlag)\r
2523 .hword (0x5F<<8) |(1<<VFlag) |(1<<CFlag)\r
2524 .hword (0x60<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2525 .hword (0x61<<8) |(1<<HFlag) |(1<<CFlag)\r
2526 .hword (0x62<<8) |(1<<HFlag) |(1<<CFlag)\r
2527 .hword (0x63<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2528 .hword (0x64<<8) |(1<<HFlag) |(1<<CFlag)\r
2529 .hword (0x65<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2530 .hword (0x00<<8) |(1<<ZFlag) |(1<<VFlag)|(1<<NFlag) \r
2531 .hword (0x01<<8) |(1<<NFlag) \r
2532 .hword (0x02<<8) |(1<<NFlag) \r
2533 .hword (0x03<<8) |(1<<VFlag)|(1<<NFlag) \r
2534 .hword (0x04<<8) |(1<<NFlag) \r
2535 .hword (0x05<<8) |(1<<VFlag)|(1<<NFlag) \r
2536 .hword (0x06<<8) |(1<<VFlag)|(1<<NFlag) \r
2537 .hword (0x07<<8) |(1<<NFlag) \r
2538 .hword (0x08<<8) |(1<<NFlag) \r
2539 .hword (0x09<<8) |(1<<VFlag)|(1<<NFlag) \r
2540 .hword (0x04<<8) |(1<<NFlag) \r
2541 .hword (0x05<<8) |(1<<VFlag)|(1<<NFlag) \r
2542 .hword (0x06<<8) |(1<<VFlag)|(1<<NFlag) \r
2543 .hword (0x07<<8) |(1<<NFlag) \r
2544 .hword (0x08<<8) |(1<<NFlag) \r
2545 .hword (0x09<<8) |(1<<VFlag)|(1<<NFlag) \r
2546 .hword (0x10<<8) |(1<<NFlag) \r
2547 .hword (0x11<<8) |(1<<VFlag)|(1<<NFlag) \r
2548 .hword (0x12<<8) |(1<<VFlag)|(1<<NFlag) \r
2549 .hword (0x13<<8) |(1<<NFlag) \r
2550 .hword (0x14<<8) |(1<<VFlag)|(1<<NFlag) \r
2551 .hword (0x15<<8) |(1<<NFlag) \r
2552 .hword (0x16<<8) |(1<<NFlag) \r
2553 .hword (0x17<<8) |(1<<VFlag)|(1<<NFlag) \r
2554 .hword (0x18<<8) |(1<<VFlag)|(1<<NFlag) \r
2555 .hword (0x19<<8) |(1<<NFlag) \r
2556 .hword (0x14<<8) |(1<<VFlag)|(1<<NFlag) \r
2557 .hword (0x15<<8) |(1<<NFlag) \r
2558 .hword (0x16<<8) |(1<<NFlag) \r
2559 .hword (0x17<<8) |(1<<VFlag)|(1<<NFlag) \r
2560 .hword (0x18<<8) |(1<<VFlag)|(1<<NFlag) \r
2561 .hword (0x19<<8) |(1<<NFlag) \r
2562 .hword (0x20<<8) |(1<<NFlag) \r
2563 .hword (0x21<<8) |(1<<VFlag)|(1<<NFlag) \r
2564 .hword (0x22<<8) |(1<<VFlag)|(1<<NFlag) \r
2565 .hword (0x23<<8) |(1<<NFlag) \r
2566 .hword (0x24<<8) |(1<<VFlag)|(1<<NFlag) \r
2567 .hword (0x25<<8) |(1<<NFlag) \r
2568 .hword (0x26<<8) |(1<<NFlag) \r
2569 .hword (0x27<<8) |(1<<VFlag)|(1<<NFlag) \r
2570 .hword (0x28<<8) |(1<<VFlag)|(1<<NFlag) \r
2571 .hword (0x29<<8) |(1<<NFlag) \r
2572 .hword (0x24<<8) |(1<<VFlag)|(1<<NFlag) \r
2573 .hword (0x25<<8) |(1<<NFlag) \r
2574 .hword (0x26<<8) |(1<<NFlag) \r
2575 .hword (0x27<<8) |(1<<VFlag)|(1<<NFlag) \r
2576 .hword (0x28<<8) |(1<<VFlag)|(1<<NFlag) \r
2577 .hword (0x29<<8) |(1<<NFlag) \r
2578 .hword (0x30<<8) |(1<<VFlag)|(1<<NFlag) \r
2579 .hword (0x31<<8) |(1<<NFlag) \r
2580 .hword (0x32<<8) |(1<<NFlag) \r
2581 .hword (0x33<<8) |(1<<VFlag)|(1<<NFlag) \r
2582 .hword (0x34<<8) |(1<<NFlag) \r
2583 .hword (0x35<<8) |(1<<VFlag)|(1<<NFlag) \r
2584 .hword (0x36<<8) |(1<<VFlag)|(1<<NFlag) \r
2585 .hword (0x37<<8) |(1<<NFlag) \r
2586 .hword (0x38<<8) |(1<<NFlag) \r
2587 .hword (0x39<<8) |(1<<VFlag)|(1<<NFlag) \r
2588 .hword (0x34<<8) |(1<<NFlag) \r
2589 .hword (0x35<<8) |(1<<VFlag)|(1<<NFlag) \r
2590 .hword (0x36<<8) |(1<<VFlag)|(1<<NFlag) \r
2591 .hword (0x37<<8) |(1<<NFlag) \r
2592 .hword (0x38<<8) |(1<<NFlag) \r
2593 .hword (0x39<<8) |(1<<VFlag)|(1<<NFlag) \r
2594 .hword (0x40<<8) |(1<<NFlag) \r
2595 .hword (0x41<<8) |(1<<VFlag)|(1<<NFlag) \r
2596 .hword (0x42<<8) |(1<<VFlag)|(1<<NFlag) \r
2597 .hword (0x43<<8) |(1<<NFlag) \r
2598 .hword (0x44<<8) |(1<<VFlag)|(1<<NFlag) \r
2599 .hword (0x45<<8) |(1<<NFlag) \r
2600 .hword (0x46<<8) |(1<<NFlag) \r
2601 .hword (0x47<<8) |(1<<VFlag)|(1<<NFlag) \r
2602 .hword (0x48<<8) |(1<<VFlag)|(1<<NFlag) \r
2603 .hword (0x49<<8) |(1<<NFlag) \r
2604 .hword (0x44<<8) |(1<<VFlag)|(1<<NFlag) \r
2605 .hword (0x45<<8) |(1<<NFlag) \r
2606 .hword (0x46<<8) |(1<<NFlag) \r
2607 .hword (0x47<<8) |(1<<VFlag)|(1<<NFlag) \r
2608 .hword (0x48<<8) |(1<<VFlag)|(1<<NFlag) \r
2609 .hword (0x49<<8) |(1<<NFlag) \r
2610 .hword (0x50<<8) |(1<<VFlag)|(1<<NFlag) \r
2611 .hword (0x51<<8) |(1<<NFlag) \r
2612 .hword (0x52<<8) |(1<<NFlag) \r
2613 .hword (0x53<<8) |(1<<VFlag)|(1<<NFlag) \r
2614 .hword (0x54<<8) |(1<<NFlag) \r
2615 .hword (0x55<<8) |(1<<VFlag)|(1<<NFlag) \r
2616 .hword (0x56<<8) |(1<<VFlag)|(1<<NFlag) \r
2617 .hword (0x57<<8) |(1<<NFlag) \r
2618 .hword (0x58<<8) |(1<<NFlag) \r
2619 .hword (0x59<<8) |(1<<VFlag)|(1<<NFlag) \r
2620 .hword (0x54<<8) |(1<<NFlag) \r
2621 .hword (0x55<<8) |(1<<VFlag)|(1<<NFlag) \r
2622 .hword (0x56<<8) |(1<<VFlag)|(1<<NFlag) \r
2623 .hword (0x57<<8) |(1<<NFlag) \r
2624 .hword (0x58<<8) |(1<<NFlag) \r
2625 .hword (0x59<<8) |(1<<VFlag)|(1<<NFlag) \r
2626 .hword (0x60<<8) |(1<<VFlag)|(1<<NFlag) \r
2627 .hword (0x61<<8) |(1<<NFlag) \r
2628 .hword (0x62<<8) |(1<<NFlag) \r
2629 .hword (0x63<<8) |(1<<VFlag)|(1<<NFlag) \r
2630 .hword (0x64<<8) |(1<<NFlag) \r
2631 .hword (0x65<<8) |(1<<VFlag)|(1<<NFlag) \r
2632 .hword (0x66<<8) |(1<<VFlag)|(1<<NFlag) \r
2633 .hword (0x67<<8) |(1<<NFlag) \r
2634 .hword (0x68<<8) |(1<<NFlag) \r
2635 .hword (0x69<<8) |(1<<VFlag)|(1<<NFlag) \r
2636 .hword (0x64<<8) |(1<<NFlag) \r
2637 .hword (0x65<<8) |(1<<VFlag)|(1<<NFlag) \r
2638 .hword (0x66<<8) |(1<<VFlag)|(1<<NFlag) \r
2639 .hword (0x67<<8) |(1<<NFlag) \r
2640 .hword (0x68<<8) |(1<<NFlag) \r
2641 .hword (0x69<<8) |(1<<VFlag)|(1<<NFlag) \r
2642 .hword (0x70<<8) |(1<<NFlag) \r
2643 .hword (0x71<<8) |(1<<VFlag)|(1<<NFlag) \r
2644 .hword (0x72<<8) |(1<<VFlag)|(1<<NFlag) \r
2645 .hword (0x73<<8) |(1<<NFlag) \r
2646 .hword (0x74<<8) |(1<<VFlag)|(1<<NFlag) \r
2647 .hword (0x75<<8) |(1<<NFlag) \r
2648 .hword (0x76<<8) |(1<<NFlag) \r
2649 .hword (0x77<<8) |(1<<VFlag)|(1<<NFlag) \r
2650 .hword (0x78<<8) |(1<<VFlag)|(1<<NFlag) \r
2651 .hword (0x79<<8) |(1<<NFlag) \r
2652 .hword (0x74<<8) |(1<<VFlag)|(1<<NFlag) \r
2653 .hword (0x75<<8) |(1<<NFlag) \r
2654 .hword (0x76<<8) |(1<<NFlag) \r
2655 .hword (0x77<<8) |(1<<VFlag)|(1<<NFlag) \r
2656 .hword (0x78<<8) |(1<<VFlag)|(1<<NFlag) \r
2657 .hword (0x79<<8) |(1<<NFlag) \r
2658 .hword (0x80<<8)|(1<<SFlag) |(1<<NFlag) \r
2659 .hword (0x81<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag) \r
2660 .hword (0x82<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag) \r
2661 .hword (0x83<<8)|(1<<SFlag) |(1<<NFlag) \r
2662 .hword (0x84<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag) \r
2663 .hword (0x85<<8)|(1<<SFlag) |(1<<NFlag) \r
2664 .hword (0x86<<8)|(1<<SFlag) |(1<<NFlag) \r
2665 .hword (0x87<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag) \r
2666 .hword (0x88<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag) \r
2667 .hword (0x89<<8)|(1<<SFlag) |(1<<NFlag) \r
2668 .hword (0x84<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag) \r
2669 .hword (0x85<<8)|(1<<SFlag) |(1<<NFlag) \r
2670 .hword (0x86<<8)|(1<<SFlag) |(1<<NFlag) \r
2671 .hword (0x87<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag) \r
2672 .hword (0x88<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag) \r
2673 .hword (0x89<<8)|(1<<SFlag) |(1<<NFlag) \r
2674 .hword (0x90<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag) \r
2675 .hword (0x91<<8)|(1<<SFlag) |(1<<NFlag) \r
2676 .hword (0x92<<8)|(1<<SFlag) |(1<<NFlag) \r
2677 .hword (0x93<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag) \r
2678 .hword (0x94<<8)|(1<<SFlag) |(1<<NFlag) \r
2679 .hword (0x95<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag) \r
2680 .hword (0x96<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag) \r
2681 .hword (0x97<<8)|(1<<SFlag) |(1<<NFlag) \r
2682 .hword (0x98<<8)|(1<<SFlag) |(1<<NFlag) \r
2683 .hword (0x99<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag) \r
2684 .hword (0x34<<8) |(1<<NFlag)|(1<<CFlag)\r
2685 .hword (0x35<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2686 .hword (0x36<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2687 .hword (0x37<<8) |(1<<NFlag)|(1<<CFlag)\r
2688 .hword (0x38<<8) |(1<<NFlag)|(1<<CFlag)\r
2689 .hword (0x39<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2690 .hword (0x40<<8) |(1<<NFlag)|(1<<CFlag)\r
2691 .hword (0x41<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2692 .hword (0x42<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2693 .hword (0x43<<8) |(1<<NFlag)|(1<<CFlag)\r
2694 .hword (0x44<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2695 .hword (0x45<<8) |(1<<NFlag)|(1<<CFlag)\r
2696 .hword (0x46<<8) |(1<<NFlag)|(1<<CFlag)\r
2697 .hword (0x47<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2698 .hword (0x48<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2699 .hword (0x49<<8) |(1<<NFlag)|(1<<CFlag)\r
2700 .hword (0x44<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2701 .hword (0x45<<8) |(1<<NFlag)|(1<<CFlag)\r
2702 .hword (0x46<<8) |(1<<NFlag)|(1<<CFlag)\r
2703 .hword (0x47<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2704 .hword (0x48<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2705 .hword (0x49<<8) |(1<<NFlag)|(1<<CFlag)\r
2706 .hword (0x50<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2707 .hword (0x51<<8) |(1<<NFlag)|(1<<CFlag)\r
2708 .hword (0x52<<8) |(1<<NFlag)|(1<<CFlag)\r
2709 .hword (0x53<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2710 .hword (0x54<<8) |(1<<NFlag)|(1<<CFlag)\r
2711 .hword (0x55<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2712 .hword (0x56<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2713 .hword (0x57<<8) |(1<<NFlag)|(1<<CFlag)\r
2714 .hword (0x58<<8) |(1<<NFlag)|(1<<CFlag)\r
2715 .hword (0x59<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2716 .hword (0x54<<8) |(1<<NFlag)|(1<<CFlag)\r
2717 .hword (0x55<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2718 .hword (0x56<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2719 .hword (0x57<<8) |(1<<NFlag)|(1<<CFlag)\r
2720 .hword (0x58<<8) |(1<<NFlag)|(1<<CFlag)\r
2721 .hword (0x59<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2722 .hword (0x60<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2723 .hword (0x61<<8) |(1<<NFlag)|(1<<CFlag)\r
2724 .hword (0x62<<8) |(1<<NFlag)|(1<<CFlag)\r
2725 .hword (0x63<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2726 .hword (0x64<<8) |(1<<NFlag)|(1<<CFlag)\r
2727 .hword (0x65<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2728 .hword (0x66<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2729 .hword (0x67<<8) |(1<<NFlag)|(1<<CFlag)\r
2730 .hword (0x68<<8) |(1<<NFlag)|(1<<CFlag)\r
2731 .hword (0x69<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2732 .hword (0x64<<8) |(1<<NFlag)|(1<<CFlag)\r
2733 .hword (0x65<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2734 .hword (0x66<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2735 .hword (0x67<<8) |(1<<NFlag)|(1<<CFlag)\r
2736 .hword (0x68<<8) |(1<<NFlag)|(1<<CFlag)\r
2737 .hword (0x69<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2738 .hword (0x70<<8) |(1<<NFlag)|(1<<CFlag)\r
2739 .hword (0x71<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2740 .hword (0x72<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2741 .hword (0x73<<8) |(1<<NFlag)|(1<<CFlag)\r
2742 .hword (0x74<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2743 .hword (0x75<<8) |(1<<NFlag)|(1<<CFlag)\r
2744 .hword (0x76<<8) |(1<<NFlag)|(1<<CFlag)\r
2745 .hword (0x77<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2746 .hword (0x78<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2747 .hword (0x79<<8) |(1<<NFlag)|(1<<CFlag)\r
2748 .hword (0x74<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2749 .hword (0x75<<8) |(1<<NFlag)|(1<<CFlag)\r
2750 .hword (0x76<<8) |(1<<NFlag)|(1<<CFlag)\r
2751 .hword (0x77<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2752 .hword (0x78<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2753 .hword (0x79<<8) |(1<<NFlag)|(1<<CFlag)\r
2754 .hword (0x80<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2755 .hword (0x81<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2756 .hword (0x82<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2757 .hword (0x83<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2758 .hword (0x84<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2759 .hword (0x85<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2760 .hword (0x86<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2761 .hword (0x87<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2762 .hword (0x88<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2763 .hword (0x89<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2764 .hword (0x84<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2765 .hword (0x85<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2766 .hword (0x86<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2767 .hword (0x87<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2768 .hword (0x88<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2769 .hword (0x89<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2770 .hword (0x90<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2771 .hword (0x91<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2772 .hword (0x92<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2773 .hword (0x93<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2774 .hword (0x94<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2775 .hword (0x95<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2776 .hword (0x96<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2777 .hword (0x97<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2778 .hword (0x98<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2779 .hword (0x99<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2780 .hword (0x94<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2781 .hword (0x95<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2782 .hword (0x96<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2783 .hword (0x97<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2784 .hword (0x98<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2785 .hword (0x99<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2786 .hword (0xA0<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2787 .hword (0xA1<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2788 .hword (0xA2<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2789 .hword (0xA3<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2790 .hword (0xA4<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2791 .hword (0xA5<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2792 .hword (0xA6<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2793 .hword (0xA7<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2794 .hword (0xA8<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2795 .hword (0xA9<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2796 .hword (0xA4<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2797 .hword (0xA5<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2798 .hword (0xA6<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2799 .hword (0xA7<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2800 .hword (0xA8<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2801 .hword (0xA9<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2802 .hword (0xB0<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2803 .hword (0xB1<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2804 .hword (0xB2<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2805 .hword (0xB3<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2806 .hword (0xB4<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2807 .hword (0xB5<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2808 .hword (0xB6<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2809 .hword (0xB7<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2810 .hword (0xB8<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2811 .hword (0xB9<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2812 .hword (0xB4<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2813 .hword (0xB5<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2814 .hword (0xB6<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2815 .hword (0xB7<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2816 .hword (0xB8<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2817 .hword (0xB9<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2818 .hword (0xC0<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2819 .hword (0xC1<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2820 .hword (0xC2<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2821 .hword (0xC3<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2822 .hword (0xC4<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2823 .hword (0xC5<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2824 .hword (0xC6<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2825 .hword (0xC7<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2826 .hword (0xC8<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2827 .hword (0xC9<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2828 .hword (0xC4<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2829 .hword (0xC5<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2830 .hword (0xC6<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2831 .hword (0xC7<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2832 .hword (0xC8<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2833 .hword (0xC9<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2834 .hword (0xD0<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2835 .hword (0xD1<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2836 .hword (0xD2<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2837 .hword (0xD3<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2838 .hword (0xD4<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2839 .hword (0xD5<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2840 .hword (0xD6<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2841 .hword (0xD7<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2842 .hword (0xD8<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2843 .hword (0xD9<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2844 .hword (0xD4<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2845 .hword (0xD5<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2846 .hword (0xD6<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2847 .hword (0xD7<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2848 .hword (0xD8<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2849 .hword (0xD9<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2850 .hword (0xE0<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2851 .hword (0xE1<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2852 .hword (0xE2<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2853 .hword (0xE3<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2854 .hword (0xE4<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2855 .hword (0xE5<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2856 .hword (0xE6<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2857 .hword (0xE7<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2858 .hword (0xE8<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2859 .hword (0xE9<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2860 .hword (0xE4<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2861 .hword (0xE5<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2862 .hword (0xE6<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2863 .hword (0xE7<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2864 .hword (0xE8<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2865 .hword (0xE9<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2866 .hword (0xF0<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2867 .hword (0xF1<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2868 .hword (0xF2<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2869 .hword (0xF3<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2870 .hword (0xF4<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2871 .hword (0xF5<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2872 .hword (0xF6<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2873 .hword (0xF7<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2874 .hword (0xF8<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2875 .hword (0xF9<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2876 .hword (0xF4<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2877 .hword (0xF5<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2878 .hword (0xF6<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2879 .hword (0xF7<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2880 .hword (0xF8<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2881 .hword (0xF9<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2882 .hword (0x00<<8) |(1<<ZFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2883 .hword (0x01<<8) |(1<<NFlag)|(1<<CFlag)\r
2884 .hword (0x02<<8) |(1<<NFlag)|(1<<CFlag)\r
2885 .hword (0x03<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2886 .hword (0x04<<8) |(1<<NFlag)|(1<<CFlag)\r
2887 .hword (0x05<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2888 .hword (0x06<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2889 .hword (0x07<<8) |(1<<NFlag)|(1<<CFlag)\r
2890 .hword (0x08<<8) |(1<<NFlag)|(1<<CFlag)\r
2891 .hword (0x09<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2892 .hword (0x04<<8) |(1<<NFlag)|(1<<CFlag)\r
2893 .hword (0x05<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2894 .hword (0x06<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2895 .hword (0x07<<8) |(1<<NFlag)|(1<<CFlag)\r
2896 .hword (0x08<<8) |(1<<NFlag)|(1<<CFlag)\r
2897 .hword (0x09<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2898 .hword (0x10<<8) |(1<<NFlag)|(1<<CFlag)\r
2899 .hword (0x11<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2900 .hword (0x12<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2901 .hword (0x13<<8) |(1<<NFlag)|(1<<CFlag)\r
2902 .hword (0x14<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2903 .hword (0x15<<8) |(1<<NFlag)|(1<<CFlag)\r
2904 .hword (0x16<<8) |(1<<NFlag)|(1<<CFlag)\r
2905 .hword (0x17<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2906 .hword (0x18<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2907 .hword (0x19<<8) |(1<<NFlag)|(1<<CFlag)\r
2908 .hword (0x14<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2909 .hword (0x15<<8) |(1<<NFlag)|(1<<CFlag)\r
2910 .hword (0x16<<8) |(1<<NFlag)|(1<<CFlag)\r
2911 .hword (0x17<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2912 .hword (0x18<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2913 .hword (0x19<<8) |(1<<NFlag)|(1<<CFlag)\r
2914 .hword (0x20<<8) |(1<<NFlag)|(1<<CFlag)\r
2915 .hword (0x21<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2916 .hword (0x22<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2917 .hword (0x23<<8) |(1<<NFlag)|(1<<CFlag)\r
2918 .hword (0x24<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2919 .hword (0x25<<8) |(1<<NFlag)|(1<<CFlag)\r
2920 .hword (0x26<<8) |(1<<NFlag)|(1<<CFlag)\r
2921 .hword (0x27<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2922 .hword (0x28<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2923 .hword (0x29<<8) |(1<<NFlag)|(1<<CFlag)\r
2924 .hword (0x24<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2925 .hword (0x25<<8) |(1<<NFlag)|(1<<CFlag)\r
2926 .hword (0x26<<8) |(1<<NFlag)|(1<<CFlag)\r
2927 .hword (0x27<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2928 .hword (0x28<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2929 .hword (0x29<<8) |(1<<NFlag)|(1<<CFlag)\r
2930 .hword (0x30<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2931 .hword (0x31<<8) |(1<<NFlag)|(1<<CFlag)\r
2932 .hword (0x32<<8) |(1<<NFlag)|(1<<CFlag)\r
2933 .hword (0x33<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2934 .hword (0x34<<8) |(1<<NFlag)|(1<<CFlag)\r
2935 .hword (0x35<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2936 .hword (0x36<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2937 .hword (0x37<<8) |(1<<NFlag)|(1<<CFlag)\r
2938 .hword (0x38<<8) |(1<<NFlag)|(1<<CFlag)\r
2939 .hword (0x39<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2940 .hword (0x34<<8) |(1<<NFlag)|(1<<CFlag)\r
2941 .hword (0x35<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2942 .hword (0x36<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2943 .hword (0x37<<8) |(1<<NFlag)|(1<<CFlag)\r
2944 .hword (0x38<<8) |(1<<NFlag)|(1<<CFlag)\r
2945 .hword (0x39<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2946 .hword (0x40<<8) |(1<<NFlag)|(1<<CFlag)\r
2947 .hword (0x41<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2948 .hword (0x42<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2949 .hword (0x43<<8) |(1<<NFlag)|(1<<CFlag)\r
2950 .hword (0x44<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2951 .hword (0x45<<8) |(1<<NFlag)|(1<<CFlag)\r
2952 .hword (0x46<<8) |(1<<NFlag)|(1<<CFlag)\r
2953 .hword (0x47<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2954 .hword (0x48<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2955 .hword (0x49<<8) |(1<<NFlag)|(1<<CFlag)\r
2956 .hword (0x44<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2957 .hword (0x45<<8) |(1<<NFlag)|(1<<CFlag)\r
2958 .hword (0x46<<8) |(1<<NFlag)|(1<<CFlag)\r
2959 .hword (0x47<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2960 .hword (0x48<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2961 .hword (0x49<<8) |(1<<NFlag)|(1<<CFlag)\r
2962 .hword (0x50<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2963 .hword (0x51<<8) |(1<<NFlag)|(1<<CFlag)\r
2964 .hword (0x52<<8) |(1<<NFlag)|(1<<CFlag)\r
2965 .hword (0x53<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2966 .hword (0x54<<8) |(1<<NFlag)|(1<<CFlag)\r
2967 .hword (0x55<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2968 .hword (0x56<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2969 .hword (0x57<<8) |(1<<NFlag)|(1<<CFlag)\r
2970 .hword (0x58<<8) |(1<<NFlag)|(1<<CFlag)\r
2971 .hword (0x59<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2972 .hword (0x54<<8) |(1<<NFlag)|(1<<CFlag)\r
2973 .hword (0x55<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2974 .hword (0x56<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2975 .hword (0x57<<8) |(1<<NFlag)|(1<<CFlag)\r
2976 .hword (0x58<<8) |(1<<NFlag)|(1<<CFlag)\r
2977 .hword (0x59<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2978 .hword (0x60<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2979 .hword (0x61<<8) |(1<<NFlag)|(1<<CFlag)\r
2980 .hword (0x62<<8) |(1<<NFlag)|(1<<CFlag)\r
2981 .hword (0x63<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2982 .hword (0x64<<8) |(1<<NFlag)|(1<<CFlag)\r
2983 .hword (0x65<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2984 .hword (0x66<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2985 .hword (0x67<<8) |(1<<NFlag)|(1<<CFlag)\r
2986 .hword (0x68<<8) |(1<<NFlag)|(1<<CFlag)\r
2987 .hword (0x69<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2988 .hword (0x64<<8) |(1<<NFlag)|(1<<CFlag)\r
2989 .hword (0x65<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2990 .hword (0x66<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2991 .hword (0x67<<8) |(1<<NFlag)|(1<<CFlag)\r
2992 .hword (0x68<<8) |(1<<NFlag)|(1<<CFlag)\r
2993 .hword (0x69<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2994 .hword (0x70<<8) |(1<<NFlag)|(1<<CFlag)\r
2995 .hword (0x71<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2996 .hword (0x72<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2997 .hword (0x73<<8) |(1<<NFlag)|(1<<CFlag)\r
2998 .hword (0x74<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2999 .hword (0x75<<8) |(1<<NFlag)|(1<<CFlag)\r
3000 .hword (0x76<<8) |(1<<NFlag)|(1<<CFlag)\r
3001 .hword (0x77<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3002 .hword (0x78<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3003 .hword (0x79<<8) |(1<<NFlag)|(1<<CFlag)\r
3004 .hword (0x74<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3005 .hword (0x75<<8) |(1<<NFlag)|(1<<CFlag)\r
3006 .hword (0x76<<8) |(1<<NFlag)|(1<<CFlag)\r
3007 .hword (0x77<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3008 .hword (0x78<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3009 .hword (0x79<<8) |(1<<NFlag)|(1<<CFlag)\r
3010 .hword (0x80<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3011 .hword (0x81<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3012 .hword (0x82<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3013 .hword (0x83<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3014 .hword (0x84<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3015 .hword (0x85<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3016 .hword (0x86<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3017 .hword (0x87<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3018 .hword (0x88<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3019 .hword (0x89<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3020 .hword (0x84<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3021 .hword (0x85<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3022 .hword (0x86<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3023 .hword (0x87<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3024 .hword (0x88<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3025 .hword (0x89<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3026 .hword (0x90<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3027 .hword (0x91<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3028 .hword (0x92<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3029 .hword (0x93<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3030 .hword (0x94<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3031 .hword (0x95<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3032 .hword (0x96<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3033 .hword (0x97<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3034 .hword (0x98<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3035 .hword (0x99<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3036 .hword (0x94<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3037 .hword (0x95<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3038 .hword (0x96<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3039 .hword (0x97<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3040 .hword (0x98<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3041 .hword (0x99<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3042 .hword (0xFA<<8)|(1<<SFlag) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag) \r
3043 .hword (0xFB<<8)|(1<<SFlag) |(1<<HFlag) |(1<<NFlag) \r
3044 .hword (0xFC<<8)|(1<<SFlag) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag) \r
3045 .hword (0xFD<<8)|(1<<SFlag) |(1<<HFlag) |(1<<NFlag) \r
3046 .hword (0xFE<<8)|(1<<SFlag) |(1<<HFlag) |(1<<NFlag) \r
3047 .hword (0xFF<<8)|(1<<SFlag) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag) \r
3048 .hword (0x00<<8) |(1<<ZFlag) |(1<<VFlag)|(1<<NFlag) \r
3049 .hword (0x01<<8) |(1<<NFlag) \r
3050 .hword (0x02<<8) |(1<<NFlag) \r
3051 .hword (0x03<<8) |(1<<VFlag)|(1<<NFlag) \r
3052 .hword (0x04<<8) |(1<<NFlag) \r
3053 .hword (0x05<<8) |(1<<VFlag)|(1<<NFlag) \r
3054 .hword (0x06<<8) |(1<<VFlag)|(1<<NFlag) \r
3055 .hword (0x07<<8) |(1<<NFlag) \r
3056 .hword (0x08<<8) |(1<<NFlag) \r
3057 .hword (0x09<<8) |(1<<VFlag)|(1<<NFlag) \r
3058 .hword (0x0A<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag) \r
3059 .hword (0x0B<<8) |(1<<HFlag) |(1<<NFlag) \r
3060 .hword (0x0C<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag) \r
3061 .hword (0x0D<<8) |(1<<HFlag) |(1<<NFlag) \r
3062 .hword (0x0E<<8) |(1<<HFlag) |(1<<NFlag) \r
3063 .hword (0x0F<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag) \r
3064 .hword (0x10<<8) |(1<<NFlag) \r
3065 .hword (0x11<<8) |(1<<VFlag)|(1<<NFlag) \r
3066 .hword (0x12<<8) |(1<<VFlag)|(1<<NFlag) \r
3067 .hword (0x13<<8) |(1<<NFlag) \r
3068 .hword (0x14<<8) |(1<<VFlag)|(1<<NFlag) \r
3069 .hword (0x15<<8) |(1<<NFlag) \r
3070 .hword (0x16<<8) |(1<<NFlag) \r
3071 .hword (0x17<<8) |(1<<VFlag)|(1<<NFlag) \r
3072 .hword (0x18<<8) |(1<<VFlag)|(1<<NFlag) \r
3073 .hword (0x19<<8) |(1<<NFlag) \r
3074 .hword (0x1A<<8) |(1<<HFlag) |(1<<NFlag) \r
3075 .hword (0x1B<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag) \r
3076 .hword (0x1C<<8) |(1<<HFlag) |(1<<NFlag) \r
3077 .hword (0x1D<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag) \r
3078 .hword (0x1E<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag) \r
3079 .hword (0x1F<<8) |(1<<HFlag) |(1<<NFlag) \r
3080 .hword (0x20<<8) |(1<<NFlag) \r
3081 .hword (0x21<<8) |(1<<VFlag)|(1<<NFlag) \r
3082 .hword (0x22<<8) |(1<<VFlag)|(1<<NFlag) \r
3083 .hword (0x23<<8) |(1<<NFlag) \r
3084 .hword (0x24<<8) |(1<<VFlag)|(1<<NFlag) \r
3085 .hword (0x25<<8) |(1<<NFlag) \r
3086 .hword (0x26<<8) |(1<<NFlag) \r
3087 .hword (0x27<<8) |(1<<VFlag)|(1<<NFlag) \r
3088 .hword (0x28<<8) |(1<<VFlag)|(1<<NFlag) \r
3089 .hword (0x29<<8) |(1<<NFlag) \r
3090 .hword (0x2A<<8) |(1<<HFlag) |(1<<NFlag) \r
3091 .hword (0x2B<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag) \r
3092 .hword (0x2C<<8) |(1<<HFlag) |(1<<NFlag) \r
3093 .hword (0x2D<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag) \r
3094 .hword (0x2E<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag) \r
3095 .hword (0x2F<<8) |(1<<HFlag) |(1<<NFlag) \r
3096 .hword (0x30<<8) |(1<<VFlag)|(1<<NFlag) \r
3097 .hword (0x31<<8) |(1<<NFlag) \r
3098 .hword (0x32<<8) |(1<<NFlag) \r
3099 .hword (0x33<<8) |(1<<VFlag)|(1<<NFlag) \r
3100 .hword (0x34<<8) |(1<<NFlag) \r
3101 .hword (0x35<<8) |(1<<VFlag)|(1<<NFlag) \r
3102 .hword (0x36<<8) |(1<<VFlag)|(1<<NFlag) \r
3103 .hword (0x37<<8) |(1<<NFlag) \r
3104 .hword (0x38<<8) |(1<<NFlag) \r
3105 .hword (0x39<<8) |(1<<VFlag)|(1<<NFlag) \r
3106 .hword (0x3A<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag) \r
3107 .hword (0x3B<<8) |(1<<HFlag) |(1<<NFlag) \r
3108 .hword (0x3C<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag) \r
3109 .hword (0x3D<<8) |(1<<HFlag) |(1<<NFlag) \r
3110 .hword (0x3E<<8) |(1<<HFlag) |(1<<NFlag) \r
3111 .hword (0x3F<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag) \r
3112 .hword (0x40<<8) |(1<<NFlag) \r
3113 .hword (0x41<<8) |(1<<VFlag)|(1<<NFlag) \r
3114 .hword (0x42<<8) |(1<<VFlag)|(1<<NFlag) \r
3115 .hword (0x43<<8) |(1<<NFlag) \r
3116 .hword (0x44<<8) |(1<<VFlag)|(1<<NFlag) \r
3117 .hword (0x45<<8) |(1<<NFlag) \r
3118 .hword (0x46<<8) |(1<<NFlag) \r
3119 .hword (0x47<<8) |(1<<VFlag)|(1<<NFlag) \r
3120 .hword (0x48<<8) |(1<<VFlag)|(1<<NFlag) \r
3121 .hword (0x49<<8) |(1<<NFlag) \r
3122 .hword (0x4A<<8) |(1<<HFlag) |(1<<NFlag) \r
3123 .hword (0x4B<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag) \r
3124 .hword (0x4C<<8) |(1<<HFlag) |(1<<NFlag) \r
3125 .hword (0x4D<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag) \r
3126 .hword (0x4E<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag) \r
3127 .hword (0x4F<<8) |(1<<HFlag) |(1<<NFlag) \r
3128 .hword (0x50<<8) |(1<<VFlag)|(1<<NFlag) \r
3129 .hword (0x51<<8) |(1<<NFlag) \r
3130 .hword (0x52<<8) |(1<<NFlag) \r
3131 .hword (0x53<<8) |(1<<VFlag)|(1<<NFlag) \r
3132 .hword (0x54<<8) |(1<<NFlag) \r
3133 .hword (0x55<<8) |(1<<VFlag)|(1<<NFlag) \r
3134 .hword (0x56<<8) |(1<<VFlag)|(1<<NFlag) \r
3135 .hword (0x57<<8) |(1<<NFlag) \r
3136 .hword (0x58<<8) |(1<<NFlag) \r
3137 .hword (0x59<<8) |(1<<VFlag)|(1<<NFlag) \r
3138 .hword (0x5A<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag) \r
3139 .hword (0x5B<<8) |(1<<HFlag) |(1<<NFlag) \r
3140 .hword (0x5C<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag) \r
3141 .hword (0x5D<<8) |(1<<HFlag) |(1<<NFlag) \r
3142 .hword (0x5E<<8) |(1<<HFlag) |(1<<NFlag) \r
3143 .hword (0x5F<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag) \r
3144 .hword (0x60<<8) |(1<<VFlag)|(1<<NFlag) \r
3145 .hword (0x61<<8) |(1<<NFlag) \r
3146 .hword (0x62<<8) |(1<<NFlag) \r
3147 .hword (0x63<<8) |(1<<VFlag)|(1<<NFlag) \r
3148 .hword (0x64<<8) |(1<<NFlag) \r
3149 .hword (0x65<<8) |(1<<VFlag)|(1<<NFlag) \r
3150 .hword (0x66<<8) |(1<<VFlag)|(1<<NFlag) \r
3151 .hword (0x67<<8) |(1<<NFlag) \r
3152 .hword (0x68<<8) |(1<<NFlag) \r
3153 .hword (0x69<<8) |(1<<VFlag)|(1<<NFlag) \r
3154 .hword (0x6A<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag) \r
3155 .hword (0x6B<<8) |(1<<HFlag) |(1<<NFlag) \r
3156 .hword (0x6C<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag) \r
3157 .hword (0x6D<<8) |(1<<HFlag) |(1<<NFlag) \r
3158 .hword (0x6E<<8) |(1<<HFlag) |(1<<NFlag) \r
3159 .hword (0x6F<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag) \r
3160 .hword (0x70<<8) |(1<<NFlag) \r
3161 .hword (0x71<<8) |(1<<VFlag)|(1<<NFlag) \r
3162 .hword (0x72<<8) |(1<<VFlag)|(1<<NFlag) \r
3163 .hword (0x73<<8) |(1<<NFlag) \r
3164 .hword (0x74<<8) |(1<<VFlag)|(1<<NFlag) \r
3165 .hword (0x75<<8) |(1<<NFlag) \r
3166 .hword (0x76<<8) |(1<<NFlag) \r
3167 .hword (0x77<<8) |(1<<VFlag)|(1<<NFlag) \r
3168 .hword (0x78<<8) |(1<<VFlag)|(1<<NFlag) \r
3169 .hword (0x79<<8) |(1<<NFlag) \r
3170 .hword (0x7A<<8) |(1<<HFlag) |(1<<NFlag) \r
3171 .hword (0x7B<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag) \r
3172 .hword (0x7C<<8) |(1<<HFlag) |(1<<NFlag) \r
3173 .hword (0x7D<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag) \r
3174 .hword (0x7E<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag) \r
3175 .hword (0x7F<<8) |(1<<HFlag) |(1<<NFlag) \r
3176 .hword (0x80<<8)|(1<<SFlag) |(1<<NFlag) \r
3177 .hword (0x81<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag) \r
3178 .hword (0x82<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag) \r
3179 .hword (0x83<<8)|(1<<SFlag) |(1<<NFlag) \r
3180 .hword (0x84<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag) \r
3181 .hword (0x85<<8)|(1<<SFlag) |(1<<NFlag) \r
3182 .hword (0x86<<8)|(1<<SFlag) |(1<<NFlag) \r
3183 .hword (0x87<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag) \r
3184 .hword (0x88<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag) \r
3185 .hword (0x89<<8)|(1<<SFlag) |(1<<NFlag) \r
3186 .hword (0x8A<<8)|(1<<SFlag) |(1<<HFlag) |(1<<NFlag) \r
3187 .hword (0x8B<<8)|(1<<SFlag) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag) \r
3188 .hword (0x8C<<8)|(1<<SFlag) |(1<<HFlag) |(1<<NFlag) \r
3189 .hword (0x8D<<8)|(1<<SFlag) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag) \r
3190 .hword (0x8E<<8)|(1<<SFlag) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag) \r
3191 .hword (0x8F<<8)|(1<<SFlag) |(1<<HFlag) |(1<<NFlag) \r
3192 .hword (0x90<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag) \r
3193 .hword (0x91<<8)|(1<<SFlag) |(1<<NFlag) \r
3194 .hword (0x92<<8)|(1<<SFlag) |(1<<NFlag) \r
3195 .hword (0x93<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag) \r
3196 .hword (0x34<<8) |(1<<NFlag)|(1<<CFlag)\r
3197 .hword (0x35<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3198 .hword (0x36<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3199 .hword (0x37<<8) |(1<<NFlag)|(1<<CFlag)\r
3200 .hword (0x38<<8) |(1<<NFlag)|(1<<CFlag)\r
3201 .hword (0x39<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3202 .hword (0x3A<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3203 .hword (0x3B<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3204 .hword (0x3C<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3205 .hword (0x3D<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3206 .hword (0x3E<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3207 .hword (0x3F<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3208 .hword (0x40<<8) |(1<<NFlag)|(1<<CFlag)\r
3209 .hword (0x41<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3210 .hword (0x42<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3211 .hword (0x43<<8) |(1<<NFlag)|(1<<CFlag)\r
3212 .hword (0x44<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3213 .hword (0x45<<8) |(1<<NFlag)|(1<<CFlag)\r
3214 .hword (0x46<<8) |(1<<NFlag)|(1<<CFlag)\r
3215 .hword (0x47<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3216 .hword (0x48<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3217 .hword (0x49<<8) |(1<<NFlag)|(1<<CFlag)\r
3218 .hword (0x4A<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3219 .hword (0x4B<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3220 .hword (0x4C<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3221 .hword (0x4D<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3222 .hword (0x4E<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3223 .hword (0x4F<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3224 .hword (0x50<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3225 .hword (0x51<<8) |(1<<NFlag)|(1<<CFlag)\r
3226 .hword (0x52<<8) |(1<<NFlag)|(1<<CFlag)\r
3227 .hword (0x53<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3228 .hword (0x54<<8) |(1<<NFlag)|(1<<CFlag)\r
3229 .hword (0x55<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3230 .hword (0x56<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3231 .hword (0x57<<8) |(1<<NFlag)|(1<<CFlag)\r
3232 .hword (0x58<<8) |(1<<NFlag)|(1<<CFlag)\r
3233 .hword (0x59<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3234 .hword (0x5A<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3235 .hword (0x5B<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3236 .hword (0x5C<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3237 .hword (0x5D<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3238 .hword (0x5E<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3239 .hword (0x5F<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3240 .hword (0x60<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3241 .hword (0x61<<8) |(1<<NFlag)|(1<<CFlag)\r
3242 .hword (0x62<<8) |(1<<NFlag)|(1<<CFlag)\r
3243 .hword (0x63<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3244 .hword (0x64<<8) |(1<<NFlag)|(1<<CFlag)\r
3245 .hword (0x65<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3246 .hword (0x66<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3247 .hword (0x67<<8) |(1<<NFlag)|(1<<CFlag)\r
3248 .hword (0x68<<8) |(1<<NFlag)|(1<<CFlag)\r
3249 .hword (0x69<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3250 .hword (0x6A<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3251 .hword (0x6B<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3252 .hword (0x6C<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3253 .hword (0x6D<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3254 .hword (0x6E<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3255 .hword (0x6F<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3256 .hword (0x70<<8) |(1<<NFlag)|(1<<CFlag)\r
3257 .hword (0x71<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3258 .hword (0x72<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3259 .hword (0x73<<8) |(1<<NFlag)|(1<<CFlag)\r
3260 .hword (0x74<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3261 .hword (0x75<<8) |(1<<NFlag)|(1<<CFlag)\r
3262 .hword (0x76<<8) |(1<<NFlag)|(1<<CFlag)\r
3263 .hword (0x77<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3264 .hword (0x78<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3265 .hword (0x79<<8) |(1<<NFlag)|(1<<CFlag)\r
3266 .hword (0x7A<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3267 .hword (0x7B<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3268 .hword (0x7C<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3269 .hword (0x7D<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3270 .hword (0x7E<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3271 .hword (0x7F<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3272 .hword (0x80<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3273 .hword (0x81<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3274 .hword (0x82<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3275 .hword (0x83<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3276 .hword (0x84<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3277 .hword (0x85<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3278 .hword (0x86<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3279 .hword (0x87<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3280 .hword (0x88<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3281 .hword (0x89<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3282 .hword (0x8A<<8)|(1<<SFlag) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3283 .hword (0x8B<<8)|(1<<SFlag) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3284 .hword (0x8C<<8)|(1<<SFlag) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3285 .hword (0x8D<<8)|(1<<SFlag) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3286 .hword (0x8E<<8)|(1<<SFlag) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3287 .hword (0x8F<<8)|(1<<SFlag) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3288 .hword (0x90<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3289 .hword (0x91<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3290 .hword (0x92<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3291 .hword (0x93<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3292 .hword (0x94<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3293 .hword (0x95<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3294 .hword (0x96<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3295 .hword (0x97<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3296 .hword (0x98<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3297 .hword (0x99<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3298 .hword (0x9A<<8)|(1<<SFlag) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3299 .hword (0x9B<<8)|(1<<SFlag) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3300 .hword (0x9C<<8)|(1<<SFlag) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3301 .hword (0x9D<<8)|(1<<SFlag) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3302 .hword (0x9E<<8)|(1<<SFlag) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3303 .hword (0x9F<<8)|(1<<SFlag) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3304 .hword (0xA0<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3305 .hword (0xA1<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3306 .hword (0xA2<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3307 .hword (0xA3<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3308 .hword (0xA4<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3309 .hword (0xA5<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3310 .hword (0xA6<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3311 .hword (0xA7<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3312 .hword (0xA8<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3313 .hword (0xA9<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3314 .hword (0xAA<<8)|(1<<SFlag) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3315 .hword (0xAB<<8)|(1<<SFlag) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3316 .hword (0xAC<<8)|(1<<SFlag) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3317 .hword (0xAD<<8)|(1<<SFlag) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3318 .hword (0xAE<<8)|(1<<SFlag) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3319 .hword (0xAF<<8)|(1<<SFlag) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3320 .hword (0xB0<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3321 .hword (0xB1<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3322 .hword (0xB2<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3323 .hword (0xB3<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3324 .hword (0xB4<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3325 .hword (0xB5<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3326 .hword (0xB6<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3327 .hword (0xB7<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3328 .hword (0xB8<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3329 .hword (0xB9<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3330 .hword (0xBA<<8)|(1<<SFlag) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3331 .hword (0xBB<<8)|(1<<SFlag) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3332 .hword (0xBC<<8)|(1<<SFlag) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3333 .hword (0xBD<<8)|(1<<SFlag) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3334 .hword (0xBE<<8)|(1<<SFlag) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3335 .hword (0xBF<<8)|(1<<SFlag) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3336 .hword (0xC0<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3337 .hword (0xC1<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3338 .hword (0xC2<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3339 .hword (0xC3<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3340 .hword (0xC4<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3341 .hword (0xC5<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3342 .hword (0xC6<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3343 .hword (0xC7<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3344 .hword (0xC8<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3345 .hword (0xC9<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3346 .hword (0xCA<<8)|(1<<SFlag) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3347 .hword (0xCB<<8)|(1<<SFlag) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3348 .hword (0xCC<<8)|(1<<SFlag) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3349 .hword (0xCD<<8)|(1<<SFlag) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3350 .hword (0xCE<<8)|(1<<SFlag) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3351 .hword (0xCF<<8)|(1<<SFlag) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3352 .hword (0xD0<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3353 .hword (0xD1<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3354 .hword (0xD2<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3355 .hword (0xD3<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3356 .hword (0xD4<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3357 .hword (0xD5<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3358 .hword (0xD6<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3359 .hword (0xD7<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3360 .hword (0xD8<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3361 .hword (0xD9<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3362 .hword (0xDA<<8)|(1<<SFlag) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3363 .hword (0xDB<<8)|(1<<SFlag) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3364 .hword (0xDC<<8)|(1<<SFlag) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3365 .hword (0xDD<<8)|(1<<SFlag) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3366 .hword (0xDE<<8)|(1<<SFlag) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3367 .hword (0xDF<<8)|(1<<SFlag) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3368 .hword (0xE0<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3369 .hword (0xE1<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3370 .hword (0xE2<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3371 .hword (0xE3<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3372 .hword (0xE4<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3373 .hword (0xE5<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3374 .hword (0xE6<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3375 .hword (0xE7<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3376 .hword (0xE8<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3377 .hword (0xE9<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3378 .hword (0xEA<<8)|(1<<SFlag) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3379 .hword (0xEB<<8)|(1<<SFlag) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3380 .hword (0xEC<<8)|(1<<SFlag) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3381 .hword (0xED<<8)|(1<<SFlag) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3382 .hword (0xEE<<8)|(1<<SFlag) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3383 .hword (0xEF<<8)|(1<<SFlag) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3384 .hword (0xF0<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3385 .hword (0xF1<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3386 .hword (0xF2<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3387 .hword (0xF3<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3388 .hword (0xF4<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3389 .hword (0xF5<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3390 .hword (0xF6<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3391 .hword (0xF7<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3392 .hword (0xF8<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3393 .hword (0xF9<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3394 .hword (0xFA<<8)|(1<<SFlag) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3395 .hword (0xFB<<8)|(1<<SFlag) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3396 .hword (0xFC<<8)|(1<<SFlag) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3397 .hword (0xFD<<8)|(1<<SFlag) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3398 .hword (0xFE<<8)|(1<<SFlag) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3399 .hword (0xFF<<8)|(1<<SFlag) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3400 .hword (0x00<<8) |(1<<ZFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3401 .hword (0x01<<8) |(1<<NFlag)|(1<<CFlag)\r
3402 .hword (0x02<<8) |(1<<NFlag)|(1<<CFlag)\r
3403 .hword (0x03<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3404 .hword (0x04<<8) |(1<<NFlag)|(1<<CFlag)\r
3405 .hword (0x05<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3406 .hword (0x06<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3407 .hword (0x07<<8) |(1<<NFlag)|(1<<CFlag)\r
3408 .hword (0x08<<8) |(1<<NFlag)|(1<<CFlag)\r
3409 .hword (0x09<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3410 .hword (0x0A<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3411 .hword (0x0B<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3412 .hword (0x0C<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3413 .hword (0x0D<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3414 .hword (0x0E<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3415 .hword (0x0F<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3416 .hword (0x10<<8) |(1<<NFlag)|(1<<CFlag)\r
3417 .hword (0x11<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3418 .hword (0x12<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3419 .hword (0x13<<8) |(1<<NFlag)|(1<<CFlag)\r
3420 .hword (0x14<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3421 .hword (0x15<<8) |(1<<NFlag)|(1<<CFlag)\r
3422 .hword (0x16<<8) |(1<<NFlag)|(1<<CFlag)\r
3423 .hword (0x17<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3424 .hword (0x18<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3425 .hword (0x19<<8) |(1<<NFlag)|(1<<CFlag)\r
3426 .hword (0x1A<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3427 .hword (0x1B<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3428 .hword (0x1C<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3429 .hword (0x1D<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3430 .hword (0x1E<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3431 .hword (0x1F<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3432 .hword (0x20<<8) |(1<<NFlag)|(1<<CFlag)\r
3433 .hword (0x21<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3434 .hword (0x22<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3435 .hword (0x23<<8) |(1<<NFlag)|(1<<CFlag)\r
3436 .hword (0x24<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3437 .hword (0x25<<8) |(1<<NFlag)|(1<<CFlag)\r
3438 .hword (0x26<<8) |(1<<NFlag)|(1<<CFlag)\r
3439 .hword (0x27<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3440 .hword (0x28<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3441 .hword (0x29<<8) |(1<<NFlag)|(1<<CFlag)\r
3442 .hword (0x2A<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3443 .hword (0x2B<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3444 .hword (0x2C<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3445 .hword (0x2D<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3446 .hword (0x2E<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3447 .hword (0x2F<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3448 .hword (0x30<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3449 .hword (0x31<<8) |(1<<NFlag)|(1<<CFlag)\r
3450 .hword (0x32<<8) |(1<<NFlag)|(1<<CFlag)\r
3451 .hword (0x33<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3452 .hword (0x34<<8) |(1<<NFlag)|(1<<CFlag)\r
3453 .hword (0x35<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3454 .hword (0x36<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3455 .hword (0x37<<8) |(1<<NFlag)|(1<<CFlag)\r
3456 .hword (0x38<<8) |(1<<NFlag)|(1<<CFlag)\r
3457 .hword (0x39<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3458 .hword (0x3A<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3459 .hword (0x3B<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3460 .hword (0x3C<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3461 .hword (0x3D<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3462 .hword (0x3E<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3463 .hword (0x3F<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3464 .hword (0x40<<8) |(1<<NFlag)|(1<<CFlag)\r
3465 .hword (0x41<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3466 .hword (0x42<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3467 .hword (0x43<<8) |(1<<NFlag)|(1<<CFlag)\r
3468 .hword (0x44<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3469 .hword (0x45<<8) |(1<<NFlag)|(1<<CFlag)\r
3470 .hword (0x46<<8) |(1<<NFlag)|(1<<CFlag)\r
3471 .hword (0x47<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3472 .hword (0x48<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3473 .hword (0x49<<8) |(1<<NFlag)|(1<<CFlag)\r
3474 .hword (0x4A<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3475 .hword (0x4B<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3476 .hword (0x4C<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3477 .hword (0x4D<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3478 .hword (0x4E<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3479 .hword (0x4F<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3480 .hword (0x50<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3481 .hword (0x51<<8) |(1<<NFlag)|(1<<CFlag)\r
3482 .hword (0x52<<8) |(1<<NFlag)|(1<<CFlag)\r
3483 .hword (0x53<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3484 .hword (0x54<<8) |(1<<NFlag)|(1<<CFlag)\r
3485 .hword (0x55<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3486 .hword (0x56<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3487 .hword (0x57<<8) |(1<<NFlag)|(1<<CFlag)\r
3488 .hword (0x58<<8) |(1<<NFlag)|(1<<CFlag)\r
3489 .hword (0x59<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3490 .hword (0x5A<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3491 .hword (0x5B<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3492 .hword (0x5C<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3493 .hword (0x5D<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3494 .hword (0x5E<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3495 .hword (0x5F<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3496 .hword (0x60<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3497 .hword (0x61<<8) |(1<<NFlag)|(1<<CFlag)\r
3498 .hword (0x62<<8) |(1<<NFlag)|(1<<CFlag)\r
3499 .hword (0x63<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3500 .hword (0x64<<8) |(1<<NFlag)|(1<<CFlag)\r
3501 .hword (0x65<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3502 .hword (0x66<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3503 .hword (0x67<<8) |(1<<NFlag)|(1<<CFlag)\r
3504 .hword (0x68<<8) |(1<<NFlag)|(1<<CFlag)\r
3505 .hword (0x69<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3506 .hword (0x6A<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3507 .hword (0x6B<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3508 .hword (0x6C<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3509 .hword (0x6D<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3510 .hword (0x6E<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3511 .hword (0x6F<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3512 .hword (0x70<<8) |(1<<NFlag)|(1<<CFlag)\r
3513 .hword (0x71<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3514 .hword (0x72<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3515 .hword (0x73<<8) |(1<<NFlag)|(1<<CFlag)\r
3516 .hword (0x74<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3517 .hword (0x75<<8) |(1<<NFlag)|(1<<CFlag)\r
3518 .hword (0x76<<8) |(1<<NFlag)|(1<<CFlag)\r
3519 .hword (0x77<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3520 .hword (0x78<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3521 .hword (0x79<<8) |(1<<NFlag)|(1<<CFlag)\r
3522 .hword (0x7A<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3523 .hword (0x7B<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3524 .hword (0x7C<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3525 .hword (0x7D<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3526 .hword (0x7E<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3527 .hword (0x7F<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3528 .hword (0x80<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3529 .hword (0x81<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3530 .hword (0x82<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3531 .hword (0x83<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3532 .hword (0x84<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3533 .hword (0x85<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3534 .hword (0x86<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3535 .hword (0x87<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3536 .hword (0x88<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3537 .hword (0x89<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3538 .hword (0x8A<<8)|(1<<SFlag) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3539 .hword (0x8B<<8)|(1<<SFlag) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3540 .hword (0x8C<<8)|(1<<SFlag) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3541 .hword (0x8D<<8)|(1<<SFlag) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3542 .hword (0x8E<<8)|(1<<SFlag) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3543 .hword (0x8F<<8)|(1<<SFlag) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3544 .hword (0x90<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3545 .hword (0x91<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3546 .hword (0x92<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3547 .hword (0x93<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3548 .hword (0x94<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3549 .hword (0x95<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3550 .hword (0x96<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3551 .hword (0x97<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3552 .hword (0x98<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3553 .hword (0x99<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3554 \r
3555.align 4\r
3556\r
3557AF_Z80: .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 0\r
3558 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 1\r
3559 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 2\r
3560 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 3\r
3561 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 4\r
3562 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 5\r
3563 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 6\r
3564 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 7\r
3565 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 8\r
3566 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 9\r
3567 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 10\r
3568 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 11\r
3569 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 12\r
3570 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 13\r
3571 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 14\r
3572 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 15\r
3573 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 16\r
3574 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 17\r
3575 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 18\r
3576 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 19\r
3577 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 20\r
3578 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 21\r
3579 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 22\r
3580 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 23\r
3581 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 24\r
3582 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 25\r
3583 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 26\r
3584 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 27\r
3585 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 28\r
3586 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 29\r
3587 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 30\r
3588 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 31\r
3589 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 32\r
3590 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 33\r
3591 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 34\r
3592 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 35\r
3593 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 36\r
3594 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 37\r
3595 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 38\r
3596 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 39\r
3597 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 40\r
3598 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 41\r
3599 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 42\r
3600 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 43\r
3601 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 44\r
3602 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 45\r
3603 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 46\r
3604 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 47\r
3605 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 48\r
3606 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 49\r
3607 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 50\r
3608 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 51\r
3609 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 52\r
3610 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 53\r
3611 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 54\r
3612 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 55\r
3613 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 56\r
3614 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 57\r
3615 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 58\r
3616 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 59\r
3617 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 60\r
3618 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 61\r
3619 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 62\r
3620 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 63\r
3621 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 64\r
3622 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 65\r
3623 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 66\r
3624 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 67\r
3625 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 68\r
3626 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 69\r
3627 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 70\r
3628 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 71\r
3629 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 72\r
3630 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 73\r
3631 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 74\r
3632 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 75\r
3633 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 76\r
3634 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 77\r
3635 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 78\r
3636 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 79\r
3637 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 80\r
3638 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 81\r
3639 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 82\r
3640 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 83\r
3641 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 84\r
3642 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 85\r
3643 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 86\r
3644 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 87\r
3645 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 88\r
3646 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 89\r
3647 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 90\r
3648 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 91\r
3649 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 92\r
3650 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 93\r
3651 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 94\r
3652 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 95\r
3653 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 96\r
3654 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 97\r
3655 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 98\r
3656 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 99\r
3657 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 100\r
3658 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 101\r
3659 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 102\r
3660 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 103\r
3661 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 104\r
3662 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 105\r
3663 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 106\r
3664 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 107\r
3665 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 108\r
3666 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 109\r
3667 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 110\r
3668 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 111\r
3669 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 112\r
3670 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 113\r
3671 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 114\r
3672 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 115\r
3673 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 116\r
3674 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 117\r
3675 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 118\r
3676 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 119\r
3677 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 120\r
3678 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 121\r
3679 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 122\r
3680 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 123\r
3681 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 124\r
3682 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 125\r
3683 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 126\r
3684 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 127\r
3685 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 128\r
3686 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 129\r
3687 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 130\r
3688 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 131\r
3689 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 132\r
3690 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 133\r
3691 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 134\r
3692 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 135\r
3693 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 136\r
3694 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 137\r
3695 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 138\r
3696 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 139\r
3697 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 140\r
3698 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 141\r
3699 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 142\r
3700 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 143\r
3701 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 144\r
3702 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 145\r
3703 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 146\r
3704 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 147\r
3705 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 148\r
3706 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 149\r
3707 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 150\r
3708 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 151\r
3709 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 152\r
3710 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 153\r
3711 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 154\r
3712 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 155\r
3713 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 156\r
3714 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 157\r
3715 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 158\r
3716 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 159\r
3717 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 160\r
3718 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 161\r
3719 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 162\r
3720 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 163\r
3721 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 164\r
3722 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 165\r
3723 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 166\r
3724 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 167\r
3725 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 168\r
3726 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 169\r
3727 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 170\r
3728 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 171\r
3729 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 172\r
3730 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 173\r
3731 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 174\r
3732 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 175\r
3733 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 176\r
3734 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 177\r
3735 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 178\r
3736 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 179\r
3737 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 180\r
3738 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 181\r
3739 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 182\r
3740 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 183\r
3741 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 184\r
3742 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 185\r
3743 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 186\r
3744 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 187\r
3745 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 188\r
3746 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 189\r
3747 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 190\r
3748 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 191\r
3749 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 192\r
3750 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 193\r
3751 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 194\r
3752 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 195\r
3753 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 196\r
3754 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 197\r
3755 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 198\r
3756 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 199\r
3757 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 200\r
3758 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 201\r
3759 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 202\r
3760 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 203\r
3761 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 204\r
3762 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 205\r
3763 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 206\r
3764 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 207\r
3765 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 208\r
3766 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 209\r
3767 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 210\r
3768 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 211\r
3769 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 212\r
3770 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 213\r
3771 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 214\r
3772 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 215\r
3773 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 216\r
3774 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 217\r
3775 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 218\r
3776 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 219\r
3777 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 220\r
3778 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 221\r
3779 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 222\r
3780 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 223\r
3781 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 224\r
3782 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 225\r
3783 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 226\r
3784 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 227\r
3785 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 228\r
3786 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 229\r
3787 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 230\r
3788 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 231\r
3789 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 232\r
3790 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 233\r
3791 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 234\r
3792 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 235\r
3793 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 236\r
3794 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 237\r
3795 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 238\r
3796 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 239\r
3797 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 240\r
3798 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 241\r
3799 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 242\r
3800 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 243\r
3801 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 244\r
3802 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 245\r
3803 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 246\r
3804 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 247\r
3805 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 248\r
3806 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 249\r
3807 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 250\r
3808 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 251\r
3809 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 252\r
3810 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 253\r
3811 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 254\r
3812 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 255\r
3813\r
3814.align 4\r
3815\r
3816AF_ARM: .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 0\r
3817 .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 1\r
3818 .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 2\r
3819 .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 3\r
3820 .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 4\r
3821 .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 5\r
3822 .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 6\r
3823 .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 7\r
3824 .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 8\r
3825 .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 9\r
3826 .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 10\r
3827 .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 11\r
3828 .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 12\r
3829 .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 13\r
3830 .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 14\r
3831 .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 15\r
3832 .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 16\r
3833 .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 17\r
3834 .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 18\r
3835 .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 19\r
3836 .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 20\r
3837 .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 21\r
3838 .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 22\r
3839 .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 23\r
3840 .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 24\r
3841 .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 25\r
3842 .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 26\r
3843 .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 27\r
3844 .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 28\r
3845 .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 29\r
3846 .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 30\r
3847 .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 31\r
3848 .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 32\r
3849 .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 33\r
3850 .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 34\r
3851 .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 35\r
3852 .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 36\r
3853 .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 37\r
3854 .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 38\r
3855 .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 39\r
3856 .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 40\r
3857 .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 41\r
3858 .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 42\r
3859 .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 43\r
3860 .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 44\r
3861 .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 45\r
3862 .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 46\r
3863 .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 47\r
3864 .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 48\r
3865 .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 49\r
3866 .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 50\r
3867 .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 51\r
3868 .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 52\r
3869 .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 53\r
3870 .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 54\r
3871 .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 55\r
3872 .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 56\r
3873 .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 57\r
3874 .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 58\r
3875 .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 59\r
3876 .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 60\r
3877 .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 61\r
3878 .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 62\r
3879 .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 63\r
3880 .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 64\r
3881 .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 65\r
3882 .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 66\r
3883 .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 67\r
3884 .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 68\r
3885 .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 69\r
3886 .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 70\r
3887 .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 71\r
3888 .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 72\r
3889 .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 73\r
3890 .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 74\r
3891 .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 75\r
3892 .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 76\r
3893 .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 77\r
3894 .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 78\r
3895 .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 79\r
3896 .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 80\r
3897 .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 81\r
3898 .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 82\r
3899 .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 83\r
3900 .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 84\r
3901 .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 85\r
3902 .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 86\r
3903 .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 87\r
3904 .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 88\r
3905 .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 89\r
3906 .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 90\r
3907 .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 91\r
3908 .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 92\r
3909 .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 93\r
3910 .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 94\r
3911 .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 95\r
3912 .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 96\r
3913 .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 97\r
3914 .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 98\r
3915 .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 99\r
3916 .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 100\r
3917 .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 101\r
3918 .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 102\r
3919 .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 103\r
3920 .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 104\r
3921 .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 105\r
3922 .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 106\r
3923 .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 107\r
3924 .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 108\r
3925 .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 109\r
3926 .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 110\r
3927 .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 111\r
3928 .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 112\r
3929 .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 113\r
3930 .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 114\r
3931 .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 115\r
3932 .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 116\r
3933 .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 117\r
3934 .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 118\r
3935 .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 119\r
3936 .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 120\r
3937 .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 121\r
3938 .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 122\r
3939 .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 123\r
3940 .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 124\r
3941 .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 125\r
3942 .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 126\r
3943 .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 127\r
3944 .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 128\r
3945 .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 129\r
3946 .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 130\r
3947 .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 131\r
3948 .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 132\r
3949 .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 133\r
3950 .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 134\r
3951 .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 135\r
3952 .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 136\r
3953 .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 137\r
3954 .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 138\r
3955 .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 139\r
3956 .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 140\r
3957 .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 141\r
3958 .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 142\r
3959 .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 143\r
3960 .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 144\r
3961 .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 145\r
3962 .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 146\r
3963 .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 147\r
3964 .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 148\r
3965 .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 149\r
3966 .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 150\r
3967 .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 151\r
3968 .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 152\r
3969 .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 153\r
3970 .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 154\r
3971 .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 155\r
3972 .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 156\r
3973 .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 157\r
3974 .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 158\r
3975 .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 159\r
3976 .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 160\r
3977 .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 161\r
3978 .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 162\r
3979 .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 163\r
3980 .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 164\r
3981 .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 165\r
3982 .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 166\r
3983 .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 167\r
3984 .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 168\r
3985 .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 169\r
3986 .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 170\r
3987 .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 171\r
3988 .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 172\r
3989 .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 173\r
3990 .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 174\r
3991 .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 175\r
3992 .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 176\r
3993 .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 177\r
3994 .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 178\r
3995 .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 179\r
3996 .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 180\r
3997 .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 181\r
3998 .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 182\r
3999 .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 183\r
4000 .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 184\r
4001 .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 185\r
4002 .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 186\r
4003 .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 187\r
4004 .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 188\r
4005 .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 189\r
4006 .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 190\r
4007 .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 191\r
4008 .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 192\r
4009 .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 193\r
4010 .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 194\r
4011 .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 195\r
4012 .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 196\r
4013 .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 197\r
4014 .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 198\r
4015 .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 199\r
4016 .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 200\r
4017 .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 201\r
4018 .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 202\r
4019 .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 203\r
4020 .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 204\r
4021 .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 205\r
4022 .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 206\r
4023 .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 207\r
4024 .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 208\r
4025 .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 209\r
4026 .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 210\r
4027 .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 211\r
4028 .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 212\r
4029 .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 213\r
4030 .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 214\r
4031 .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 215\r
4032 .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 216\r
4033 .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 217\r
4034 .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 218\r
4035 .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 219\r
4036 .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 220\r
4037 .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 221\r
4038 .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 222\r
4039 .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 223\r
4040 .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 224\r
4041 .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 225\r
4042 .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 226\r
4043 .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 227\r
4044 .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 228\r
4045 .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 229\r
4046 .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 230\r
4047 .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 231\r
4048 .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 232\r
4049 .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 233\r
4050 .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 234\r
4051 .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 235\r
4052 .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 236\r
4053 .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 237\r
4054 .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 238\r
4055 .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 239\r
4056 .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 240\r
4057 .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 241\r
4058 .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 242\r
4059 .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 243\r
4060 .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 244\r
4061 .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 245\r
4062 .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 246\r
4063 .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 247\r
4064 .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 248\r
4065 .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 249\r
4066 .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 250\r
4067 .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 251\r
4068 .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 252\r
4069 .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 253\r
4070 .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 254\r
4071 .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 255\r
4072\r
4073.align 4\r
4074\r
4075PZSTable_data: .byte (1<<ZFlag)|(1<<VFlag),0,0,(1<<VFlag),0,(1<<VFlag),(1<<VFlag),0\r
4076 .byte 0,(1<<VFlag),(1<<VFlag),0,(1<<VFlag),0,0,(1<<VFlag)\r
4077 .byte 0,(1<<VFlag),(1<<VFlag),0,(1<<VFlag),0,0,(1<<VFlag),(1<<VFlag),0,0,(1<<VFlag),0,(1<<VFlag),(1<<VFlag),0\r
4078 .byte 0,(1<<VFlag),(1<<VFlag),0,(1<<VFlag),0,0,(1<<VFlag),(1<<VFlag),0,0,(1<<VFlag),0,(1<<VFlag),(1<<VFlag),0\r
4079 .byte (1<<VFlag),0,0,(1<<VFlag),0,(1<<VFlag),(1<<VFlag),0,0,(1<<VFlag),(1<<VFlag),0,(1<<VFlag),0,0,(1<<VFlag)\r
4080 .byte 0,(1<<VFlag),(1<<VFlag),0,(1<<VFlag),0,0,(1<<VFlag),(1<<VFlag),0,0,(1<<VFlag),0,(1<<VFlag),(1<<VFlag),0\r
4081 .byte (1<<VFlag),0,0,(1<<VFlag),0,(1<<VFlag),(1<<VFlag),0,0,(1<<VFlag),(1<<VFlag),0,(1<<VFlag),0,0,(1<<VFlag)\r
4082 .byte (1<<VFlag),0,0,(1<<VFlag),0,(1<<VFlag),(1<<VFlag),0,0,(1<<VFlag),(1<<VFlag),0,(1<<VFlag),0,0,(1<<VFlag)\r
4083 .byte 0,(1<<VFlag),(1<<VFlag),0,(1<<VFlag),0,0,(1<<VFlag),(1<<VFlag),0,0,(1<<VFlag),0,(1<<VFlag),(1<<VFlag),0\r
4084 .byte (1<<SFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)\r
4085 .byte (1<<SFlag)|(1<<VFlag),(1<<SFlag),(1<<SFlag),(1<<SFlag)|(1<<VFlag)\r
4086 .byte (1<<SFlag)|(1<<VFlag),(1<<SFlag),(1<<SFlag),(1<<SFlag)|(1<<VFlag)\r
4087 .byte (1<<SFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)\r
4088 .byte (1<<SFlag)|(1<<VFlag),(1<<SFlag),(1<<SFlag),(1<<SFlag)|(1<<VFlag)\r
4089 .byte (1<<SFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)\r
4090 .byte (1<<SFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)\r
4091 .byte (1<<SFlag)|(1<<VFlag),(1<<SFlag),(1<<SFlag),(1<<SFlag)|(1<<VFlag)\r
4092 .byte (1<<SFlag)|(1<<VFlag),(1<<SFlag),(1<<SFlag),(1<<SFlag)|(1<<VFlag)\r
4093 .byte (1<<SFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)\r
4094 .byte (1<<SFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)\r
4095 .byte (1<<SFlag)|(1<<VFlag),(1<<SFlag),(1<<SFlag),(1<<SFlag)|(1<<VFlag)\r
4096 .byte (1<<SFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)\r
4097 .byte (1<<SFlag)|(1<<VFlag),(1<<SFlag),(1<<SFlag),(1<<SFlag)|(1<<VFlag)\r
4098 .byte (1<<SFlag)|(1<<VFlag),(1<<SFlag),(1<<SFlag),(1<<SFlag)|(1<<VFlag)\r
4099 .byte (1<<SFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)\r
4100 .byte (1<<SFlag)|(1<<VFlag),(1<<SFlag),(1<<SFlag),(1<<SFlag)|(1<<VFlag)\r
4101 .byte (1<<SFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)\r
4102 .byte (1<<SFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)\r
4103 .byte (1<<SFlag)|(1<<VFlag),(1<<SFlag),(1<<SFlag),(1<<SFlag)|(1<<VFlag)\r
4104 .byte (1<<SFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)\r
4105 .byte (1<<SFlag)|(1<<VFlag),(1<<SFlag),(1<<SFlag),(1<<SFlag)|(1<<VFlag)\r
4106 .byte (1<<SFlag)|(1<<VFlag),(1<<SFlag),(1<<SFlag),(1<<SFlag)|(1<<VFlag)\r
4107 .byte (1<<SFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)\r
4108 .byte (1<<SFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)\r
4109 .byte (1<<SFlag)|(1<<VFlag),(1<<SFlag),(1<<SFlag),(1<<SFlag)|(1<<VFlag)\r
4110 .byte (1<<SFlag)|(1<<VFlag),(1<<SFlag),(1<<SFlag),(1<<SFlag)|(1<<VFlag)\r
4111 .byte (1<<SFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)\r
4112 .byte (1<<SFlag)|(1<<VFlag),(1<<SFlag),(1<<SFlag),(1<<SFlag)|(1<<VFlag)\r
4113 .byte (1<<SFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)\r
4114 .byte (1<<SFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)\r
4115 .byte (1<<SFlag)|(1<<VFlag),(1<<SFlag),(1<<SFlag),(1<<SFlag)|(1<<VFlag) \r
4116\r
4117.align 4\r
4118\r
4119MAIN_opcodes: \r
4120 .word opcode_0_0,opcode_0_1,opcode_0_2,opcode_0_3,opcode_0_4,opcode_0_5,opcode_0_6,opcode_0_7\r
4121 .word opcode_0_8,opcode_0_9,opcode_0_A,opcode_0_B,opcode_0_C,opcode_0_D,opcode_0_E,opcode_0_F\r
4122 .word opcode_1_0,opcode_1_1,opcode_1_2,opcode_1_3,opcode_1_4,opcode_1_5,opcode_1_6,opcode_1_7\r
4123 .word opcode_1_8,opcode_1_9,opcode_1_A,opcode_1_B,opcode_1_C,opcode_1_D,opcode_1_E,opcode_1_F\r
4124 .word opcode_2_0,opcode_2_1,opcode_2_2,opcode_2_3,opcode_2_4,opcode_2_5,opcode_2_6,opcode_2_7\r
4125 .word opcode_2_8,opcode_2_9,opcode_2_A,opcode_2_B,opcode_2_C,opcode_2_D,opcode_2_E,opcode_2_F\r
4126 .word opcode_3_0,opcode_3_1,opcode_3_2,opcode_3_3,opcode_3_4,opcode_3_5,opcode_3_6,opcode_3_7\r
4127 .word opcode_3_8,opcode_3_9,opcode_3_A,opcode_3_B,opcode_3_C,opcode_3_D,opcode_3_E,opcode_3_F\r
4128 .word opcode_4_0,opcode_4_1,opcode_4_2,opcode_4_3,opcode_4_4,opcode_4_5,opcode_4_6,opcode_4_7\r
4129 .word opcode_4_8,opcode_4_9,opcode_4_A,opcode_4_B,opcode_4_C,opcode_4_D,opcode_4_E,opcode_4_F\r
4130 .word opcode_5_0,opcode_5_1,opcode_5_2,opcode_5_3,opcode_5_4,opcode_5_5,opcode_5_6,opcode_5_7\r
4131 .word opcode_5_8,opcode_5_9,opcode_5_A,opcode_5_B,opcode_5_C,opcode_5_D,opcode_5_E,opcode_5_F\r
4132 .word opcode_6_0,opcode_6_1,opcode_6_2,opcode_6_3,opcode_6_4,opcode_6_5,opcode_6_6,opcode_6_7\r
4133 .word opcode_6_8,opcode_6_9,opcode_6_A,opcode_6_B,opcode_6_C,opcode_6_D,opcode_6_E,opcode_6_F\r
4134 .word opcode_7_0,opcode_7_1,opcode_7_2,opcode_7_3,opcode_7_4,opcode_7_5,opcode_7_6,opcode_7_7\r
4135 .word opcode_7_8,opcode_7_9,opcode_7_A,opcode_7_B,opcode_7_C,opcode_7_D,opcode_7_E,opcode_7_F\r
4136 .word opcode_8_0,opcode_8_1,opcode_8_2,opcode_8_3,opcode_8_4,opcode_8_5,opcode_8_6,opcode_8_7\r
4137 .word opcode_8_8,opcode_8_9,opcode_8_A,opcode_8_B,opcode_8_C,opcode_8_D,opcode_8_E,opcode_8_F\r
4138 .word opcode_9_0,opcode_9_1,opcode_9_2,opcode_9_3,opcode_9_4,opcode_9_5,opcode_9_6,opcode_9_7\r
4139 .word opcode_9_8,opcode_9_9,opcode_9_A,opcode_9_B,opcode_9_C,opcode_9_D,opcode_9_E,opcode_9_F\r
4140 .word opcode_A_0,opcode_A_1,opcode_A_2,opcode_A_3,opcode_A_4,opcode_A_5,opcode_A_6,opcode_A_7\r
4141 .word opcode_A_8,opcode_A_9,opcode_A_A,opcode_A_B,opcode_A_C,opcode_A_D,opcode_A_E,opcode_A_F\r
4142 .word opcode_B_0,opcode_B_1,opcode_B_2,opcode_B_3,opcode_B_4,opcode_B_5,opcode_B_6,opcode_B_7\r
4143 .word opcode_B_8,opcode_B_9,opcode_B_A,opcode_B_B,opcode_B_C,opcode_B_D,opcode_B_E,opcode_B_F\r
4144 .word opcode_C_0,opcode_C_1,opcode_C_2,opcode_C_3,opcode_C_4,opcode_C_5,opcode_C_6,opcode_C_7\r
4145 .word opcode_C_8,opcode_C_9,opcode_C_A,opcode_C_B,opcode_C_C,opcode_C_D,opcode_C_E,opcode_C_F\r
4146 .word opcode_D_0,opcode_D_1,opcode_D_2,opcode_D_3,opcode_D_4,opcode_D_5,opcode_D_6,opcode_D_7\r
4147 .word opcode_D_8,opcode_D_9,opcode_D_A,opcode_D_B,opcode_D_C,opcode_D_D,opcode_D_E,opcode_D_F\r
4148 .word opcode_E_0,opcode_E_1,opcode_E_2,opcode_E_3,opcode_E_4,opcode_E_5,opcode_E_6,opcode_E_7\r
4149 .word opcode_E_8,opcode_E_9,opcode_E_A,opcode_E_B,opcode_E_C,opcode_E_D,opcode_E_E,opcode_E_F\r
4150 .word opcode_F_0,opcode_F_1,opcode_F_2,opcode_F_3,opcode_F_4,opcode_F_5,opcode_F_6,opcode_F_7\r
4151 .word opcode_F_8,opcode_F_9,opcode_F_A,opcode_F_B,opcode_F_C,opcode_F_D,opcode_F_E,opcode_F_F\r
4152\r
4153.align 4\r
4154\r
4155EI_DUMMY_opcodes:\r
4156 .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@0\r
4157 .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@0\r
4158 .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@1\r
4159 .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@1\r
4160 .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@2\r
4161 .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@2\r
4162 .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@3\r
4163 .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@3\r
4164 .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@4\r
4165 .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@4\r
4166 .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@5\r
4167 .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@5\r
4168 .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@6\r
4169 .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@6\r
4170 .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@7\r
4171 .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@7\r
4172 .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@8\r
4173 .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@8\r
4174 .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@9\r
4175 .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@9\r
4176 .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@A\r
4177 .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@A\r
4178 .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@B\r
4179 .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@B\r
4180 .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@C\r
4181 .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@C\r
4182 .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@D\r
4183 .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@D\r
4184 .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@E\r
4185 .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@E\r
4186 .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@F\r
4187 .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@F\r
4188\r
4189.text\r
4190.align 4\r
4191\r
4192;@NOP\r
4193opcode_0_0:\r
4194;@LD B,B\r
4195opcode_4_0:\r
4196;@LD C,C\r
4197opcode_4_9:\r
4198;@LD D,D\r
4199opcode_5_2:\r
4200;@LD E,E\r
4201opcode_5_B:\r
4202;@LD H,H\r
4203opcode_6_4:\r
4204;@LD L,L\r
4205opcode_6_D:\r
4206;@LD A,A\r
4207opcode_7_F:\r
4208 fetch 4\r
4209;@LD BC,NN\r
4210opcode_0_1:\r
4211 ldrb r0,[z80pc],#1\r
4212 ldrb r1,[z80pc],#1\r
4213 orr r0,r0,r1, lsl #8\r
4214 mov z80bc,r0, lsl #16\r
4215 fetch 10\r
4216;@LD (BC),A\r
4217opcode_0_2:\r
4218 mov r0,z80a, lsr #24\r
4219 mov r1,z80bc, lsr #16\r
4220 writemem8\r
4221 fetch 7\r
4222;@INC BC\r
4223opcode_0_3:\r
4224 add z80bc,z80bc,#1<<16\r
4225 fetch 6\r
4226;@INC B\r
4227opcode_0_4:\r
4228 opINC8H z80bc\r
4229 fetch 4\r
4230;@DEC B\r
4231opcode_0_5:\r
4232 opDEC8H z80bc\r
4233 fetch 4\r
4234;@LD B,N\r
4235opcode_0_6:\r
4236 ldrb r1,[z80pc],#1\r
4237 and z80bc,z80bc,#0xFF<<16\r
4238 orr z80bc,z80bc,r1, lsl #24\r
4239 fetch 7\r
4240;@RLCA\r
4241opcode_0_7:\r
4242 bic z80f,z80f,#(1<<NFlag)|(1<<HFlag)|(1<<CFlag)\r
4243 movs z80a,z80a, lsl #1\r
4244 orrcs z80a,z80a,#1<<24\r
4245 orrcs z80f,z80f,#1<<CFlag\r
4246 fetch 4\r
4247;@EX AF,AF'\r
4248opcode_0_8:\r
4249 add r1,cpucontext,#z80a2\r
4250 swp z80a,z80a,[r1]\r
4251 add r1,cpucontext,#z80f2\r
4252 swp z80f,z80f,[r1]\r
4253 fetch 4\r
4254;@ADD HL,BC\r
4255opcode_0_9:\r
4256 opADD16 z80hl z80bc\r
4257 fetch 11\r
4258;@LD A,(BC)\r
4259opcode_0_A:\r
4260 mov r0,z80bc, lsr #16\r
4261 readmem8\r
4262 mov z80a,r0, lsl #24\r
4263 fetch 7\r
4264;@DEC BC\r
4265opcode_0_B:\r
4266 sub z80bc,z80bc,#1<<16\r
4267 fetch 6\r
4268;@INC C\r
4269opcode_0_C:\r
4270 opINC8L z80bc\r
4271 fetch 4\r
4272;@DEC C\r
4273opcode_0_D:\r
4274 opDEC8L z80bc\r
4275 fetch 4\r
4276;@LD C,N\r
4277opcode_0_E:\r
4278 ldrb r1,[z80pc],#1\r
4279 and z80bc,z80bc,#0xFF<<24\r
4280 orr z80bc,z80bc,r1, lsl #16\r
4281 fetch 7\r
4282;@RRCA\r
4283opcode_0_F:\r
4284 bic z80f,z80f,#(1<<NFlag)|(1<<HFlag)|(1<<CFlag)\r
4285 movs z80a,z80a, lsr #25\r
4286 orrcs z80a,z80a,#1<<7\r
4287 orrcs z80f,z80f,#1<<CFlag\r
4288 mov z80a,z80a, lsl #24\r
4289 fetch 4\r
4290;@DJNZ $+2\r
4291opcode_1_0:\r
4292 sub z80bc,z80bc,#1<<24\r
4293 tst z80bc,#0xFF<<24\r
4294 ldrsb r1,[z80pc],#1\r
4295 addne z80pc,z80pc,r1\r
4296 subne z80_icount,z80_icount,#5\r
4297 fetch 8\r
4298\r
4299;@LD DE,NN\r
4300opcode_1_1:\r
4301 ldrb r0,[z80pc],#1\r
4302 ldrb r1,[z80pc],#1\r
4303 orr r0,r0,r1, lsl #8\r
4304 mov z80de,r0, lsl #16\r
4305 fetch 10\r
4306;@LD (DE),A\r
4307opcode_1_2:\r
4308 mov r0,z80a, lsr #24\r
4309 writemem8DE\r
4310 fetch 7\r
4311;@INC DE\r
4312opcode_1_3:\r
4313 add z80de,z80de,#1<<16\r
4314 fetch 6\r
4315;@INC D\r
4316opcode_1_4:\r
4317 opINC8H z80de\r
4318 fetch 4\r
4319;@DEC D\r
4320opcode_1_5:\r
4321 opDEC8H z80de\r
4322 fetch 4\r
4323;@LD D,N\r
4324opcode_1_6:\r
4325 ldrb r1,[z80pc],#1\r
4326 and z80de,z80de,#0xFF<<16\r
4327 orr z80de,z80de,r1, lsl #24\r
4328 fetch 7\r
4329;@RLA\r
4330opcode_1_7:\r
4331 tst z80f,#1<<CFlag\r
4332 orrne z80a,z80a,#1<<23\r
4333 bic z80f,z80f,#(1<<NFlag)|(1<<HFlag)|(1<<CFlag)\r
4334 movs z80a,z80a, lsl #1\r
4335 orrcs z80f,z80f,#1<<CFlag\r
4336 fetch 4\r
4337;@JR $+2\r
4338opcode_1_8:\r
4339 ldrsb r1,[z80pc],#1\r
4340 add z80pc,z80pc,r1\r
4341 fetch 12\r
4342;@ADD HL,DE\r
4343opcode_1_9:\r
4344 opADD16 z80hl z80de\r
4345 fetch 11\r
4346;@LD A,(DE)\r
4347opcode_1_A:\r
4348 mov r0,z80de, lsr #16\r
4349 readmem8\r
4350 mov z80a,r0, lsl #24\r
4351 fetch 7\r
4352;@DEC DE\r
4353opcode_1_B:\r
4354 sub z80de,z80de,#1<<16\r
4355 fetch 6\r
4356;@INC E\r
4357opcode_1_C:\r
4358 opINC8L z80de\r
4359 fetch 4\r
4360;@DEC E\r
4361opcode_1_D:\r
4362 opDEC8L z80de\r
4363 fetch 4\r
4364;@LD E,N\r
4365opcode_1_E:\r
4366 ldrb r0,[z80pc],#1\r
4367 and z80de,z80de,#0xFF<<24\r
4368 orr z80de,z80de,r0, lsl #16\r
4369 fetch 7\r
4370;@RRA\r
4371opcode_1_F:\r
4372 orr z80a,z80a,z80f,lsr#1 ;@get C\r
4373 bic z80f,z80f,#(1<<NFlag)|(1<<HFlag)|(1<<CFlag)\r
4374 movs z80a,z80a,ror#25\r
4375 orrcs z80f,z80f,#1<<CFlag\r
4376 mov z80a,z80a,lsl#24\r
4377 fetch 4\r
4378;@JR NZ,$+2\r
4379opcode_2_0:\r
4380 tst z80f,#1<<ZFlag\r
4381 beq opcode_1_8\r
4382 add z80pc,z80pc,#1\r
4383 fetch 7\r
4384;@LD HL,NN\r
4385opcode_2_1:\r
4386 ldrb r0,[z80pc],#1\r
4387 ldrb r1,[z80pc],#1\r
4388 orr r0,r0,r1, lsl #8\r
4389 mov z80hl,r0, lsl #16\r
4390 fetch 10\r
4391;@LD (NN),HL\r
4392opcode_ED_63:\r
4393 eatcycles 4\r
4394;@LD (NN),HL\r
4395opcode_2_2:\r
4396 ldrb r0,[z80pc],#1\r
4397 ldrb r1,[z80pc],#1\r
4398 orr r1,r0,r1, lsl #8\r
4399 mov r0,z80hl, lsr #16\r
4400 writemem16\r
4401 fetch 16\r
4402;@INC HL\r
4403opcode_2_3:\r
4404 add z80hl,z80hl,#1<<16\r
4405 fetch 6\r
4406;@INC H\r
4407opcode_2_4:\r
4408 opINC8H z80hl\r
4409 fetch 4\r
4410;@DEC H\r
4411opcode_2_5:\r
4412 opDEC8H z80hl\r
4413 fetch 4\r
4414;@LD H,N\r
4415opcode_2_6:\r
4416 ldrb r1,[z80pc],#1\r
4417 and z80hl,z80hl,#0xFF<<16\r
4418 orr z80hl,z80hl,r1, lsl #24\r
4419 fetch 7\r
4420DAATABLE_LOCAL: .word DAATable\r
4421;@DAA\r
4422opcode_2_7:\r
4423 mov r1,z80a, lsr #24\r
4424 tst z80f,#1<<CFlag\r
4425 orrne r1,r1,#256\r
4426 tst z80f,#1<<HFlag\r
4427 orrne r1,r1,#512\r
4428 tst z80f,#1<<NFlag\r
4429 orrne r1,r1,#1024\r
4430 ldr r2,DAATABLE_LOCAL\r
4431 add r2,r2,r1, lsl #1\r
4432 ldrh r1,[r2]\r
4433 and z80f,r1,#0xFF\r
4434 and r2,r1,#0xFF<<8\r
4435 mov z80a,r2, lsl #16\r
4436 fetch 4\r
4437;@JR Z,$+2\r
4438opcode_2_8:\r
4439 tst z80f,#1<<ZFlag\r
4440 bne opcode_1_8\r
4441 add z80pc,z80pc,#1\r
4442 fetch 7\r
4443;@ADD HL,HL\r
4444opcode_2_9:\r
4445 opADD16_2 z80hl\r
4446 fetch 11\r
4447;@LD HL,(NN)\r
4448opcode_ED_6B:\r
4449 eatcycles 4\r
4450;@LD HL,(NN)\r
4451opcode_2_A:\r
4452 ldrb r0,[z80pc],#1\r
4453 ldrb r1,[z80pc],#1\r
4454 orr r0,r0,r1, lsl #8\r
4455 readmem16\r
4456 mov z80hl,r0, lsl #16\r
4457 fetch 16\r
4458;@DEC HL\r
4459opcode_2_B:\r
4460 sub z80hl,z80hl,#1<<16\r
4461 fetch 6\r
4462;@INC L\r
4463opcode_2_C:\r
4464 opINC8L z80hl\r
4465 fetch 4\r
4466;@DEC L\r
4467opcode_2_D:\r
4468 opDEC8L z80hl\r
4469 fetch 4\r
4470;@LD L,N\r
4471opcode_2_E:\r
4472 ldrb r0,[z80pc],#1\r
4473 and z80hl,z80hl,#0xFF<<24\r
4474 orr z80hl,z80hl,r0, lsl #16\r
4475 fetch 7\r
4476;@CPL\r
4477opcode_2_F:\r
4478 eor z80a,z80a,#0xFF<<24\r
4479 orr z80f,z80f,#(1<<NFlag)|(1<<HFlag)\r
4480 fetch 4\r
4481;@JR NC,$+2\r
4482opcode_3_0:\r
4483 tst z80f,#1<<CFlag\r
4484 beq opcode_1_8\r
4485 add z80pc,z80pc,#1\r
4486 fetch 7\r
4487;@LD SP,NN\r
4488opcode_3_1:\r
4489 ldrb r0,[z80pc],#1\r
4490 ldrb r1,[z80pc],#1\r
4491\r
4492.if FAST_Z80SP\r
4493 orr r0,r0,r1, lsl #8\r
4494 rebasesp\r
4495 mov z80sp,r0\r
4496.else\r
4497 orr z80sp,r0,r1, lsl #8\r
4498.endif\r
4499 fetch 10\r
4500;@LD (NN),A\r
4501opcode_3_2:\r
4502 ldrb r0,[z80pc],#1\r
4503 ldrb r1,[z80pc],#1\r
4504 orr r1,r0,r1, lsl #8\r
4505 mov r0,z80a, lsr #24\r
4506 writemem8\r
4507 fetch 13\r
4508;@INC SP\r
4509opcode_3_3:\r
4510 add z80sp,z80sp,#1\r
4511 fetch 6\r
4512;@INC (HL)\r
4513opcode_3_4:\r
4514 readmem8HL\r
4515 opINC8b\r
4516 writemem8HL\r
4517 fetch 11\r
4518;@DEC (HL)\r
4519opcode_3_5:\r
4520 readmem8HL\r
4521 opDEC8b\r
4522 writemem8HL\r
4523 fetch 11\r
4524;@LD (HL),N\r
4525opcode_3_6:\r
4526 ldrb r0,[z80pc],#1\r
4527 writemem8HL\r
4528 fetch 10\r
4529;@SCF\r
4530opcode_3_7:\r
4531 bic z80f,z80f,#(1<<NFlag)|(1<<HFlag)\r
4532 orr z80f,z80f,#1<<CFlag\r
4533 fetch 4\r
4534;@JR C,$+2\r
4535opcode_3_8:\r
4536 tst z80f,#1<<CFlag\r
4537 bne opcode_1_8\r
4538 add z80pc,z80pc,#1\r
28d596af 4539 fetch 7\r
cc68a136 4540;@ADD HL,SP\r
4541opcode_3_9:\r
4542.if FAST_Z80SP\r
4543 ldr r0,[cpucontext,#z80sp_base]\r
4544 sub r0,z80sp,r0\r
4545 opADD16s z80hl r0 16\r
4546.else\r
4547 opADD16s z80hl z80sp 16\r
4548.endif\r
4549 fetch 11\r
4550;@LD A,(NN)\r
4551opcode_3_A:\r
4552 ldrb r0,[z80pc],#1\r
4553 ldrb r1,[z80pc],#1\r
4554 orr r0,r0,r1, lsl #8\r
4555 readmem8\r
4556 mov z80a,r0, lsl #24\r
28d596af 4557 fetch 13\r
cc68a136 4558;@DEC SP\r
4559opcode_3_B:\r
4560 sub z80sp,z80sp,#1\r
4561 fetch 6\r
4562;@INC A\r
4563opcode_3_C:\r
4564 opINC8 z80a\r
4565 fetch 4\r
4566;@DEC A\r
4567opcode_3_D:\r
4568 opDEC8 z80a\r
4569 fetch 4\r
4570;@LD A,N\r
4571opcode_3_E:\r
4572 ldrb r0,[z80pc],#1\r
4573 mov z80a,r0, lsl #24\r
4574 fetch 7\r
4575;@CCF\r
4576opcode_3_F:\r
4577 bic z80f,z80f,#(1<<NFlag)|(1<<HFlag)\r
4578 tst z80f,#1<<CFlag\r
4579 orrne z80f,z80f,#1<<HFlag\r
4580 eor z80f,z80f,#1<<CFlag\r
4581 fetch 4\r
4582\r
4583;@LD B,C\r
4584opcode_4_1:\r
4585 and z80bc,z80bc,#0xFF<<16\r
4586 orr z80bc,z80bc,z80bc, lsl #8\r
4587 fetch 4\r
4588;@LD B,D\r
4589opcode_4_2:\r
4590 and z80bc,z80bc,#0xFF<<16\r
4591 and r1,z80de,#0xFF<<24\r
4592 orr z80bc,z80bc,r1\r
4593 fetch 4\r
4594;@LD B,E\r
4595opcode_4_3:\r
4596 and z80bc,z80bc,#0xFF<<16\r
4597 and r1,z80de,#0xFF<<16\r
4598 orr z80bc,z80bc,r1, lsl #8\r
4599 fetch 4\r
4600;@LD B,H\r
4601opcode_4_4:\r
4602 and z80bc,z80bc,#0xFF<<16\r
4603 and r1,z80hl,#0xFF<<24\r
4604 orr z80bc,z80bc,r1\r
4605 fetch 4\r
4606;@LD B,L\r
4607opcode_4_5:\r
4608 and z80bc,z80bc,#0xFF<<16\r
4609 and r1,z80hl,#0xFF<<16\r
4610 orr z80bc,z80bc,r1, lsl #8\r
4611 fetch 4\r
4612;@LD B,(HL)\r
4613opcode_4_6:\r
4614 readmem8HL\r
4615 and z80bc,z80bc,#0xFF<<16\r
4616 orr z80bc,z80bc,r0, lsl #24\r
4617 fetch 7\r
4618;@LD B,A\r
4619opcode_4_7:\r
4620 and z80bc,z80bc,#0xFF<<16\r
4621 orr z80bc,z80bc,z80a\r
4622 fetch 4\r
4623;@LD C,B\r
4624opcode_4_8:\r
4625 and z80bc,z80bc,#0xFF<<24\r
4626 orr z80bc,z80bc,z80bc, lsr #8\r
4627 fetch 4\r
4628;@LD C,D\r
4629opcode_4_A:\r
4630 and z80bc,z80bc,#0xFF<<24\r
4631 and r1,z80de,#0xFF<<24\r
4632 orr z80bc,z80bc,r1, lsr #8\r
4633 fetch 4\r
4634;@LD C,E\r
4635opcode_4_B:\r
4636 and z80bc,z80bc,#0xFF<<24\r
4637 and r1,z80de,#0xFF<<16\r
4638 orr z80bc,z80bc,r1 \r
4639 fetch 4\r
4640;@LD C,H\r
4641opcode_4_C:\r
4642 and z80bc,z80bc,#0xFF<<24\r
4643 and r1,z80hl,#0xFF<<24\r
4644 orr z80bc,z80bc,r1, lsr #8\r
4645 fetch 4\r
4646;@LD C,L\r
4647opcode_4_D:\r
4648 and z80bc,z80bc,#0xFF<<24\r
4649 and r1,z80hl,#0xFF<<16\r
4650 orr z80bc,z80bc,r1 \r
4651 fetch 4\r
4652;@LD C,(HL)\r
4653opcode_4_E:\r
4654 readmem8HL\r
4655 and z80bc,z80bc,#0xFF<<24\r
4656 orr z80bc,z80bc,r0, lsl #16\r
4657 fetch 7\r
4658;@LD C,A\r
4659opcode_4_F:\r
4660 and z80bc,z80bc,#0xFF<<24\r
4661 orr z80bc,z80bc,z80a, lsr #8\r
4662 fetch 4\r
4663;@LD D,B\r
4664opcode_5_0:\r
4665 and z80de,z80de,#0xFF<<16\r
4666 and r1,z80bc,#0xFF<<24\r
4667 orr z80de,z80de,r1\r
4668 fetch 4\r
4669;@LD D,C\r
4670opcode_5_1:\r
4671 and z80de,z80de,#0xFF<<16\r
4672 orr z80de,z80de,z80bc, lsl #8\r
4673 fetch 4\r
4674;@LD D,E\r
4675opcode_5_3:\r
4676 and z80de,z80de,#0xFF<<16\r
4677 orr z80de,z80de,z80de, lsl #8\r
4678 fetch 4\r
4679;@LD D,H\r
4680opcode_5_4:\r
4681 and z80de,z80de,#0xFF<<16\r
4682 and r1,z80hl,#0xFF<<24\r
4683 orr z80de,z80de,r1\r
4684 fetch 4\r
4685;@LD D,L\r
4686opcode_5_5:\r
4687 and z80de,z80de,#0xFF<<16\r
4688 orr z80de,z80de,z80hl, lsl #8\r
4689 fetch 4\r
4690;@LD D,(HL)\r
4691opcode_5_6:\r
4692 readmem8HL\r
4693 and z80de,z80de,#0xFF<<16\r
4694 orr z80de,z80de,r0, lsl #24\r
4695 fetch 7\r
4696;@LD D,A\r
4697opcode_5_7:\r
4698 and z80de,z80de,#0xFF<<16\r
4699 orr z80de,z80de,z80a\r
4700 fetch 4\r
4701;@LD E,B\r
4702opcode_5_8:\r
4703 and z80de,z80de,#0xFF<<24\r
4704 and r1,z80bc,#0xFF<<24\r
4705 orr z80de,z80de,r1, lsr #8\r
4706 fetch 4\r
4707;@LD E,C\r
4708opcode_5_9:\r
4709 and z80de,z80de,#0xFF<<24\r
4710 and r1,z80bc,#0xFF<<16\r
4711 orr z80de,z80de,r1 \r
4712 fetch 4\r
4713;@LD E,D\r
4714opcode_5_A:\r
4715 and z80de,z80de,#0xFF<<24\r
4716 orr z80de,z80de,z80de, lsr #8\r
4717 fetch 4\r
4718;@LD E,H\r
4719opcode_5_C:\r
4720 and z80de,z80de,#0xFF<<24\r
4721 and r1,z80hl,#0xFF<<24\r
4722 orr z80de,z80de,r1, lsr #8\r
4723 fetch 4\r
4724;@LD E,L\r
4725opcode_5_D:\r
4726 and z80de,z80de,#0xFF<<24\r
4727 and r1,z80hl,#0xFF<<16\r
4728 orr z80de,z80de,r1 \r
4729 fetch 4\r
4730;@LD E,(HL)\r
4731opcode_5_E:\r
4732 readmem8HL\r
4733 and z80de,z80de,#0xFF<<24\r
4734 orr z80de,z80de,r0, lsl #16\r
4735 fetch 7\r
4736;@LD E,A\r
4737opcode_5_F:\r
4738 and z80de,z80de,#0xFF<<24\r
4739 orr z80de,z80de,z80a, lsr #8\r
4740 fetch 4\r
4741\r
4742;@LD H,B\r
4743opcode_6_0:\r
4744 and z80hl,z80hl,#0xFF<<16\r
4745 and r1,z80bc,#0xFF<<24\r
4746 orr z80hl,z80hl,r1\r
4747 fetch 4\r
4748;@LD H,C\r
4749opcode_6_1:\r
4750 and z80hl,z80hl,#0xFF<<16\r
4751 orr z80hl,z80hl,z80bc, lsl #8\r
4752 fetch 4\r
4753;@LD H,D\r
4754opcode_6_2:\r
4755 and z80hl,z80hl,#0xFF<<16\r
4756 and r1,z80de,#0xFF<<24\r
4757 orr z80hl,z80hl,r1\r
4758 fetch 4\r
4759;@LD H,E\r
4760opcode_6_3:\r
4761 and z80hl,z80hl,#0xFF<<16\r
4762 orr z80hl,z80hl,z80de, lsl #8\r
4763 fetch 4\r
4764;@LD H,L\r
4765opcode_6_5:\r
4766 and z80hl,z80hl,#0xFF<<16\r
4767 orr z80hl,z80hl,z80hl, lsl #8\r
4768 fetch 4\r
4769;@LD H,(HL)\r
4770opcode_6_6:\r
4771 readmem8HL\r
4772 and z80hl,z80hl,#0xFF<<16\r
4773 orr z80hl,z80hl,r0, lsl #24\r
4774 fetch 7\r
4775;@LD H,A\r
4776opcode_6_7:\r
4777 and z80hl,z80hl,#0xFF<<16\r
4778 orr z80hl,z80hl,z80a\r
4779 fetch 4\r
4780\r
4781;@LD L,B\r
4782opcode_6_8:\r
4783 and z80hl,z80hl,#0xFF<<24\r
4784 and r1,z80bc,#0xFF<<24\r
4785 orr z80hl,z80hl,r1, lsr #8\r
4786 fetch 4\r
4787;@LD L,C\r
4788opcode_6_9:\r
4789 and z80hl,z80hl,#0xFF<<24\r
4790 and r1,z80bc,#0xFF<<16\r
4791 orr z80hl,z80hl,r1\r
4792 fetch 4\r
4793;@LD L,D\r
4794opcode_6_A:\r
4795 and z80hl,z80hl,#0xFF<<24\r
4796 and r1,z80de,#0xFF<<24\r
4797 orr z80hl,z80hl,r1, lsr #8\r
4798 fetch 4\r
4799;@LD L,E\r
4800opcode_6_B:\r
4801 and z80hl,z80hl,#0xFF<<24\r
4802 and r1,z80de,#0xFF<<16\r
4803 orr z80hl,z80hl,r1\r
4804 fetch 4\r
4805;@LD L,H\r
4806opcode_6_C:\r
4807 and z80hl,z80hl,#0xFF<<24\r
4808 orr z80hl,z80hl,z80hl, lsr #8\r
4809 fetch 4\r
4810;@LD L,(HL)\r
4811opcode_6_E:\r
4812 readmem8HL\r
4813 and z80hl,z80hl,#0xFF<<24\r
4814 orr z80hl,z80hl,r0, lsl #16\r
4815 fetch 7\r
4816;@LD L,A\r
4817opcode_6_F:\r
4818 and z80hl,z80hl,#0xFF<<24\r
4819 orr z80hl,z80hl,z80a, lsr #8\r
4820 fetch 4\r
4821\r
4822;@LD (HL),B\r
4823opcode_7_0:\r
4824 mov r0,z80bc, lsr #24\r
4825 writemem8HL\r
4826 fetch 7\r
4827;@LD (HL),C\r
4828opcode_7_1:\r
4829 mov r0,z80bc, lsr #16\r
4830 and r0,r0,#0xFF\r
4831 writemem8HL\r
4832 fetch 7\r
4833;@LD (HL),D\r
4834opcode_7_2:\r
4835 mov r0,z80de, lsr #24\r
4836 writemem8HL\r
4837 fetch 7\r
4838;@LD (HL),E\r
4839opcode_7_3:\r
4840 mov r0,z80de, lsr #16\r
4841 and r0,r0,#0xFF\r
4842 writemem8HL\r
4843 fetch 7\r
4844;@LD (HL),H\r
4845opcode_7_4:\r
4846 mov r0,z80hl, lsr #24\r
4847 writemem8HL\r
4848 fetch 7\r
4849;@LD (HL),L\r
4850opcode_7_5:\r
4851 mov r1,z80hl, lsr #16\r
4852 and r0,r1,#0xFF\r
4853 writemem8\r
4854 fetch 7\r
4855;@HALT\r
4856opcode_7_6:\r
4857 sub z80pc,z80pc,#1\r
4858 ldrb r0,[cpucontext,#z80if]\r
4859 orr r0,r0,#Z80_HALT\r
4860 strb r0,[cpucontext,#z80if]\r
28d596af 4861 mov z80_icount,#0\r
cc68a136 4862 b z80_execute_end\r
4863;@LD (HL),A\r
4864opcode_7_7:\r
4865 mov r0,z80a, lsr #24\r
4866 writemem8HL\r
4867 fetch 7\r
4868\r
4869;@LD A,B\r
4870opcode_7_8:\r
4871 and z80a,z80bc,#0xFF<<24\r
4872 fetch 4\r
4873;@LD A,C\r
4874opcode_7_9:\r
4875 mov z80a,z80bc, lsl #8\r
4876 fetch 4\r
4877;@LD A,D\r
4878opcode_7_A:\r
4879 and z80a,z80de,#0xFF<<24\r
4880 fetch 4\r
4881;@LD A,E\r
4882opcode_7_B:\r
4883 mov z80a,z80de, lsl #8\r
4884 fetch 4\r
4885;@LD A,H\r
4886opcode_7_C:\r
4887 and z80a,z80hl,#0xFF<<24\r
4888 fetch 4\r
4889;@LD A,L\r
4890opcode_7_D:\r
4891 mov z80a,z80hl, lsl #8\r
4892 fetch 4\r
4893;@LD A,(HL)\r
4894opcode_7_E:\r
4895 readmem8HL\r
4896 mov z80a,r0, lsl #24\r
4897 fetch 7\r
4898\r
4899;@ADD A,B\r
4900opcode_8_0:\r
4901 opADDH z80bc\r
4902;@ADD A,C\r
4903opcode_8_1:\r
4904 opADDL z80bc\r
4905;@ADD A,D\r
4906opcode_8_2:\r
4907 opADDH z80de\r
4908;@ADD A,E\r
4909opcode_8_3:\r
4910 opADDL z80de\r
4911;@ADD A,H\r
4912opcode_8_4:\r
4913 opADDH z80hl\r
4914;@ADD A,L\r
4915opcode_8_5:\r
4916 opADDL z80hl\r
4917;@ADD A,(HL)\r
4918opcode_8_6:\r
4919 readmem8HL\r
4920 opADDb\r
4921 fetch 7\r
4922;@ADD A,A\r
4923opcode_8_7:\r
4924 opADDA\r
4925\r
4926;@ADC A,B\r
4927opcode_8_8:\r
4928 opADCH z80bc\r
4929;@ADC A,C\r
4930opcode_8_9:\r
4931 opADCL z80bc\r
4932;@ADC A,D\r
4933opcode_8_A:\r
4934 opADCH z80de\r
4935;@ADC A,E\r
4936opcode_8_B:\r
4937 opADCL z80de\r
4938;@ADC A,H\r
4939opcode_8_C:\r
4940 opADCH z80hl\r
4941;@ADC A,L\r
4942opcode_8_D:\r
4943 opADCL z80hl\r
4944;@ADC A,(HL)\r
4945opcode_8_E:\r
4946 readmem8HL\r
4947 opADCb\r
4948 fetch 7\r
4949;@ADC A,A\r
4950opcode_8_F:\r
4951 opADCA\r
4952\r
4953;@SUB B\r
4954opcode_9_0:\r
4955 opSUBH z80bc\r
4956;@SUB C\r
4957opcode_9_1:\r
4958 opSUBL z80bc\r
4959;@SUB D\r
4960opcode_9_2:\r
4961 opSUBH z80de\r
4962;@SUB E\r
4963opcode_9_3:\r
4964 opSUBL z80de\r
4965;@SUB H\r
4966opcode_9_4:\r
4967 opSUBH z80hl\r
4968;@SUB L\r
4969opcode_9_5:\r
4970 opSUBL z80hl\r
4971;@SUB (HL)\r
4972opcode_9_6:\r
4973 readmem8HL\r
4974 opSUBb\r
4975 fetch 7\r
4976;@SUB A\r
4977opcode_9_7:\r
4978 opSUBA\r
4979\r
4980;@SBC B \r
4981opcode_9_8:\r
4982 opSBCH z80bc\r
4983;@SBC C\r
4984opcode_9_9:\r
4985 opSBCL z80bc\r
4986;@SBC D\r
4987opcode_9_A:\r
4988 opSBCH z80de\r
4989;@SBC E\r
4990opcode_9_B:\r
4991 opSBCL z80de\r
4992;@SBC H\r
4993opcode_9_C:\r
4994 opSBCH z80hl\r
4995;@SBC L\r
4996opcode_9_D:\r
4997 opSBCL z80hl\r
4998;@SBC (HL)\r
4999opcode_9_E:\r
5000 readmem8HL\r
5001 opSBCb\r
5002 fetch 7\r
5003;@SBC A\r
5004opcode_9_F:\r
5005 opSBCA\r
5006\r
5007;@AND B\r
5008opcode_A_0:\r
5009 opANDH z80bc\r
5010;@AND C\r
5011opcode_A_1:\r
5012 opANDL z80bc\r
5013;@AND D\r
5014opcode_A_2:\r
5015 opANDH z80de\r
5016;@AND E\r
5017opcode_A_3:\r
5018 opANDL z80de\r
5019;@AND H\r
5020opcode_A_4:\r
5021 opANDH z80hl\r
5022;@AND L\r
5023opcode_A_5:\r
5024 opANDL z80hl\r
5025;@AND (HL)\r
5026opcode_A_6:\r
5027 readmem8HL\r
5028 opANDb\r
5029 fetch 7\r
5030;@AND A\r
5031opcode_A_7:\r
5032 opANDA\r
5033\r
5034;@XOR B\r
5035opcode_A_8:\r
5036 opXORH z80bc\r
5037;@XOR C\r
5038opcode_A_9:\r
5039 opXORL z80bc\r
5040;@XOR D\r
5041opcode_A_A:\r
5042 opXORH z80de\r
5043;@XOR E\r
5044opcode_A_B:\r
5045 opXORL z80de\r
5046;@XOR H\r
5047opcode_A_C:\r
5048 opXORH z80hl\r
5049;@XOR L\r
5050opcode_A_D:\r
5051 opXORL z80hl\r
5052;@XOR (HL)\r
5053opcode_A_E:\r
5054 readmem8HL\r
5055 opXORb\r
5056 fetch 7\r
5057;@XOR A\r
5058opcode_A_F:\r
5059 opXORA\r
5060\r
5061;@OR B\r
5062opcode_B_0:\r
5063 opORH z80bc\r
5064;@OR C\r
5065opcode_B_1:\r
5066 opORL z80bc\r
5067;@OR D\r
5068opcode_B_2:\r
5069 opORH z80de\r
5070;@OR E\r
5071opcode_B_3:\r
5072 opORL z80de\r
5073;@OR H\r
5074opcode_B_4:\r
5075 opORH z80hl\r
5076;@OR L\r
5077opcode_B_5:\r
5078 opORL z80hl\r
5079;@OR (HL)\r
5080opcode_B_6:\r
5081 readmem8HL\r
5082 opORb\r
5083 fetch 7\r
5084;@OR A\r
5085opcode_B_7:\r
5086 opORA\r
5087\r
5088;@CP B\r
5089opcode_B_8:\r
5090 opCPH z80bc\r
5091;@CP C\r
5092opcode_B_9:\r
5093 opCPL z80bc\r
5094;@CP D\r
5095opcode_B_A:\r
5096 opCPH z80de\r
5097;@CP E\r
5098opcode_B_B:\r
5099 opCPL z80de\r
5100;@CP H\r
5101opcode_B_C:\r
5102 opCPH z80hl\r
5103;@CP L\r
5104opcode_B_D:\r
5105 opCPL z80hl\r
5106;@CP (HL)\r
5107opcode_B_E:\r
5108 readmem8HL\r
5109 opCPb\r
5110 fetch 7\r
5111;@CP A\r
5112opcode_B_F:\r
5113 opCPA\r
5114\r
5115;@RET NZ\r
5116opcode_C_0:\r
5117 tst z80f,#1<<ZFlag\r
28d596af 5118 beq opcode_C_9_cond ;@unconditional RET\r
cc68a136 5119 fetch 5\r
5120\r
5121;@POP BC\r
5122opcode_C_1:\r
5123 opPOPreg z80bc\r
5124\r
5125;@JP NZ,$+3\r
5126opcode_C_2:\r
5127 tst z80f,#1<<ZFlag\r
5128 beq opcode_C_3 ;@unconditional JP\r
5129 add z80pc,z80pc,#2\r
5130 fetch 10\r
5131;@JP $+3\r
5132opcode_C_3:\r
5133 ldrb r0,[z80pc],#1\r
5134 ldrb r1,[z80pc],#1\r
5135 orr r0,r0,r1, lsl #8\r
5136 rebasepc\r
5137 fetch 10\r
5138;@CALL NZ,NN\r
5139opcode_C_4:\r
5140 tst z80f,#1<<ZFlag\r
5141 beq opcode_C_D ;@unconditional CALL\r
5142 add z80pc,z80pc,#2\r
5143 fetch 10\r
5144\r
5145;@PUSH BC\r
5146opcode_C_5:\r
5147 opPUSHreg z80bc\r
5148 fetch 11\r
5149;@ADD A,N\r
5150opcode_C_6:\r
5151 ldrb r0,[z80pc],#1\r
5152 opADDb\r
5153 fetch 7\r
5154;@RST 0\r
5155opcode_C_7:\r
5156 opRST 0x00\r
5157\r
5158;@RET Z\r
5159opcode_C_8:\r
5160 tst z80f,#1<<ZFlag\r
28d596af 5161 bne opcode_C_9_cond ;@unconditional RET\r
cc68a136 5162 fetch 5\r
28d596af 5163\r
5164opcode_C_9_cond:\r
de89bf45 5165 eatcycles 1\r
cc68a136 5166;@RET\r
5167opcode_C_9:\r
5168 opPOP\r
5169 rebasepc\r
5170 fetch 10\r
5171;@JP Z,$+3\r
5172opcode_C_A:\r
5173 tst z80f,#1<<ZFlag\r
5174 bne opcode_C_3 ;@unconditional JP\r
5175 add z80pc,z80pc,#2\r
5176 fetch 10\r
5177\r
5178;@This reads this opcodes_CB lookup table to find the location of\r
5179;@the CB sub for the intruction and then branches to that location\r
5180opcode_C_B:\r
5181 ldrb r0,[z80pc],#1\r
5182 ldr pc,[pc,r0, lsl #2]\r
5183opcodes_CB: .word 0x00000000\r
5184 .word opcode_CB_00,opcode_CB_01,opcode_CB_02,opcode_CB_03,opcode_CB_04,opcode_CB_05,opcode_CB_06,opcode_CB_07\r
5185 .word opcode_CB_08,opcode_CB_09,opcode_CB_0A,opcode_CB_0B,opcode_CB_0C,opcode_CB_0D,opcode_CB_0E,opcode_CB_0F\r
5186 .word opcode_CB_10,opcode_CB_11,opcode_CB_12,opcode_CB_13,opcode_CB_14,opcode_CB_15,opcode_CB_16,opcode_CB_17\r
5187 .word opcode_CB_18,opcode_CB_19,opcode_CB_1A,opcode_CB_1B,opcode_CB_1C,opcode_CB_1D,opcode_CB_1E,opcode_CB_1F\r
5188 .word opcode_CB_20,opcode_CB_21,opcode_CB_22,opcode_CB_23,opcode_CB_24,opcode_CB_25,opcode_CB_26,opcode_CB_27\r
5189 .word opcode_CB_28,opcode_CB_29,opcode_CB_2A,opcode_CB_2B,opcode_CB_2C,opcode_CB_2D,opcode_CB_2E,opcode_CB_2F\r
5190 .word opcode_CB_30,opcode_CB_31,opcode_CB_32,opcode_CB_33,opcode_CB_34,opcode_CB_35,opcode_CB_36,opcode_CB_37\r
5191 .word opcode_CB_38,opcode_CB_39,opcode_CB_3A,opcode_CB_3B,opcode_CB_3C,opcode_CB_3D,opcode_CB_3E,opcode_CB_3F\r
5192 .word opcode_CB_40,opcode_CB_41,opcode_CB_42,opcode_CB_43,opcode_CB_44,opcode_CB_45,opcode_CB_46,opcode_CB_47\r
5193 .word opcode_CB_48,opcode_CB_49,opcode_CB_4A,opcode_CB_4B,opcode_CB_4C,opcode_CB_4D,opcode_CB_4E,opcode_CB_4F\r
5194 .word opcode_CB_50,opcode_CB_51,opcode_CB_52,opcode_CB_53,opcode_CB_54,opcode_CB_55,opcode_CB_56,opcode_CB_57\r
5195 .word opcode_CB_58,opcode_CB_59,opcode_CB_5A,opcode_CB_5B,opcode_CB_5C,opcode_CB_5D,opcode_CB_5E,opcode_CB_5F\r
5196 .word opcode_CB_60,opcode_CB_61,opcode_CB_62,opcode_CB_63,opcode_CB_64,opcode_CB_65,opcode_CB_66,opcode_CB_67\r
5197 .word opcode_CB_68,opcode_CB_69,opcode_CB_6A,opcode_CB_6B,opcode_CB_6C,opcode_CB_6D,opcode_CB_6E,opcode_CB_6F\r
5198 .word opcode_CB_70,opcode_CB_71,opcode_CB_72,opcode_CB_73,opcode_CB_74,opcode_CB_75,opcode_CB_76,opcode_CB_77\r
5199 .word opcode_CB_78,opcode_CB_79,opcode_CB_7A,opcode_CB_7B,opcode_CB_7C,opcode_CB_7D,opcode_CB_7E,opcode_CB_7F\r
5200 .word opcode_CB_80,opcode_CB_81,opcode_CB_82,opcode_CB_83,opcode_CB_84,opcode_CB_85,opcode_CB_86,opcode_CB_87\r
5201 .word opcode_CB_88,opcode_CB_89,opcode_CB_8A,opcode_CB_8B,opcode_CB_8C,opcode_CB_8D,opcode_CB_8E,opcode_CB_8F\r
5202 .word opcode_CB_90,opcode_CB_91,opcode_CB_92,opcode_CB_93,opcode_CB_94,opcode_CB_95,opcode_CB_96,opcode_CB_97\r
5203 .word opcode_CB_98,opcode_CB_99,opcode_CB_9A,opcode_CB_9B,opcode_CB_9C,opcode_CB_9D,opcode_CB_9E,opcode_CB_9F\r
5204 .word opcode_CB_A0,opcode_CB_A1,opcode_CB_A2,opcode_CB_A3,opcode_CB_A4,opcode_CB_A5,opcode_CB_A6,opcode_CB_A7\r
5205 .word opcode_CB_A8,opcode_CB_A9,opcode_CB_AA,opcode_CB_AB,opcode_CB_AC,opcode_CB_AD,opcode_CB_AE,opcode_CB_AF\r
5206 .word opcode_CB_B0,opcode_CB_B1,opcode_CB_B2,opcode_CB_B3,opcode_CB_B4,opcode_CB_B5,opcode_CB_B6,opcode_CB_B7\r
5207 .word opcode_CB_B8,opcode_CB_B9,opcode_CB_BA,opcode_CB_BB,opcode_CB_BC,opcode_CB_BD,opcode_CB_BE,opcode_CB_BF\r
5208 .word opcode_CB_C0,opcode_CB_C1,opcode_CB_C2,opcode_CB_C3,opcode_CB_C4,opcode_CB_C5,opcode_CB_C6,opcode_CB_C7\r
5209 .word opcode_CB_C8,opcode_CB_C9,opcode_CB_CA,opcode_CB_CB,opcode_CB_CC,opcode_CB_CD,opcode_CB_CE,opcode_CB_CF\r
5210 .word opcode_CB_D0,opcode_CB_D1,opcode_CB_D2,opcode_CB_D3,opcode_CB_D4,opcode_CB_D5,opcode_CB_D6,opcode_CB_D7\r
5211 .word opcode_CB_D8,opcode_CB_D9,opcode_CB_DA,opcode_CB_DB,opcode_CB_DC,opcode_CB_DD,opcode_CB_DE,opcode_CB_DF\r
5212 .word opcode_CB_E0,opcode_CB_E1,opcode_CB_E2,opcode_CB_E3,opcode_CB_E4,opcode_CB_E5,opcode_CB_E6,opcode_CB_E7\r
5213 .word opcode_CB_E8,opcode_CB_E9,opcode_CB_EA,opcode_CB_EB,opcode_CB_EC,opcode_CB_ED,opcode_CB_EE,opcode_CB_EF\r
5214 .word opcode_CB_F0,opcode_CB_F1,opcode_CB_F2,opcode_CB_F3,opcode_CB_F4,opcode_CB_F5,opcode_CB_F6,opcode_CB_F7\r
5215 .word opcode_CB_F8,opcode_CB_F9,opcode_CB_FA,opcode_CB_FB,opcode_CB_FC,opcode_CB_FD,opcode_CB_FE,opcode_CB_FF\r
5216\r
5217;@CALL Z,NN\r
5218opcode_C_C:\r
5219 tst z80f,#1<<ZFlag\r
5220 bne opcode_C_D ;@unconditional CALL\r
5221 add z80pc,z80pc,#2\r
5222 fetch 10\r
5223;@CALL NN\r
5224opcode_C_D:\r
5225 ldrb r0,[z80pc],#1\r
5226 ldrb r1,[z80pc],#1\r
5227 ldr r2,[cpucontext,#z80pc_base]\r
5228 sub r2,z80pc,r2\r
5229 orr z80pc,r0,r1, lsl #8\r
5230 opPUSHareg r2\r
5231 mov r0,z80pc\r
5232 rebasepc\r
5233 fetch 17\r
5234;@ADC A,N\r
5235opcode_C_E:\r
5236 ldrb r0,[z80pc],#1\r
5237 opADCb\r
5238 fetch 7\r
5239;@RST 8H\r
5240opcode_C_F:\r
5241 opRST 0x08\r
5242\r
5243;@RET NC\r
5244opcode_D_0:\r
5245 tst z80f,#1<<CFlag\r
28d596af 5246 beq opcode_C_9_cond ;@unconditional RET\r
cc68a136 5247 fetch 5\r
5248;@POP DE\r
5249opcode_D_1:\r
5250 opPOPreg z80de\r
5251\r
5252;@JP NC, $+3\r
5253opcode_D_2 :\r
5254 tst z80f,#1<<CFlag\r
5255 beq opcode_C_3 ;@unconditional JP\r
5256 add z80pc,z80pc,#2\r
5257 fetch 10\r
5258;@OUT (N),A\r
5259opcode_D_3:\r
5260 ldrb r0,[z80pc],#1\r
5261 orr r0,r0,z80a,lsr#16\r
5262 mov r1,z80a, lsr #24\r
5263 opOUT\r
5264 fetch 11\r
5265;@CALL NC,NN\r
5266opcode_D_4:\r
5267 tst z80f,#1<<CFlag\r
5268 beq opcode_C_D ;@unconditional CALL\r
5269 add z80pc,z80pc,#2\r
5270 fetch 10\r
5271;@PUSH DE\r
5272opcode_D_5:\r
5273 opPUSHreg z80de\r
5274 fetch 11\r
5275;@SUB N\r
5276opcode_D_6:\r
5277 ldrb r0,[z80pc],#1\r
5278 opSUBb\r
5279 fetch 7\r
5280\r
5281;@RST 10H\r
5282opcode_D_7:\r
5283 opRST 0x10\r
5284\r
5285;@RET C\r
5286opcode_D_8:\r
5287 tst z80f,#1<<CFlag\r
28d596af 5288 bne opcode_C_9_cond ;@unconditional RET\r
cc68a136 5289 fetch 5\r
5290;@EXX\r
5291opcode_D_9:\r
5292 add r1,cpucontext,#z80bc2\r
5293 swp z80bc,z80bc,[r1]\r
5294 add r1,cpucontext,#z80de2\r
5295 swp z80de,z80de,[r1]\r
5296 add r1,cpucontext,#z80hl2\r
5297 swp z80hl,z80hl,[r1]\r
5298 fetch 4\r
5299;@JP C,$+3\r
5300opcode_D_A:\r
5301 tst z80f,#1<<CFlag\r
5302 bne opcode_C_3 ;@unconditional JP\r
5303 add z80pc,z80pc,#2\r
5304 fetch 10\r
5305;@IN A,(N)\r
5306opcode_D_B:\r
5307 ldrb r0,[z80pc],#1\r
5308 orr r0,r0,z80a,lsr#16\r
5309 opIN\r
5310 mov z80a,r0, lsl #24 ;@ r0 = data read\r
5311 fetch 11\r
5312;@CALL C,NN\r
5313opcode_D_C:\r
5314 tst z80f,#1<<CFlag\r
5315 bne opcode_C_D ;@unconditional CALL\r
5316 add z80pc,z80pc,#2\r
5317 fetch 10\r
5318\r
5319;@opcodes_DD\r
5320opcode_D_D:\r
5321 add z80xx,cpucontext,#z80ix\r
5322 b opcode_D_D_F_D\r
5323opcode_F_D:\r
5324 add z80xx,cpucontext,#z80iy\r
5325opcode_D_D_F_D:\r
5326 ldrb r0,[z80pc],#1\r
5327 ldr pc,[pc,r0, lsl #2]\r
5328opcodes_DD: .word 0x00000000\r
5329 .word opcode_0_0, opcode_0_1, opcode_0_2, opcode_0_3, opcode_0_4, opcode_0_5, opcode_0_6, opcode_0_7\r
5330 .word opcode_0_8, opcode_DD_09,opcode_0_A, opcode_0_B, opcode_0_C, opcode_0_D, opcode_0_E, opcode_0_F\r
5331 .word opcode_1_0, opcode_1_1, opcode_1_2, opcode_1_3, opcode_1_4, opcode_1_5, opcode_1_6, opcode_1_7\r
5332 .word opcode_1_8, opcode_DD_19,opcode_1_A, opcode_1_B, opcode_1_C, opcode_1_D, opcode_1_E, opcode_1_F\r
5333 .word opcode_2_0, opcode_DD_21,opcode_DD_22,opcode_DD_23,opcode_DD_24,opcode_DD_25,opcode_DD_26,opcode_2_7\r
5334 .word opcode_2_8, opcode_DD_29,opcode_DD_2A,opcode_DD_2B,opcode_DD_2C,opcode_DD_2D,opcode_DD_2E,opcode_2_F\r
5335 .word opcode_3_0, opcode_3_1, opcode_3_2, opcode_3_3, opcode_DD_34,opcode_DD_35,opcode_DD_36,opcode_3_7\r
5336 .word opcode_3_8, opcode_DD_39,opcode_3_A, opcode_3_B, opcode_3_C, opcode_3_D, opcode_3_E, opcode_3_F\r
5337 .word opcode_4_0, opcode_4_1, opcode_4_2, opcode_4_3, opcode_DD_44,opcode_DD_45,opcode_DD_46,opcode_4_7\r
5338 .word opcode_4_8, opcode_4_9, opcode_4_A, opcode_4_B, opcode_DD_4C,opcode_DD_4D,opcode_DD_4E,opcode_4_F\r
5339 .word opcode_5_0, opcode_5_1, opcode_5_2, opcode_5_3, opcode_DD_54,opcode_DD_55,opcode_DD_56,opcode_5_7\r
5340 .word opcode_5_8, opcode_5_9, opcode_5_A, opcode_5_B, opcode_DD_5C,opcode_DD_5D,opcode_DD_5E,opcode_5_F\r
5341 .word opcode_DD_60,opcode_DD_61,opcode_DD_62,opcode_DD_63,opcode_DD_64,opcode_DD_65,opcode_DD_66,opcode_DD_67\r
5342 .word opcode_DD_68,opcode_DD_69,opcode_DD_6A,opcode_DD_6B,opcode_DD_6C,opcode_DD_6D,opcode_DD_6E,opcode_DD_6F\r
5343 .word opcode_DD_70,opcode_DD_71,opcode_DD_72,opcode_DD_73,opcode_DD_74,opcode_DD_75,opcode_7_6, opcode_DD_77\r
5344 .word opcode_7_8, opcode_7_9, opcode_7_A, opcode_7_B, opcode_DD_7C,opcode_DD_7D,opcode_DD_7E,opcode_7_F\r
5345 .word opcode_8_0, opcode_8_1, opcode_8_2, opcode_8_3, opcode_DD_84,opcode_DD_85,opcode_DD_86,opcode_8_7\r
5346 .word opcode_8_8, opcode_8_9, opcode_8_A, opcode_8_B, opcode_DD_8C,opcode_DD_8D,opcode_DD_8E,opcode_8_F\r
5347 .word opcode_9_0, opcode_9_1, opcode_9_2, opcode_9_3, opcode_DD_94,opcode_DD_95,opcode_DD_96,opcode_9_7\r
5348 .word opcode_9_8, opcode_9_9, opcode_9_A, opcode_9_B, opcode_DD_9C,opcode_DD_9D,opcode_DD_9E,opcode_9_F\r
5349 .word opcode_A_0, opcode_A_1, opcode_A_2, opcode_A_3, opcode_DD_A4,opcode_DD_A5,opcode_DD_A6,opcode_A_7\r
5350 .word opcode_A_8, opcode_A_9, opcode_A_A, opcode_A_B, opcode_DD_AC,opcode_DD_AD,opcode_DD_AE,opcode_A_F\r
5351 .word opcode_B_0, opcode_B_1, opcode_B_2, opcode_B_3, opcode_DD_B4,opcode_DD_B5,opcode_DD_B6,opcode_B_7\r
5352 .word opcode_B_8, opcode_B_9, opcode_B_A, opcode_B_B, opcode_DD_BC,opcode_DD_BD,opcode_DD_BE,opcode_B_F\r
5353 .word opcode_C_0, opcode_C_1, opcode_C_2, opcode_C_3, opcode_C_4, opcode_C_5, opcode_C_6, opcode_C_7\r
5354 .word opcode_C_8, opcode_C_9, opcode_C_A, opcode_DD_CB,opcode_C_C, opcode_C_D, opcode_C_E, opcode_C_F\r
5355 .word opcode_D_0, opcode_D_1, opcode_D_2, opcode_D_3, opcode_D_4, opcode_D_5, opcode_D_6, opcode_D_7\r
5356 .word opcode_D_8, opcode_D_9, opcode_D_A, opcode_D_B, opcode_D_C, opcode_D_D, opcode_D_E, opcode_D_F\r
5357 .word opcode_E_0, opcode_DD_E1,opcode_E_2, opcode_DD_E3,opcode_E_4, opcode_DD_E5,opcode_E_6, opcode_E_7\r
5358 .word opcode_E_8, opcode_DD_E9,opcode_E_A, opcode_E_B, opcode_E_C, opcode_E_D, opcode_E_E, opcode_E_F\r
5359 .word opcode_F_0, opcode_F_1, opcode_F_2, opcode_F_3, opcode_F_4, opcode_F_5, opcode_F_6, opcode_F_7\r
5360 .word opcode_F_8, opcode_DD_F9,opcode_F_A, opcode_F_B, opcode_F_C, opcode_F_D, opcode_F_E, opcode_F_F\r
5361\r
5362;@SBC A,N\r
5363opcode_D_E:\r
5364 ldrb r0,[z80pc],#1\r
5365 opSBCb\r
5366 fetch 7\r
5367;@RST 18H\r
5368opcode_D_F:\r
5369 opRST 0x18\r
5370\r
5371;@RET PO\r
5372opcode_E_0:\r
5373 tst z80f,#1<<VFlag\r
28d596af 5374 beq opcode_C_9_cond ;@unconditional RET\r
cc68a136 5375 fetch 5\r
5376;@POP HL\r
5377opcode_E_1:\r
5378 opPOPreg z80hl\r
5379\r
5380;@JP PO,$+3\r
5381opcode_E_2:\r
5382 tst z80f,#1<<VFlag\r
5383 beq opcode_C_3 ;@unconditional JP\r
5384 add z80pc,z80pc,#2\r
5385 fetch 10\r
5386;@EX (SP),HL\r
5387opcode_E_3:\r
5388.if FAST_Z80SP\r
5389 ldrb r0,[z80sp]\r
5390 ldrb r1,[z80sp,#1]\r
5391 orr r0,r0,r1, lsl #8\r
5392 mov r1,z80hl, lsr #24\r
5393 strb r1,[z80sp,#1]\r
5394 mov r1,z80hl, lsr #16\r
5395 strb r1,[z80sp]\r
5396 mov z80hl,r0, lsl #16\r
5397.else\r
5398 mov r0,z80sp\r
5399 readmem16\r
5400 mov r1,r0\r
5401 mov r0,z80hl,lsr#16\r
5402 mov z80hl,r1,lsl#16\r
5403 mov r1,z80sp\r
5404 writemem16\r
5405.endif\r
5406 fetch 19\r
5407;@CALL PO,NN\r
5408opcode_E_4:\r
5409 tst z80f,#1<<VFlag\r
5410 beq opcode_C_D ;@unconditional CALL\r
5411 add z80pc,z80pc,#2\r
5412 fetch 10\r
5413;@PUSH HL\r
5414opcode_E_5:\r
5415 opPUSHreg z80hl\r
5416 fetch 11\r
5417;@AND N\r
5418opcode_E_6:\r
5419 ldrb r0,[z80pc],#1\r
5420 opANDb\r
5421 fetch 7\r
5422;@RST 20H\r
5423opcode_E_7:\r
5424 opRST 0x20\r
5425\r
5426;@RET PE\r
5427opcode_E_8:\r
5428 tst z80f,#1<<VFlag\r
28d596af 5429 bne opcode_C_9_cond ;@unconditional RET\r
cc68a136 5430 fetch 5\r
5431;@JP (HL)\r
5432opcode_E_9:\r
5433 mov r0,z80hl, lsr #16\r
5434 rebasepc\r
5435 fetch 4\r
5436;@JP PE,$+3\r
5437opcode_E_A:\r
5438 tst z80f,#1<<VFlag\r
5439 bne opcode_C_3 ;@unconditional JP\r
5440 add z80pc,z80pc,#2\r
5441 fetch 10\r
5442;@EX DE,HL\r
5443opcode_E_B:\r
5444 mov r1,z80de\r
5445 mov z80de,z80hl\r
5446 mov z80hl,r1\r
5447 fetch 4\r
5448;@CALL PE,NN\r
5449opcode_E_C:\r
5450 tst z80f,#1<<VFlag\r
5451 bne opcode_C_D ;@unconditional CALL\r
5452 add z80pc,z80pc,#2\r
5453 fetch 10\r
5454\r
5455;@This should be caught at start\r
5456opcode_E_D:\r
5457 ldrb r1,[z80pc],#1\r
5458 ldr pc,[pc,r1, lsl #2]\r
5459opcodes_ED: .word 0x00000000\r
5460 .word opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF\r
5461 .word opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF\r
5462 .word opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF\r
5463 .word opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF\r
5464 .word opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF\r
5465 .word opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF\r
5466 .word opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF\r
5467 .word opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF\r
5468 .word opcode_ED_40,opcode_ED_41,opcode_ED_42,opcode_ED_43,opcode_ED_44,opcode_ED_45,opcode_ED_46,opcode_ED_47\r
5469 .word opcode_ED_48,opcode_ED_49,opcode_ED_4A,opcode_ED_4B,opcode_ED_44,opcode_ED_4D,opcode_ED_46,opcode_ED_4F\r
5470 .word opcode_ED_50,opcode_ED_51,opcode_ED_52,opcode_ED_53,opcode_ED_44,opcode_ED_45,opcode_ED_56,opcode_ED_57\r
5471 .word opcode_ED_58,opcode_ED_59,opcode_ED_5A,opcode_ED_5B,opcode_ED_44,opcode_ED_45,opcode_ED_5E,opcode_ED_5F\r
5472 .word opcode_ED_60,opcode_ED_61,opcode_ED_62,opcode_ED_63,opcode_ED_44,opcode_ED_45,opcode_ED_46,opcode_ED_67\r
5473 .word opcode_ED_68,opcode_ED_69,opcode_ED_6A,opcode_ED_6B,opcode_ED_44,opcode_ED_45,opcode_ED_46,opcode_ED_6F\r
5474 .word opcode_ED_70,opcode_ED_71,opcode_ED_72,opcode_ED_73,opcode_ED_44,opcode_ED_45,opcode_ED_56,opcode_ED_NF\r
5475 .word opcode_ED_78,opcode_ED_79,opcode_ED_7A,opcode_ED_7B,opcode_ED_44,opcode_ED_45,opcode_ED_5E,opcode_ED_NF\r
5476 .word opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF\r
5477 .word opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF\r
5478 .word opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF\r
5479 .word opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF\r
5480 .word opcode_ED_A0,opcode_ED_A1,opcode_ED_A2,opcode_ED_A3,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF\r
5481 .word opcode_ED_A8,opcode_ED_A9,opcode_ED_AA,opcode_ED_AB,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF\r
5482 .word opcode_ED_B0,opcode_ED_B1,opcode_ED_B2,opcode_ED_B3,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF\r
5483 .word opcode_ED_B8,opcode_ED_B9,opcode_ED_BA,opcode_ED_BB,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF\r
5484 .word opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF\r
5485 .word opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF\r
5486 .word opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF\r
5487 .word opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF\r
5488 .word opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF\r
5489 .word opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF\r
5490 .word opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF\r
5491 .word opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF\r
5492\r
5493;@XOR N\r
5494opcode_E_E:\r
5495 ldrb r0,[z80pc],#1\r
5496 opXORb\r
5497 fetch 7\r
5498;@RST 28H\r
5499opcode_E_F:\r
5500 opRST 0x28\r
5501\r
5502;@RET P\r
5503opcode_F_0:\r
5504 tst z80f,#1<<SFlag\r
28d596af 5505 beq opcode_C_9_cond ;@unconditional RET\r
cc68a136 5506 fetch 5\r
5507;@POP AF\r
5508opcode_F_1:\r
5509.if FAST_Z80SP\r
5510 ldrb z80f,[z80sp],#1\r
5511 sub r0,opcodes,#0x200\r
5512 ldrb z80f,[r0,z80f]\r
5513 ldrb z80a,[z80sp],#1\r
5514 mov z80a,z80a, lsl #24\r
5515.else\r
5516 mov r0,z80sp\r
5517 readmem16\r
5518 add z80sp,z80sp,#2\r
5519 and z80a,r0,#0xFF00\r
5520 mov z80a,z80a,lsl#16\r
5521 and z80f,r0,#0xFF\r
5522 sub r0,opcodes,#0x200\r
5523 ldrb z80f,[r0,z80f]\r
5524.endif\r
5525 fetch 10\r
5526;@JP P,$+3\r
5527opcode_F_2:\r
5528 tst z80f,#1<<SFlag\r
5529 beq opcode_C_3 ;@unconditional JP\r
5530 add z80pc,z80pc,#2\r
5531 fetch 10\r
5532;@DI\r
5533opcode_F_3:\r
5534 ldrb r1,[cpucontext,#z80if]\r
5535 bic r1,r1,#(Z80_IF1)|(Z80_IF2)\r
5536 strb r1,[cpucontext,#z80if]\r
5537 fetch 4\r
5538;@CALL P,NN\r
5539opcode_F_4:\r
5540 tst z80f,#1<<SFlag\r
5541 beq opcode_C_D ;@unconditional CALL\r
5542 add z80pc,z80pc,#2\r
5543 fetch 10\r
5544;@PUSH AF\r
5545opcode_F_5:\r
5546 sub r0,opcodes,#0x300\r
5547 ldrb r0,[r0,z80f]\r
5548 orr r2,r0,z80a,lsr#16\r
5549 opPUSHareg r2\r
5550 fetch 11\r
5551;@OR N\r
5552opcode_F_6:\r
5553 ldrb r0,[z80pc],#1\r
5554 opORb\r
5555 fetch 7\r
5556;@RST 30H\r
5557opcode_F_7:\r
5558 opRST 0x30\r
5559\r
5560;@RET M\r
5561opcode_F_8:\r
5562 tst z80f,#1<<SFlag\r
28d596af 5563 bne opcode_C_9_cond ;@unconditional RET\r
cc68a136 5564 fetch 5\r
5565;@LD SP,HL\r
5566opcode_F_9:\r
5567.if FAST_Z80SP\r
5568 mov r0,z80hl, lsr #16\r
5569 rebasesp\r
5570 mov z80sp,r0\r
5571.else\r
5572 mov z80sp,z80hl, lsr #16\r
5573.endif\r
28d596af 5574 fetch 6\r
cc68a136 5575;@JP M,$+3\r
5576opcode_F_A:\r
5577 tst z80f,#1<<SFlag\r
5578 bne opcode_C_3 ;@unconditional JP\r
5579 add z80pc,z80pc,#2\r
5580 fetch 10\r
5581MAIN_opcodes_POINTER: .word MAIN_opcodes\r
5582EI_DUMMY_opcodes_POINTER: .word EI_DUMMY_opcodes\r
5583;@EI\r
5584opcode_F_B:\r
5585 ldrb r1,[cpucontext,#z80if]\r
de89bf45 5586 mov r2,opcodes\r
cc68a136 5587 orr r1,r1,#(Z80_IF1)|(Z80_IF2)\r
5588 strb r1,[cpucontext,#z80if]\r
5589\r
de89bf45 5590 ldrb r0,[z80pc],#1\r
5591 eatcycles 4\r
cc68a136 5592 ldr opcodes,EI_DUMMY_opcodes_POINTER\r
5593 ldr pc,[r2,r0, lsl #2]\r
5594\r
5595ei_return:\r
5596 ;@point that program returns from EI to check interupts\r
5597 ;@an interupt can not be taken directly after a EI opcode\r
5598 ;@ reset z80pc and opcode pointer\r
de89bf45 5599 ldrh r0,[cpucontext,#z80irq] @ 0x4C, irq and IFF bits\r
cc68a136 5600 sub z80pc,z80pc,#1\r
5601 ldr opcodes,MAIN_opcodes_POINTER\r
5602 ;@ check ints\r
de89bf45 5603 tst r0,#0xff\r
5604 movne r0,r0,lsr #8\r
5605 tstne r0,#1\r
5606 blne DoInterrupt\r
5607\r
cc68a136 5608 ;@ continue\r
de89bf45 5609 fetch 0\r
cc68a136 5610\r
5611;@CALL M,NN\r
5612opcode_F_C:\r
5613 tst z80f,#1<<SFlag\r
5614 bne opcode_C_D ;@unconditional CALL\r
5615 add z80pc,z80pc,#2\r
5616 fetch 10\r
5617\r
5618;@SHOULD BE CAUGHT AT START - FD SECTION\r
5619\r
5620;@CP N\r
5621opcode_F_E:\r
5622 ldrb r0,[z80pc],#1\r
5623 opCPb\r
5624 fetch 7\r
5625;@RST 38H\r
5626opcode_F_F:\r
5627 opRST 0x38\r
5628\r
5629\r
5630;@##################################\r
5631;@##################################\r
5632;@### opcodes CB #########################\r
5633;@##################################\r
5634;@##################################\r
5635\r
5636\r
5637;@RLC B\r
5638opcode_CB_00:\r
5639 opRLCH z80bc\r
5640;@RLC C\r
5641opcode_CB_01:\r
5642 opRLCL z80bc\r
5643;@RLC D\r
5644opcode_CB_02:\r
5645 opRLCH z80de\r
5646;@RLC E\r
5647opcode_CB_03:\r
5648 opRLCL z80de\r
5649;@RLC H\r
5650opcode_CB_04:\r
5651 opRLCH z80hl\r
5652;@RLC L\r
5653opcode_CB_05:\r
5654 opRLCL z80hl\r
5655;@RLC (HL)\r
5656opcode_CB_06:\r
5657 readmem8HL\r
5658 opRLCb\r
5659 writemem8HL\r
5660 fetch 15\r
5661;@RLC A\r
5662opcode_CB_07:\r
5663 opRLCA\r
5664\r
5665;@RRC B\r
5666opcode_CB_08:\r
5667 opRRCH z80bc\r
5668;@RRC C\r
5669opcode_CB_09:\r
5670 opRRCL z80bc\r
5671;@RRC D\r
5672opcode_CB_0A:\r
5673 opRRCH z80de\r
5674;@RRC E\r
5675opcode_CB_0B:\r
5676 opRRCL z80de\r
5677;@RRC H\r
5678opcode_CB_0C:\r
5679 opRRCH z80hl\r
5680;@RRC L\r
5681opcode_CB_0D:\r
5682 opRRCL z80hl\r
5683;@RRC (HL)\r
5684opcode_CB_0E :\r
5685 readmem8HL\r
5686 opRRCb\r
5687 writemem8HL\r
5688 fetch 15\r
5689;@RRC A\r
5690opcode_CB_0F:\r
5691 opRRCA\r
5692\r
5693;@RL B\r
5694opcode_CB_10:\r
5695 opRLH z80bc\r
5696;@RL C\r
5697opcode_CB_11:\r
5698 opRLL z80bc\r
5699;@RL D\r
5700opcode_CB_12:\r
5701 opRLH z80de\r
5702;@RL E\r
5703opcode_CB_13:\r
5704 opRLL z80de\r
5705;@RL H\r
5706opcode_CB_14:\r
5707 opRLH z80hl\r
5708;@RL L\r
5709opcode_CB_15:\r
5710 opRLL z80hl\r
5711;@RL (HL)\r
5712opcode_CB_16:\r
5713 readmem8HL\r
5714 opRLb\r
5715 writemem8HL\r
5716 fetch 15\r
5717;@RL A\r
5718opcode_CB_17:\r
5719 opRLA\r
5720\r
5721;@RR B \r
5722opcode_CB_18:\r
5723 opRRH z80bc\r
5724;@RR C\r
5725opcode_CB_19:\r
5726 opRRL z80bc\r
5727;@RR D\r
5728opcode_CB_1A:\r
5729 opRRH z80de\r
5730;@RR E\r
5731opcode_CB_1B:\r
5732 opRRL z80de\r
5733;@RR H\r
5734opcode_CB_1C:\r
5735 opRRH z80hl\r
5736;@RR L\r
5737opcode_CB_1D:\r
5738 opRRL z80hl\r
5739;@RR (HL)\r
5740opcode_CB_1E:\r
5741 readmem8HL\r
5742 opRRb\r
5743 writemem8HL\r
5744 fetch 15\r
5745;@RR A\r
5746opcode_CB_1F:\r
5747 opRRA\r
5748\r
5749;@SLA B\r
5750opcode_CB_20:\r
5751 opSLAH z80bc\r
5752;@SLA C\r
5753opcode_CB_21:\r
5754 opSLAL z80bc\r
5755;@SLA D\r
5756opcode_CB_22:\r
5757 opSLAH z80de\r
5758;@SLA E\r
5759opcode_CB_23:\r
5760 opSLAL z80de\r
5761;@SLA H\r
5762opcode_CB_24:\r
5763 opSLAH z80hl\r
5764;@SLA L\r
5765opcode_CB_25:\r
5766 opSLAL z80hl\r
5767;@SLA (HL)\r
5768opcode_CB_26:\r
5769 readmem8HL\r
5770 opSLAb\r
5771 writemem8HL\r
5772 fetch 15\r
5773;@SLA A\r
5774opcode_CB_27:\r
5775 opSLAA\r
5776\r
5777;@SRA B\r
5778opcode_CB_28:\r
5779 opSRAH z80bc\r
5780;@SRA C\r
5781opcode_CB_29:\r
5782 opSRAL z80bc\r
5783;@SRA D\r
5784opcode_CB_2A:\r
5785 opSRAH z80de\r
5786;@SRA E\r
5787opcode_CB_2B:\r
5788 opSRAL z80de\r
5789;@SRA H\r
5790opcode_CB_2C:\r
5791 opSRAH z80hl\r
5792;@SRA L\r
5793opcode_CB_2D:\r
5794 opSRAL z80hl\r
5795;@SRA (HL)\r
5796opcode_CB_2E:\r
5797 readmem8HL\r
5798 opSRAb\r
5799 writemem8HL\r
5800 fetch 15\r
5801;@SRA A\r
5802opcode_CB_2F:\r
5803 opSRAA\r
5804\r
5805;@SLL B\r
5806opcode_CB_30:\r
5807 opSLLH z80bc\r
5808;@SLL C\r
5809opcode_CB_31:\r
5810 opSLLL z80bc\r
5811;@SLL D\r
5812opcode_CB_32:\r
5813 opSLLH z80de\r
5814;@SLL E\r
5815opcode_CB_33:\r
5816 opSLLL z80de\r
5817;@SLL H\r
5818opcode_CB_34:\r
5819 opSLLH z80hl\r
5820;@SLL L\r
5821opcode_CB_35:\r
5822 opSLLL z80hl\r
5823;@SLL (HL)\r
5824opcode_CB_36:\r
5825 readmem8HL\r
5826 opSLLb\r
5827 writemem8HL\r
5828 fetch 15\r
5829;@SLL A\r
5830opcode_CB_37:\r
5831 opSLLA\r
5832\r
5833;@SRL B\r
5834opcode_CB_38:\r
5835 opSRLH z80bc\r
5836;@SRL C\r
5837opcode_CB_39:\r
5838 opSRLL z80bc\r
5839;@SRL D\r
5840opcode_CB_3A:\r
5841 opSRLH z80de\r
5842;@SRL E\r
5843opcode_CB_3B:\r
5844 opSRLL z80de\r
5845;@SRL H\r
5846opcode_CB_3C:\r
5847 opSRLH z80hl\r
5848;@SRL L\r
5849opcode_CB_3D:\r
5850 opSRLL z80hl\r
5851;@SRL (HL)\r
5852opcode_CB_3E:\r
5853 readmem8HL\r
5854 opSRLb\r
5855 writemem8HL\r
5856 fetch 15\r
5857;@SRL A\r
5858opcode_CB_3F:\r
5859 opSRLA\r
5860\r
5861\r
5862;@BIT 0,B\r
5863opcode_CB_40:\r
5864 opBITH z80bc 0\r
5865;@BIT 0,C\r
5866opcode_CB_41:\r
5867 opBITL z80bc 0\r
5868;@BIT 0,D\r
5869opcode_CB_42:\r
5870 opBITH z80de 0\r
5871;@BIT 0,E\r
5872opcode_CB_43:\r
5873 opBITL z80de 0\r
5874;@BIT 0,H\r
5875opcode_CB_44:\r
5876 opBITH z80hl 0\r
5877;@BIT 0,L\r
5878opcode_CB_45:\r
5879 opBITL z80hl 0\r
5880;@BIT 0,(HL)\r
5881opcode_CB_46:\r
5882 readmem8HL\r
5883 opBITb 0\r
5884 fetch 12\r
5885;@BIT 0,A\r
5886opcode_CB_47:\r
5887 opBITH z80a 0\r
5888\r
5889;@BIT 1,B\r
5890opcode_CB_48:\r
5891 opBITH z80bc 1\r
5892;@BIT 1,C\r
5893opcode_CB_49:\r
5894 opBITL z80bc 1\r
5895;@BIT 1,D\r
5896opcode_CB_4A:\r
5897 opBITH z80de 1\r
5898;@BIT 1,E\r
5899opcode_CB_4B:\r
5900 opBITL z80de 1\r
5901;@BIT 1,H\r
5902opcode_CB_4C:\r
5903 opBITH z80hl 1\r
5904;@BIT 1,L\r
5905opcode_CB_4D:\r
5906 opBITL z80hl 1\r
5907;@BIT 1,(HL)\r
5908opcode_CB_4E:\r
5909 readmem8HL\r
5910 opBITb 1\r
5911 fetch 12\r
5912;@BIT 1,A\r
5913opcode_CB_4F:\r
5914 opBITH z80a 1\r
5915\r
5916;@BIT 2,B\r
5917opcode_CB_50:\r
5918 opBITH z80bc 2\r
5919;@BIT 2,C\r
5920opcode_CB_51:\r
5921 opBITL z80bc 2\r
5922;@BIT 2,D\r
5923opcode_CB_52:\r
5924 opBITH z80de 2\r
5925;@BIT 2,E\r
5926opcode_CB_53:\r
5927 opBITL z80de 2\r
5928;@BIT 2,H\r
5929opcode_CB_54:\r
5930 opBITH z80hl 2\r
5931;@BIT 2,L\r
5932opcode_CB_55:\r
5933 opBITL z80hl 2\r
5934;@BIT 2,(HL)\r
5935opcode_CB_56:\r
5936 readmem8HL\r
5937 opBITb 2\r
5938 fetch 12\r
5939;@BIT 2,A\r
5940opcode_CB_57:\r
5941 opBITH z80a 2\r
5942\r
5943;@BIT 3,B\r
5944opcode_CB_58:\r
5945 opBITH z80bc 3\r
5946;@BIT 3,C\r
5947opcode_CB_59:\r
5948 opBITL z80bc 3\r
5949;@BIT 3,D\r
5950opcode_CB_5A:\r
5951 opBITH z80de 3\r
5952;@BIT 3,E\r
5953opcode_CB_5B:\r
5954 opBITL z80de 3\r
5955;@BIT 3,H\r
5956opcode_CB_5C:\r
5957 opBITH z80hl 3\r
5958;@BIT 3,L\r
5959opcode_CB_5D:\r
5960 opBITL z80hl 3\r
5961;@BIT 3,(HL)\r
5962opcode_CB_5E:\r
5963 readmem8HL\r
5964 opBITb 3\r
5965 fetch 12\r
5966;@BIT 3,A\r
5967opcode_CB_5F:\r
5968 opBITH z80a 3\r
5969\r
5970;@BIT 4,B\r
5971opcode_CB_60:\r
5972 opBITH z80bc 4\r
5973;@BIT 4,C\r
5974opcode_CB_61:\r
5975 opBITL z80bc 4\r
5976;@BIT 4,D\r
5977opcode_CB_62:\r
5978 opBITH z80de 4\r
5979;@BIT 4,E\r
5980opcode_CB_63:\r
5981 opBITL z80de 4\r
5982;@BIT 4,H\r
5983opcode_CB_64:\r
5984 opBITH z80hl 4\r
5985;@BIT 4,L\r
5986opcode_CB_65:\r
5987 opBITL z80hl 4\r
5988;@BIT 4,(HL)\r
5989opcode_CB_66:\r
5990 readmem8HL\r
5991 opBITb 4\r
5992 fetch 12\r
5993;@BIT 4,A\r
5994opcode_CB_67:\r
5995 opBITH z80a 4\r
5996\r
5997;@BIT 5,B\r
5998opcode_CB_68:\r
5999 opBITH z80bc 5\r
6000;@BIT 5,C\r
6001opcode_CB_69:\r
6002 opBITL z80bc 5\r
6003;@BIT 5,D\r
6004opcode_CB_6A:\r
6005 opBITH z80de 5\r
6006;@BIT 5,E\r
6007opcode_CB_6B:\r
6008 opBITL z80de 5\r
6009;@BIT 5,H\r
6010opcode_CB_6C:\r
6011 opBITH z80hl 5\r
6012;@BIT 5,L\r
6013opcode_CB_6D:\r
6014 opBITL z80hl 5\r
6015;@BIT 5,(HL)\r
6016opcode_CB_6E:\r
6017 readmem8HL\r
6018 opBITb 5\r
6019 fetch 12\r
6020;@BIT 5,A\r
6021opcode_CB_6F:\r
6022 opBITH z80a 5\r
6023\r
6024;@BIT 6,B\r
6025opcode_CB_70:\r
6026 opBITH z80bc 6\r
6027;@BIT 6,C\r
6028opcode_CB_71:\r
6029 opBITL z80bc 6\r
6030;@BIT 6,D\r
6031opcode_CB_72:\r
6032 opBITH z80de 6\r
6033;@BIT 6,E\r
6034opcode_CB_73:\r
6035 opBITL z80de 6\r
6036;@BIT 6,H\r
6037opcode_CB_74:\r
6038 opBITH z80hl 6\r
6039;@BIT 6,L\r
6040opcode_CB_75:\r
6041 opBITL z80hl 6\r
6042;@BIT 6,(HL)\r
6043opcode_CB_76:\r
6044 readmem8HL\r
6045 opBITb 6\r
6046 fetch 12\r
6047;@BIT 6,A\r
6048opcode_CB_77:\r
6049 opBITH z80a 6\r
6050\r
6051;@BIT 7,B\r
6052opcode_CB_78:\r
6053 opBIT7H z80bc\r
6054;@BIT 7,C\r
6055opcode_CB_79:\r
6056 opBIT7L z80bc\r
6057;@BIT 7,D\r
6058opcode_CB_7A:\r
6059 opBIT7H z80de\r
6060;@BIT 7,E\r
6061opcode_CB_7B:\r
6062 opBIT7L z80de\r
6063;@BIT 7,H\r
6064opcode_CB_7C:\r
6065 opBIT7H z80hl\r
6066;@BIT 7,L\r
6067opcode_CB_7D:\r
6068 opBIT7L z80hl\r
6069;@BIT 7,(HL)\r
6070opcode_CB_7E:\r
6071 readmem8HL\r
6072 opBIT7b\r
6073 fetch 12\r
6074;@BIT 7,A\r
6075opcode_CB_7F:\r
6076 opBIT7H z80a\r
6077\r
6078;@RES 0,B\r
6079opcode_CB_80:\r
6080 bic z80bc,z80bc,#1<<24\r
6081 fetch 8\r
6082;@RES 0,C\r
6083opcode_CB_81:\r
6084 bic z80bc,z80bc,#1<<16\r
6085 fetch 8\r
6086;@RES 0,D\r
6087opcode_CB_82:\r
6088 bic z80de,z80de,#1<<24\r
6089 fetch 8\r
6090;@RES 0,E\r
6091opcode_CB_83:\r
6092 bic z80de,z80de,#1<<16\r
6093 fetch 8\r
6094;@RES 0,H\r
6095opcode_CB_84:\r
6096 bic z80hl,z80hl,#1<<24\r
6097 fetch 8\r
6098;@RES 0,L\r
6099opcode_CB_85:\r
6100 bic z80hl,z80hl,#1<<16\r
6101 fetch 8\r
6102;@RES 0,(HL)\r
6103opcode_CB_86:\r
6104 opRESmemHL 0\r
6105;@RES 0,A\r
6106opcode_CB_87:\r
6107 bic z80a,z80a,#1<<24\r
6108 fetch 8\r
6109\r
6110;@RES 1,B\r
6111opcode_CB_88:\r
6112 bic z80bc,z80bc,#1<<25\r
6113 fetch 8\r
6114;@RES 1,C\r
6115opcode_CB_89:\r
6116 bic z80bc,z80bc,#1<<17\r
6117 fetch 8\r
6118;@RES 1,D\r
6119opcode_CB_8A:\r
6120 bic z80de,z80de,#1<<25\r
6121 fetch 8\r
6122;@RES 1,E\r
6123opcode_CB_8B:\r
6124 bic z80de,z80de,#1<<17\r
6125 fetch 8\r
6126;@RES 1,H\r
6127opcode_CB_8C:\r
6128 bic z80hl,z80hl,#1<<25\r
6129 fetch 8\r
6130;@RES 1,L\r
6131opcode_CB_8D:\r
6132 bic z80hl,z80hl,#1<<17\r
6133 fetch 8\r
6134;@RES 1,(HL)\r
6135opcode_CB_8E:\r
6136 opRESmemHL 1\r
6137;@RES 1,A\r
6138opcode_CB_8F:\r
6139 bic z80a,z80a,#1<<25\r
6140 fetch 8\r
6141\r
6142;@RES 2,B\r
6143opcode_CB_90:\r
6144 bic z80bc,z80bc,#1<<26\r
6145 fetch 8\r
6146;@RES 2,C\r
6147opcode_CB_91:\r
6148 bic z80bc,z80bc,#1<<18\r
6149 fetch 8\r
6150;@RES 2,D\r
6151opcode_CB_92:\r
6152 bic z80de,z80de,#1<<26\r
6153 fetch 8\r
6154;@RES 2,E\r
6155opcode_CB_93:\r
6156 bic z80de,z80de,#1<<18\r
6157 fetch 8\r
6158;@RES 2,H\r
6159opcode_CB_94:\r
6160 bic z80hl,z80hl,#1<<26\r
6161 fetch 8\r
6162;@RES 2,L\r
6163opcode_CB_95:\r
6164 bic z80hl,z80hl,#1<<18\r
6165 fetch 8\r
6166;@RES 2,(HL)\r
6167opcode_CB_96:\r
6168 opRESmemHL 2\r
6169;@RES 2,A\r
6170opcode_CB_97:\r
6171 bic z80a,z80a,#1<<26\r
6172 fetch 8\r
6173\r
6174;@RES 3,B\r
6175opcode_CB_98:\r
6176 bic z80bc,z80bc,#1<<27\r
6177 fetch 8\r
6178;@RES 3,C\r
6179opcode_CB_99:\r
6180 bic z80bc,z80bc,#1<<19\r
6181 fetch 8\r
6182;@RES 3,D\r
6183opcode_CB_9A:\r
6184 bic z80de,z80de,#1<<27\r
6185 fetch 8\r
6186;@RES 3,E\r
6187opcode_CB_9B:\r
6188 bic z80de,z80de,#1<<19\r
6189 fetch 8\r
6190;@RES 3,H\r
6191opcode_CB_9C:\r
6192 bic z80hl,z80hl,#1<<27\r
6193 fetch 8\r
6194;@RES 3,L\r
6195opcode_CB_9D:\r
6196 bic z80hl,z80hl,#1<<19\r
6197 fetch 8\r
6198;@RES 3,(HL)\r
6199opcode_CB_9E:\r
6200 opRESmemHL 3\r
6201;@RES 3,A\r
6202opcode_CB_9F:\r
6203 bic z80a,z80a,#1<<27\r
6204 fetch 8\r
6205\r
6206;@RES 4,B\r
6207opcode_CB_A0:\r
6208 bic z80bc,z80bc,#1<<28\r
6209 fetch 8\r
6210;@RES 4,C\r
6211opcode_CB_A1:\r
6212 bic z80bc,z80bc,#1<<20\r
6213 fetch 8\r
6214;@RES 4,D\r
6215opcode_CB_A2:\r
6216 bic z80de,z80de,#1<<28\r
6217 fetch 8\r
6218;@RES 4,E\r
6219opcode_CB_A3:\r
6220 bic z80de,z80de,#1<<20\r
6221 fetch 8\r
6222;@RES 4,H\r
6223opcode_CB_A4:\r
6224 bic z80hl,z80hl,#1<<28\r
6225 fetch 8\r
6226;@RES 4,L\r
6227opcode_CB_A5:\r
6228 bic z80hl,z80hl,#1<<20\r
6229 fetch 8\r
6230;@RES 4,(HL)\r
6231opcode_CB_A6:\r
6232 opRESmemHL 4\r
6233;@RES 4,A\r
6234opcode_CB_A7:\r
6235 bic z80a,z80a,#1<<28\r
6236 fetch 8\r
6237\r
6238;@RES 5,B\r
6239opcode_CB_A8:\r
6240 bic z80bc,z80bc,#1<<29\r
6241 fetch 8\r
6242;@RES 5,C\r
6243opcode_CB_A9:\r
6244 bic z80bc,z80bc,#1<<21\r
6245 fetch 8\r
6246;@RES 5,D\r
6247opcode_CB_AA:\r
6248 bic z80de,z80de,#1<<29\r
6249 fetch 8\r
6250;@RES 5,E\r
6251opcode_CB_AB:\r
6252 bic z80de,z80de,#1<<21\r
6253 fetch 8\r
6254;@RES 5,H\r
6255opcode_CB_AC:\r
6256 bic z80hl,z80hl,#1<<29\r
6257 fetch 8\r
6258;@RES 5,L\r
6259opcode_CB_AD:\r
6260 bic z80hl,z80hl,#1<<21\r
6261 fetch 8\r
6262;@RES 5,(HL)\r
6263opcode_CB_AE:\r
6264 opRESmemHL 5\r
6265;@RES 5,A\r
6266opcode_CB_AF:\r
6267 bic z80a,z80a,#1<<29\r
6268 fetch 8\r
6269\r
6270;@RES 6,B\r
6271opcode_CB_B0:\r
6272 bic z80bc,z80bc,#1<<30\r
6273 fetch 8\r
6274;@RES 6,C\r
6275opcode_CB_B1:\r
6276 bic z80bc,z80bc,#1<<22\r
6277 fetch 8\r
6278;@RES 6,D\r
6279opcode_CB_B2:\r
6280 bic z80de,z80de,#1<<30\r
6281 fetch 8\r
6282;@RES 6,E\r
6283opcode_CB_B3:\r
6284 bic z80de,z80de,#1<<22\r
6285 fetch 8\r
6286;@RES 6,H\r
6287opcode_CB_B4:\r
6288 bic z80hl,z80hl,#1<<30\r
6289 fetch 8\r
6290;@RES 6,L\r
6291opcode_CB_B5:\r
6292 bic z80hl,z80hl,#1<<22\r
6293 fetch 8\r
6294;@RES 6,(HL)\r
6295opcode_CB_B6:\r
6296 opRESmemHL 6\r
6297;@RES 6,A\r
6298opcode_CB_B7:\r
6299 bic z80a,z80a,#1<<30\r
6300 fetch 8\r
6301\r
6302;@RES 7,B\r
6303opcode_CB_B8:\r
6304 bic z80bc,z80bc,#1<<31\r
6305 fetch 8\r
6306;@RES 7,C\r
6307opcode_CB_B9:\r
6308 bic z80bc,z80bc,#1<<23\r
6309 fetch 8\r
6310;@RES 7,D\r
6311opcode_CB_BA:\r
6312 bic z80de,z80de,#1<<31\r
6313 fetch 8\r
6314;@RES 7,E\r
6315opcode_CB_BB:\r
6316 bic z80de,z80de,#1<<23\r
6317 fetch 8\r
6318;@RES 7,H\r
6319opcode_CB_BC:\r
6320 bic z80hl,z80hl,#1<<31\r
6321 fetch 8\r
6322;@RES 7,L\r
6323opcode_CB_BD:\r
6324 bic z80hl,z80hl,#1<<23\r
6325 fetch 8\r
6326;@RES 7,(HL)\r
6327opcode_CB_BE:\r
6328 opRESmemHL 7\r
6329;@RES 7,A\r
6330opcode_CB_BF:\r
6331 bic z80a,z80a,#1<<31\r
6332 fetch 8\r
6333\r
6334;@SET 0,B\r
6335opcode_CB_C0:\r
6336 orr z80bc,z80bc,#1<<24\r
6337 fetch 8\r
6338;@SET 0,C\r
6339opcode_CB_C1:\r
6340 orr z80bc,z80bc,#1<<16\r
6341 fetch 8\r
6342;@SET 0,D\r
6343opcode_CB_C2:\r
6344 orr z80de,z80de,#1<<24\r
6345 fetch 8\r
6346;@SET 0,E\r
6347opcode_CB_C3:\r
6348 orr z80de,z80de,#1<<16\r
6349 fetch 8\r
6350;@SET 0,H\r
6351opcode_CB_C4:\r
6352 orr z80hl,z80hl,#1<<24\r
6353 fetch 8\r
6354;@SET 0,L\r
6355opcode_CB_C5:\r
6356 orr z80hl,z80hl,#1<<16\r
6357 fetch 8\r
6358;@SET 0,(HL)\r
6359opcode_CB_C6:\r
6360 opSETmemHL 0\r
6361;@SET 0,A\r
6362opcode_CB_C7:\r
6363 orr z80a,z80a,#1<<24\r
6364 fetch 8\r
6365\r
6366;@SET 1,B\r
6367opcode_CB_C8:\r
6368 orr z80bc,z80bc,#1<<25\r
6369 fetch 8\r
6370;@SET 1,C\r
6371opcode_CB_C9:\r
6372 orr z80bc,z80bc,#1<<17\r
6373 fetch 8\r
6374;@SET 1,D\r
6375opcode_CB_CA:\r
6376 orr z80de,z80de,#1<<25\r
6377 fetch 8\r
6378;@SET 1,E\r
6379opcode_CB_CB:\r
6380 orr z80de,z80de,#1<<17\r
6381 fetch 8\r
6382;@SET 1,H\r
6383opcode_CB_CC:\r
6384 orr z80hl,z80hl,#1<<25\r
6385 fetch 8\r
6386;@SET 1,L\r
6387opcode_CB_CD:\r
6388 orr z80hl,z80hl,#1<<17\r
6389 fetch 8\r
6390;@SET 1,(HL)\r
6391opcode_CB_CE:\r
6392 opSETmemHL 1\r
6393;@SET 1,A\r
6394opcode_CB_CF:\r
6395 orr z80a,z80a,#1<<25\r
6396 fetch 8\r
6397\r
6398;@SET 2,B\r
6399opcode_CB_D0:\r
6400 orr z80bc,z80bc,#1<<26\r
6401 fetch 8\r
6402;@SET 2,C\r
6403opcode_CB_D1:\r
6404 orr z80bc,z80bc,#1<<18\r
6405 fetch 8\r
6406;@SET 2,D\r
6407opcode_CB_D2:\r
6408 orr z80de,z80de,#1<<26\r
6409 fetch 8\r
6410;@SET 2,E\r
6411opcode_CB_D3:\r
6412 orr z80de,z80de,#1<<18\r
6413 fetch 8\r
6414;@SET 2,H\r
6415opcode_CB_D4:\r
6416 orr z80hl,z80hl,#1<<26\r
6417 fetch 8\r
6418;@SET 2,L\r
6419opcode_CB_D5:\r
6420 orr z80hl,z80hl,#1<<18\r
6421 fetch 8\r
6422;@SET 2,(HL)\r
6423opcode_CB_D6:\r
6424 opSETmemHL 2\r
6425;@SET 2,A\r
6426opcode_CB_D7:\r
6427 orr z80a,z80a,#1<<26\r
6428 fetch 8\r
6429\r
6430;@SET 3,B\r
6431opcode_CB_D8:\r
6432 orr z80bc,z80bc,#1<<27\r
6433 fetch 8\r
6434;@SET 3,C\r
6435opcode_CB_D9:\r
6436 orr z80bc,z80bc,#1<<19\r
6437 fetch 8\r
6438;@SET 3,D\r
6439opcode_CB_DA:\r
6440 orr z80de,z80de,#1<<27\r
6441 fetch 8\r
6442;@SET 3,E\r
6443opcode_CB_DB:\r
6444 orr z80de,z80de,#1<<19\r
6445 fetch 8\r
6446;@SET 3,H\r
6447opcode_CB_DC:\r
6448 orr z80hl,z80hl,#1<<27\r
6449 fetch 8\r
6450;@SET 3,L\r
6451opcode_CB_DD:\r
6452 orr z80hl,z80hl,#1<<19\r
6453 fetch 8\r
6454;@SET 3,(HL)\r
6455opcode_CB_DE:\r
6456 opSETmemHL 3\r
6457;@SET 3,A\r
6458opcode_CB_DF:\r
6459 orr z80a,z80a,#1<<27\r
6460 fetch 8\r
6461\r
6462;@SET 4,B\r
6463opcode_CB_E0:\r
6464 orr z80bc,z80bc,#1<<28\r
6465 fetch 8\r
6466;@SET 4,C\r
6467opcode_CB_E1:\r
6468 orr z80bc,z80bc,#1<<20\r
6469 fetch 8\r
6470;@SET 4,D\r
6471opcode_CB_E2:\r
6472 orr z80de,z80de,#1<<28\r
6473 fetch 8\r
6474;@SET 4,E\r
6475opcode_CB_E3:\r
6476 orr z80de,z80de,#1<<20\r
6477 fetch 8\r
6478;@SET 4,H\r
6479opcode_CB_E4:\r
6480 orr z80hl,z80hl,#1<<28\r
6481 fetch 8\r
6482;@SET 4,L\r
6483opcode_CB_E5:\r
6484 orr z80hl,z80hl,#1<<20\r
6485 fetch 8\r
6486;@SET 4,(HL)\r
6487opcode_CB_E6:\r
6488 opSETmemHL 4\r
6489;@SET 4,A\r
6490opcode_CB_E7:\r
6491 orr z80a,z80a,#1<<28\r
6492 fetch 8\r
6493\r
6494;@SET 5,B\r
6495opcode_CB_E8:\r
6496 orr z80bc,z80bc,#1<<29\r
6497 fetch 8\r
6498;@SET 5,C\r
6499opcode_CB_E9:\r
6500 orr z80bc,z80bc,#1<<21\r
6501 fetch 8\r
6502;@SET 5,D\r
6503opcode_CB_EA:\r
6504 orr z80de,z80de,#1<<29\r
6505 fetch 8\r
6506;@SET 5,E\r
6507opcode_CB_EB:\r
6508 orr z80de,z80de,#1<<21\r
6509 fetch 8\r
6510;@SET 5,H\r
6511opcode_CB_EC:\r
6512 orr z80hl,z80hl,#1<<29\r
6513 fetch 8\r
6514;@SET 5,L\r
6515opcode_CB_ED:\r
6516 orr z80hl,z80hl,#1<<21\r
6517 fetch 8\r
6518;@SET 5,(HL)\r
6519opcode_CB_EE:\r
6520 opSETmemHL 5\r
6521;@SET 5,A\r
6522opcode_CB_EF:\r
6523 orr z80a,z80a,#1<<29\r
6524 fetch 8\r
6525\r
6526;@SET 6,B\r
6527opcode_CB_F0:\r
6528 orr z80bc,z80bc,#1<<30\r
6529 fetch 8\r
6530;@SET 6,C\r
6531opcode_CB_F1:\r
6532 orr z80bc,z80bc,#1<<22\r
6533 fetch 8\r
6534;@SET 6,D\r
6535opcode_CB_F2:\r
6536 orr z80de,z80de,#1<<30\r
6537 fetch 8\r
6538;@SET 6,E\r
6539opcode_CB_F3:\r
6540 orr z80de,z80de,#1<<22\r
6541 fetch 8\r
6542;@SET 6,H\r
6543opcode_CB_F4:\r
6544 orr z80hl,z80hl,#1<<30\r
6545 fetch 8\r
6546;@SET 6,L\r
6547opcode_CB_F5:\r
6548 orr z80hl,z80hl,#1<<22\r
6549 fetch 8\r
6550;@SET 6,(HL)\r
6551opcode_CB_F6:\r
6552 opSETmemHL 6\r
6553;@SET 6,A\r
6554opcode_CB_F7:\r
6555 orr z80a,z80a,#1<<30\r
6556 fetch 8\r
6557\r
6558;@SET 7,B\r
6559opcode_CB_F8:\r
6560 orr z80bc,z80bc,#1<<31\r
6561 fetch 8\r
6562;@SET 7,C\r
6563opcode_CB_F9:\r
6564 orr z80bc,z80bc,#1<<23\r
6565 fetch 8\r
6566;@SET 7,D\r
6567opcode_CB_FA:\r
6568 orr z80de,z80de,#1<<31\r
6569 fetch 8\r
6570;@SET 7,E\r
6571opcode_CB_FB:\r
6572 orr z80de,z80de,#1<<23\r
6573 fetch 8\r
6574;@SET 7,H\r
6575opcode_CB_FC:\r
6576 orr z80hl,z80hl,#1<<31\r
6577 fetch 8\r
6578;@SET 7,L\r
6579opcode_CB_FD:\r
6580 orr z80hl,z80hl,#1<<23\r
6581 fetch 8\r
6582;@SET 7,(HL)\r
6583opcode_CB_FE:\r
6584 opSETmemHL 7\r
6585;@SET 7,A\r
6586opcode_CB_FF:\r
6587 orr z80a,z80a,#1<<31\r
6588 fetch 8\r
6589\r
6590\r
6591\r
6592;@##################################\r
6593;@##################################\r
6594;@### opcodes DD #########################\r
6595;@##################################\r
6596;@##################################\r
6597;@Because the DD opcodes are not a complete range from 00-FF I have\r
6598;@created this sub routine that will catch any undocumented ops\r
6599;@halt the emulator and mov the current instruction to r0\r
6600;@at a later stage I may change to display a text message on the screen\r
6601opcode_DD_NF:\r
6602 eatcycles 4\r
6603 ldr pc,[opcodes,r0, lsl #2]\r
6604;@ mov r2,#0x10*4\r
6605;@ cmp r2,z80xx\r
6606;@ bne opcode_FD_NF\r
6607;@ mov r0,#0xDD00\r
6608;@ orr r0,r0,r1\r
6609;@ b end_loop\r
6610;@opcode_FD_NF:\r
6611;@ mov r0,#0xFD00\r
6612;@ orr r0,r0,r1\r
6613;@ b end_loop\r
f0243975 6614\r
cc68a136 6615opcode_DD_NF2:\r
28d596af 6616 fetch 23\r
f0243975 6617;@ notaz: we don't want to deadlock here\r
6618;@ mov r0,#0xDD0000\r
6619;@ orr r0,r0,#0xCB00\r
6620;@ orr r0,r0,r1\r
6621;@ b end_loop\r
cc68a136 6622\r
6623;@ADD IX,BC\r
6624opcode_DD_09:\r
6625 ldr r0,[z80xx]\r
6626 opADD16 r0 z80bc\r
6627 str r0,[z80xx]\r
6628 fetch 15\r
6629;@ADD IX,DE\r
6630opcode_DD_19:\r
6631 ldr r0,[z80xx]\r
6632 opADD16 r0 z80de\r
6633 str r0,[z80xx]\r
6634 fetch 15\r
6635;@LD IX,NN\r
6636opcode_DD_21:\r
6637 ldrb r0,[z80pc],#1\r
6638 ldrb r1,[z80pc],#1\r
6639 orr r0,r0,r1, lsl #8\r
6640 strh r0,[z80xx,#2]\r
6641 fetch 14\r
6642;@LD (NN),IX\r
6643opcode_DD_22:\r
6644 ldrb r0,[z80pc],#1\r
6645 ldrb r1,[z80pc],#1\r
6646 orr r1,r0,r1, lsl #8\r
6647 ldrh r0,[z80xx,#2]\r
6648 writemem16\r
6649 fetch 20\r
6650;@INC IX\r
6651opcode_DD_23:\r
6652 ldr r0,[z80xx]\r
6653 add r0,r0,#1<<16\r
6654 str r0,[z80xx]\r
6655 fetch 10\r
6656;@INC I (IX)\r
6657opcode_DD_24:\r
6658 ldr r0,[z80xx]\r
6659 opINC8H r0\r
6660 str r0,[z80xx]\r
6661 fetch 8\r
6662;@DEC I (IX)\r
6663opcode_DD_25:\r
6664 ldr r0,[z80xx]\r
6665 opDEC8H r0\r
6666 str r0,[z80xx]\r
6667 fetch 8\r
6668;@LD I,N (IX)\r
6669opcode_DD_26:\r
6670 ldrb r0,[z80pc],#1\r
6671 strb r0,[z80xx,#3]\r
6672 fetch 11\r
6673;@ADD IX,IX\r
6674opcode_DD_29:\r
6675 ldr r0,[z80xx]\r
6676 opADD16_2 r0\r
6677 str r0,[z80xx]\r
6678 fetch 15\r
6679;@LD IX,(NN)\r
6680opcode_DD_2A:\r
6681 ldrb r0,[z80pc],#1\r
6682 ldrb r1,[z80pc],#1\r
6683 orr r0,r0,r1, lsl #8\r
6684 stmfd sp!,{z80xx}\r
6685 readmem16\r
6686 ldmfd sp!,{z80xx}\r
6687 strh r0,[z80xx,#2]\r
6688 fetch 20\r
6689;@DEC IX\r
6690opcode_DD_2B:\r
6691 ldr r0,[z80xx]\r
6692 sub r0,r0,#1<<16\r
6693 str r0,[z80xx]\r
6694 fetch 10\r
6695;@INC X (IX)\r
6696opcode_DD_2C:\r
6697 ldr r0,[z80xx]\r
6698 opINC8L r0\r
6699 str r0,[z80xx]\r
6700 fetch 8\r
6701;@DEC X (IX)\r
6702opcode_DD_2D:\r
6703 ldr r0,[z80xx]\r
6704 opDEC8L r0\r
6705 str r0,[z80xx]\r
6706 fetch 8\r
6707;@LD X,N (IX)\r
6708opcode_DD_2E:\r
6709 ldrb r0,[z80pc],#1\r
6710 strb r0,[z80xx,#2]\r
6711 fetch 11\r
6712;@INC (IX+N)\r
6713opcode_DD_34:\r
6714 ldrsb r0,[z80pc],#1\r
6715 ldr r1,[z80xx]\r
5d572e52 6716 add r0,r1,r0, lsl #16\r
6717 mov r0,r0,lsr #16\r
cc68a136 6718 stmfd sp!,{r0} ;@ save addr\r
6719 readmem8\r
6720 opINC8b\r
6721 ldmfd sp!,{r1} ;@ restore addr into r1\r
6722 writemem8\r
6723 fetch 23\r
6724;@DEC (IX+N)\r
6725opcode_DD_35:\r
6726 ldrsb r0,[z80pc],#1\r
6727 ldr r1,[z80xx]\r
5d572e52 6728 add r0,r1,r0, lsl #16\r
6729 mov r0,r0,lsr #16\r
cc68a136 6730 stmfd sp!,{r0} ;@ save addr\r
6731 readmem8\r
6732 opDEC8b\r
6733 ldmfd sp!,{r1} ;@ restore addr into r1\r
6734 writemem8\r
6735 fetch 23\r
6736;@LD (IX+N),N\r
6737opcode_DD_36:\r
6738 ldrsb r2,[z80pc],#1\r
6739 ldrb r0,[z80pc],#1\r
6740 ldr r1,[z80xx]\r
5d572e52 6741 add r1,r1,r2, lsl #16\r
6742 mov r1,r1,lsr #16\r
cc68a136 6743 writemem8\r
6744 fetch 19\r
6745;@ADD IX,SP\r
6746opcode_DD_39:\r
6747 ldr r0,[z80xx]\r
6748.if FAST_Z80SP\r
6749 ldr r2,[cpucontext,#z80sp_base]\r
6750 sub r2,z80sp,r2\r
6751 opADD16s r0 r2 16\r
6752.else\r
6753 opADD16s r0 z80sp 16\r
6754.endif\r
6755 str r0,[z80xx]\r
6756 fetch 15\r
6757;@LD B,I ( IX )\r
6758opcode_DD_44:\r
6759 ldrb r0,[z80xx,#3]\r
6760 and z80bc,z80bc,#0xFF<<16\r
6761 orr z80bc,z80bc,r0, lsl #24\r
6762 fetch 8\r
6763;@LD B,X ( IX )\r
6764opcode_DD_45:\r
6765 ldrb r0,[z80xx,#2]\r
6766 and z80bc,z80bc,#0xFF<<16\r
6767 orr z80bc,z80bc,r0, lsl #24\r
6768 fetch 8\r
6769;@LD B,(IX,N)\r
6770opcode_DD_46:\r
6771 ldrsb r0,[z80pc],#1\r
6772 ldr r1,[z80xx]\r
5d572e52 6773 add r0,r1,r0, lsl #16\r
6774 mov r0,r0,lsr #16\r
cc68a136 6775 readmem8\r
6776 and z80bc,z80bc,#0xFF<<16\r
6777 orr z80bc,z80bc,r0, lsl #24\r
6778 fetch 19\r
6779;@LD C,I (IX)\r
6780opcode_DD_4C:\r
6781 ldrb r0,[z80xx,#3]\r
6782 and z80bc,z80bc,#0xFF<<24\r
6783 orr z80bc,z80bc,r0, lsl #16\r
6784 fetch 8\r
6785;@LD C,X (IX)\r
6786opcode_DD_4D:\r
6787 ldrb r0,[z80xx,#2]\r
6788 and z80bc,z80bc,#0xFF<<24\r
6789 orr z80bc,z80bc,r0, lsl #16\r
6790 fetch 8\r
6791;@LD C,(IX,N)\r
6792opcode_DD_4E:\r
6793 ldrsb r0,[z80pc],#1\r
6794 ldr r1,[z80xx]\r
5d572e52 6795 add r0,r1,r0, lsl #16\r
6796 mov r0,r0,lsr #16\r
cc68a136 6797 readmem8\r
6798 and z80bc,z80bc,#0xFF<<24\r
6799 orr z80bc,z80bc,r0, lsl #16\r
6800 fetch 19\r
6801\r
6802;@LD D,I (IX)\r
6803opcode_DD_54:\r
6804 ldrb r0,[z80xx,#3]\r
6805 and z80de,z80de,#0xFF<<16\r
6806 orr z80de,z80de,r0, lsl #24\r
6807 fetch 8\r
6808;@LD D,X (IX)\r
6809opcode_DD_55:\r
6810 ldrb r0,[z80xx,#2]\r
6811 and z80de,z80de,#0xFF<<16\r
6812 orr z80de,z80de,r0, lsl #24\r
6813 fetch 8\r
6814;@LD D,(IX,N)\r
6815opcode_DD_56:\r
6816 ldrsb r0,[z80pc],#1\r
6817 ldr r1,[z80xx]\r
5d572e52 6818 add r0,r1,r0, lsl #16\r
6819 mov r0,r0,lsr #16\r
cc68a136 6820 readmem8\r
6821 and z80de,z80de,#0xFF<<16\r
6822 orr z80de,z80de,r0, lsl #24\r
6823 fetch 19\r
6824;@LD E,I (IX)\r
6825opcode_DD_5C:\r
6826 ldrb r0,[z80xx,#3]\r
6827 and z80de,z80de,#0xFF<<24\r
6828 orr z80de,z80de,r0, lsl #16\r
6829 fetch 8\r
6830;@LD E,X (IX)\r
6831opcode_DD_5D:\r
6832 ldrb r0,[z80xx,#2]\r
6833 and z80de,z80de,#0xFF<<24\r
6834 orr z80de,z80de,r0, lsl #16\r
6835 fetch 8\r
6836;@LD E,(IX,N)\r
6837opcode_DD_5E:\r
6838 ldrsb r0,[z80pc],#1\r
6839 ldr r1,[z80xx]\r
5d572e52 6840 add r0,r1,r0, lsl #16\r
6841 mov r0,r0,lsr #16\r
cc68a136 6842 readmem8\r
6843 and z80de,z80de,#0xFF<<24\r
6844 orr z80de,z80de,r0, lsl #16\r
6845 fetch 19\r
6846;@LD I,B (IX)\r
6847opcode_DD_60:\r
6848 mov r0,z80bc,lsr#24\r
6849 strb r0,[z80xx,#3]\r
6850 fetch 8\r
6851;@LD I,C (IX)\r
6852opcode_DD_61:\r
6853 mov r0,z80bc,lsr#16\r
6854 strb r0,[z80xx,#3]\r
6855 fetch 8\r
6856;@LD I,D (IX)\r
6857opcode_DD_62:\r
6858 mov r0,z80de,lsr#24\r
6859 strb r0,[z80xx,#3]\r
6860 fetch 8\r
6861;@LD I,E (IX)\r
6862opcode_DD_63:\r
6863 mov r0,z80de,lsr#16\r
6864 strb r0,[z80xx,#3]\r
6865 fetch 8\r
6866;@LD I,I (IX)\r
6867opcode_DD_64:\r
6868 fetch 8\r
6869;@LD I,X (IX)\r
6870opcode_DD_65:\r
6871 ldrb r0,[z80xx,#2]\r
6872 strb r0,[z80xx,#3]\r
6873 fetch 8\r
6874;@LD H,(IX,N)\r
6875opcode_DD_66:\r
6876 ldrsb r0,[z80pc],#1\r
6877 ldr r1,[z80xx]\r
5d572e52 6878 add r0,r1,r0, lsl #16\r
6879 mov r0,r0,lsr #16\r
cc68a136 6880 readmem8\r
6881 and z80hl,z80hl,#0xFF<<16\r
6882 orr z80hl,z80hl,r0, lsl #24\r
6883 fetch 19\r
6884;@LD I,A (IX)\r
6885opcode_DD_67:\r
6886 mov r0,z80a,lsr#24\r
6887 strb r0,[z80xx,#3]\r
6888 fetch 8\r
6889;@LD X,B (IX)\r
6890opcode_DD_68:\r
6891 mov r0,z80bc,lsr#24\r
6892 strb r0,[z80xx,#2]\r
6893 fetch 8\r
6894;@LD X,C (IX)\r
6895opcode_DD_69:\r
6896 mov r0,z80bc,lsr#16\r
6897 strb r0,[z80xx,#2]\r
6898 fetch 8\r
6899;@LD X,D (IX)\r
6900opcode_DD_6A:\r
6901 mov r0,z80de,lsr#24\r
6902 strb r0,[z80xx,#2]\r
6903 fetch 8\r
6904;@LD X,E (IX)\r
6905opcode_DD_6B:\r
6906 mov r0,z80de,lsr#16\r
6907 strb r0,[z80xx,#2]\r
6908 fetch 8\r
6909;@LD X,I (IX)\r
6910opcode_DD_6C:\r
6911 ldrb r0,[z80xx,#3]\r
6912 strb r0,[z80xx,#2]\r
6913 fetch 8\r
6914;@LD X,X (IX)\r
6915opcode_DD_6D:\r
6916 fetch 8\r
6917;@LD L,(IX,N)\r
6918opcode_DD_6E:\r
6919 ldrsb r0,[z80pc],#1\r
6920 ldr r1,[z80xx]\r
5d572e52 6921 add r0,r1,r0, lsl #16\r
6922 mov r0,r0,lsr #16\r
cc68a136 6923 readmem8\r
6924 and z80hl,z80hl,#0xFF<<24\r
6925 orr z80hl,z80hl,r0, lsl #16\r
6926 fetch 19\r
6927;@LD X,A (IX)\r
6928opcode_DD_6F:\r
6929 mov r0,z80a,lsr#24\r
6930 strb r0,[z80xx,#2]\r
6931 fetch 8\r
6932\r
6933;@LD (IX,N),B\r
6934opcode_DD_70:\r
6935 ldrsb r0,[z80pc],#1\r
6936 ldr r1,[z80xx]\r
5d572e52 6937 add r1,r1,r0, lsl #16\r
6938 mov r1,r1,lsr #16\r
cc68a136 6939 mov r0,z80bc, lsr #24\r
6940 writemem8\r
6941 fetch 19\r
6942;@LD (IX,N),C\r
6943opcode_DD_71:\r
6944 ldrsb r0,[z80pc],#1\r
6945 ldr r1,[z80xx]\r
5d572e52 6946 add r1,r1,r0, lsl #16\r
6947 mov r1,r1,lsr #16\r
cc68a136 6948 mov r0,z80bc, lsr #16\r
6949 and r0,r0,#0xFF\r
6950 writemem8\r
6951 fetch 19\r
6952;@LD (IX,N),D\r
6953opcode_DD_72:\r
6954 ldrsb r0,[z80pc],#1\r
6955 ldr r1,[z80xx]\r
5d572e52 6956 add r1,r1,r0, lsl #16\r
6957 mov r1,r1,lsr #16\r
cc68a136 6958 mov r0,z80de, lsr #24\r
6959 writemem8\r
6960 fetch 19\r
6961;@LD (IX,N),E\r
6962opcode_DD_73:\r
6963 ldrsb r0,[z80pc],#1\r
6964 ldr r1,[z80xx]\r
5d572e52 6965 add r1,r1,r0, lsl #16\r
6966 mov r1,r1,lsr #16\r
cc68a136 6967 mov r0,z80de, lsr #16\r
6968 and r0,r0,#0xFF\r
6969 writemem8\r
6970 fetch 19\r
6971;@LD (IX,N),H\r
6972opcode_DD_74:\r
6973 ldrsb r0,[z80pc],#1\r
6974 ldr r1,[z80xx]\r
5d572e52 6975 add r1,r1,r0, lsl #16\r
6976 mov r1,r1,lsr #16\r
cc68a136 6977 mov r0,z80hl, lsr #24\r
6978 writemem8\r
6979 fetch 19\r
6980;@LD (IX,N),L\r
6981opcode_DD_75:\r
6982 ldrsb r0,[z80pc],#1\r
6983 ldr r1,[z80xx]\r
5d572e52 6984 add r1,r1,r0, lsl #16\r
6985 mov r1,r1,lsr #16\r
cc68a136 6986 mov r0,z80hl, lsr #16\r
6987 and r0,r0,#0xFF\r
6988 writemem8\r
6989 fetch 19\r
6990;@LD (IX,N),A\r
6991opcode_DD_77:\r
6992 ldrsb r0,[z80pc],#1\r
6993 ldr r1,[z80xx]\r
5d572e52 6994 add r1,r1,r0, lsl #16\r
6995 mov r1,r1,lsr #16\r
cc68a136 6996 mov r0,z80a, lsr #24\r
6997 writemem8\r
6998 fetch 19\r
6999\r
7000;@LD A,I from (IX)\r
7001opcode_DD_7C:\r
7002 ldrb r0,[z80xx,#3]\r
7003 mov z80a,r0, lsl #24\r
7004 fetch 8\r
7005;@LD A,X from (IX)\r
7006opcode_DD_7D:\r
7007 ldrb r0,[z80xx,#2]\r
7008 mov z80a,r0, lsl #24\r
7009 fetch 8\r
7010;@LD A,(IX,N)\r
7011opcode_DD_7E:\r
7012 ldrsb r0,[z80pc],#1\r
7013 ldr r1,[z80xx]\r
5d572e52 7014 add r0,r1,r0, lsl #16\r
7015 mov r0,r0,lsr #16\r
cc68a136 7016 readmem8\r
7017 mov z80a,r0, lsl #24\r
7018 fetch 19\r
7019\r
7020;@ADD A,I ( IX)\r
7021opcode_DD_84:\r
7022 ldrb r0,[z80xx,#3]\r
7023 opADDb\r
7024 fetch 8\r
7025;@ADD A,X ( IX)\r
7026opcode_DD_85:\r
7027 ldrb r0,[z80xx,#2]\r
7028 opADDb\r
7029 fetch 8\r
7030;@ADD A,(IX+N)\r
7031opcode_DD_86:\r
7032 ldrsb r0,[z80pc],#1\r
7033 ldr r1,[z80xx]\r
5d572e52 7034 add r0,r1,r0, lsl #16\r
7035 mov r0,r0,lsr #16\r
cc68a136 7036 readmem8\r
7037 opADDb\r
7038 fetch 19\r
7039\r
7040;@ADC A,I (IX)\r
7041opcode_DD_8C:\r
7042 ldrb r0,[z80xx,#3]\r
7043 opADCb\r
7044 fetch 8\r
7045;@ADC A,X (IX)\r
7046opcode_DD_8D:\r
7047 ldrb r0,[z80xx,#2]\r
7048 opADCb\r
7049 fetch 8\r
7050;@ADC A,(IX+N)\r
7051opcode_DD_8E:\r
7052 ldrsb r0,[z80pc],#1\r
7053 ldr r1,[z80xx]\r
5d572e52 7054 add r0,r1,r0, lsl #16\r
7055 mov r0,r0,lsr #16\r
cc68a136 7056 readmem8\r
7057 opADCb\r
7058 fetch 19\r
7059\r
7060;@SUB A,I (IX)\r
7061opcode_DD_94:\r
7062 ldrb r0,[z80xx,#3]\r
7063 opSUBb\r
7064 fetch 8\r
7065;@SUB A,X (IX)\r
7066opcode_DD_95:\r
7067 ldrb r0,[z80xx,#2]\r
7068 opSUBb\r
7069 fetch 8\r
7070;@SUB A,(IX+N)\r
7071opcode_DD_96:\r
7072 ldrsb r0,[z80pc],#1\r
7073 ldr r1,[z80xx]\r
5d572e52 7074 add r0,r1,r0, lsl #16\r
7075 mov r0,r0,lsr #16\r
cc68a136 7076 readmem8\r
7077 opSUBb\r
7078 fetch 19\r
7079\r
7080;@SBC A,I (IX)\r
7081opcode_DD_9C:\r
7082 ldrb r0,[z80xx,#3]\r
7083 opSBCb\r
7084 fetch 8\r
7085;@SBC A,X (IX)\r
7086opcode_DD_9D:\r
7087 ldrb r0,[z80xx,#2]\r
7088 opSBCb\r
7089 fetch 8\r
7090;@SBC A,(IX+N)\r
7091opcode_DD_9E:\r
7092 ldrsb r0,[z80pc],#1\r
7093 ldr r1,[z80xx]\r
5d572e52 7094 add r0,r1,r0, lsl #16\r
7095 mov r0,r0,lsr #16\r
cc68a136 7096 readmem8\r
7097 opSBCb\r
7098 fetch 19\r
7099\r
7100;@AND I (IX)\r
7101opcode_DD_A4:\r
7102 ldrb r0,[z80xx,#3]\r
7103 opANDb\r
7104 fetch 8\r
7105;@AND X (IX)\r
7106opcode_DD_A5:\r
7107 ldrb r0,[z80xx,#2]\r
7108 opANDb\r
7109 fetch 8\r
7110;@AND (IX+N)\r
7111opcode_DD_A6:\r
7112 ldrsb r0,[z80pc],#1\r
7113 ldr r1,[z80xx]\r
5d572e52 7114 add r0,r1,r0, lsl #16\r
7115 mov r0,r0,lsr #16\r
cc68a136 7116 readmem8\r
7117 opANDb\r
7118 fetch 19\r
7119\r
7120;@XOR I (IX)\r
7121opcode_DD_AC:\r
7122 ldrb r0,[z80xx,#3]\r
7123 opXORb\r
7124 fetch 8\r
7125;@XOR X (IX)\r
7126opcode_DD_AD:\r
7127 ldrb r0,[z80xx,#2]\r
7128 opXORb\r
7129 fetch 8\r
7130;@XOR (IX+N)\r
7131opcode_DD_AE:\r
7132 ldrsb r0,[z80pc],#1\r
7133 ldr r1,[z80xx]\r
5d572e52 7134 add r0,r1,r0, lsl #16\r
7135 mov r0,r0,lsr #16\r
cc68a136 7136 readmem8\r
7137 opXORb\r
7138 fetch 19\r
7139\r
7140;@OR I (IX)\r
7141opcode_DD_B4:\r
7142 ldrb r0,[z80xx,#3]\r
7143 opORb\r
7144 fetch 8\r
7145;@OR X (IX)\r
7146opcode_DD_B5:\r
7147 ldrb r0,[z80xx,#2]\r
7148 opORb\r
7149 fetch 8\r
7150;@OR (IX+N)\r
7151opcode_DD_B6:\r
7152 ldrsb r0,[z80pc],#1\r
7153 ldr r1,[z80xx]\r
5d572e52 7154 add r0,r1,r0, lsl #16\r
7155 mov r0,r0,lsr #16\r
cc68a136 7156 readmem8\r
7157 opORb\r
7158 fetch 19\r
7159\r
7160;@CP I (IX)\r
7161opcode_DD_BC:\r
7162 ldrb r0,[z80xx,#3]\r
7163 opCPb\r
7164 fetch 8\r
7165;@CP X (IX)\r
7166opcode_DD_BD:\r
7167 ldrb r0,[z80xx,#2]\r
7168 opCPb\r
7169 fetch 8\r
7170;@CP (IX+N)\r
7171opcode_DD_BE:\r
7172 ldrsb r0,[z80pc],#1\r
7173 ldr r1,[z80xx]\r
5d572e52 7174 add r0,r1,r0, lsl #16\r
7175 mov r0,r0,lsr #16\r
cc68a136 7176 readmem8\r
7177 opCPb\r
7178 fetch 19\r
7179\r
7180\r
7181opcodes_DD_CB_LOCAL: .word opcodes_DD_CB\r
7182opcode_DD_CB:\r
7183;@Looks up the opcode on the opcodes_DD_CB table and then \r
7184;@moves the PC to the location of the subroutine\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\r
7190 ldrb r1,[z80pc],#1\r
7191 ldr pc,[pc,r1, lsl #2]\r
7192 .word 0x00\r
7193opcodes_DD_CB:\r
7194 .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
7195 .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
7196 .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
7197 .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
7198 .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
7199 .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
7200 .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
7201 .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
7202 .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
7203 .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
7204 .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
7205 .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
7206 .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
7207 .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
7208 .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
7209 .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
7210 .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
7211 .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
7212 .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
7213 .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
7214 .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
7215 .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
7216 .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
7217 .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
7218 .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
7219 .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
7220 .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
7221 .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
7222 .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
7223 .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
7224 .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
7225 .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
7226\r
7227;@RLC (IX+N) \r
7228opcode_DD_CB_06:\r
7229 stmfd sp!,{r0} ;@ save addr\r
7230 readmem8\r
7231 opRLCb\r
7232 ldmfd sp!,{r1} ;@ restore addr into r1\r
7233 writemem8\r
7234 fetch 23\r
7235;@RRC (IX+N) \r
7236opcode_DD_CB_0E:\r
7237 stmfd sp!,{r0} ;@ save addr\r
7238 readmem8\r
7239 opRRCb\r
7240 ldmfd sp!,{r1} ;@ restore addr into r1\r
7241 writemem8\r
7242 fetch 23\r
7243;@RL (IX+N) \r
7244opcode_DD_CB_16:\r
7245 stmfd sp!,{r0} ;@ save addr\r
7246 readmem8\r
7247 opRLb\r
7248 ldmfd sp!,{r1} ;@ restore addr into r1\r
7249 writemem8\r
7250 fetch 23\r
7251;@RR (IX+N) \r
7252opcode_DD_CB_1E:\r
7253 stmfd sp!,{r0} ;@ save addr \r
7254 readmem8\r
7255 opRRb\r
7256 ldmfd sp!,{r1} ;@ restore addr into r1\r
7257 writemem8\r
7258 fetch 23\r
7259\r
7260;@SLA (IX+N) \r
7261opcode_DD_CB_26:\r
7262 stmfd sp!,{r0} ;@ save addr \r
7263 readmem8\r
7264 opSLAb\r
7265 ldmfd sp!,{r1} ;@ restore addr into r1\r
7266 writemem8\r
7267 fetch 23\r
7268;@SRA (IX+N) \r
7269opcode_DD_CB_2E:\r
7270 stmfd sp!,{r0} ;@ save addr \r
7271 readmem8\r
7272 opSRAb\r
7273 ldmfd sp!,{r1} ;@ restore addr into r1\r
7274 writemem8\r
7275 fetch 23\r
7276;@SLL (IX+N) \r
7277opcode_DD_CB_36:\r
7278 stmfd sp!,{r0} ;@ save addr \r
7279 readmem8\r
7280 opSLLb\r
7281 ldmfd sp!,{r1} ;@ restore addr into r1\r
7282 writemem8\r
7283 fetch 23\r
7284;@SRL (IX+N)\r
7285opcode_DD_CB_3E:\r
7286 stmfd sp!,{r0} ;@ save addr \r
7287 readmem8\r
7288 opSRLb\r
7289 ldmfd sp!,{r1} ;@ restore addr into r1\r
7290 writemem8\r
7291 fetch 23\r
7292\r
7293;@BIT 0,(IX+N) \r
7294opcode_DD_CB_46:\r
7295 readmem8\r
7296 opBITb 0\r
7297 fetch 20\r
7298;@BIT 1,(IX+N) \r
7299opcode_DD_CB_4E:\r
7300 readmem8\r
7301 opBITb 1\r
7302 fetch 20\r
7303;@BIT 2,(IX+N) \r
7304opcode_DD_CB_56:\r
7305 readmem8\r
7306 opBITb 2\r
7307 fetch 20\r
7308;@BIT 3,(IX+N) \r
7309opcode_DD_CB_5E:\r
7310 readmem8\r
7311 opBITb 3\r
7312 fetch 20\r
7313;@BIT 4,(IX+N) \r
7314opcode_DD_CB_66:\r
7315 readmem8\r
7316 opBITb 4\r
7317 fetch 20\r
7318;@BIT 5,(IX+N) \r
7319opcode_DD_CB_6E:\r
7320 readmem8\r
7321 opBITb 5\r
7322 fetch 20\r
7323;@BIT 6,(IX+N) \r
7324opcode_DD_CB_76:\r
7325 readmem8\r
7326 opBITb 6\r
7327 fetch 20\r
7328;@BIT 7,(IX+N) \r
7329opcode_DD_CB_7E:\r
7330 readmem8\r
7331 opBIT7b\r
7332 fetch 20\r
7333;@RES 0,(IX+N) \r
7334opcode_DD_CB_86:\r
7335 opRESmem 0\r
7336;@RES 1,(IX+N) \r
7337opcode_DD_CB_8E:\r
7338 opRESmem 1\r
7339;@RES 2,(IX+N) \r
7340opcode_DD_CB_96:\r
7341 opRESmem 2\r
7342;@RES 3,(IX+N) \r
7343opcode_DD_CB_9E:\r
7344 opRESmem 3\r
7345;@RES 4,(IX+N) \r
7346opcode_DD_CB_A6:\r
7347 opRESmem 4\r
7348;@RES 5,(IX+N) \r
7349opcode_DD_CB_AE:\r
7350 opRESmem 5\r
7351;@RES 6,(IX+N) \r
7352opcode_DD_CB_B6:\r
7353 opRESmem 6\r
7354;@RES 7,(IX+N) \r
7355opcode_DD_CB_BE:\r
7356 opRESmem 7\r
7357\r
7358;@SET 0,(IX+N) \r
7359opcode_DD_CB_C6:\r
7360 opSETmem 0\r
7361;@SET 1,(IX+N) \r
7362opcode_DD_CB_CE:\r
7363 opSETmem 1\r
7364;@SET 2,(IX+N) \r
7365opcode_DD_CB_D6:\r
7366 opSETmem 2\r
7367;@SET 3,(IX+N) \r
7368opcode_DD_CB_DE:\r
7369 opSETmem 3\r
7370;@SET 4,(IX+N) \r
7371opcode_DD_CB_E6:\r
7372 opSETmem 4\r
7373;@SET 5,(IX+N) \r
7374opcode_DD_CB_EE:\r
7375 opSETmem 5\r
7376;@SET 6,(IX+N) \r
7377opcode_DD_CB_F6:\r
7378 opSETmem 6\r
7379;@SET 7,(IX+N) \r
7380opcode_DD_CB_FE:\r
7381 opSETmem 7\r
7382\r
7383\r
7384\r
7385;@POP IX\r
7386opcode_DD_E1:\r
7387.if FAST_Z80SP\r
7388 opPOP\r
7389.else\r
7390 mov r0,z80sp\r
7391 stmfd sp!,{z80xx}\r
7392 readmem16\r
7393 ldmfd sp!,{z80xx}\r
7394 add z80sp,z80sp,#2\r
7395.endif\r
7396 strh r0,[z80xx,#2]\r
7397 fetch 14\r
7398;@EX (SP),IX\r
7399opcode_DD_E3:\r
7400.if FAST_Z80SP\r
7401 ldrb r0,[z80sp]\r
7402 ldrb r1,[z80sp,#1]\r
7403 orr r2,r0,r1, lsl #8\r
7404 ldrh r1,[z80xx,#2]\r
7405 mov r0,r1, lsr #8\r
7406 strb r0,[z80sp,#1]\r
7407 strb r1,[z80sp]\r
7408 strh r2,[z80xx,#2]\r
7409.else\r
7410 mov r0,z80sp\r
7411 stmfd sp!,{z80xx}\r
7412 readmem16\r
7413 ldmfd sp!,{z80xx}\r
7414 mov r2,r0\r
7415 ldrh r0,[z80xx,#2]\r
7416 strh r2,[z80xx,#2]\r
7417 mov r1,z80sp\r
7418 writemem16\r
7419.endif\r
7420 fetch 23\r
7421;@PUSH IX\r
7422opcode_DD_E5:\r
7423 ldr r2,[z80xx]\r
7424 opPUSHreg r2\r
7425 fetch 15\r
7426;@JP (IX)\r
7427opcode_DD_E9:\r
7428 ldrh r0,[z80xx,#2]\r
7429 rebasepc\r
7430 fetch 8\r
7431;@LD SP,IX\r
7432opcode_DD_F9:\r
7433.if FAST_Z80SP\r
7434 ldrh r0,[z80xx,#2]\r
7435 rebasesp\r
7436 mov z80sp,r0\r
7437.else\r
7438 ldrh z80sp,[z80xx,#2]\r
7439.endif\r
7440 fetch 10\r
7441\r
7442;@##################################\r
7443;@##################################\r
7444;@### opcodes ED #########################\r
7445;@##################################\r
7446;@##################################\r
7447\r
7448opcode_ED_NF:\r
7449 fetch 8\r
7450;@ ldrb r0,[z80pc],#1\r
7451;@ ldr pc,[opcodes,r0, lsl #2]\r
7452;@ mov r0,#0xED00\r
7453;@ orr r0,r0,r1\r
7454;@ b end_loop\r
7455\r
7456;@IN B,(C)\r
7457opcode_ED_40:\r
7458 opIN_C\r
7459 and z80bc,z80bc,#0xFF<<16\r
7460 orr z80bc,z80bc,r0, lsl #24\r
7461 sub r1,opcodes,#0x100\r
7462 ldrb r0,[r1,r0]\r
7463 and z80f,z80f,#1<<CFlag\r
7464 orr z80f,z80f,r0\r
7465 fetch 12\r
7466;@OUT (C),B\r
7467opcode_ED_41:\r
7468 mov r1,z80bc, lsr #24\r
7469 opOUT_C\r
7470 fetch 12\r
7471\r
7472;@SBC HL,BC\r
7473opcode_ED_42:\r
7474 opSBC16 z80bc\r
7475\r
7476;@LD (NN),BC\r
7477opcode_ED_43:\r
7478 ldrb r0,[z80pc],#1\r
7479 ldrb r1,[z80pc],#1\r
7480 orr r1,r0,r1, lsl #8\r
7481 mov r0,z80bc, lsr #16\r
7482 writemem16\r
7483 fetch 20\r
7484;@NEG\r
7485opcode_ED_44:\r
7486 rsbs z80a,z80a,#0\r
7487 mrs z80f,cpsr\r
7488 mov z80f,z80f,lsr#28 ;@S,Z,V&C\r
7489 eor z80f,z80f,#(1<<CFlag)|(1<<NFlag) ;@invert C and set n.\r
7490 tst z80a,#0x0F000000 ;@H, correct\r
7491 orrne z80f,z80f,#1<<HFlag\r
7492 fetch 8\r
7493 \r
7494;@RETN, moved to ED_4D\r
7495;@opcode_ED_45:\r
7496\r
7497;@IM 0\r
7498opcode_ED_46:\r
7499 strb z80a,[cpucontext,#z80im]\r
7500 fetch 8\r
7501;@LD I,A\r
7502opcode_ED_47:\r
7503 str z80a,[cpucontext,#z80i]\r
7504 fetch 9\r
7505;@IN C,(C)\r
7506opcode_ED_48:\r
7507 opIN_C\r
7508 and z80bc,z80bc,#0xFF<<24\r
7509 orr z80bc,z80bc,r0, lsl #16\r
7510 sub r1,opcodes,#0x100\r
7511 ldrb r0,[r1,r0]\r
7512 and z80f,z80f,#1<<CFlag\r
7513 orr z80f,z80f,r0\r
7514 fetch 12\r
7515;@OUT (C),C\r
7516opcode_ED_49:\r
7517 mov r0,z80bc, lsr #16\r
7518 and r1,r0,#0xFF\r
7519 opOUT\r
7520 fetch 12\r
7521;@ADC HL,BC\r
7522opcode_ED_4A:\r
7523 opADC16 z80bc\r
7524;@LD BC,(NN)\r
7525opcode_ED_4B:\r
7526 ldrb r0,[z80pc],#1\r
7527 ldrb r1,[z80pc],#1\r
7528 orr r0,r0,r1, lsl #8\r
7529 readmem16\r
7530 mov z80bc,r0, lsl #16\r
7531 fetch 20\r
7532\r
7533;@RETN\r
7534opcode_ED_45:\r
7535;@RETI\r
7536opcode_ED_4D:\r
7537 ldrb r0,[cpucontext,#z80if]\r
7538 tst r0,#Z80_IF2\r
7539 orrne r0,r0,#Z80_IF1\r
7540 biceq r0,r0,#Z80_IF1\r
7541 strb r0,[cpucontext,#z80if]\r
7542 opPOP\r
7543 rebasepc\r
7544 fetch 14\r
7545\r
7546;@LD R,A\r
7547opcode_ED_4F:\r
7548 mov r0,z80a,lsr#24\r
7549 strb r0,[cpucontext,#z80r]\r
7550 fetch 9\r
7551\r
7552;@IN D,(C)\r
7553opcode_ED_50:\r
7554 opIN_C\r
7555 and z80de,z80de,#0xFF<<16\r
7556 orr z80de,z80de,r0, lsl #24\r
7557 sub r1,opcodes,#0x100\r
7558 ldrb r0,[r1,r0]\r
7559 and z80f,z80f,#1<<CFlag\r
7560 orr z80f,z80f,r0\r
7561 fetch 12\r
7562;@OUT (C),D\r
7563opcode_ED_51:\r
7564 mov r1,z80de, lsr #24\r
7565 opOUT_C\r
7566 fetch 12\r
7567;@SBC HL,DE\r
7568opcode_ED_52:\r
7569 opSBC16 z80de\r
7570;@LD (NN),DE\r
7571opcode_ED_53:\r
7572 ldrb r0,[z80pc],#1\r
7573 ldrb r1,[z80pc],#1\r
7574 orr r1,r0,r1, lsl #8\r
7575 mov r0,z80de, lsr #16\r
7576 writemem16\r
7577 fetch 20\r
7578;@IM 1\r
7579opcode_ED_56:\r
7580 mov r0,#1\r
7581 strb r0,[cpucontext,#z80im]\r
7582 fetch 8\r
7583;@LD A,I\r
7584opcode_ED_57:\r
7585 ldr z80a,[cpucontext,#z80i]\r
7586 tst z80a,#0xFF000000\r
7587 and z80f,z80f,#(1<<CFlag)\r
7588 orreq z80f,z80f,#(1<<ZFlag)\r
7589 orrmi z80f,z80f,#(1<<SFlag)\r
7590 ldrb r0,[cpucontext,#z80if]\r
7591 tst r0,#Z80_IF2\r
7592 orrne z80f,z80f,#(1<<VFlag)\r
7593 fetch 9\r
7594;@IN E,(C)\r
7595opcode_ED_58:\r
7596 opIN_C\r
7597 and z80de,z80de,#0xFF<<24\r
7598 orr z80de,z80de,r0, lsl #16\r
7599 sub r1,opcodes,#0x100\r
7600 ldrb r0,[r1,r0]\r
7601 and z80f,z80f,#1<<CFlag\r
7602 orr z80f,z80f,r0\r
7603 fetch 12\r
7604;@OUT (C),E\r
7605opcode_ED_59:\r
7606 mov r1,z80de, lsr #16\r
7607 and r1,r1,#0xFF\r
7608 opOUT_C\r
7609 fetch 12\r
7610;@ADC HL,DE\r
7611opcode_ED_5A:\r
7612 opADC16 z80de\r
7613;@LD DE,(NN)\r
7614opcode_ED_5B:\r
7615 ldrb r0,[z80pc],#1\r
7616 ldrb r1,[z80pc],#1\r
7617 orr r0,r0,r1, lsl #8\r
7618 readmem16\r
7619 mov z80de,r0, lsl #16\r
7620 fetch 20\r
7621;@IM 2\r
7622opcode_ED_5E:\r
7623 mov r0,#2\r
7624 strb r0,[cpucontext,#z80im]\r
7625 fetch 8\r
7626;@LD A,R\r
7627opcode_ED_5F:\r
7628 ldrb r0,[cpucontext,#z80r]\r
7629 and r0,r0,#0x80\r
7630 rsb r1,z80_icount,#0\r
7631 and r1,r1,#0x7F\r
7632 orr r0,r0,r1\r
7633 movs z80a,r0, lsl #24\r
7634 and z80f,z80f,#1<<CFlag\r
7635 orrmi z80f,z80f,#(1<<SFlag)\r
7636 orreq z80f,z80f,#(1<<ZFlag)\r
7637 ldrb r0,[cpucontext,#z80if]\r
7638 tst r0,#Z80_IF2\r
7639 orrne z80f,z80f,#(1<<VFlag)\r
7640 fetch 9\r
7641;@IN H,(C)\r
7642opcode_ED_60:\r
7643 opIN_C\r
7644 and z80hl,z80hl,#0xFF<<16\r
7645 orr z80hl,z80hl,r0, lsl #24\r
7646 sub r1,opcodes,#0x100\r
7647 ldrb r0,[r1,r0]\r
7648 and z80f,z80f,#1<<CFlag\r
7649 orr z80f,z80f,r0\r
7650 fetch 12\r
7651;@OUT (C),H\r
7652opcode_ED_61:\r
7653 mov r1,z80hl, lsr #24\r
7654 opOUT_C\r
7655 fetch 12\r
7656;@SBC HL,HL\r
7657opcode_ED_62:\r
7658 opSBC16HL\r
7659;@RRD\r
7660opcode_ED_67:\r
7661 readmem8HL\r
7662 mov r1,r0,ror#4\r
7663 orr r0,r1,z80a,lsr#20\r
7664 bic z80a,z80a,#0x0F000000\r
7665 orr z80a,z80a,r1,lsr#4\r
7666 writemem8HL\r
7667 sub r1,opcodes,#0x100\r
7668 ldrb r0,[r1,z80a, lsr #24]\r
7669 and z80f,z80f,#1<<CFlag\r
7670 orr z80f,z80f,r0\r
7671 fetch 18\r
7672;@IN L,(C)\r
7673opcode_ED_68:\r
7674 opIN_C\r
7675 and z80hl,z80hl,#0xFF<<24\r
7676 orr z80hl,z80hl,r0, lsl #16\r
7677 and z80f,z80f,#1<<CFlag\r
7678 sub r1,opcodes,#0x100\r
7679 ldrb r0,[r1,r0]\r
7680 orr z80f,z80f,r0\r
7681 fetch 12\r
7682;@OUT (C),L\r
7683opcode_ED_69:\r
7684 mov r1,z80hl, lsr #16\r
7685 and r1,r1,#0xFF\r
7686 opOUT_C\r
7687 fetch 12\r
7688;@ADC HL,HL\r
7689opcode_ED_6A:\r
7690 opADC16HL\r
7691;@RLD\r
7692opcode_ED_6F:\r
7693 readmem8HL\r
7694 orr r0,r0,z80a,lsl#4\r
7695 mov r0,r0,ror#28\r
7696 and z80a,z80a,#0xF0000000\r
7697 orr z80a,z80a,r0,lsl#16\r
7698 and z80a,z80a,#0xFF000000\r
7699 writemem8HL\r
7700 sub r1,opcodes,#0x100\r
7701 ldrb r0,[r1,z80a, lsr #24]\r
7702 and z80f,z80f,#1<<CFlag\r
7703 orr z80f,z80f,r0\r
7704 fetch 18\r
7705;@IN F,(C)\r
7706opcode_ED_70:\r
7707 opIN_C\r
7708 and z80f,z80f,#1<<CFlag\r
7709 sub r1,opcodes,#0x100\r
7710 ldrb r0,[r1,r0]\r
7711 orr z80f,z80f,r0\r
7712 fetch 12\r
7713;@OUT (C),0\r
7714opcode_ED_71:\r
7715 mov r1,#0\r
7716 opOUT_C\r
7717 fetch 12\r
7718\r
7719;@SBC HL,SP\r
7720opcode_ED_72:\r
7721.if FAST_Z80SP\r
7722 ldr r0,[cpucontext,#z80sp_base]\r
7723 sub r0,z80sp,r0\r
7724 mov r0, r0, lsl #16\r
7725.else\r
7726 mov r0,z80sp,lsl#16\r
7727.endif\r
7728 opSBC16 r0\r
7729;@LD (NN),SP\r
7730opcode_ED_73:\r
7731 ldrb r0,[z80pc],#1\r
7732 ldrb r1,[z80pc],#1\r
7733 orr r1,r0,r1, lsl #8\r
7734.if FAST_Z80SP\r
7735 ldr r0,[cpucontext,#z80sp_base]\r
7736 sub r0,z80sp,r0\r
7737.else\r
7738 mov r0,z80sp\r
7739.endif\r
7740 writemem16\r
7741 fetch 16\r
7742;@IN A,(C)\r
7743opcode_ED_78:\r
7744 opIN_C\r
7745 mov z80a,r0, lsl #24\r
7746 and z80f,z80f,#1<<CFlag\r
7747 sub r1,opcodes,#0x100\r
7748 ldrb r0,[r1,r0]\r
7749 orr z80f,z80f,r0\r
7750 fetch 12\r
7751;@OUT (C),A\r
7752opcode_ED_79:\r
7753 mov r1,z80a, lsr #24\r
7754 opOUT_C\r
7755 fetch 12\r
7756;@ADC HL,SP\r
7757opcode_ED_7A:\r
7758.if FAST_Z80SP\r
7759 ldr r0,[cpucontext,#z80sp_base]\r
7760 sub r0,z80sp,r0\r
7761 mov r0, r0, lsl #16\r
7762.else\r
7763 mov r0,z80sp,lsl#16\r
7764.endif\r
7765 opADC16 r0\r
7766;@LD SP,(NN)\r
7767opcode_ED_7B:\r
7768 ldrb r0,[z80pc],#1\r
7769 ldrb r1,[z80pc],#1\r
7770 orr r0,r0,r1, lsl #8\r
7771 readmem16\r
7772.if FAST_Z80SP\r
7773 rebasesp\r
7774.endif\r
7775 mov z80sp,r0\r
7776 fetch 20\r
7777;@LDI\r
7778opcode_ED_A0:\r
7779 copymem8HL_DE\r
7780 add z80hl,z80hl,#1<<16\r
7781 add z80de,z80de,#1<<16\r
7782 subs z80bc,z80bc,#1<<16\r
7783 bic z80f,z80f,#(1<<VFlag)|(1<<NFlag)|(1<<HFlag)\r
7784 orrne z80f,z80f,#1<<VFlag\r
7785 fetch 16\r
7786;@CPI\r
7787opcode_ED_A1:\r
7788 readmem8HL\r
7789 add z80hl,z80hl,#0x00010000\r
7790 mov r1,z80a,lsl#4\r
7791 cmp z80a,r0,lsl#24\r
7792 and z80f,z80f,#1<<CFlag\r
7793 orr z80f,z80f,#1<<NFlag\r
7794 orrmi z80f,z80f,#1<<SFlag\r
7795 orreq z80f,z80f,#1<<ZFlag\r
7796 cmp r1,r0,lsl#28\r
7797 orrcc z80f,z80f,#1<<HFlag\r
7798 subs z80bc,z80bc,#0x00010000\r
7799 orrne z80f,z80f,#1<<VFlag\r
7800 fetch 16\r
7801;@INI\r
7802opcode_ED_A2:\r
7803 opIN_C\r
7804 and z80f,r0,#0x80\r
7805 mov z80f,z80f,lsr#2 ;@NFlag set by bit 7\r
7806;@ mov r1,z80bc,lsl#8\r
7807;@ add r1,r1,#0x01000000\r
7808;@ adds r1,r1,r0,lsl#24\r
7809;@ orrcs z80f,z80f,#(1<<CFlag)|(1<<HFlag) ;@ CF & HF set if (HL) + ((C+1) & 0xFF) > 0xFF\r
7810 writemem8HL\r
7811 add z80hl,z80hl,#1<<16\r
7812 sub z80bc,z80bc,#1<<24\r
7813 tst z80bc,#0xFF<<24\r
7814 orrmi z80f,z80f,#1<<SFlag\r
7815 orreq z80f,z80f,#1<<ZFlag\r
7816 fetch 16\r
7817\r
7818;@OUTI\r
7819opcode_ED_A3:\r
7820 readmem8HL\r
7821 add z80hl,z80hl,#1<<16\r
7822 and z80f,r0,#0x80\r
7823 mov z80f,z80f,lsr#2 ;@NFlag set by bit 7\r
7824 mov r1,z80hl,lsl#8\r
7825 adds r1,r1,r0,lsl#24\r
7826 orrcs z80f,z80f,#(1<<CFlag)|(1<<HFlag) ;@ CF & HF set if (HL)+L > 0xFF\r
7827 sub z80bc,z80bc,#1<<24\r
7828 tst z80bc,#0xFF<<24\r
7829 orrmi z80f,z80f,#1<<SFlag\r
7830 orreq z80f,z80f,#1<<ZFlag\r
7831 mov r1,r0\r
7832 opOUT_C\r
7833 fetch 16\r
7834\r
7835;@LDD\r
7836opcode_ED_A8:\r
7837 copymem8HL_DE\r
7838 sub z80hl,z80hl,#1<<16\r
7839 sub z80de,z80de,#1<<16\r
7840 subs z80bc,z80bc,#1<<16\r
7841 bic z80f,z80f,#(1<<VFlag)|(1<<NFlag)|(1<<HFlag)\r
7842 orrne z80f,z80f,#1<<VFlag\r
7843 fetch 16\r
7844\r
7845;@CPD\r
7846opcode_ED_A9:\r
7847 readmem8HL\r
7848 sub z80hl,z80hl,#1<<16\r
7849 mov r1,z80a,lsl#4\r
7850 cmp z80a,r0,lsl#24\r
7851 and z80f,z80f,#1<<CFlag\r
7852 orr z80f,z80f,#1<<NFlag\r
7853 orrmi z80f,z80f,#1<<SFlag\r
7854 orreq z80f,z80f,#1<<ZFlag\r
7855 cmp r1,r0,lsl#28\r
7856 orrcc z80f,z80f,#1<<HFlag\r
7857 subs z80bc,z80bc,#0x00010000\r
7858 orrne z80f,z80f,#1<<VFlag\r
7859 fetch 16\r
7860\r
7861;@IND\r
7862opcode_ED_AA:\r
7863 opIN_C\r
7864 and z80f,r0,#0x80\r
7865 mov z80f,z80f,lsr#2 ;@NFlag set by bit 7\r
7866;@ mov r1,z80bc,lsl#8\r
7867;@ sub r1,r1,#0x01000000\r
7868;@ adds r1,r1,r0,lsl#24\r
7869;@ orrcs z80f,z80f,#(1<<CFlag)|(1<<HFlag) ;@ CF & HF set if (HL) + ((C-1) & 0xFF) > 0xFF\r
7870 writemem8HL\r
7871 sub z80hl,z80hl,#1<<16\r
7872 sub z80bc,z80bc,#1<<24\r
7873 tst z80bc,#0xFF<<24\r
7874 orrmi z80f,z80f,#1<<SFlag\r
7875 orreq z80f,z80f,#1<<ZFlag\r
7876 fetch 16\r
7877\r
7878;@OUTD\r
7879opcode_ED_AB:\r
7880 readmem8HL\r
7881 sub z80hl,z80hl,#1<<16\r
7882 and z80f,r0,#0x80\r
7883 mov z80f,z80f,lsr#2 ;@NFlag set by bit 7\r
7884 mov r1,z80hl,lsl#8\r
7885 adds r1,r1,r0,lsl#24\r
7886 orrcs z80f,z80f,#(1<<CFlag)|(1<<HFlag) ;@ CF & HF set if r0+HL > 0xFF\r
7887 sub z80bc,z80bc,#1<<24\r
7888 tst z80bc,#0xFF<<24\r
7889 orrmi z80f,z80f,#1<<SFlag\r
7890 orreq z80f,z80f,#1<<ZFlag\r
7891 mov r1,r0\r
7892 opOUT_C\r
7893 fetch 16\r
7894;@LDIR\r
7895opcode_ED_B0:\r
7896 copymem8HL_DE\r
7897 add z80hl,z80hl,#1<<16\r
7898 add z80de,z80de,#1<<16\r
7899 subs z80bc,z80bc,#1<<16\r
7900 bic z80f,z80f,#(1<<VFlag)|(1<<NFlag)|(1<<HFlag)\r
7901 orrne z80f,z80f,#1<<VFlag\r
7902 subne z80pc,z80pc,#2\r
7903 subne z80_icount,z80_icount,#5\r
7904 fetch 16\r
7905\r
7906;@CPIR\r
7907opcode_ED_B1:\r
7908 readmem8HL\r
7909 add z80hl,z80hl,#1<<16 \r
7910 mov r1,z80a,lsl#4\r
7911 cmp z80a,r0,lsl#24\r
7912 and z80f,z80f,#1<<CFlag\r
7913 orr z80f,z80f,#1<<NFlag\r
7914 orrmi z80f,z80f,#1<<SFlag\r
7915 orreq z80f,z80f,#1<<ZFlag\r
7916 cmp r1,r0,lsl#28\r
7917 orrcc z80f,z80f,#1<<HFlag\r
7918 subs z80bc,z80bc,#1<<16\r
7919 bne opcode_ED_B1_decpc\r
7920 fetch 16\r
7921opcode_ED_B1_decpc:\r
7922 orr z80f,z80f,#1<<VFlag\r
7923 tst z80f,#1<<ZFlag\r
7924 subeq z80pc,z80pc,#2\r
7925 subeq z80_icount,z80_icount,#5\r
7926 fetch 16\r
7927;@INIR\r
7928opcode_ED_B2:\r
7929 opIN_C\r
7930 and z80f,r0,#0x80\r
7931 mov z80f,z80f,lsr#2 ;@NFlag set by bit 7\r
7932;@ mov r1,z80bc,lsl#8\r
7933;@ add r1,r1,#0x01000000\r
7934;@ adds r1,r1,r0,lsl#24\r
7935;@ orrcs z80f,z80f,#(1<<CFlag)|(1<<HFlag) ;@ CF & HF set if (HL) + ((C+1) & 0xFF) > 0xFF\r
7936 writemem8HL\r
7937 add z80hl,z80hl,#1<<16\r
7938 sub z80bc,z80bc,#1<<24\r
7939 tst z80bc,#0xFF<<24\r
7940 orrmi z80f,z80f,#1<<SFlag\r
7941 orreq z80f,z80f,#1<<ZFlag\r
7942 subne z80pc,z80pc,#2\r
7943 subne z80_icount,z80_icount,#5\r
7944 fetch 16\r
7945;@OTIR\r
7946opcode_ED_B3:\r
7947 readmem8HL\r
7948 add z80hl,z80hl,#1<<16\r
7949 and z80f,r0,#0x80\r
7950 mov z80f,z80f,lsr#2 ;@NFlag set by bit 7\r
7951 mov r1,z80hl,lsl#8\r
7952 adds r1,r1,r0,lsl#24\r
7953 orrcs z80f,z80f,#(1<<CFlag)|(1<<HFlag) ;@ CF & HF set if r0+HL > 0xFF\r
7954 sub z80bc,z80bc,#1<<24\r
7955 tst z80bc,#0xFF<<24\r
7956 orrmi z80f,z80f,#1<<SFlag\r
7957 orreq z80f,z80f,#1<<ZFlag\r
7958 subne z80pc,z80pc,#2\r
7959 subne z80_icount,z80_icount,#5\r
7960 mov r1,r0\r
7961 opOUT_C\r
7962 fetch 16\r
7963;@LDDR\r
7964opcode_ED_B8:\r
7965 copymem8HL_DE\r
7966 sub z80hl,z80hl,#1<<16\r
7967 sub z80de,z80de,#1<<16\r
7968 subs z80bc,z80bc,#1<<16\r
7969 bic z80f,z80f,#(1<<VFlag)|(1<<NFlag)|(1<<HFlag)\r
7970 orrne z80f,z80f,#1<<VFlag\r
7971 subne z80pc,z80pc,#2\r
7972 subne z80_icount,z80_icount,#5\r
7973 fetch 16\r
7974\r
7975;@CPDR\r
7976opcode_ED_B9:\r
7977 readmem8HL\r
7978 sub z80hl,z80hl,#1<<16\r
7979 mov r1,z80a,lsl#4\r
7980 cmp z80a,r0,lsl#24\r
7981 and z80f,z80f,#1<<CFlag\r
7982 orr z80f,z80f,#1<<NFlag\r
7983 orrmi z80f,z80f,#1<<SFlag\r
7984 orreq z80f,z80f,#1<<ZFlag\r
7985 cmp r1,r0,lsl#28\r
7986 orrcc z80f,z80f,#1<<HFlag\r
7987 subs z80bc,z80bc,#1<<16\r
7988 bne opcode_ED_B9_decpc\r
7989 fetch 16\r
7990opcode_ED_B9_decpc:\r
7991 orr z80f,z80f,#1<<VFlag\r
7992 tst z80f,#1<<ZFlag\r
7993 subeq z80pc,z80pc,#2\r
7994 subeq z80_icount,z80_icount,#5\r
7995 fetch 16\r
7996;@INDR\r
7997opcode_ED_BA:\r
7998 opIN_C\r
7999 and z80f,r0,#0x80\r
8000 mov z80f,z80f,lsr#2 ;@NFlag set by bit 7\r
8001;@ mov r1,z80bc,lsl#8\r
8002;@ sub r1,r1,#0x01000000\r
8003;@ adds r1,r1,r0,lsl#24\r
8004;@ orrcs z80f,z80f,#(1<<CFlag)|(1<<HFlag) ;@ CF & HF set if (HL) + ((C-1) & 0xFF) > 0xFF\r
8005 writemem8HL\r
8006 sub z80hl,z80hl,#1<<16\r
8007 sub z80bc,z80bc,#1<<24\r
8008 tst z80bc,#0xFF<<24\r
8009 orrmi z80f,z80f,#1<<SFlag\r
8010 orreq z80f,z80f,#1<<ZFlag\r
8011 subne z80pc,z80pc,#2\r
8012 subne z80_icount,z80_icount,#5\r
8013 fetch 16\r
8014;@OTDR\r
8015opcode_ED_BB:\r
8016 readmem8HL\r
8017 sub z80hl,z80hl,#1<<16\r
8018 and z80f,r0,#0x80\r
8019 mov z80f,z80f,lsr#2 ;@NFlag set by bit 7\r
8020 mov r1,z80hl,lsl#8\r
8021 adds r1,r1,r0,lsl#24\r
8022 orrcs z80f,z80f,#(1<<CFlag)|(1<<HFlag) ;@ CF & HF set if r0+HL > 0xFF\r
8023 sub z80bc,z80bc,#1<<24\r
8024 tst z80bc,#0xFF<<24\r
8025 orrmi z80f,z80f,#1<<SFlag\r
8026 orreq z80f,z80f,#1<<ZFlag\r
8027 subne z80pc,z80pc,#2\r
8028 subne z80_icount,z80_icount,#5\r
8029 mov r1,r0\r
8030 opOUT_C\r
8031 fetch 16\r
8032;@##################################\r
8033;@##################################\r
8034;@### opcodes FD #########################\r
8035;@##################################\r
8036;@##################################\r
8037;@Since DD and FD opcodes are all the same apart from the address\r
8038;@register they use. When a FD intruction the program runs the code\r
8039;@from the DD location but the address of the IY reg is passed instead\r
8040;@of IX\r
8041\r
f0243975 8042;@end_loop:\r
8043;@ b end_loop\r
cc68a136 8044\r
de89bf45 8045;@ vim:filetype=armasm\r
cc68a136 8046\r