converting drZ80 to use xmap (new mem handling)
[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
17 .equiv DRZ80_FOR_PICODRIVE, 1\r
18 .equiv DRZ80_XMAP, 1\r
19 .equiv DRZ80_XMAP_MORE_INLINE, 1\r
20\r
21.if DRZ80_XMAP\r
22 .equ Z80_MEM_SHIFT, 13\r
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
147 eor r1,r0,r0\r
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
163 stmfd sp!,{r4,r5,lr}\r
cc68a136 164 mov r4,r0\r
ee05564f 165 bl z80_xmap_read8\r
cc68a136 166 mov r5,r0\r
167 add r0,r4,#1\r
ee05564f 168 bl z80_xmap_read8\r
cc68a136 169 orr r0,r5,r0,lsl #8\r
ee05564f 170 ldmfd sp!,{r4,r5,pc}\r
cc68a136 171\r
ee05564f 172z80_xmap_write16: @ data, addr\r
173 add r2,r1,#1\r
174 eor r2,r1,r1\r
175 tst r2,#1<<Z80_MEM_SHIFT\r
176 bne 0f\r
cc68a136 177\r
ee05564f 178 ldr r2,[cpucontext,#z80_read8]\r
179 add r2,r2,r1,lsr #Z80_MEM_SHIFT-2\r
180 bic r2,r2,#3\r
181 ldr r2,[r2]\r
182 movs r2,r2,lsl #1\r
183 bcs 0f\r
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
190 stmfd sp!,{r4,r5,lr}\r
cc68a136 191 mov r4,r0\r
192 mov r5,r1\r
ee05564f 193 bl z80_xmap_write8\r
cc68a136 194 mov r0,r4,lsr #8\r
195 add r1,r5,#1\r
ee05564f 196 bl z80_xmap_write8\r
197 ldmfd sp!,{r4,r5,pc}\r
cc68a136 198.endif\r
199\r
ee05564f 200\r
cc68a136 201.macro fetch cycs\r
202 subs z80_icount,z80_icount,#\cycs\r
203.if UPDATE_CONTEXT\r
204 str z80pc,[cpucontext,#z80pc_pointer]\r
205 str z80_icount,[cpucontext,#cycles_pointer]\r
206 ldr r1,[cpucontext,#z80pc_base]\r
207 sub r2,z80pc,r1\r
208 str r2,[cpucontext,#previouspc]\r
209.endif\r
210 ldrplb r0,[z80pc],#1\r
211 ldrpl pc,[opcodes,r0, lsl #2]\r
212 bmi z80_execute_end\r
213.endm\r
214\r
215.macro eatcycles cycs\r
216 sub z80_icount,z80_icount,#\cycs\r
217.if UPDATE_CONTEXT\r
218 str z80_icount,[cpucontext,#cycles_pointer]\r
219.endif\r
220.endm\r
221\r
222.macro readmem8\r
223.if UPDATE_CONTEXT\r
224 str z80pc,[cpucontext,#z80pc_pointer]\r
225.endif\r
ee05564f 226.if DRZ80_XMAP\r
227.if !DRZ80_XMAP_MORE_INLINE\r
228 ldr r1,[cpucontext,#z80_read8]\r
229 mov r2,r0,lsr #Z80_MEM_SHIFT\r
230 ldr r1,[r1,r2,lsl #2]\r
231 movs r1,r1,lsl #1\r
232 ldrccb r0,[r1,r0]\r
233 blcs z80_xmap_read8_handler\r
cc68a136 234.else\r
ee05564f 235 bl z80_xmap_read8\r
236.endif\r
237.else ;@ if !DRZ80_XMAP\r
cc68a136 238 stmfd sp!,{r3,r12}\r
239 mov lr,pc\r
240 ldr pc,[cpucontext,#z80_read8] ;@ r0 = addr - data returned in r0\r
241 ldmfd sp!,{r3,r12}\r
242.endif\r
243.endm\r
244\r
245.macro readmem8HL\r
246 mov r0,z80hl, lsr #16\r
247 readmem8\r
248.endm\r
249\r
250.macro readmem16\r
251.if UPDATE_CONTEXT\r
252 str z80pc,[cpucontext,#z80pc_pointer]\r
253.endif\r
ee05564f 254.if DRZ80_XMAP\r
255 bl z80_xmap_read16\r
cc68a136 256.else\r
257 stmfd sp!,{r3,r12}\r
258 mov lr,pc\r
259 ldr pc,[cpucontext,#z80_read16]\r
260 ldmfd sp!,{r3,r12}\r
261.endif\r
262.endm\r
263\r
264.macro writemem8\r
265.if UPDATE_CONTEXT\r
266 str z80pc,[cpucontext,#z80pc_pointer]\r
267.endif\r
ee05564f 268.if DRZ80_XMAP\r
269.if DRZ80_XMAP_MORE_INLINE\r
270 ldr r2,[cpucontext,#z80_write8]\r
271 mov lr,r1,lsr #Z80_MEM_SHIFT\r
272 ldr r2,[r2,lr,lsl #2]\r
273 movs r2,r2,lsl #1\r
274 strccb r0,[r2,r1]\r
275 blcs z80_xmap_write8_handler\r
cc68a136 276.else\r
ee05564f 277 bl z80_xmap_write8\r
278.endif\r
279.else ;@ if !DRZ80_XMAP\r
cc68a136 280 stmfd sp!,{r3,r12}\r
281 mov lr,pc\r
282 ldr pc,[cpucontext,#z80_write8] ;@ r0=data r1=addr\r
283 ldmfd sp!,{r3,r12}\r
284.endif\r
285.endm\r
286\r
287.macro writemem8DE\r
288 mov r1,z80de, lsr #16\r
289 writemem8\r
290.endm\r
291\r
292.macro writemem8HL\r
293 mov r1,z80hl, lsr #16\r
294 writemem8\r
295.endm\r
296\r
297.macro writemem16\r
298.if UPDATE_CONTEXT\r
299 str z80pc,[cpucontext,#z80pc_pointer]\r
300.endif\r
ee05564f 301.if DRZ80_XMAP\r
302 bl z80_xmap_write16\r
cc68a136 303.else\r
304 stmfd sp!,{r3,r12}\r
305 mov lr,pc\r
306 ldr pc,[cpucontext,#z80_write16] ;@ r0=data r1=addr\r
307 ldmfd sp!,{r3,r12}\r
308.endif\r
309.endm\r
310\r
311.macro copymem8HL_DE\r
312.if UPDATE_CONTEXT\r
313 str z80pc,[cpucontext,#z80pc_pointer]\r
314.endif\r
315 mov r0,z80hl, lsr #16\r
ee05564f 316.if DRZ80_XMAP\r
317 bl z80_xmap_read8\r
cc68a136 318.else\r
319 stmfd sp!,{r3,r12}\r
320 mov lr,pc\r
321 ldr pc,[cpucontext,#z80_read8] ;@ r0 = addr - data returned in r0\r
cc68a136 322.endif\r
323 mov r1,z80de, lsr #16\r
ee05564f 324.if DRZ80_XMAP\r
325 bl z80_xmap_write8\r
cc68a136 326.else\r
327 mov lr,pc\r
328 ldr pc,[cpucontext,#z80_write8] ;@ r0=data r1=addr\r
329 ldmfd sp!,{r3,r12}\r
330.endif\r
331.endm\r
332;@---------------------------------------\r
333\r
334.macro rebasepc\r
335.if UPDATE_CONTEXT\r
336 str z80pc,[cpucontext,#z80pc_pointer]\r
337.endif\r
338.if DRZ80_FOR_PICODRIVE\r
cc68a136 339 ldr r1,[cpucontext,#z80pc_base]\r
de89bf45 340 bic r0,r0,#0xfe000\r
cc68a136 341 add z80pc,r1,r0\r
342.else\r
343 stmfd sp!,{r3,r12}\r
344 mov lr,pc\r
345 ldr pc,[cpucontext,#z80_rebasePC] ;@ r0=new pc - external function sets z80pc_base and returns new z80pc in r0\r
346 ldmfd sp!,{r3,r12}\r
347 mov z80pc,r0\r
348.endif\r
349.endm\r
350\r
351.macro rebasesp\r
352.if UPDATE_CONTEXT\r
353 str z80pc,[cpucontext,#z80pc_pointer]\r
354.endif\r
355.if DRZ80_FOR_PICODRIVE\r
356 bic r0,r0,#0xfe000\r
357 ldr r1,[cpucontext,#z80sp_base]\r
358 add r0,r1,r0\r
359.else\r
360 stmfd sp!,{r3,r12}\r
361 mov lr,pc\r
362 ldr pc,[cpucontext,#z80_rebaseSP] ;@ external function must rebase sp\r
363 ldmfd sp!,{r3,r12}\r
364.endif\r
365.endm\r
366;@----------------------------------------------------------------------------\r
367\r
368.macro opADC\r
369 movs z80f,z80f,lsr#2 ;@ get C\r
370 subcs r0,r0,#0x100\r
371 eor z80f,r0,z80a,lsr#24 ;@ prepare for check of half carry\r
372 adcs z80a,z80a,r0,ror#8\r
373 mrs r0,cpsr ;@ S,Z,V&C\r
374 eor z80f,z80f,z80a,lsr#24\r
375 and z80f,z80f,#1<<HFlag ;@ H, correct\r
376 orr z80f,z80f,r0,lsr#28\r
377.endm\r
378\r
379.macro opADCA\r
380 movs z80f,z80f,lsr#2 ;@ get C\r
381 orrcs z80a,z80a,#0x00800000\r
382 adds z80a,z80a,z80a\r
383 mrs z80f,cpsr ;@ S,Z,V&C\r
384 mov z80f,z80f,lsr#28\r
385 tst z80a,#0x10000000 ;@ H, correct\r
386 orrne z80f,z80f,#1<<HFlag\r
387 fetch 4\r
388.endm\r
389\r
390.macro opADCH reg\r
391 mov r0,\reg,lsr#24\r
392 opADC\r
393 fetch 4\r
394.endm\r
395\r
396.macro opADCL reg\r
397 movs z80f,z80f,lsr#2 ;@ get C\r
398 adc r0,\reg,\reg,lsr#15\r
399 orrcs z80a,z80a,#0x00800000\r
400 mov r1,z80a,lsl#4 ;@ Prepare for check of half carry\r
401 adds z80a,z80a,r0,lsl#23\r
402 mrs z80f,cpsr ;@ S,Z,V&C\r
403 mov z80f,z80f,lsr#28\r
404 cmn r1,r0,lsl#27\r
405 orrcs z80f,z80f,#1<<HFlag ;@ H, correct\r
406 fetch 4\r
407.endm\r
408\r
409.macro opADCb\r
410 opADC\r
411.endm\r
412;@---------------------------------------\r
413\r
414.macro opADD reg shift\r
415 mov r1,z80a,lsl#4 ;@ Prepare for check of half carry\r
416 adds z80a,z80a,\reg,lsl#\shift\r
417 mrs z80f,cpsr ;@ S,Z,V&C\r
418 mov z80f,z80f,lsr#28\r
419 cmn r1,\reg,lsl#\shift+4\r
420 orrcs z80f,z80f,#1<<HFlag\r
421.endm\r
422\r
423.macro opADDA\r
424 adds z80a,z80a,z80a\r
425 mrs z80f,cpsr ;@ S,Z,V&C\r
426 mov z80f,z80f,lsr#28\r
427 tst z80a,#0x10000000 ;@ H, correct\r
428 orrne z80f,z80f,#1<<HFlag\r
429 fetch 4\r
430.endm\r
431\r
432.macro opADDH reg\r
433 and r0,\reg,#0xFF000000\r
434 opADD r0 0\r
435 fetch 4\r
436.endm\r
437\r
438.macro opADDL reg\r
439 opADD \reg 8\r
440 fetch 4\r
441.endm\r
442\r
443.macro opADDb \r
444 opADD r0 24\r
445.endm\r
446;@---------------------------------------\r
447\r
448.macro opADC16 reg\r
449 movs z80f,z80f,lsr#2 ;@ get C\r
450 adc r0,z80a,\reg,lsr#15\r
451 orrcs z80hl,z80hl,#0x00008000\r
452 mov r1,z80hl,lsl#4\r
453 adds z80hl,z80hl,r0,lsl#15\r
454 mrs z80f,cpsr ;@ S, Z, V & C\r
455 mov z80f,z80f,lsr#28\r
456 cmn r1,r0,lsl#19\r
457 orrcs z80f,z80f,#1<<HFlag\r
458 fetch 15\r
459.endm\r
460\r
461.macro opADC16HL\r
462 movs z80f,z80f,lsr#2 ;@ get C\r
463 orrcs z80hl,z80hl,#0x00008000\r
464 adds z80hl,z80hl,z80hl\r
465 mrs z80f,cpsr ;@ S, Z, V & C\r
466 mov z80f,z80f,lsr#28\r
467 tst z80hl,#0x10000000 ;@ H, correct.\r
468 orrne z80f,z80f,#1<<HFlag\r
469 fetch 15\r
470.endm\r
471\r
472.macro opADD16 reg1 reg2\r
473 mov r1,\reg1,lsl#4 ;@ Prepare for check of half carry\r
474 adds \reg1,\reg1,\reg2\r
475 bic z80f,z80f,#(1<<CFlag)|(1<<HFlag)|(1<<NFlag)\r
476 orrcs z80f,z80f,#1<<CFlag\r
477 cmn r1,\reg2,lsl#4\r
478 orrcs z80f,z80f,#1<<HFlag\r
479.endm\r
480\r
481.macro opADD16s reg1 reg2 shift\r
482 mov r1,\reg1,lsl#4 ;@ Prepare for check of half carry\r
483 adds \reg1,\reg1,\reg2,lsl#\shift\r
484 bic z80f,z80f,#(1<<CFlag)|(1<<HFlag)|(1<<NFlag)\r
485 orrcs z80f,z80f,#1<<CFlag\r
486 cmn r1,\reg2,lsl#4+\shift\r
487 orrcs z80f,z80f,#1<<HFlag\r
488.endm\r
489\r
490.macro opADD16_2 reg\r
491 adds \reg,\reg,\reg\r
492 bic z80f,z80f,#(1<<CFlag)|(1<<HFlag)|(1<<NFlag)\r
493 orrcs z80f,z80f,#1<<CFlag\r
494 tst \reg,#0x10000000 ;@ H, correct.\r
495 orrne z80f,z80f,#1<<HFlag\r
496.endm\r
497;@---------------------------------------\r
498\r
499.macro opAND reg shift\r
500 and z80a,z80a,\reg,lsl#\shift\r
501 sub r0,opcodes,#0x100\r
502 ldrb z80f,[r0,z80a, lsr #24]\r
503 orr z80f,z80f,#1<<HFlag\r
504.endm\r
505\r
506.macro opANDA\r
507 sub r0,opcodes,#0x100\r
508 ldrb z80f,[r0,z80a, lsr #24]\r
509 orr z80f,z80f,#1<<HFlag\r
510 fetch 4\r
511.endm\r
512\r
513.macro opANDH reg\r
514 opAND \reg 0\r
515 fetch 4\r
516.endm\r
517\r
518.macro opANDL reg\r
519 opAND \reg 8\r
520 fetch 4\r
521.endm\r
522\r
523.macro opANDb\r
524 opAND r0 24\r
525.endm\r
526;@---------------------------------------\r
527\r
528.macro opBITH reg bit\r
529 and z80f,z80f,#1<<CFlag\r
530 tst \reg,#1<<(24+\bit)\r
531 orreq z80f,z80f,#(1<<HFlag)|(1<<ZFlag)|(1<<VFlag)\r
532 orrne z80f,z80f,#(1<<HFlag)\r
533 fetch 8\r
534.endm\r
535\r
536.macro opBIT7H reg\r
537 and z80f,z80f,#1<<CFlag\r
538 tst \reg,#1<<(24+7)\r
539 orreq z80f,z80f,#(1<<HFlag)|(1<<ZFlag)|(1<<VFlag)\r
540 orrne z80f,z80f,#(1<<HFlag)|(1<<SFlag)\r
541 fetch 8\r
542.endm\r
543\r
544.macro opBITL reg bit\r
545 and z80f,z80f,#1<<CFlag\r
546 tst \reg,#1<<(16+\bit)\r
547 orreq z80f,z80f,#(1<<HFlag)|(1<<ZFlag)|(1<<VFlag)\r
548 orrne z80f,z80f,#(1<<HFlag)\r
549 fetch 8\r
550.endm\r
551\r
552.macro opBIT7L reg\r
553 and z80f,z80f,#1<<CFlag\r
554 tst \reg,#1<<(16+7)\r
555 orreq z80f,z80f,#(1<<HFlag)|(1<<ZFlag)|(1<<VFlag)\r
556 orrne z80f,z80f,#(1<<HFlag)|(1<<SFlag)\r
557 fetch 8\r
558.endm\r
559\r
560.macro opBITb bit\r
561 and z80f,z80f,#1<<CFlag\r
562 tst r0,#1<<\bit\r
563 orreq z80f,z80f,#(1<<HFlag)|(1<<ZFlag)|(1<<VFlag)\r
564 orrne z80f,z80f,#(1<<HFlag)\r
565.endm\r
566\r
567.macro opBIT7b\r
568 and z80f,z80f,#1<<CFlag\r
569 tst r0,#1<<7\r
570 orreq z80f,z80f,#(1<<HFlag)|(1<<ZFlag)|(1<<VFlag)\r
571 orrne z80f,z80f,#(1<<HFlag)|(1<<SFlag)\r
572.endm\r
573;@---------------------------------------\r
574\r
575.macro opCP reg shift\r
576 mov r1,z80a,lsl#4 ;@ prepare for check of half carry\r
577 cmp z80a,\reg,lsl#\shift\r
578 mrs z80f,cpsr\r
579 mov z80f,z80f,lsr#28 ;@ S,Z,V&C\r
580 eor z80f,z80f,#(1<<CFlag)|(1<<NFlag) ;@ invert C and set n\r
581 cmp r1,\reg,lsl#\shift+4\r
582 orrcc z80f,z80f,#1<<HFlag\r
583.endm\r
584\r
585.macro opCPA\r
586 mov z80f,#(1<<ZFlag)|(1<<NFlag) ;@ set Z & n\r
587 fetch 4\r
588.endm\r
589\r
590.macro opCPH reg\r
591 and r0,\reg,#0xFF000000\r
592 opCP r0 0\r
593 fetch 4\r
594.endm\r
595\r
596.macro opCPL reg\r
597 opCP \reg 8\r
598 fetch 4\r
599.endm\r
600\r
601.macro opCPb\r
602 opCP r0 24\r
603.endm\r
604;@---------------------------------------\r
605\r
606.macro opDEC8 reg ;@for A and memory\r
607 and z80f,z80f,#1<<CFlag ;@save carry\r
608 orr z80f,z80f,#1<<NFlag ;@set n\r
609 tst \reg,#0x0f000000\r
610 orreq z80f,z80f,#1<<HFlag\r
611 subs \reg,\reg,#0x01000000\r
612 orrmi z80f,z80f,#1<<SFlag\r
613 orrvs z80f,z80f,#1<<VFlag\r
614 orreq z80f,z80f,#1<<ZFlag\r
615.endm\r
616\r
617.macro opDEC8H reg ;@for B, D & H\r
618 and z80f,z80f,#1<<CFlag ;@save carry\r
619 orr z80f,z80f,#1<<NFlag ;@set n\r
620 tst \reg,#0x0f000000\r
621 orreq z80f,z80f,#1<<HFlag\r
622 subs \reg,\reg,#0x01000000\r
623 orrmi z80f,z80f,#1<<SFlag\r
624 orrvs z80f,z80f,#1<<VFlag\r
625 tst \reg,#0xff000000 ;@Z\r
626 orreq z80f,z80f,#1<<ZFlag\r
627.endm\r
628\r
629.macro opDEC8L reg ;@for C, E & L\r
630 mov \reg,\reg,ror#24\r
631 opDEC8H \reg\r
632 mov \reg,\reg,ror#8\r
633.endm\r
634\r
635.macro opDEC8b ;@for memory\r
636 mov r0,r0,lsl#24\r
637 opDEC8 r0\r
638 mov r0,r0,lsr#24\r
639.endm\r
640;@---------------------------------------\r
641\r
642.macro opIN\r
643 stmfd sp!,{r3,r12}\r
644 mov lr,pc\r
645 ldr pc,[cpucontext,#z80_in] ;@ r0=port - data returned in r0\r
646 ldmfd sp!,{r3,r12}\r
647.endm\r
648\r
649.macro opIN_C\r
650 mov r0,z80bc, lsr #16\r
651 opIN\r
652.endm\r
653;@---------------------------------------\r
654\r
655.macro opINC8 reg ;@for A and memory\r
656 and z80f,z80f,#1<<CFlag ;@save carry, clear n\r
657 adds \reg,\reg,#0x01000000\r
658 orrmi z80f,z80f,#1<<SFlag\r
659 orrvs z80f,z80f,#1<<VFlag\r
660 orrcs z80f,z80f,#1<<ZFlag ;@cs when going from 0xFF to 0x00\r
661 tst \reg,#0x0f000000\r
662 orreq z80f,z80f,#1<<HFlag\r
663.endm\r
664\r
665.macro opINC8H reg ;@for B, D & H\r
666 opINC8 \reg\r
667.endm\r
668\r
669.macro opINC8L reg ;@for C, E & L\r
670 mov \reg,\reg,ror#24\r
671 opINC8 \reg\r
672 mov \reg,\reg,ror#8\r
673.endm\r
674\r
675.macro opINC8b ;@for memory\r
676 mov r0,r0,lsl#24\r
677 opINC8 r0\r
678 mov r0,r0,lsr#24\r
679.endm\r
680;@---------------------------------------\r
681\r
682.macro opOR reg shift\r
683 orr z80a,z80a,\reg,lsl#\shift\r
684 sub r0,opcodes,#0x100\r
685 ldrb z80f,[r0,z80a, lsr #24]\r
686.endm\r
687\r
688.macro opORA\r
689 sub r0,opcodes,#0x100\r
690 ldrb z80f,[r0,z80a, lsr #24]\r
691 fetch 4\r
692.endm\r
693\r
694.macro opORH reg\r
695 and r0,\reg,#0xFF000000\r
696 opOR r0 0\r
697 fetch 4\r
698.endm\r
699\r
700.macro opORL reg\r
701 opOR \reg 8\r
702 fetch 4\r
703.endm\r
704\r
705.macro opORb\r
706 opOR r0 24\r
707.endm\r
708;@---------------------------------------\r
709\r
710.macro opOUT\r
711 stmfd sp!,{r3,r12}\r
712 mov lr,pc\r
713 ldr pc,[cpucontext,#z80_out] ;@ r0=port r1=data\r
714 ldmfd sp!,{r3,r12}\r
715.endm\r
716\r
717.macro opOUT_C\r
718 mov r0,z80bc, lsr #16\r
719 opOUT\r
720.endm\r
721;@---------------------------------------\r
722\r
723.macro opPOP\r
724.if FAST_Z80SP\r
725.if DRZ80_FOR_PICODRIVE\r
726 @ notaz: try to protect against stack overflows, which tend to happen in Picodrive because of poor timing\r
727 ldr r2,[cpucontext,#z80sp_base]\r
728 ldrb r0,[z80sp],#1\r
729 add r2,r2,#0x2000\r
730 cmp z80sp,r2\r
731@ subge z80sp,z80sp,#0x2000 @ unstable?\r
732 ldrb r1,[z80sp],#1\r
733 cmp z80sp,r2\r
734@ subge z80sp,z80sp,#0x2000\r
735 orr r0,r0,r1, lsl #8\r
736.else\r
737 ldrb r0,[z80sp],#1\r
738 ldrb r1,[z80sp],#1\r
739 orr r0,r0,r1, lsl #8\r
740.endif\r
741.else\r
742 mov r0,z80sp\r
743 readmem16\r
744 add z80sp,z80sp,#2\r
745.endif\r
746.endm\r
747\r
748.macro opPOPreg reg\r
749 opPOP\r
750 mov \reg,r0, lsl #16\r
751 fetch 10\r
752.endm\r
753;@---------------------------------------\r
754\r
755.macro opPUSHareg reg @ reg > r1\r
756.if FAST_Z80SP\r
757.if DRZ80_FOR_PICODRIVE\r
758 @ notaz: try to protect against stack overflows, which tend to happen in Picodrive because of poor timing\r
759 ldr r0,[cpucontext,#z80sp_base]\r
760 cmp z80sp,r0\r
761 addle z80sp,z80sp,#0x2000\r
762 mov r1,\reg, lsr #8\r
763 strb r1,[z80sp,#-1]!\r
764 cmp z80sp,r0\r
765 addle z80sp,z80sp,#0x2000\r
766 strb \reg,[z80sp,#-1]!\r
767.else\r
768 mov r1,\reg, lsr #8\r
769 strb r1,[z80sp,#-1]!\r
770 strb \reg,[z80sp,#-1]!\r
771.endif\r
772.else\r
773 mov r0,\reg\r
774 sub z80sp,z80sp,#2\r
775 mov r1,z80sp\r
776 writemem16\r
777.endif\r
778.endm\r
779\r
780.macro opPUSHreg reg\r
781.if FAST_Z80SP\r
782.if DRZ80_FOR_PICODRIVE\r
783 ldr r0,[cpucontext,#z80sp_base]\r
784 cmp z80sp,r0\r
785 addle z80sp,z80sp,#0x2000\r
786 mov r1,\reg, lsr #24\r
787 strb r1,[z80sp,#-1]!\r
788 cmp z80sp,r0\r
789 addle z80sp,z80sp,#0x2000\r
790 mov r1,\reg, lsr #16\r
791 strb r1,[z80sp,#-1]!\r
792.else\r
793 mov r1,\reg, lsr #24\r
794 strb r1,[z80sp,#-1]!\r
795 mov r1,\reg, lsr #16\r
796 strb r1,[z80sp,#-1]!\r
797.endif\r
798.else\r
799 mov r0,\reg,lsr #16\r
800 sub z80sp,z80sp,#2\r
801 mov r1,z80sp\r
802 writemem16\r
803.endif\r
804.endm\r
805;@---------------------------------------\r
806\r
807.macro opRESmemHL bit\r
cc68a136 808 mov r0,z80hl, lsr #16\r
ee05564f 809.if DRZ80_XMAP\r
810 bl z80_xmap_read8\r
cc68a136 811 bic r0,r0,#1<<\bit\r
812 mov r1,z80hl, lsr #16\r
ee05564f 813 bl z80_xmap_write8\r
cc68a136 814.else\r
cc68a136 815 stmfd sp!,{r3,r12}\r
816 mov lr,pc\r
817 ldr pc,[cpucontext,#z80_read8] ;@ r0 = addr - data returned in r0\r
818 bic r0,r0,#1<<\bit\r
819 mov r1,z80hl, lsr #16\r
820 mov lr,pc\r
821 ldr pc,[cpucontext,#z80_write8] ;@ r0=data r1=addr\r
822 ldmfd sp!,{r3,r12}\r
823.endif\r
824 fetch 15\r
825.endm\r
826;@---------------------------------------\r
827\r
828.macro opRESmem bit\r
ee05564f 829.if DRZ80_XMAP\r
cc68a136 830 stmfd sp!,{r0} ;@ save addr as well\r
ee05564f 831 bl z80_xmap_read8\r
cc68a136 832 bic r0,r0,#1<<\bit\r
833 ldmfd sp!,{r1} ;@ restore addr into r1\r
ee05564f 834 bl z80_xmap_write8\r
cc68a136 835.else\r
836 stmfd sp!,{r3,r12}\r
837 stmfd sp!,{r0} ;@ save addr as well\r
838 mov lr,pc\r
839 ldr pc,[cpucontext,#z80_read8] ;@ r0=addr - data returned in r0\r
840 bic r0,r0,#1<<\bit\r
841 ldmfd sp!,{r1} ;@ restore addr into r1\r
842 mov lr,pc\r
843 ldr pc,[cpucontext,#z80_write8] ;@ r0=data r1=addr\r
844 ldmfd sp!,{r3,r12}\r
845.endif\r
846 fetch 23\r
847.endm\r
848;@---------------------------------------\r
849\r
850.macro opRL reg1 reg2 shift\r
851 movs \reg1,\reg2,lsl \shift\r
852 tst z80f,#1<<CFlag ;@doesn't affect ARM carry, as long as the imidiate value is < 0x100. Watch out!\r
853 orrne \reg1,\reg1,#0x01000000\r
854;@ and r2,z80f,#1<<CFlag\r
855;@ orr $x,$x,r2,lsl#23\r
856 sub r1,opcodes,#0x100\r
857 ldrb z80f,[r1,\reg1,lsr#24] ;@get PZS\r
858 orrcs z80f,z80f,#1<<CFlag\r
859.endm\r
860\r
861.macro opRLA\r
862 opRL z80a, z80a, #1\r
863 fetch 8\r
864.endm\r
865\r
866.macro opRLH reg\r
867 and r0,\reg,#0xFF000000 ;@mask high to r0\r
868 adds \reg,\reg,r0\r
869 tst z80f,#1<<CFlag ;@doesn't affect ARM carry, as long as the imidiate value is < 0x100. Watch out!\r
870 orrne \reg,\reg,#0x01000000\r
871 sub r1,opcodes,#0x100\r
872 ldrb z80f,[r1,\reg,lsr#24] ;@get PZS\r
873 orrcs z80f,z80f,#1<<CFlag\r
874 fetch 8\r
875.endm\r
876\r
877.macro opRLL reg\r
878 opRL r0, \reg, #9\r
879 and \reg,\reg,#0xFF000000 ;@mask out high\r
880 orr \reg,\reg,r0,lsr#8\r
881 fetch 8\r
882.endm\r
883\r
884.macro opRLb\r
885 opRL r0, r0, #25\r
886 mov r0,r0,lsr#24\r
887.endm\r
888;@---------------------------------------\r
889\r
890.macro opRLC reg1 reg2 shift\r
891 movs \reg1,\reg2,lsl#\shift\r
892 orrcs \reg1,\reg1,#0x01000000\r
893 sub r1,opcodes,#0x100\r
894 ldrb z80f,[r1,\reg1,lsr#24]\r
895 orrcs z80f,z80f,#1<<CFlag\r
896.endm\r
897\r
898.macro opRLCA\r
899 opRLC z80a, z80a, 1\r
900 fetch 8\r
901.endm\r
902\r
903.macro opRLCH reg\r
904 and r0,\reg,#0xFF000000 ;@mask high to r0\r
905 adds \reg,\reg,r0\r
906 orrcs \reg,\reg,#0x01000000\r
907 sub r1,opcodes,#0x100\r
908 ldrb z80f,[r1,\reg,lsr#24]\r
909 orrcs z80f,z80f,#1<<CFlag\r
910 fetch 8\r
911.endm\r
912\r
913.macro opRLCL reg\r
914 opRLC r0, \reg, 9\r
915 and \reg,\reg,#0xFF000000 ;@mask out high\r
916 orr \reg,\reg,r0,lsr#8\r
917 fetch 8\r
918.endm\r
919\r
920.macro opRLCb\r
921 opRLC r0, r0, 25\r
922 mov r0,r0,lsr#24\r
923.endm\r
924;@---------------------------------------\r
925\r
926.macro opRR reg1 reg2 shift\r
927 movs \reg1,\reg2,lsr#\shift\r
928 tst z80f,#1<<CFlag ;@doesn't affect ARM carry, as long as the imidiate value is < 0x100. Watch out!\r
929 orrne \reg1,\reg1,#0x00000080\r
930;@ and r2,z80_f,#PSR_C\r
931;@ orr \reg1,\reg1,r2,lsl#6\r
932 sub r1,opcodes,#0x100\r
933 ldrb z80f,[r1,\reg1]\r
934 orrcs z80f,z80f,#1<<CFlag\r
935.endm\r
936\r
937.macro opRRA\r
938 orr z80a,z80a,z80f,lsr#1 ;@get C\r
939 movs z80a,z80a,ror#25\r
940 mov z80a,z80a,lsl#24\r
941 sub r1,opcodes,#0x100\r
942 ldrb z80f,[r1,z80a,lsr#24]\r
943 orrcs z80f,z80f,#1<<CFlag\r
944 fetch 8\r
945.endm\r
946\r
947.macro opRRH reg\r
948 orr r0,\reg,z80f,lsr#1 ;@get C\r
949 movs r0,r0,ror#25\r
950 and \reg,\reg,#0x00FF0000 ;@mask out low\r
951 orr \reg,\reg,r0,lsl#24\r
952 sub r1,opcodes,#0x100\r
953 ldrb z80f,[r1,\reg,lsr#24]\r
954 orrcs z80f,z80f,#1<<CFlag\r
955 fetch 8\r
956.endm\r
957\r
958.macro opRRL reg\r
959 and r0,\reg,#0x00FF0000 ;@mask out low to r0\r
960 opRR r0 r0 17\r
961 and \reg,\reg,#0xFF000000 ;@mask out high\r
962 orr \reg,\reg,r0,lsl#16\r
963 fetch 8\r
964.endm\r
965\r
966.macro opRRb\r
967 opRR r0 r0 1\r
968.endm\r
969;@---------------------------------------\r
970\r
971.macro opRRC reg1 reg2 shift\r
972 movs \reg1,\reg2,lsr#\shift\r
973 orrcs \reg1,\reg1,#0x00000080\r
974 sub r1,opcodes,#0x100\r
975 ldrb z80f,[r1,\reg1]\r
976 orrcs z80f,z80f,#1<<CFlag\r
977.endm\r
978\r
979.macro opRRCA\r
980 opRRC z80a, z80a, 25\r
981 mov z80a,z80a,lsl#24\r
982 fetch 8\r
983.endm\r
984\r
985.macro opRRCH reg\r
986 opRRC r0, \reg, 25\r
987 and \reg,\reg,#0x00FF0000 ;@mask out low\r
988 orr \reg,\reg,r0,lsl#24\r
989 fetch 8\r
990.endm\r
991\r
992.macro opRRCL reg\r
993 and r0,\reg,#0x00FF0000 ;@mask low to r0\r
994 opRRC r0, r0, 17\r
995 and \reg,\reg,#0xFF000000 ;@mask out high\r
996 orr \reg,\reg,r0,lsl#16\r
997 fetch 8\r
998.endm\r
999\r
1000.macro opRRCb\r
1001 opRRC r0, r0, 1\r
1002.endm\r
1003;@---------------------------------------\r
1004\r
1005.macro opRST addr\r
1006 ldr r0,[cpucontext,#z80pc_base]\r
1007 sub r2,z80pc,r0\r
1008 opPUSHareg r2\r
1009 mov r0,#\addr\r
1010 rebasepc\r
1011 fetch 11\r
1012.endm\r
1013;@---------------------------------------\r
1014\r
1015.macro opSBC\r
1016 eor z80f,z80f,#1<<CFlag ;@ invert C\r
1017 movs z80f,z80f,lsr#2 ;@ get C\r
1018 subcc r0,r0,#0x100\r
1019 eor z80f,r0,z80a,lsr#24 ;@ prepare for check of H\r
1020 sbcs z80a,z80a,r0,ror#8\r
1021 mrs r0,cpsr\r
1022 eor z80f,z80f,z80a,lsr#24\r
1023 and z80f,z80f,#1<<HFlag ;@ H, correct\r
1024 orr z80f,z80f,r0,lsr#28 ;@ S,Z,V&C\r
1025 eor z80f,z80f,#(1<<CFlag)|(1<<NFlag) ;@ invert C and set n.\r
1026.endm\r
1027\r
1028.macro opSBCA\r
1029 movs z80f,z80f,lsr#2 ;@ get C\r
1030 movcc z80a,#0x00000000\r
1031 movcs z80a,#0xFF000000\r
1032 movcc z80f,#(1<<NFlag)|(1<<ZFlag)\r
1033 movcs z80f,#(1<<NFlag)|(1<<SFlag)|(1<<CFlag)|(1<<HFlag)\r
1034 fetch 4\r
1035.endm\r
1036\r
1037.macro opSBCH reg\r
1038 mov r0,\reg,lsr#24\r
1039 opSBC\r
1040 fetch 4\r
1041.endm\r
1042\r
1043.macro opSBCL reg\r
1044 mov r0,\reg,lsl#8\r
1045 eor z80f,z80f,#1<<CFlag ;@ invert C\r
1046 movs z80f,z80f,lsr#2 ;@ get C\r
1047 sbccc r0,r0,#0xFF000000\r
1048 mov r1,z80a,lsl#4 ;@ prepare for check of H\r
1049 sbcs z80a,z80a,r0\r
1050 mrs z80f,cpsr\r
1051 mov z80f,z80f,lsr#28 ;@ S,Z,V&C\r
1052 eor z80f,z80f,#(1<<CFlag)|(1<<NFlag) ;@ invert C and set n.\r
1053 cmp r1,r0,lsl#4\r
1054 orrcc z80f,z80f,#1<<HFlag ;@ H, correct\r
1055 fetch 4\r
1056.endm\r
1057\r
1058.macro opSBCb\r
1059 opSBC\r
1060.endm\r
1061;@---------------------------------------\r
1062\r
1063.macro opSBC16 reg\r
1064 eor z80f,z80f,#1<<CFlag ;@ invert C\r
1065 movs z80f,z80f,lsr#2 ;@ get C\r
1066 sbc r1,r1,r1 ;@ set r1 to -1 or 0.\r
1067 orr r0,\reg,r1,lsr#16\r
1068 mov r1,z80hl,lsl#4 ;@ prepare for check of H\r
1069 sbcs z80hl,z80hl,r0\r
1070 mrs z80f,cpsr\r
1071 mov z80f,z80f,lsr#28 ;@ S,Z,V&C\r
1072 eor z80f,z80f,#(1<<CFlag)|(1<<NFlag) ;@ invert C and set n.\r
1073 cmp r1,r0,lsl#4\r
1074 orrcc z80f,z80f,#1<<HFlag ;@ H, correct\r
1075 fetch 15\r
1076.endm\r
1077\r
1078.macro opSBC16HL\r
1079 movs z80f,z80f,lsr#2 ;@ get C\r
1080 mov z80hl,#0x00000000\r
1081 subcs z80hl,z80hl,#0x00010000\r
1082 movcc z80f,#(1<<NFlag)|(1<<ZFlag)\r
1083 movcs z80f,#(1<<NFlag)|(1<<SFlag)|(1<<CFlag)|(1<<HFlag)\r
1084 fetch 15\r
1085.endm\r
1086;@---------------------------------------\r
1087\r
1088.macro opSETmemHL bit\r
cc68a136 1089 mov r0,z80hl, lsr #16\r
ee05564f 1090.if DRZ80_XMAP\r
1091 bl z80_xmap_read8\r
cc68a136 1092 orr r0,r0,#1<<\bit\r
1093 mov r1,z80hl, lsr #16\r
ee05564f 1094 bl z80_xmap_write8\r
cc68a136 1095.else\r
cc68a136 1096 stmfd sp!,{r3,r12}\r
1097 mov lr,pc\r
1098 ldr pc,[cpucontext,#z80_read8] ;@ r0 = addr - data returned in r0\r
1099 orr r0,r0,#1<<\bit\r
1100 mov r1,z80hl, lsr #16\r
1101 mov lr,pc\r
1102 ldr pc,[cpucontext,#z80_write8] ;@ r0=data r1=addr\r
1103 ldmfd sp!,{r3,r12}\r
1104.endif\r
1105 fetch 15\r
1106.endm\r
1107;@---------------------------------------\r
1108\r
1109.macro opSETmem bit\r
ee05564f 1110.if DRZ80_XMAP\r
cc68a136 1111 stmfd sp!,{r0} ;@ save addr as well\r
ee05564f 1112 bl z80_xmap_read8\r
cc68a136 1113 orr r0,r0,#1<<\bit\r
1114 ldmfd sp!,{r1} ;@ restore addr into r1\r
ee05564f 1115 bl z80_xmap_write8\r
cc68a136 1116.else\r
1117 stmfd sp!,{r3,r12}\r
1118 stmfd sp!,{r0} ;@ save addr as well\r
1119 mov lr,pc\r
1120 ldr pc,[cpucontext,#z80_read8] ;@ r0=addr - data returned in r0\r
1121 orr r0,r0,#1<<\bit\r
1122 ldmfd sp!,{r1} ;@ restore addr into r1\r
1123 mov lr,pc\r
1124 ldr pc,[cpucontext,#z80_write8] ;@ r0=data r1=addr\r
1125 ldmfd sp!,{r3,r12}\r
1126.endif\r
1127 fetch 23\r
1128.endm\r
1129;@---------------------------------------\r
1130\r
1131.macro opSLA reg1 reg2 shift\r
1132 movs \reg1,\reg2,lsl#\shift\r
1133 sub r1,opcodes,#0x100\r
1134 ldrb z80f,[r1,\reg1,lsr#24]\r
1135 orrcs z80f,z80f,#1<<CFlag\r
1136.endm\r
1137\r
1138.macro opSLAA\r
1139 opSLA z80a, z80a, 1\r
1140 fetch 8\r
1141.endm\r
1142\r
1143.macro opSLAH reg\r
1144 and r0,\reg,#0xFF000000 ;@mask high to r0\r
1145 adds \reg,\reg,r0\r
1146 sub r1,opcodes,#0x100\r
1147 ldrb z80f,[r1,\reg,lsr#24]\r
1148 orrcs z80f,z80f,#1<<CFlag\r
1149 fetch 8\r
1150.endm\r
1151\r
1152.macro opSLAL reg\r
1153 opSLA r0, \reg, 9\r
1154 and \reg,\reg,#0xFF000000 ;@mask out high\r
1155 orr \reg,\reg,r0,lsr#8\r
1156 fetch 8\r
1157.endm\r
1158\r
1159.macro opSLAb\r
1160 opSLA r0, r0, 25\r
1161 mov r0,r0,lsr#24\r
1162.endm\r
1163;@---------------------------------------\r
1164\r
1165.macro opSLL reg1 reg2 shift\r
1166 movs \reg1,\reg2,lsl#\shift\r
1167 orr \reg1,\reg1,#0x01000000\r
1168 sub r1,opcodes,#0x100\r
1169 ldrb z80f,[r1,\reg1,lsr#24]\r
1170 orrcs z80f,z80f,#1<<CFlag\r
1171.endm\r
1172\r
1173.macro opSLLA\r
1174 opSLL z80a, z80a, 1\r
1175 fetch 8\r
1176.endm\r
1177\r
1178.macro opSLLH reg\r
1179 and r0,\reg,#0xFF000000 ;@mask high to r0\r
1180 adds \reg,\reg,r0\r
1181 orr \reg,\reg,#0x01000000\r
1182 sub r1,opcodes,#0x100\r
1183 ldrb z80f,[r1,\reg,lsr#24]\r
1184 orrcs z80f,z80f,#1<<CFlag\r
1185 fetch 8\r
1186.endm\r
1187\r
1188.macro opSLLL reg\r
1189 opSLL r0, \reg, 9\r
1190 and \reg,\reg,#0xFF000000 ;@mask out high\r
1191 orr \reg,\reg,r0,lsr#8\r
1192 fetch 8\r
1193.endm\r
1194\r
1195.macro opSLLb\r
1196 opSLL r0, r0, 25\r
1197 mov r0,r0,lsr#24\r
1198.endm\r
1199;@---------------------------------------\r
1200\r
1201.macro opSRA reg1 reg2\r
1202 movs \reg1,\reg2,asr#25\r
1203 and \reg1,\reg1,#0xFF\r
1204 sub r1,opcodes,#0x100\r
1205 ldrb z80f,[r1,\reg1]\r
1206 orrcs z80f,z80f,#1<<CFlag\r
1207.endm\r
1208\r
1209.macro opSRAA\r
1210 movs r0,z80a,asr#25\r
1211 mov z80a,r0,lsl#24\r
1212 sub r1,opcodes,#0x100\r
1213 ldrb z80f,[r1,z80a,lsr#24]\r
1214 orrcs z80f,z80f,#1<<CFlag\r
1215 fetch 8\r
1216.endm\r
1217\r
1218.macro opSRAH reg\r
1219 movs r0,\reg,asr#25\r
1220 and \reg,\reg,#0x00FF0000 ;@mask out low\r
1221 orr \reg,\reg,r0,lsl#24\r
1222 sub r1,opcodes,#0x100\r
1223 ldrb z80f,[r1,\reg,lsr#24]\r
1224 orrcs z80f,z80f,#1<<CFlag\r
1225 fetch 8\r
1226.endm\r
1227\r
1228.macro opSRAL reg\r
1229 mov r0,\reg,lsl#8\r
1230 opSRA r0, r0\r
1231 and \reg,\reg,#0xFF000000 ;@mask out high\r
1232 orr \reg,\reg,r0,lsl#16\r
1233 fetch 8\r
1234.endm\r
1235\r
1236.macro opSRAb\r
1237 mov r0,r0,lsl#24\r
1238 opSRA r0, r0\r
1239.endm\r
1240;@---------------------------------------\r
1241\r
1242.macro opSRL reg1 reg2 shift\r
1243 movs \reg1,\reg2,lsr#\shift\r
1244 sub r1,opcodes,#0x100\r
1245 ldrb z80f,[r1,\reg1]\r
1246 orrcs z80f,z80f,#1<<CFlag\r
1247.endm\r
1248\r
1249.macro opSRLA\r
1250 opSRL z80a, z80a, 25\r
1251 mov z80a,z80a,lsl#24\r
1252 fetch 8\r
1253.endm\r
1254\r
1255.macro opSRLH reg\r
1256 opSRL r0, \reg, 25\r
1257 and \reg,\reg,#0x00FF0000 ;@mask out low\r
1258 orr \reg,\reg,r0,lsl#24\r
1259 fetch 8\r
1260.endm\r
1261\r
1262.macro opSRLL reg\r
1263 mov r0,\reg,lsl#8\r
1264 opSRL r0, r0, 25\r
1265 and \reg,\reg,#0xFF000000 ;@mask out high\r
1266 orr \reg,\reg,r0,lsl#16\r
1267 fetch 8\r
1268.endm\r
1269\r
1270.macro opSRLb\r
1271 opSRL r0, r0, 1\r
1272.endm\r
1273;@---------------------------------------\r
1274\r
1275.macro opSUB reg shift\r
1276 mov r1,z80a,lsl#4 ;@ Prepare for check of half carry\r
1277 subs z80a,z80a,\reg,lsl#\shift\r
1278 mrs z80f,cpsr\r
1279 mov z80f,z80f,lsr#28 ;@ S,Z,V&C\r
1280 eor z80f,z80f,#(1<<CFlag)|(1<<NFlag) ;@ invert C and set n\r
1281 cmp r1,\reg,lsl#\shift+4\r
1282 orrcc z80f,z80f,#1<<HFlag\r
1283.endm\r
1284\r
1285.macro opSUBA\r
1286 mov z80a,#0\r
1287 mov z80f,#(1<<ZFlag)|(1<<NFlag) ;@ set Z & n\r
1288 fetch 4\r
1289.endm\r
1290\r
1291.macro opSUBH reg\r
1292 and r0,\reg,#0xFF000000\r
1293 opSUB r0, 0\r
1294 fetch 4\r
1295.endm\r
1296\r
1297.macro opSUBL reg\r
1298 opSUB \reg, 8\r
1299 fetch 4\r
1300.endm\r
1301\r
1302.macro opSUBb\r
1303 opSUB r0, 24\r
1304.endm\r
1305;@---------------------------------------\r
1306\r
1307.macro opXOR reg shift\r
1308 eor z80a,z80a,\reg,lsl#\shift\r
1309 sub r0,opcodes,#0x100\r
1310 ldrb z80f,[r0,z80a, lsr #24]\r
1311.endm\r
1312\r
1313.macro opXORA\r
1314 mov z80a,#0\r
1315 mov z80f,#(1<<ZFlag)|(1<<VFlag)\r
1316 fetch 4\r
1317.endm\r
1318\r
1319.macro opXORH reg\r
1320 and r0,\reg,#0xFF000000\r
1321 opXOR r0, 0\r
1322 fetch 4\r
1323.endm\r
1324\r
1325.macro opXORL reg\r
1326 opXOR \reg, 8\r
1327 fetch 4\r
1328.endm\r
1329\r
1330.macro opXORb\r
1331 opXOR r0, 24\r
1332.endm\r
1333;@---------------------------------------\r
1334\r
1335\r
1336;@ --------------------------- Framework --------------------------\r
1337 \r
1338.text\r
1339\r
1340DrZ80Run:\r
1341 ;@ r0 = pointer to cpu context\r
1342 ;@ r1 = ISTATES to execute \r
1343 ;@######################################### \r
1344 stmdb sp!,{r4-r12,lr} ;@ save registers on stack\r
1345 mov cpucontext,r0 ;@ setup main memory pointer\r
1346 mov z80_icount,r1 ;@ setup number of Tstates to execute\r
1347\r
1348.if INTERRUPT_MODE == 0\r
de89bf45 1349 ldrh r0,[cpucontext,#z80irq] @ 0x4C, irq and IFF bits\r
cc68a136 1350.endif\r
1351 ldmia cpucontext,{z80pc-z80sp} ;@ load Z80 registers\r
1352\r
1353.if INTERRUPT_MODE == 0\r
1354 ;@ check ints\r
de89bf45 1355 tst r0,#0xff\r
1356 movne r0,r0,lsr #8\r
1357 tstne r0,#1\r
1358 blne DoInterrupt\r
cc68a136 1359.endif\r
1360\r
cc68a136 1361 ldr opcodes,MAIN_opcodes_POINTER2\r
cc68a136 1362\r
de89bf45 1363 cmp z80_icount,#0 ;@ irq might have used all cycles\r
1364 ldrplb r0,[z80pc],#1\r
1365 ldrpl pc,[opcodes,r0, lsl #2]\r
cc68a136 1366\r
1367\r
1368z80_execute_end:\r
1369 ;@ save registers in CPU context\r
1370 stmia cpucontext,{z80pc-z80sp} ;@ save Z80 registers\r
de89bf45 1371 mov r0,z80_icount\r
cc68a136 1372 ldmia sp!,{r4-r12,pc} ;@ restore registers from stack and return to C code\r
1373\r
de89bf45 1374MAIN_opcodes_POINTER2: .word MAIN_opcodes\r
cc68a136 1375.if INTERRUPT_MODE\r
1376Interrupt_local: .word Interrupt\r
1377.endif\r
1378\r
1379DoInterrupt:\r
1380.if INTERRUPT_MODE\r
1381 ;@ Don't do own int handler, call mames instead\r
1382\r
1383 ;@ save everything back into DrZ80 context\r
1384 stmia cpucontext,{z80pc-z80sp} ;@ save Z80 registers\r
1385 stmfd sp!,{r3,r4,r5,lr} ;@ save rest of regs on stack\r
1386 mov lr,pc\r
1387 ldr pc,Interrupt_local\r
1388 ldmfd sp!,{r3,r4,r5,lr} ;@ load regs from stack\r
1389 ;@ reload regs from DrZ80 context\r
1390 ldmia cpucontext,{z80pc-z80sp} ;@ load Z80 registers\r
1391 mov pc,lr ;@ return\r
1392.else\r
de89bf45 1393\r
1394 ;@ r0 == z80if\r
cc68a136 1395 stmfd sp!,{lr}\r
1396\r
1397 tst r0,#4 ;@ check halt\r
1398 addne z80pc,z80pc,#1\r
1399\r
1400 ldrb r1,[cpucontext,#z80im]\r
1401\r
1402 ;@ clear halt and int flags\r
1403 eor r0,r0,r0\r
1404 strb r0,[cpucontext,#z80if]\r
1405\r
1406 ;@ now check int mode\r
de89bf45 1407 cmp r1,#1\r
1408 beq DoInterrupt_mode1\r
1409 bgt DoInterrupt_mode2\r
cc68a136 1410\r
1411DoInterrupt_mode0:\r
1412 ;@ get 3 byte vector\r
1413 ldr r2,[cpucontext, #z80irqvector]\r
1414 and r1,r2,#0xFF0000\r
1415 cmp r1,#0xCD0000 ;@ call\r
1416 bne 1f\r
1417 ;@ ########\r
1418 ;@ # call\r
1419 ;@ ########\r
1420 ;@ save current pc on stack\r
1421 ldr r0,[cpucontext,#z80pc_base]\r
1422 sub r0,z80pc,r0\r
1423.if FAST_Z80SP\r
1424 mov r1,r0, lsr #8\r
1425 strb r1,[z80sp,#-1]!\r
1426 strb r0,[z80sp,#-1]!\r
1427.else\r
1428 sub z80sp,z80sp,#2\r
1429 mov r1,z80sp\r
1430 writemem16\r
1431 ldr r2,[cpucontext, #z80irqvector]\r
1432.endif\r
1433 ;@ jump to vector\r
1434 mov r2,r2,lsl#16\r
1435 mov r0,r2,lsr#16\r
1436 ;@ rebase new pc\r
1437 rebasepc\r
1438\r
de89bf45 1439 eatcycles 13\r
cc68a136 1440 b DoInterrupt_end\r
1441\r
14421:\r
1443 cmp r1,#0xC30000 ;@ jump\r
1444 bne DoInterrupt_mode1 ;@ rst\r
1445 ;@ #######\r
1446 ;@ # jump\r
1447 ;@ #######\r
1448 ;@ jump to vector\r
1449 mov r2,r2,lsl#16\r
1450 mov r0,r2,lsr#16\r
1451 ;@ rebase new pc\r
1452 rebasepc\r
1453\r
de89bf45 1454 eatcycles 13\r
cc68a136 1455 b DoInterrupt_end\r
1456\r
1457DoInterrupt_mode1:\r
1458 ldr r0,[cpucontext,#z80pc_base]\r
1459 sub r2,z80pc,r0\r
1460 opPUSHareg r2\r
1461 mov r0,#0x38\r
1462 rebasepc\r
1463\r
de89bf45 1464 eatcycles 13\r
cc68a136 1465 b DoInterrupt_end\r
1466\r
1467DoInterrupt_mode2:\r
1468 ;@ push pc on stack\r
1469 ldr r0,[cpucontext,#z80pc_base]\r
1470 sub r2,z80pc,r0\r
1471 opPUSHareg r2\r
1472\r
1473 ;@ get 1 byte vector address\r
1474 ldrb r0,[cpucontext, #z80irqvector]\r
1475 ldr r1,[cpucontext, #z80i]\r
1476 orr r0,r0,r1,lsr#16\r
1477\r
1478 ;@ read new pc from vector address\r
cc68a136 1479.if UPDATE_CONTEXT\r
1480 str z80pc,[cpucontext,#z80pc_pointer]\r
1481.endif\r
ee05564f 1482.if DRZ80_XMAP\r
1483 bl z80_xmap_read16\r
1484 rebasepc\r
cc68a136 1485.else\r
1486 stmfd sp!,{r3,r12}\r
1487 mov lr,pc\r
1488 ldr pc,[cpucontext,#z80_read16]\r
1489\r
1490 ;@ rebase new pc\r
cc68a136 1491 mov lr,pc\r
1492 ldr pc,[cpucontext,#z80_rebasePC] ;@ r0=new pc - external function sets z80pc_base and returns new z80pc in r0\r
1493 ldmfd sp!,{r3,r12}\r
1494 mov z80pc,r0 \r
1495.endif\r
de89bf45 1496 eatcycles 17\r
cc68a136 1497\r
1498DoInterrupt_end:\r
1499 ;@ interupt accepted so callback irq interface\r
1500 ldr r0,[cpucontext, #z80irqcallback]\r
1501 tst r0,r0\r
de89bf45 1502 streqb r0,[cpucontext,#z80irq] ;@ default handling\r
cc68a136 1503 ldmeqfd sp!,{pc}\r
1504 stmfd sp!,{r3,r12}\r
1505 mov lr,pc\r
1506 mov pc,r0 ;@ call callback function\r
1507 ldmfd sp!,{r3,r12}\r
1508 ldmfd sp!,{pc} ;@ return\r
cc68a136 1509.endif\r
1510\r
1511.data\r
1512.align 4\r
1513\r
1514DAATable: .hword (0x00<<8)|(1<<ZFlag)|(1<<VFlag)\r
1515 .hword (0x01<<8) \r
1516 .hword (0x02<<8) \r
1517 .hword (0x03<<8) |(1<<VFlag)\r
1518 .hword (0x04<<8) \r
1519 .hword (0x05<<8) |(1<<VFlag)\r
1520 .hword (0x06<<8) |(1<<VFlag)\r
1521 .hword (0x07<<8) \r
1522 .hword (0x08<<8) \r
1523 .hword (0x09<<8) |(1<<VFlag)\r
1524 .hword (0x10<<8) |(1<<HFlag) \r
1525 .hword (0x11<<8) |(1<<HFlag) |(1<<VFlag)\r
1526 .hword (0x12<<8) |(1<<HFlag) |(1<<VFlag)\r
1527 .hword (0x13<<8) |(1<<HFlag) \r
1528 .hword (0x14<<8) |(1<<HFlag) |(1<<VFlag)\r
1529 .hword (0x15<<8) |(1<<HFlag) \r
1530 .hword (0x10<<8) \r
1531 .hword (0x11<<8) |(1<<VFlag)\r
1532 .hword (0x12<<8) |(1<<VFlag)\r
1533 .hword (0x13<<8) \r
1534 .hword (0x14<<8) |(1<<VFlag)\r
1535 .hword (0x15<<8) \r
1536 .hword (0x16<<8) \r
1537 .hword (0x17<<8) |(1<<VFlag)\r
1538 .hword (0x18<<8) |(1<<VFlag)\r
1539 .hword (0x19<<8) \r
1540 .hword (0x20<<8) |(1<<HFlag) \r
1541 .hword (0x21<<8) |(1<<HFlag) |(1<<VFlag)\r
1542 .hword (0x22<<8) |(1<<HFlag) |(1<<VFlag)\r
1543 .hword (0x23<<8) |(1<<HFlag) \r
1544 .hword (0x24<<8) |(1<<HFlag) |(1<<VFlag)\r
1545 .hword (0x25<<8) |(1<<HFlag) \r
1546 .hword (0x20<<8) \r
1547 .hword (0x21<<8) |(1<<VFlag)\r
1548 .hword (0x22<<8) |(1<<VFlag)\r
1549 .hword (0x23<<8) \r
1550 .hword (0x24<<8) |(1<<VFlag)\r
1551 .hword (0x25<<8) \r
1552 .hword (0x26<<8) \r
1553 .hword (0x27<<8) |(1<<VFlag)\r
1554 .hword (0x28<<8) |(1<<VFlag)\r
1555 .hword (0x29<<8) \r
1556 .hword (0x30<<8) |(1<<HFlag) |(1<<VFlag)\r
1557 .hword (0x31<<8) |(1<<HFlag) \r
1558 .hword (0x32<<8) |(1<<HFlag) \r
1559 .hword (0x33<<8) |(1<<HFlag) |(1<<VFlag)\r
1560 .hword (0x34<<8) |(1<<HFlag) \r
1561 .hword (0x35<<8) |(1<<HFlag) |(1<<VFlag)\r
1562 .hword (0x30<<8) |(1<<VFlag)\r
1563 .hword (0x31<<8) \r
1564 .hword (0x32<<8) \r
1565 .hword (0x33<<8) |(1<<VFlag)\r
1566 .hword (0x34<<8) \r
1567 .hword (0x35<<8) |(1<<VFlag)\r
1568 .hword (0x36<<8) |(1<<VFlag)\r
1569 .hword (0x37<<8) \r
1570 .hword (0x38<<8) \r
1571 .hword (0x39<<8) |(1<<VFlag)\r
1572 .hword (0x40<<8) |(1<<HFlag) \r
1573 .hword (0x41<<8) |(1<<HFlag) |(1<<VFlag)\r
1574 .hword (0x42<<8) |(1<<HFlag) |(1<<VFlag)\r
1575 .hword (0x43<<8) |(1<<HFlag) \r
1576 .hword (0x44<<8) |(1<<HFlag) |(1<<VFlag)\r
1577 .hword (0x45<<8) |(1<<HFlag) \r
1578 .hword (0x40<<8) \r
1579 .hword (0x41<<8) |(1<<VFlag)\r
1580 .hword (0x42<<8) |(1<<VFlag)\r
1581 .hword (0x43<<8) \r
1582 .hword (0x44<<8) |(1<<VFlag)\r
1583 .hword (0x45<<8) \r
1584 .hword (0x46<<8) \r
1585 .hword (0x47<<8) |(1<<VFlag)\r
1586 .hword (0x48<<8) |(1<<VFlag)\r
1587 .hword (0x49<<8) \r
1588 .hword (0x50<<8) |(1<<HFlag) |(1<<VFlag)\r
1589 .hword (0x51<<8) |(1<<HFlag) \r
1590 .hword (0x52<<8) |(1<<HFlag) \r
1591 .hword (0x53<<8) |(1<<HFlag) |(1<<VFlag)\r
1592 .hword (0x54<<8) |(1<<HFlag) \r
1593 .hword (0x55<<8) |(1<<HFlag) |(1<<VFlag)\r
1594 .hword (0x50<<8) |(1<<VFlag)\r
1595 .hword (0x51<<8) \r
1596 .hword (0x52<<8) \r
1597 .hword (0x53<<8) |(1<<VFlag)\r
1598 .hword (0x54<<8) \r
1599 .hword (0x55<<8) |(1<<VFlag)\r
1600 .hword (0x56<<8) |(1<<VFlag)\r
1601 .hword (0x57<<8) \r
1602 .hword (0x58<<8) \r
1603 .hword (0x59<<8) |(1<<VFlag)\r
1604 .hword (0x60<<8) |(1<<HFlag) |(1<<VFlag)\r
1605 .hword (0x61<<8) |(1<<HFlag) \r
1606 .hword (0x62<<8) |(1<<HFlag) \r
1607 .hword (0x63<<8) |(1<<HFlag) |(1<<VFlag)\r
1608 .hword (0x64<<8) |(1<<HFlag) \r
1609 .hword (0x65<<8) |(1<<HFlag) |(1<<VFlag)\r
1610 .hword (0x60<<8) |(1<<VFlag)\r
1611 .hword (0x61<<8) \r
1612 .hword (0x62<<8) \r
1613 .hword (0x63<<8) |(1<<VFlag)\r
1614 .hword (0x64<<8) \r
1615 .hword (0x65<<8) |(1<<VFlag)\r
1616 .hword (0x66<<8) |(1<<VFlag)\r
1617 .hword (0x67<<8) \r
1618 .hword (0x68<<8) \r
1619 .hword (0x69<<8) |(1<<VFlag)\r
1620 .hword (0x70<<8) |(1<<HFlag) \r
1621 .hword (0x71<<8) |(1<<HFlag) |(1<<VFlag)\r
1622 .hword (0x72<<8) |(1<<HFlag) |(1<<VFlag)\r
1623 .hword (0x73<<8) |(1<<HFlag) \r
1624 .hword (0x74<<8) |(1<<HFlag) |(1<<VFlag)\r
1625 .hword (0x75<<8) |(1<<HFlag) \r
1626 .hword (0x70<<8) \r
1627 .hword (0x71<<8) |(1<<VFlag)\r
1628 .hword (0x72<<8) |(1<<VFlag)\r
1629 .hword (0x73<<8) \r
1630 .hword (0x74<<8) |(1<<VFlag)\r
1631 .hword (0x75<<8) \r
1632 .hword (0x76<<8) \r
1633 .hword (0x77<<8) |(1<<VFlag)\r
1634 .hword (0x78<<8) |(1<<VFlag)\r
1635 .hword (0x79<<8) \r
1636 .hword (0x80<<8)|(1<<SFlag) |(1<<HFlag) \r
1637 .hword (0x81<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag)\r
1638 .hword (0x82<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag)\r
1639 .hword (0x83<<8)|(1<<SFlag) |(1<<HFlag) \r
1640 .hword (0x84<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag)\r
1641 .hword (0x85<<8)|(1<<SFlag) |(1<<HFlag) \r
1642 .hword (0x80<<8)|(1<<SFlag) \r
1643 .hword (0x81<<8)|(1<<SFlag) |(1<<VFlag)\r
1644 .hword (0x82<<8)|(1<<SFlag) |(1<<VFlag)\r
1645 .hword (0x83<<8)|(1<<SFlag) \r
1646 .hword (0x84<<8)|(1<<SFlag) |(1<<VFlag)\r
1647 .hword (0x85<<8)|(1<<SFlag) \r
1648 .hword (0x86<<8)|(1<<SFlag) \r
1649 .hword (0x87<<8)|(1<<SFlag) |(1<<VFlag)\r
1650 .hword (0x88<<8)|(1<<SFlag) |(1<<VFlag)\r
1651 .hword (0x89<<8)|(1<<SFlag) \r
1652 .hword (0x90<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag)\r
1653 .hword (0x91<<8)|(1<<SFlag) |(1<<HFlag) \r
1654 .hword (0x92<<8)|(1<<SFlag) |(1<<HFlag) \r
1655 .hword (0x93<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag)\r
1656 .hword (0x94<<8)|(1<<SFlag) |(1<<HFlag) \r
1657 .hword (0x95<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag)\r
1658 .hword (0x90<<8)|(1<<SFlag) |(1<<VFlag)\r
1659 .hword (0x91<<8)|(1<<SFlag) \r
1660 .hword (0x92<<8)|(1<<SFlag) \r
1661 .hword (0x93<<8)|(1<<SFlag) |(1<<VFlag)\r
1662 .hword (0x94<<8)|(1<<SFlag) \r
1663 .hword (0x95<<8)|(1<<SFlag) |(1<<VFlag)\r
1664 .hword (0x96<<8)|(1<<SFlag) |(1<<VFlag)\r
1665 .hword (0x97<<8)|(1<<SFlag) \r
1666 .hword (0x98<<8)|(1<<SFlag) \r
1667 .hword (0x99<<8)|(1<<SFlag) |(1<<VFlag)\r
1668 .hword (0x00<<8) |(1<<ZFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1669 .hword (0x01<<8) |(1<<HFlag) |(1<<CFlag)\r
1670 .hword (0x02<<8) |(1<<HFlag) |(1<<CFlag)\r
1671 .hword (0x03<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1672 .hword (0x04<<8) |(1<<HFlag) |(1<<CFlag)\r
1673 .hword (0x05<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1674 .hword (0x00<<8) |(1<<ZFlag) |(1<<VFlag) |(1<<CFlag)\r
1675 .hword (0x01<<8) |(1<<CFlag)\r
1676 .hword (0x02<<8) |(1<<CFlag)\r
1677 .hword (0x03<<8) |(1<<VFlag) |(1<<CFlag)\r
1678 .hword (0x04<<8) |(1<<CFlag)\r
1679 .hword (0x05<<8) |(1<<VFlag) |(1<<CFlag)\r
1680 .hword (0x06<<8) |(1<<VFlag) |(1<<CFlag)\r
1681 .hword (0x07<<8) |(1<<CFlag)\r
1682 .hword (0x08<<8) |(1<<CFlag)\r
1683 .hword (0x09<<8) |(1<<VFlag) |(1<<CFlag)\r
1684 .hword (0x10<<8) |(1<<HFlag) |(1<<CFlag)\r
1685 .hword (0x11<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1686 .hword (0x12<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1687 .hword (0x13<<8) |(1<<HFlag) |(1<<CFlag)\r
1688 .hword (0x14<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1689 .hword (0x15<<8) |(1<<HFlag) |(1<<CFlag)\r
1690 .hword (0x10<<8) |(1<<CFlag)\r
1691 .hword (0x11<<8) |(1<<VFlag) |(1<<CFlag)\r
1692 .hword (0x12<<8) |(1<<VFlag) |(1<<CFlag)\r
1693 .hword (0x13<<8) |(1<<CFlag)\r
1694 .hword (0x14<<8) |(1<<VFlag) |(1<<CFlag)\r
1695 .hword (0x15<<8) |(1<<CFlag)\r
1696 .hword (0x16<<8) |(1<<CFlag)\r
1697 .hword (0x17<<8) |(1<<VFlag) |(1<<CFlag)\r
1698 .hword (0x18<<8) |(1<<VFlag) |(1<<CFlag)\r
1699 .hword (0x19<<8) |(1<<CFlag)\r
1700 .hword (0x20<<8) |(1<<HFlag) |(1<<CFlag)\r
1701 .hword (0x21<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1702 .hword (0x22<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1703 .hword (0x23<<8) |(1<<HFlag) |(1<<CFlag)\r
1704 .hword (0x24<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1705 .hword (0x25<<8) |(1<<HFlag) |(1<<CFlag)\r
1706 .hword (0x20<<8) |(1<<CFlag)\r
1707 .hword (0x21<<8) |(1<<VFlag) |(1<<CFlag)\r
1708 .hword (0x22<<8) |(1<<VFlag) |(1<<CFlag)\r
1709 .hword (0x23<<8) |(1<<CFlag)\r
1710 .hword (0x24<<8) |(1<<VFlag) |(1<<CFlag)\r
1711 .hword (0x25<<8) |(1<<CFlag)\r
1712 .hword (0x26<<8) |(1<<CFlag)\r
1713 .hword (0x27<<8) |(1<<VFlag) |(1<<CFlag)\r
1714 .hword (0x28<<8) |(1<<VFlag) |(1<<CFlag)\r
1715 .hword (0x29<<8) |(1<<CFlag)\r
1716 .hword (0x30<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1717 .hword (0x31<<8) |(1<<HFlag) |(1<<CFlag)\r
1718 .hword (0x32<<8) |(1<<HFlag) |(1<<CFlag)\r
1719 .hword (0x33<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1720 .hword (0x34<<8) |(1<<HFlag) |(1<<CFlag)\r
1721 .hword (0x35<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1722 .hword (0x30<<8) |(1<<VFlag) |(1<<CFlag)\r
1723 .hword (0x31<<8) |(1<<CFlag)\r
1724 .hword (0x32<<8) |(1<<CFlag)\r
1725 .hword (0x33<<8) |(1<<VFlag) |(1<<CFlag)\r
1726 .hword (0x34<<8) |(1<<CFlag)\r
1727 .hword (0x35<<8) |(1<<VFlag) |(1<<CFlag)\r
1728 .hword (0x36<<8) |(1<<VFlag) |(1<<CFlag)\r
1729 .hword (0x37<<8) |(1<<CFlag)\r
1730 .hword (0x38<<8) |(1<<CFlag)\r
1731 .hword (0x39<<8) |(1<<VFlag) |(1<<CFlag)\r
1732 .hword (0x40<<8) |(1<<HFlag) |(1<<CFlag)\r
1733 .hword (0x41<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1734 .hword (0x42<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1735 .hword (0x43<<8) |(1<<HFlag) |(1<<CFlag)\r
1736 .hword (0x44<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1737 .hword (0x45<<8) |(1<<HFlag) |(1<<CFlag)\r
1738 .hword (0x40<<8) |(1<<CFlag)\r
1739 .hword (0x41<<8) |(1<<VFlag) |(1<<CFlag)\r
1740 .hword (0x42<<8) |(1<<VFlag) |(1<<CFlag)\r
1741 .hword (0x43<<8) |(1<<CFlag)\r
1742 .hword (0x44<<8) |(1<<VFlag) |(1<<CFlag)\r
1743 .hword (0x45<<8) |(1<<CFlag)\r
1744 .hword (0x46<<8) |(1<<CFlag)\r
1745 .hword (0x47<<8) |(1<<VFlag) |(1<<CFlag)\r
1746 .hword (0x48<<8) |(1<<VFlag) |(1<<CFlag)\r
1747 .hword (0x49<<8) |(1<<CFlag)\r
1748 .hword (0x50<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1749 .hword (0x51<<8) |(1<<HFlag) |(1<<CFlag)\r
1750 .hword (0x52<<8) |(1<<HFlag) |(1<<CFlag)\r
1751 .hword (0x53<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1752 .hword (0x54<<8) |(1<<HFlag) |(1<<CFlag)\r
1753 .hword (0x55<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1754 .hword (0x50<<8) |(1<<VFlag) |(1<<CFlag)\r
1755 .hword (0x51<<8) |(1<<CFlag)\r
1756 .hword (0x52<<8) |(1<<CFlag)\r
1757 .hword (0x53<<8) |(1<<VFlag) |(1<<CFlag)\r
1758 .hword (0x54<<8) |(1<<CFlag)\r
1759 .hword (0x55<<8) |(1<<VFlag) |(1<<CFlag)\r
1760 .hword (0x56<<8) |(1<<VFlag) |(1<<CFlag)\r
1761 .hword (0x57<<8) |(1<<CFlag)\r
1762 .hword (0x58<<8) |(1<<CFlag)\r
1763 .hword (0x59<<8) |(1<<VFlag) |(1<<CFlag)\r
1764 .hword (0x60<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1765 .hword (0x61<<8) |(1<<HFlag) |(1<<CFlag)\r
1766 .hword (0x62<<8) |(1<<HFlag) |(1<<CFlag)\r
1767 .hword (0x63<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1768 .hword (0x64<<8) |(1<<HFlag) |(1<<CFlag)\r
1769 .hword (0x65<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1770 .hword (0x60<<8) |(1<<VFlag) |(1<<CFlag)\r
1771 .hword (0x61<<8) |(1<<CFlag)\r
1772 .hword (0x62<<8) |(1<<CFlag)\r
1773 .hword (0x63<<8) |(1<<VFlag) |(1<<CFlag)\r
1774 .hword (0x64<<8) |(1<<CFlag)\r
1775 .hword (0x65<<8) |(1<<VFlag) |(1<<CFlag)\r
1776 .hword (0x66<<8) |(1<<VFlag) |(1<<CFlag)\r
1777 .hword (0x67<<8) |(1<<CFlag)\r
1778 .hword (0x68<<8) |(1<<CFlag)\r
1779 .hword (0x69<<8) |(1<<VFlag) |(1<<CFlag)\r
1780 .hword (0x70<<8) |(1<<HFlag) |(1<<CFlag)\r
1781 .hword (0x71<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1782 .hword (0x72<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1783 .hword (0x73<<8) |(1<<HFlag) |(1<<CFlag)\r
1784 .hword (0x74<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1785 .hword (0x75<<8) |(1<<HFlag) |(1<<CFlag)\r
1786 .hword (0x70<<8) |(1<<CFlag)\r
1787 .hword (0x71<<8) |(1<<VFlag) |(1<<CFlag)\r
1788 .hword (0x72<<8) |(1<<VFlag) |(1<<CFlag)\r
1789 .hword (0x73<<8) |(1<<CFlag)\r
1790 .hword (0x74<<8) |(1<<VFlag) |(1<<CFlag)\r
1791 .hword (0x75<<8) |(1<<CFlag)\r
1792 .hword (0x76<<8) |(1<<CFlag)\r
1793 .hword (0x77<<8) |(1<<VFlag) |(1<<CFlag)\r
1794 .hword (0x78<<8) |(1<<VFlag) |(1<<CFlag)\r
1795 .hword (0x79<<8) |(1<<CFlag)\r
1796 .hword (0x80<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
1797 .hword (0x81<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1798 .hword (0x82<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1799 .hword (0x83<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
1800 .hword (0x84<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1801 .hword (0x85<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
1802 .hword (0x80<<8)|(1<<SFlag) |(1<<CFlag)\r
1803 .hword (0x81<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
1804 .hword (0x82<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
1805 .hword (0x83<<8)|(1<<SFlag) |(1<<CFlag)\r
1806 .hword (0x84<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
1807 .hword (0x85<<8)|(1<<SFlag) |(1<<CFlag)\r
1808 .hword (0x86<<8)|(1<<SFlag) |(1<<CFlag)\r
1809 .hword (0x87<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
1810 .hword (0x88<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
1811 .hword (0x89<<8)|(1<<SFlag) |(1<<CFlag)\r
1812 .hword (0x90<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1813 .hword (0x91<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
1814 .hword (0x92<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
1815 .hword (0x93<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1816 .hword (0x94<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
1817 .hword (0x95<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1818 .hword (0x90<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
1819 .hword (0x91<<8)|(1<<SFlag) |(1<<CFlag)\r
1820 .hword (0x92<<8)|(1<<SFlag) |(1<<CFlag)\r
1821 .hword (0x93<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
1822 .hword (0x94<<8)|(1<<SFlag) |(1<<CFlag)\r
1823 .hword (0x95<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
1824 .hword (0x96<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
1825 .hword (0x97<<8)|(1<<SFlag) |(1<<CFlag)\r
1826 .hword (0x98<<8)|(1<<SFlag) |(1<<CFlag)\r
1827 .hword (0x99<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
1828 .hword (0xA0<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1829 .hword (0xA1<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
1830 .hword (0xA2<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
1831 .hword (0xA3<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1832 .hword (0xA4<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
1833 .hword (0xA5<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1834 .hword (0xA0<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
1835 .hword (0xA1<<8)|(1<<SFlag) |(1<<CFlag)\r
1836 .hword (0xA2<<8)|(1<<SFlag) |(1<<CFlag)\r
1837 .hword (0xA3<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
1838 .hword (0xA4<<8)|(1<<SFlag) |(1<<CFlag)\r
1839 .hword (0xA5<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
1840 .hword (0xA6<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
1841 .hword (0xA7<<8)|(1<<SFlag) |(1<<CFlag)\r
1842 .hword (0xA8<<8)|(1<<SFlag) |(1<<CFlag)\r
1843 .hword (0xA9<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
1844 .hword (0xB0<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
1845 .hword (0xB1<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1846 .hword (0xB2<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1847 .hword (0xB3<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
1848 .hword (0xB4<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1849 .hword (0xB5<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
1850 .hword (0xB0<<8)|(1<<SFlag) |(1<<CFlag)\r
1851 .hword (0xB1<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
1852 .hword (0xB2<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
1853 .hword (0xB3<<8)|(1<<SFlag) |(1<<CFlag)\r
1854 .hword (0xB4<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
1855 .hword (0xB5<<8)|(1<<SFlag) |(1<<CFlag)\r
1856 .hword (0xB6<<8)|(1<<SFlag) |(1<<CFlag)\r
1857 .hword (0xB7<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
1858 .hword (0xB8<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
1859 .hword (0xB9<<8)|(1<<SFlag) |(1<<CFlag)\r
1860 .hword (0xC0<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1861 .hword (0xC1<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
1862 .hword (0xC2<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
1863 .hword (0xC3<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1864 .hword (0xC4<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
1865 .hword (0xC5<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1866 .hword (0xC0<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
1867 .hword (0xC1<<8)|(1<<SFlag) |(1<<CFlag)\r
1868 .hword (0xC2<<8)|(1<<SFlag) |(1<<CFlag)\r
1869 .hword (0xC3<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
1870 .hword (0xC4<<8)|(1<<SFlag) |(1<<CFlag)\r
1871 .hword (0xC5<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
1872 .hword (0xC6<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
1873 .hword (0xC7<<8)|(1<<SFlag) |(1<<CFlag)\r
1874 .hword (0xC8<<8)|(1<<SFlag) |(1<<CFlag)\r
1875 .hword (0xC9<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
1876 .hword (0xD0<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
1877 .hword (0xD1<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1878 .hword (0xD2<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1879 .hword (0xD3<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
1880 .hword (0xD4<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1881 .hword (0xD5<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
1882 .hword (0xD0<<8)|(1<<SFlag) |(1<<CFlag)\r
1883 .hword (0xD1<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
1884 .hword (0xD2<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
1885 .hword (0xD3<<8)|(1<<SFlag) |(1<<CFlag)\r
1886 .hword (0xD4<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
1887 .hword (0xD5<<8)|(1<<SFlag) |(1<<CFlag)\r
1888 .hword (0xD6<<8)|(1<<SFlag) |(1<<CFlag)\r
1889 .hword (0xD7<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
1890 .hword (0xD8<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
1891 .hword (0xD9<<8)|(1<<SFlag) |(1<<CFlag)\r
1892 .hword (0xE0<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
1893 .hword (0xE1<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1894 .hword (0xE2<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1895 .hword (0xE3<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
1896 .hword (0xE4<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1897 .hword (0xE5<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
1898 .hword (0xE0<<8)|(1<<SFlag) |(1<<CFlag)\r
1899 .hword (0xE1<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
1900 .hword (0xE2<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
1901 .hword (0xE3<<8)|(1<<SFlag) |(1<<CFlag)\r
1902 .hword (0xE4<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
1903 .hword (0xE5<<8)|(1<<SFlag) |(1<<CFlag)\r
1904 .hword (0xE6<<8)|(1<<SFlag) |(1<<CFlag)\r
1905 .hword (0xE7<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
1906 .hword (0xE8<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
1907 .hword (0xE9<<8)|(1<<SFlag) |(1<<CFlag)\r
1908 .hword (0xF0<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1909 .hword (0xF1<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
1910 .hword (0xF2<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
1911 .hword (0xF3<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1912 .hword (0xF4<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
1913 .hword (0xF5<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1914 .hword (0xF0<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
1915 .hword (0xF1<<8)|(1<<SFlag) |(1<<CFlag)\r
1916 .hword (0xF2<<8)|(1<<SFlag) |(1<<CFlag)\r
1917 .hword (0xF3<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
1918 .hword (0xF4<<8)|(1<<SFlag) |(1<<CFlag)\r
1919 .hword (0xF5<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
1920 .hword (0xF6<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
1921 .hword (0xF7<<8)|(1<<SFlag) |(1<<CFlag)\r
1922 .hword (0xF8<<8)|(1<<SFlag) |(1<<CFlag)\r
1923 .hword (0xF9<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
1924 .hword (0x00<<8) |(1<<ZFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1925 .hword (0x01<<8) |(1<<HFlag) |(1<<CFlag)\r
1926 .hword (0x02<<8) |(1<<HFlag) |(1<<CFlag)\r
1927 .hword (0x03<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1928 .hword (0x04<<8) |(1<<HFlag) |(1<<CFlag)\r
1929 .hword (0x05<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1930 .hword (0x00<<8) |(1<<ZFlag) |(1<<VFlag) |(1<<CFlag)\r
1931 .hword (0x01<<8) |(1<<CFlag)\r
1932 .hword (0x02<<8) |(1<<CFlag)\r
1933 .hword (0x03<<8) |(1<<VFlag) |(1<<CFlag)\r
1934 .hword (0x04<<8) |(1<<CFlag)\r
1935 .hword (0x05<<8) |(1<<VFlag) |(1<<CFlag)\r
1936 .hword (0x06<<8) |(1<<VFlag) |(1<<CFlag)\r
1937 .hword (0x07<<8) |(1<<CFlag)\r
1938 .hword (0x08<<8) |(1<<CFlag)\r
1939 .hword (0x09<<8) |(1<<VFlag) |(1<<CFlag)\r
1940 .hword (0x10<<8) |(1<<HFlag) |(1<<CFlag)\r
1941 .hword (0x11<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1942 .hword (0x12<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1943 .hword (0x13<<8) |(1<<HFlag) |(1<<CFlag)\r
1944 .hword (0x14<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1945 .hword (0x15<<8) |(1<<HFlag) |(1<<CFlag)\r
1946 .hword (0x10<<8) |(1<<CFlag)\r
1947 .hword (0x11<<8) |(1<<VFlag) |(1<<CFlag)\r
1948 .hword (0x12<<8) |(1<<VFlag) |(1<<CFlag)\r
1949 .hword (0x13<<8) |(1<<CFlag)\r
1950 .hword (0x14<<8) |(1<<VFlag) |(1<<CFlag)\r
1951 .hword (0x15<<8) |(1<<CFlag)\r
1952 .hword (0x16<<8) |(1<<CFlag)\r
1953 .hword (0x17<<8) |(1<<VFlag) |(1<<CFlag)\r
1954 .hword (0x18<<8) |(1<<VFlag) |(1<<CFlag)\r
1955 .hword (0x19<<8) |(1<<CFlag)\r
1956 .hword (0x20<<8) |(1<<HFlag) |(1<<CFlag)\r
1957 .hword (0x21<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1958 .hword (0x22<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1959 .hword (0x23<<8) |(1<<HFlag) |(1<<CFlag)\r
1960 .hword (0x24<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1961 .hword (0x25<<8) |(1<<HFlag) |(1<<CFlag)\r
1962 .hword (0x20<<8) |(1<<CFlag)\r
1963 .hword (0x21<<8) |(1<<VFlag) |(1<<CFlag)\r
1964 .hword (0x22<<8) |(1<<VFlag) |(1<<CFlag)\r
1965 .hword (0x23<<8) |(1<<CFlag)\r
1966 .hword (0x24<<8) |(1<<VFlag) |(1<<CFlag)\r
1967 .hword (0x25<<8) |(1<<CFlag)\r
1968 .hword (0x26<<8) |(1<<CFlag)\r
1969 .hword (0x27<<8) |(1<<VFlag) |(1<<CFlag)\r
1970 .hword (0x28<<8) |(1<<VFlag) |(1<<CFlag)\r
1971 .hword (0x29<<8) |(1<<CFlag)\r
1972 .hword (0x30<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1973 .hword (0x31<<8) |(1<<HFlag) |(1<<CFlag)\r
1974 .hword (0x32<<8) |(1<<HFlag) |(1<<CFlag)\r
1975 .hword (0x33<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1976 .hword (0x34<<8) |(1<<HFlag) |(1<<CFlag)\r
1977 .hword (0x35<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1978 .hword (0x30<<8) |(1<<VFlag) |(1<<CFlag)\r
1979 .hword (0x31<<8) |(1<<CFlag)\r
1980 .hword (0x32<<8) |(1<<CFlag)\r
1981 .hword (0x33<<8) |(1<<VFlag) |(1<<CFlag)\r
1982 .hword (0x34<<8) |(1<<CFlag)\r
1983 .hword (0x35<<8) |(1<<VFlag) |(1<<CFlag)\r
1984 .hword (0x36<<8) |(1<<VFlag) |(1<<CFlag)\r
1985 .hword (0x37<<8) |(1<<CFlag)\r
1986 .hword (0x38<<8) |(1<<CFlag)\r
1987 .hword (0x39<<8) |(1<<VFlag) |(1<<CFlag)\r
1988 .hword (0x40<<8) |(1<<HFlag) |(1<<CFlag)\r
1989 .hword (0x41<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1990 .hword (0x42<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1991 .hword (0x43<<8) |(1<<HFlag) |(1<<CFlag)\r
1992 .hword (0x44<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
1993 .hword (0x45<<8) |(1<<HFlag) |(1<<CFlag)\r
1994 .hword (0x40<<8) |(1<<CFlag)\r
1995 .hword (0x41<<8) |(1<<VFlag) |(1<<CFlag)\r
1996 .hword (0x42<<8) |(1<<VFlag) |(1<<CFlag)\r
1997 .hword (0x43<<8) |(1<<CFlag)\r
1998 .hword (0x44<<8) |(1<<VFlag) |(1<<CFlag)\r
1999 .hword (0x45<<8) |(1<<CFlag)\r
2000 .hword (0x46<<8) |(1<<CFlag)\r
2001 .hword (0x47<<8) |(1<<VFlag) |(1<<CFlag)\r
2002 .hword (0x48<<8) |(1<<VFlag) |(1<<CFlag)\r
2003 .hword (0x49<<8) |(1<<CFlag)\r
2004 .hword (0x50<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2005 .hword (0x51<<8) |(1<<HFlag) |(1<<CFlag)\r
2006 .hword (0x52<<8) |(1<<HFlag) |(1<<CFlag)\r
2007 .hword (0x53<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2008 .hword (0x54<<8) |(1<<HFlag) |(1<<CFlag)\r
2009 .hword (0x55<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2010 .hword (0x50<<8) |(1<<VFlag) |(1<<CFlag)\r
2011 .hword (0x51<<8) |(1<<CFlag)\r
2012 .hword (0x52<<8) |(1<<CFlag)\r
2013 .hword (0x53<<8) |(1<<VFlag) |(1<<CFlag)\r
2014 .hword (0x54<<8) |(1<<CFlag)\r
2015 .hword (0x55<<8) |(1<<VFlag) |(1<<CFlag)\r
2016 .hword (0x56<<8) |(1<<VFlag) |(1<<CFlag)\r
2017 .hword (0x57<<8) |(1<<CFlag)\r
2018 .hword (0x58<<8) |(1<<CFlag)\r
2019 .hword (0x59<<8) |(1<<VFlag) |(1<<CFlag)\r
2020 .hword (0x60<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2021 .hword (0x61<<8) |(1<<HFlag) |(1<<CFlag)\r
2022 .hword (0x62<<8) |(1<<HFlag) |(1<<CFlag)\r
2023 .hword (0x63<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2024 .hword (0x64<<8) |(1<<HFlag) |(1<<CFlag)\r
2025 .hword (0x65<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2026 .hword (0x06<<8) |(1<<VFlag)\r
2027 .hword (0x07<<8) \r
2028 .hword (0x08<<8) \r
2029 .hword (0x09<<8) |(1<<VFlag)\r
2030 .hword (0x0A<<8) |(1<<VFlag)\r
2031 .hword (0x0B<<8) \r
2032 .hword (0x0C<<8) |(1<<VFlag)\r
2033 .hword (0x0D<<8) \r
2034 .hword (0x0E<<8) \r
2035 .hword (0x0F<<8) |(1<<VFlag)\r
2036 .hword (0x10<<8) |(1<<HFlag) \r
2037 .hword (0x11<<8) |(1<<HFlag) |(1<<VFlag)\r
2038 .hword (0x12<<8) |(1<<HFlag) |(1<<VFlag)\r
2039 .hword (0x13<<8) |(1<<HFlag) \r
2040 .hword (0x14<<8) |(1<<HFlag) |(1<<VFlag)\r
2041 .hword (0x15<<8) |(1<<HFlag) \r
2042 .hword (0x16<<8) \r
2043 .hword (0x17<<8) |(1<<VFlag)\r
2044 .hword (0x18<<8) |(1<<VFlag)\r
2045 .hword (0x19<<8) \r
2046 .hword (0x1A<<8) \r
2047 .hword (0x1B<<8) |(1<<VFlag)\r
2048 .hword (0x1C<<8) \r
2049 .hword (0x1D<<8) |(1<<VFlag)\r
2050 .hword (0x1E<<8) |(1<<VFlag)\r
2051 .hword (0x1F<<8) \r
2052 .hword (0x20<<8) |(1<<HFlag) \r
2053 .hword (0x21<<8) |(1<<HFlag) |(1<<VFlag)\r
2054 .hword (0x22<<8) |(1<<HFlag) |(1<<VFlag)\r
2055 .hword (0x23<<8) |(1<<HFlag) \r
2056 .hword (0x24<<8) |(1<<HFlag) |(1<<VFlag)\r
2057 .hword (0x25<<8) |(1<<HFlag) \r
2058 .hword (0x26<<8) \r
2059 .hword (0x27<<8) |(1<<VFlag)\r
2060 .hword (0x28<<8) |(1<<VFlag)\r
2061 .hword (0x29<<8) \r
2062 .hword (0x2A<<8) \r
2063 .hword (0x2B<<8) |(1<<VFlag)\r
2064 .hword (0x2C<<8) \r
2065 .hword (0x2D<<8) |(1<<VFlag)\r
2066 .hword (0x2E<<8) |(1<<VFlag)\r
2067 .hword (0x2F<<8) \r
2068 .hword (0x30<<8) |(1<<HFlag) |(1<<VFlag)\r
2069 .hword (0x31<<8) |(1<<HFlag) \r
2070 .hword (0x32<<8) |(1<<HFlag) \r
2071 .hword (0x33<<8) |(1<<HFlag) |(1<<VFlag)\r
2072 .hword (0x34<<8) |(1<<HFlag) \r
2073 .hword (0x35<<8) |(1<<HFlag) |(1<<VFlag)\r
2074 .hword (0x36<<8) |(1<<VFlag)\r
2075 .hword (0x37<<8) \r
2076 .hword (0x38<<8) \r
2077 .hword (0x39<<8) |(1<<VFlag)\r
2078 .hword (0x3A<<8) |(1<<VFlag)\r
2079 .hword (0x3B<<8) \r
2080 .hword (0x3C<<8) |(1<<VFlag)\r
2081 .hword (0x3D<<8) \r
2082 .hword (0x3E<<8) \r
2083 .hword (0x3F<<8) |(1<<VFlag)\r
2084 .hword (0x40<<8) |(1<<HFlag) \r
2085 .hword (0x41<<8) |(1<<HFlag) |(1<<VFlag)\r
2086 .hword (0x42<<8) |(1<<HFlag) |(1<<VFlag)\r
2087 .hword (0x43<<8) |(1<<HFlag) \r
2088 .hword (0x44<<8) |(1<<HFlag) |(1<<VFlag)\r
2089 .hword (0x45<<8) |(1<<HFlag) \r
2090 .hword (0x46<<8) \r
2091 .hword (0x47<<8) |(1<<VFlag)\r
2092 .hword (0x48<<8) |(1<<VFlag)\r
2093 .hword (0x49<<8) \r
2094 .hword (0x4A<<8) \r
2095 .hword (0x4B<<8) |(1<<VFlag)\r
2096 .hword (0x4C<<8) \r
2097 .hword (0x4D<<8) |(1<<VFlag)\r
2098 .hword (0x4E<<8) |(1<<VFlag)\r
2099 .hword (0x4F<<8) \r
2100 .hword (0x50<<8) |(1<<HFlag) |(1<<VFlag)\r
2101 .hword (0x51<<8) |(1<<HFlag) \r
2102 .hword (0x52<<8) |(1<<HFlag) \r
2103 .hword (0x53<<8) |(1<<HFlag) |(1<<VFlag)\r
2104 .hword (0x54<<8) |(1<<HFlag) \r
2105 .hword (0x55<<8) |(1<<HFlag) |(1<<VFlag)\r
2106 .hword (0x56<<8) |(1<<VFlag)\r
2107 .hword (0x57<<8) \r
2108 .hword (0x58<<8) \r
2109 .hword (0x59<<8) |(1<<VFlag)\r
2110 .hword (0x5A<<8) |(1<<VFlag)\r
2111 .hword (0x5B<<8) \r
2112 .hword (0x5C<<8) |(1<<VFlag)\r
2113 .hword (0x5D<<8) \r
2114 .hword (0x5E<<8) \r
2115 .hword (0x5F<<8) |(1<<VFlag)\r
2116 .hword (0x60<<8) |(1<<HFlag) |(1<<VFlag)\r
2117 .hword (0x61<<8) |(1<<HFlag) \r
2118 .hword (0x62<<8) |(1<<HFlag) \r
2119 .hword (0x63<<8) |(1<<HFlag) |(1<<VFlag)\r
2120 .hword (0x64<<8) |(1<<HFlag) \r
2121 .hword (0x65<<8) |(1<<HFlag) |(1<<VFlag)\r
2122 .hword (0x66<<8) |(1<<VFlag)\r
2123 .hword (0x67<<8) \r
2124 .hword (0x68<<8) \r
2125 .hword (0x69<<8) |(1<<VFlag)\r
2126 .hword (0x6A<<8) |(1<<VFlag)\r
2127 .hword (0x6B<<8) \r
2128 .hword (0x6C<<8) |(1<<VFlag)\r
2129 .hword (0x6D<<8) \r
2130 .hword (0x6E<<8) \r
2131 .hword (0x6F<<8) |(1<<VFlag)\r
2132 .hword (0x70<<8) |(1<<HFlag) \r
2133 .hword (0x71<<8) |(1<<HFlag) |(1<<VFlag)\r
2134 .hword (0x72<<8) |(1<<HFlag) |(1<<VFlag)\r
2135 .hword (0x73<<8) |(1<<HFlag) \r
2136 .hword (0x74<<8) |(1<<HFlag) |(1<<VFlag)\r
2137 .hword (0x75<<8) |(1<<HFlag) \r
2138 .hword (0x76<<8) \r
2139 .hword (0x77<<8) |(1<<VFlag)\r
2140 .hword (0x78<<8) |(1<<VFlag)\r
2141 .hword (0x79<<8) \r
2142 .hword (0x7A<<8) \r
2143 .hword (0x7B<<8) |(1<<VFlag)\r
2144 .hword (0x7C<<8) \r
2145 .hword (0x7D<<8) |(1<<VFlag)\r
2146 .hword (0x7E<<8) |(1<<VFlag)\r
2147 .hword (0x7F<<8) \r
2148 .hword (0x80<<8)|(1<<SFlag) |(1<<HFlag) \r
2149 .hword (0x81<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag)\r
2150 .hword (0x82<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag)\r
2151 .hword (0x83<<8)|(1<<SFlag) |(1<<HFlag) \r
2152 .hword (0x84<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag)\r
2153 .hword (0x85<<8)|(1<<SFlag) |(1<<HFlag) \r
2154 .hword (0x86<<8)|(1<<SFlag) \r
2155 .hword (0x87<<8)|(1<<SFlag) |(1<<VFlag)\r
2156 .hword (0x88<<8)|(1<<SFlag) |(1<<VFlag)\r
2157 .hword (0x89<<8)|(1<<SFlag) \r
2158 .hword (0x8A<<8)|(1<<SFlag) \r
2159 .hword (0x8B<<8)|(1<<SFlag) |(1<<VFlag)\r
2160 .hword (0x8C<<8)|(1<<SFlag) \r
2161 .hword (0x8D<<8)|(1<<SFlag) |(1<<VFlag)\r
2162 .hword (0x8E<<8)|(1<<SFlag) |(1<<VFlag)\r
2163 .hword (0x8F<<8)|(1<<SFlag) \r
2164 .hword (0x90<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag)\r
2165 .hword (0x91<<8)|(1<<SFlag) |(1<<HFlag) \r
2166 .hword (0x92<<8)|(1<<SFlag) |(1<<HFlag) \r
2167 .hword (0x93<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag)\r
2168 .hword (0x94<<8)|(1<<SFlag) |(1<<HFlag) \r
2169 .hword (0x95<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag)\r
2170 .hword (0x96<<8)|(1<<SFlag) |(1<<VFlag)\r
2171 .hword (0x97<<8)|(1<<SFlag) \r
2172 .hword (0x98<<8)|(1<<SFlag) \r
2173 .hword (0x99<<8)|(1<<SFlag) |(1<<VFlag)\r
2174 .hword (0x9A<<8)|(1<<SFlag) |(1<<VFlag)\r
2175 .hword (0x9B<<8)|(1<<SFlag) \r
2176 .hword (0x9C<<8)|(1<<SFlag) |(1<<VFlag)\r
2177 .hword (0x9D<<8)|(1<<SFlag) \r
2178 .hword (0x9E<<8)|(1<<SFlag) \r
2179 .hword (0x9F<<8)|(1<<SFlag) |(1<<VFlag)\r
2180 .hword (0x00<<8) |(1<<ZFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2181 .hword (0x01<<8) |(1<<HFlag) |(1<<CFlag)\r
2182 .hword (0x02<<8) |(1<<HFlag) |(1<<CFlag)\r
2183 .hword (0x03<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2184 .hword (0x04<<8) |(1<<HFlag) |(1<<CFlag)\r
2185 .hword (0x05<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2186 .hword (0x06<<8) |(1<<VFlag) |(1<<CFlag)\r
2187 .hword (0x07<<8) |(1<<CFlag)\r
2188 .hword (0x08<<8) |(1<<CFlag)\r
2189 .hword (0x09<<8) |(1<<VFlag) |(1<<CFlag)\r
2190 .hword (0x0A<<8) |(1<<VFlag) |(1<<CFlag)\r
2191 .hword (0x0B<<8) |(1<<CFlag)\r
2192 .hword (0x0C<<8) |(1<<VFlag) |(1<<CFlag)\r
2193 .hword (0x0D<<8) |(1<<CFlag)\r
2194 .hword (0x0E<<8) |(1<<CFlag)\r
2195 .hword (0x0F<<8) |(1<<VFlag) |(1<<CFlag)\r
2196 .hword (0x10<<8) |(1<<HFlag) |(1<<CFlag)\r
2197 .hword (0x11<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2198 .hword (0x12<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2199 .hword (0x13<<8) |(1<<HFlag) |(1<<CFlag)\r
2200 .hword (0x14<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2201 .hword (0x15<<8) |(1<<HFlag) |(1<<CFlag)\r
2202 .hword (0x16<<8) |(1<<CFlag)\r
2203 .hword (0x17<<8) |(1<<VFlag) |(1<<CFlag)\r
2204 .hword (0x18<<8) |(1<<VFlag) |(1<<CFlag)\r
2205 .hword (0x19<<8) |(1<<CFlag)\r
2206 .hword (0x1A<<8) |(1<<CFlag)\r
2207 .hword (0x1B<<8) |(1<<VFlag) |(1<<CFlag)\r
2208 .hword (0x1C<<8) |(1<<CFlag)\r
2209 .hword (0x1D<<8) |(1<<VFlag) |(1<<CFlag)\r
2210 .hword (0x1E<<8) |(1<<VFlag) |(1<<CFlag)\r
2211 .hword (0x1F<<8) |(1<<CFlag)\r
2212 .hword (0x20<<8) |(1<<HFlag) |(1<<CFlag)\r
2213 .hword (0x21<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2214 .hword (0x22<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2215 .hword (0x23<<8) |(1<<HFlag) |(1<<CFlag)\r
2216 .hword (0x24<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2217 .hword (0x25<<8) |(1<<HFlag) |(1<<CFlag)\r
2218 .hword (0x26<<8) |(1<<CFlag)\r
2219 .hword (0x27<<8) |(1<<VFlag) |(1<<CFlag)\r
2220 .hword (0x28<<8) |(1<<VFlag) |(1<<CFlag)\r
2221 .hword (0x29<<8) |(1<<CFlag)\r
2222 .hword (0x2A<<8) |(1<<CFlag)\r
2223 .hword (0x2B<<8) |(1<<VFlag) |(1<<CFlag)\r
2224 .hword (0x2C<<8) |(1<<CFlag)\r
2225 .hword (0x2D<<8) |(1<<VFlag) |(1<<CFlag)\r
2226 .hword (0x2E<<8) |(1<<VFlag) |(1<<CFlag)\r
2227 .hword (0x2F<<8) |(1<<CFlag)\r
2228 .hword (0x30<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2229 .hword (0x31<<8) |(1<<HFlag) |(1<<CFlag)\r
2230 .hword (0x32<<8) |(1<<HFlag) |(1<<CFlag)\r
2231 .hword (0x33<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2232 .hword (0x34<<8) |(1<<HFlag) |(1<<CFlag)\r
2233 .hword (0x35<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2234 .hword (0x36<<8) |(1<<VFlag) |(1<<CFlag)\r
2235 .hword (0x37<<8) |(1<<CFlag)\r
2236 .hword (0x38<<8) |(1<<CFlag)\r
2237 .hword (0x39<<8) |(1<<VFlag) |(1<<CFlag)\r
2238 .hword (0x3A<<8) |(1<<VFlag) |(1<<CFlag)\r
2239 .hword (0x3B<<8) |(1<<CFlag)\r
2240 .hword (0x3C<<8) |(1<<VFlag) |(1<<CFlag)\r
2241 .hword (0x3D<<8) |(1<<CFlag)\r
2242 .hword (0x3E<<8) |(1<<CFlag)\r
2243 .hword (0x3F<<8) |(1<<VFlag) |(1<<CFlag)\r
2244 .hword (0x40<<8) |(1<<HFlag) |(1<<CFlag)\r
2245 .hword (0x41<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2246 .hword (0x42<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2247 .hword (0x43<<8) |(1<<HFlag) |(1<<CFlag)\r
2248 .hword (0x44<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2249 .hword (0x45<<8) |(1<<HFlag) |(1<<CFlag)\r
2250 .hword (0x46<<8) |(1<<CFlag)\r
2251 .hword (0x47<<8) |(1<<VFlag) |(1<<CFlag)\r
2252 .hword (0x48<<8) |(1<<VFlag) |(1<<CFlag)\r
2253 .hword (0x49<<8) |(1<<CFlag)\r
2254 .hword (0x4A<<8) |(1<<CFlag)\r
2255 .hword (0x4B<<8) |(1<<VFlag) |(1<<CFlag)\r
2256 .hword (0x4C<<8) |(1<<CFlag)\r
2257 .hword (0x4D<<8) |(1<<VFlag) |(1<<CFlag)\r
2258 .hword (0x4E<<8) |(1<<VFlag) |(1<<CFlag)\r
2259 .hword (0x4F<<8) |(1<<CFlag)\r
2260 .hword (0x50<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2261 .hword (0x51<<8) |(1<<HFlag) |(1<<CFlag)\r
2262 .hword (0x52<<8) |(1<<HFlag) |(1<<CFlag)\r
2263 .hword (0x53<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2264 .hword (0x54<<8) |(1<<HFlag) |(1<<CFlag)\r
2265 .hword (0x55<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2266 .hword (0x56<<8) |(1<<VFlag) |(1<<CFlag)\r
2267 .hword (0x57<<8) |(1<<CFlag)\r
2268 .hword (0x58<<8) |(1<<CFlag)\r
2269 .hword (0x59<<8) |(1<<VFlag) |(1<<CFlag)\r
2270 .hword (0x5A<<8) |(1<<VFlag) |(1<<CFlag)\r
2271 .hword (0x5B<<8) |(1<<CFlag)\r
2272 .hword (0x5C<<8) |(1<<VFlag) |(1<<CFlag)\r
2273 .hword (0x5D<<8) |(1<<CFlag)\r
2274 .hword (0x5E<<8) |(1<<CFlag)\r
2275 .hword (0x5F<<8) |(1<<VFlag) |(1<<CFlag)\r
2276 .hword (0x60<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2277 .hword (0x61<<8) |(1<<HFlag) |(1<<CFlag)\r
2278 .hword (0x62<<8) |(1<<HFlag) |(1<<CFlag)\r
2279 .hword (0x63<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2280 .hword (0x64<<8) |(1<<HFlag) |(1<<CFlag)\r
2281 .hword (0x65<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2282 .hword (0x66<<8) |(1<<VFlag) |(1<<CFlag)\r
2283 .hword (0x67<<8) |(1<<CFlag)\r
2284 .hword (0x68<<8) |(1<<CFlag)\r
2285 .hword (0x69<<8) |(1<<VFlag) |(1<<CFlag)\r
2286 .hword (0x6A<<8) |(1<<VFlag) |(1<<CFlag)\r
2287 .hword (0x6B<<8) |(1<<CFlag)\r
2288 .hword (0x6C<<8) |(1<<VFlag) |(1<<CFlag)\r
2289 .hword (0x6D<<8) |(1<<CFlag)\r
2290 .hword (0x6E<<8) |(1<<CFlag)\r
2291 .hword (0x6F<<8) |(1<<VFlag) |(1<<CFlag)\r
2292 .hword (0x70<<8) |(1<<HFlag) |(1<<CFlag)\r
2293 .hword (0x71<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2294 .hword (0x72<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2295 .hword (0x73<<8) |(1<<HFlag) |(1<<CFlag)\r
2296 .hword (0x74<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2297 .hword (0x75<<8) |(1<<HFlag) |(1<<CFlag)\r
2298 .hword (0x76<<8) |(1<<CFlag)\r
2299 .hword (0x77<<8) |(1<<VFlag) |(1<<CFlag)\r
2300 .hword (0x78<<8) |(1<<VFlag) |(1<<CFlag)\r
2301 .hword (0x79<<8) |(1<<CFlag)\r
2302 .hword (0x7A<<8) |(1<<CFlag)\r
2303 .hword (0x7B<<8) |(1<<VFlag) |(1<<CFlag)\r
2304 .hword (0x7C<<8) |(1<<CFlag)\r
2305 .hword (0x7D<<8) |(1<<VFlag) |(1<<CFlag)\r
2306 .hword (0x7E<<8) |(1<<VFlag) |(1<<CFlag)\r
2307 .hword (0x7F<<8) |(1<<CFlag)\r
2308 .hword (0x80<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
2309 .hword (0x81<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2310 .hword (0x82<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2311 .hword (0x83<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
2312 .hword (0x84<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2313 .hword (0x85<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
2314 .hword (0x86<<8)|(1<<SFlag) |(1<<CFlag)\r
2315 .hword (0x87<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
2316 .hword (0x88<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
2317 .hword (0x89<<8)|(1<<SFlag) |(1<<CFlag)\r
2318 .hword (0x8A<<8)|(1<<SFlag) |(1<<CFlag)\r
2319 .hword (0x8B<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
2320 .hword (0x8C<<8)|(1<<SFlag) |(1<<CFlag)\r
2321 .hword (0x8D<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
2322 .hword (0x8E<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
2323 .hword (0x8F<<8)|(1<<SFlag) |(1<<CFlag)\r
2324 .hword (0x90<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2325 .hword (0x91<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
2326 .hword (0x92<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
2327 .hword (0x93<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2328 .hword (0x94<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
2329 .hword (0x95<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2330 .hword (0x96<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
2331 .hword (0x97<<8)|(1<<SFlag) |(1<<CFlag)\r
2332 .hword (0x98<<8)|(1<<SFlag) |(1<<CFlag)\r
2333 .hword (0x99<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
2334 .hword (0x9A<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
2335 .hword (0x9B<<8)|(1<<SFlag) |(1<<CFlag)\r
2336 .hword (0x9C<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
2337 .hword (0x9D<<8)|(1<<SFlag) |(1<<CFlag)\r
2338 .hword (0x9E<<8)|(1<<SFlag) |(1<<CFlag)\r
2339 .hword (0x9F<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
2340 .hword (0xA0<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2341 .hword (0xA1<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
2342 .hword (0xA2<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
2343 .hword (0xA3<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2344 .hword (0xA4<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
2345 .hword (0xA5<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2346 .hword (0xA6<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
2347 .hword (0xA7<<8)|(1<<SFlag) |(1<<CFlag)\r
2348 .hword (0xA8<<8)|(1<<SFlag) |(1<<CFlag)\r
2349 .hword (0xA9<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
2350 .hword (0xAA<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
2351 .hword (0xAB<<8)|(1<<SFlag) |(1<<CFlag)\r
2352 .hword (0xAC<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
2353 .hword (0xAD<<8)|(1<<SFlag) |(1<<CFlag)\r
2354 .hword (0xAE<<8)|(1<<SFlag) |(1<<CFlag)\r
2355 .hword (0xAF<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
2356 .hword (0xB0<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
2357 .hword (0xB1<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2358 .hword (0xB2<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2359 .hword (0xB3<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
2360 .hword (0xB4<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2361 .hword (0xB5<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
2362 .hword (0xB6<<8)|(1<<SFlag) |(1<<CFlag)\r
2363 .hword (0xB7<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
2364 .hword (0xB8<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
2365 .hword (0xB9<<8)|(1<<SFlag) |(1<<CFlag)\r
2366 .hword (0xBA<<8)|(1<<SFlag) |(1<<CFlag)\r
2367 .hword (0xBB<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
2368 .hword (0xBC<<8)|(1<<SFlag) |(1<<CFlag)\r
2369 .hword (0xBD<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
2370 .hword (0xBE<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
2371 .hword (0xBF<<8)|(1<<SFlag) |(1<<CFlag)\r
2372 .hword (0xC0<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2373 .hword (0xC1<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
2374 .hword (0xC2<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
2375 .hword (0xC3<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2376 .hword (0xC4<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
2377 .hword (0xC5<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2378 .hword (0xC6<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
2379 .hword (0xC7<<8)|(1<<SFlag) |(1<<CFlag)\r
2380 .hword (0xC8<<8)|(1<<SFlag) |(1<<CFlag)\r
2381 .hword (0xC9<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
2382 .hword (0xCA<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
2383 .hword (0xCB<<8)|(1<<SFlag) |(1<<CFlag)\r
2384 .hword (0xCC<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
2385 .hword (0xCD<<8)|(1<<SFlag) |(1<<CFlag)\r
2386 .hword (0xCE<<8)|(1<<SFlag) |(1<<CFlag)\r
2387 .hword (0xCF<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
2388 .hword (0xD0<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
2389 .hword (0xD1<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2390 .hword (0xD2<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2391 .hword (0xD3<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
2392 .hword (0xD4<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2393 .hword (0xD5<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
2394 .hword (0xD6<<8)|(1<<SFlag) |(1<<CFlag)\r
2395 .hword (0xD7<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
2396 .hword (0xD8<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
2397 .hword (0xD9<<8)|(1<<SFlag) |(1<<CFlag)\r
2398 .hword (0xDA<<8)|(1<<SFlag) |(1<<CFlag)\r
2399 .hword (0xDB<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
2400 .hword (0xDC<<8)|(1<<SFlag) |(1<<CFlag)\r
2401 .hword (0xDD<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
2402 .hword (0xDE<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
2403 .hword (0xDF<<8)|(1<<SFlag) |(1<<CFlag)\r
2404 .hword (0xE0<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
2405 .hword (0xE1<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2406 .hword (0xE2<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2407 .hword (0xE3<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
2408 .hword (0xE4<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2409 .hword (0xE5<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
2410 .hword (0xE6<<8)|(1<<SFlag) |(1<<CFlag)\r
2411 .hword (0xE7<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
2412 .hword (0xE8<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
2413 .hword (0xE9<<8)|(1<<SFlag) |(1<<CFlag)\r
2414 .hword (0xEA<<8)|(1<<SFlag) |(1<<CFlag)\r
2415 .hword (0xEB<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
2416 .hword (0xEC<<8)|(1<<SFlag) |(1<<CFlag)\r
2417 .hword (0xED<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
2418 .hword (0xEE<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
2419 .hword (0xEF<<8)|(1<<SFlag) |(1<<CFlag)\r
2420 .hword (0xF0<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2421 .hword (0xF1<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
2422 .hword (0xF2<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
2423 .hword (0xF3<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2424 .hword (0xF4<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
2425 .hword (0xF5<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2426 .hword (0xF6<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
2427 .hword (0xF7<<8)|(1<<SFlag) |(1<<CFlag)\r
2428 .hword (0xF8<<8)|(1<<SFlag) |(1<<CFlag)\r
2429 .hword (0xF9<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
2430 .hword (0xFA<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
2431 .hword (0xFB<<8)|(1<<SFlag) |(1<<CFlag)\r
2432 .hword (0xFC<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
2433 .hword (0xFD<<8)|(1<<SFlag) |(1<<CFlag)\r
2434 .hword (0xFE<<8)|(1<<SFlag) |(1<<CFlag)\r
2435 .hword (0xFF<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
2436 .hword (0x00<<8) |(1<<ZFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2437 .hword (0x01<<8) |(1<<HFlag) |(1<<CFlag)\r
2438 .hword (0x02<<8) |(1<<HFlag) |(1<<CFlag)\r
2439 .hword (0x03<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2440 .hword (0x04<<8) |(1<<HFlag) |(1<<CFlag)\r
2441 .hword (0x05<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2442 .hword (0x06<<8) |(1<<VFlag) |(1<<CFlag)\r
2443 .hword (0x07<<8) |(1<<CFlag)\r
2444 .hword (0x08<<8) |(1<<CFlag)\r
2445 .hword (0x09<<8) |(1<<VFlag) |(1<<CFlag)\r
2446 .hword (0x0A<<8) |(1<<VFlag) |(1<<CFlag)\r
2447 .hword (0x0B<<8) |(1<<CFlag)\r
2448 .hword (0x0C<<8) |(1<<VFlag) |(1<<CFlag)\r
2449 .hword (0x0D<<8) |(1<<CFlag)\r
2450 .hword (0x0E<<8) |(1<<CFlag)\r
2451 .hword (0x0F<<8) |(1<<VFlag) |(1<<CFlag)\r
2452 .hword (0x10<<8) |(1<<HFlag) |(1<<CFlag)\r
2453 .hword (0x11<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2454 .hword (0x12<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2455 .hword (0x13<<8) |(1<<HFlag) |(1<<CFlag)\r
2456 .hword (0x14<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2457 .hword (0x15<<8) |(1<<HFlag) |(1<<CFlag)\r
2458 .hword (0x16<<8) |(1<<CFlag)\r
2459 .hword (0x17<<8) |(1<<VFlag) |(1<<CFlag)\r
2460 .hword (0x18<<8) |(1<<VFlag) |(1<<CFlag)\r
2461 .hword (0x19<<8) |(1<<CFlag)\r
2462 .hword (0x1A<<8) |(1<<CFlag)\r
2463 .hword (0x1B<<8) |(1<<VFlag) |(1<<CFlag)\r
2464 .hword (0x1C<<8) |(1<<CFlag)\r
2465 .hword (0x1D<<8) |(1<<VFlag) |(1<<CFlag)\r
2466 .hword (0x1E<<8) |(1<<VFlag) |(1<<CFlag)\r
2467 .hword (0x1F<<8) |(1<<CFlag)\r
2468 .hword (0x20<<8) |(1<<HFlag) |(1<<CFlag)\r
2469 .hword (0x21<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2470 .hword (0x22<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2471 .hword (0x23<<8) |(1<<HFlag) |(1<<CFlag)\r
2472 .hword (0x24<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2473 .hword (0x25<<8) |(1<<HFlag) |(1<<CFlag)\r
2474 .hword (0x26<<8) |(1<<CFlag)\r
2475 .hword (0x27<<8) |(1<<VFlag) |(1<<CFlag)\r
2476 .hword (0x28<<8) |(1<<VFlag) |(1<<CFlag)\r
2477 .hword (0x29<<8) |(1<<CFlag)\r
2478 .hword (0x2A<<8) |(1<<CFlag)\r
2479 .hword (0x2B<<8) |(1<<VFlag) |(1<<CFlag)\r
2480 .hword (0x2C<<8) |(1<<CFlag)\r
2481 .hword (0x2D<<8) |(1<<VFlag) |(1<<CFlag)\r
2482 .hword (0x2E<<8) |(1<<VFlag) |(1<<CFlag)\r
2483 .hword (0x2F<<8) |(1<<CFlag)\r
2484 .hword (0x30<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2485 .hword (0x31<<8) |(1<<HFlag) |(1<<CFlag)\r
2486 .hword (0x32<<8) |(1<<HFlag) |(1<<CFlag)\r
2487 .hword (0x33<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2488 .hword (0x34<<8) |(1<<HFlag) |(1<<CFlag)\r
2489 .hword (0x35<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2490 .hword (0x36<<8) |(1<<VFlag) |(1<<CFlag)\r
2491 .hword (0x37<<8) |(1<<CFlag)\r
2492 .hword (0x38<<8) |(1<<CFlag)\r
2493 .hword (0x39<<8) |(1<<VFlag) |(1<<CFlag)\r
2494 .hword (0x3A<<8) |(1<<VFlag) |(1<<CFlag)\r
2495 .hword (0x3B<<8) |(1<<CFlag)\r
2496 .hword (0x3C<<8) |(1<<VFlag) |(1<<CFlag)\r
2497 .hword (0x3D<<8) |(1<<CFlag)\r
2498 .hword (0x3E<<8) |(1<<CFlag)\r
2499 .hword (0x3F<<8) |(1<<VFlag) |(1<<CFlag)\r
2500 .hword (0x40<<8) |(1<<HFlag) |(1<<CFlag)\r
2501 .hword (0x41<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2502 .hword (0x42<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2503 .hword (0x43<<8) |(1<<HFlag) |(1<<CFlag)\r
2504 .hword (0x44<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2505 .hword (0x45<<8) |(1<<HFlag) |(1<<CFlag)\r
2506 .hword (0x46<<8) |(1<<CFlag)\r
2507 .hword (0x47<<8) |(1<<VFlag) |(1<<CFlag)\r
2508 .hword (0x48<<8) |(1<<VFlag) |(1<<CFlag)\r
2509 .hword (0x49<<8) |(1<<CFlag)\r
2510 .hword (0x4A<<8) |(1<<CFlag)\r
2511 .hword (0x4B<<8) |(1<<VFlag) |(1<<CFlag)\r
2512 .hword (0x4C<<8) |(1<<CFlag)\r
2513 .hword (0x4D<<8) |(1<<VFlag) |(1<<CFlag)\r
2514 .hword (0x4E<<8) |(1<<VFlag) |(1<<CFlag)\r
2515 .hword (0x4F<<8) |(1<<CFlag)\r
2516 .hword (0x50<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2517 .hword (0x51<<8) |(1<<HFlag) |(1<<CFlag)\r
2518 .hword (0x52<<8) |(1<<HFlag) |(1<<CFlag)\r
2519 .hword (0x53<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2520 .hword (0x54<<8) |(1<<HFlag) |(1<<CFlag)\r
2521 .hword (0x55<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2522 .hword (0x56<<8) |(1<<VFlag) |(1<<CFlag)\r
2523 .hword (0x57<<8) |(1<<CFlag)\r
2524 .hword (0x58<<8) |(1<<CFlag)\r
2525 .hword (0x59<<8) |(1<<VFlag) |(1<<CFlag)\r
2526 .hword (0x5A<<8) |(1<<VFlag) |(1<<CFlag)\r
2527 .hword (0x5B<<8) |(1<<CFlag)\r
2528 .hword (0x5C<<8) |(1<<VFlag) |(1<<CFlag)\r
2529 .hword (0x5D<<8) |(1<<CFlag)\r
2530 .hword (0x5E<<8) |(1<<CFlag)\r
2531 .hword (0x5F<<8) |(1<<VFlag) |(1<<CFlag)\r
2532 .hword (0x60<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2533 .hword (0x61<<8) |(1<<HFlag) |(1<<CFlag)\r
2534 .hword (0x62<<8) |(1<<HFlag) |(1<<CFlag)\r
2535 .hword (0x63<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2536 .hword (0x64<<8) |(1<<HFlag) |(1<<CFlag)\r
2537 .hword (0x65<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
2538 .hword (0x00<<8) |(1<<ZFlag) |(1<<VFlag)|(1<<NFlag) \r
2539 .hword (0x01<<8) |(1<<NFlag) \r
2540 .hword (0x02<<8) |(1<<NFlag) \r
2541 .hword (0x03<<8) |(1<<VFlag)|(1<<NFlag) \r
2542 .hword (0x04<<8) |(1<<NFlag) \r
2543 .hword (0x05<<8) |(1<<VFlag)|(1<<NFlag) \r
2544 .hword (0x06<<8) |(1<<VFlag)|(1<<NFlag) \r
2545 .hword (0x07<<8) |(1<<NFlag) \r
2546 .hword (0x08<<8) |(1<<NFlag) \r
2547 .hword (0x09<<8) |(1<<VFlag)|(1<<NFlag) \r
2548 .hword (0x04<<8) |(1<<NFlag) \r
2549 .hword (0x05<<8) |(1<<VFlag)|(1<<NFlag) \r
2550 .hword (0x06<<8) |(1<<VFlag)|(1<<NFlag) \r
2551 .hword (0x07<<8) |(1<<NFlag) \r
2552 .hword (0x08<<8) |(1<<NFlag) \r
2553 .hword (0x09<<8) |(1<<VFlag)|(1<<NFlag) \r
2554 .hword (0x10<<8) |(1<<NFlag) \r
2555 .hword (0x11<<8) |(1<<VFlag)|(1<<NFlag) \r
2556 .hword (0x12<<8) |(1<<VFlag)|(1<<NFlag) \r
2557 .hword (0x13<<8) |(1<<NFlag) \r
2558 .hword (0x14<<8) |(1<<VFlag)|(1<<NFlag) \r
2559 .hword (0x15<<8) |(1<<NFlag) \r
2560 .hword (0x16<<8) |(1<<NFlag) \r
2561 .hword (0x17<<8) |(1<<VFlag)|(1<<NFlag) \r
2562 .hword (0x18<<8) |(1<<VFlag)|(1<<NFlag) \r
2563 .hword (0x19<<8) |(1<<NFlag) \r
2564 .hword (0x14<<8) |(1<<VFlag)|(1<<NFlag) \r
2565 .hword (0x15<<8) |(1<<NFlag) \r
2566 .hword (0x16<<8) |(1<<NFlag) \r
2567 .hword (0x17<<8) |(1<<VFlag)|(1<<NFlag) \r
2568 .hword (0x18<<8) |(1<<VFlag)|(1<<NFlag) \r
2569 .hword (0x19<<8) |(1<<NFlag) \r
2570 .hword (0x20<<8) |(1<<NFlag) \r
2571 .hword (0x21<<8) |(1<<VFlag)|(1<<NFlag) \r
2572 .hword (0x22<<8) |(1<<VFlag)|(1<<NFlag) \r
2573 .hword (0x23<<8) |(1<<NFlag) \r
2574 .hword (0x24<<8) |(1<<VFlag)|(1<<NFlag) \r
2575 .hword (0x25<<8) |(1<<NFlag) \r
2576 .hword (0x26<<8) |(1<<NFlag) \r
2577 .hword (0x27<<8) |(1<<VFlag)|(1<<NFlag) \r
2578 .hword (0x28<<8) |(1<<VFlag)|(1<<NFlag) \r
2579 .hword (0x29<<8) |(1<<NFlag) \r
2580 .hword (0x24<<8) |(1<<VFlag)|(1<<NFlag) \r
2581 .hword (0x25<<8) |(1<<NFlag) \r
2582 .hword (0x26<<8) |(1<<NFlag) \r
2583 .hword (0x27<<8) |(1<<VFlag)|(1<<NFlag) \r
2584 .hword (0x28<<8) |(1<<VFlag)|(1<<NFlag) \r
2585 .hword (0x29<<8) |(1<<NFlag) \r
2586 .hword (0x30<<8) |(1<<VFlag)|(1<<NFlag) \r
2587 .hword (0x31<<8) |(1<<NFlag) \r
2588 .hword (0x32<<8) |(1<<NFlag) \r
2589 .hword (0x33<<8) |(1<<VFlag)|(1<<NFlag) \r
2590 .hword (0x34<<8) |(1<<NFlag) \r
2591 .hword (0x35<<8) |(1<<VFlag)|(1<<NFlag) \r
2592 .hword (0x36<<8) |(1<<VFlag)|(1<<NFlag) \r
2593 .hword (0x37<<8) |(1<<NFlag) \r
2594 .hword (0x38<<8) |(1<<NFlag) \r
2595 .hword (0x39<<8) |(1<<VFlag)|(1<<NFlag) \r
2596 .hword (0x34<<8) |(1<<NFlag) \r
2597 .hword (0x35<<8) |(1<<VFlag)|(1<<NFlag) \r
2598 .hword (0x36<<8) |(1<<VFlag)|(1<<NFlag) \r
2599 .hword (0x37<<8) |(1<<NFlag) \r
2600 .hword (0x38<<8) |(1<<NFlag) \r
2601 .hword (0x39<<8) |(1<<VFlag)|(1<<NFlag) \r
2602 .hword (0x40<<8) |(1<<NFlag) \r
2603 .hword (0x41<<8) |(1<<VFlag)|(1<<NFlag) \r
2604 .hword (0x42<<8) |(1<<VFlag)|(1<<NFlag) \r
2605 .hword (0x43<<8) |(1<<NFlag) \r
2606 .hword (0x44<<8) |(1<<VFlag)|(1<<NFlag) \r
2607 .hword (0x45<<8) |(1<<NFlag) \r
2608 .hword (0x46<<8) |(1<<NFlag) \r
2609 .hword (0x47<<8) |(1<<VFlag)|(1<<NFlag) \r
2610 .hword (0x48<<8) |(1<<VFlag)|(1<<NFlag) \r
2611 .hword (0x49<<8) |(1<<NFlag) \r
2612 .hword (0x44<<8) |(1<<VFlag)|(1<<NFlag) \r
2613 .hword (0x45<<8) |(1<<NFlag) \r
2614 .hword (0x46<<8) |(1<<NFlag) \r
2615 .hword (0x47<<8) |(1<<VFlag)|(1<<NFlag) \r
2616 .hword (0x48<<8) |(1<<VFlag)|(1<<NFlag) \r
2617 .hword (0x49<<8) |(1<<NFlag) \r
2618 .hword (0x50<<8) |(1<<VFlag)|(1<<NFlag) \r
2619 .hword (0x51<<8) |(1<<NFlag) \r
2620 .hword (0x52<<8) |(1<<NFlag) \r
2621 .hword (0x53<<8) |(1<<VFlag)|(1<<NFlag) \r
2622 .hword (0x54<<8) |(1<<NFlag) \r
2623 .hword (0x55<<8) |(1<<VFlag)|(1<<NFlag) \r
2624 .hword (0x56<<8) |(1<<VFlag)|(1<<NFlag) \r
2625 .hword (0x57<<8) |(1<<NFlag) \r
2626 .hword (0x58<<8) |(1<<NFlag) \r
2627 .hword (0x59<<8) |(1<<VFlag)|(1<<NFlag) \r
2628 .hword (0x54<<8) |(1<<NFlag) \r
2629 .hword (0x55<<8) |(1<<VFlag)|(1<<NFlag) \r
2630 .hword (0x56<<8) |(1<<VFlag)|(1<<NFlag) \r
2631 .hword (0x57<<8) |(1<<NFlag) \r
2632 .hword (0x58<<8) |(1<<NFlag) \r
2633 .hword (0x59<<8) |(1<<VFlag)|(1<<NFlag) \r
2634 .hword (0x60<<8) |(1<<VFlag)|(1<<NFlag) \r
2635 .hword (0x61<<8) |(1<<NFlag) \r
2636 .hword (0x62<<8) |(1<<NFlag) \r
2637 .hword (0x63<<8) |(1<<VFlag)|(1<<NFlag) \r
2638 .hword (0x64<<8) |(1<<NFlag) \r
2639 .hword (0x65<<8) |(1<<VFlag)|(1<<NFlag) \r
2640 .hword (0x66<<8) |(1<<VFlag)|(1<<NFlag) \r
2641 .hword (0x67<<8) |(1<<NFlag) \r
2642 .hword (0x68<<8) |(1<<NFlag) \r
2643 .hword (0x69<<8) |(1<<VFlag)|(1<<NFlag) \r
2644 .hword (0x64<<8) |(1<<NFlag) \r
2645 .hword (0x65<<8) |(1<<VFlag)|(1<<NFlag) \r
2646 .hword (0x66<<8) |(1<<VFlag)|(1<<NFlag) \r
2647 .hword (0x67<<8) |(1<<NFlag) \r
2648 .hword (0x68<<8) |(1<<NFlag) \r
2649 .hword (0x69<<8) |(1<<VFlag)|(1<<NFlag) \r
2650 .hword (0x70<<8) |(1<<NFlag) \r
2651 .hword (0x71<<8) |(1<<VFlag)|(1<<NFlag) \r
2652 .hword (0x72<<8) |(1<<VFlag)|(1<<NFlag) \r
2653 .hword (0x73<<8) |(1<<NFlag) \r
2654 .hword (0x74<<8) |(1<<VFlag)|(1<<NFlag) \r
2655 .hword (0x75<<8) |(1<<NFlag) \r
2656 .hword (0x76<<8) |(1<<NFlag) \r
2657 .hword (0x77<<8) |(1<<VFlag)|(1<<NFlag) \r
2658 .hword (0x78<<8) |(1<<VFlag)|(1<<NFlag) \r
2659 .hword (0x79<<8) |(1<<NFlag) \r
2660 .hword (0x74<<8) |(1<<VFlag)|(1<<NFlag) \r
2661 .hword (0x75<<8) |(1<<NFlag) \r
2662 .hword (0x76<<8) |(1<<NFlag) \r
2663 .hword (0x77<<8) |(1<<VFlag)|(1<<NFlag) \r
2664 .hword (0x78<<8) |(1<<VFlag)|(1<<NFlag) \r
2665 .hword (0x79<<8) |(1<<NFlag) \r
2666 .hword (0x80<<8)|(1<<SFlag) |(1<<NFlag) \r
2667 .hword (0x81<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag) \r
2668 .hword (0x82<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag) \r
2669 .hword (0x83<<8)|(1<<SFlag) |(1<<NFlag) \r
2670 .hword (0x84<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag) \r
2671 .hword (0x85<<8)|(1<<SFlag) |(1<<NFlag) \r
2672 .hword (0x86<<8)|(1<<SFlag) |(1<<NFlag) \r
2673 .hword (0x87<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag) \r
2674 .hword (0x88<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag) \r
2675 .hword (0x89<<8)|(1<<SFlag) |(1<<NFlag) \r
2676 .hword (0x84<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag) \r
2677 .hword (0x85<<8)|(1<<SFlag) |(1<<NFlag) \r
2678 .hword (0x86<<8)|(1<<SFlag) |(1<<NFlag) \r
2679 .hword (0x87<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag) \r
2680 .hword (0x88<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag) \r
2681 .hword (0x89<<8)|(1<<SFlag) |(1<<NFlag) \r
2682 .hword (0x90<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag) \r
2683 .hword (0x91<<8)|(1<<SFlag) |(1<<NFlag) \r
2684 .hword (0x92<<8)|(1<<SFlag) |(1<<NFlag) \r
2685 .hword (0x93<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag) \r
2686 .hword (0x94<<8)|(1<<SFlag) |(1<<NFlag) \r
2687 .hword (0x95<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag) \r
2688 .hword (0x96<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag) \r
2689 .hword (0x97<<8)|(1<<SFlag) |(1<<NFlag) \r
2690 .hword (0x98<<8)|(1<<SFlag) |(1<<NFlag) \r
2691 .hword (0x99<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag) \r
2692 .hword (0x34<<8) |(1<<NFlag)|(1<<CFlag)\r
2693 .hword (0x35<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2694 .hword (0x36<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2695 .hword (0x37<<8) |(1<<NFlag)|(1<<CFlag)\r
2696 .hword (0x38<<8) |(1<<NFlag)|(1<<CFlag)\r
2697 .hword (0x39<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2698 .hword (0x40<<8) |(1<<NFlag)|(1<<CFlag)\r
2699 .hword (0x41<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2700 .hword (0x42<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2701 .hword (0x43<<8) |(1<<NFlag)|(1<<CFlag)\r
2702 .hword (0x44<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2703 .hword (0x45<<8) |(1<<NFlag)|(1<<CFlag)\r
2704 .hword (0x46<<8) |(1<<NFlag)|(1<<CFlag)\r
2705 .hword (0x47<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2706 .hword (0x48<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2707 .hword (0x49<<8) |(1<<NFlag)|(1<<CFlag)\r
2708 .hword (0x44<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2709 .hword (0x45<<8) |(1<<NFlag)|(1<<CFlag)\r
2710 .hword (0x46<<8) |(1<<NFlag)|(1<<CFlag)\r
2711 .hword (0x47<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2712 .hword (0x48<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2713 .hword (0x49<<8) |(1<<NFlag)|(1<<CFlag)\r
2714 .hword (0x50<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2715 .hword (0x51<<8) |(1<<NFlag)|(1<<CFlag)\r
2716 .hword (0x52<<8) |(1<<NFlag)|(1<<CFlag)\r
2717 .hword (0x53<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2718 .hword (0x54<<8) |(1<<NFlag)|(1<<CFlag)\r
2719 .hword (0x55<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2720 .hword (0x56<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2721 .hword (0x57<<8) |(1<<NFlag)|(1<<CFlag)\r
2722 .hword (0x58<<8) |(1<<NFlag)|(1<<CFlag)\r
2723 .hword (0x59<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2724 .hword (0x54<<8) |(1<<NFlag)|(1<<CFlag)\r
2725 .hword (0x55<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2726 .hword (0x56<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2727 .hword (0x57<<8) |(1<<NFlag)|(1<<CFlag)\r
2728 .hword (0x58<<8) |(1<<NFlag)|(1<<CFlag)\r
2729 .hword (0x59<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2730 .hword (0x60<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2731 .hword (0x61<<8) |(1<<NFlag)|(1<<CFlag)\r
2732 .hword (0x62<<8) |(1<<NFlag)|(1<<CFlag)\r
2733 .hword (0x63<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2734 .hword (0x64<<8) |(1<<NFlag)|(1<<CFlag)\r
2735 .hword (0x65<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2736 .hword (0x66<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2737 .hword (0x67<<8) |(1<<NFlag)|(1<<CFlag)\r
2738 .hword (0x68<<8) |(1<<NFlag)|(1<<CFlag)\r
2739 .hword (0x69<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2740 .hword (0x64<<8) |(1<<NFlag)|(1<<CFlag)\r
2741 .hword (0x65<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2742 .hword (0x66<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2743 .hword (0x67<<8) |(1<<NFlag)|(1<<CFlag)\r
2744 .hword (0x68<<8) |(1<<NFlag)|(1<<CFlag)\r
2745 .hword (0x69<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2746 .hword (0x70<<8) |(1<<NFlag)|(1<<CFlag)\r
2747 .hword (0x71<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2748 .hword (0x72<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2749 .hword (0x73<<8) |(1<<NFlag)|(1<<CFlag)\r
2750 .hword (0x74<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2751 .hword (0x75<<8) |(1<<NFlag)|(1<<CFlag)\r
2752 .hword (0x76<<8) |(1<<NFlag)|(1<<CFlag)\r
2753 .hword (0x77<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2754 .hword (0x78<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2755 .hword (0x79<<8) |(1<<NFlag)|(1<<CFlag)\r
2756 .hword (0x74<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2757 .hword (0x75<<8) |(1<<NFlag)|(1<<CFlag)\r
2758 .hword (0x76<<8) |(1<<NFlag)|(1<<CFlag)\r
2759 .hword (0x77<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2760 .hword (0x78<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2761 .hword (0x79<<8) |(1<<NFlag)|(1<<CFlag)\r
2762 .hword (0x80<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2763 .hword (0x81<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2764 .hword (0x82<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2765 .hword (0x83<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2766 .hword (0x84<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2767 .hword (0x85<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2768 .hword (0x86<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2769 .hword (0x87<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2770 .hword (0x88<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2771 .hword (0x89<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2772 .hword (0x84<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2773 .hword (0x85<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2774 .hword (0x86<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2775 .hword (0x87<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2776 .hword (0x88<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2777 .hword (0x89<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2778 .hword (0x90<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2779 .hword (0x91<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2780 .hword (0x92<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2781 .hword (0x93<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2782 .hword (0x94<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2783 .hword (0x95<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2784 .hword (0x96<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2785 .hword (0x97<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2786 .hword (0x98<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2787 .hword (0x99<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2788 .hword (0x94<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2789 .hword (0x95<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2790 .hword (0x96<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2791 .hword (0x97<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2792 .hword (0x98<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2793 .hword (0x99<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2794 .hword (0xA0<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2795 .hword (0xA1<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2796 .hword (0xA2<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2797 .hword (0xA3<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2798 .hword (0xA4<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2799 .hword (0xA5<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2800 .hword (0xA6<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2801 .hword (0xA7<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2802 .hword (0xA8<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2803 .hword (0xA9<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2804 .hword (0xA4<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2805 .hword (0xA5<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2806 .hword (0xA6<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2807 .hword (0xA7<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2808 .hword (0xA8<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2809 .hword (0xA9<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2810 .hword (0xB0<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2811 .hword (0xB1<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2812 .hword (0xB2<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2813 .hword (0xB3<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2814 .hword (0xB4<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2815 .hword (0xB5<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2816 .hword (0xB6<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2817 .hword (0xB7<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2818 .hword (0xB8<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2819 .hword (0xB9<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2820 .hword (0xB4<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2821 .hword (0xB5<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2822 .hword (0xB6<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2823 .hword (0xB7<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2824 .hword (0xB8<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2825 .hword (0xB9<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2826 .hword (0xC0<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2827 .hword (0xC1<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2828 .hword (0xC2<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2829 .hword (0xC3<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2830 .hword (0xC4<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2831 .hword (0xC5<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2832 .hword (0xC6<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2833 .hword (0xC7<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2834 .hword (0xC8<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2835 .hword (0xC9<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2836 .hword (0xC4<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2837 .hword (0xC5<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2838 .hword (0xC6<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2839 .hword (0xC7<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2840 .hword (0xC8<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2841 .hword (0xC9<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2842 .hword (0xD0<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2843 .hword (0xD1<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2844 .hword (0xD2<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2845 .hword (0xD3<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2846 .hword (0xD4<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2847 .hword (0xD5<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2848 .hword (0xD6<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2849 .hword (0xD7<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2850 .hword (0xD8<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2851 .hword (0xD9<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2852 .hword (0xD4<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2853 .hword (0xD5<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2854 .hword (0xD6<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2855 .hword (0xD7<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2856 .hword (0xD8<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2857 .hword (0xD9<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2858 .hword (0xE0<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2859 .hword (0xE1<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2860 .hword (0xE2<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2861 .hword (0xE3<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2862 .hword (0xE4<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2863 .hword (0xE5<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2864 .hword (0xE6<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2865 .hword (0xE7<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2866 .hword (0xE8<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2867 .hword (0xE9<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2868 .hword (0xE4<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2869 .hword (0xE5<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2870 .hword (0xE6<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2871 .hword (0xE7<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2872 .hword (0xE8<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2873 .hword (0xE9<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2874 .hword (0xF0<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2875 .hword (0xF1<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2876 .hword (0xF2<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2877 .hword (0xF3<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2878 .hword (0xF4<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2879 .hword (0xF5<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2880 .hword (0xF6<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2881 .hword (0xF7<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2882 .hword (0xF8<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2883 .hword (0xF9<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2884 .hword (0xF4<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2885 .hword (0xF5<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2886 .hword (0xF6<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2887 .hword (0xF7<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2888 .hword (0xF8<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
2889 .hword (0xF9<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2890 .hword (0x00<<8) |(1<<ZFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2891 .hword (0x01<<8) |(1<<NFlag)|(1<<CFlag)\r
2892 .hword (0x02<<8) |(1<<NFlag)|(1<<CFlag)\r
2893 .hword (0x03<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2894 .hword (0x04<<8) |(1<<NFlag)|(1<<CFlag)\r
2895 .hword (0x05<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2896 .hword (0x06<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2897 .hword (0x07<<8) |(1<<NFlag)|(1<<CFlag)\r
2898 .hword (0x08<<8) |(1<<NFlag)|(1<<CFlag)\r
2899 .hword (0x09<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2900 .hword (0x04<<8) |(1<<NFlag)|(1<<CFlag)\r
2901 .hword (0x05<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2902 .hword (0x06<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2903 .hword (0x07<<8) |(1<<NFlag)|(1<<CFlag)\r
2904 .hword (0x08<<8) |(1<<NFlag)|(1<<CFlag)\r
2905 .hword (0x09<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2906 .hword (0x10<<8) |(1<<NFlag)|(1<<CFlag)\r
2907 .hword (0x11<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2908 .hword (0x12<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2909 .hword (0x13<<8) |(1<<NFlag)|(1<<CFlag)\r
2910 .hword (0x14<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2911 .hword (0x15<<8) |(1<<NFlag)|(1<<CFlag)\r
2912 .hword (0x16<<8) |(1<<NFlag)|(1<<CFlag)\r
2913 .hword (0x17<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2914 .hword (0x18<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2915 .hword (0x19<<8) |(1<<NFlag)|(1<<CFlag)\r
2916 .hword (0x14<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2917 .hword (0x15<<8) |(1<<NFlag)|(1<<CFlag)\r
2918 .hword (0x16<<8) |(1<<NFlag)|(1<<CFlag)\r
2919 .hword (0x17<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2920 .hword (0x18<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2921 .hword (0x19<<8) |(1<<NFlag)|(1<<CFlag)\r
2922 .hword (0x20<<8) |(1<<NFlag)|(1<<CFlag)\r
2923 .hword (0x21<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2924 .hword (0x22<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2925 .hword (0x23<<8) |(1<<NFlag)|(1<<CFlag)\r
2926 .hword (0x24<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2927 .hword (0x25<<8) |(1<<NFlag)|(1<<CFlag)\r
2928 .hword (0x26<<8) |(1<<NFlag)|(1<<CFlag)\r
2929 .hword (0x27<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2930 .hword (0x28<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2931 .hword (0x29<<8) |(1<<NFlag)|(1<<CFlag)\r
2932 .hword (0x24<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2933 .hword (0x25<<8) |(1<<NFlag)|(1<<CFlag)\r
2934 .hword (0x26<<8) |(1<<NFlag)|(1<<CFlag)\r
2935 .hword (0x27<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2936 .hword (0x28<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2937 .hword (0x29<<8) |(1<<NFlag)|(1<<CFlag)\r
2938 .hword (0x30<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2939 .hword (0x31<<8) |(1<<NFlag)|(1<<CFlag)\r
2940 .hword (0x32<<8) |(1<<NFlag)|(1<<CFlag)\r
2941 .hword (0x33<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2942 .hword (0x34<<8) |(1<<NFlag)|(1<<CFlag)\r
2943 .hword (0x35<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2944 .hword (0x36<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2945 .hword (0x37<<8) |(1<<NFlag)|(1<<CFlag)\r
2946 .hword (0x38<<8) |(1<<NFlag)|(1<<CFlag)\r
2947 .hword (0x39<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2948 .hword (0x34<<8) |(1<<NFlag)|(1<<CFlag)\r
2949 .hword (0x35<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2950 .hword (0x36<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2951 .hword (0x37<<8) |(1<<NFlag)|(1<<CFlag)\r
2952 .hword (0x38<<8) |(1<<NFlag)|(1<<CFlag)\r
2953 .hword (0x39<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2954 .hword (0x40<<8) |(1<<NFlag)|(1<<CFlag)\r
2955 .hword (0x41<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2956 .hword (0x42<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2957 .hword (0x43<<8) |(1<<NFlag)|(1<<CFlag)\r
2958 .hword (0x44<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2959 .hword (0x45<<8) |(1<<NFlag)|(1<<CFlag)\r
2960 .hword (0x46<<8) |(1<<NFlag)|(1<<CFlag)\r
2961 .hword (0x47<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2962 .hword (0x48<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2963 .hword (0x49<<8) |(1<<NFlag)|(1<<CFlag)\r
2964 .hword (0x44<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2965 .hword (0x45<<8) |(1<<NFlag)|(1<<CFlag)\r
2966 .hword (0x46<<8) |(1<<NFlag)|(1<<CFlag)\r
2967 .hword (0x47<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2968 .hword (0x48<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2969 .hword (0x49<<8) |(1<<NFlag)|(1<<CFlag)\r
2970 .hword (0x50<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2971 .hword (0x51<<8) |(1<<NFlag)|(1<<CFlag)\r
2972 .hword (0x52<<8) |(1<<NFlag)|(1<<CFlag)\r
2973 .hword (0x53<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2974 .hword (0x54<<8) |(1<<NFlag)|(1<<CFlag)\r
2975 .hword (0x55<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2976 .hword (0x56<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2977 .hword (0x57<<8) |(1<<NFlag)|(1<<CFlag)\r
2978 .hword (0x58<<8) |(1<<NFlag)|(1<<CFlag)\r
2979 .hword (0x59<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2980 .hword (0x54<<8) |(1<<NFlag)|(1<<CFlag)\r
2981 .hword (0x55<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2982 .hword (0x56<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2983 .hword (0x57<<8) |(1<<NFlag)|(1<<CFlag)\r
2984 .hword (0x58<<8) |(1<<NFlag)|(1<<CFlag)\r
2985 .hword (0x59<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2986 .hword (0x60<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2987 .hword (0x61<<8) |(1<<NFlag)|(1<<CFlag)\r
2988 .hword (0x62<<8) |(1<<NFlag)|(1<<CFlag)\r
2989 .hword (0x63<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2990 .hword (0x64<<8) |(1<<NFlag)|(1<<CFlag)\r
2991 .hword (0x65<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2992 .hword (0x66<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2993 .hword (0x67<<8) |(1<<NFlag)|(1<<CFlag)\r
2994 .hword (0x68<<8) |(1<<NFlag)|(1<<CFlag)\r
2995 .hword (0x69<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2996 .hword (0x64<<8) |(1<<NFlag)|(1<<CFlag)\r
2997 .hword (0x65<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2998 .hword (0x66<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
2999 .hword (0x67<<8) |(1<<NFlag)|(1<<CFlag)\r
3000 .hword (0x68<<8) |(1<<NFlag)|(1<<CFlag)\r
3001 .hword (0x69<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3002 .hword (0x70<<8) |(1<<NFlag)|(1<<CFlag)\r
3003 .hword (0x71<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3004 .hword (0x72<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3005 .hword (0x73<<8) |(1<<NFlag)|(1<<CFlag)\r
3006 .hword (0x74<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3007 .hword (0x75<<8) |(1<<NFlag)|(1<<CFlag)\r
3008 .hword (0x76<<8) |(1<<NFlag)|(1<<CFlag)\r
3009 .hword (0x77<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3010 .hword (0x78<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3011 .hword (0x79<<8) |(1<<NFlag)|(1<<CFlag)\r
3012 .hword (0x74<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3013 .hword (0x75<<8) |(1<<NFlag)|(1<<CFlag)\r
3014 .hword (0x76<<8) |(1<<NFlag)|(1<<CFlag)\r
3015 .hword (0x77<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3016 .hword (0x78<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3017 .hword (0x79<<8) |(1<<NFlag)|(1<<CFlag)\r
3018 .hword (0x80<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3019 .hword (0x81<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3020 .hword (0x82<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3021 .hword (0x83<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3022 .hword (0x84<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3023 .hword (0x85<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3024 .hword (0x86<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3025 .hword (0x87<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3026 .hword (0x88<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3027 .hword (0x89<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3028 .hword (0x84<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3029 .hword (0x85<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3030 .hword (0x86<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3031 .hword (0x87<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3032 .hword (0x88<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3033 .hword (0x89<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3034 .hword (0x90<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3035 .hword (0x91<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3036 .hword (0x92<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3037 .hword (0x93<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3038 .hword (0x94<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3039 .hword (0x95<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3040 .hword (0x96<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3041 .hword (0x97<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3042 .hword (0x98<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3043 .hword (0x99<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3044 .hword (0x94<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3045 .hword (0x95<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3046 .hword (0x96<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3047 .hword (0x97<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3048 .hword (0x98<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3049 .hword (0x99<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3050 .hword (0xFA<<8)|(1<<SFlag) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag) \r
3051 .hword (0xFB<<8)|(1<<SFlag) |(1<<HFlag) |(1<<NFlag) \r
3052 .hword (0xFC<<8)|(1<<SFlag) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag) \r
3053 .hword (0xFD<<8)|(1<<SFlag) |(1<<HFlag) |(1<<NFlag) \r
3054 .hword (0xFE<<8)|(1<<SFlag) |(1<<HFlag) |(1<<NFlag) \r
3055 .hword (0xFF<<8)|(1<<SFlag) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag) \r
3056 .hword (0x00<<8) |(1<<ZFlag) |(1<<VFlag)|(1<<NFlag) \r
3057 .hword (0x01<<8) |(1<<NFlag) \r
3058 .hword (0x02<<8) |(1<<NFlag) \r
3059 .hword (0x03<<8) |(1<<VFlag)|(1<<NFlag) \r
3060 .hword (0x04<<8) |(1<<NFlag) \r
3061 .hword (0x05<<8) |(1<<VFlag)|(1<<NFlag) \r
3062 .hword (0x06<<8) |(1<<VFlag)|(1<<NFlag) \r
3063 .hword (0x07<<8) |(1<<NFlag) \r
3064 .hword (0x08<<8) |(1<<NFlag) \r
3065 .hword (0x09<<8) |(1<<VFlag)|(1<<NFlag) \r
3066 .hword (0x0A<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag) \r
3067 .hword (0x0B<<8) |(1<<HFlag) |(1<<NFlag) \r
3068 .hword (0x0C<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag) \r
3069 .hword (0x0D<<8) |(1<<HFlag) |(1<<NFlag) \r
3070 .hword (0x0E<<8) |(1<<HFlag) |(1<<NFlag) \r
3071 .hword (0x0F<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag) \r
3072 .hword (0x10<<8) |(1<<NFlag) \r
3073 .hword (0x11<<8) |(1<<VFlag)|(1<<NFlag) \r
3074 .hword (0x12<<8) |(1<<VFlag)|(1<<NFlag) \r
3075 .hword (0x13<<8) |(1<<NFlag) \r
3076 .hword (0x14<<8) |(1<<VFlag)|(1<<NFlag) \r
3077 .hword (0x15<<8) |(1<<NFlag) \r
3078 .hword (0x16<<8) |(1<<NFlag) \r
3079 .hword (0x17<<8) |(1<<VFlag)|(1<<NFlag) \r
3080 .hword (0x18<<8) |(1<<VFlag)|(1<<NFlag) \r
3081 .hword (0x19<<8) |(1<<NFlag) \r
3082 .hword (0x1A<<8) |(1<<HFlag) |(1<<NFlag) \r
3083 .hword (0x1B<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag) \r
3084 .hword (0x1C<<8) |(1<<HFlag) |(1<<NFlag) \r
3085 .hword (0x1D<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag) \r
3086 .hword (0x1E<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag) \r
3087 .hword (0x1F<<8) |(1<<HFlag) |(1<<NFlag) \r
3088 .hword (0x20<<8) |(1<<NFlag) \r
3089 .hword (0x21<<8) |(1<<VFlag)|(1<<NFlag) \r
3090 .hword (0x22<<8) |(1<<VFlag)|(1<<NFlag) \r
3091 .hword (0x23<<8) |(1<<NFlag) \r
3092 .hword (0x24<<8) |(1<<VFlag)|(1<<NFlag) \r
3093 .hword (0x25<<8) |(1<<NFlag) \r
3094 .hword (0x26<<8) |(1<<NFlag) \r
3095 .hword (0x27<<8) |(1<<VFlag)|(1<<NFlag) \r
3096 .hword (0x28<<8) |(1<<VFlag)|(1<<NFlag) \r
3097 .hword (0x29<<8) |(1<<NFlag) \r
3098 .hword (0x2A<<8) |(1<<HFlag) |(1<<NFlag) \r
3099 .hword (0x2B<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag) \r
3100 .hword (0x2C<<8) |(1<<HFlag) |(1<<NFlag) \r
3101 .hword (0x2D<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag) \r
3102 .hword (0x2E<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag) \r
3103 .hword (0x2F<<8) |(1<<HFlag) |(1<<NFlag) \r
3104 .hword (0x30<<8) |(1<<VFlag)|(1<<NFlag) \r
3105 .hword (0x31<<8) |(1<<NFlag) \r
3106 .hword (0x32<<8) |(1<<NFlag) \r
3107 .hword (0x33<<8) |(1<<VFlag)|(1<<NFlag) \r
3108 .hword (0x34<<8) |(1<<NFlag) \r
3109 .hword (0x35<<8) |(1<<VFlag)|(1<<NFlag) \r
3110 .hword (0x36<<8) |(1<<VFlag)|(1<<NFlag) \r
3111 .hword (0x37<<8) |(1<<NFlag) \r
3112 .hword (0x38<<8) |(1<<NFlag) \r
3113 .hword (0x39<<8) |(1<<VFlag)|(1<<NFlag) \r
3114 .hword (0x3A<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag) \r
3115 .hword (0x3B<<8) |(1<<HFlag) |(1<<NFlag) \r
3116 .hword (0x3C<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag) \r
3117 .hword (0x3D<<8) |(1<<HFlag) |(1<<NFlag) \r
3118 .hword (0x3E<<8) |(1<<HFlag) |(1<<NFlag) \r
3119 .hword (0x3F<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag) \r
3120 .hword (0x40<<8) |(1<<NFlag) \r
3121 .hword (0x41<<8) |(1<<VFlag)|(1<<NFlag) \r
3122 .hword (0x42<<8) |(1<<VFlag)|(1<<NFlag) \r
3123 .hword (0x43<<8) |(1<<NFlag) \r
3124 .hword (0x44<<8) |(1<<VFlag)|(1<<NFlag) \r
3125 .hword (0x45<<8) |(1<<NFlag) \r
3126 .hword (0x46<<8) |(1<<NFlag) \r
3127 .hword (0x47<<8) |(1<<VFlag)|(1<<NFlag) \r
3128 .hword (0x48<<8) |(1<<VFlag)|(1<<NFlag) \r
3129 .hword (0x49<<8) |(1<<NFlag) \r
3130 .hword (0x4A<<8) |(1<<HFlag) |(1<<NFlag) \r
3131 .hword (0x4B<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag) \r
3132 .hword (0x4C<<8) |(1<<HFlag) |(1<<NFlag) \r
3133 .hword (0x4D<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag) \r
3134 .hword (0x4E<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag) \r
3135 .hword (0x4F<<8) |(1<<HFlag) |(1<<NFlag) \r
3136 .hword (0x50<<8) |(1<<VFlag)|(1<<NFlag) \r
3137 .hword (0x51<<8) |(1<<NFlag) \r
3138 .hword (0x52<<8) |(1<<NFlag) \r
3139 .hword (0x53<<8) |(1<<VFlag)|(1<<NFlag) \r
3140 .hword (0x54<<8) |(1<<NFlag) \r
3141 .hword (0x55<<8) |(1<<VFlag)|(1<<NFlag) \r
3142 .hword (0x56<<8) |(1<<VFlag)|(1<<NFlag) \r
3143 .hword (0x57<<8) |(1<<NFlag) \r
3144 .hword (0x58<<8) |(1<<NFlag) \r
3145 .hword (0x59<<8) |(1<<VFlag)|(1<<NFlag) \r
3146 .hword (0x5A<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag) \r
3147 .hword (0x5B<<8) |(1<<HFlag) |(1<<NFlag) \r
3148 .hword (0x5C<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag) \r
3149 .hword (0x5D<<8) |(1<<HFlag) |(1<<NFlag) \r
3150 .hword (0x5E<<8) |(1<<HFlag) |(1<<NFlag) \r
3151 .hword (0x5F<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag) \r
3152 .hword (0x60<<8) |(1<<VFlag)|(1<<NFlag) \r
3153 .hword (0x61<<8) |(1<<NFlag) \r
3154 .hword (0x62<<8) |(1<<NFlag) \r
3155 .hword (0x63<<8) |(1<<VFlag)|(1<<NFlag) \r
3156 .hword (0x64<<8) |(1<<NFlag) \r
3157 .hword (0x65<<8) |(1<<VFlag)|(1<<NFlag) \r
3158 .hword (0x66<<8) |(1<<VFlag)|(1<<NFlag) \r
3159 .hword (0x67<<8) |(1<<NFlag) \r
3160 .hword (0x68<<8) |(1<<NFlag) \r
3161 .hword (0x69<<8) |(1<<VFlag)|(1<<NFlag) \r
3162 .hword (0x6A<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag) \r
3163 .hword (0x6B<<8) |(1<<HFlag) |(1<<NFlag) \r
3164 .hword (0x6C<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag) \r
3165 .hword (0x6D<<8) |(1<<HFlag) |(1<<NFlag) \r
3166 .hword (0x6E<<8) |(1<<HFlag) |(1<<NFlag) \r
3167 .hword (0x6F<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag) \r
3168 .hword (0x70<<8) |(1<<NFlag) \r
3169 .hword (0x71<<8) |(1<<VFlag)|(1<<NFlag) \r
3170 .hword (0x72<<8) |(1<<VFlag)|(1<<NFlag) \r
3171 .hword (0x73<<8) |(1<<NFlag) \r
3172 .hword (0x74<<8) |(1<<VFlag)|(1<<NFlag) \r
3173 .hword (0x75<<8) |(1<<NFlag) \r
3174 .hword (0x76<<8) |(1<<NFlag) \r
3175 .hword (0x77<<8) |(1<<VFlag)|(1<<NFlag) \r
3176 .hword (0x78<<8) |(1<<VFlag)|(1<<NFlag) \r
3177 .hword (0x79<<8) |(1<<NFlag) \r
3178 .hword (0x7A<<8) |(1<<HFlag) |(1<<NFlag) \r
3179 .hword (0x7B<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag) \r
3180 .hword (0x7C<<8) |(1<<HFlag) |(1<<NFlag) \r
3181 .hword (0x7D<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag) \r
3182 .hword (0x7E<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag) \r
3183 .hword (0x7F<<8) |(1<<HFlag) |(1<<NFlag) \r
3184 .hword (0x80<<8)|(1<<SFlag) |(1<<NFlag) \r
3185 .hword (0x81<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag) \r
3186 .hword (0x82<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag) \r
3187 .hword (0x83<<8)|(1<<SFlag) |(1<<NFlag) \r
3188 .hword (0x84<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag) \r
3189 .hword (0x85<<8)|(1<<SFlag) |(1<<NFlag) \r
3190 .hword (0x86<<8)|(1<<SFlag) |(1<<NFlag) \r
3191 .hword (0x87<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag) \r
3192 .hword (0x88<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag) \r
3193 .hword (0x89<<8)|(1<<SFlag) |(1<<NFlag) \r
3194 .hword (0x8A<<8)|(1<<SFlag) |(1<<HFlag) |(1<<NFlag) \r
3195 .hword (0x8B<<8)|(1<<SFlag) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag) \r
3196 .hword (0x8C<<8)|(1<<SFlag) |(1<<HFlag) |(1<<NFlag) \r
3197 .hword (0x8D<<8)|(1<<SFlag) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag) \r
3198 .hword (0x8E<<8)|(1<<SFlag) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag) \r
3199 .hword (0x8F<<8)|(1<<SFlag) |(1<<HFlag) |(1<<NFlag) \r
3200 .hword (0x90<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag) \r
3201 .hword (0x91<<8)|(1<<SFlag) |(1<<NFlag) \r
3202 .hword (0x92<<8)|(1<<SFlag) |(1<<NFlag) \r
3203 .hword (0x93<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag) \r
3204 .hword (0x34<<8) |(1<<NFlag)|(1<<CFlag)\r
3205 .hword (0x35<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3206 .hword (0x36<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3207 .hword (0x37<<8) |(1<<NFlag)|(1<<CFlag)\r
3208 .hword (0x38<<8) |(1<<NFlag)|(1<<CFlag)\r
3209 .hword (0x39<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3210 .hword (0x3A<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3211 .hword (0x3B<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3212 .hword (0x3C<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3213 .hword (0x3D<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3214 .hword (0x3E<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3215 .hword (0x3F<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3216 .hword (0x40<<8) |(1<<NFlag)|(1<<CFlag)\r
3217 .hword (0x41<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3218 .hword (0x42<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3219 .hword (0x43<<8) |(1<<NFlag)|(1<<CFlag)\r
3220 .hword (0x44<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3221 .hword (0x45<<8) |(1<<NFlag)|(1<<CFlag)\r
3222 .hword (0x46<<8) |(1<<NFlag)|(1<<CFlag)\r
3223 .hword (0x47<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3224 .hword (0x48<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3225 .hword (0x49<<8) |(1<<NFlag)|(1<<CFlag)\r
3226 .hword (0x4A<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3227 .hword (0x4B<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3228 .hword (0x4C<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3229 .hword (0x4D<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3230 .hword (0x4E<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3231 .hword (0x4F<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3232 .hword (0x50<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3233 .hword (0x51<<8) |(1<<NFlag)|(1<<CFlag)\r
3234 .hword (0x52<<8) |(1<<NFlag)|(1<<CFlag)\r
3235 .hword (0x53<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3236 .hword (0x54<<8) |(1<<NFlag)|(1<<CFlag)\r
3237 .hword (0x55<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3238 .hword (0x56<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3239 .hword (0x57<<8) |(1<<NFlag)|(1<<CFlag)\r
3240 .hword (0x58<<8) |(1<<NFlag)|(1<<CFlag)\r
3241 .hword (0x59<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3242 .hword (0x5A<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3243 .hword (0x5B<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3244 .hword (0x5C<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3245 .hword (0x5D<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3246 .hword (0x5E<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3247 .hword (0x5F<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3248 .hword (0x60<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3249 .hword (0x61<<8) |(1<<NFlag)|(1<<CFlag)\r
3250 .hword (0x62<<8) |(1<<NFlag)|(1<<CFlag)\r
3251 .hword (0x63<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3252 .hword (0x64<<8) |(1<<NFlag)|(1<<CFlag)\r
3253 .hword (0x65<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3254 .hword (0x66<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3255 .hword (0x67<<8) |(1<<NFlag)|(1<<CFlag)\r
3256 .hword (0x68<<8) |(1<<NFlag)|(1<<CFlag)\r
3257 .hword (0x69<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3258 .hword (0x6A<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3259 .hword (0x6B<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3260 .hword (0x6C<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3261 .hword (0x6D<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3262 .hword (0x6E<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3263 .hword (0x6F<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3264 .hword (0x70<<8) |(1<<NFlag)|(1<<CFlag)\r
3265 .hword (0x71<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3266 .hword (0x72<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3267 .hword (0x73<<8) |(1<<NFlag)|(1<<CFlag)\r
3268 .hword (0x74<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3269 .hword (0x75<<8) |(1<<NFlag)|(1<<CFlag)\r
3270 .hword (0x76<<8) |(1<<NFlag)|(1<<CFlag)\r
3271 .hword (0x77<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3272 .hword (0x78<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3273 .hword (0x79<<8) |(1<<NFlag)|(1<<CFlag)\r
3274 .hword (0x7A<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3275 .hword (0x7B<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3276 .hword (0x7C<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3277 .hword (0x7D<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3278 .hword (0x7E<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3279 .hword (0x7F<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3280 .hword (0x80<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3281 .hword (0x81<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3282 .hword (0x82<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3283 .hword (0x83<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3284 .hword (0x84<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3285 .hword (0x85<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3286 .hword (0x86<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3287 .hword (0x87<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3288 .hword (0x88<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3289 .hword (0x89<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3290 .hword (0x8A<<8)|(1<<SFlag) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3291 .hword (0x8B<<8)|(1<<SFlag) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3292 .hword (0x8C<<8)|(1<<SFlag) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3293 .hword (0x8D<<8)|(1<<SFlag) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3294 .hword (0x8E<<8)|(1<<SFlag) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3295 .hword (0x8F<<8)|(1<<SFlag) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3296 .hword (0x90<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3297 .hword (0x91<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3298 .hword (0x92<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3299 .hword (0x93<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3300 .hword (0x94<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3301 .hword (0x95<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3302 .hword (0x96<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3303 .hword (0x97<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3304 .hword (0x98<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3305 .hword (0x99<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3306 .hword (0x9A<<8)|(1<<SFlag) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3307 .hword (0x9B<<8)|(1<<SFlag) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3308 .hword (0x9C<<8)|(1<<SFlag) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3309 .hword (0x9D<<8)|(1<<SFlag) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3310 .hword (0x9E<<8)|(1<<SFlag) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3311 .hword (0x9F<<8)|(1<<SFlag) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3312 .hword (0xA0<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3313 .hword (0xA1<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3314 .hword (0xA2<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3315 .hword (0xA3<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3316 .hword (0xA4<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3317 .hword (0xA5<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3318 .hword (0xA6<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3319 .hword (0xA7<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3320 .hword (0xA8<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3321 .hword (0xA9<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3322 .hword (0xAA<<8)|(1<<SFlag) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3323 .hword (0xAB<<8)|(1<<SFlag) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3324 .hword (0xAC<<8)|(1<<SFlag) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3325 .hword (0xAD<<8)|(1<<SFlag) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3326 .hword (0xAE<<8)|(1<<SFlag) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3327 .hword (0xAF<<8)|(1<<SFlag) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3328 .hword (0xB0<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3329 .hword (0xB1<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3330 .hword (0xB2<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3331 .hword (0xB3<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3332 .hword (0xB4<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3333 .hword (0xB5<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3334 .hword (0xB6<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3335 .hword (0xB7<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3336 .hword (0xB8<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3337 .hword (0xB9<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3338 .hword (0xBA<<8)|(1<<SFlag) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3339 .hword (0xBB<<8)|(1<<SFlag) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3340 .hword (0xBC<<8)|(1<<SFlag) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3341 .hword (0xBD<<8)|(1<<SFlag) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3342 .hword (0xBE<<8)|(1<<SFlag) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3343 .hword (0xBF<<8)|(1<<SFlag) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3344 .hword (0xC0<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3345 .hword (0xC1<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3346 .hword (0xC2<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3347 .hword (0xC3<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3348 .hword (0xC4<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3349 .hword (0xC5<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3350 .hword (0xC6<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3351 .hword (0xC7<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3352 .hword (0xC8<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3353 .hword (0xC9<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3354 .hword (0xCA<<8)|(1<<SFlag) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3355 .hword (0xCB<<8)|(1<<SFlag) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3356 .hword (0xCC<<8)|(1<<SFlag) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3357 .hword (0xCD<<8)|(1<<SFlag) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3358 .hword (0xCE<<8)|(1<<SFlag) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3359 .hword (0xCF<<8)|(1<<SFlag) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3360 .hword (0xD0<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3361 .hword (0xD1<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3362 .hword (0xD2<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3363 .hword (0xD3<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3364 .hword (0xD4<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3365 .hword (0xD5<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3366 .hword (0xD6<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3367 .hword (0xD7<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3368 .hword (0xD8<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3369 .hword (0xD9<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3370 .hword (0xDA<<8)|(1<<SFlag) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3371 .hword (0xDB<<8)|(1<<SFlag) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3372 .hword (0xDC<<8)|(1<<SFlag) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3373 .hword (0xDD<<8)|(1<<SFlag) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3374 .hword (0xDE<<8)|(1<<SFlag) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3375 .hword (0xDF<<8)|(1<<SFlag) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3376 .hword (0xE0<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3377 .hword (0xE1<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3378 .hword (0xE2<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3379 .hword (0xE3<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3380 .hword (0xE4<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3381 .hword (0xE5<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3382 .hword (0xE6<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3383 .hword (0xE7<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3384 .hword (0xE8<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3385 .hword (0xE9<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3386 .hword (0xEA<<8)|(1<<SFlag) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3387 .hword (0xEB<<8)|(1<<SFlag) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3388 .hword (0xEC<<8)|(1<<SFlag) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3389 .hword (0xED<<8)|(1<<SFlag) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3390 .hword (0xEE<<8)|(1<<SFlag) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3391 .hword (0xEF<<8)|(1<<SFlag) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3392 .hword (0xF0<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3393 .hword (0xF1<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3394 .hword (0xF2<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3395 .hword (0xF3<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3396 .hword (0xF4<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3397 .hword (0xF5<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3398 .hword (0xF6<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3399 .hword (0xF7<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3400 .hword (0xF8<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3401 .hword (0xF9<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3402 .hword (0xFA<<8)|(1<<SFlag) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3403 .hword (0xFB<<8)|(1<<SFlag) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3404 .hword (0xFC<<8)|(1<<SFlag) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3405 .hword (0xFD<<8)|(1<<SFlag) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3406 .hword (0xFE<<8)|(1<<SFlag) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3407 .hword (0xFF<<8)|(1<<SFlag) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3408 .hword (0x00<<8) |(1<<ZFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3409 .hword (0x01<<8) |(1<<NFlag)|(1<<CFlag)\r
3410 .hword (0x02<<8) |(1<<NFlag)|(1<<CFlag)\r
3411 .hword (0x03<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3412 .hword (0x04<<8) |(1<<NFlag)|(1<<CFlag)\r
3413 .hword (0x05<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3414 .hword (0x06<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3415 .hword (0x07<<8) |(1<<NFlag)|(1<<CFlag)\r
3416 .hword (0x08<<8) |(1<<NFlag)|(1<<CFlag)\r
3417 .hword (0x09<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3418 .hword (0x0A<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3419 .hword (0x0B<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3420 .hword (0x0C<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3421 .hword (0x0D<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3422 .hword (0x0E<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3423 .hword (0x0F<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3424 .hword (0x10<<8) |(1<<NFlag)|(1<<CFlag)\r
3425 .hword (0x11<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3426 .hword (0x12<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3427 .hword (0x13<<8) |(1<<NFlag)|(1<<CFlag)\r
3428 .hword (0x14<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3429 .hword (0x15<<8) |(1<<NFlag)|(1<<CFlag)\r
3430 .hword (0x16<<8) |(1<<NFlag)|(1<<CFlag)\r
3431 .hword (0x17<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3432 .hword (0x18<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3433 .hword (0x19<<8) |(1<<NFlag)|(1<<CFlag)\r
3434 .hword (0x1A<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3435 .hword (0x1B<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3436 .hword (0x1C<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3437 .hword (0x1D<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3438 .hword (0x1E<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3439 .hword (0x1F<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3440 .hword (0x20<<8) |(1<<NFlag)|(1<<CFlag)\r
3441 .hword (0x21<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3442 .hword (0x22<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3443 .hword (0x23<<8) |(1<<NFlag)|(1<<CFlag)\r
3444 .hword (0x24<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3445 .hword (0x25<<8) |(1<<NFlag)|(1<<CFlag)\r
3446 .hword (0x26<<8) |(1<<NFlag)|(1<<CFlag)\r
3447 .hword (0x27<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3448 .hword (0x28<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3449 .hword (0x29<<8) |(1<<NFlag)|(1<<CFlag)\r
3450 .hword (0x2A<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3451 .hword (0x2B<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3452 .hword (0x2C<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3453 .hword (0x2D<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3454 .hword (0x2E<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3455 .hword (0x2F<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3456 .hword (0x30<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3457 .hword (0x31<<8) |(1<<NFlag)|(1<<CFlag)\r
3458 .hword (0x32<<8) |(1<<NFlag)|(1<<CFlag)\r
3459 .hword (0x33<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3460 .hword (0x34<<8) |(1<<NFlag)|(1<<CFlag)\r
3461 .hword (0x35<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3462 .hword (0x36<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3463 .hword (0x37<<8) |(1<<NFlag)|(1<<CFlag)\r
3464 .hword (0x38<<8) |(1<<NFlag)|(1<<CFlag)\r
3465 .hword (0x39<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3466 .hword (0x3A<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3467 .hword (0x3B<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3468 .hword (0x3C<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3469 .hword (0x3D<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3470 .hword (0x3E<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3471 .hword (0x3F<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3472 .hword (0x40<<8) |(1<<NFlag)|(1<<CFlag)\r
3473 .hword (0x41<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3474 .hword (0x42<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3475 .hword (0x43<<8) |(1<<NFlag)|(1<<CFlag)\r
3476 .hword (0x44<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3477 .hword (0x45<<8) |(1<<NFlag)|(1<<CFlag)\r
3478 .hword (0x46<<8) |(1<<NFlag)|(1<<CFlag)\r
3479 .hword (0x47<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3480 .hword (0x48<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3481 .hword (0x49<<8) |(1<<NFlag)|(1<<CFlag)\r
3482 .hword (0x4A<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3483 .hword (0x4B<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3484 .hword (0x4C<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3485 .hword (0x4D<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3486 .hword (0x4E<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3487 .hword (0x4F<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3488 .hword (0x50<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3489 .hword (0x51<<8) |(1<<NFlag)|(1<<CFlag)\r
3490 .hword (0x52<<8) |(1<<NFlag)|(1<<CFlag)\r
3491 .hword (0x53<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3492 .hword (0x54<<8) |(1<<NFlag)|(1<<CFlag)\r
3493 .hword (0x55<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3494 .hword (0x56<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3495 .hword (0x57<<8) |(1<<NFlag)|(1<<CFlag)\r
3496 .hword (0x58<<8) |(1<<NFlag)|(1<<CFlag)\r
3497 .hword (0x59<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3498 .hword (0x5A<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3499 .hword (0x5B<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3500 .hword (0x5C<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3501 .hword (0x5D<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3502 .hword (0x5E<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3503 .hword (0x5F<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3504 .hword (0x60<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3505 .hword (0x61<<8) |(1<<NFlag)|(1<<CFlag)\r
3506 .hword (0x62<<8) |(1<<NFlag)|(1<<CFlag)\r
3507 .hword (0x63<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3508 .hword (0x64<<8) |(1<<NFlag)|(1<<CFlag)\r
3509 .hword (0x65<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3510 .hword (0x66<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3511 .hword (0x67<<8) |(1<<NFlag)|(1<<CFlag)\r
3512 .hword (0x68<<8) |(1<<NFlag)|(1<<CFlag)\r
3513 .hword (0x69<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3514 .hword (0x6A<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3515 .hword (0x6B<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3516 .hword (0x6C<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3517 .hword (0x6D<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3518 .hword (0x6E<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3519 .hword (0x6F<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3520 .hword (0x70<<8) |(1<<NFlag)|(1<<CFlag)\r
3521 .hword (0x71<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3522 .hword (0x72<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3523 .hword (0x73<<8) |(1<<NFlag)|(1<<CFlag)\r
3524 .hword (0x74<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3525 .hword (0x75<<8) |(1<<NFlag)|(1<<CFlag)\r
3526 .hword (0x76<<8) |(1<<NFlag)|(1<<CFlag)\r
3527 .hword (0x77<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3528 .hword (0x78<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3529 .hword (0x79<<8) |(1<<NFlag)|(1<<CFlag)\r
3530 .hword (0x7A<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3531 .hword (0x7B<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3532 .hword (0x7C<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3533 .hword (0x7D<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3534 .hword (0x7E<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3535 .hword (0x7F<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3536 .hword (0x80<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3537 .hword (0x81<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3538 .hword (0x82<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3539 .hword (0x83<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3540 .hword (0x84<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3541 .hword (0x85<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3542 .hword (0x86<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3543 .hword (0x87<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3544 .hword (0x88<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3545 .hword (0x89<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3546 .hword (0x8A<<8)|(1<<SFlag) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3547 .hword (0x8B<<8)|(1<<SFlag) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3548 .hword (0x8C<<8)|(1<<SFlag) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3549 .hword (0x8D<<8)|(1<<SFlag) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3550 .hword (0x8E<<8)|(1<<SFlag) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3551 .hword (0x8F<<8)|(1<<SFlag) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
3552 .hword (0x90<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3553 .hword (0x91<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3554 .hword (0x92<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3555 .hword (0x93<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3556 .hword (0x94<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3557 .hword (0x95<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3558 .hword (0x96<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3559 .hword (0x97<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3560 .hword (0x98<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
3561 .hword (0x99<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
3562 \r
3563.align 4\r
3564\r
3565AF_Z80: .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 0\r
3566 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 1\r
3567 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 2\r
3568 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 3\r
3569 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 4\r
3570 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 5\r
3571 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 6\r
3572 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 7\r
3573 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 8\r
3574 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 9\r
3575 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 10\r
3576 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 11\r
3577 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 12\r
3578 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 13\r
3579 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 14\r
3580 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 15\r
3581 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 16\r
3582 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 17\r
3583 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 18\r
3584 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 19\r
3585 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 20\r
3586 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 21\r
3587 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 22\r
3588 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 23\r
3589 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 24\r
3590 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 25\r
3591 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 26\r
3592 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 27\r
3593 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 28\r
3594 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 29\r
3595 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 30\r
3596 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 31\r
3597 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 32\r
3598 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 33\r
3599 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 34\r
3600 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 35\r
3601 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 36\r
3602 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 37\r
3603 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 38\r
3604 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 39\r
3605 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 40\r
3606 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 41\r
3607 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 42\r
3608 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 43\r
3609 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 44\r
3610 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 45\r
3611 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 46\r
3612 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 47\r
3613 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 48\r
3614 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 49\r
3615 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 50\r
3616 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 51\r
3617 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 52\r
3618 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 53\r
3619 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 54\r
3620 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 55\r
3621 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 56\r
3622 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 57\r
3623 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 58\r
3624 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 59\r
3625 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 60\r
3626 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 61\r
3627 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 62\r
3628 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 63\r
3629 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 64\r
3630 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 65\r
3631 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 66\r
3632 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 67\r
3633 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 68\r
3634 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 69\r
3635 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 70\r
3636 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 71\r
3637 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 72\r
3638 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 73\r
3639 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 74\r
3640 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 75\r
3641 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 76\r
3642 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 77\r
3643 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 78\r
3644 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 79\r
3645 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 80\r
3646 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 81\r
3647 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 82\r
3648 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 83\r
3649 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 84\r
3650 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 85\r
3651 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 86\r
3652 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 87\r
3653 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 88\r
3654 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 89\r
3655 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 90\r
3656 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 91\r
3657 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 92\r
3658 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 93\r
3659 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 94\r
3660 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 95\r
3661 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 96\r
3662 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 97\r
3663 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 98\r
3664 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 99\r
3665 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 100\r
3666 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 101\r
3667 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 102\r
3668 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 103\r
3669 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 104\r
3670 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 105\r
3671 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 106\r
3672 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 107\r
3673 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 108\r
3674 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 109\r
3675 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 110\r
3676 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 111\r
3677 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 112\r
3678 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 113\r
3679 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 114\r
3680 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 115\r
3681 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 116\r
3682 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 117\r
3683 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 118\r
3684 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 119\r
3685 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 120\r
3686 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 121\r
3687 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 122\r
3688 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 123\r
3689 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 124\r
3690 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 125\r
3691 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 126\r
3692 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 127\r
3693 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 128\r
3694 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 129\r
3695 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 130\r
3696 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 131\r
3697 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 132\r
3698 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 133\r
3699 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 134\r
3700 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 135\r
3701 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 136\r
3702 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 137\r
3703 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 138\r
3704 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 139\r
3705 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 140\r
3706 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 141\r
3707 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 142\r
3708 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 143\r
3709 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 144\r
3710 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 145\r
3711 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 146\r
3712 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 147\r
3713 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 148\r
3714 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 149\r
3715 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 150\r
3716 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 151\r
3717 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 152\r
3718 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 153\r
3719 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 154\r
3720 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 155\r
3721 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 156\r
3722 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 157\r
3723 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 158\r
3724 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 159\r
3725 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 160\r
3726 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 161\r
3727 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 162\r
3728 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 163\r
3729 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 164\r
3730 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 165\r
3731 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 166\r
3732 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 167\r
3733 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 168\r
3734 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 169\r
3735 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 170\r
3736 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 171\r
3737 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 172\r
3738 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 173\r
3739 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 174\r
3740 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 175\r
3741 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 176\r
3742 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 177\r
3743 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 178\r
3744 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 179\r
3745 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 180\r
3746 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 181\r
3747 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 182\r
3748 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 183\r
3749 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 184\r
3750 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 185\r
3751 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 186\r
3752 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 187\r
3753 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 188\r
3754 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 189\r
3755 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 190\r
3756 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 191\r
3757 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 192\r
3758 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 193\r
3759 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 194\r
3760 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 195\r
3761 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 196\r
3762 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 197\r
3763 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 198\r
3764 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 199\r
3765 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 200\r
3766 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 201\r
3767 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 202\r
3768 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 203\r
3769 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 204\r
3770 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 205\r
3771 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 206\r
3772 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 207\r
3773 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 208\r
3774 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 209\r
3775 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 210\r
3776 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 211\r
3777 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 212\r
3778 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 213\r
3779 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 214\r
3780 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 215\r
3781 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 216\r
3782 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 217\r
3783 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 218\r
3784 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 219\r
3785 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 220\r
3786 .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 221\r
3787 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 222\r
3788 .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 223\r
3789 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 224\r
3790 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 225\r
3791 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 226\r
3792 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 227\r
3793 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 228\r
3794 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 229\r
3795 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 230\r
3796 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 231\r
3797 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 232\r
3798 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 233\r
3799 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 234\r
3800 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 235\r
3801 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 236\r
3802 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 237\r
3803 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 238\r
3804 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 239\r
3805 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 240\r
3806 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 241\r
3807 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 242\r
3808 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 243\r
3809 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 244\r
3810 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 245\r
3811 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 246\r
3812 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 247\r
3813 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 248\r
3814 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 249\r
3815 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 250\r
3816 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 251\r
3817 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 252\r
3818 .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 253\r
3819 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 254\r
3820 .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 255\r
3821\r
3822.align 4\r
3823\r
3824AF_ARM: .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 0\r
3825 .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 1\r
3826 .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 2\r
3827 .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 3\r
3828 .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 4\r
3829 .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 5\r
3830 .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 6\r
3831 .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 7\r
3832 .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 8\r
3833 .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 9\r
3834 .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 10\r
3835 .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 11\r
3836 .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 12\r
3837 .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 13\r
3838 .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 14\r
3839 .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 15\r
3840 .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 16\r
3841 .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 17\r
3842 .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 18\r
3843 .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 19\r
3844 .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 20\r
3845 .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 21\r
3846 .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 22\r
3847 .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 23\r
3848 .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 24\r
3849 .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 25\r
3850 .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 26\r
3851 .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 27\r
3852 .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 28\r
3853 .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 29\r
3854 .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 30\r
3855 .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 31\r
3856 .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 32\r
3857 .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 33\r
3858 .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 34\r
3859 .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 35\r
3860 .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 36\r
3861 .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 37\r
3862 .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 38\r
3863 .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 39\r
3864 .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 40\r
3865 .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 41\r
3866 .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 42\r
3867 .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 43\r
3868 .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 44\r
3869 .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 45\r
3870 .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 46\r
3871 .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 47\r
3872 .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 48\r
3873 .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 49\r
3874 .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 50\r
3875 .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 51\r
3876 .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 52\r
3877 .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 53\r
3878 .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 54\r
3879 .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 55\r
3880 .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 56\r
3881 .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 57\r
3882 .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 58\r
3883 .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 59\r
3884 .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 60\r
3885 .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 61\r
3886 .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 62\r
3887 .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 63\r
3888 .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 64\r
3889 .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 65\r
3890 .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 66\r
3891 .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 67\r
3892 .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 68\r
3893 .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 69\r
3894 .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 70\r
3895 .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 71\r
3896 .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 72\r
3897 .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 73\r
3898 .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 74\r
3899 .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 75\r
3900 .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 76\r
3901 .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 77\r
3902 .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 78\r
3903 .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 79\r
3904 .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 80\r
3905 .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 81\r
3906 .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 82\r
3907 .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 83\r
3908 .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 84\r
3909 .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 85\r
3910 .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 86\r
3911 .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 87\r
3912 .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 88\r
3913 .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 89\r
3914 .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 90\r
3915 .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 91\r
3916 .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 92\r
3917 .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 93\r
3918 .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 94\r
3919 .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 95\r
3920 .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 96\r
3921 .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 97\r
3922 .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 98\r
3923 .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 99\r
3924 .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 100\r
3925 .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 101\r
3926 .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 102\r
3927 .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 103\r
3928 .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 104\r
3929 .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 105\r
3930 .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 106\r
3931 .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 107\r
3932 .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 108\r
3933 .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 109\r
3934 .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 110\r
3935 .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 111\r
3936 .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 112\r
3937 .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 113\r
3938 .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 114\r
3939 .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 115\r
3940 .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 116\r
3941 .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 117\r
3942 .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 118\r
3943 .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 119\r
3944 .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 120\r
3945 .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 121\r
3946 .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 122\r
3947 .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 123\r
3948 .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 124\r
3949 .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 125\r
3950 .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 126\r
3951 .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 127\r
3952 .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 128\r
3953 .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 129\r
3954 .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 130\r
3955 .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 131\r
3956 .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 132\r
3957 .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 133\r
3958 .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 134\r
3959 .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 135\r
3960 .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 136\r
3961 .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 137\r
3962 .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 138\r
3963 .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 139\r
3964 .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 140\r
3965 .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 141\r
3966 .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 142\r
3967 .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 143\r
3968 .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 144\r
3969 .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 145\r
3970 .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 146\r
3971 .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 147\r
3972 .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 148\r
3973 .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 149\r
3974 .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 150\r
3975 .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 151\r
3976 .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 152\r
3977 .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 153\r
3978 .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 154\r
3979 .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 155\r
3980 .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 156\r
3981 .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 157\r
3982 .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 158\r
3983 .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 159\r
3984 .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 160\r
3985 .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 161\r
3986 .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 162\r
3987 .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 163\r
3988 .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 164\r
3989 .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 165\r
3990 .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 166\r
3991 .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 167\r
3992 .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 168\r
3993 .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 169\r
3994 .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 170\r
3995 .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 171\r
3996 .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 172\r
3997 .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 173\r
3998 .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 174\r
3999 .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 175\r
4000 .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 176\r
4001 .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 177\r
4002 .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 178\r
4003 .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 179\r
4004 .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 180\r
4005 .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 181\r
4006 .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 182\r
4007 .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 183\r
4008 .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 184\r
4009 .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 185\r
4010 .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 186\r
4011 .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 187\r
4012 .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 188\r
4013 .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 189\r
4014 .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 190\r
4015 .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 191\r
4016 .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 192\r
4017 .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 193\r
4018 .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 194\r
4019 .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 195\r
4020 .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 196\r
4021 .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 197\r
4022 .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 198\r
4023 .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 199\r
4024 .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 200\r
4025 .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 201\r
4026 .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 202\r
4027 .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 203\r
4028 .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 204\r
4029 .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 205\r
4030 .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 206\r
4031 .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 207\r
4032 .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 208\r
4033 .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 209\r
4034 .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 210\r
4035 .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 211\r
4036 .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 212\r
4037 .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 213\r
4038 .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 214\r
4039 .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 215\r
4040 .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 216\r
4041 .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 217\r
4042 .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 218\r
4043 .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 219\r
4044 .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 220\r
4045 .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 221\r
4046 .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 222\r
4047 .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 223\r
4048 .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 224\r
4049 .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 225\r
4050 .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 226\r
4051 .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 227\r
4052 .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 228\r
4053 .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 229\r
4054 .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 230\r
4055 .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 231\r
4056 .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 232\r
4057 .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 233\r
4058 .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 234\r
4059 .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 235\r
4060 .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 236\r
4061 .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 237\r
4062 .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 238\r
4063 .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 239\r
4064 .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 240\r
4065 .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 241\r
4066 .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 242\r
4067 .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 243\r
4068 .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 244\r
4069 .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 245\r
4070 .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 246\r
4071 .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 247\r
4072 .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 248\r
4073 .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 249\r
4074 .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 250\r
4075 .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 251\r
4076 .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 252\r
4077 .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 253\r
4078 .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 254\r
4079 .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 255\r
4080\r
4081.align 4\r
4082\r
4083PZSTable_data: .byte (1<<ZFlag)|(1<<VFlag),0,0,(1<<VFlag),0,(1<<VFlag),(1<<VFlag),0\r
4084 .byte 0,(1<<VFlag),(1<<VFlag),0,(1<<VFlag),0,0,(1<<VFlag)\r
4085 .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
4086 .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
4087 .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
4088 .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
4089 .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
4090 .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
4091 .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
4092 .byte (1<<SFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)\r
4093 .byte (1<<SFlag)|(1<<VFlag),(1<<SFlag),(1<<SFlag),(1<<SFlag)|(1<<VFlag)\r
4094 .byte (1<<SFlag)|(1<<VFlag),(1<<SFlag),(1<<SFlag),(1<<SFlag)|(1<<VFlag)\r
4095 .byte (1<<SFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)\r
4096 .byte (1<<SFlag)|(1<<VFlag),(1<<SFlag),(1<<SFlag),(1<<SFlag)|(1<<VFlag)\r
4097 .byte (1<<SFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)\r
4098 .byte (1<<SFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)\r
4099 .byte (1<<SFlag)|(1<<VFlag),(1<<SFlag),(1<<SFlag),(1<<SFlag)|(1<<VFlag)\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<<VFlag),(1<<SFlag),(1<<SFlag),(1<<SFlag)|(1<<VFlag)\r
4109 .byte (1<<SFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)\r
4110 .byte (1<<SFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)\r
4111 .byte (1<<SFlag)|(1<<VFlag),(1<<SFlag),(1<<SFlag),(1<<SFlag)|(1<<VFlag)\r
4112 .byte (1<<SFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)\r
4113 .byte (1<<SFlag)|(1<<VFlag),(1<<SFlag),(1<<SFlag),(1<<SFlag)|(1<<VFlag)\r
4114 .byte (1<<SFlag)|(1<<VFlag),(1<<SFlag),(1<<SFlag),(1<<SFlag)|(1<<VFlag)\r
4115 .byte (1<<SFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)\r
4116 .byte (1<<SFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)\r
4117 .byte (1<<SFlag)|(1<<VFlag),(1<<SFlag),(1<<SFlag),(1<<SFlag)|(1<<VFlag)\r
4118 .byte (1<<SFlag)|(1<<VFlag),(1<<SFlag),(1<<SFlag),(1<<SFlag)|(1<<VFlag)\r
4119 .byte (1<<SFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)\r
4120 .byte (1<<SFlag)|(1<<VFlag),(1<<SFlag),(1<<SFlag),(1<<SFlag)|(1<<VFlag)\r
4121 .byte (1<<SFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)\r
4122 .byte (1<<SFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)\r
4123 .byte (1<<SFlag)|(1<<VFlag),(1<<SFlag),(1<<SFlag),(1<<SFlag)|(1<<VFlag) \r
4124\r
4125.align 4\r
4126\r
4127MAIN_opcodes: \r
4128 .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
4129 .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
4130 .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
4131 .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
4132 .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
4133 .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
4134 .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
4135 .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
4136 .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
4137 .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
4138 .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
4139 .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
4140 .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
4141 .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
4142 .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
4143 .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
4144 .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
4145 .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
4146 .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
4147 .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
4148 .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
4149 .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
4150 .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
4151 .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
4152 .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
4153 .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
4154 .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
4155 .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
4156 .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
4157 .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
4158 .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
4159 .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
4160\r
4161.align 4\r
4162\r
4163EI_DUMMY_opcodes:\r
4164 .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@0\r
4165 .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@0\r
4166 .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@1\r
4167 .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@1\r
4168 .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@2\r
4169 .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@2\r
4170 .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@3\r
4171 .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@3\r
4172 .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@4\r
4173 .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@4\r
4174 .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@5\r
4175 .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@5\r
4176 .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@6\r
4177 .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@6\r
4178 .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@7\r
4179 .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@7\r
4180 .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@8\r
4181 .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@8\r
4182 .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@9\r
4183 .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@9\r
4184 .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@A\r
4185 .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@A\r
4186 .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@B\r
4187 .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@B\r
4188 .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@C\r
4189 .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@C\r
4190 .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@D\r
4191 .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@D\r
4192 .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@E\r
4193 .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@E\r
4194 .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@F\r
4195 .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@F\r
4196\r
4197.text\r
4198.align 4\r
4199\r
4200;@NOP\r
4201opcode_0_0:\r
4202;@LD B,B\r
4203opcode_4_0:\r
4204;@LD C,C\r
4205opcode_4_9:\r
4206;@LD D,D\r
4207opcode_5_2:\r
4208;@LD E,E\r
4209opcode_5_B:\r
4210;@LD H,H\r
4211opcode_6_4:\r
4212;@LD L,L\r
4213opcode_6_D:\r
4214;@LD A,A\r
4215opcode_7_F:\r
4216 fetch 4\r
4217;@LD BC,NN\r
4218opcode_0_1:\r
4219 ldrb r0,[z80pc],#1\r
4220 ldrb r1,[z80pc],#1\r
4221 orr r0,r0,r1, lsl #8\r
4222 mov z80bc,r0, lsl #16\r
4223 fetch 10\r
4224;@LD (BC),A\r
4225opcode_0_2:\r
4226 mov r0,z80a, lsr #24\r
4227 mov r1,z80bc, lsr #16\r
4228 writemem8\r
4229 fetch 7\r
4230;@INC BC\r
4231opcode_0_3:\r
4232 add z80bc,z80bc,#1<<16\r
4233 fetch 6\r
4234;@INC B\r
4235opcode_0_4:\r
4236 opINC8H z80bc\r
4237 fetch 4\r
4238;@DEC B\r
4239opcode_0_5:\r
4240 opDEC8H z80bc\r
4241 fetch 4\r
4242;@LD B,N\r
4243opcode_0_6:\r
4244 ldrb r1,[z80pc],#1\r
4245 and z80bc,z80bc,#0xFF<<16\r
4246 orr z80bc,z80bc,r1, lsl #24\r
4247 fetch 7\r
4248;@RLCA\r
4249opcode_0_7:\r
4250 bic z80f,z80f,#(1<<NFlag)|(1<<HFlag)|(1<<CFlag)\r
4251 movs z80a,z80a, lsl #1\r
4252 orrcs z80a,z80a,#1<<24\r
4253 orrcs z80f,z80f,#1<<CFlag\r
4254 fetch 4\r
4255;@EX AF,AF'\r
4256opcode_0_8:\r
4257 add r1,cpucontext,#z80a2\r
4258 swp z80a,z80a,[r1]\r
4259 add r1,cpucontext,#z80f2\r
4260 swp z80f,z80f,[r1]\r
4261 fetch 4\r
4262;@ADD HL,BC\r
4263opcode_0_9:\r
4264 opADD16 z80hl z80bc\r
4265 fetch 11\r
4266;@LD A,(BC)\r
4267opcode_0_A:\r
4268 mov r0,z80bc, lsr #16\r
4269 readmem8\r
4270 mov z80a,r0, lsl #24\r
4271 fetch 7\r
4272;@DEC BC\r
4273opcode_0_B:\r
4274 sub z80bc,z80bc,#1<<16\r
4275 fetch 6\r
4276;@INC C\r
4277opcode_0_C:\r
4278 opINC8L z80bc\r
4279 fetch 4\r
4280;@DEC C\r
4281opcode_0_D:\r
4282 opDEC8L z80bc\r
4283 fetch 4\r
4284;@LD C,N\r
4285opcode_0_E:\r
4286 ldrb r1,[z80pc],#1\r
4287 and z80bc,z80bc,#0xFF<<24\r
4288 orr z80bc,z80bc,r1, lsl #16\r
4289 fetch 7\r
4290;@RRCA\r
4291opcode_0_F:\r
4292 bic z80f,z80f,#(1<<NFlag)|(1<<HFlag)|(1<<CFlag)\r
4293 movs z80a,z80a, lsr #25\r
4294 orrcs z80a,z80a,#1<<7\r
4295 orrcs z80f,z80f,#1<<CFlag\r
4296 mov z80a,z80a, lsl #24\r
4297 fetch 4\r
4298;@DJNZ $+2\r
4299opcode_1_0:\r
4300 sub z80bc,z80bc,#1<<24\r
4301 tst z80bc,#0xFF<<24\r
4302 ldrsb r1,[z80pc],#1\r
4303 addne z80pc,z80pc,r1\r
4304 subne z80_icount,z80_icount,#5\r
4305 fetch 8\r
4306\r
4307;@LD DE,NN\r
4308opcode_1_1:\r
4309 ldrb r0,[z80pc],#1\r
4310 ldrb r1,[z80pc],#1\r
4311 orr r0,r0,r1, lsl #8\r
4312 mov z80de,r0, lsl #16\r
4313 fetch 10\r
4314;@LD (DE),A\r
4315opcode_1_2:\r
4316 mov r0,z80a, lsr #24\r
4317 writemem8DE\r
4318 fetch 7\r
4319;@INC DE\r
4320opcode_1_3:\r
4321 add z80de,z80de,#1<<16\r
4322 fetch 6\r
4323;@INC D\r
4324opcode_1_4:\r
4325 opINC8H z80de\r
4326 fetch 4\r
4327;@DEC D\r
4328opcode_1_5:\r
4329 opDEC8H z80de\r
4330 fetch 4\r
4331;@LD D,N\r
4332opcode_1_6:\r
4333 ldrb r1,[z80pc],#1\r
4334 and z80de,z80de,#0xFF<<16\r
4335 orr z80de,z80de,r1, lsl #24\r
4336 fetch 7\r
4337;@RLA\r
4338opcode_1_7:\r
4339 tst z80f,#1<<CFlag\r
4340 orrne z80a,z80a,#1<<23\r
4341 bic z80f,z80f,#(1<<NFlag)|(1<<HFlag)|(1<<CFlag)\r
4342 movs z80a,z80a, lsl #1\r
4343 orrcs z80f,z80f,#1<<CFlag\r
4344 fetch 4\r
4345;@JR $+2\r
4346opcode_1_8:\r
4347 ldrsb r1,[z80pc],#1\r
4348 add z80pc,z80pc,r1\r
4349 fetch 12\r
4350;@ADD HL,DE\r
4351opcode_1_9:\r
4352 opADD16 z80hl z80de\r
4353 fetch 11\r
4354;@LD A,(DE)\r
4355opcode_1_A:\r
4356 mov r0,z80de, lsr #16\r
4357 readmem8\r
4358 mov z80a,r0, lsl #24\r
4359 fetch 7\r
4360;@DEC DE\r
4361opcode_1_B:\r
4362 sub z80de,z80de,#1<<16\r
4363 fetch 6\r
4364;@INC E\r
4365opcode_1_C:\r
4366 opINC8L z80de\r
4367 fetch 4\r
4368;@DEC E\r
4369opcode_1_D:\r
4370 opDEC8L z80de\r
4371 fetch 4\r
4372;@LD E,N\r
4373opcode_1_E:\r
4374 ldrb r0,[z80pc],#1\r
4375 and z80de,z80de,#0xFF<<24\r
4376 orr z80de,z80de,r0, lsl #16\r
4377 fetch 7\r
4378;@RRA\r
4379opcode_1_F:\r
4380 orr z80a,z80a,z80f,lsr#1 ;@get C\r
4381 bic z80f,z80f,#(1<<NFlag)|(1<<HFlag)|(1<<CFlag)\r
4382 movs z80a,z80a,ror#25\r
4383 orrcs z80f,z80f,#1<<CFlag\r
4384 mov z80a,z80a,lsl#24\r
4385 fetch 4\r
4386;@JR NZ,$+2\r
4387opcode_2_0:\r
4388 tst z80f,#1<<ZFlag\r
4389 beq opcode_1_8\r
4390 add z80pc,z80pc,#1\r
4391 fetch 7\r
4392;@LD HL,NN\r
4393opcode_2_1:\r
4394 ldrb r0,[z80pc],#1\r
4395 ldrb r1,[z80pc],#1\r
4396 orr r0,r0,r1, lsl #8\r
4397 mov z80hl,r0, lsl #16\r
4398 fetch 10\r
4399;@LD (NN),HL\r
4400opcode_ED_63:\r
4401 eatcycles 4\r
4402;@LD (NN),HL\r
4403opcode_2_2:\r
4404 ldrb r0,[z80pc],#1\r
4405 ldrb r1,[z80pc],#1\r
4406 orr r1,r0,r1, lsl #8\r
4407 mov r0,z80hl, lsr #16\r
4408 writemem16\r
4409 fetch 16\r
4410;@INC HL\r
4411opcode_2_3:\r
4412 add z80hl,z80hl,#1<<16\r
4413 fetch 6\r
4414;@INC H\r
4415opcode_2_4:\r
4416 opINC8H z80hl\r
4417 fetch 4\r
4418;@DEC H\r
4419opcode_2_5:\r
4420 opDEC8H z80hl\r
4421 fetch 4\r
4422;@LD H,N\r
4423opcode_2_6:\r
4424 ldrb r1,[z80pc],#1\r
4425 and z80hl,z80hl,#0xFF<<16\r
4426 orr z80hl,z80hl,r1, lsl #24\r
4427 fetch 7\r
4428DAATABLE_LOCAL: .word DAATable\r
4429;@DAA\r
4430opcode_2_7:\r
4431 mov r1,z80a, lsr #24\r
4432 tst z80f,#1<<CFlag\r
4433 orrne r1,r1,#256\r
4434 tst z80f,#1<<HFlag\r
4435 orrne r1,r1,#512\r
4436 tst z80f,#1<<NFlag\r
4437 orrne r1,r1,#1024\r
4438 ldr r2,DAATABLE_LOCAL\r
4439 add r2,r2,r1, lsl #1\r
4440 ldrh r1,[r2]\r
4441 and z80f,r1,#0xFF\r
4442 and r2,r1,#0xFF<<8\r
4443 mov z80a,r2, lsl #16\r
4444 fetch 4\r
4445;@JR Z,$+2\r
4446opcode_2_8:\r
4447 tst z80f,#1<<ZFlag\r
4448 bne opcode_1_8\r
4449 add z80pc,z80pc,#1\r
4450 fetch 7\r
4451;@ADD HL,HL\r
4452opcode_2_9:\r
4453 opADD16_2 z80hl\r
4454 fetch 11\r
4455;@LD HL,(NN)\r
4456opcode_ED_6B:\r
4457 eatcycles 4\r
4458;@LD HL,(NN)\r
4459opcode_2_A:\r
4460 ldrb r0,[z80pc],#1\r
4461 ldrb r1,[z80pc],#1\r
4462 orr r0,r0,r1, lsl #8\r
4463 readmem16\r
4464 mov z80hl,r0, lsl #16\r
4465 fetch 16\r
4466;@DEC HL\r
4467opcode_2_B:\r
4468 sub z80hl,z80hl,#1<<16\r
4469 fetch 6\r
4470;@INC L\r
4471opcode_2_C:\r
4472 opINC8L z80hl\r
4473 fetch 4\r
4474;@DEC L\r
4475opcode_2_D:\r
4476 opDEC8L z80hl\r
4477 fetch 4\r
4478;@LD L,N\r
4479opcode_2_E:\r
4480 ldrb r0,[z80pc],#1\r
4481 and z80hl,z80hl,#0xFF<<24\r
4482 orr z80hl,z80hl,r0, lsl #16\r
4483 fetch 7\r
4484;@CPL\r
4485opcode_2_F:\r
4486 eor z80a,z80a,#0xFF<<24\r
4487 orr z80f,z80f,#(1<<NFlag)|(1<<HFlag)\r
4488 fetch 4\r
4489;@JR NC,$+2\r
4490opcode_3_0:\r
4491 tst z80f,#1<<CFlag\r
4492 beq opcode_1_8\r
4493 add z80pc,z80pc,#1\r
4494 fetch 7\r
4495;@LD SP,NN\r
4496opcode_3_1:\r
4497 ldrb r0,[z80pc],#1\r
4498 ldrb r1,[z80pc],#1\r
4499\r
4500.if FAST_Z80SP\r
4501 orr r0,r0,r1, lsl #8\r
4502 rebasesp\r
4503 mov z80sp,r0\r
4504.else\r
4505 orr z80sp,r0,r1, lsl #8\r
4506.endif\r
4507 fetch 10\r
4508;@LD (NN),A\r
4509opcode_3_2:\r
4510 ldrb r0,[z80pc],#1\r
4511 ldrb r1,[z80pc],#1\r
4512 orr r1,r0,r1, lsl #8\r
4513 mov r0,z80a, lsr #24\r
4514 writemem8\r
4515 fetch 13\r
4516;@INC SP\r
4517opcode_3_3:\r
4518 add z80sp,z80sp,#1\r
4519 fetch 6\r
4520;@INC (HL)\r
4521opcode_3_4:\r
4522 readmem8HL\r
4523 opINC8b\r
4524 writemem8HL\r
4525 fetch 11\r
4526;@DEC (HL)\r
4527opcode_3_5:\r
4528 readmem8HL\r
4529 opDEC8b\r
4530 writemem8HL\r
4531 fetch 11\r
4532;@LD (HL),N\r
4533opcode_3_6:\r
4534 ldrb r0,[z80pc],#1\r
4535 writemem8HL\r
4536 fetch 10\r
4537;@SCF\r
4538opcode_3_7:\r
4539 bic z80f,z80f,#(1<<NFlag)|(1<<HFlag)\r
4540 orr z80f,z80f,#1<<CFlag\r
4541 fetch 4\r
4542;@JR C,$+2\r
4543opcode_3_8:\r
4544 tst z80f,#1<<CFlag\r
4545 bne opcode_1_8\r
4546 add z80pc,z80pc,#1\r
28d596af 4547 fetch 7\r
cc68a136 4548;@ADD HL,SP\r
4549opcode_3_9:\r
4550.if FAST_Z80SP\r
4551 ldr r0,[cpucontext,#z80sp_base]\r
4552 sub r0,z80sp,r0\r
4553 opADD16s z80hl r0 16\r
4554.else\r
4555 opADD16s z80hl z80sp 16\r
4556.endif\r
4557 fetch 11\r
4558;@LD A,(NN)\r
4559opcode_3_A:\r
4560 ldrb r0,[z80pc],#1\r
4561 ldrb r1,[z80pc],#1\r
4562 orr r0,r0,r1, lsl #8\r
4563 readmem8\r
4564 mov z80a,r0, lsl #24\r
28d596af 4565 fetch 13\r
cc68a136 4566;@DEC SP\r
4567opcode_3_B:\r
4568 sub z80sp,z80sp,#1\r
4569 fetch 6\r
4570;@INC A\r
4571opcode_3_C:\r
4572 opINC8 z80a\r
4573 fetch 4\r
4574;@DEC A\r
4575opcode_3_D:\r
4576 opDEC8 z80a\r
4577 fetch 4\r
4578;@LD A,N\r
4579opcode_3_E:\r
4580 ldrb r0,[z80pc],#1\r
4581 mov z80a,r0, lsl #24\r
4582 fetch 7\r
4583;@CCF\r
4584opcode_3_F:\r
4585 bic z80f,z80f,#(1<<NFlag)|(1<<HFlag)\r
4586 tst z80f,#1<<CFlag\r
4587 orrne z80f,z80f,#1<<HFlag\r
4588 eor z80f,z80f,#1<<CFlag\r
4589 fetch 4\r
4590\r
4591;@LD B,C\r
4592opcode_4_1:\r
4593 and z80bc,z80bc,#0xFF<<16\r
4594 orr z80bc,z80bc,z80bc, lsl #8\r
4595 fetch 4\r
4596;@LD B,D\r
4597opcode_4_2:\r
4598 and z80bc,z80bc,#0xFF<<16\r
4599 and r1,z80de,#0xFF<<24\r
4600 orr z80bc,z80bc,r1\r
4601 fetch 4\r
4602;@LD B,E\r
4603opcode_4_3:\r
4604 and z80bc,z80bc,#0xFF<<16\r
4605 and r1,z80de,#0xFF<<16\r
4606 orr z80bc,z80bc,r1, lsl #8\r
4607 fetch 4\r
4608;@LD B,H\r
4609opcode_4_4:\r
4610 and z80bc,z80bc,#0xFF<<16\r
4611 and r1,z80hl,#0xFF<<24\r
4612 orr z80bc,z80bc,r1\r
4613 fetch 4\r
4614;@LD B,L\r
4615opcode_4_5:\r
4616 and z80bc,z80bc,#0xFF<<16\r
4617 and r1,z80hl,#0xFF<<16\r
4618 orr z80bc,z80bc,r1, lsl #8\r
4619 fetch 4\r
4620;@LD B,(HL)\r
4621opcode_4_6:\r
4622 readmem8HL\r
4623 and z80bc,z80bc,#0xFF<<16\r
4624 orr z80bc,z80bc,r0, lsl #24\r
4625 fetch 7\r
4626;@LD B,A\r
4627opcode_4_7:\r
4628 and z80bc,z80bc,#0xFF<<16\r
4629 orr z80bc,z80bc,z80a\r
4630 fetch 4\r
4631;@LD C,B\r
4632opcode_4_8:\r
4633 and z80bc,z80bc,#0xFF<<24\r
4634 orr z80bc,z80bc,z80bc, lsr #8\r
4635 fetch 4\r
4636;@LD C,D\r
4637opcode_4_A:\r
4638 and z80bc,z80bc,#0xFF<<24\r
4639 and r1,z80de,#0xFF<<24\r
4640 orr z80bc,z80bc,r1, lsr #8\r
4641 fetch 4\r
4642;@LD C,E\r
4643opcode_4_B:\r
4644 and z80bc,z80bc,#0xFF<<24\r
4645 and r1,z80de,#0xFF<<16\r
4646 orr z80bc,z80bc,r1 \r
4647 fetch 4\r
4648;@LD C,H\r
4649opcode_4_C:\r
4650 and z80bc,z80bc,#0xFF<<24\r
4651 and r1,z80hl,#0xFF<<24\r
4652 orr z80bc,z80bc,r1, lsr #8\r
4653 fetch 4\r
4654;@LD C,L\r
4655opcode_4_D:\r
4656 and z80bc,z80bc,#0xFF<<24\r
4657 and r1,z80hl,#0xFF<<16\r
4658 orr z80bc,z80bc,r1 \r
4659 fetch 4\r
4660;@LD C,(HL)\r
4661opcode_4_E:\r
4662 readmem8HL\r
4663 and z80bc,z80bc,#0xFF<<24\r
4664 orr z80bc,z80bc,r0, lsl #16\r
4665 fetch 7\r
4666;@LD C,A\r
4667opcode_4_F:\r
4668 and z80bc,z80bc,#0xFF<<24\r
4669 orr z80bc,z80bc,z80a, lsr #8\r
4670 fetch 4\r
4671;@LD D,B\r
4672opcode_5_0:\r
4673 and z80de,z80de,#0xFF<<16\r
4674 and r1,z80bc,#0xFF<<24\r
4675 orr z80de,z80de,r1\r
4676 fetch 4\r
4677;@LD D,C\r
4678opcode_5_1:\r
4679 and z80de,z80de,#0xFF<<16\r
4680 orr z80de,z80de,z80bc, lsl #8\r
4681 fetch 4\r
4682;@LD D,E\r
4683opcode_5_3:\r
4684 and z80de,z80de,#0xFF<<16\r
4685 orr z80de,z80de,z80de, lsl #8\r
4686 fetch 4\r
4687;@LD D,H\r
4688opcode_5_4:\r
4689 and z80de,z80de,#0xFF<<16\r
4690 and r1,z80hl,#0xFF<<24\r
4691 orr z80de,z80de,r1\r
4692 fetch 4\r
4693;@LD D,L\r
4694opcode_5_5:\r
4695 and z80de,z80de,#0xFF<<16\r
4696 orr z80de,z80de,z80hl, lsl #8\r
4697 fetch 4\r
4698;@LD D,(HL)\r
4699opcode_5_6:\r
4700 readmem8HL\r
4701 and z80de,z80de,#0xFF<<16\r
4702 orr z80de,z80de,r0, lsl #24\r
4703 fetch 7\r
4704;@LD D,A\r
4705opcode_5_7:\r
4706 and z80de,z80de,#0xFF<<16\r
4707 orr z80de,z80de,z80a\r
4708 fetch 4\r
4709;@LD E,B\r
4710opcode_5_8:\r
4711 and z80de,z80de,#0xFF<<24\r
4712 and r1,z80bc,#0xFF<<24\r
4713 orr z80de,z80de,r1, lsr #8\r
4714 fetch 4\r
4715;@LD E,C\r
4716opcode_5_9:\r
4717 and z80de,z80de,#0xFF<<24\r
4718 and r1,z80bc,#0xFF<<16\r
4719 orr z80de,z80de,r1 \r
4720 fetch 4\r
4721;@LD E,D\r
4722opcode_5_A:\r
4723 and z80de,z80de,#0xFF<<24\r
4724 orr z80de,z80de,z80de, lsr #8\r
4725 fetch 4\r
4726;@LD E,H\r
4727opcode_5_C:\r
4728 and z80de,z80de,#0xFF<<24\r
4729 and r1,z80hl,#0xFF<<24\r
4730 orr z80de,z80de,r1, lsr #8\r
4731 fetch 4\r
4732;@LD E,L\r
4733opcode_5_D:\r
4734 and z80de,z80de,#0xFF<<24\r
4735 and r1,z80hl,#0xFF<<16\r
4736 orr z80de,z80de,r1 \r
4737 fetch 4\r
4738;@LD E,(HL)\r
4739opcode_5_E:\r
4740 readmem8HL\r
4741 and z80de,z80de,#0xFF<<24\r
4742 orr z80de,z80de,r0, lsl #16\r
4743 fetch 7\r
4744;@LD E,A\r
4745opcode_5_F:\r
4746 and z80de,z80de,#0xFF<<24\r
4747 orr z80de,z80de,z80a, lsr #8\r
4748 fetch 4\r
4749\r
4750;@LD H,B\r
4751opcode_6_0:\r
4752 and z80hl,z80hl,#0xFF<<16\r
4753 and r1,z80bc,#0xFF<<24\r
4754 orr z80hl,z80hl,r1\r
4755 fetch 4\r
4756;@LD H,C\r
4757opcode_6_1:\r
4758 and z80hl,z80hl,#0xFF<<16\r
4759 orr z80hl,z80hl,z80bc, lsl #8\r
4760 fetch 4\r
4761;@LD H,D\r
4762opcode_6_2:\r
4763 and z80hl,z80hl,#0xFF<<16\r
4764 and r1,z80de,#0xFF<<24\r
4765 orr z80hl,z80hl,r1\r
4766 fetch 4\r
4767;@LD H,E\r
4768opcode_6_3:\r
4769 and z80hl,z80hl,#0xFF<<16\r
4770 orr z80hl,z80hl,z80de, lsl #8\r
4771 fetch 4\r
4772;@LD H,L\r
4773opcode_6_5:\r
4774 and z80hl,z80hl,#0xFF<<16\r
4775 orr z80hl,z80hl,z80hl, lsl #8\r
4776 fetch 4\r
4777;@LD H,(HL)\r
4778opcode_6_6:\r
4779 readmem8HL\r
4780 and z80hl,z80hl,#0xFF<<16\r
4781 orr z80hl,z80hl,r0, lsl #24\r
4782 fetch 7\r
4783;@LD H,A\r
4784opcode_6_7:\r
4785 and z80hl,z80hl,#0xFF<<16\r
4786 orr z80hl,z80hl,z80a\r
4787 fetch 4\r
4788\r
4789;@LD L,B\r
4790opcode_6_8:\r
4791 and z80hl,z80hl,#0xFF<<24\r
4792 and r1,z80bc,#0xFF<<24\r
4793 orr z80hl,z80hl,r1, lsr #8\r
4794 fetch 4\r
4795;@LD L,C\r
4796opcode_6_9:\r
4797 and z80hl,z80hl,#0xFF<<24\r
4798 and r1,z80bc,#0xFF<<16\r
4799 orr z80hl,z80hl,r1\r
4800 fetch 4\r
4801;@LD L,D\r
4802opcode_6_A:\r
4803 and z80hl,z80hl,#0xFF<<24\r
4804 and r1,z80de,#0xFF<<24\r
4805 orr z80hl,z80hl,r1, lsr #8\r
4806 fetch 4\r
4807;@LD L,E\r
4808opcode_6_B:\r
4809 and z80hl,z80hl,#0xFF<<24\r
4810 and r1,z80de,#0xFF<<16\r
4811 orr z80hl,z80hl,r1\r
4812 fetch 4\r
4813;@LD L,H\r
4814opcode_6_C:\r
4815 and z80hl,z80hl,#0xFF<<24\r
4816 orr z80hl,z80hl,z80hl, lsr #8\r
4817 fetch 4\r
4818;@LD L,(HL)\r
4819opcode_6_E:\r
4820 readmem8HL\r
4821 and z80hl,z80hl,#0xFF<<24\r
4822 orr z80hl,z80hl,r0, lsl #16\r
4823 fetch 7\r
4824;@LD L,A\r
4825opcode_6_F:\r
4826 and z80hl,z80hl,#0xFF<<24\r
4827 orr z80hl,z80hl,z80a, lsr #8\r
4828 fetch 4\r
4829\r
4830;@LD (HL),B\r
4831opcode_7_0:\r
4832 mov r0,z80bc, lsr #24\r
4833 writemem8HL\r
4834 fetch 7\r
4835;@LD (HL),C\r
4836opcode_7_1:\r
4837 mov r0,z80bc, lsr #16\r
4838 and r0,r0,#0xFF\r
4839 writemem8HL\r
4840 fetch 7\r
4841;@LD (HL),D\r
4842opcode_7_2:\r
4843 mov r0,z80de, lsr #24\r
4844 writemem8HL\r
4845 fetch 7\r
4846;@LD (HL),E\r
4847opcode_7_3:\r
4848 mov r0,z80de, lsr #16\r
4849 and r0,r0,#0xFF\r
4850 writemem8HL\r
4851 fetch 7\r
4852;@LD (HL),H\r
4853opcode_7_4:\r
4854 mov r0,z80hl, lsr #24\r
4855 writemem8HL\r
4856 fetch 7\r
4857;@LD (HL),L\r
4858opcode_7_5:\r
4859 mov r1,z80hl, lsr #16\r
4860 and r0,r1,#0xFF\r
4861 writemem8\r
4862 fetch 7\r
4863;@HALT\r
4864opcode_7_6:\r
4865 sub z80pc,z80pc,#1\r
4866 ldrb r0,[cpucontext,#z80if]\r
4867 orr r0,r0,#Z80_HALT\r
4868 strb r0,[cpucontext,#z80if]\r
28d596af 4869 mov z80_icount,#0\r
cc68a136 4870 b z80_execute_end\r
4871;@LD (HL),A\r
4872opcode_7_7:\r
4873 mov r0,z80a, lsr #24\r
4874 writemem8HL\r
4875 fetch 7\r
4876\r
4877;@LD A,B\r
4878opcode_7_8:\r
4879 and z80a,z80bc,#0xFF<<24\r
4880 fetch 4\r
4881;@LD A,C\r
4882opcode_7_9:\r
4883 mov z80a,z80bc, lsl #8\r
4884 fetch 4\r
4885;@LD A,D\r
4886opcode_7_A:\r
4887 and z80a,z80de,#0xFF<<24\r
4888 fetch 4\r
4889;@LD A,E\r
4890opcode_7_B:\r
4891 mov z80a,z80de, lsl #8\r
4892 fetch 4\r
4893;@LD A,H\r
4894opcode_7_C:\r
4895 and z80a,z80hl,#0xFF<<24\r
4896 fetch 4\r
4897;@LD A,L\r
4898opcode_7_D:\r
4899 mov z80a,z80hl, lsl #8\r
4900 fetch 4\r
4901;@LD A,(HL)\r
4902opcode_7_E:\r
4903 readmem8HL\r
4904 mov z80a,r0, lsl #24\r
4905 fetch 7\r
4906\r
4907;@ADD A,B\r
4908opcode_8_0:\r
4909 opADDH z80bc\r
4910;@ADD A,C\r
4911opcode_8_1:\r
4912 opADDL z80bc\r
4913;@ADD A,D\r
4914opcode_8_2:\r
4915 opADDH z80de\r
4916;@ADD A,E\r
4917opcode_8_3:\r
4918 opADDL z80de\r
4919;@ADD A,H\r
4920opcode_8_4:\r
4921 opADDH z80hl\r
4922;@ADD A,L\r
4923opcode_8_5:\r
4924 opADDL z80hl\r
4925;@ADD A,(HL)\r
4926opcode_8_6:\r
4927 readmem8HL\r
4928 opADDb\r
4929 fetch 7\r
4930;@ADD A,A\r
4931opcode_8_7:\r
4932 opADDA\r
4933\r
4934;@ADC A,B\r
4935opcode_8_8:\r
4936 opADCH z80bc\r
4937;@ADC A,C\r
4938opcode_8_9:\r
4939 opADCL z80bc\r
4940;@ADC A,D\r
4941opcode_8_A:\r
4942 opADCH z80de\r
4943;@ADC A,E\r
4944opcode_8_B:\r
4945 opADCL z80de\r
4946;@ADC A,H\r
4947opcode_8_C:\r
4948 opADCH z80hl\r
4949;@ADC A,L\r
4950opcode_8_D:\r
4951 opADCL z80hl\r
4952;@ADC A,(HL)\r
4953opcode_8_E:\r
4954 readmem8HL\r
4955 opADCb\r
4956 fetch 7\r
4957;@ADC A,A\r
4958opcode_8_F:\r
4959 opADCA\r
4960\r
4961;@SUB B\r
4962opcode_9_0:\r
4963 opSUBH z80bc\r
4964;@SUB C\r
4965opcode_9_1:\r
4966 opSUBL z80bc\r
4967;@SUB D\r
4968opcode_9_2:\r
4969 opSUBH z80de\r
4970;@SUB E\r
4971opcode_9_3:\r
4972 opSUBL z80de\r
4973;@SUB H\r
4974opcode_9_4:\r
4975 opSUBH z80hl\r
4976;@SUB L\r
4977opcode_9_5:\r
4978 opSUBL z80hl\r
4979;@SUB (HL)\r
4980opcode_9_6:\r
4981 readmem8HL\r
4982 opSUBb\r
4983 fetch 7\r
4984;@SUB A\r
4985opcode_9_7:\r
4986 opSUBA\r
4987\r
4988;@SBC B \r
4989opcode_9_8:\r
4990 opSBCH z80bc\r
4991;@SBC C\r
4992opcode_9_9:\r
4993 opSBCL z80bc\r
4994;@SBC D\r
4995opcode_9_A:\r
4996 opSBCH z80de\r
4997;@SBC E\r
4998opcode_9_B:\r
4999 opSBCL z80de\r
5000;@SBC H\r
5001opcode_9_C:\r
5002 opSBCH z80hl\r
5003;@SBC L\r
5004opcode_9_D:\r
5005 opSBCL z80hl\r
5006;@SBC (HL)\r
5007opcode_9_E:\r
5008 readmem8HL\r
5009 opSBCb\r
5010 fetch 7\r
5011;@SBC A\r
5012opcode_9_F:\r
5013 opSBCA\r
5014\r
5015;@AND B\r
5016opcode_A_0:\r
5017 opANDH z80bc\r
5018;@AND C\r
5019opcode_A_1:\r
5020 opANDL z80bc\r
5021;@AND D\r
5022opcode_A_2:\r
5023 opANDH z80de\r
5024;@AND E\r
5025opcode_A_3:\r
5026 opANDL z80de\r
5027;@AND H\r
5028opcode_A_4:\r
5029 opANDH z80hl\r
5030;@AND L\r
5031opcode_A_5:\r
5032 opANDL z80hl\r
5033;@AND (HL)\r
5034opcode_A_6:\r
5035 readmem8HL\r
5036 opANDb\r
5037 fetch 7\r
5038;@AND A\r
5039opcode_A_7:\r
5040 opANDA\r
5041\r
5042;@XOR B\r
5043opcode_A_8:\r
5044 opXORH z80bc\r
5045;@XOR C\r
5046opcode_A_9:\r
5047 opXORL z80bc\r
5048;@XOR D\r
5049opcode_A_A:\r
5050 opXORH z80de\r
5051;@XOR E\r
5052opcode_A_B:\r
5053 opXORL z80de\r
5054;@XOR H\r
5055opcode_A_C:\r
5056 opXORH z80hl\r
5057;@XOR L\r
5058opcode_A_D:\r
5059 opXORL z80hl\r
5060;@XOR (HL)\r
5061opcode_A_E:\r
5062 readmem8HL\r
5063 opXORb\r
5064 fetch 7\r
5065;@XOR A\r
5066opcode_A_F:\r
5067 opXORA\r
5068\r
5069;@OR B\r
5070opcode_B_0:\r
5071 opORH z80bc\r
5072;@OR C\r
5073opcode_B_1:\r
5074 opORL z80bc\r
5075;@OR D\r
5076opcode_B_2:\r
5077 opORH z80de\r
5078;@OR E\r
5079opcode_B_3:\r
5080 opORL z80de\r
5081;@OR H\r
5082opcode_B_4:\r
5083 opORH z80hl\r
5084;@OR L\r
5085opcode_B_5:\r
5086 opORL z80hl\r
5087;@OR (HL)\r
5088opcode_B_6:\r
5089 readmem8HL\r
5090 opORb\r
5091 fetch 7\r
5092;@OR A\r
5093opcode_B_7:\r
5094 opORA\r
5095\r
5096;@CP B\r
5097opcode_B_8:\r
5098 opCPH z80bc\r
5099;@CP C\r
5100opcode_B_9:\r
5101 opCPL z80bc\r
5102;@CP D\r
5103opcode_B_A:\r
5104 opCPH z80de\r
5105;@CP E\r
5106opcode_B_B:\r
5107 opCPL z80de\r
5108;@CP H\r
5109opcode_B_C:\r
5110 opCPH z80hl\r
5111;@CP L\r
5112opcode_B_D:\r
5113 opCPL z80hl\r
5114;@CP (HL)\r
5115opcode_B_E:\r
5116 readmem8HL\r
5117 opCPb\r
5118 fetch 7\r
5119;@CP A\r
5120opcode_B_F:\r
5121 opCPA\r
5122\r
5123;@RET NZ\r
5124opcode_C_0:\r
5125 tst z80f,#1<<ZFlag\r
28d596af 5126 beq opcode_C_9_cond ;@unconditional RET\r
cc68a136 5127 fetch 5\r
5128\r
5129;@POP BC\r
5130opcode_C_1:\r
5131 opPOPreg z80bc\r
5132\r
5133;@JP NZ,$+3\r
5134opcode_C_2:\r
5135 tst z80f,#1<<ZFlag\r
5136 beq opcode_C_3 ;@unconditional JP\r
5137 add z80pc,z80pc,#2\r
5138 fetch 10\r
5139;@JP $+3\r
5140opcode_C_3:\r
5141 ldrb r0,[z80pc],#1\r
5142 ldrb r1,[z80pc],#1\r
5143 orr r0,r0,r1, lsl #8\r
5144 rebasepc\r
5145 fetch 10\r
5146;@CALL NZ,NN\r
5147opcode_C_4:\r
5148 tst z80f,#1<<ZFlag\r
5149 beq opcode_C_D ;@unconditional CALL\r
5150 add z80pc,z80pc,#2\r
5151 fetch 10\r
5152\r
5153;@PUSH BC\r
5154opcode_C_5:\r
5155 opPUSHreg z80bc\r
5156 fetch 11\r
5157;@ADD A,N\r
5158opcode_C_6:\r
5159 ldrb r0,[z80pc],#1\r
5160 opADDb\r
5161 fetch 7\r
5162;@RST 0\r
5163opcode_C_7:\r
5164 opRST 0x00\r
5165\r
5166;@RET Z\r
5167opcode_C_8:\r
5168 tst z80f,#1<<ZFlag\r
28d596af 5169 bne opcode_C_9_cond ;@unconditional RET\r
cc68a136 5170 fetch 5\r
28d596af 5171\r
5172opcode_C_9_cond:\r
de89bf45 5173 eatcycles 1\r
cc68a136 5174;@RET\r
5175opcode_C_9:\r
5176 opPOP\r
5177 rebasepc\r
5178 fetch 10\r
5179;@JP Z,$+3\r
5180opcode_C_A:\r
5181 tst z80f,#1<<ZFlag\r
5182 bne opcode_C_3 ;@unconditional JP\r
5183 add z80pc,z80pc,#2\r
5184 fetch 10\r
5185\r
5186;@This reads this opcodes_CB lookup table to find the location of\r
5187;@the CB sub for the intruction and then branches to that location\r
5188opcode_C_B:\r
5189 ldrb r0,[z80pc],#1\r
5190 ldr pc,[pc,r0, lsl #2]\r
5191opcodes_CB: .word 0x00000000\r
5192 .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
5193 .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
5194 .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
5195 .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
5196 .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
5197 .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
5198 .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
5199 .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
5200 .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
5201 .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
5202 .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
5203 .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
5204 .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
5205 .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
5206 .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
5207 .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
5208 .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
5209 .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
5210 .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
5211 .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
5212 .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
5213 .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
5214 .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
5215 .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
5216 .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
5217 .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
5218 .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
5219 .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
5220 .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
5221 .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
5222 .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
5223 .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
5224\r
5225;@CALL Z,NN\r
5226opcode_C_C:\r
5227 tst z80f,#1<<ZFlag\r
5228 bne opcode_C_D ;@unconditional CALL\r
5229 add z80pc,z80pc,#2\r
5230 fetch 10\r
5231;@CALL NN\r
5232opcode_C_D:\r
5233 ldrb r0,[z80pc],#1\r
5234 ldrb r1,[z80pc],#1\r
5235 ldr r2,[cpucontext,#z80pc_base]\r
5236 sub r2,z80pc,r2\r
5237 orr z80pc,r0,r1, lsl #8\r
5238 opPUSHareg r2\r
5239 mov r0,z80pc\r
5240 rebasepc\r
5241 fetch 17\r
5242;@ADC A,N\r
5243opcode_C_E:\r
5244 ldrb r0,[z80pc],#1\r
5245 opADCb\r
5246 fetch 7\r
5247;@RST 8H\r
5248opcode_C_F:\r
5249 opRST 0x08\r
5250\r
5251;@RET NC\r
5252opcode_D_0:\r
5253 tst z80f,#1<<CFlag\r
28d596af 5254 beq opcode_C_9_cond ;@unconditional RET\r
cc68a136 5255 fetch 5\r
5256;@POP DE\r
5257opcode_D_1:\r
5258 opPOPreg z80de\r
5259\r
5260;@JP NC, $+3\r
5261opcode_D_2 :\r
5262 tst z80f,#1<<CFlag\r
5263 beq opcode_C_3 ;@unconditional JP\r
5264 add z80pc,z80pc,#2\r
5265 fetch 10\r
5266;@OUT (N),A\r
5267opcode_D_3:\r
5268 ldrb r0,[z80pc],#1\r
5269 orr r0,r0,z80a,lsr#16\r
5270 mov r1,z80a, lsr #24\r
5271 opOUT\r
5272 fetch 11\r
5273;@CALL NC,NN\r
5274opcode_D_4:\r
5275 tst z80f,#1<<CFlag\r
5276 beq opcode_C_D ;@unconditional CALL\r
5277 add z80pc,z80pc,#2\r
5278 fetch 10\r
5279;@PUSH DE\r
5280opcode_D_5:\r
5281 opPUSHreg z80de\r
5282 fetch 11\r
5283;@SUB N\r
5284opcode_D_6:\r
5285 ldrb r0,[z80pc],#1\r
5286 opSUBb\r
5287 fetch 7\r
5288\r
5289;@RST 10H\r
5290opcode_D_7:\r
5291 opRST 0x10\r
5292\r
5293;@RET C\r
5294opcode_D_8:\r
5295 tst z80f,#1<<CFlag\r
28d596af 5296 bne opcode_C_9_cond ;@unconditional RET\r
cc68a136 5297 fetch 5\r
5298;@EXX\r
5299opcode_D_9:\r
5300 add r1,cpucontext,#z80bc2\r
5301 swp z80bc,z80bc,[r1]\r
5302 add r1,cpucontext,#z80de2\r
5303 swp z80de,z80de,[r1]\r
5304 add r1,cpucontext,#z80hl2\r
5305 swp z80hl,z80hl,[r1]\r
5306 fetch 4\r
5307;@JP C,$+3\r
5308opcode_D_A:\r
5309 tst z80f,#1<<CFlag\r
5310 bne opcode_C_3 ;@unconditional JP\r
5311 add z80pc,z80pc,#2\r
5312 fetch 10\r
5313;@IN A,(N)\r
5314opcode_D_B:\r
5315 ldrb r0,[z80pc],#1\r
5316 orr r0,r0,z80a,lsr#16\r
5317 opIN\r
5318 mov z80a,r0, lsl #24 ;@ r0 = data read\r
5319 fetch 11\r
5320;@CALL C,NN\r
5321opcode_D_C:\r
5322 tst z80f,#1<<CFlag\r
5323 bne opcode_C_D ;@unconditional CALL\r
5324 add z80pc,z80pc,#2\r
5325 fetch 10\r
5326\r
5327;@opcodes_DD\r
5328opcode_D_D:\r
5329 add z80xx,cpucontext,#z80ix\r
5330 b opcode_D_D_F_D\r
5331opcode_F_D:\r
5332 add z80xx,cpucontext,#z80iy\r
5333opcode_D_D_F_D:\r
5334 ldrb r0,[z80pc],#1\r
5335 ldr pc,[pc,r0, lsl #2]\r
5336opcodes_DD: .word 0x00000000\r
5337 .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
5338 .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
5339 .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
5340 .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
5341 .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
5342 .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
5343 .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
5344 .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
5345 .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
5346 .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
5347 .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
5348 .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
5349 .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
5350 .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
5351 .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
5352 .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
5353 .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
5354 .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
5355 .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
5356 .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
5357 .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
5358 .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
5359 .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
5360 .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
5361 .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
5362 .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
5363 .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
5364 .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
5365 .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
5366 .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
5367 .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
5368 .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
5369\r
5370;@SBC A,N\r
5371opcode_D_E:\r
5372 ldrb r0,[z80pc],#1\r
5373 opSBCb\r
5374 fetch 7\r
5375;@RST 18H\r
5376opcode_D_F:\r
5377 opRST 0x18\r
5378\r
5379;@RET PO\r
5380opcode_E_0:\r
5381 tst z80f,#1<<VFlag\r
28d596af 5382 beq opcode_C_9_cond ;@unconditional RET\r
cc68a136 5383 fetch 5\r
5384;@POP HL\r
5385opcode_E_1:\r
5386 opPOPreg z80hl\r
5387\r
5388;@JP PO,$+3\r
5389opcode_E_2:\r
5390 tst z80f,#1<<VFlag\r
5391 beq opcode_C_3 ;@unconditional JP\r
5392 add z80pc,z80pc,#2\r
5393 fetch 10\r
5394;@EX (SP),HL\r
5395opcode_E_3:\r
5396.if FAST_Z80SP\r
5397 ldrb r0,[z80sp]\r
5398 ldrb r1,[z80sp,#1]\r
5399 orr r0,r0,r1, lsl #8\r
5400 mov r1,z80hl, lsr #24\r
5401 strb r1,[z80sp,#1]\r
5402 mov r1,z80hl, lsr #16\r
5403 strb r1,[z80sp]\r
5404 mov z80hl,r0, lsl #16\r
5405.else\r
5406 mov r0,z80sp\r
5407 readmem16\r
5408 mov r1,r0\r
5409 mov r0,z80hl,lsr#16\r
5410 mov z80hl,r1,lsl#16\r
5411 mov r1,z80sp\r
5412 writemem16\r
5413.endif\r
5414 fetch 19\r
5415;@CALL PO,NN\r
5416opcode_E_4:\r
5417 tst z80f,#1<<VFlag\r
5418 beq opcode_C_D ;@unconditional CALL\r
5419 add z80pc,z80pc,#2\r
5420 fetch 10\r
5421;@PUSH HL\r
5422opcode_E_5:\r
5423 opPUSHreg z80hl\r
5424 fetch 11\r
5425;@AND N\r
5426opcode_E_6:\r
5427 ldrb r0,[z80pc],#1\r
5428 opANDb\r
5429 fetch 7\r
5430;@RST 20H\r
5431opcode_E_7:\r
5432 opRST 0x20\r
5433\r
5434;@RET PE\r
5435opcode_E_8:\r
5436 tst z80f,#1<<VFlag\r
28d596af 5437 bne opcode_C_9_cond ;@unconditional RET\r
cc68a136 5438 fetch 5\r
5439;@JP (HL)\r
5440opcode_E_9:\r
5441 mov r0,z80hl, lsr #16\r
5442 rebasepc\r
5443 fetch 4\r
5444;@JP PE,$+3\r
5445opcode_E_A:\r
5446 tst z80f,#1<<VFlag\r
5447 bne opcode_C_3 ;@unconditional JP\r
5448 add z80pc,z80pc,#2\r
5449 fetch 10\r
5450;@EX DE,HL\r
5451opcode_E_B:\r
5452 mov r1,z80de\r
5453 mov z80de,z80hl\r
5454 mov z80hl,r1\r
5455 fetch 4\r
5456;@CALL PE,NN\r
5457opcode_E_C:\r
5458 tst z80f,#1<<VFlag\r
5459 bne opcode_C_D ;@unconditional CALL\r
5460 add z80pc,z80pc,#2\r
5461 fetch 10\r
5462\r
5463;@This should be caught at start\r
5464opcode_E_D:\r
5465 ldrb r1,[z80pc],#1\r
5466 ldr pc,[pc,r1, lsl #2]\r
5467opcodes_ED: .word 0x00000000\r
5468 .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
5469 .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
5470 .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
5471 .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
5472 .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
5473 .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
5474 .word opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF\r
5475 .word opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF\r
5476 .word opcode_ED_40,opcode_ED_41,opcode_ED_42,opcode_ED_43,opcode_ED_44,opcode_ED_45,opcode_ED_46,opcode_ED_47\r
5477 .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
5478 .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
5479 .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
5480 .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
5481 .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
5482 .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
5483 .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
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_A0,opcode_ED_A1,opcode_ED_A2,opcode_ED_A3,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF\r
5489 .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
5490 .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
5491 .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
5492 .word opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF\r
5493 .word opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF\r
5494 .word opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF\r
5495 .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
5496 .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
5497 .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
5498 .word opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF\r
5499 .word opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF\r
5500\r
5501;@XOR N\r
5502opcode_E_E:\r
5503 ldrb r0,[z80pc],#1\r
5504 opXORb\r
5505 fetch 7\r
5506;@RST 28H\r
5507opcode_E_F:\r
5508 opRST 0x28\r
5509\r
5510;@RET P\r
5511opcode_F_0:\r
5512 tst z80f,#1<<SFlag\r
28d596af 5513 beq opcode_C_9_cond ;@unconditional RET\r
cc68a136 5514 fetch 5\r
5515;@POP AF\r
5516opcode_F_1:\r
5517.if FAST_Z80SP\r
5518 ldrb z80f,[z80sp],#1\r
5519 sub r0,opcodes,#0x200\r
5520 ldrb z80f,[r0,z80f]\r
5521 ldrb z80a,[z80sp],#1\r
5522 mov z80a,z80a, lsl #24\r
5523.else\r
5524 mov r0,z80sp\r
5525 readmem16\r
5526 add z80sp,z80sp,#2\r
5527 and z80a,r0,#0xFF00\r
5528 mov z80a,z80a,lsl#16\r
5529 and z80f,r0,#0xFF\r
5530 sub r0,opcodes,#0x200\r
5531 ldrb z80f,[r0,z80f]\r
5532.endif\r
5533 fetch 10\r
5534;@JP P,$+3\r
5535opcode_F_2:\r
5536 tst z80f,#1<<SFlag\r
5537 beq opcode_C_3 ;@unconditional JP\r
5538 add z80pc,z80pc,#2\r
5539 fetch 10\r
5540;@DI\r
5541opcode_F_3:\r
5542 ldrb r1,[cpucontext,#z80if]\r
5543 bic r1,r1,#(Z80_IF1)|(Z80_IF2)\r
5544 strb r1,[cpucontext,#z80if]\r
5545 fetch 4\r
5546;@CALL P,NN\r
5547opcode_F_4:\r
5548 tst z80f,#1<<SFlag\r
5549 beq opcode_C_D ;@unconditional CALL\r
5550 add z80pc,z80pc,#2\r
5551 fetch 10\r
5552;@PUSH AF\r
5553opcode_F_5:\r
5554 sub r0,opcodes,#0x300\r
5555 ldrb r0,[r0,z80f]\r
5556 orr r2,r0,z80a,lsr#16\r
5557 opPUSHareg r2\r
5558 fetch 11\r
5559;@OR N\r
5560opcode_F_6:\r
5561 ldrb r0,[z80pc],#1\r
5562 opORb\r
5563 fetch 7\r
5564;@RST 30H\r
5565opcode_F_7:\r
5566 opRST 0x30\r
5567\r
5568;@RET M\r
5569opcode_F_8:\r
5570 tst z80f,#1<<SFlag\r
28d596af 5571 bne opcode_C_9_cond ;@unconditional RET\r
cc68a136 5572 fetch 5\r
5573;@LD SP,HL\r
5574opcode_F_9:\r
5575.if FAST_Z80SP\r
5576 mov r0,z80hl, lsr #16\r
5577 rebasesp\r
5578 mov z80sp,r0\r
5579.else\r
5580 mov z80sp,z80hl, lsr #16\r
5581.endif\r
28d596af 5582 fetch 6\r
cc68a136 5583;@JP M,$+3\r
5584opcode_F_A:\r
5585 tst z80f,#1<<SFlag\r
5586 bne opcode_C_3 ;@unconditional JP\r
5587 add z80pc,z80pc,#2\r
5588 fetch 10\r
5589MAIN_opcodes_POINTER: .word MAIN_opcodes\r
5590EI_DUMMY_opcodes_POINTER: .word EI_DUMMY_opcodes\r
5591;@EI\r
5592opcode_F_B:\r
5593 ldrb r1,[cpucontext,#z80if]\r
de89bf45 5594 mov r2,opcodes\r
cc68a136 5595 orr r1,r1,#(Z80_IF1)|(Z80_IF2)\r
5596 strb r1,[cpucontext,#z80if]\r
5597\r
de89bf45 5598 ldrb r0,[z80pc],#1\r
5599 eatcycles 4\r
cc68a136 5600 ldr opcodes,EI_DUMMY_opcodes_POINTER\r
5601 ldr pc,[r2,r0, lsl #2]\r
5602\r
5603ei_return:\r
5604 ;@point that program returns from EI to check interupts\r
5605 ;@an interupt can not be taken directly after a EI opcode\r
5606 ;@ reset z80pc and opcode pointer\r
de89bf45 5607 ldrh r0,[cpucontext,#z80irq] @ 0x4C, irq and IFF bits\r
cc68a136 5608 sub z80pc,z80pc,#1\r
5609 ldr opcodes,MAIN_opcodes_POINTER\r
5610 ;@ check ints\r
de89bf45 5611 tst r0,#0xff\r
5612 movne r0,r0,lsr #8\r
5613 tstne r0,#1\r
5614 blne DoInterrupt\r
5615\r
cc68a136 5616 ;@ continue\r
de89bf45 5617 fetch 0\r
cc68a136 5618\r
5619;@CALL M,NN\r
5620opcode_F_C:\r
5621 tst z80f,#1<<SFlag\r
5622 bne opcode_C_D ;@unconditional CALL\r
5623 add z80pc,z80pc,#2\r
5624 fetch 10\r
5625\r
5626;@SHOULD BE CAUGHT AT START - FD SECTION\r
5627\r
5628;@CP N\r
5629opcode_F_E:\r
5630 ldrb r0,[z80pc],#1\r
5631 opCPb\r
5632 fetch 7\r
5633;@RST 38H\r
5634opcode_F_F:\r
5635 opRST 0x38\r
5636\r
5637\r
5638;@##################################\r
5639;@##################################\r
5640;@### opcodes CB #########################\r
5641;@##################################\r
5642;@##################################\r
5643\r
5644\r
5645;@RLC B\r
5646opcode_CB_00:\r
5647 opRLCH z80bc\r
5648;@RLC C\r
5649opcode_CB_01:\r
5650 opRLCL z80bc\r
5651;@RLC D\r
5652opcode_CB_02:\r
5653 opRLCH z80de\r
5654;@RLC E\r
5655opcode_CB_03:\r
5656 opRLCL z80de\r
5657;@RLC H\r
5658opcode_CB_04:\r
5659 opRLCH z80hl\r
5660;@RLC L\r
5661opcode_CB_05:\r
5662 opRLCL z80hl\r
5663;@RLC (HL)\r
5664opcode_CB_06:\r
5665 readmem8HL\r
5666 opRLCb\r
5667 writemem8HL\r
5668 fetch 15\r
5669;@RLC A\r
5670opcode_CB_07:\r
5671 opRLCA\r
5672\r
5673;@RRC B\r
5674opcode_CB_08:\r
5675 opRRCH z80bc\r
5676;@RRC C\r
5677opcode_CB_09:\r
5678 opRRCL z80bc\r
5679;@RRC D\r
5680opcode_CB_0A:\r
5681 opRRCH z80de\r
5682;@RRC E\r
5683opcode_CB_0B:\r
5684 opRRCL z80de\r
5685;@RRC H\r
5686opcode_CB_0C:\r
5687 opRRCH z80hl\r
5688;@RRC L\r
5689opcode_CB_0D:\r
5690 opRRCL z80hl\r
5691;@RRC (HL)\r
5692opcode_CB_0E :\r
5693 readmem8HL\r
5694 opRRCb\r
5695 writemem8HL\r
5696 fetch 15\r
5697;@RRC A\r
5698opcode_CB_0F:\r
5699 opRRCA\r
5700\r
5701;@RL B\r
5702opcode_CB_10:\r
5703 opRLH z80bc\r
5704;@RL C\r
5705opcode_CB_11:\r
5706 opRLL z80bc\r
5707;@RL D\r
5708opcode_CB_12:\r
5709 opRLH z80de\r
5710;@RL E\r
5711opcode_CB_13:\r
5712 opRLL z80de\r
5713;@RL H\r
5714opcode_CB_14:\r
5715 opRLH z80hl\r
5716;@RL L\r
5717opcode_CB_15:\r
5718 opRLL z80hl\r
5719;@RL (HL)\r
5720opcode_CB_16:\r
5721 readmem8HL\r
5722 opRLb\r
5723 writemem8HL\r
5724 fetch 15\r
5725;@RL A\r
5726opcode_CB_17:\r
5727 opRLA\r
5728\r
5729;@RR B \r
5730opcode_CB_18:\r
5731 opRRH z80bc\r
5732;@RR C\r
5733opcode_CB_19:\r
5734 opRRL z80bc\r
5735;@RR D\r
5736opcode_CB_1A:\r
5737 opRRH z80de\r
5738;@RR E\r
5739opcode_CB_1B:\r
5740 opRRL z80de\r
5741;@RR H\r
5742opcode_CB_1C:\r
5743 opRRH z80hl\r
5744;@RR L\r
5745opcode_CB_1D:\r
5746 opRRL z80hl\r
5747;@RR (HL)\r
5748opcode_CB_1E:\r
5749 readmem8HL\r
5750 opRRb\r
5751 writemem8HL\r
5752 fetch 15\r
5753;@RR A\r
5754opcode_CB_1F:\r
5755 opRRA\r
5756\r
5757;@SLA B\r
5758opcode_CB_20:\r
5759 opSLAH z80bc\r
5760;@SLA C\r
5761opcode_CB_21:\r
5762 opSLAL z80bc\r
5763;@SLA D\r
5764opcode_CB_22:\r
5765 opSLAH z80de\r
5766;@SLA E\r
5767opcode_CB_23:\r
5768 opSLAL z80de\r
5769;@SLA H\r
5770opcode_CB_24:\r
5771 opSLAH z80hl\r
5772;@SLA L\r
5773opcode_CB_25:\r
5774 opSLAL z80hl\r
5775;@SLA (HL)\r
5776opcode_CB_26:\r
5777 readmem8HL\r
5778 opSLAb\r
5779 writemem8HL\r
5780 fetch 15\r
5781;@SLA A\r
5782opcode_CB_27:\r
5783 opSLAA\r
5784\r
5785;@SRA B\r
5786opcode_CB_28:\r
5787 opSRAH z80bc\r
5788;@SRA C\r
5789opcode_CB_29:\r
5790 opSRAL z80bc\r
5791;@SRA D\r
5792opcode_CB_2A:\r
5793 opSRAH z80de\r
5794;@SRA E\r
5795opcode_CB_2B:\r
5796 opSRAL z80de\r
5797;@SRA H\r
5798opcode_CB_2C:\r
5799 opSRAH z80hl\r
5800;@SRA L\r
5801opcode_CB_2D:\r
5802 opSRAL z80hl\r
5803;@SRA (HL)\r
5804opcode_CB_2E:\r
5805 readmem8HL\r
5806 opSRAb\r
5807 writemem8HL\r
5808 fetch 15\r
5809;@SRA A\r
5810opcode_CB_2F:\r
5811 opSRAA\r
5812\r
5813;@SLL B\r
5814opcode_CB_30:\r
5815 opSLLH z80bc\r
5816;@SLL C\r
5817opcode_CB_31:\r
5818 opSLLL z80bc\r
5819;@SLL D\r
5820opcode_CB_32:\r
5821 opSLLH z80de\r
5822;@SLL E\r
5823opcode_CB_33:\r
5824 opSLLL z80de\r
5825;@SLL H\r
5826opcode_CB_34:\r
5827 opSLLH z80hl\r
5828;@SLL L\r
5829opcode_CB_35:\r
5830 opSLLL z80hl\r
5831;@SLL (HL)\r
5832opcode_CB_36:\r
5833 readmem8HL\r
5834 opSLLb\r
5835 writemem8HL\r
5836 fetch 15\r
5837;@SLL A\r
5838opcode_CB_37:\r
5839 opSLLA\r
5840\r
5841;@SRL B\r
5842opcode_CB_38:\r
5843 opSRLH z80bc\r
5844;@SRL C\r
5845opcode_CB_39:\r
5846 opSRLL z80bc\r
5847;@SRL D\r
5848opcode_CB_3A:\r
5849 opSRLH z80de\r
5850;@SRL E\r
5851opcode_CB_3B:\r
5852 opSRLL z80de\r
5853;@SRL H\r
5854opcode_CB_3C:\r
5855 opSRLH z80hl\r
5856;@SRL L\r
5857opcode_CB_3D:\r
5858 opSRLL z80hl\r
5859;@SRL (HL)\r
5860opcode_CB_3E:\r
5861 readmem8HL\r
5862 opSRLb\r
5863 writemem8HL\r
5864 fetch 15\r
5865;@SRL A\r
5866opcode_CB_3F:\r
5867 opSRLA\r
5868\r
5869\r
5870;@BIT 0,B\r
5871opcode_CB_40:\r
5872 opBITH z80bc 0\r
5873;@BIT 0,C\r
5874opcode_CB_41:\r
5875 opBITL z80bc 0\r
5876;@BIT 0,D\r
5877opcode_CB_42:\r
5878 opBITH z80de 0\r
5879;@BIT 0,E\r
5880opcode_CB_43:\r
5881 opBITL z80de 0\r
5882;@BIT 0,H\r
5883opcode_CB_44:\r
5884 opBITH z80hl 0\r
5885;@BIT 0,L\r
5886opcode_CB_45:\r
5887 opBITL z80hl 0\r
5888;@BIT 0,(HL)\r
5889opcode_CB_46:\r
5890 readmem8HL\r
5891 opBITb 0\r
5892 fetch 12\r
5893;@BIT 0,A\r
5894opcode_CB_47:\r
5895 opBITH z80a 0\r
5896\r
5897;@BIT 1,B\r
5898opcode_CB_48:\r
5899 opBITH z80bc 1\r
5900;@BIT 1,C\r
5901opcode_CB_49:\r
5902 opBITL z80bc 1\r
5903;@BIT 1,D\r
5904opcode_CB_4A:\r
5905 opBITH z80de 1\r
5906;@BIT 1,E\r
5907opcode_CB_4B:\r
5908 opBITL z80de 1\r
5909;@BIT 1,H\r
5910opcode_CB_4C:\r
5911 opBITH z80hl 1\r
5912;@BIT 1,L\r
5913opcode_CB_4D:\r
5914 opBITL z80hl 1\r
5915;@BIT 1,(HL)\r
5916opcode_CB_4E:\r
5917 readmem8HL\r
5918 opBITb 1\r
5919 fetch 12\r
5920;@BIT 1,A\r
5921opcode_CB_4F:\r
5922 opBITH z80a 1\r
5923\r
5924;@BIT 2,B\r
5925opcode_CB_50:\r
5926 opBITH z80bc 2\r
5927;@BIT 2,C\r
5928opcode_CB_51:\r
5929 opBITL z80bc 2\r
5930;@BIT 2,D\r
5931opcode_CB_52:\r
5932 opBITH z80de 2\r
5933;@BIT 2,E\r
5934opcode_CB_53:\r
5935 opBITL z80de 2\r
5936;@BIT 2,H\r
5937opcode_CB_54:\r
5938 opBITH z80hl 2\r
5939;@BIT 2,L\r
5940opcode_CB_55:\r
5941 opBITL z80hl 2\r
5942;@BIT 2,(HL)\r
5943opcode_CB_56:\r
5944 readmem8HL\r
5945 opBITb 2\r
5946 fetch 12\r
5947;@BIT 2,A\r
5948opcode_CB_57:\r
5949 opBITH z80a 2\r
5950\r
5951;@BIT 3,B\r
5952opcode_CB_58:\r
5953 opBITH z80bc 3\r
5954;@BIT 3,C\r
5955opcode_CB_59:\r
5956 opBITL z80bc 3\r
5957;@BIT 3,D\r
5958opcode_CB_5A:\r
5959 opBITH z80de 3\r
5960;@BIT 3,E\r
5961opcode_CB_5B:\r
5962 opBITL z80de 3\r
5963;@BIT 3,H\r
5964opcode_CB_5C:\r
5965 opBITH z80hl 3\r
5966;@BIT 3,L\r
5967opcode_CB_5D:\r
5968 opBITL z80hl 3\r
5969;@BIT 3,(HL)\r
5970opcode_CB_5E:\r
5971 readmem8HL\r
5972 opBITb 3\r
5973 fetch 12\r
5974;@BIT 3,A\r
5975opcode_CB_5F:\r
5976 opBITH z80a 3\r
5977\r
5978;@BIT 4,B\r
5979opcode_CB_60:\r
5980 opBITH z80bc 4\r
5981;@BIT 4,C\r
5982opcode_CB_61:\r
5983 opBITL z80bc 4\r
5984;@BIT 4,D\r
5985opcode_CB_62:\r
5986 opBITH z80de 4\r
5987;@BIT 4,E\r
5988opcode_CB_63:\r
5989 opBITL z80de 4\r
5990;@BIT 4,H\r
5991opcode_CB_64:\r
5992 opBITH z80hl 4\r
5993;@BIT 4,L\r
5994opcode_CB_65:\r
5995 opBITL z80hl 4\r
5996;@BIT 4,(HL)\r
5997opcode_CB_66:\r
5998 readmem8HL\r
5999 opBITb 4\r
6000 fetch 12\r
6001;@BIT 4,A\r
6002opcode_CB_67:\r
6003 opBITH z80a 4\r
6004\r
6005;@BIT 5,B\r
6006opcode_CB_68:\r
6007 opBITH z80bc 5\r
6008;@BIT 5,C\r
6009opcode_CB_69:\r
6010 opBITL z80bc 5\r
6011;@BIT 5,D\r
6012opcode_CB_6A:\r
6013 opBITH z80de 5\r
6014;@BIT 5,E\r
6015opcode_CB_6B:\r
6016 opBITL z80de 5\r
6017;@BIT 5,H\r
6018opcode_CB_6C:\r
6019 opBITH z80hl 5\r
6020;@BIT 5,L\r
6021opcode_CB_6D:\r
6022 opBITL z80hl 5\r
6023;@BIT 5,(HL)\r
6024opcode_CB_6E:\r
6025 readmem8HL\r
6026 opBITb 5\r
6027 fetch 12\r
6028;@BIT 5,A\r
6029opcode_CB_6F:\r
6030 opBITH z80a 5\r
6031\r
6032;@BIT 6,B\r
6033opcode_CB_70:\r
6034 opBITH z80bc 6\r
6035;@BIT 6,C\r
6036opcode_CB_71:\r
6037 opBITL z80bc 6\r
6038;@BIT 6,D\r
6039opcode_CB_72:\r
6040 opBITH z80de 6\r
6041;@BIT 6,E\r
6042opcode_CB_73:\r
6043 opBITL z80de 6\r
6044;@BIT 6,H\r
6045opcode_CB_74:\r
6046 opBITH z80hl 6\r
6047;@BIT 6,L\r
6048opcode_CB_75:\r
6049 opBITL z80hl 6\r
6050;@BIT 6,(HL)\r
6051opcode_CB_76:\r
6052 readmem8HL\r
6053 opBITb 6\r
6054 fetch 12\r
6055;@BIT 6,A\r
6056opcode_CB_77:\r
6057 opBITH z80a 6\r
6058\r
6059;@BIT 7,B\r
6060opcode_CB_78:\r
6061 opBIT7H z80bc\r
6062;@BIT 7,C\r
6063opcode_CB_79:\r
6064 opBIT7L z80bc\r
6065;@BIT 7,D\r
6066opcode_CB_7A:\r
6067 opBIT7H z80de\r
6068;@BIT 7,E\r
6069opcode_CB_7B:\r
6070 opBIT7L z80de\r
6071;@BIT 7,H\r
6072opcode_CB_7C:\r
6073 opBIT7H z80hl\r
6074;@BIT 7,L\r
6075opcode_CB_7D:\r
6076 opBIT7L z80hl\r
6077;@BIT 7,(HL)\r
6078opcode_CB_7E:\r
6079 readmem8HL\r
6080 opBIT7b\r
6081 fetch 12\r
6082;@BIT 7,A\r
6083opcode_CB_7F:\r
6084 opBIT7H z80a\r
6085\r
6086;@RES 0,B\r
6087opcode_CB_80:\r
6088 bic z80bc,z80bc,#1<<24\r
6089 fetch 8\r
6090;@RES 0,C\r
6091opcode_CB_81:\r
6092 bic z80bc,z80bc,#1<<16\r
6093 fetch 8\r
6094;@RES 0,D\r
6095opcode_CB_82:\r
6096 bic z80de,z80de,#1<<24\r
6097 fetch 8\r
6098;@RES 0,E\r
6099opcode_CB_83:\r
6100 bic z80de,z80de,#1<<16\r
6101 fetch 8\r
6102;@RES 0,H\r
6103opcode_CB_84:\r
6104 bic z80hl,z80hl,#1<<24\r
6105 fetch 8\r
6106;@RES 0,L\r
6107opcode_CB_85:\r
6108 bic z80hl,z80hl,#1<<16\r
6109 fetch 8\r
6110;@RES 0,(HL)\r
6111opcode_CB_86:\r
6112 opRESmemHL 0\r
6113;@RES 0,A\r
6114opcode_CB_87:\r
6115 bic z80a,z80a,#1<<24\r
6116 fetch 8\r
6117\r
6118;@RES 1,B\r
6119opcode_CB_88:\r
6120 bic z80bc,z80bc,#1<<25\r
6121 fetch 8\r
6122;@RES 1,C\r
6123opcode_CB_89:\r
6124 bic z80bc,z80bc,#1<<17\r
6125 fetch 8\r
6126;@RES 1,D\r
6127opcode_CB_8A:\r
6128 bic z80de,z80de,#1<<25\r
6129 fetch 8\r
6130;@RES 1,E\r
6131opcode_CB_8B:\r
6132 bic z80de,z80de,#1<<17\r
6133 fetch 8\r
6134;@RES 1,H\r
6135opcode_CB_8C:\r
6136 bic z80hl,z80hl,#1<<25\r
6137 fetch 8\r
6138;@RES 1,L\r
6139opcode_CB_8D:\r
6140 bic z80hl,z80hl,#1<<17\r
6141 fetch 8\r
6142;@RES 1,(HL)\r
6143opcode_CB_8E:\r
6144 opRESmemHL 1\r
6145;@RES 1,A\r
6146opcode_CB_8F:\r
6147 bic z80a,z80a,#1<<25\r
6148 fetch 8\r
6149\r
6150;@RES 2,B\r
6151opcode_CB_90:\r
6152 bic z80bc,z80bc,#1<<26\r
6153 fetch 8\r
6154;@RES 2,C\r
6155opcode_CB_91:\r
6156 bic z80bc,z80bc,#1<<18\r
6157 fetch 8\r
6158;@RES 2,D\r
6159opcode_CB_92:\r
6160 bic z80de,z80de,#1<<26\r
6161 fetch 8\r
6162;@RES 2,E\r
6163opcode_CB_93:\r
6164 bic z80de,z80de,#1<<18\r
6165 fetch 8\r
6166;@RES 2,H\r
6167opcode_CB_94:\r
6168 bic z80hl,z80hl,#1<<26\r
6169 fetch 8\r
6170;@RES 2,L\r
6171opcode_CB_95:\r
6172 bic z80hl,z80hl,#1<<18\r
6173 fetch 8\r
6174;@RES 2,(HL)\r
6175opcode_CB_96:\r
6176 opRESmemHL 2\r
6177;@RES 2,A\r
6178opcode_CB_97:\r
6179 bic z80a,z80a,#1<<26\r
6180 fetch 8\r
6181\r
6182;@RES 3,B\r
6183opcode_CB_98:\r
6184 bic z80bc,z80bc,#1<<27\r
6185 fetch 8\r
6186;@RES 3,C\r
6187opcode_CB_99:\r
6188 bic z80bc,z80bc,#1<<19\r
6189 fetch 8\r
6190;@RES 3,D\r
6191opcode_CB_9A:\r
6192 bic z80de,z80de,#1<<27\r
6193 fetch 8\r
6194;@RES 3,E\r
6195opcode_CB_9B:\r
6196 bic z80de,z80de,#1<<19\r
6197 fetch 8\r
6198;@RES 3,H\r
6199opcode_CB_9C:\r
6200 bic z80hl,z80hl,#1<<27\r
6201 fetch 8\r
6202;@RES 3,L\r
6203opcode_CB_9D:\r
6204 bic z80hl,z80hl,#1<<19\r
6205 fetch 8\r
6206;@RES 3,(HL)\r
6207opcode_CB_9E:\r
6208 opRESmemHL 3\r
6209;@RES 3,A\r
6210opcode_CB_9F:\r
6211 bic z80a,z80a,#1<<27\r
6212 fetch 8\r
6213\r
6214;@RES 4,B\r
6215opcode_CB_A0:\r
6216 bic z80bc,z80bc,#1<<28\r
6217 fetch 8\r
6218;@RES 4,C\r
6219opcode_CB_A1:\r
6220 bic z80bc,z80bc,#1<<20\r
6221 fetch 8\r
6222;@RES 4,D\r
6223opcode_CB_A2:\r
6224 bic z80de,z80de,#1<<28\r
6225 fetch 8\r
6226;@RES 4,E\r
6227opcode_CB_A3:\r
6228 bic z80de,z80de,#1<<20\r
6229 fetch 8\r
6230;@RES 4,H\r
6231opcode_CB_A4:\r
6232 bic z80hl,z80hl,#1<<28\r
6233 fetch 8\r
6234;@RES 4,L\r
6235opcode_CB_A5:\r
6236 bic z80hl,z80hl,#1<<20\r
6237 fetch 8\r
6238;@RES 4,(HL)\r
6239opcode_CB_A6:\r
6240 opRESmemHL 4\r
6241;@RES 4,A\r
6242opcode_CB_A7:\r
6243 bic z80a,z80a,#1<<28\r
6244 fetch 8\r
6245\r
6246;@RES 5,B\r
6247opcode_CB_A8:\r
6248 bic z80bc,z80bc,#1<<29\r
6249 fetch 8\r
6250;@RES 5,C\r
6251opcode_CB_A9:\r
6252 bic z80bc,z80bc,#1<<21\r
6253 fetch 8\r
6254;@RES 5,D\r
6255opcode_CB_AA:\r
6256 bic z80de,z80de,#1<<29\r
6257 fetch 8\r
6258;@RES 5,E\r
6259opcode_CB_AB:\r
6260 bic z80de,z80de,#1<<21\r
6261 fetch 8\r
6262;@RES 5,H\r
6263opcode_CB_AC:\r
6264 bic z80hl,z80hl,#1<<29\r
6265 fetch 8\r
6266;@RES 5,L\r
6267opcode_CB_AD:\r
6268 bic z80hl,z80hl,#1<<21\r
6269 fetch 8\r
6270;@RES 5,(HL)\r
6271opcode_CB_AE:\r
6272 opRESmemHL 5\r
6273;@RES 5,A\r
6274opcode_CB_AF:\r
6275 bic z80a,z80a,#1<<29\r
6276 fetch 8\r
6277\r
6278;@RES 6,B\r
6279opcode_CB_B0:\r
6280 bic z80bc,z80bc,#1<<30\r
6281 fetch 8\r
6282;@RES 6,C\r
6283opcode_CB_B1:\r
6284 bic z80bc,z80bc,#1<<22\r
6285 fetch 8\r
6286;@RES 6,D\r
6287opcode_CB_B2:\r
6288 bic z80de,z80de,#1<<30\r
6289 fetch 8\r
6290;@RES 6,E\r
6291opcode_CB_B3:\r
6292 bic z80de,z80de,#1<<22\r
6293 fetch 8\r
6294;@RES 6,H\r
6295opcode_CB_B4:\r
6296 bic z80hl,z80hl,#1<<30\r
6297 fetch 8\r
6298;@RES 6,L\r
6299opcode_CB_B5:\r
6300 bic z80hl,z80hl,#1<<22\r
6301 fetch 8\r
6302;@RES 6,(HL)\r
6303opcode_CB_B6:\r
6304 opRESmemHL 6\r
6305;@RES 6,A\r
6306opcode_CB_B7:\r
6307 bic z80a,z80a,#1<<30\r
6308 fetch 8\r
6309\r
6310;@RES 7,B\r
6311opcode_CB_B8:\r
6312 bic z80bc,z80bc,#1<<31\r
6313 fetch 8\r
6314;@RES 7,C\r
6315opcode_CB_B9:\r
6316 bic z80bc,z80bc,#1<<23\r
6317 fetch 8\r
6318;@RES 7,D\r
6319opcode_CB_BA:\r
6320 bic z80de,z80de,#1<<31\r
6321 fetch 8\r
6322;@RES 7,E\r
6323opcode_CB_BB:\r
6324 bic z80de,z80de,#1<<23\r
6325 fetch 8\r
6326;@RES 7,H\r
6327opcode_CB_BC:\r
6328 bic z80hl,z80hl,#1<<31\r
6329 fetch 8\r
6330;@RES 7,L\r
6331opcode_CB_BD:\r
6332 bic z80hl,z80hl,#1<<23\r
6333 fetch 8\r
6334;@RES 7,(HL)\r
6335opcode_CB_BE:\r
6336 opRESmemHL 7\r
6337;@RES 7,A\r
6338opcode_CB_BF:\r
6339 bic z80a,z80a,#1<<31\r
6340 fetch 8\r
6341\r
6342;@SET 0,B\r
6343opcode_CB_C0:\r
6344 orr z80bc,z80bc,#1<<24\r
6345 fetch 8\r
6346;@SET 0,C\r
6347opcode_CB_C1:\r
6348 orr z80bc,z80bc,#1<<16\r
6349 fetch 8\r
6350;@SET 0,D\r
6351opcode_CB_C2:\r
6352 orr z80de,z80de,#1<<24\r
6353 fetch 8\r
6354;@SET 0,E\r
6355opcode_CB_C3:\r
6356 orr z80de,z80de,#1<<16\r
6357 fetch 8\r
6358;@SET 0,H\r
6359opcode_CB_C4:\r
6360 orr z80hl,z80hl,#1<<24\r
6361 fetch 8\r
6362;@SET 0,L\r
6363opcode_CB_C5:\r
6364 orr z80hl,z80hl,#1<<16\r
6365 fetch 8\r
6366;@SET 0,(HL)\r
6367opcode_CB_C6:\r
6368 opSETmemHL 0\r
6369;@SET 0,A\r
6370opcode_CB_C7:\r
6371 orr z80a,z80a,#1<<24\r
6372 fetch 8\r
6373\r
6374;@SET 1,B\r
6375opcode_CB_C8:\r
6376 orr z80bc,z80bc,#1<<25\r
6377 fetch 8\r
6378;@SET 1,C\r
6379opcode_CB_C9:\r
6380 orr z80bc,z80bc,#1<<17\r
6381 fetch 8\r
6382;@SET 1,D\r
6383opcode_CB_CA:\r
6384 orr z80de,z80de,#1<<25\r
6385 fetch 8\r
6386;@SET 1,E\r
6387opcode_CB_CB:\r
6388 orr z80de,z80de,#1<<17\r
6389 fetch 8\r
6390;@SET 1,H\r
6391opcode_CB_CC:\r
6392 orr z80hl,z80hl,#1<<25\r
6393 fetch 8\r
6394;@SET 1,L\r
6395opcode_CB_CD:\r
6396 orr z80hl,z80hl,#1<<17\r
6397 fetch 8\r
6398;@SET 1,(HL)\r
6399opcode_CB_CE:\r
6400 opSETmemHL 1\r
6401;@SET 1,A\r
6402opcode_CB_CF:\r
6403 orr z80a,z80a,#1<<25\r
6404 fetch 8\r
6405\r
6406;@SET 2,B\r
6407opcode_CB_D0:\r
6408 orr z80bc,z80bc,#1<<26\r
6409 fetch 8\r
6410;@SET 2,C\r
6411opcode_CB_D1:\r
6412 orr z80bc,z80bc,#1<<18\r
6413 fetch 8\r
6414;@SET 2,D\r
6415opcode_CB_D2:\r
6416 orr z80de,z80de,#1<<26\r
6417 fetch 8\r
6418;@SET 2,E\r
6419opcode_CB_D3:\r
6420 orr z80de,z80de,#1<<18\r
6421 fetch 8\r
6422;@SET 2,H\r
6423opcode_CB_D4:\r
6424 orr z80hl,z80hl,#1<<26\r
6425 fetch 8\r
6426;@SET 2,L\r
6427opcode_CB_D5:\r
6428 orr z80hl,z80hl,#1<<18\r
6429 fetch 8\r
6430;@SET 2,(HL)\r
6431opcode_CB_D6:\r
6432 opSETmemHL 2\r
6433;@SET 2,A\r
6434opcode_CB_D7:\r
6435 orr z80a,z80a,#1<<26\r
6436 fetch 8\r
6437\r
6438;@SET 3,B\r
6439opcode_CB_D8:\r
6440 orr z80bc,z80bc,#1<<27\r
6441 fetch 8\r
6442;@SET 3,C\r
6443opcode_CB_D9:\r
6444 orr z80bc,z80bc,#1<<19\r
6445 fetch 8\r
6446;@SET 3,D\r
6447opcode_CB_DA:\r
6448 orr z80de,z80de,#1<<27\r
6449 fetch 8\r
6450;@SET 3,E\r
6451opcode_CB_DB:\r
6452 orr z80de,z80de,#1<<19\r
6453 fetch 8\r
6454;@SET 3,H\r
6455opcode_CB_DC:\r
6456 orr z80hl,z80hl,#1<<27\r
6457 fetch 8\r
6458;@SET 3,L\r
6459opcode_CB_DD:\r
6460 orr z80hl,z80hl,#1<<19\r
6461 fetch 8\r
6462;@SET 3,(HL)\r
6463opcode_CB_DE:\r
6464 opSETmemHL 3\r
6465;@SET 3,A\r
6466opcode_CB_DF:\r
6467 orr z80a,z80a,#1<<27\r
6468 fetch 8\r
6469\r
6470;@SET 4,B\r
6471opcode_CB_E0:\r
6472 orr z80bc,z80bc,#1<<28\r
6473 fetch 8\r
6474;@SET 4,C\r
6475opcode_CB_E1:\r
6476 orr z80bc,z80bc,#1<<20\r
6477 fetch 8\r
6478;@SET 4,D\r
6479opcode_CB_E2:\r
6480 orr z80de,z80de,#1<<28\r
6481 fetch 8\r
6482;@SET 4,E\r
6483opcode_CB_E3:\r
6484 orr z80de,z80de,#1<<20\r
6485 fetch 8\r
6486;@SET 4,H\r
6487opcode_CB_E4:\r
6488 orr z80hl,z80hl,#1<<28\r
6489 fetch 8\r
6490;@SET 4,L\r
6491opcode_CB_E5:\r
6492 orr z80hl,z80hl,#1<<20\r
6493 fetch 8\r
6494;@SET 4,(HL)\r
6495opcode_CB_E6:\r
6496 opSETmemHL 4\r
6497;@SET 4,A\r
6498opcode_CB_E7:\r
6499 orr z80a,z80a,#1<<28\r
6500 fetch 8\r
6501\r
6502;@SET 5,B\r
6503opcode_CB_E8:\r
6504 orr z80bc,z80bc,#1<<29\r
6505 fetch 8\r
6506;@SET 5,C\r
6507opcode_CB_E9:\r
6508 orr z80bc,z80bc,#1<<21\r
6509 fetch 8\r
6510;@SET 5,D\r
6511opcode_CB_EA:\r
6512 orr z80de,z80de,#1<<29\r
6513 fetch 8\r
6514;@SET 5,E\r
6515opcode_CB_EB:\r
6516 orr z80de,z80de,#1<<21\r
6517 fetch 8\r
6518;@SET 5,H\r
6519opcode_CB_EC:\r
6520 orr z80hl,z80hl,#1<<29\r
6521 fetch 8\r
6522;@SET 5,L\r
6523opcode_CB_ED:\r
6524 orr z80hl,z80hl,#1<<21\r
6525 fetch 8\r
6526;@SET 5,(HL)\r
6527opcode_CB_EE:\r
6528 opSETmemHL 5\r
6529;@SET 5,A\r
6530opcode_CB_EF:\r
6531 orr z80a,z80a,#1<<29\r
6532 fetch 8\r
6533\r
6534;@SET 6,B\r
6535opcode_CB_F0:\r
6536 orr z80bc,z80bc,#1<<30\r
6537 fetch 8\r
6538;@SET 6,C\r
6539opcode_CB_F1:\r
6540 orr z80bc,z80bc,#1<<22\r
6541 fetch 8\r
6542;@SET 6,D\r
6543opcode_CB_F2:\r
6544 orr z80de,z80de,#1<<30\r
6545 fetch 8\r
6546;@SET 6,E\r
6547opcode_CB_F3:\r
6548 orr z80de,z80de,#1<<22\r
6549 fetch 8\r
6550;@SET 6,H\r
6551opcode_CB_F4:\r
6552 orr z80hl,z80hl,#1<<30\r
6553 fetch 8\r
6554;@SET 6,L\r
6555opcode_CB_F5:\r
6556 orr z80hl,z80hl,#1<<22\r
6557 fetch 8\r
6558;@SET 6,(HL)\r
6559opcode_CB_F6:\r
6560 opSETmemHL 6\r
6561;@SET 6,A\r
6562opcode_CB_F7:\r
6563 orr z80a,z80a,#1<<30\r
6564 fetch 8\r
6565\r
6566;@SET 7,B\r
6567opcode_CB_F8:\r
6568 orr z80bc,z80bc,#1<<31\r
6569 fetch 8\r
6570;@SET 7,C\r
6571opcode_CB_F9:\r
6572 orr z80bc,z80bc,#1<<23\r
6573 fetch 8\r
6574;@SET 7,D\r
6575opcode_CB_FA:\r
6576 orr z80de,z80de,#1<<31\r
6577 fetch 8\r
6578;@SET 7,E\r
6579opcode_CB_FB:\r
6580 orr z80de,z80de,#1<<23\r
6581 fetch 8\r
6582;@SET 7,H\r
6583opcode_CB_FC:\r
6584 orr z80hl,z80hl,#1<<31\r
6585 fetch 8\r
6586;@SET 7,L\r
6587opcode_CB_FD:\r
6588 orr z80hl,z80hl,#1<<23\r
6589 fetch 8\r
6590;@SET 7,(HL)\r
6591opcode_CB_FE:\r
6592 opSETmemHL 7\r
6593;@SET 7,A\r
6594opcode_CB_FF:\r
6595 orr z80a,z80a,#1<<31\r
6596 fetch 8\r
6597\r
6598\r
6599\r
6600;@##################################\r
6601;@##################################\r
6602;@### opcodes DD #########################\r
6603;@##################################\r
6604;@##################################\r
6605;@Because the DD opcodes are not a complete range from 00-FF I have\r
6606;@created this sub routine that will catch any undocumented ops\r
6607;@halt the emulator and mov the current instruction to r0\r
6608;@at a later stage I may change to display a text message on the screen\r
6609opcode_DD_NF:\r
6610 eatcycles 4\r
6611 ldr pc,[opcodes,r0, lsl #2]\r
6612;@ mov r2,#0x10*4\r
6613;@ cmp r2,z80xx\r
6614;@ bne opcode_FD_NF\r
6615;@ mov r0,#0xDD00\r
6616;@ orr r0,r0,r1\r
6617;@ b end_loop\r
6618;@opcode_FD_NF:\r
6619;@ mov r0,#0xFD00\r
6620;@ orr r0,r0,r1\r
6621;@ b end_loop\r
f0243975 6622\r
cc68a136 6623opcode_DD_NF2:\r
28d596af 6624 fetch 23\r
f0243975 6625;@ notaz: we don't want to deadlock here\r
6626;@ mov r0,#0xDD0000\r
6627;@ orr r0,r0,#0xCB00\r
6628;@ orr r0,r0,r1\r
6629;@ b end_loop\r
cc68a136 6630\r
6631;@ADD IX,BC\r
6632opcode_DD_09:\r
6633 ldr r0,[z80xx]\r
6634 opADD16 r0 z80bc\r
6635 str r0,[z80xx]\r
6636 fetch 15\r
6637;@ADD IX,DE\r
6638opcode_DD_19:\r
6639 ldr r0,[z80xx]\r
6640 opADD16 r0 z80de\r
6641 str r0,[z80xx]\r
6642 fetch 15\r
6643;@LD IX,NN\r
6644opcode_DD_21:\r
6645 ldrb r0,[z80pc],#1\r
6646 ldrb r1,[z80pc],#1\r
6647 orr r0,r0,r1, lsl #8\r
6648 strh r0,[z80xx,#2]\r
6649 fetch 14\r
6650;@LD (NN),IX\r
6651opcode_DD_22:\r
6652 ldrb r0,[z80pc],#1\r
6653 ldrb r1,[z80pc],#1\r
6654 orr r1,r0,r1, lsl #8\r
6655 ldrh r0,[z80xx,#2]\r
6656 writemem16\r
6657 fetch 20\r
6658;@INC IX\r
6659opcode_DD_23:\r
6660 ldr r0,[z80xx]\r
6661 add r0,r0,#1<<16\r
6662 str r0,[z80xx]\r
6663 fetch 10\r
6664;@INC I (IX)\r
6665opcode_DD_24:\r
6666 ldr r0,[z80xx]\r
6667 opINC8H r0\r
6668 str r0,[z80xx]\r
6669 fetch 8\r
6670;@DEC I (IX)\r
6671opcode_DD_25:\r
6672 ldr r0,[z80xx]\r
6673 opDEC8H r0\r
6674 str r0,[z80xx]\r
6675 fetch 8\r
6676;@LD I,N (IX)\r
6677opcode_DD_26:\r
6678 ldrb r0,[z80pc],#1\r
6679 strb r0,[z80xx,#3]\r
6680 fetch 11\r
6681;@ADD IX,IX\r
6682opcode_DD_29:\r
6683 ldr r0,[z80xx]\r
6684 opADD16_2 r0\r
6685 str r0,[z80xx]\r
6686 fetch 15\r
6687;@LD IX,(NN)\r
6688opcode_DD_2A:\r
6689 ldrb r0,[z80pc],#1\r
6690 ldrb r1,[z80pc],#1\r
6691 orr r0,r0,r1, lsl #8\r
6692 stmfd sp!,{z80xx}\r
6693 readmem16\r
6694 ldmfd sp!,{z80xx}\r
6695 strh r0,[z80xx,#2]\r
6696 fetch 20\r
6697;@DEC IX\r
6698opcode_DD_2B:\r
6699 ldr r0,[z80xx]\r
6700 sub r0,r0,#1<<16\r
6701 str r0,[z80xx]\r
6702 fetch 10\r
6703;@INC X (IX)\r
6704opcode_DD_2C:\r
6705 ldr r0,[z80xx]\r
6706 opINC8L r0\r
6707 str r0,[z80xx]\r
6708 fetch 8\r
6709;@DEC X (IX)\r
6710opcode_DD_2D:\r
6711 ldr r0,[z80xx]\r
6712 opDEC8L r0\r
6713 str r0,[z80xx]\r
6714 fetch 8\r
6715;@LD X,N (IX)\r
6716opcode_DD_2E:\r
6717 ldrb r0,[z80pc],#1\r
6718 strb r0,[z80xx,#2]\r
6719 fetch 11\r
6720;@INC (IX+N)\r
6721opcode_DD_34:\r
6722 ldrsb r0,[z80pc],#1\r
6723 ldr r1,[z80xx]\r
6724 add r0,r0,r1, lsr #16\r
6725 stmfd sp!,{r0} ;@ save addr\r
6726 readmem8\r
6727 opINC8b\r
6728 ldmfd sp!,{r1} ;@ restore addr into r1\r
6729 writemem8\r
6730 fetch 23\r
6731;@DEC (IX+N)\r
6732opcode_DD_35:\r
6733 ldrsb r0,[z80pc],#1\r
6734 ldr r1,[z80xx]\r
6735 add r0,r0,r1, lsr #16\r
6736 stmfd sp!,{r0} ;@ save addr\r
6737 readmem8\r
6738 opDEC8b\r
6739 ldmfd sp!,{r1} ;@ restore addr into r1\r
6740 writemem8\r
6741 fetch 23\r
6742;@LD (IX+N),N\r
6743opcode_DD_36:\r
6744 ldrsb r2,[z80pc],#1\r
6745 ldrb r0,[z80pc],#1\r
6746 ldr r1,[z80xx]\r
6747 add r1,r2,r1, lsr #16\r
6748 writemem8\r
6749 fetch 19\r
6750;@ADD IX,SP\r
6751opcode_DD_39:\r
6752 ldr r0,[z80xx]\r
6753.if FAST_Z80SP\r
6754 ldr r2,[cpucontext,#z80sp_base]\r
6755 sub r2,z80sp,r2\r
6756 opADD16s r0 r2 16\r
6757.else\r
6758 opADD16s r0 z80sp 16\r
6759.endif\r
6760 str r0,[z80xx]\r
6761 fetch 15\r
6762;@LD B,I ( IX )\r
6763opcode_DD_44:\r
6764 ldrb r0,[z80xx,#3]\r
6765 and z80bc,z80bc,#0xFF<<16\r
6766 orr z80bc,z80bc,r0, lsl #24\r
6767 fetch 8\r
6768;@LD B,X ( IX )\r
6769opcode_DD_45:\r
6770 ldrb r0,[z80xx,#2]\r
6771 and z80bc,z80bc,#0xFF<<16\r
6772 orr z80bc,z80bc,r0, lsl #24\r
6773 fetch 8\r
6774;@LD B,(IX,N)\r
6775opcode_DD_46:\r
6776 ldrsb r0,[z80pc],#1\r
6777 ldr r1,[z80xx]\r
6778 add r0,r0,r1, lsr #16\r
6779 readmem8\r
6780 and z80bc,z80bc,#0xFF<<16\r
6781 orr z80bc,z80bc,r0, lsl #24\r
6782 fetch 19\r
6783;@LD C,I (IX)\r
6784opcode_DD_4C:\r
6785 ldrb r0,[z80xx,#3]\r
6786 and z80bc,z80bc,#0xFF<<24\r
6787 orr z80bc,z80bc,r0, lsl #16\r
6788 fetch 8\r
6789;@LD C,X (IX)\r
6790opcode_DD_4D:\r
6791 ldrb r0,[z80xx,#2]\r
6792 and z80bc,z80bc,#0xFF<<24\r
6793 orr z80bc,z80bc,r0, lsl #16\r
6794 fetch 8\r
6795;@LD C,(IX,N)\r
6796opcode_DD_4E:\r
6797 ldrsb r0,[z80pc],#1\r
6798 ldr r1,[z80xx]\r
6799 add r0,r0,r1, lsr #16\r
6800 readmem8\r
6801 and z80bc,z80bc,#0xFF<<24\r
6802 orr z80bc,z80bc,r0, lsl #16\r
6803 fetch 19\r
6804\r
6805;@LD D,I (IX)\r
6806opcode_DD_54:\r
6807 ldrb r0,[z80xx,#3]\r
6808 and z80de,z80de,#0xFF<<16\r
6809 orr z80de,z80de,r0, lsl #24\r
6810 fetch 8\r
6811;@LD D,X (IX)\r
6812opcode_DD_55:\r
6813 ldrb r0,[z80xx,#2]\r
6814 and z80de,z80de,#0xFF<<16\r
6815 orr z80de,z80de,r0, lsl #24\r
6816 fetch 8\r
6817;@LD D,(IX,N)\r
6818opcode_DD_56:\r
6819 ldrsb r0,[z80pc],#1\r
6820 ldr r1,[z80xx]\r
6821 add r0,r0,r1, lsr #16\r
6822 readmem8\r
6823 and z80de,z80de,#0xFF<<16\r
6824 orr z80de,z80de,r0, lsl #24\r
6825 fetch 19\r
6826;@LD E,I (IX)\r
6827opcode_DD_5C:\r
6828 ldrb r0,[z80xx,#3]\r
6829 and z80de,z80de,#0xFF<<24\r
6830 orr z80de,z80de,r0, lsl #16\r
6831 fetch 8\r
6832;@LD E,X (IX)\r
6833opcode_DD_5D:\r
6834 ldrb r0,[z80xx,#2]\r
6835 and z80de,z80de,#0xFF<<24\r
6836 orr z80de,z80de,r0, lsl #16\r
6837 fetch 8\r
6838;@LD E,(IX,N)\r
6839opcode_DD_5E:\r
6840 ldrsb r0,[z80pc],#1\r
6841 ldr r1,[z80xx]\r
6842 add r0,r0,r1, lsr #16\r
6843 readmem8\r
6844 and z80de,z80de,#0xFF<<24\r
6845 orr z80de,z80de,r0, lsl #16\r
6846 fetch 19\r
6847;@LD I,B (IX)\r
6848opcode_DD_60:\r
6849 mov r0,z80bc,lsr#24\r
6850 strb r0,[z80xx,#3]\r
6851 fetch 8\r
6852;@LD I,C (IX)\r
6853opcode_DD_61:\r
6854 mov r0,z80bc,lsr#16\r
6855 strb r0,[z80xx,#3]\r
6856 fetch 8\r
6857;@LD I,D (IX)\r
6858opcode_DD_62:\r
6859 mov r0,z80de,lsr#24\r
6860 strb r0,[z80xx,#3]\r
6861 fetch 8\r
6862;@LD I,E (IX)\r
6863opcode_DD_63:\r
6864 mov r0,z80de,lsr#16\r
6865 strb r0,[z80xx,#3]\r
6866 fetch 8\r
6867;@LD I,I (IX)\r
6868opcode_DD_64:\r
6869 fetch 8\r
6870;@LD I,X (IX)\r
6871opcode_DD_65:\r
6872 ldrb r0,[z80xx,#2]\r
6873 strb r0,[z80xx,#3]\r
6874 fetch 8\r
6875;@LD H,(IX,N)\r
6876opcode_DD_66:\r
6877 ldrsb r0,[z80pc],#1\r
6878 ldr r1,[z80xx]\r
6879 add r0,r0,r1, lsr #16\r
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
6921 add r0,r0,r1, lsr #16\r
6922 readmem8\r
6923 and z80hl,z80hl,#0xFF<<24\r
6924 orr z80hl,z80hl,r0, lsl #16\r
6925 fetch 19\r
6926;@LD X,A (IX)\r
6927opcode_DD_6F:\r
6928 mov r0,z80a,lsr#24\r
6929 strb r0,[z80xx,#2]\r
6930 fetch 8\r
6931\r
6932;@LD (IX,N),B\r
6933opcode_DD_70:\r
6934 ldrsb r0,[z80pc],#1\r
6935 ldr r1,[z80xx]\r
6936 add r1,r0,r1, lsr #16\r
6937 mov r0,z80bc, lsr #24\r
6938 writemem8\r
6939 fetch 19\r
6940;@LD (IX,N),C\r
6941opcode_DD_71:\r
6942 ldrsb r0,[z80pc],#1\r
6943 ldr r1,[z80xx]\r
6944 add r1,r0,r1, lsr #16\r
6945 mov r0,z80bc, lsr #16\r
6946 and r0,r0,#0xFF\r
6947 writemem8\r
6948 fetch 19\r
6949;@LD (IX,N),D\r
6950opcode_DD_72:\r
6951 ldrsb r0,[z80pc],#1\r
6952 ldr r1,[z80xx]\r
6953 add r1,r0,r1, lsr #16\r
6954 mov r0,z80de, lsr #24\r
6955 writemem8\r
6956 fetch 19\r
6957;@LD (IX,N),E\r
6958opcode_DD_73:\r
6959 ldrsb r0,[z80pc],#1\r
6960 ldr r1,[z80xx]\r
6961 add r1,r0,r1, lsr #16\r
6962 mov r0,z80de, lsr #16\r
6963 and r0,r0,#0xFF\r
6964 writemem8\r
6965 fetch 19\r
6966;@LD (IX,N),H\r
6967opcode_DD_74:\r
6968 ldrsb r0,[z80pc],#1\r
6969 ldr r1,[z80xx]\r
6970 add r1,r0,r1, lsr #16\r
6971 mov r0,z80hl, lsr #24\r
6972 writemem8\r
6973 fetch 19\r
6974;@LD (IX,N),L\r
6975opcode_DD_75:\r
6976 ldrsb r0,[z80pc],#1\r
6977 ldr r1,[z80xx]\r
6978 add r1,r0,r1, lsr #16\r
6979 mov r0,z80hl, lsr #16\r
6980 and r0,r0,#0xFF\r
6981 writemem8\r
6982 fetch 19\r
6983;@LD (IX,N),A\r
6984opcode_DD_77:\r
6985 ldrsb r0,[z80pc],#1\r
6986 ldr r1,[z80xx]\r
6987 add r1,r0,r1, lsr #16\r
6988 mov r0,z80a, lsr #24\r
6989 writemem8\r
6990 fetch 19\r
6991\r
6992;@LD A,I from (IX)\r
6993opcode_DD_7C:\r
6994 ldrb r0,[z80xx,#3]\r
6995 mov z80a,r0, lsl #24\r
6996 fetch 8\r
6997;@LD A,X from (IX)\r
6998opcode_DD_7D:\r
6999 ldrb r0,[z80xx,#2]\r
7000 mov z80a,r0, lsl #24\r
7001 fetch 8\r
7002;@LD A,(IX,N)\r
7003opcode_DD_7E:\r
7004 ldrsb r0,[z80pc],#1\r
7005 ldr r1,[z80xx]\r
7006 add r0,r0,r1, lsr #16\r
7007 readmem8\r
7008 mov z80a,r0, lsl #24\r
7009 fetch 19\r
7010\r
7011;@ADD A,I ( IX)\r
7012opcode_DD_84:\r
7013 ldrb r0,[z80xx,#3]\r
7014 opADDb\r
7015 fetch 8\r
7016;@ADD A,X ( IX)\r
7017opcode_DD_85:\r
7018 ldrb r0,[z80xx,#2]\r
7019 opADDb\r
7020 fetch 8\r
7021;@ADD A,(IX+N)\r
7022opcode_DD_86:\r
7023 ldrsb r0,[z80pc],#1\r
7024 ldr r1,[z80xx]\r
7025 add r0,r0,r1, lsr #16\r
7026 readmem8\r
7027 opADDb\r
7028 fetch 19\r
7029\r
7030;@ADC A,I (IX)\r
7031opcode_DD_8C:\r
7032 ldrb r0,[z80xx,#3]\r
7033 opADCb\r
7034 fetch 8\r
7035;@ADC A,X (IX)\r
7036opcode_DD_8D:\r
7037 ldrb r0,[z80xx,#2]\r
7038 opADCb\r
7039 fetch 8\r
7040;@ADC A,(IX+N)\r
7041opcode_DD_8E:\r
7042 ldrsb r0,[z80pc],#1\r
7043 ldr r1,[z80xx]\r
7044 add r0,r0,r1, lsr #16\r
7045 readmem8\r
7046 opADCb\r
7047 fetch 19\r
7048\r
7049;@SUB A,I (IX)\r
7050opcode_DD_94:\r
7051 ldrb r0,[z80xx,#3]\r
7052 opSUBb\r
7053 fetch 8\r
7054;@SUB A,X (IX)\r
7055opcode_DD_95:\r
7056 ldrb r0,[z80xx,#2]\r
7057 opSUBb\r
7058 fetch 8\r
7059;@SUB A,(IX+N)\r
7060opcode_DD_96:\r
7061 ldrsb r0,[z80pc],#1\r
7062 ldr r1,[z80xx]\r
7063 add r0,r0,r1, lsr #16\r
7064 readmem8\r
7065 opSUBb\r
7066 fetch 19\r
7067\r
7068;@SBC A,I (IX)\r
7069opcode_DD_9C:\r
7070 ldrb r0,[z80xx,#3]\r
7071 opSBCb\r
7072 fetch 8\r
7073;@SBC A,X (IX)\r
7074opcode_DD_9D:\r
7075 ldrb r0,[z80xx,#2]\r
7076 opSBCb\r
7077 fetch 8\r
7078;@SBC A,(IX+N)\r
7079opcode_DD_9E:\r
7080 ldrsb r0,[z80pc],#1\r
7081 ldr r1,[z80xx]\r
7082 add r0,r0,r1, lsr #16\r
7083 readmem8\r
7084 opSBCb\r
7085 fetch 19\r
7086\r
7087;@AND I (IX)\r
7088opcode_DD_A4:\r
7089 ldrb r0,[z80xx,#3]\r
7090 opANDb\r
7091 fetch 8\r
7092;@AND X (IX)\r
7093opcode_DD_A5:\r
7094 ldrb r0,[z80xx,#2]\r
7095 opANDb\r
7096 fetch 8\r
7097;@AND (IX+N)\r
7098opcode_DD_A6:\r
7099 ldrsb r0,[z80pc],#1\r
7100 ldr r1,[z80xx]\r
7101 add r0,r0,r1, lsr #16\r
7102 readmem8\r
7103 opANDb\r
7104 fetch 19\r
7105\r
7106;@XOR I (IX)\r
7107opcode_DD_AC:\r
7108 ldrb r0,[z80xx,#3]\r
7109 opXORb\r
7110 fetch 8\r
7111;@XOR X (IX)\r
7112opcode_DD_AD:\r
7113 ldrb r0,[z80xx,#2]\r
7114 opXORb\r
7115 fetch 8\r
7116;@XOR (IX+N)\r
7117opcode_DD_AE:\r
7118 ldrsb r0,[z80pc],#1\r
7119 ldr r1,[z80xx]\r
7120 add r0,r0,r1, lsr #16\r
7121 readmem8\r
7122 opXORb\r
7123 fetch 19\r
7124\r
7125;@OR I (IX)\r
7126opcode_DD_B4:\r
7127 ldrb r0,[z80xx,#3]\r
7128 opORb\r
7129 fetch 8\r
7130;@OR X (IX)\r
7131opcode_DD_B5:\r
7132 ldrb r0,[z80xx,#2]\r
7133 opORb\r
7134 fetch 8\r
7135;@OR (IX+N)\r
7136opcode_DD_B6:\r
7137 ldrsb r0,[z80pc],#1\r
7138 ldr r1,[z80xx]\r
7139 add r0,r0,r1, lsr #16\r
7140 readmem8\r
7141 opORb\r
7142 fetch 19\r
7143\r
7144;@CP I (IX)\r
7145opcode_DD_BC:\r
7146 ldrb r0,[z80xx,#3]\r
7147 opCPb\r
7148 fetch 8\r
7149;@CP X (IX)\r
7150opcode_DD_BD:\r
7151 ldrb r0,[z80xx,#2]\r
7152 opCPb\r
7153 fetch 8\r
7154;@CP (IX+N)\r
7155opcode_DD_BE:\r
7156 ldrsb r0,[z80pc],#1\r
7157 ldr r1,[z80xx]\r
7158 add r0,r0,r1, lsr #16\r
7159 readmem8\r
7160 opCPb\r
7161 fetch 19\r
7162\r
7163\r
7164opcodes_DD_CB_LOCAL: .word opcodes_DD_CB\r
7165opcode_DD_CB:\r
7166;@Looks up the opcode on the opcodes_DD_CB table and then \r
7167;@moves the PC to the location of the subroutine\r
7168 ldrsb r0,[z80pc],#1\r
7169 ldr r1,[z80xx]\r
7170 add r0,r0,r1, lsr #16\r
7171\r
7172 ldrb r1,[z80pc],#1\r
7173 ldr pc,[pc,r1, lsl #2]\r
7174 .word 0x00\r
7175opcodes_DD_CB:\r
7176 .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
7177 .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
7178 .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
7179 .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
7180 .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
7181 .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
7182 .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
7183 .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
7184 .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
7185 .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
7186 .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
7187 .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
7188 .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
7189 .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
7190 .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
7191 .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
7192 .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
7193 .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
7194 .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
7195 .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
7196 .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
7197 .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
7198 .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
7199 .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
7200 .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
7201 .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
7202 .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
7203 .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
7204 .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
7205 .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
7206 .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
7207 .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
7208\r
7209;@RLC (IX+N) \r
7210opcode_DD_CB_06:\r
7211 stmfd sp!,{r0} ;@ save addr\r
7212 readmem8\r
7213 opRLCb\r
7214 ldmfd sp!,{r1} ;@ restore addr into r1\r
7215 writemem8\r
7216 fetch 23\r
7217;@RRC (IX+N) \r
7218opcode_DD_CB_0E:\r
7219 stmfd sp!,{r0} ;@ save addr\r
7220 readmem8\r
7221 opRRCb\r
7222 ldmfd sp!,{r1} ;@ restore addr into r1\r
7223 writemem8\r
7224 fetch 23\r
7225;@RL (IX+N) \r
7226opcode_DD_CB_16:\r
7227 stmfd sp!,{r0} ;@ save addr\r
7228 readmem8\r
7229 opRLb\r
7230 ldmfd sp!,{r1} ;@ restore addr into r1\r
7231 writemem8\r
7232 fetch 23\r
7233;@RR (IX+N) \r
7234opcode_DD_CB_1E:\r
7235 stmfd sp!,{r0} ;@ save addr \r
7236 readmem8\r
7237 opRRb\r
7238 ldmfd sp!,{r1} ;@ restore addr into r1\r
7239 writemem8\r
7240 fetch 23\r
7241\r
7242;@SLA (IX+N) \r
7243opcode_DD_CB_26:\r
7244 stmfd sp!,{r0} ;@ save addr \r
7245 readmem8\r
7246 opSLAb\r
7247 ldmfd sp!,{r1} ;@ restore addr into r1\r
7248 writemem8\r
7249 fetch 23\r
7250;@SRA (IX+N) \r
7251opcode_DD_CB_2E:\r
7252 stmfd sp!,{r0} ;@ save addr \r
7253 readmem8\r
7254 opSRAb\r
7255 ldmfd sp!,{r1} ;@ restore addr into r1\r
7256 writemem8\r
7257 fetch 23\r
7258;@SLL (IX+N) \r
7259opcode_DD_CB_36:\r
7260 stmfd sp!,{r0} ;@ save addr \r
7261 readmem8\r
7262 opSLLb\r
7263 ldmfd sp!,{r1} ;@ restore addr into r1\r
7264 writemem8\r
7265 fetch 23\r
7266;@SRL (IX+N)\r
7267opcode_DD_CB_3E:\r
7268 stmfd sp!,{r0} ;@ save addr \r
7269 readmem8\r
7270 opSRLb\r
7271 ldmfd sp!,{r1} ;@ restore addr into r1\r
7272 writemem8\r
7273 fetch 23\r
7274\r
7275;@BIT 0,(IX+N) \r
7276opcode_DD_CB_46:\r
7277 readmem8\r
7278 opBITb 0\r
7279 fetch 20\r
7280;@BIT 1,(IX+N) \r
7281opcode_DD_CB_4E:\r
7282 readmem8\r
7283 opBITb 1\r
7284 fetch 20\r
7285;@BIT 2,(IX+N) \r
7286opcode_DD_CB_56:\r
7287 readmem8\r
7288 opBITb 2\r
7289 fetch 20\r
7290;@BIT 3,(IX+N) \r
7291opcode_DD_CB_5E:\r
7292 readmem8\r
7293 opBITb 3\r
7294 fetch 20\r
7295;@BIT 4,(IX+N) \r
7296opcode_DD_CB_66:\r
7297 readmem8\r
7298 opBITb 4\r
7299 fetch 20\r
7300;@BIT 5,(IX+N) \r
7301opcode_DD_CB_6E:\r
7302 readmem8\r
7303 opBITb 5\r
7304 fetch 20\r
7305;@BIT 6,(IX+N) \r
7306opcode_DD_CB_76:\r
7307 readmem8\r
7308 opBITb 6\r
7309 fetch 20\r
7310;@BIT 7,(IX+N) \r
7311opcode_DD_CB_7E:\r
7312 readmem8\r
7313 opBIT7b\r
7314 fetch 20\r
7315;@RES 0,(IX+N) \r
7316opcode_DD_CB_86:\r
7317 opRESmem 0\r
7318;@RES 1,(IX+N) \r
7319opcode_DD_CB_8E:\r
7320 opRESmem 1\r
7321;@RES 2,(IX+N) \r
7322opcode_DD_CB_96:\r
7323 opRESmem 2\r
7324;@RES 3,(IX+N) \r
7325opcode_DD_CB_9E:\r
7326 opRESmem 3\r
7327;@RES 4,(IX+N) \r
7328opcode_DD_CB_A6:\r
7329 opRESmem 4\r
7330;@RES 5,(IX+N) \r
7331opcode_DD_CB_AE:\r
7332 opRESmem 5\r
7333;@RES 6,(IX+N) \r
7334opcode_DD_CB_B6:\r
7335 opRESmem 6\r
7336;@RES 7,(IX+N) \r
7337opcode_DD_CB_BE:\r
7338 opRESmem 7\r
7339\r
7340;@SET 0,(IX+N) \r
7341opcode_DD_CB_C6:\r
7342 opSETmem 0\r
7343;@SET 1,(IX+N) \r
7344opcode_DD_CB_CE:\r
7345 opSETmem 1\r
7346;@SET 2,(IX+N) \r
7347opcode_DD_CB_D6:\r
7348 opSETmem 2\r
7349;@SET 3,(IX+N) \r
7350opcode_DD_CB_DE:\r
7351 opSETmem 3\r
7352;@SET 4,(IX+N) \r
7353opcode_DD_CB_E6:\r
7354 opSETmem 4\r
7355;@SET 5,(IX+N) \r
7356opcode_DD_CB_EE:\r
7357 opSETmem 5\r
7358;@SET 6,(IX+N) \r
7359opcode_DD_CB_F6:\r
7360 opSETmem 6\r
7361;@SET 7,(IX+N) \r
7362opcode_DD_CB_FE:\r
7363 opSETmem 7\r
7364\r
7365\r
7366\r
7367;@POP IX\r
7368opcode_DD_E1:\r
7369.if FAST_Z80SP\r
7370 opPOP\r
7371.else\r
7372 mov r0,z80sp\r
7373 stmfd sp!,{z80xx}\r
7374 readmem16\r
7375 ldmfd sp!,{z80xx}\r
7376 add z80sp,z80sp,#2\r
7377.endif\r
7378 strh r0,[z80xx,#2]\r
7379 fetch 14\r
7380;@EX (SP),IX\r
7381opcode_DD_E3:\r
7382.if FAST_Z80SP\r
7383 ldrb r0,[z80sp]\r
7384 ldrb r1,[z80sp,#1]\r
7385 orr r2,r0,r1, lsl #8\r
7386 ldrh r1,[z80xx,#2]\r
7387 mov r0,r1, lsr #8\r
7388 strb r0,[z80sp,#1]\r
7389 strb r1,[z80sp]\r
7390 strh r2,[z80xx,#2]\r
7391.else\r
7392 mov r0,z80sp\r
7393 stmfd sp!,{z80xx}\r
7394 readmem16\r
7395 ldmfd sp!,{z80xx}\r
7396 mov r2,r0\r
7397 ldrh r0,[z80xx,#2]\r
7398 strh r2,[z80xx,#2]\r
7399 mov r1,z80sp\r
7400 writemem16\r
7401.endif\r
7402 fetch 23\r
7403;@PUSH IX\r
7404opcode_DD_E5:\r
7405 ldr r2,[z80xx]\r
7406 opPUSHreg r2\r
7407 fetch 15\r
7408;@JP (IX)\r
7409opcode_DD_E9:\r
7410 ldrh r0,[z80xx,#2]\r
7411 rebasepc\r
7412 fetch 8\r
7413;@LD SP,IX\r
7414opcode_DD_F9:\r
7415.if FAST_Z80SP\r
7416 ldrh r0,[z80xx,#2]\r
7417 rebasesp\r
7418 mov z80sp,r0\r
7419.else\r
7420 ldrh z80sp,[z80xx,#2]\r
7421.endif\r
7422 fetch 10\r
7423\r
7424;@##################################\r
7425;@##################################\r
7426;@### opcodes ED #########################\r
7427;@##################################\r
7428;@##################################\r
7429\r
7430opcode_ED_NF:\r
7431 fetch 8\r
7432;@ ldrb r0,[z80pc],#1\r
7433;@ ldr pc,[opcodes,r0, lsl #2]\r
7434;@ mov r0,#0xED00\r
7435;@ orr r0,r0,r1\r
7436;@ b end_loop\r
7437\r
7438;@IN B,(C)\r
7439opcode_ED_40:\r
7440 opIN_C\r
7441 and z80bc,z80bc,#0xFF<<16\r
7442 orr z80bc,z80bc,r0, lsl #24\r
7443 sub r1,opcodes,#0x100\r
7444 ldrb r0,[r1,r0]\r
7445 and z80f,z80f,#1<<CFlag\r
7446 orr z80f,z80f,r0\r
7447 fetch 12\r
7448;@OUT (C),B\r
7449opcode_ED_41:\r
7450 mov r1,z80bc, lsr #24\r
7451 opOUT_C\r
7452 fetch 12\r
7453\r
7454;@SBC HL,BC\r
7455opcode_ED_42:\r
7456 opSBC16 z80bc\r
7457\r
7458;@LD (NN),BC\r
7459opcode_ED_43:\r
7460 ldrb r0,[z80pc],#1\r
7461 ldrb r1,[z80pc],#1\r
7462 orr r1,r0,r1, lsl #8\r
7463 mov r0,z80bc, lsr #16\r
7464 writemem16\r
7465 fetch 20\r
7466;@NEG\r
7467opcode_ED_44:\r
7468 rsbs z80a,z80a,#0\r
7469 mrs z80f,cpsr\r
7470 mov z80f,z80f,lsr#28 ;@S,Z,V&C\r
7471 eor z80f,z80f,#(1<<CFlag)|(1<<NFlag) ;@invert C and set n.\r
7472 tst z80a,#0x0F000000 ;@H, correct\r
7473 orrne z80f,z80f,#1<<HFlag\r
7474 fetch 8\r
7475 \r
7476;@RETN, moved to ED_4D\r
7477;@opcode_ED_45:\r
7478\r
7479;@IM 0\r
7480opcode_ED_46:\r
7481 strb z80a,[cpucontext,#z80im]\r
7482 fetch 8\r
7483;@LD I,A\r
7484opcode_ED_47:\r
7485 str z80a,[cpucontext,#z80i]\r
7486 fetch 9\r
7487;@IN C,(C)\r
7488opcode_ED_48:\r
7489 opIN_C\r
7490 and z80bc,z80bc,#0xFF<<24\r
7491 orr z80bc,z80bc,r0, lsl #16\r
7492 sub r1,opcodes,#0x100\r
7493 ldrb r0,[r1,r0]\r
7494 and z80f,z80f,#1<<CFlag\r
7495 orr z80f,z80f,r0\r
7496 fetch 12\r
7497;@OUT (C),C\r
7498opcode_ED_49:\r
7499 mov r0,z80bc, lsr #16\r
7500 and r1,r0,#0xFF\r
7501 opOUT\r
7502 fetch 12\r
7503;@ADC HL,BC\r
7504opcode_ED_4A:\r
7505 opADC16 z80bc\r
7506;@LD BC,(NN)\r
7507opcode_ED_4B:\r
7508 ldrb r0,[z80pc],#1\r
7509 ldrb r1,[z80pc],#1\r
7510 orr r0,r0,r1, lsl #8\r
7511 readmem16\r
7512 mov z80bc,r0, lsl #16\r
7513 fetch 20\r
7514\r
7515;@RETN\r
7516opcode_ED_45:\r
7517;@RETI\r
7518opcode_ED_4D:\r
7519 ldrb r0,[cpucontext,#z80if]\r
7520 tst r0,#Z80_IF2\r
7521 orrne r0,r0,#Z80_IF1\r
7522 biceq r0,r0,#Z80_IF1\r
7523 strb r0,[cpucontext,#z80if]\r
7524 opPOP\r
7525 rebasepc\r
7526 fetch 14\r
7527\r
7528;@LD R,A\r
7529opcode_ED_4F:\r
7530 mov r0,z80a,lsr#24\r
7531 strb r0,[cpucontext,#z80r]\r
7532 fetch 9\r
7533\r
7534;@IN D,(C)\r
7535opcode_ED_50:\r
7536 opIN_C\r
7537 and z80de,z80de,#0xFF<<16\r
7538 orr z80de,z80de,r0, lsl #24\r
7539 sub r1,opcodes,#0x100\r
7540 ldrb r0,[r1,r0]\r
7541 and z80f,z80f,#1<<CFlag\r
7542 orr z80f,z80f,r0\r
7543 fetch 12\r
7544;@OUT (C),D\r
7545opcode_ED_51:\r
7546 mov r1,z80de, lsr #24\r
7547 opOUT_C\r
7548 fetch 12\r
7549;@SBC HL,DE\r
7550opcode_ED_52:\r
7551 opSBC16 z80de\r
7552;@LD (NN),DE\r
7553opcode_ED_53:\r
7554 ldrb r0,[z80pc],#1\r
7555 ldrb r1,[z80pc],#1\r
7556 orr r1,r0,r1, lsl #8\r
7557 mov r0,z80de, lsr #16\r
7558 writemem16\r
7559 fetch 20\r
7560;@IM 1\r
7561opcode_ED_56:\r
7562 mov r0,#1\r
7563 strb r0,[cpucontext,#z80im]\r
7564 fetch 8\r
7565;@LD A,I\r
7566opcode_ED_57:\r
7567 ldr z80a,[cpucontext,#z80i]\r
7568 tst z80a,#0xFF000000\r
7569 and z80f,z80f,#(1<<CFlag)\r
7570 orreq z80f,z80f,#(1<<ZFlag)\r
7571 orrmi z80f,z80f,#(1<<SFlag)\r
7572 ldrb r0,[cpucontext,#z80if]\r
7573 tst r0,#Z80_IF2\r
7574 orrne z80f,z80f,#(1<<VFlag)\r
7575 fetch 9\r
7576;@IN E,(C)\r
7577opcode_ED_58:\r
7578 opIN_C\r
7579 and z80de,z80de,#0xFF<<24\r
7580 orr z80de,z80de,r0, lsl #16\r
7581 sub r1,opcodes,#0x100\r
7582 ldrb r0,[r1,r0]\r
7583 and z80f,z80f,#1<<CFlag\r
7584 orr z80f,z80f,r0\r
7585 fetch 12\r
7586;@OUT (C),E\r
7587opcode_ED_59:\r
7588 mov r1,z80de, lsr #16\r
7589 and r1,r1,#0xFF\r
7590 opOUT_C\r
7591 fetch 12\r
7592;@ADC HL,DE\r
7593opcode_ED_5A:\r
7594 opADC16 z80de\r
7595;@LD DE,(NN)\r
7596opcode_ED_5B:\r
7597 ldrb r0,[z80pc],#1\r
7598 ldrb r1,[z80pc],#1\r
7599 orr r0,r0,r1, lsl #8\r
7600 readmem16\r
7601 mov z80de,r0, lsl #16\r
7602 fetch 20\r
7603;@IM 2\r
7604opcode_ED_5E:\r
7605 mov r0,#2\r
7606 strb r0,[cpucontext,#z80im]\r
7607 fetch 8\r
7608;@LD A,R\r
7609opcode_ED_5F:\r
7610 ldrb r0,[cpucontext,#z80r]\r
7611 and r0,r0,#0x80\r
7612 rsb r1,z80_icount,#0\r
7613 and r1,r1,#0x7F\r
7614 orr r0,r0,r1\r
7615 movs z80a,r0, lsl #24\r
7616 and z80f,z80f,#1<<CFlag\r
7617 orrmi z80f,z80f,#(1<<SFlag)\r
7618 orreq z80f,z80f,#(1<<ZFlag)\r
7619 ldrb r0,[cpucontext,#z80if]\r
7620 tst r0,#Z80_IF2\r
7621 orrne z80f,z80f,#(1<<VFlag)\r
7622 fetch 9\r
7623;@IN H,(C)\r
7624opcode_ED_60:\r
7625 opIN_C\r
7626 and z80hl,z80hl,#0xFF<<16\r
7627 orr z80hl,z80hl,r0, lsl #24\r
7628 sub r1,opcodes,#0x100\r
7629 ldrb r0,[r1,r0]\r
7630 and z80f,z80f,#1<<CFlag\r
7631 orr z80f,z80f,r0\r
7632 fetch 12\r
7633;@OUT (C),H\r
7634opcode_ED_61:\r
7635 mov r1,z80hl, lsr #24\r
7636 opOUT_C\r
7637 fetch 12\r
7638;@SBC HL,HL\r
7639opcode_ED_62:\r
7640 opSBC16HL\r
7641;@RRD\r
7642opcode_ED_67:\r
7643 readmem8HL\r
7644 mov r1,r0,ror#4\r
7645 orr r0,r1,z80a,lsr#20\r
7646 bic z80a,z80a,#0x0F000000\r
7647 orr z80a,z80a,r1,lsr#4\r
7648 writemem8HL\r
7649 sub r1,opcodes,#0x100\r
7650 ldrb r0,[r1,z80a, lsr #24]\r
7651 and z80f,z80f,#1<<CFlag\r
7652 orr z80f,z80f,r0\r
7653 fetch 18\r
7654;@IN L,(C)\r
7655opcode_ED_68:\r
7656 opIN_C\r
7657 and z80hl,z80hl,#0xFF<<24\r
7658 orr z80hl,z80hl,r0, lsl #16\r
7659 and z80f,z80f,#1<<CFlag\r
7660 sub r1,opcodes,#0x100\r
7661 ldrb r0,[r1,r0]\r
7662 orr z80f,z80f,r0\r
7663 fetch 12\r
7664;@OUT (C),L\r
7665opcode_ED_69:\r
7666 mov r1,z80hl, lsr #16\r
7667 and r1,r1,#0xFF\r
7668 opOUT_C\r
7669 fetch 12\r
7670;@ADC HL,HL\r
7671opcode_ED_6A:\r
7672 opADC16HL\r
7673;@RLD\r
7674opcode_ED_6F:\r
7675 readmem8HL\r
7676 orr r0,r0,z80a,lsl#4\r
7677 mov r0,r0,ror#28\r
7678 and z80a,z80a,#0xF0000000\r
7679 orr z80a,z80a,r0,lsl#16\r
7680 and z80a,z80a,#0xFF000000\r
7681 writemem8HL\r
7682 sub r1,opcodes,#0x100\r
7683 ldrb r0,[r1,z80a, lsr #24]\r
7684 and z80f,z80f,#1<<CFlag\r
7685 orr z80f,z80f,r0\r
7686 fetch 18\r
7687;@IN F,(C)\r
7688opcode_ED_70:\r
7689 opIN_C\r
7690 and z80f,z80f,#1<<CFlag\r
7691 sub r1,opcodes,#0x100\r
7692 ldrb r0,[r1,r0]\r
7693 orr z80f,z80f,r0\r
7694 fetch 12\r
7695;@OUT (C),0\r
7696opcode_ED_71:\r
7697 mov r1,#0\r
7698 opOUT_C\r
7699 fetch 12\r
7700\r
7701;@SBC HL,SP\r
7702opcode_ED_72:\r
7703.if FAST_Z80SP\r
7704 ldr r0,[cpucontext,#z80sp_base]\r
7705 sub r0,z80sp,r0\r
7706 mov r0, r0, lsl #16\r
7707.else\r
7708 mov r0,z80sp,lsl#16\r
7709.endif\r
7710 opSBC16 r0\r
7711;@LD (NN),SP\r
7712opcode_ED_73:\r
7713 ldrb r0,[z80pc],#1\r
7714 ldrb r1,[z80pc],#1\r
7715 orr r1,r0,r1, lsl #8\r
7716.if FAST_Z80SP\r
7717 ldr r0,[cpucontext,#z80sp_base]\r
7718 sub r0,z80sp,r0\r
7719.else\r
7720 mov r0,z80sp\r
7721.endif\r
7722 writemem16\r
7723 fetch 16\r
7724;@IN A,(C)\r
7725opcode_ED_78:\r
7726 opIN_C\r
7727 mov z80a,r0, lsl #24\r
7728 and z80f,z80f,#1<<CFlag\r
7729 sub r1,opcodes,#0x100\r
7730 ldrb r0,[r1,r0]\r
7731 orr z80f,z80f,r0\r
7732 fetch 12\r
7733;@OUT (C),A\r
7734opcode_ED_79:\r
7735 mov r1,z80a, lsr #24\r
7736 opOUT_C\r
7737 fetch 12\r
7738;@ADC HL,SP\r
7739opcode_ED_7A:\r
7740.if FAST_Z80SP\r
7741 ldr r0,[cpucontext,#z80sp_base]\r
7742 sub r0,z80sp,r0\r
7743 mov r0, r0, lsl #16\r
7744.else\r
7745 mov r0,z80sp,lsl#16\r
7746.endif\r
7747 opADC16 r0\r
7748;@LD SP,(NN)\r
7749opcode_ED_7B:\r
7750 ldrb r0,[z80pc],#1\r
7751 ldrb r1,[z80pc],#1\r
7752 orr r0,r0,r1, lsl #8\r
7753 readmem16\r
7754.if FAST_Z80SP\r
7755 rebasesp\r
7756.endif\r
7757 mov z80sp,r0\r
7758 fetch 20\r
7759;@LDI\r
7760opcode_ED_A0:\r
7761 copymem8HL_DE\r
7762 add z80hl,z80hl,#1<<16\r
7763 add z80de,z80de,#1<<16\r
7764 subs z80bc,z80bc,#1<<16\r
7765 bic z80f,z80f,#(1<<VFlag)|(1<<NFlag)|(1<<HFlag)\r
7766 orrne z80f,z80f,#1<<VFlag\r
7767 fetch 16\r
7768;@CPI\r
7769opcode_ED_A1:\r
7770 readmem8HL\r
7771 add z80hl,z80hl,#0x00010000\r
7772 mov r1,z80a,lsl#4\r
7773 cmp z80a,r0,lsl#24\r
7774 and z80f,z80f,#1<<CFlag\r
7775 orr z80f,z80f,#1<<NFlag\r
7776 orrmi z80f,z80f,#1<<SFlag\r
7777 orreq z80f,z80f,#1<<ZFlag\r
7778 cmp r1,r0,lsl#28\r
7779 orrcc z80f,z80f,#1<<HFlag\r
7780 subs z80bc,z80bc,#0x00010000\r
7781 orrne z80f,z80f,#1<<VFlag\r
7782 fetch 16\r
7783;@INI\r
7784opcode_ED_A2:\r
7785 opIN_C\r
7786 and z80f,r0,#0x80\r
7787 mov z80f,z80f,lsr#2 ;@NFlag set by bit 7\r
7788;@ mov r1,z80bc,lsl#8\r
7789;@ add r1,r1,#0x01000000\r
7790;@ adds r1,r1,r0,lsl#24\r
7791;@ orrcs z80f,z80f,#(1<<CFlag)|(1<<HFlag) ;@ CF & HF set if (HL) + ((C+1) & 0xFF) > 0xFF\r
7792 writemem8HL\r
7793 add z80hl,z80hl,#1<<16\r
7794 sub z80bc,z80bc,#1<<24\r
7795 tst z80bc,#0xFF<<24\r
7796 orrmi z80f,z80f,#1<<SFlag\r
7797 orreq z80f,z80f,#1<<ZFlag\r
7798 fetch 16\r
7799\r
7800;@OUTI\r
7801opcode_ED_A3:\r
7802 readmem8HL\r
7803 add z80hl,z80hl,#1<<16\r
7804 and z80f,r0,#0x80\r
7805 mov z80f,z80f,lsr#2 ;@NFlag set by bit 7\r
7806 mov r1,z80hl,lsl#8\r
7807 adds r1,r1,r0,lsl#24\r
7808 orrcs z80f,z80f,#(1<<CFlag)|(1<<HFlag) ;@ CF & HF set if (HL)+L > 0xFF\r
7809 sub z80bc,z80bc,#1<<24\r
7810 tst z80bc,#0xFF<<24\r
7811 orrmi z80f,z80f,#1<<SFlag\r
7812 orreq z80f,z80f,#1<<ZFlag\r
7813 mov r1,r0\r
7814 opOUT_C\r
7815 fetch 16\r
7816\r
7817;@LDD\r
7818opcode_ED_A8:\r
7819 copymem8HL_DE\r
7820 sub z80hl,z80hl,#1<<16\r
7821 sub z80de,z80de,#1<<16\r
7822 subs z80bc,z80bc,#1<<16\r
7823 bic z80f,z80f,#(1<<VFlag)|(1<<NFlag)|(1<<HFlag)\r
7824 orrne z80f,z80f,#1<<VFlag\r
7825 fetch 16\r
7826\r
7827;@CPD\r
7828opcode_ED_A9:\r
7829 readmem8HL\r
7830 sub z80hl,z80hl,#1<<16\r
7831 mov r1,z80a,lsl#4\r
7832 cmp z80a,r0,lsl#24\r
7833 and z80f,z80f,#1<<CFlag\r
7834 orr z80f,z80f,#1<<NFlag\r
7835 orrmi z80f,z80f,#1<<SFlag\r
7836 orreq z80f,z80f,#1<<ZFlag\r
7837 cmp r1,r0,lsl#28\r
7838 orrcc z80f,z80f,#1<<HFlag\r
7839 subs z80bc,z80bc,#0x00010000\r
7840 orrne z80f,z80f,#1<<VFlag\r
7841 fetch 16\r
7842\r
7843;@IND\r
7844opcode_ED_AA:\r
7845 opIN_C\r
7846 and z80f,r0,#0x80\r
7847 mov z80f,z80f,lsr#2 ;@NFlag set by bit 7\r
7848;@ mov r1,z80bc,lsl#8\r
7849;@ sub r1,r1,#0x01000000\r
7850;@ adds r1,r1,r0,lsl#24\r
7851;@ orrcs z80f,z80f,#(1<<CFlag)|(1<<HFlag) ;@ CF & HF set if (HL) + ((C-1) & 0xFF) > 0xFF\r
7852 writemem8HL\r
7853 sub z80hl,z80hl,#1<<16\r
7854 sub z80bc,z80bc,#1<<24\r
7855 tst z80bc,#0xFF<<24\r
7856 orrmi z80f,z80f,#1<<SFlag\r
7857 orreq z80f,z80f,#1<<ZFlag\r
7858 fetch 16\r
7859\r
7860;@OUTD\r
7861opcode_ED_AB:\r
7862 readmem8HL\r
7863 sub z80hl,z80hl,#1<<16\r
7864 and z80f,r0,#0x80\r
7865 mov z80f,z80f,lsr#2 ;@NFlag set by bit 7\r
7866 mov r1,z80hl,lsl#8\r
7867 adds r1,r1,r0,lsl#24\r
7868 orrcs z80f,z80f,#(1<<CFlag)|(1<<HFlag) ;@ CF & HF set if r0+HL > 0xFF\r
7869 sub z80bc,z80bc,#1<<24\r
7870 tst z80bc,#0xFF<<24\r
7871 orrmi z80f,z80f,#1<<SFlag\r
7872 orreq z80f,z80f,#1<<ZFlag\r
7873 mov r1,r0\r
7874 opOUT_C\r
7875 fetch 16\r
7876;@LDIR\r
7877opcode_ED_B0:\r
7878 copymem8HL_DE\r
7879 add z80hl,z80hl,#1<<16\r
7880 add z80de,z80de,#1<<16\r
7881 subs z80bc,z80bc,#1<<16\r
7882 bic z80f,z80f,#(1<<VFlag)|(1<<NFlag)|(1<<HFlag)\r
7883 orrne z80f,z80f,#1<<VFlag\r
7884 subne z80pc,z80pc,#2\r
7885 subne z80_icount,z80_icount,#5\r
7886 fetch 16\r
7887\r
7888;@CPIR\r
7889opcode_ED_B1:\r
7890 readmem8HL\r
7891 add z80hl,z80hl,#1<<16 \r
7892 mov r1,z80a,lsl#4\r
7893 cmp z80a,r0,lsl#24\r
7894 and z80f,z80f,#1<<CFlag\r
7895 orr z80f,z80f,#1<<NFlag\r
7896 orrmi z80f,z80f,#1<<SFlag\r
7897 orreq z80f,z80f,#1<<ZFlag\r
7898 cmp r1,r0,lsl#28\r
7899 orrcc z80f,z80f,#1<<HFlag\r
7900 subs z80bc,z80bc,#1<<16\r
7901 bne opcode_ED_B1_decpc\r
7902 fetch 16\r
7903opcode_ED_B1_decpc:\r
7904 orr z80f,z80f,#1<<VFlag\r
7905 tst z80f,#1<<ZFlag\r
7906 subeq z80pc,z80pc,#2\r
7907 subeq z80_icount,z80_icount,#5\r
7908 fetch 16\r
7909;@INIR\r
7910opcode_ED_B2:\r
7911 opIN_C\r
7912 and z80f,r0,#0x80\r
7913 mov z80f,z80f,lsr#2 ;@NFlag set by bit 7\r
7914;@ mov r1,z80bc,lsl#8\r
7915;@ add r1,r1,#0x01000000\r
7916;@ adds r1,r1,r0,lsl#24\r
7917;@ orrcs z80f,z80f,#(1<<CFlag)|(1<<HFlag) ;@ CF & HF set if (HL) + ((C+1) & 0xFF) > 0xFF\r
7918 writemem8HL\r
7919 add z80hl,z80hl,#1<<16\r
7920 sub z80bc,z80bc,#1<<24\r
7921 tst z80bc,#0xFF<<24\r
7922 orrmi z80f,z80f,#1<<SFlag\r
7923 orreq z80f,z80f,#1<<ZFlag\r
7924 subne z80pc,z80pc,#2\r
7925 subne z80_icount,z80_icount,#5\r
7926 fetch 16\r
7927;@OTIR\r
7928opcode_ED_B3:\r
7929 readmem8HL\r
7930 add z80hl,z80hl,#1<<16\r
7931 and z80f,r0,#0x80\r
7932 mov z80f,z80f,lsr#2 ;@NFlag set by bit 7\r
7933 mov r1,z80hl,lsl#8\r
7934 adds r1,r1,r0,lsl#24\r
7935 orrcs z80f,z80f,#(1<<CFlag)|(1<<HFlag) ;@ CF & HF set if r0+HL > 0xFF\r
7936 sub z80bc,z80bc,#1<<24\r
7937 tst z80bc,#0xFF<<24\r
7938 orrmi z80f,z80f,#1<<SFlag\r
7939 orreq z80f,z80f,#1<<ZFlag\r
7940 subne z80pc,z80pc,#2\r
7941 subne z80_icount,z80_icount,#5\r
7942 mov r1,r0\r
7943 opOUT_C\r
7944 fetch 16\r
7945;@LDDR\r
7946opcode_ED_B8:\r
7947 copymem8HL_DE\r
7948 sub z80hl,z80hl,#1<<16\r
7949 sub z80de,z80de,#1<<16\r
7950 subs z80bc,z80bc,#1<<16\r
7951 bic z80f,z80f,#(1<<VFlag)|(1<<NFlag)|(1<<HFlag)\r
7952 orrne z80f,z80f,#1<<VFlag\r
7953 subne z80pc,z80pc,#2\r
7954 subne z80_icount,z80_icount,#5\r
7955 fetch 16\r
7956\r
7957;@CPDR\r
7958opcode_ED_B9:\r
7959 readmem8HL\r
7960 sub z80hl,z80hl,#1<<16\r
7961 mov r1,z80a,lsl#4\r
7962 cmp z80a,r0,lsl#24\r
7963 and z80f,z80f,#1<<CFlag\r
7964 orr z80f,z80f,#1<<NFlag\r
7965 orrmi z80f,z80f,#1<<SFlag\r
7966 orreq z80f,z80f,#1<<ZFlag\r
7967 cmp r1,r0,lsl#28\r
7968 orrcc z80f,z80f,#1<<HFlag\r
7969 subs z80bc,z80bc,#1<<16\r
7970 bne opcode_ED_B9_decpc\r
7971 fetch 16\r
7972opcode_ED_B9_decpc:\r
7973 orr z80f,z80f,#1<<VFlag\r
7974 tst z80f,#1<<ZFlag\r
7975 subeq z80pc,z80pc,#2\r
7976 subeq z80_icount,z80_icount,#5\r
7977 fetch 16\r
7978;@INDR\r
7979opcode_ED_BA:\r
7980 opIN_C\r
7981 and z80f,r0,#0x80\r
7982 mov z80f,z80f,lsr#2 ;@NFlag set by bit 7\r
7983;@ mov r1,z80bc,lsl#8\r
7984;@ sub r1,r1,#0x01000000\r
7985;@ adds r1,r1,r0,lsl#24\r
7986;@ orrcs z80f,z80f,#(1<<CFlag)|(1<<HFlag) ;@ CF & HF set if (HL) + ((C-1) & 0xFF) > 0xFF\r
7987 writemem8HL\r
7988 sub z80hl,z80hl,#1<<16\r
7989 sub z80bc,z80bc,#1<<24\r
7990 tst z80bc,#0xFF<<24\r
7991 orrmi z80f,z80f,#1<<SFlag\r
7992 orreq z80f,z80f,#1<<ZFlag\r
7993 subne z80pc,z80pc,#2\r
7994 subne z80_icount,z80_icount,#5\r
7995 fetch 16\r
7996;@OTDR\r
7997opcode_ED_BB:\r
7998 readmem8HL\r
7999 sub z80hl,z80hl,#1<<16\r
8000 and z80f,r0,#0x80\r
8001 mov z80f,z80f,lsr#2 ;@NFlag set by bit 7\r
8002 mov r1,z80hl,lsl#8\r
8003 adds r1,r1,r0,lsl#24\r
8004 orrcs z80f,z80f,#(1<<CFlag)|(1<<HFlag) ;@ CF & HF set if r0+HL > 0xFF\r
8005 sub z80bc,z80bc,#1<<24\r
8006 tst z80bc,#0xFF<<24\r
8007 orrmi z80f,z80f,#1<<SFlag\r
8008 orreq z80f,z80f,#1<<ZFlag\r
8009 subne z80pc,z80pc,#2\r
8010 subne z80_icount,z80_icount,#5\r
8011 mov r1,r0\r
8012 opOUT_C\r
8013 fetch 16\r
8014;@##################################\r
8015;@##################################\r
8016;@### opcodes FD #########################\r
8017;@##################################\r
8018;@##################################\r
8019;@Since DD and FD opcodes are all the same apart from the address\r
8020;@register they use. When a FD intruction the program runs the code\r
8021;@from the DD location but the address of the IY reg is passed instead\r
8022;@of IX\r
8023\r
f0243975 8024;@end_loop:\r
8025;@ b end_loop\r
cc68a136 8026\r
de89bf45 8027;@ vim:filetype=armasm\r
cc68a136 8028\r