1;@ Reesy's Z80 Emulator Version 0.001
2
3;@ (c) Copyright 2004 Reesy, All rights reserved
4;@ DrZ80 is free for non-commercial use.
5
6;@ For commercial use, separate licencing terms must be obtained.
7
8      .data
9      .align 4
10
11      .global DrZ80Run
12	  .type DrZ80Run, %function
13      .global DrZ80Ver
14	  .type DrZ80Ver, %function
15
16	  .equiv INTERRUPT_MODE, 		1		;@1 = Call MAME before IRQ handling
17	  .equiv FAST_Z80SP,			1		;@0 = Use mem functions for stack pointer, 1 = Use direct mem pointer
18	  .equiv UPDATE_CONTEXT,		1		;@1 = Update context vars for MAME
19
20.if INTERRUPT_MODE
21	  .extern Interrupt
22.endif
23
24DrZ80Ver: .long 0x0001
25
26;@ --------------------------- Defines ----------------------------
27;@ Make sure that regs/pointers for z80pc to z80sp match up!
28
29	opcodes .req r3
30	z80_icount .req r4
31	cpucontext .req r5
32	z80pc .req r6
33	z80a .req r7
34	z80f .req r8
35	z80bc .req r9
36	z80de .req r10
37	z80hl .req r11
38	z80sp .req r12
39	z80xx .req lr
40
41	.equ z80pc_pointer,           0                  ;@  0
42	.equ z80a_pointer,            z80pc_pointer+4    ;@  4
43	.equ z80f_pointer,            z80a_pointer+4     ;@  8
44	.equ z80bc_pointer,           z80f_pointer+4     ;@
45	.equ z80de_pointer,           z80bc_pointer+4
46	.equ z80hl_pointer,           z80de_pointer+4
47	.equ z80sp_pointer,           z80hl_pointer+4
48	.equ z80pc_base,              z80sp_pointer+4
49	.equ z80sp_base,              z80pc_base+4
50	.equ z80ix,                   z80sp_base+4
51	.equ z80iy,                   z80ix+4
52	.equ z80i,                    z80iy+4
53	.equ z80a2,                   z80i+4
54	.equ z80f2,                   z80a2+4
55	.equ z80bc2,                  z80f2+4
56	.equ z80de2,                  z80bc2+4
57	.equ z80hl2,                  z80de2+4
58	.equ cycles_pointer,          z80hl2+4
59	.equ z80irq,                  cycles_pointer+4
60	.equ z80if,                   z80irq+1
61	.equ z80im,                   z80if+1
62	.equ z80r,                    z80im+1
63	.equ z80irqvector,            z80r+1
64	.equ z80irqcallback,          z80irqvector+4
65	.equ z80_write8,              z80irqcallback+4
66	.equ z80_write16,             z80_write8+4
67	.equ z80_in,                  z80_write16+4
68	.equ z80_out,                 z80_in+4
69	.equ z80_read8,               z80_out+4
70	.equ z80_read16,              z80_read8+4
71	.equ z80_rebaseSP,            z80_read16+4
72	.equ z80_rebasePC,            z80_rebaseSP+4
73
74	.equ VFlag, 0
75	.equ CFlag, 1
76	.equ ZFlag, 2
77	.equ SFlag, 3
78	.equ HFlag, 4
79	.equ NFlag, 5
80	.equ Flag3, 6
81	.equ Flag5, 7
82
83	.equ Z80_CFlag, 0
84	.equ Z80_NFlag, 1
85	.equ Z80_VFlag, 2
86	.equ Z80_Flag3, 3
87	.equ Z80_HFlag, 4
88	.equ Z80_Flag5, 5
89	.equ Z80_ZFlag, 6
90	.equ Z80_SFlag, 7
91
92	.equ Z80_IF1, 1<<0
93	.equ Z80_IF2, 1<<1
94	.equ Z80_HALT, 1<<2
95
96;@---------------------------------------
97
98.text
99
100.macro fetch cycs
101	subs z80_icount,z80_icount,#\cycs
102	ldrplb r0,[z80pc],#1
103	ldrpl pc,[opcodes,r0, lsl #2]
104	bmi z80_execute_end
105.endm
106
107.macro eatcycles cycs
108	sub z80_icount,z80_icount,#\cycs
109.endm
110
111.macro readmem8
112.if UPDATE_CONTEXT
113	str z80_icount,[cpucontext,#cycles_pointer]
114     	str z80pc,[cpucontext,#z80pc_pointer]
115     	str z80de,[cpucontext,#z80de_pointer]
116     	str z80bc,[cpucontext,#z80bc_pointer]
117     	str z80hl,[cpucontext,#z80hl_pointer]
118.endif
119	stmfd sp!,{r3,r12}
120	mov lr,pc
121	ldr pc,[cpucontext,#z80_read8]			;@ r0 = addr - data returned in r0
122	ldmfd sp!,{r3,r12}
123.if UPDATE_CONTEXT
124	ldr z80_icount,[cpucontext,#cycles_pointer]
125.endif
126.endm
127
128.macro readmem8HL
129	mov r0,z80hl, lsr #16
130	readmem8
131.endm
132
133.macro readmem16
134.if UPDATE_CONTEXT
135	str z80_icount,[cpucontext,#cycles_pointer]
136     	str z80pc,[cpucontext,#z80pc_pointer]
137     	str z80de,[cpucontext,#z80de_pointer]
138     	str z80bc,[cpucontext,#z80bc_pointer]
139     	str z80hl,[cpucontext,#z80hl_pointer]
140.endif
141	stmfd sp!,{r3,r12}
142	mov lr,pc
143	ldr pc,[cpucontext,#z80_read16]
144	ldmfd sp!,{r3,r12}
145.if UPDATE_CONTEXT
146	ldr z80_icount,[cpucontext,#cycles_pointer]
147.endif
148.endm
149
150.macro writemem8
151.if UPDATE_CONTEXT
152	str z80_icount,[cpucontext,#cycles_pointer]
153     	str z80pc,[cpucontext,#z80pc_pointer]
154.endif
155	stmfd sp!,{r3,r12}
156	mov lr,pc
157	ldr pc,[cpucontext,#z80_write8]			;@ r0=data r1=addr
158	ldmfd sp!,{r3,r12}
159.if UPDATE_CONTEXT
160	ldr z80_icount,[cpucontext,#cycles_pointer]
161.endif
162.endm
163
164.macro writemem8DE
165	mov r1,z80de, lsr #16
166	writemem8
167.endm
168
169.macro writemem8HL
170	mov r1,z80hl, lsr #16
171	writemem8
172.endm
173
174.macro writemem16
175.if UPDATE_CONTEXT
176	str z80_icount,[cpucontext,#cycles_pointer]
177     	str z80pc,[cpucontext,#z80pc_pointer]
178.endif
179	stmfd sp!,{r3,r12}
180	mov lr,pc
181	ldr pc,[cpucontext,#z80_write16]		;@ r0=data r1=addr
182	ldmfd sp!,{r3,r12}
183.if UPDATE_CONTEXT
184	ldr z80_icount,[cpucontext,#cycles_pointer]
185.endif
186.endm
187
188.macro copymem8HL_DE
189	mov r0,z80hl, lsr #16
190	stmfd sp!,{r3,r12}
191	mov lr,pc
192	ldr pc,[cpucontext,#z80_read8]			;@ r0 = addr - data returned in r0
193	mov r1,z80de, lsr #16
194	mov lr,pc
195	ldr pc,[cpucontext,#z80_write8]			;@ r0=data r1=addr
196	ldmfd sp!,{r3,r12}
197.endm
198;@---------------------------------------
199.macro rebasepc
200	stmfd sp!,{r3,r12}
201	mov lr,pc
202	ldr pc,[cpucontext,#z80_rebasePC]		;@ r0=new pc - external function sets z80pc_base and returns new z80pc in r0
203	ldmfd sp!,{r3,r12}
204	mov z80pc,r0
205.endm
206
207.macro rebasesp
208	stmfd sp!,{r3,r12}
209	mov lr,pc
210	ldr pc,[cpucontext,#z80_rebaseSP]		;@ external function must rebase sp
211	ldmfd sp!,{r3,r12}
212	mov z80sp,r0
213.endm
214;@----------------------------------------------------------------------------
215
216.macro opADC
217	movs z80f,z80f,lsr#2					;@ get C
218	subcs r0,r0,#0x100
219	eor z80f,r0,z80a,lsr#24					;@ prepare for check of half carry
220	adcs z80a,z80a,r0,ror#8
221	mrs r0,cpsr								;@ S,Z,V&C
222	eor z80f,z80f,z80a,lsr#24
223	and z80f,z80f,#1<<HFlag					;@ H, correct
224	orr z80f,z80f,r0,lsr#28
225.endm
226
227.macro opADCA
228	movs z80f,z80f,lsr#2					;@ get C
229	orrcs z80a,z80a,#0x00800000
230	adds z80a,z80a,z80a
231	mrs z80f,cpsr							;@ S,Z,V&C
232	mov z80f,z80f,lsr#28
233	tst z80a,#0x10000000					;@ H, correct
234	orrne z80f,z80f,#1<<HFlag
235	fetch 4
236.endm
237
238.macro opADCH reg
239	mov r0,\reg,lsr#24
240	opADC
241	fetch 4
242.endm
243
244.macro opADCL reg
245	movs z80f,z80f,lsr#2					;@ get C
246	adc r0,\reg,\reg,lsr#15
247	orrcs z80a,z80a,#0x00800000
248	mov r1,z80a,lsl#4						;@ Prepare for check of half carry
249	adds z80a,z80a,r0,lsl#23
250	mrs z80f,cpsr							;@ S,Z,V&C
251	mov z80f,z80f,lsr#28
252	cmn r1,r0,lsl#27
253	orrcs z80f,z80f,#1<<HFlag				;@ H, correct
254	fetch 4
255.endm
256
257.macro opADCb
258	opADC
259.endm
260;@---------------------------------------
261
262.macro opADD reg shift
263	mov r1,z80a,lsl#4						;@ Prepare for check of half carry
264	adds z80a,z80a,\reg,lsl#\shift
265	mrs z80f,cpsr							;@ S,Z,V&C
266	mov z80f,z80f,lsr#28
267	cmn r1,\reg,lsl#\shift+4
268	orrcs z80f,z80f,#1<<HFlag
269.endm
270
271.macro opADDA
272	adds z80a,z80a,z80a
273	mrs z80f,cpsr							;@ S,Z,V&C
274	mov z80f,z80f,lsr#28
275	tst z80a,#0x10000000					;@ H, correct
276	orrne z80f,z80f,#1<<HFlag
277	fetch 4
278.endm
279
280.macro opADDH reg
281	and r0,\reg,#0xFF000000
282	opADD r0 0
283	fetch 4
284.endm
285
286.macro opADDL reg
287	opADD \reg 8
288	fetch 4
289.endm
290
291.macro opADDb
292	opADD r0 24
293.endm
294;@---------------------------------------
295
296.macro opADC16 reg
297	movs z80f,z80f,lsr#2					;@ get C
298	adc r0,z80a,\reg,lsr#15
299	orrcs z80hl,z80hl,#0x00008000
300	mov r1,z80hl,lsl#4
301	adds z80hl,z80hl,r0,lsl#15
302	mrs z80f,cpsr							;@ S, Z, V & C
303	mov z80f,z80f,lsr#28
304	cmn r1,r0,lsl#19
305	orrcs z80f,z80f,#1<<HFlag
306	fetch 15
307.endm
308
309.macro opADC16HL
310	movs z80f,z80f,lsr#2					;@ get C
311	orrcs z80hl,z80hl,#0x00008000
312	adds z80hl,z80hl,z80hl
313	mrs z80f,cpsr							;@ S, Z, V & C
314	mov z80f,z80f,lsr#28
315	tst z80hl,#0x10000000					;@ H, correct.
316	orrne z80f,z80f,#1<<HFlag
317	fetch 15
318.endm
319
320.macro opADD16 reg1 reg2
321	mov r1,\reg1,lsl#4						;@ Prepare for check of half carry
322	adds \reg1,\reg1,\reg2
323	bic z80f,z80f,#(1<<CFlag)|(1<<HFlag)|(1<<NFlag)
324	orrcs z80f,z80f,#1<<CFlag
325	cmn r1,\reg2,lsl#4
326	orrcs z80f,z80f,#1<<HFlag
327.endm
328
329.macro opADD16s reg1 reg2 shift
330	mov r1,\reg1,lsl#4						;@ Prepare for check of half carry
331	adds \reg1,\reg1,\reg2,lsl#\shift
332	bic z80f,z80f,#(1<<CFlag)|(1<<HFlag)|(1<<NFlag)
333	orrcs z80f,z80f,#1<<CFlag
334	cmn r1,\reg2,lsl#4+\shift
335	orrcs z80f,z80f,#1<<HFlag
336.endm
337
338.macro opADD16_2 reg
339	adds \reg,\reg,\reg
340	bic z80f,z80f,#(1<<CFlag)|(1<<HFlag)|(1<<NFlag)
341	orrcs z80f,z80f,#1<<CFlag
342	tst \reg,#0x10000000					;@ H, correct.
343	orrne z80f,z80f,#1<<HFlag
344.endm
345;@---------------------------------------
346
347.macro opAND reg shift
348	and z80a,z80a,\reg,lsl#\shift
349	sub r0,opcodes,#0x100
350	ldrb z80f,[r0,z80a, lsr #24]
351	orr z80f,z80f,#1<<HFlag
352.endm
353
354.macro opANDA
355	sub r0,opcodes,#0x100
356	ldrb z80f,[r0,z80a, lsr #24]
357	orr z80f,z80f,#1<<HFlag
358	fetch 4
359.endm
360
361.macro opANDH reg
362	opAND \reg 0
363	fetch 4
364.endm
365
366.macro opANDL reg
367	opAND \reg 8
368	fetch 4
369.endm
370
371.macro opANDb
372	opAND r0 24
373.endm
374;@---------------------------------------
375
376.macro opBITH reg bit
377	and z80f,z80f,#1<<CFlag
378	tst \reg,#1<<(24+\bit)
379	orreq z80f,z80f,#(1<<HFlag)|(1<<ZFlag)|(1<<VFlag)
380	orrne z80f,z80f,#(1<<HFlag)
381	fetch 8
382.endm
383
384.macro opBIT7H reg
385	and z80f,z80f,#1<<CFlag
386	tst \reg,#1<<(24+7)
387	orreq z80f,z80f,#(1<<HFlag)|(1<<ZFlag)|(1<<VFlag)
388	orrne z80f,z80f,#(1<<HFlag)|(1<<SFlag)
389	fetch 8
390.endm
391
392.macro opBITL reg bit
393	and z80f,z80f,#1<<CFlag
394	tst \reg,#1<<(16+\bit)
395	orreq z80f,z80f,#(1<<HFlag)|(1<<ZFlag)|(1<<VFlag)
396	orrne z80f,z80f,#(1<<HFlag)
397	fetch 8
398.endm
399
400.macro opBIT7L reg
401	and z80f,z80f,#1<<CFlag
402	tst \reg,#1<<(16+7)
403	orreq z80f,z80f,#(1<<HFlag)|(1<<ZFlag)|(1<<VFlag)
404	orrne z80f,z80f,#(1<<HFlag)|(1<<SFlag)
405	fetch 8
406.endm
407
408.macro opBITb bit
409	and z80f,z80f,#1<<CFlag
410	tst r0,#1<<\bit
411	orreq z80f,z80f,#(1<<HFlag)|(1<<ZFlag)|(1<<VFlag)
412	orrne z80f,z80f,#(1<<HFlag)
413.endm
414
415.macro opBIT7b
416	and z80f,z80f,#1<<CFlag
417	tst r0,#1<<7
418	orreq z80f,z80f,#(1<<HFlag)|(1<<ZFlag)|(1<<VFlag)
419	orrne z80f,z80f,#(1<<HFlag)|(1<<SFlag)
420.endm
421;@---------------------------------------
422
423.macro opCP reg shift
424	mov r1,z80a,lsl#4						;@ prepare for check of half carry
425	cmp z80a,\reg,lsl#\shift
426	mrs z80f,cpsr
427	mov z80f,z80f,lsr#28					;@ S,Z,V&C
428	eor z80f,z80f,#(1<<CFlag)|(1<<NFlag)	;@ invert C and set n
429	cmp r1,\reg,lsl#\shift+4
430	orrcc z80f,z80f,#1<<HFlag
431.endm
432
433.macro opCPA
434	mov z80f,#(1<<ZFlag)|(1<<NFlag)			;@ set Z & n
435	fetch 4
436.endm
437
438.macro opCPH reg
439	and r0,\reg,#0xFF000000
440	opCP r0 0
441	fetch 4
442.endm
443
444.macro opCPL reg
445	opCP \reg 8
446	fetch 4
447.endm
448
449.macro opCPb
450	opCP r0 24
451.endm
452;@---------------------------------------
453
454.macro opDEC8 reg							;@for A and memory
455	and z80f,z80f,#1<<CFlag					;@save carry
456	orr z80f,z80f,#1<<NFlag					;@set n
457	tst \reg,#0x0f000000
458	orreq z80f,z80f,#1<<HFlag
459	subs \reg,\reg,#0x01000000
460	orrmi z80f,z80f,#1<<SFlag
461	orrvs z80f,z80f,#1<<VFlag
462	orreq z80f,z80f,#1<<ZFlag
463.endm
464
465.macro opDEC8H reg							;@for B, D & H
466	and z80f,z80f,#1<<CFlag					;@save carry
467	orr z80f,z80f,#1<<NFlag					;@set n
468	tst \reg,#0x0f000000
469	orreq z80f,z80f,#1<<HFlag
470	subs \reg,\reg,#0x01000000
471	orrmi z80f,z80f,#1<<SFlag
472	orrvs z80f,z80f,#1<<VFlag
473	tst \reg,#0xff000000					;@Z
474	orreq z80f,z80f,#1<<ZFlag
475.endm
476
477.macro opDEC8L reg							;@for C, E & L
478	mov \reg,\reg,ror#24
479	opDEC8H \reg
480	mov \reg,\reg,ror#8
481.endm
482
483.macro opDEC8b								;@for memory
484	mov r0,r0,lsl#24
485	opDEC8 r0
486	mov r0,r0,lsr#24
487.endm
488;@---------------------------------------
489
490.macro opIN
491.if UPDATE_CONTEXT
492	str z80_icount,[cpucontext,#cycles_pointer]
493     	str z80pc,[cpucontext,#z80pc_pointer]
494     	str z80de,[cpucontext,#z80de_pointer]
495     	str z80bc,[cpucontext,#z80bc_pointer]
496.endif
497	stmfd sp!,{r3,r12}
498	mov lr,pc
499	ldr pc,[cpucontext,#z80_in]				;@ r0=port - data returned in r0
500	ldmfd sp!,{r3,r12}
501.if UPDATE_CONTEXT
502	ldr z80_icount,[cpucontext,#cycles_pointer]
503.endif
504.endm
505
506.macro opIN_C
507	mov r0,z80bc, lsr #16
508	opIN
509.endm
510;@---------------------------------------
511
512.macro opINC8 reg							;@for A and memory
513	and z80f,z80f,#1<<CFlag					;@save carry, clear n
514	adds \reg,\reg,#0x01000000
515	orrmi z80f,z80f,#1<<SFlag
516	orrvs z80f,z80f,#1<<VFlag
517	orrcs z80f,z80f,#1<<ZFlag				;@cs when going from 0xFF to 0x00
518	tst \reg,#0x0f000000
519	orreq z80f,z80f,#1<<HFlag
520.endm
521
522.macro opINC8H reg							;@for B, D & H
523	opINC8 \reg
524.endm
525
526.macro opINC8L reg							;@for C, E & L
527	mov \reg,\reg,ror#24
528	opINC8 \reg
529	mov \reg,\reg,ror#8
530.endm
531
532.macro opINC8b								;@for memory
533	mov r0,r0,lsl#24
534	opINC8 r0
535	mov r0,r0,lsr#24
536.endm
537;@---------------------------------------
538
539.macro opOR reg shift
540	orr z80a,z80a,\reg,lsl#\shift
541	sub r0,opcodes,#0x100
542	ldrb z80f,[r0,z80a, lsr #24]
543.endm
544
545.macro opORA
546	sub r0,opcodes,#0x100
547	ldrb z80f,[r0,z80a, lsr #24]
548	fetch 4
549.endm
550
551.macro opORH reg
552	and r0,\reg,#0xFF000000
553	opOR r0 0
554	fetch 4
555.endm
556
557.macro opORL reg
558	opOR \reg 8
559	fetch 4
560.endm
561
562.macro opORb
563	opOR r0 24
564.endm
565;@---------------------------------------
566
567.macro opOUT
568.if UPDATE_CONTEXT
569	str z80_icount,[cpucontext,#cycles_pointer]
570     	str z80pc,[cpucontext,#z80pc_pointer]
571     	str z80bc,[cpucontext,#z80bc_pointer]
572.endif
573	stmfd sp!,{r3,r12}
574	mov lr,pc
575	ldr pc,[cpucontext,#z80_out]			;@ r0=port r1=data
576	ldmfd sp!,{r3,r12}
577.if UPDATE_CONTEXT
578	ldr z80_icount,[cpucontext,#cycles_pointer]
579.endif
580.endm
581
582.macro opOUT_C
583	mov r0,z80bc, lsr #16
584	opOUT
585.endm
586;@---------------------------------------
587
588.macro opPOP
589.if FAST_Z80SP
590	ldrb r0,[z80sp],#1
591	ldrb r1,[z80sp],#1
592	orr r0,r0,r1, lsl #8
593.else
594	mov r0,z80sp
595	readmem16
596	add z80sp,z80sp,#2
597.endif
598.endm
599
600.macro opPOPreg reg
601	opPOP
602	mov \reg,r0, lsl #16
603	fetch 10
604.endm
605;@---------------------------------------
606
607.macro opPUSHreg reg
608.if FAST_Z80SP
609	mov r1,\reg, lsr #24
610	strb r1,[z80sp,#-1]!
611	mov r1,\reg, lsr #16
612	strb r1,[z80sp,#-1]!
613.else
614	mov r0,\reg,lsr #16
615	sub z80sp,z80sp,#2
616	mov r1,z80sp
617	writemem16
618.endif
619.endm
620;@---------------------------------------
621
622.macro opRESmemHL bit
623	mov r0,z80hl, lsr #16
624	stmfd sp!,{r3,r12}
625	mov lr,pc
626	ldr pc,[cpucontext,#z80_read8]			;@ r0 = addr - data returned in r0
627	bic r0,r0,#1<<\bit
628	mov r1,z80hl, lsr #16
629	mov lr,pc
630	ldr pc,[cpucontext,#z80_write8]			;@ r0=data r1=addr
631	ldmfd sp!,{r3,r12}
632	fetch 15
633.endm
634;@---------------------------------------
635
636.macro opRESmem bit
637	stmfd sp!,{r3,r12}
638	stmfd sp!,{r0}							;@ save addr as well
639	mov lr,pc
640	ldr pc,[cpucontext,#z80_read8] 			;@ r0=addr - data returned in r0
641	bic r0,r0,#1<<\bit
642	ldmfd sp!,{r1}							;@ restore addr into r1
643	mov lr,pc
644	ldr pc,[cpucontext,#z80_write8]			;@ r0=data r1=addr
645	ldmfd sp!,{r3,r12}
646	fetch 23
647.endm
648;@---------------------------------------
649
650.macro opRL reg1 reg2 shift
651	movs \reg1,\reg2,lsl#\shift
652	tst z80f,#1<<CFlag						;@doesn't affect ARM carry, as long as the imidiate value is < 0x100. Watch out!
653	orrne \reg1,\reg1,#0x01000000
654;@	and r2,z80f,#1<<CFlag
655;@	orr $x,$x,r2,lsl#23
656	sub r1,opcodes,#0x100
657	ldrb z80f,[r1,\reg1,lsr#24]				;@get PZS
658	orrcs z80f,z80f,#1<<CFlag
659.endm
660
661.macro opRLA
662	opRL z80a z80a 1
663	fetch 8
664.endm
665
666.macro opRLH reg
667	and r0,\reg,#0xFF000000					;@mask high to r0
668	adds \reg,\reg,r0
669	tst z80f,#1<<CFlag						;@doesn't affect ARM carry, as long as the imidiate value is < 0x100. Watch out!
670	orrne \reg,\reg,#0x01000000
671	sub r1,opcodes,#0x100
672	ldrb z80f,[r1,\reg,lsr#24]				;@get PZS
673	orrcs z80f,z80f,#1<<CFlag
674	fetch 8
675.endm
676
677.macro opRLL reg
678	opRL r0 \reg 9
679	and \reg,\reg,#0xFF000000				;@mask out high
680	orr \reg,\reg,r0,lsr#8
681	fetch 8
682.endm
683
684.macro opRLb
685	opRL r0 r0 25
686	mov r0,r0,lsr#24
687.endm
688;@---------------------------------------
689
690.macro opRLC reg1 reg2 shift
691	movs \reg1,\reg2,lsl#\shift
692	orrcs \reg1,\reg1,#0x01000000
693	sub r1,opcodes,#0x100
694	ldrb z80f,[r1,\reg1,lsr#24]
695	orrcs z80f,z80f,#1<<CFlag
696.endm
697
698.macro opRLCA
699	opRLC z80a z80a 1
700	fetch 8
701.endm
702
703.macro opRLCH reg
704	and r0,\reg,#0xFF000000					;@mask high to r0
705	adds \reg,\reg,r0
706	orrcs \reg,\reg,#0x01000000
707	sub r1,opcodes,#0x100
708	ldrb z80f,[r1,\reg,lsr#24]
709	orrcs z80f,z80f,#1<<CFlag
710	fetch 8
711.endm
712
713.macro opRLCL reg
714	opRLC r0 \reg 9
715	and \reg,\reg,#0xFF000000				;@mask out high
716	orr \reg,\reg,r0,lsr#8
717	fetch 8
718.endm
719
720.macro opRLCb
721	opRLC r0 r0 25
722	mov r0,r0,lsr#24
723.endm
724;@---------------------------------------
725
726.macro opRR reg1 reg2 shift
727	movs \reg1,\reg2,lsr#\shift
728	tst z80f,#1<<CFlag						;@doesn't affect ARM carry, as long as the imidiate value is < 0x100. Watch out!
729	orrne \reg1,\reg1,#0x00000080
730;@	and r2,z80_f,#PSR_C
731;@	orr \reg1,\reg1,r2,lsl#6
732	sub r1,opcodes,#0x100
733	ldrb z80f,[r1,\reg1]
734	orrcs z80f,z80f,#1<<CFlag
735.endm
736
737.macro opRRA
738	orr z80a,z80a,z80f,lsr#1				;@get C
739	movs z80a,z80a,ror#25
740	mov z80a,z80a,lsl#24
741	sub r1,opcodes,#0x100
742	ldrb z80f,[r1,z80a,lsr#24]
743	orrcs z80f,z80f,#1<<CFlag
744	fetch 8
745.endm
746
747.macro opRRH reg
748	orr r0,\reg,z80f,lsr#1					;@get C
749	movs r0,r0,ror#25
750	and \reg,\reg,#0x00FF0000				;@mask out low
751	orr \reg,\reg,r0,lsl#24
752	sub r1,opcodes,#0x100
753	ldrb z80f,[r1,\reg,lsr#24]
754	orrcs z80f,z80f,#1<<CFlag
755	fetch 8
756.endm
757
758.macro opRRL reg
759	and r0,\reg,#0x00FF0000					;@mask out low to r0
760	opRR r0 r0 17
761	and \reg,\reg,#0xFF000000				;@mask out high
762	orr \reg,\reg,r0,lsl#16
763	fetch 8
764.endm
765
766.macro opRRb
767	opRR r0 r0 1
768.endm
769;@---------------------------------------
770
771.macro opRRC reg1 reg2 shift
772	movs \reg1,\reg2,lsr#\shift
773	orrcs \reg1,\reg1,#0x00000080
774	sub r1,opcodes,#0x100
775	ldrb z80f,[r1,\reg1]
776	orrcs z80f,z80f,#1<<CFlag
777.endm
778
779.macro opRRCA
780	opRRC z80a z80a 25
781	mov z80a,z80a,lsl#24
782	fetch 8
783.endm
784
785.macro opRRCH reg
786	opRRC r0 \reg 25
787	and \reg,\reg,#0x00FF0000				;@mask out low
788	orr \reg,\reg,r0,lsl#24
789	fetch 8
790.endm
791
792.macro opRRCL reg
793	and r0,\reg,#0x00FF0000					;@mask low to r0
794	opRRC r0 r0 17
795	and \reg,\reg,#0xFF000000				;@mask out high
796	orr \reg,\reg,r0,lsl#16
797	fetch 8
798.endm
799
800.macro opRRCb
801	opRRC r0 r0 1
802.endm
803;@---------------------------------------
804
805.macro opRST addr
806	ldr r0,[cpucontext,#z80pc_base]
807	sub r0,z80pc,r0
808.if FAST_Z80SP
809	mov r1,r0, lsr #8
810	strb r1,[z80sp,#-1]!
811	strb r0,[z80sp,#-1]!
812.else
813	sub z80sp,z80sp,#2
814	mov r1,z80sp
815	writemem16
816.endif
817	mov r0,#\addr
818	rebasepc
819	fetch 11
820.endm
821;@---------------------------------------
822
823.macro opSBC
824	eor z80f,z80f,#1<<CFlag					;@ invert C
825	movs z80f,z80f,lsr#2					;@ get C
826	subcc r0,r0,#0x100
827	eor z80f,r0,z80a,lsr#24					;@ prepare for check of H
828	sbcs z80a,z80a,r0,ror#8
829	mrs r0,cpsr
830	eor z80f,z80f,z80a,lsr#24
831	and z80f,z80f,#1<<HFlag					;@ H, correct
832	orr z80f,z80f,r0,lsr#28					;@ S,Z,V&C
833	eor z80f,z80f,#(1<<CFlag)|(1<<NFlag)	;@ invert C and set n.
834.endm
835
836.macro opSBCA
837	movs z80f,z80f,lsr#2					;@ get C
838	movcc z80a,#0x00000000
839	movcs z80a,#0xFF000000
840	movcc z80f,#(1<<NFlag)|(1<<ZFlag)
841	movcs z80f,#(1<<NFlag)|(1<<SFlag)|(1<<CFlag)|(1<<HFlag)
842	fetch 4
843.endm
844
845.macro opSBCH reg
846	mov r0,\reg,lsr#24
847	opSBC
848	fetch 4
849.endm
850
851.macro opSBCL reg
852	mov r0,\reg,lsl#8
853	eor z80f,z80f,#1<<CFlag					;@ invert C
854	movs z80f,z80f,lsr#2					;@ get C
855	sbccc r0,r0,#0xFF000000
856	mov r1,z80a,lsl#4						;@ prepare for check of H
857	sbcs z80a,z80a,r0
858	mrs z80f,cpsr
859	mov z80f,z80f,lsr#28					;@ S,Z,V&C
860	eor z80f,z80f,#(1<<CFlag)|(1<<NFlag)	;@ invert C and set n.
861	cmp r1,r0,lsl#4
862	orrcc z80f,z80f,#1<<HFlag				;@ H, correct
863	fetch 4
864.endm
865
866.macro opSBCb
867	opSBC
868.endm
869;@---------------------------------------
870
871.macro opSBC16 reg
872	eor z80f,z80f,#1<<CFlag					;@ invert C
873	movs z80f,z80f,lsr#2					;@ get C
874	sbc r1,r1,r1							;@ set r1 to -1 or 0.
875	orr r0,\reg,r1,lsr#16
876	mov r1,z80hl,lsl#4						;@ prepare for check of H
877	sbcs z80hl,z80hl,r0
878	mrs z80f,cpsr
879	mov z80f,z80f,lsr#28					;@ S,Z,V&C
880	eor z80f,z80f,#(1<<CFlag)|(1<<NFlag)	;@ invert C and set n.
881	cmp r1,r0,lsl#4
882	orrcc z80f,z80f,#1<<HFlag				;@ H, correct
883	fetch 15
884.endm
885
886.macro opSBC16HL
887	movs z80f,z80f,lsr#2					;@ get C
888	mov z80hl,#0x00000000
889	subcs z80hl,z80hl,#0x00010000
890	movcc z80f,#(1<<NFlag)|(1<<ZFlag)
891	movcs z80f,#(1<<NFlag)|(1<<SFlag)|(1<<CFlag)|(1<<HFlag)
892	fetch 15
893.endm
894;@---------------------------------------
895
896.macro opSETmemHL bit
897	mov r0,z80hl, lsr #16
898	stmfd sp!,{r3,r12}
899	mov lr,pc
900	ldr pc,[cpucontext,#z80_read8]			;@ r0 = addr - data returned in r0
901	orr r0,r0,#1<<\bit
902	mov r1,z80hl, lsr #16
903	mov lr,pc
904	ldr pc,[cpucontext,#z80_write8]			;@ r0=data r1=addr
905	ldmfd sp!,{r3,r12}
906	fetch 15
907.endm
908;@---------------------------------------
909
910.macro opSETmem bit
911	stmfd sp!,{r3,r12}
912	stmfd sp!,{r0}	;@ save addr as well
913	mov lr,pc
914	ldr pc,[cpucontext,#z80_read8]			;@ r0=addr - data returned in r0
915	orr r0,r0,#1<<\bit
916	ldmfd sp!,{r1}	;@ restore addr into r1
917	mov lr,pc
918	ldr pc,[cpucontext,#z80_write8]			;@ r0=data r1=addr
919	ldmfd sp!,{r3,r12}
920	fetch 23
921.endm
922;@---------------------------------------
923
924.macro opSLA reg1 reg2 shift
925	movs \reg1,\reg2,lsl#\shift
926	sub r1,opcodes,#0x100
927	ldrb z80f,[r1,\reg1,lsr#24]
928	orrcs z80f,z80f,#1<<CFlag
929.endm
930
931.macro opSLAA
932	opSLA z80a z80a 1
933	fetch 8
934.endm
935
936.macro opSLAH reg
937	and r0,\reg,#0xFF000000					;@mask high to r0
938	adds \reg,\reg,r0
939	sub r1,opcodes,#0x100
940	ldrb z80f,[r1,\reg,lsr#24]
941	orrcs z80f,z80f,#1<<CFlag
942	fetch 8
943.endm
944
945.macro opSLAL reg
946	opSLA r0 \reg 9
947	and \reg,\reg,#0xFF000000				;@mask out high
948	orr \reg,\reg,r0,lsr#8
949	fetch 8
950.endm
951
952.macro opSLAb
953	opSLA r0 r0 25
954	mov r0,r0,lsr#24
955.endm
956;@---------------------------------------
957
958.macro opSLL reg1 reg2 shift
959	movs \reg1,\reg2,lsl#\shift
960	orr \reg1,\reg1,#0x01000000
961	sub r1,opcodes,#0x100
962	ldrb z80f,[r1,\reg1,lsr#24]
963	orrcs z80f,z80f,#1<<CFlag
964.endm
965
966.macro opSLLA
967	opSLL z80a z80a 1
968	fetch 8
969.endm
970
971.macro opSLLH reg
972	and r0,\reg,#0xFF000000					;@mask high to r0
973	adds \reg,\reg,r0
974	orr \reg,\reg,#0x01000000
975	sub r1,opcodes,#0x100
976	ldrb z80f,[r1,\reg,lsr#24]
977	orrcs z80f,z80f,#1<<CFlag
978	fetch 8
979.endm
980
981.macro opSLLL reg
982	opSLL r0 \reg 9
983	and \reg,\reg,#0xFF000000				;@mask out high
984	orr \reg,\reg,r0,lsr#8
985	fetch 8
986.endm
987
988.macro opSLLb
989	opSLL r0 r0 25
990	mov r0,r0,lsr#24
991.endm
992;@---------------------------------------
993
994.macro opSRA reg1 reg2
995	movs \reg1,\reg2,asr#25
996	and \reg1,\reg1,#0xFF
997	sub r1,opcodes,#0x100
998	ldrb z80f,[r1,\reg1]
999	orrcs z80f,z80f,#1<<CFlag
1000.endm
1001
1002.macro opSRAA
1003	movs r0,z80a,asr#25
1004	mov z80a,r0,lsl#24
1005	sub r1,opcodes,#0x100
1006	ldrb z80f,[r1,z80a,lsr#24]
1007	orrcs z80f,z80f,#1<<CFlag
1008	fetch 8
1009.endm
1010
1011.macro opSRAH reg
1012	movs r0,\reg,asr#25
1013	and \reg,\reg,#0x00FF0000				;@mask out low
1014	orr \reg,\reg,r0,lsl#24
1015	sub r1,opcodes,#0x100
1016	ldrb z80f,[r1,\reg,lsr#24]
1017	orrcs z80f,z80f,#1<<CFlag
1018	fetch 8
1019.endm
1020
1021.macro opSRAL reg
1022	mov r0,\reg,lsl#8
1023	opSRA r0 r0
1024	and \reg,\reg,#0xFF000000				;@mask out high
1025	orr \reg,\reg,r0,lsl#16
1026	fetch 8
1027.endm
1028
1029.macro opSRAb
1030	mov r0,r0,lsl#24
1031	opSRA r0 r0
1032.endm
1033;@---------------------------------------
1034
1035.macro opSRL reg1 reg2 shift
1036	movs \reg1,\reg2,lsr#\shift
1037	sub r1,opcodes,#0x100
1038	ldrb z80f,[r1,\reg1]
1039	orrcs z80f,z80f,#1<<CFlag
1040.endm
1041
1042.macro opSRLA
1043	opSRL z80a z80a 25
1044	mov z80a,z80a,lsl#24
1045	fetch 8
1046.endm
1047
1048.macro opSRLH reg
1049	opSRL r0 \reg 25
1050	and \reg,\reg,#0x00FF0000				;@mask out low
1051	orr \reg,\reg,r0,lsl#24
1052	fetch 8
1053.endm
1054
1055.macro opSRLL reg
1056	mov r0,\reg,lsl#8
1057	opSRL r0 r0 25
1058	and \reg,\reg,#0xFF000000				;@mask out high
1059	orr \reg,\reg,r0,lsl#16
1060	fetch 8
1061.endm
1062
1063.macro opSRLb
1064	opSRL r0 r0 1
1065.endm
1066;@---------------------------------------
1067
1068.macro opSUB reg shift
1069	mov r1,z80a,lsl#4 						;@ Prepare for check of half carry
1070	subs z80a,z80a,\reg,lsl#\shift
1071	mrs z80f,cpsr
1072	mov z80f,z80f,lsr#28					;@ S,Z,V&C
1073	eor z80f,z80f,#(1<<CFlag)|(1<<NFlag)	;@ invert C and set n
1074	cmp r1,\reg,lsl#\shift+4
1075	orrcc z80f,z80f,#1<<HFlag
1076.endm
1077
1078.macro opSUBA
1079	mov z80a,#0
1080	mov z80f,#(1<<ZFlag)|(1<<NFlag)			;@ set Z & n
1081	fetch 4
1082.endm
1083
1084.macro opSUBH reg
1085	and r0,\reg,#0xFF000000
1086	opSUB r0 0
1087	fetch 4
1088.endm
1089
1090.macro opSUBL reg
1091	opSUB \reg 8
1092	fetch 4
1093.endm
1094
1095.macro opSUBb
1096	opSUB r0 24
1097.endm
1098;@---------------------------------------
1099
1100.macro opXOR reg shift
1101	eor z80a,z80a,\reg,lsl#\shift
1102	sub r0,opcodes,#0x100
1103	ldrb z80f,[r0,z80a, lsr #24]
1104.endm
1105
1106.macro opXORA
1107	mov z80a,#0
1108	mov z80f,#(1<<ZFlag)|(1<<VFlag)
1109	fetch 4
1110.endm
1111
1112.macro opXORH reg
1113	and r0,\reg,#0xFF000000
1114	opXOR r0 0
1115	fetch 4
1116.endm
1117
1118.macro opXORL reg
1119	opXOR \reg 8
1120	fetch 4
1121.endm
1122
1123.macro opXORb
1124	opXOR r0 24
1125.endm
1126;@---------------------------------------
1127
1128
1129;@ --------------------------- Framework --------------------------
1130
1131.text
1132
1133DrZ80Run:
1134	;@ r0 = pointer to cpu context
1135	;@ r1 = ISTATES to execute
1136	;@#########################################
1137	stmdb sp!,{r4-r12,lr}					;@ save registers on stack
1138	mov cpucontext,r0						;@ setup main memory pointer
1139	mov z80_icount,r1						;@ setup number of Tstates to execute
1140	ldmia cpucontext,{z80pc-z80sp}			;@ load Z80 registers
1141
1142
1143	ldr opcodes,MAIN_opcodes_POINTER2
1144
1145	;@ check ints
1146	bl DoInterrupt
1147
1148	ldrb r0,[z80pc],#1    ;@ get first op code
1149	ldr pc,[opcodes,r0, lsl #2]  ;@ execute op code
1150
1151MAIN_opcodes_POINTER2: .word MAIN_opcodes
1152
1153
1154z80_execute_end:
1155	str z80_icount,[cpucontext,#cycles_pointer]
1156	;@ save registers in CPU context
1157	stmia cpucontext,{z80pc-z80sp}			;@ save Z80 registers
1158	ldmia sp!,{r4-r12,pc}					;@ restore registers from stack and return to C code
1159
1160.if INTERRUPT_MODE
1161Interrupt_local: .word Interrupt
1162.endif
1163
1164DoInterrupt:
1165.if INTERRUPT_MODE
1166	;@ call MAME interrupt handler
1167	;@ save everything back into DrZ80 context
1168	stmia cpucontext,{z80pc-z80sp}			;@ save Z80 registers
1169	stmfd sp!,{r3,r4,r5,lr}					;@ save rest of regs on stack
1170	mov lr,pc
1171	ldr pc,Interrupt_local
1172	ldmfd sp!,{r3,r4,r5,lr}					;@ load regs from stack
1173	;@ reload regs from DrZ80 context
1174	ldmia cpucontext,{z80pc-z80sp}			;@ load Z80 registers
1175.endif
1176	ldrb r0,[cpucontext,#z80irq]
1177	tst r0,r0
1178	moveq pc,lr
1179
1180	tst r0,#2
1181	bne DoInterrupt_NMI
1182
1183	ldrb r0,[cpucontext,#z80if]
1184	tst r0,#Z80_IF1
1185	moveq pc,lr ;@ exit if int disabled
1186
1187	stmfd sp!,{lr}
1188
1189	tst r0,#Z80_HALT ;@ check halt
1190	addne z80pc,z80pc,#1
1191
1192	;@ clear halt and int flags
1193	eor r0,r0,r0
1194	strb r0,[cpucontext,#z80if]
1195
1196	;@ now check int mode
1197	ldrb r0,[cpucontext,#z80im]
1198	and r0,r0,#3
1199	ldr pc,[pc,r0,lsl#2]
1200	.word 0
1201	.word DoInterrupt_mode0
1202	.word DoInterrupt_mode1
1203	.word DoInterrupt_mode2
1204	.word DoInterrupt_mode1
1205
1206DoInterrupt_NMI:
1207	stmfd sp!,{lr}
1208
1209	bic r0,r0,#2
1210	strb r0,[cpucontext,#z80irq]
1211
1212	ldrb r0,[cpucontext,#z80if]
1213	tst r0,#Z80_HALT ;@ check halt
1214	addne z80pc,z80pc,#1
1215
1216	;@ clear halt & iff1
1217	bic r0,r0,#Z80_IF1|Z80_HALT
1218	strb r0,[cpucontext,#z80if]
1219
1220	ldr r0,[cpucontext,#z80pc_base]
1221	sub r0,z80pc,r0
1222.if FAST_Z80SP
1223	mov r1,r0, lsr #8
1224	strb r1,[z80sp,#-1]!
1225	strb r0,[z80sp,#-1]!
1226.else
1227	sub z80sp,z80sp,#2
1228	mov r1,z80sp
1229	writemem16
1230	ldr r2,[cpucontext, #z80irqvector]
1231.endif
1232	;@ jump to vector
1233	mov r0,#0x66
1234	rebasepc
1235
1236	b DoInterrupt_end
1237
1238DoInterrupt_mode0:
1239	;@ get 3 byte vector
1240	ldr r2,[cpucontext, #z80irqvector]
1241	and r1,r2,#0xFF0000
1242	cmp r1,#0xCD0000  ;@ call
1243	bne 1f
1244	;@ ########
1245	;@ # call
1246	;@ ########
1247	;@ save current pc on stack
1248	ldr r0,[cpucontext,#z80pc_base]
1249	sub r0,z80pc,r0
1250.if FAST_Z80SP
1251	mov r1,r0, lsr #8
1252	strb r1,[z80sp,#-1]!
1253	strb r0,[z80sp,#-1]!
1254.else
1255	sub z80sp,z80sp,#2
1256	mov r1,z80sp
1257	writemem16
1258	ldr r2,[cpucontext, #z80irqvector]
1259.endif
1260	;@ jump to vector
1261	mov r2,r2,lsl#16
1262	mov r0,r2,lsr#16
1263	;@ rebase new pc
1264	rebasepc
1265
1266	b DoInterrupt_end
1267
12681:
1269	cmp r1,#0xC30000  ;@ jump
1270	bne DoInterrupt_mode1    ;@ rst
1271	;@ #######
1272	;@ # jump
1273	;@ #######
1274	;@ jump to vector
1275	mov r2,r2,lsl#16
1276	mov r0,r2,lsr#16
1277	;@ rebase new pc
1278	rebasepc
1279
1280	b DoInterrupt_end
1281
1282DoInterrupt_mode1:
1283	ldr r0,[cpucontext,#z80pc_base]
1284	sub r0,z80pc,r0
1285.if FAST_Z80SP
1286	mov r1,r0, lsr #8
1287	strb r1,[z80sp,#-1]!
1288	strb r0,[z80sp,#-1]!
1289.else
1290	sub z80sp,z80sp,#2
1291	mov r1,z80sp
1292	writemem16
1293.endif
1294	mov r0,#0x38
1295	rebasepc
1296
1297	b DoInterrupt_end
1298
1299DoInterrupt_mode2:
1300	;@ push pc on stack
1301	ldr r0,[cpucontext,#z80pc_base]
1302	sub r0,z80pc,r0
1303.if FAST_Z80SP
1304	mov r1,r0, lsr #8
1305	strb r1,[z80sp,#-1]!
1306	strb r0,[z80sp,#-1]!
1307.else
1308	sub z80sp,z80sp,#2
1309	mov r1,z80sp
1310	writemem16
1311.endif
1312
1313	;@ get 1 byte vector address
1314	ldrb r0,[cpucontext, #z80irqvector]
1315	ldr r1,[cpucontext, #z80i]
1316	orr r0,r0,r1,lsr#16
1317
1318	;@ read new pc from vector address
1319	stmfd sp!,{r3,r12}
1320	mov lr,pc
1321	ldr pc,[cpucontext,#z80_read16]
1322
1323	;@ rebase new pc
1324	mov lr,pc
1325	ldr pc,[cpucontext,#z80_rebasePC] ;@ r0=new pc - external function sets z80pc_base and returns new z80pc in r0
1326	ldmfd sp!,{r3,r12}
1327	mov z80pc,r0
1328
1329DoInterrupt_end:
1330	;@ interupt accepted so callback irq interface
1331	ldr r0,[cpucontext, #z80irqcallback]
1332	tst r0,r0
1333	ldmeqfd sp!,{pc}
1334	stmfd sp!,{r3,r12}
1335	mov lr,pc
1336	mov pc,r0    ;@ call callback function
1337	ldmfd sp!,{r3,r12}
1338	ldmfd sp!,{pc} ;@ return
1339
1340.data
1341.align 4
1342
1343DAATable: .hword  (0x00<<8)|(1<<ZFlag)|(1<<VFlag)
1344         .hword  (0x01<<8)
1345         .hword  (0x02<<8)
1346         .hword  (0x03<<8)               |(1<<VFlag)
1347         .hword  (0x04<<8)
1348         .hword  (0x05<<8)               |(1<<VFlag)
1349         .hword  (0x06<<8)               |(1<<VFlag)
1350         .hword  (0x07<<8)
1351         .hword  (0x08<<8)
1352         .hword  (0x09<<8)            |(1<<VFlag)
1353         .hword  (0x10<<8)         |(1<<HFlag)
1354         .hword  (0x11<<8)         |(1<<HFlag)   |(1<<VFlag)
1355         .hword  (0x12<<8)         |(1<<HFlag)   |(1<<VFlag)
1356         .hword  (0x13<<8)         |(1<<HFlag)
1357         .hword  (0x14<<8)         |(1<<HFlag)   |(1<<VFlag)
1358         .hword  (0x15<<8)         |(1<<HFlag)
1359         .hword  (0x10<<8)
1360         .hword  (0x11<<8)               |(1<<VFlag)
1361         .hword  (0x12<<8)               |(1<<VFlag)
1362         .hword  (0x13<<8)
1363         .hword  (0x14<<8)               |(1<<VFlag)
1364         .hword  (0x15<<8)
1365         .hword  (0x16<<8)
1366         .hword  (0x17<<8)               |(1<<VFlag)
1367         .hword  (0x18<<8)            |(1<<VFlag)
1368         .hword  (0x19<<8)
1369         .hword  (0x20<<8)      |(1<<HFlag)
1370         .hword  (0x21<<8)      |(1<<HFlag)   |(1<<VFlag)
1371         .hword  (0x22<<8)      |(1<<HFlag)   |(1<<VFlag)
1372         .hword  (0x23<<8)      |(1<<HFlag)
1373         .hword  (0x24<<8)      |(1<<HFlag)   |(1<<VFlag)
1374         .hword  (0x25<<8)      |(1<<HFlag)
1375         .hword  (0x20<<8)
1376         .hword  (0x21<<8)            |(1<<VFlag)
1377         .hword  (0x22<<8)            |(1<<VFlag)
1378         .hword  (0x23<<8)
1379         .hword  (0x24<<8)            |(1<<VFlag)
1380         .hword  (0x25<<8)
1381         .hword  (0x26<<8)
1382         .hword  (0x27<<8)            |(1<<VFlag)
1383         .hword  (0x28<<8)         |(1<<VFlag)
1384         .hword  (0x29<<8)
1385         .hword  (0x30<<8)      |(1<<HFlag)   |(1<<VFlag)
1386         .hword  (0x31<<8)      |(1<<HFlag)
1387         .hword  (0x32<<8)      |(1<<HFlag)
1388         .hword  (0x33<<8)      |(1<<HFlag)   |(1<<VFlag)
1389         .hword  (0x34<<8)      |(1<<HFlag)
1390         .hword  (0x35<<8)      |(1<<HFlag)   |(1<<VFlag)
1391         .hword  (0x30<<8)            |(1<<VFlag)
1392         .hword  (0x31<<8)
1393         .hword  (0x32<<8)
1394         .hword  (0x33<<8)            |(1<<VFlag)
1395         .hword  (0x34<<8)
1396         .hword  (0x35<<8)            |(1<<VFlag)
1397         .hword  (0x36<<8)            |(1<<VFlag)
1398         .hword  (0x37<<8)
1399         .hword  (0x38<<8)
1400         .hword  (0x39<<8)         |(1<<VFlag)
1401         .hword  (0x40<<8)         |(1<<HFlag)
1402         .hword  (0x41<<8)         |(1<<HFlag)   |(1<<VFlag)
1403         .hword  (0x42<<8)         |(1<<HFlag)   |(1<<VFlag)
1404         .hword  (0x43<<8)         |(1<<HFlag)
1405         .hword  (0x44<<8)         |(1<<HFlag)   |(1<<VFlag)
1406         .hword  (0x45<<8)         |(1<<HFlag)
1407         .hword  (0x40<<8)
1408         .hword  (0x41<<8)               |(1<<VFlag)
1409         .hword  (0x42<<8)               |(1<<VFlag)
1410         .hword  (0x43<<8)
1411         .hword  (0x44<<8)               |(1<<VFlag)
1412         .hword  (0x45<<8)
1413         .hword  (0x46<<8)
1414         .hword  (0x47<<8)               |(1<<VFlag)
1415         .hword  (0x48<<8)            |(1<<VFlag)
1416         .hword  (0x49<<8)
1417         .hword  (0x50<<8)         |(1<<HFlag)   |(1<<VFlag)
1418         .hword  (0x51<<8)         |(1<<HFlag)
1419         .hword  (0x52<<8)         |(1<<HFlag)
1420         .hword  (0x53<<8)         |(1<<HFlag)   |(1<<VFlag)
1421         .hword  (0x54<<8)         |(1<<HFlag)
1422         .hword  (0x55<<8)         |(1<<HFlag)   |(1<<VFlag)
1423         .hword  (0x50<<8)               |(1<<VFlag)
1424         .hword  (0x51<<8)
1425         .hword  (0x52<<8)
1426         .hword  (0x53<<8)               |(1<<VFlag)
1427         .hword  (0x54<<8)
1428         .hword  (0x55<<8)               |(1<<VFlag)
1429         .hword  (0x56<<8)               |(1<<VFlag)
1430         .hword  (0x57<<8)
1431         .hword  (0x58<<8)
1432         .hword  (0x59<<8)            |(1<<VFlag)
1433         .hword  (0x60<<8)      |(1<<HFlag)   |(1<<VFlag)
1434         .hword  (0x61<<8)      |(1<<HFlag)
1435         .hword  (0x62<<8)      |(1<<HFlag)
1436         .hword  (0x63<<8)      |(1<<HFlag)   |(1<<VFlag)
1437         .hword  (0x64<<8)      |(1<<HFlag)
1438         .hword  (0x65<<8)      |(1<<HFlag)   |(1<<VFlag)
1439         .hword  (0x60<<8)            |(1<<VFlag)
1440         .hword  (0x61<<8)
1441         .hword  (0x62<<8)
1442         .hword  (0x63<<8)            |(1<<VFlag)
1443         .hword  (0x64<<8)
1444         .hword  (0x65<<8)            |(1<<VFlag)
1445         .hword  (0x66<<8)            |(1<<VFlag)
1446         .hword  (0x67<<8)
1447         .hword  (0x68<<8)
1448         .hword  (0x69<<8)         |(1<<VFlag)
1449         .hword  (0x70<<8)      |(1<<HFlag)
1450         .hword  (0x71<<8)      |(1<<HFlag)   |(1<<VFlag)
1451         .hword  (0x72<<8)      |(1<<HFlag)   |(1<<VFlag)
1452         .hword  (0x73<<8)      |(1<<HFlag)
1453         .hword  (0x74<<8)      |(1<<HFlag)   |(1<<VFlag)
1454         .hword  (0x75<<8)      |(1<<HFlag)
1455         .hword  (0x70<<8)
1456         .hword  (0x71<<8)            |(1<<VFlag)
1457         .hword  (0x72<<8)            |(1<<VFlag)
1458         .hword  (0x73<<8)
1459         .hword  (0x74<<8)            |(1<<VFlag)
1460         .hword  (0x75<<8)
1461         .hword  (0x76<<8)
1462         .hword  (0x77<<8)            |(1<<VFlag)
1463         .hword  (0x78<<8)         |(1<<VFlag)
1464         .hword  (0x79<<8)
1465         .hword  (0x80<<8)|(1<<SFlag)      |(1<<HFlag)
1466         .hword  (0x81<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)
1467         .hword  (0x82<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)
1468         .hword  (0x83<<8)|(1<<SFlag)      |(1<<HFlag)
1469         .hword  (0x84<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)
1470         .hword  (0x85<<8)|(1<<SFlag)      |(1<<HFlag)
1471         .hword  (0x80<<8)|(1<<SFlag)
1472         .hword  (0x81<<8)|(1<<SFlag)            |(1<<VFlag)
1473         .hword  (0x82<<8)|(1<<SFlag)            |(1<<VFlag)
1474         .hword  (0x83<<8)|(1<<SFlag)
1475         .hword  (0x84<<8)|(1<<SFlag)            |(1<<VFlag)
1476         .hword  (0x85<<8)|(1<<SFlag)
1477         .hword  (0x86<<8)|(1<<SFlag)
1478         .hword  (0x87<<8)|(1<<SFlag)            |(1<<VFlag)
1479         .hword  (0x88<<8)|(1<<SFlag)         |(1<<VFlag)
1480         .hword  (0x89<<8)|(1<<SFlag)
1481         .hword  (0x90<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)
1482         .hword  (0x91<<8)|(1<<SFlag)      |(1<<HFlag)
1483         .hword  (0x92<<8)|(1<<SFlag)      |(1<<HFlag)
1484         .hword  (0x93<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)
1485         .hword  (0x94<<8)|(1<<SFlag)      |(1<<HFlag)
1486         .hword  (0x95<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)
1487         .hword  (0x90<<8)|(1<<SFlag)            |(1<<VFlag)
1488         .hword  (0x91<<8)|(1<<SFlag)
1489         .hword  (0x92<<8)|(1<<SFlag)
1490         .hword  (0x93<<8)|(1<<SFlag)            |(1<<VFlag)
1491         .hword  (0x94<<8)|(1<<SFlag)
1492         .hword  (0x95<<8)|(1<<SFlag)            |(1<<VFlag)
1493         .hword  (0x96<<8)|(1<<SFlag)            |(1<<VFlag)
1494         .hword  (0x97<<8)|(1<<SFlag)
1495         .hword  (0x98<<8)|(1<<SFlag)
1496         .hword  (0x99<<8)|(1<<SFlag)         |(1<<VFlag)
1497         .hword  (0x00<<8)   |(1<<ZFlag)   |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1498         .hword  (0x01<<8)         |(1<<HFlag)         |(1<<CFlag)
1499         .hword  (0x02<<8)         |(1<<HFlag)         |(1<<CFlag)
1500         .hword  (0x03<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1501         .hword  (0x04<<8)         |(1<<HFlag)         |(1<<CFlag)
1502         .hword  (0x05<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1503         .hword  (0x00<<8)   |(1<<ZFlag)         |(1<<VFlag)   |(1<<CFlag)
1504         .hword  (0x01<<8)                     |(1<<CFlag)
1505         .hword  (0x02<<8)                     |(1<<CFlag)
1506         .hword  (0x03<<8)               |(1<<VFlag)   |(1<<CFlag)
1507         .hword  (0x04<<8)                     |(1<<CFlag)
1508         .hword  (0x05<<8)               |(1<<VFlag)   |(1<<CFlag)
1509         .hword  (0x06<<8)               |(1<<VFlag)   |(1<<CFlag)
1510         .hword  (0x07<<8)                     |(1<<CFlag)
1511         .hword  (0x08<<8)                  |(1<<CFlag)
1512         .hword  (0x09<<8)            |(1<<VFlag)   |(1<<CFlag)
1513         .hword  (0x10<<8)         |(1<<HFlag)         |(1<<CFlag)
1514         .hword  (0x11<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1515         .hword  (0x12<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1516         .hword  (0x13<<8)         |(1<<HFlag)         |(1<<CFlag)
1517         .hword  (0x14<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1518         .hword  (0x15<<8)         |(1<<HFlag)         |(1<<CFlag)
1519         .hword  (0x10<<8)                     |(1<<CFlag)
1520         .hword  (0x11<<8)               |(1<<VFlag)   |(1<<CFlag)
1521         .hword  (0x12<<8)               |(1<<VFlag)   |(1<<CFlag)
1522         .hword  (0x13<<8)                     |(1<<CFlag)
1523         .hword  (0x14<<8)               |(1<<VFlag)   |(1<<CFlag)
1524         .hword  (0x15<<8)                     |(1<<CFlag)
1525         .hword  (0x16<<8)                     |(1<<CFlag)
1526         .hword  (0x17<<8)               |(1<<VFlag)   |(1<<CFlag)
1527         .hword  (0x18<<8)            |(1<<VFlag)   |(1<<CFlag)
1528         .hword  (0x19<<8)                  |(1<<CFlag)
1529         .hword  (0x20<<8)      |(1<<HFlag)         |(1<<CFlag)
1530         .hword  (0x21<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1531         .hword  (0x22<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1532         .hword  (0x23<<8)      |(1<<HFlag)         |(1<<CFlag)
1533         .hword  (0x24<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1534         .hword  (0x25<<8)      |(1<<HFlag)         |(1<<CFlag)
1535         .hword  (0x20<<8)                  |(1<<CFlag)
1536         .hword  (0x21<<8)            |(1<<VFlag)   |(1<<CFlag)
1537         .hword  (0x22<<8)            |(1<<VFlag)   |(1<<CFlag)
1538         .hword  (0x23<<8)                  |(1<<CFlag)
1539         .hword  (0x24<<8)            |(1<<VFlag)   |(1<<CFlag)
1540         .hword  (0x25<<8)                  |(1<<CFlag)
1541         .hword  (0x26<<8)                  |(1<<CFlag)
1542         .hword  (0x27<<8)            |(1<<VFlag)   |(1<<CFlag)
1543         .hword  (0x28<<8)         |(1<<VFlag)   |(1<<CFlag)
1544         .hword  (0x29<<8)               |(1<<CFlag)
1545         .hword  (0x30<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1546         .hword  (0x31<<8)      |(1<<HFlag)         |(1<<CFlag)
1547         .hword  (0x32<<8)      |(1<<HFlag)         |(1<<CFlag)
1548         .hword  (0x33<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1549         .hword  (0x34<<8)      |(1<<HFlag)         |(1<<CFlag)
1550         .hword  (0x35<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1551         .hword  (0x30<<8)            |(1<<VFlag)   |(1<<CFlag)
1552         .hword  (0x31<<8)                  |(1<<CFlag)
1553         .hword  (0x32<<8)                  |(1<<CFlag)
1554         .hword  (0x33<<8)            |(1<<VFlag)   |(1<<CFlag)
1555         .hword  (0x34<<8)                  |(1<<CFlag)
1556         .hword  (0x35<<8)            |(1<<VFlag)   |(1<<CFlag)
1557         .hword  (0x36<<8)            |(1<<VFlag)   |(1<<CFlag)
1558         .hword  (0x37<<8)                  |(1<<CFlag)
1559         .hword  (0x38<<8)               |(1<<CFlag)
1560         .hword  (0x39<<8)         |(1<<VFlag)   |(1<<CFlag)
1561         .hword  (0x40<<8)         |(1<<HFlag)         |(1<<CFlag)
1562         .hword  (0x41<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1563         .hword  (0x42<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1564         .hword  (0x43<<8)         |(1<<HFlag)         |(1<<CFlag)
1565         .hword  (0x44<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1566         .hword  (0x45<<8)         |(1<<HFlag)         |(1<<CFlag)
1567         .hword  (0x40<<8)                     |(1<<CFlag)
1568         .hword  (0x41<<8)               |(1<<VFlag)   |(1<<CFlag)
1569         .hword  (0x42<<8)               |(1<<VFlag)   |(1<<CFlag)
1570         .hword  (0x43<<8)                     |(1<<CFlag)
1571         .hword  (0x44<<8)               |(1<<VFlag)   |(1<<CFlag)
1572         .hword  (0x45<<8)                     |(1<<CFlag)
1573         .hword  (0x46<<8)                     |(1<<CFlag)
1574         .hword  (0x47<<8)               |(1<<VFlag)   |(1<<CFlag)
1575         .hword  (0x48<<8)            |(1<<VFlag)   |(1<<CFlag)
1576         .hword  (0x49<<8)                  |(1<<CFlag)
1577         .hword  (0x50<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1578         .hword  (0x51<<8)         |(1<<HFlag)         |(1<<CFlag)
1579         .hword  (0x52<<8)         |(1<<HFlag)         |(1<<CFlag)
1580         .hword  (0x53<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1581         .hword  (0x54<<8)         |(1<<HFlag)         |(1<<CFlag)
1582         .hword  (0x55<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1583         .hword  (0x50<<8)               |(1<<VFlag)   |(1<<CFlag)
1584         .hword  (0x51<<8)                     |(1<<CFlag)
1585         .hword  (0x52<<8)                     |(1<<CFlag)
1586         .hword  (0x53<<8)               |(1<<VFlag)   |(1<<CFlag)
1587         .hword  (0x54<<8)                     |(1<<CFlag)
1588         .hword  (0x55<<8)               |(1<<VFlag)   |(1<<CFlag)
1589         .hword  (0x56<<8)               |(1<<VFlag)   |(1<<CFlag)
1590         .hword  (0x57<<8)                     |(1<<CFlag)
1591         .hword  (0x58<<8)                  |(1<<CFlag)
1592         .hword  (0x59<<8)            |(1<<VFlag)   |(1<<CFlag)
1593         .hword  (0x60<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1594         .hword  (0x61<<8)      |(1<<HFlag)         |(1<<CFlag)
1595         .hword  (0x62<<8)      |(1<<HFlag)         |(1<<CFlag)
1596         .hword  (0x63<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1597         .hword  (0x64<<8)      |(1<<HFlag)         |(1<<CFlag)
1598         .hword  (0x65<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1599         .hword  (0x60<<8)            |(1<<VFlag)   |(1<<CFlag)
1600         .hword  (0x61<<8)                  |(1<<CFlag)
1601         .hword  (0x62<<8)                  |(1<<CFlag)
1602         .hword  (0x63<<8)            |(1<<VFlag)   |(1<<CFlag)
1603         .hword  (0x64<<8)                  |(1<<CFlag)
1604         .hword  (0x65<<8)            |(1<<VFlag)   |(1<<CFlag)
1605         .hword  (0x66<<8)            |(1<<VFlag)   |(1<<CFlag)
1606         .hword  (0x67<<8)                  |(1<<CFlag)
1607         .hword  (0x68<<8)               |(1<<CFlag)
1608         .hword  (0x69<<8)         |(1<<VFlag)   |(1<<CFlag)
1609         .hword  (0x70<<8)      |(1<<HFlag)         |(1<<CFlag)
1610         .hword  (0x71<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1611         .hword  (0x72<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1612         .hword  (0x73<<8)      |(1<<HFlag)         |(1<<CFlag)
1613         .hword  (0x74<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1614         .hword  (0x75<<8)      |(1<<HFlag)         |(1<<CFlag)
1615         .hword  (0x70<<8)                  |(1<<CFlag)
1616         .hword  (0x71<<8)            |(1<<VFlag)   |(1<<CFlag)
1617         .hword  (0x72<<8)            |(1<<VFlag)   |(1<<CFlag)
1618         .hword  (0x73<<8)                  |(1<<CFlag)
1619         .hword  (0x74<<8)            |(1<<VFlag)   |(1<<CFlag)
1620         .hword  (0x75<<8)                  |(1<<CFlag)
1621         .hword  (0x76<<8)                  |(1<<CFlag)
1622         .hword  (0x77<<8)            |(1<<VFlag)   |(1<<CFlag)
1623         .hword  (0x78<<8)         |(1<<VFlag)   |(1<<CFlag)
1624         .hword  (0x79<<8)               |(1<<CFlag)
1625         .hword  (0x80<<8)|(1<<SFlag)      |(1<<HFlag)         |(1<<CFlag)
1626         .hword  (0x81<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1627         .hword  (0x82<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1628         .hword  (0x83<<8)|(1<<SFlag)      |(1<<HFlag)         |(1<<CFlag)
1629         .hword  (0x84<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1630         .hword  (0x85<<8)|(1<<SFlag)      |(1<<HFlag)         |(1<<CFlag)
1631         .hword  (0x80<<8)|(1<<SFlag)                  |(1<<CFlag)
1632         .hword  (0x81<<8)|(1<<SFlag)            |(1<<VFlag)   |(1<<CFlag)
1633         .hword  (0x82<<8)|(1<<SFlag)            |(1<<VFlag)   |(1<<CFlag)
1634         .hword  (0x83<<8)|(1<<SFlag)                  |(1<<CFlag)
1635         .hword  (0x84<<8)|(1<<SFlag)            |(1<<VFlag)   |(1<<CFlag)
1636         .hword  (0x85<<8)|(1<<SFlag)                  |(1<<CFlag)
1637         .hword  (0x86<<8)|(1<<SFlag)                  |(1<<CFlag)
1638         .hword  (0x87<<8)|(1<<SFlag)            |(1<<VFlag)   |(1<<CFlag)
1639         .hword  (0x88<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)
1640         .hword  (0x89<<8)|(1<<SFlag)               |(1<<CFlag)
1641         .hword  (0x90<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1642         .hword  (0x91<<8)|(1<<SFlag)      |(1<<HFlag)         |(1<<CFlag)
1643         .hword  (0x92<<8)|(1<<SFlag)      |(1<<HFlag)         |(1<<CFlag)
1644         .hword  (0x93<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1645         .hword  (0x94<<8)|(1<<SFlag)      |(1<<HFlag)         |(1<<CFlag)
1646         .hword  (0x95<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1647         .hword  (0x90<<8)|(1<<SFlag)            |(1<<VFlag)   |(1<<CFlag)
1648         .hword  (0x91<<8)|(1<<SFlag)                  |(1<<CFlag)
1649         .hword  (0x92<<8)|(1<<SFlag)                  |(1<<CFlag)
1650         .hword  (0x93<<8)|(1<<SFlag)            |(1<<VFlag)   |(1<<CFlag)
1651         .hword  (0x94<<8)|(1<<SFlag)                  |(1<<CFlag)
1652         .hword  (0x95<<8)|(1<<SFlag)            |(1<<VFlag)   |(1<<CFlag)
1653         .hword  (0x96<<8)|(1<<SFlag)            |(1<<VFlag)   |(1<<CFlag)
1654         .hword  (0x97<<8)|(1<<SFlag)                  |(1<<CFlag)
1655         .hword  (0x98<<8)|(1<<SFlag)               |(1<<CFlag)
1656         .hword  (0x99<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)
1657         .hword  (0xA0<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1658         .hword  (0xA1<<8)|(1<<SFlag)   |(1<<HFlag)         |(1<<CFlag)
1659         .hword  (0xA2<<8)|(1<<SFlag)   |(1<<HFlag)         |(1<<CFlag)
1660         .hword  (0xA3<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1661         .hword  (0xA4<<8)|(1<<SFlag)   |(1<<HFlag)         |(1<<CFlag)
1662         .hword  (0xA5<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1663         .hword  (0xA0<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)
1664         .hword  (0xA1<<8)|(1<<SFlag)               |(1<<CFlag)
1665         .hword  (0xA2<<8)|(1<<SFlag)               |(1<<CFlag)
1666         .hword  (0xA3<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)
1667         .hword  (0xA4<<8)|(1<<SFlag)               |(1<<CFlag)
1668         .hword  (0xA5<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)
1669         .hword  (0xA6<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)
1670         .hword  (0xA7<<8)|(1<<SFlag)               |(1<<CFlag)
1671         .hword  (0xA8<<8)|(1<<SFlag)            |(1<<CFlag)
1672         .hword  (0xA9<<8)|(1<<SFlag)      |(1<<VFlag)   |(1<<CFlag)
1673         .hword  (0xB0<<8)|(1<<SFlag)   |(1<<HFlag)         |(1<<CFlag)
1674         .hword  (0xB1<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1675         .hword  (0xB2<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1676         .hword  (0xB3<<8)|(1<<SFlag)   |(1<<HFlag)         |(1<<CFlag)
1677         .hword  (0xB4<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1678         .hword  (0xB5<<8)|(1<<SFlag)   |(1<<HFlag)         |(1<<CFlag)
1679         .hword  (0xB0<<8)|(1<<SFlag)               |(1<<CFlag)
1680         .hword  (0xB1<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)
1681         .hword  (0xB2<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)
1682         .hword  (0xB3<<8)|(1<<SFlag)               |(1<<CFlag)
1683         .hword  (0xB4<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)
1684         .hword  (0xB5<<8)|(1<<SFlag)               |(1<<CFlag)
1685         .hword  (0xB6<<8)|(1<<SFlag)               |(1<<CFlag)
1686         .hword  (0xB7<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)
1687         .hword  (0xB8<<8)|(1<<SFlag)      |(1<<VFlag)   |(1<<CFlag)
1688         .hword  (0xB9<<8)|(1<<SFlag)            |(1<<CFlag)
1689         .hword  (0xC0<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1690         .hword  (0xC1<<8)|(1<<SFlag)      |(1<<HFlag)         |(1<<CFlag)
1691         .hword  (0xC2<<8)|(1<<SFlag)      |(1<<HFlag)         |(1<<CFlag)
1692         .hword  (0xC3<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1693         .hword  (0xC4<<8)|(1<<SFlag)      |(1<<HFlag)         |(1<<CFlag)
1694         .hword  (0xC5<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1695         .hword  (0xC0<<8)|(1<<SFlag)            |(1<<VFlag)   |(1<<CFlag)
1696         .hword  (0xC1<<8)|(1<<SFlag)                  |(1<<CFlag)
1697         .hword  (0xC2<<8)|(1<<SFlag)                  |(1<<CFlag)
1698         .hword  (0xC3<<8)|(1<<SFlag)            |(1<<VFlag)   |(1<<CFlag)
1699         .hword  (0xC4<<8)|(1<<SFlag)                  |(1<<CFlag)
1700         .hword  (0xC5<<8)|(1<<SFlag)            |(1<<VFlag)   |(1<<CFlag)
1701         .hword  (0xC6<<8)|(1<<SFlag)            |(1<<VFlag)   |(1<<CFlag)
1702         .hword  (0xC7<<8)|(1<<SFlag)                  |(1<<CFlag)
1703         .hword  (0xC8<<8)|(1<<SFlag)               |(1<<CFlag)
1704         .hword  (0xC9<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)
1705         .hword  (0xD0<<8)|(1<<SFlag)      |(1<<HFlag)         |(1<<CFlag)
1706         .hword  (0xD1<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1707         .hword  (0xD2<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1708         .hword  (0xD3<<8)|(1<<SFlag)      |(1<<HFlag)         |(1<<CFlag)
1709         .hword  (0xD4<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1710         .hword  (0xD5<<8)|(1<<SFlag)      |(1<<HFlag)         |(1<<CFlag)
1711         .hword  (0xD0<<8)|(1<<SFlag)                  |(1<<CFlag)
1712         .hword  (0xD1<<8)|(1<<SFlag)            |(1<<VFlag)   |(1<<CFlag)
1713         .hword  (0xD2<<8)|(1<<SFlag)            |(1<<VFlag)   |(1<<CFlag)
1714         .hword  (0xD3<<8)|(1<<SFlag)                  |(1<<CFlag)
1715         .hword  (0xD4<<8)|(1<<SFlag)            |(1<<VFlag)   |(1<<CFlag)
1716         .hword  (0xD5<<8)|(1<<SFlag)                  |(1<<CFlag)
1717         .hword  (0xD6<<8)|(1<<SFlag)                  |(1<<CFlag)
1718         .hword  (0xD7<<8)|(1<<SFlag)            |(1<<VFlag)   |(1<<CFlag)
1719         .hword  (0xD8<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)
1720         .hword  (0xD9<<8)|(1<<SFlag)               |(1<<CFlag)
1721         .hword  (0xE0<<8)|(1<<SFlag)   |(1<<HFlag)         |(1<<CFlag)
1722         .hword  (0xE1<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1723         .hword  (0xE2<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1724         .hword  (0xE3<<8)|(1<<SFlag)   |(1<<HFlag)         |(1<<CFlag)
1725         .hword  (0xE4<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1726         .hword  (0xE5<<8)|(1<<SFlag)   |(1<<HFlag)         |(1<<CFlag)
1727         .hword  (0xE0<<8)|(1<<SFlag)               |(1<<CFlag)
1728         .hword  (0xE1<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)
1729         .hword  (0xE2<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)
1730         .hword  (0xE3<<8)|(1<<SFlag)               |(1<<CFlag)
1731         .hword  (0xE4<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)
1732         .hword  (0xE5<<8)|(1<<SFlag)               |(1<<CFlag)
1733         .hword  (0xE6<<8)|(1<<SFlag)               |(1<<CFlag)
1734         .hword  (0xE7<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)
1735         .hword  (0xE8<<8)|(1<<SFlag)      |(1<<VFlag)   |(1<<CFlag)
1736         .hword  (0xE9<<8)|(1<<SFlag)            |(1<<CFlag)
1737         .hword  (0xF0<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1738         .hword  (0xF1<<8)|(1<<SFlag)   |(1<<HFlag)         |(1<<CFlag)
1739         .hword  (0xF2<<8)|(1<<SFlag)   |(1<<HFlag)         |(1<<CFlag)
1740         .hword  (0xF3<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1741         .hword  (0xF4<<8)|(1<<SFlag)   |(1<<HFlag)         |(1<<CFlag)
1742         .hword  (0xF5<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1743         .hword  (0xF0<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)
1744         .hword  (0xF1<<8)|(1<<SFlag)               |(1<<CFlag)
1745         .hword  (0xF2<<8)|(1<<SFlag)               |(1<<CFlag)
1746         .hword  (0xF3<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)
1747         .hword  (0xF4<<8)|(1<<SFlag)               |(1<<CFlag)
1748         .hword  (0xF5<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)
1749         .hword  (0xF6<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)
1750         .hword  (0xF7<<8)|(1<<SFlag)               |(1<<CFlag)
1751         .hword  (0xF8<<8)|(1<<SFlag)            |(1<<CFlag)
1752         .hword  (0xF9<<8)|(1<<SFlag)      |(1<<VFlag)   |(1<<CFlag)
1753         .hword  (0x00<<8)   |(1<<ZFlag)   |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1754         .hword  (0x01<<8)         |(1<<HFlag)         |(1<<CFlag)
1755         .hword  (0x02<<8)         |(1<<HFlag)         |(1<<CFlag)
1756         .hword  (0x03<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1757         .hword  (0x04<<8)         |(1<<HFlag)         |(1<<CFlag)
1758         .hword  (0x05<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1759         .hword  (0x00<<8)   |(1<<ZFlag)         |(1<<VFlag)   |(1<<CFlag)
1760         .hword  (0x01<<8)                     |(1<<CFlag)
1761         .hword  (0x02<<8)                     |(1<<CFlag)
1762         .hword  (0x03<<8)               |(1<<VFlag)   |(1<<CFlag)
1763         .hword  (0x04<<8)                     |(1<<CFlag)
1764         .hword  (0x05<<8)               |(1<<VFlag)   |(1<<CFlag)
1765         .hword  (0x06<<8)               |(1<<VFlag)   |(1<<CFlag)
1766         .hword  (0x07<<8)                     |(1<<CFlag)
1767         .hword  (0x08<<8)                  |(1<<CFlag)
1768         .hword  (0x09<<8)            |(1<<VFlag)   |(1<<CFlag)
1769         .hword  (0x10<<8)         |(1<<HFlag)         |(1<<CFlag)
1770         .hword  (0x11<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1771         .hword  (0x12<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1772         .hword  (0x13<<8)         |(1<<HFlag)         |(1<<CFlag)
1773         .hword  (0x14<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1774         .hword  (0x15<<8)         |(1<<HFlag)         |(1<<CFlag)
1775         .hword  (0x10<<8)                     |(1<<CFlag)
1776         .hword  (0x11<<8)               |(1<<VFlag)   |(1<<CFlag)
1777         .hword  (0x12<<8)               |(1<<VFlag)   |(1<<CFlag)
1778         .hword  (0x13<<8)                     |(1<<CFlag)
1779         .hword  (0x14<<8)               |(1<<VFlag)   |(1<<CFlag)
1780         .hword  (0x15<<8)                     |(1<<CFlag)
1781         .hword  (0x16<<8)                     |(1<<CFlag)
1782         .hword  (0x17<<8)               |(1<<VFlag)   |(1<<CFlag)
1783         .hword  (0x18<<8)            |(1<<VFlag)   |(1<<CFlag)
1784         .hword  (0x19<<8)                  |(1<<CFlag)
1785         .hword  (0x20<<8)      |(1<<HFlag)         |(1<<CFlag)
1786         .hword  (0x21<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1787         .hword  (0x22<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1788         .hword  (0x23<<8)      |(1<<HFlag)         |(1<<CFlag)
1789         .hword  (0x24<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1790         .hword  (0x25<<8)      |(1<<HFlag)         |(1<<CFlag)
1791         .hword  (0x20<<8)                  |(1<<CFlag)
1792         .hword  (0x21<<8)            |(1<<VFlag)   |(1<<CFlag)
1793         .hword  (0x22<<8)            |(1<<VFlag)   |(1<<CFlag)
1794         .hword  (0x23<<8)                  |(1<<CFlag)
1795         .hword  (0x24<<8)            |(1<<VFlag)   |(1<<CFlag)
1796         .hword  (0x25<<8)                  |(1<<CFlag)
1797         .hword  (0x26<<8)                  |(1<<CFlag)
1798         .hword  (0x27<<8)            |(1<<VFlag)   |(1<<CFlag)
1799         .hword  (0x28<<8)         |(1<<VFlag)   |(1<<CFlag)
1800         .hword  (0x29<<8)               |(1<<CFlag)
1801         .hword  (0x30<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1802         .hword  (0x31<<8)      |(1<<HFlag)         |(1<<CFlag)
1803         .hword  (0x32<<8)      |(1<<HFlag)         |(1<<CFlag)
1804         .hword  (0x33<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1805         .hword  (0x34<<8)      |(1<<HFlag)         |(1<<CFlag)
1806         .hword  (0x35<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1807         .hword  (0x30<<8)            |(1<<VFlag)   |(1<<CFlag)
1808         .hword  (0x31<<8)                  |(1<<CFlag)
1809         .hword  (0x32<<8)                  |(1<<CFlag)
1810         .hword  (0x33<<8)            |(1<<VFlag)   |(1<<CFlag)
1811         .hword  (0x34<<8)                  |(1<<CFlag)
1812         .hword  (0x35<<8)            |(1<<VFlag)   |(1<<CFlag)
1813         .hword  (0x36<<8)            |(1<<VFlag)   |(1<<CFlag)
1814         .hword  (0x37<<8)                  |(1<<CFlag)
1815         .hword  (0x38<<8)               |(1<<CFlag)
1816         .hword  (0x39<<8)         |(1<<VFlag)   |(1<<CFlag)
1817         .hword  (0x40<<8)         |(1<<HFlag)         |(1<<CFlag)
1818         .hword  (0x41<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1819         .hword  (0x42<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1820         .hword  (0x43<<8)         |(1<<HFlag)         |(1<<CFlag)
1821         .hword  (0x44<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1822         .hword  (0x45<<8)         |(1<<HFlag)         |(1<<CFlag)
1823         .hword  (0x40<<8)                     |(1<<CFlag)
1824         .hword  (0x41<<8)               |(1<<VFlag)   |(1<<CFlag)
1825         .hword  (0x42<<8)               |(1<<VFlag)   |(1<<CFlag)
1826         .hword  (0x43<<8)                     |(1<<CFlag)
1827         .hword  (0x44<<8)               |(1<<VFlag)   |(1<<CFlag)
1828         .hword  (0x45<<8)                     |(1<<CFlag)
1829         .hword  (0x46<<8)                     |(1<<CFlag)
1830         .hword  (0x47<<8)               |(1<<VFlag)   |(1<<CFlag)
1831         .hword  (0x48<<8)            |(1<<VFlag)   |(1<<CFlag)
1832         .hword  (0x49<<8)                  |(1<<CFlag)
1833         .hword  (0x50<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1834         .hword  (0x51<<8)         |(1<<HFlag)         |(1<<CFlag)
1835         .hword  (0x52<<8)         |(1<<HFlag)         |(1<<CFlag)
1836         .hword  (0x53<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1837         .hword  (0x54<<8)         |(1<<HFlag)         |(1<<CFlag)
1838         .hword  (0x55<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1839         .hword  (0x50<<8)               |(1<<VFlag)   |(1<<CFlag)
1840         .hword  (0x51<<8)                     |(1<<CFlag)
1841         .hword  (0x52<<8)                     |(1<<CFlag)
1842         .hword  (0x53<<8)               |(1<<VFlag)   |(1<<CFlag)
1843         .hword  (0x54<<8)                     |(1<<CFlag)
1844         .hword  (0x55<<8)               |(1<<VFlag)   |(1<<CFlag)
1845         .hword  (0x56<<8)               |(1<<VFlag)   |(1<<CFlag)
1846         .hword  (0x57<<8)                     |(1<<CFlag)
1847         .hword  (0x58<<8)                  |(1<<CFlag)
1848         .hword  (0x59<<8)            |(1<<VFlag)   |(1<<CFlag)
1849         .hword  (0x60<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1850         .hword  (0x61<<8)      |(1<<HFlag)         |(1<<CFlag)
1851         .hword  (0x62<<8)      |(1<<HFlag)         |(1<<CFlag)
1852         .hword  (0x63<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1853         .hword  (0x64<<8)      |(1<<HFlag)         |(1<<CFlag)
1854         .hword  (0x65<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1855         .hword  (0x06<<8)               |(1<<VFlag)
1856         .hword  (0x07<<8)
1857         .hword  (0x08<<8)
1858         .hword  (0x09<<8)            |(1<<VFlag)
1859         .hword  (0x0A<<8)            |(1<<VFlag)
1860         .hword  (0x0B<<8)
1861         .hword  (0x0C<<8)            |(1<<VFlag)
1862         .hword  (0x0D<<8)
1863         .hword  (0x0E<<8)
1864         .hword  (0x0F<<8)            |(1<<VFlag)
1865         .hword  (0x10<<8)         |(1<<HFlag)
1866         .hword  (0x11<<8)         |(1<<HFlag)   |(1<<VFlag)
1867         .hword  (0x12<<8)         |(1<<HFlag)   |(1<<VFlag)
1868         .hword  (0x13<<8)         |(1<<HFlag)
1869         .hword  (0x14<<8)         |(1<<HFlag)   |(1<<VFlag)
1870         .hword  (0x15<<8)         |(1<<HFlag)
1871         .hword  (0x16<<8)
1872         .hword  (0x17<<8)               |(1<<VFlag)
1873         .hword  (0x18<<8)            |(1<<VFlag)
1874         .hword  (0x19<<8)
1875         .hword  (0x1A<<8)
1876         .hword  (0x1B<<8)            |(1<<VFlag)
1877         .hword  (0x1C<<8)
1878         .hword  (0x1D<<8)            |(1<<VFlag)
1879         .hword  (0x1E<<8)            |(1<<VFlag)
1880         .hword  (0x1F<<8)
1881         .hword  (0x20<<8)      |(1<<HFlag)
1882         .hword  (0x21<<8)      |(1<<HFlag)   |(1<<VFlag)
1883         .hword  (0x22<<8)      |(1<<HFlag)   |(1<<VFlag)
1884         .hword  (0x23<<8)      |(1<<HFlag)
1885         .hword  (0x24<<8)      |(1<<HFlag)   |(1<<VFlag)
1886         .hword  (0x25<<8)      |(1<<HFlag)
1887         .hword  (0x26<<8)
1888         .hword  (0x27<<8)            |(1<<VFlag)
1889         .hword  (0x28<<8)         |(1<<VFlag)
1890         .hword  (0x29<<8)
1891         .hword  (0x2A<<8)
1892         .hword  (0x2B<<8)         |(1<<VFlag)
1893         .hword  (0x2C<<8)
1894         .hword  (0x2D<<8)         |(1<<VFlag)
1895         .hword  (0x2E<<8)         |(1<<VFlag)
1896         .hword  (0x2F<<8)
1897         .hword  (0x30<<8)      |(1<<HFlag)   |(1<<VFlag)
1898         .hword  (0x31<<8)      |(1<<HFlag)
1899         .hword  (0x32<<8)      |(1<<HFlag)
1900         .hword  (0x33<<8)      |(1<<HFlag)   |(1<<VFlag)
1901         .hword  (0x34<<8)      |(1<<HFlag)
1902         .hword  (0x35<<8)      |(1<<HFlag)   |(1<<VFlag)
1903         .hword  (0x36<<8)            |(1<<VFlag)
1904         .hword  (0x37<<8)
1905         .hword  (0x38<<8)
1906         .hword  (0x39<<8)         |(1<<VFlag)
1907         .hword  (0x3A<<8)         |(1<<VFlag)
1908         .hword  (0x3B<<8)
1909         .hword  (0x3C<<8)         |(1<<VFlag)
1910         .hword  (0x3D<<8)
1911         .hword  (0x3E<<8)
1912         .hword  (0x3F<<8)         |(1<<VFlag)
1913         .hword  (0x40<<8)         |(1<<HFlag)
1914         .hword  (0x41<<8)         |(1<<HFlag)   |(1<<VFlag)
1915         .hword  (0x42<<8)         |(1<<HFlag)   |(1<<VFlag)
1916         .hword  (0x43<<8)         |(1<<HFlag)
1917         .hword  (0x44<<8)         |(1<<HFlag)   |(1<<VFlag)
1918         .hword  (0x45<<8)         |(1<<HFlag)
1919         .hword  (0x46<<8)
1920         .hword  (0x47<<8)               |(1<<VFlag)
1921         .hword  (0x48<<8)            |(1<<VFlag)
1922         .hword  (0x49<<8)
1923         .hword  (0x4A<<8)
1924         .hword  (0x4B<<8)            |(1<<VFlag)
1925         .hword  (0x4C<<8)
1926         .hword  (0x4D<<8)            |(1<<VFlag)
1927         .hword  (0x4E<<8)            |(1<<VFlag)
1928         .hword  (0x4F<<8)
1929         .hword  (0x50<<8)         |(1<<HFlag)   |(1<<VFlag)
1930         .hword  (0x51<<8)         |(1<<HFlag)
1931         .hword  (0x52<<8)         |(1<<HFlag)
1932         .hword  (0x53<<8)         |(1<<HFlag)   |(1<<VFlag)
1933         .hword  (0x54<<8)         |(1<<HFlag)
1934         .hword  (0x55<<8)         |(1<<HFlag)   |(1<<VFlag)
1935         .hword  (0x56<<8)               |(1<<VFlag)
1936         .hword  (0x57<<8)
1937         .hword  (0x58<<8)
1938         .hword  (0x59<<8)            |(1<<VFlag)
1939         .hword  (0x5A<<8)            |(1<<VFlag)
1940         .hword  (0x5B<<8)
1941         .hword  (0x5C<<8)            |(1<<VFlag)
1942         .hword  (0x5D<<8)
1943         .hword  (0x5E<<8)
1944         .hword  (0x5F<<8)            |(1<<VFlag)
1945         .hword  (0x60<<8)      |(1<<HFlag)   |(1<<VFlag)
1946         .hword  (0x61<<8)      |(1<<HFlag)
1947         .hword  (0x62<<8)      |(1<<HFlag)
1948         .hword  (0x63<<8)      |(1<<HFlag)   |(1<<VFlag)
1949         .hword  (0x64<<8)      |(1<<HFlag)
1950         .hword  (0x65<<8)      |(1<<HFlag)   |(1<<VFlag)
1951         .hword  (0x66<<8)            |(1<<VFlag)
1952         .hword  (0x67<<8)
1953         .hword  (0x68<<8)
1954         .hword  (0x69<<8)         |(1<<VFlag)
1955         .hword  (0x6A<<8)         |(1<<VFlag)
1956         .hword  (0x6B<<8)
1957         .hword  (0x6C<<8)         |(1<<VFlag)
1958         .hword  (0x6D<<8)
1959         .hword  (0x6E<<8)
1960         .hword  (0x6F<<8)         |(1<<VFlag)
1961         .hword  (0x70<<8)      |(1<<HFlag)
1962         .hword  (0x71<<8)      |(1<<HFlag)   |(1<<VFlag)
1963         .hword  (0x72<<8)      |(1<<HFlag)   |(1<<VFlag)
1964         .hword  (0x73<<8)      |(1<<HFlag)
1965         .hword  (0x74<<8)      |(1<<HFlag)   |(1<<VFlag)
1966         .hword  (0x75<<8)      |(1<<HFlag)
1967         .hword  (0x76<<8)
1968         .hword  (0x77<<8)            |(1<<VFlag)
1969         .hword  (0x78<<8)         |(1<<VFlag)
1970         .hword  (0x79<<8)
1971         .hword  (0x7A<<8)
1972         .hword  (0x7B<<8)         |(1<<VFlag)
1973         .hword  (0x7C<<8)
1974         .hword  (0x7D<<8)         |(1<<VFlag)
1975         .hword  (0x7E<<8)         |(1<<VFlag)
1976         .hword  (0x7F<<8)
1977         .hword  (0x80<<8)|(1<<SFlag)      |(1<<HFlag)
1978         .hword  (0x81<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)
1979         .hword  (0x82<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)
1980         .hword  (0x83<<8)|(1<<SFlag)      |(1<<HFlag)
1981         .hword  (0x84<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)
1982         .hword  (0x85<<8)|(1<<SFlag)      |(1<<HFlag)
1983         .hword  (0x86<<8)|(1<<SFlag)
1984         .hword  (0x87<<8)|(1<<SFlag)            |(1<<VFlag)
1985         .hword  (0x88<<8)|(1<<SFlag)         |(1<<VFlag)
1986         .hword  (0x89<<8)|(1<<SFlag)
1987         .hword  (0x8A<<8)|(1<<SFlag)
1988         .hword  (0x8B<<8)|(1<<SFlag)         |(1<<VFlag)
1989         .hword  (0x8C<<8)|(1<<SFlag)
1990         .hword  (0x8D<<8)|(1<<SFlag)         |(1<<VFlag)
1991         .hword  (0x8E<<8)|(1<<SFlag)         |(1<<VFlag)
1992         .hword  (0x8F<<8)|(1<<SFlag)
1993         .hword  (0x90<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)
1994         .hword  (0x91<<8)|(1<<SFlag)      |(1<<HFlag)
1995         .hword  (0x92<<8)|(1<<SFlag)      |(1<<HFlag)
1996         .hword  (0x93<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)
1997         .hword  (0x94<<8)|(1<<SFlag)      |(1<<HFlag)
1998         .hword  (0x95<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)
1999         .hword  (0x96<<8)|(1<<SFlag)            |(1<<VFlag)
2000         .hword  (0x97<<8)|(1<<SFlag)
2001         .hword  (0x98<<8)|(1<<SFlag)
2002         .hword  (0x99<<8)|(1<<SFlag)         |(1<<VFlag)
2003         .hword  (0x9A<<8)|(1<<SFlag)         |(1<<VFlag)
2004         .hword  (0x9B<<8)|(1<<SFlag)
2005         .hword  (0x9C<<8)|(1<<SFlag)         |(1<<VFlag)
2006         .hword  (0x9D<<8)|(1<<SFlag)
2007         .hword  (0x9E<<8)|(1<<SFlag)
2008         .hword  (0x9F<<8)|(1<<SFlag)         |(1<<VFlag)
2009         .hword  (0x00<<8)   |(1<<ZFlag)   |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2010         .hword  (0x01<<8)         |(1<<HFlag)         |(1<<CFlag)
2011         .hword  (0x02<<8)         |(1<<HFlag)         |(1<<CFlag)
2012         .hword  (0x03<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2013         .hword  (0x04<<8)         |(1<<HFlag)         |(1<<CFlag)
2014         .hword  (0x05<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2015         .hword  (0x06<<8)               |(1<<VFlag)   |(1<<CFlag)
2016         .hword  (0x07<<8)                     |(1<<CFlag)
2017         .hword  (0x08<<8)                  |(1<<CFlag)
2018         .hword  (0x09<<8)            |(1<<VFlag)   |(1<<CFlag)
2019         .hword  (0x0A<<8)            |(1<<VFlag)   |(1<<CFlag)
2020         .hword  (0x0B<<8)                  |(1<<CFlag)
2021         .hword  (0x0C<<8)            |(1<<VFlag)   |(1<<CFlag)
2022         .hword  (0x0D<<8)                  |(1<<CFlag)
2023         .hword  (0x0E<<8)                  |(1<<CFlag)
2024         .hword  (0x0F<<8)            |(1<<VFlag)   |(1<<CFlag)
2025         .hword  (0x10<<8)         |(1<<HFlag)         |(1<<CFlag)
2026         .hword  (0x11<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2027         .hword  (0x12<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2028         .hword  (0x13<<8)         |(1<<HFlag)         |(1<<CFlag)
2029         .hword  (0x14<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2030         .hword  (0x15<<8)         |(1<<HFlag)         |(1<<CFlag)
2031         .hword  (0x16<<8)                     |(1<<CFlag)
2032         .hword  (0x17<<8)               |(1<<VFlag)   |(1<<CFlag)
2033         .hword  (0x18<<8)            |(1<<VFlag)   |(1<<CFlag)
2034         .hword  (0x19<<8)                  |(1<<CFlag)
2035         .hword  (0x1A<<8)                  |(1<<CFlag)
2036         .hword  (0x1B<<8)            |(1<<VFlag)   |(1<<CFlag)
2037         .hword  (0x1C<<8)                  |(1<<CFlag)
2038         .hword  (0x1D<<8)            |(1<<VFlag)   |(1<<CFlag)
2039         .hword  (0x1E<<8)            |(1<<VFlag)   |(1<<CFlag)
2040         .hword  (0x1F<<8)                  |(1<<CFlag)
2041         .hword  (0x20<<8)      |(1<<HFlag)         |(1<<CFlag)
2042         .hword  (0x21<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2043         .hword  (0x22<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2044         .hword  (0x23<<8)      |(1<<HFlag)         |(1<<CFlag)
2045         .hword  (0x24<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2046         .hword  (0x25<<8)      |(1<<HFlag)         |(1<<CFlag)
2047         .hword  (0x26<<8)                  |(1<<CFlag)
2048         .hword  (0x27<<8)            |(1<<VFlag)   |(1<<CFlag)
2049         .hword  (0x28<<8)         |(1<<VFlag)   |(1<<CFlag)
2050         .hword  (0x29<<8)               |(1<<CFlag)
2051         .hword  (0x2A<<8)               |(1<<CFlag)
2052         .hword  (0x2B<<8)         |(1<<VFlag)   |(1<<CFlag)
2053         .hword  (0x2C<<8)               |(1<<CFlag)
2054         .hword  (0x2D<<8)         |(1<<VFlag)   |(1<<CFlag)
2055         .hword  (0x2E<<8)         |(1<<VFlag)   |(1<<CFlag)
2056         .hword  (0x2F<<8)               |(1<<CFlag)
2057         .hword  (0x30<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2058         .hword  (0x31<<8)      |(1<<HFlag)         |(1<<CFlag)
2059         .hword  (0x32<<8)      |(1<<HFlag)         |(1<<CFlag)
2060         .hword  (0x33<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2061         .hword  (0x34<<8)      |(1<<HFlag)         |(1<<CFlag)
2062         .hword  (0x35<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2063         .hword  (0x36<<8)            |(1<<VFlag)   |(1<<CFlag)
2064         .hword  (0x37<<8)                  |(1<<CFlag)
2065         .hword  (0x38<<8)               |(1<<CFlag)
2066         .hword  (0x39<<8)         |(1<<VFlag)   |(1<<CFlag)
2067         .hword  (0x3A<<8)         |(1<<VFlag)   |(1<<CFlag)
2068         .hword  (0x3B<<8)               |(1<<CFlag)
2069         .hword  (0x3C<<8)         |(1<<VFlag)   |(1<<CFlag)
2070         .hword  (0x3D<<8)               |(1<<CFlag)
2071         .hword  (0x3E<<8)               |(1<<CFlag)
2072         .hword  (0x3F<<8)         |(1<<VFlag)   |(1<<CFlag)
2073         .hword  (0x40<<8)         |(1<<HFlag)         |(1<<CFlag)
2074         .hword  (0x41<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2075         .hword  (0x42<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2076         .hword  (0x43<<8)         |(1<<HFlag)         |(1<<CFlag)
2077         .hword  (0x44<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2078         .hword  (0x45<<8)         |(1<<HFlag)         |(1<<CFlag)
2079         .hword  (0x46<<8)                     |(1<<CFlag)
2080         .hword  (0x47<<8)               |(1<<VFlag)   |(1<<CFlag)
2081         .hword  (0x48<<8)            |(1<<VFlag)   |(1<<CFlag)
2082         .hword  (0x49<<8)                  |(1<<CFlag)
2083         .hword  (0x4A<<8)                  |(1<<CFlag)
2084         .hword  (0x4B<<8)            |(1<<VFlag)   |(1<<CFlag)
2085         .hword  (0x4C<<8)                  |(1<<CFlag)
2086         .hword  (0x4D<<8)            |(1<<VFlag)   |(1<<CFlag)
2087         .hword  (0x4E<<8)            |(1<<VFlag)   |(1<<CFlag)
2088         .hword  (0x4F<<8)                  |(1<<CFlag)
2089         .hword  (0x50<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2090         .hword  (0x51<<8)         |(1<<HFlag)         |(1<<CFlag)
2091         .hword  (0x52<<8)         |(1<<HFlag)         |(1<<CFlag)
2092         .hword  (0x53<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2093         .hword  (0x54<<8)         |(1<<HFlag)         |(1<<CFlag)
2094         .hword  (0x55<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2095         .hword  (0x56<<8)               |(1<<VFlag)   |(1<<CFlag)
2096         .hword  (0x57<<8)                     |(1<<CFlag)
2097         .hword  (0x58<<8)                  |(1<<CFlag)
2098         .hword  (0x59<<8)            |(1<<VFlag)   |(1<<CFlag)
2099         .hword  (0x5A<<8)            |(1<<VFlag)   |(1<<CFlag)
2100         .hword  (0x5B<<8)                  |(1<<CFlag)
2101         .hword  (0x5C<<8)            |(1<<VFlag)   |(1<<CFlag)
2102         .hword  (0x5D<<8)                  |(1<<CFlag)
2103         .hword  (0x5E<<8)                  |(1<<CFlag)
2104         .hword  (0x5F<<8)            |(1<<VFlag)   |(1<<CFlag)
2105         .hword  (0x60<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2106         .hword  (0x61<<8)      |(1<<HFlag)         |(1<<CFlag)
2107         .hword  (0x62<<8)      |(1<<HFlag)         |(1<<CFlag)
2108         .hword  (0x63<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2109         .hword  (0x64<<8)      |(1<<HFlag)         |(1<<CFlag)
2110         .hword  (0x65<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2111         .hword  (0x66<<8)            |(1<<VFlag)   |(1<<CFlag)
2112         .hword  (0x67<<8)                  |(1<<CFlag)
2113         .hword  (0x68<<8)               |(1<<CFlag)
2114         .hword  (0x69<<8)         |(1<<VFlag)   |(1<<CFlag)
2115         .hword  (0x6A<<8)         |(1<<VFlag)   |(1<<CFlag)
2116         .hword  (0x6B<<8)               |(1<<CFlag)
2117         .hword  (0x6C<<8)         |(1<<VFlag)   |(1<<CFlag)
2118         .hword  (0x6D<<8)               |(1<<CFlag)
2119         .hword  (0x6E<<8)               |(1<<CFlag)
2120         .hword  (0x6F<<8)         |(1<<VFlag)   |(1<<CFlag)
2121         .hword  (0x70<<8)      |(1<<HFlag)         |(1<<CFlag)
2122         .hword  (0x71<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2123         .hword  (0x72<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2124         .hword  (0x73<<8)      |(1<<HFlag)         |(1<<CFlag)
2125         .hword  (0x74<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2126         .hword  (0x75<<8)      |(1<<HFlag)         |(1<<CFlag)
2127         .hword  (0x76<<8)                  |(1<<CFlag)
2128         .hword  (0x77<<8)            |(1<<VFlag)   |(1<<CFlag)
2129         .hword  (0x78<<8)         |(1<<VFlag)   |(1<<CFlag)
2130         .hword  (0x79<<8)               |(1<<CFlag)
2131         .hword  (0x7A<<8)               |(1<<CFlag)
2132         .hword  (0x7B<<8)         |(1<<VFlag)   |(1<<CFlag)
2133         .hword  (0x7C<<8)               |(1<<CFlag)
2134         .hword  (0x7D<<8)         |(1<<VFlag)   |(1<<CFlag)
2135         .hword  (0x7E<<8)         |(1<<VFlag)   |(1<<CFlag)
2136         .hword  (0x7F<<8)               |(1<<CFlag)
2137         .hword  (0x80<<8)|(1<<SFlag)      |(1<<HFlag)         |(1<<CFlag)
2138         .hword  (0x81<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2139         .hword  (0x82<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2140         .hword  (0x83<<8)|(1<<SFlag)      |(1<<HFlag)         |(1<<CFlag)
2141         .hword  (0x84<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2142         .hword  (0x85<<8)|(1<<SFlag)      |(1<<HFlag)         |(1<<CFlag)
2143         .hword  (0x86<<8)|(1<<SFlag)                  |(1<<CFlag)
2144         .hword  (0x87<<8)|(1<<SFlag)            |(1<<VFlag)   |(1<<CFlag)
2145         .hword  (0x88<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)
2146         .hword  (0x89<<8)|(1<<SFlag)               |(1<<CFlag)
2147         .hword  (0x8A<<8)|(1<<SFlag)               |(1<<CFlag)
2148         .hword  (0x8B<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)
2149         .hword  (0x8C<<8)|(1<<SFlag)               |(1<<CFlag)
2150         .hword  (0x8D<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)
2151         .hword  (0x8E<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)
2152         .hword  (0x8F<<8)|(1<<SFlag)               |(1<<CFlag)
2153         .hword  (0x90<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2154         .hword  (0x91<<8)|(1<<SFlag)      |(1<<HFlag)         |(1<<CFlag)
2155         .hword  (0x92<<8)|(1<<SFlag)      |(1<<HFlag)         |(1<<CFlag)
2156         .hword  (0x93<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2157         .hword  (0x94<<8)|(1<<SFlag)      |(1<<HFlag)         |(1<<CFlag)
2158         .hword  (0x95<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2159         .hword  (0x96<<8)|(1<<SFlag)            |(1<<VFlag)   |(1<<CFlag)
2160         .hword  (0x97<<8)|(1<<SFlag)                  |(1<<CFlag)
2161         .hword  (0x98<<8)|(1<<SFlag)               |(1<<CFlag)
2162         .hword  (0x99<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)
2163         .hword  (0x9A<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)
2164         .hword  (0x9B<<8)|(1<<SFlag)               |(1<<CFlag)
2165         .hword  (0x9C<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)
2166         .hword  (0x9D<<8)|(1<<SFlag)               |(1<<CFlag)
2167         .hword  (0x9E<<8)|(1<<SFlag)               |(1<<CFlag)
2168         .hword  (0x9F<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)
2169         .hword  (0xA0<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2170         .hword  (0xA1<<8)|(1<<SFlag)   |(1<<HFlag)         |(1<<CFlag)
2171         .hword  (0xA2<<8)|(1<<SFlag)   |(1<<HFlag)         |(1<<CFlag)
2172         .hword  (0xA3<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2173         .hword  (0xA4<<8)|(1<<SFlag)   |(1<<HFlag)         |(1<<CFlag)
2174         .hword  (0xA5<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2175         .hword  (0xA6<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)
2176         .hword  (0xA7<<8)|(1<<SFlag)               |(1<<CFlag)
2177         .hword  (0xA8<<8)|(1<<SFlag)            |(1<<CFlag)
2178         .hword  (0xA9<<8)|(1<<SFlag)      |(1<<VFlag)   |(1<<CFlag)
2179         .hword  (0xAA<<8)|(1<<SFlag)      |(1<<VFlag)   |(1<<CFlag)
2180         .hword  (0xAB<<8)|(1<<SFlag)            |(1<<CFlag)
2181         .hword  (0xAC<<8)|(1<<SFlag)      |(1<<VFlag)   |(1<<CFlag)
2182         .hword  (0xAD<<8)|(1<<SFlag)            |(1<<CFlag)
2183         .hword  (0xAE<<8)|(1<<SFlag)            |(1<<CFlag)
2184         .hword  (0xAF<<8)|(1<<SFlag)      |(1<<VFlag)   |(1<<CFlag)
2185         .hword  (0xB0<<8)|(1<<SFlag)   |(1<<HFlag)         |(1<<CFlag)
2186         .hword  (0xB1<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2187         .hword  (0xB2<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2188         .hword  (0xB3<<8)|(1<<SFlag)   |(1<<HFlag)         |(1<<CFlag)
2189         .hword  (0xB4<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2190         .hword  (0xB5<<8)|(1<<SFlag)   |(1<<HFlag)         |(1<<CFlag)
2191         .hword  (0xB6<<8)|(1<<SFlag)               |(1<<CFlag)
2192         .hword  (0xB7<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)
2193         .hword  (0xB8<<8)|(1<<SFlag)      |(1<<VFlag)   |(1<<CFlag)
2194         .hword  (0xB9<<8)|(1<<SFlag)            |(1<<CFlag)
2195         .hword  (0xBA<<8)|(1<<SFlag)            |(1<<CFlag)
2196         .hword  (0xBB<<8)|(1<<SFlag)      |(1<<VFlag)   |(1<<CFlag)
2197         .hword  (0xBC<<8)|(1<<SFlag)            |(1<<CFlag)
2198         .hword  (0xBD<<8)|(1<<SFlag)      |(1<<VFlag)   |(1<<CFlag)
2199         .hword  (0xBE<<8)|(1<<SFlag)      |(1<<VFlag)   |(1<<CFlag)
2200         .hword  (0xBF<<8)|(1<<SFlag)            |(1<<CFlag)
2201         .hword  (0xC0<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2202         .hword  (0xC1<<8)|(1<<SFlag)      |(1<<HFlag)         |(1<<CFlag)
2203         .hword  (0xC2<<8)|(1<<SFlag)      |(1<<HFlag)         |(1<<CFlag)
2204         .hword  (0xC3<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2205         .hword  (0xC4<<8)|(1<<SFlag)      |(1<<HFlag)         |(1<<CFlag)
2206         .hword  (0xC5<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2207         .hword  (0xC6<<8)|(1<<SFlag)            |(1<<VFlag)   |(1<<CFlag)
2208         .hword  (0xC7<<8)|(1<<SFlag)                  |(1<<CFlag)
2209         .hword  (0xC8<<8)|(1<<SFlag)               |(1<<CFlag)
2210         .hword  (0xC9<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)
2211         .hword  (0xCA<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)
2212         .hword  (0xCB<<8)|(1<<SFlag)               |(1<<CFlag)
2213         .hword  (0xCC<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)
2214         .hword  (0xCD<<8)|(1<<SFlag)               |(1<<CFlag)
2215         .hword  (0xCE<<8)|(1<<SFlag)               |(1<<CFlag)
2216         .hword  (0xCF<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)
2217         .hword  (0xD0<<8)|(1<<SFlag)      |(1<<HFlag)         |(1<<CFlag)
2218         .hword  (0xD1<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2219         .hword  (0xD2<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2220         .hword  (0xD3<<8)|(1<<SFlag)      |(1<<HFlag)         |(1<<CFlag)
2221         .hword  (0xD4<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2222         .hword  (0xD5<<8)|(1<<SFlag)      |(1<<HFlag)         |(1<<CFlag)
2223         .hword  (0xD6<<8)|(1<<SFlag)                  |(1<<CFlag)
2224         .hword  (0xD7<<8)|(1<<SFlag)            |(1<<VFlag)   |(1<<CFlag)
2225         .hword  (0xD8<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)
2226         .hword  (0xD9<<8)|(1<<SFlag)               |(1<<CFlag)
2227         .hword  (0xDA<<8)|(1<<SFlag)               |(1<<CFlag)
2228         .hword  (0xDB<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)
2229         .hword  (0xDC<<8)|(1<<SFlag)               |(1<<CFlag)
2230         .hword  (0xDD<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)
2231         .hword  (0xDE<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)
2232         .hword  (0xDF<<8)|(1<<SFlag)               |(1<<CFlag)
2233         .hword  (0xE0<<8)|(1<<SFlag)   |(1<<HFlag)         |(1<<CFlag)
2234         .hword  (0xE1<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2235         .hword  (0xE2<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2236         .hword  (0xE3<<8)|(1<<SFlag)   |(1<<HFlag)         |(1<<CFlag)
2237         .hword  (0xE4<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2238         .hword  (0xE5<<8)|(1<<SFlag)   |(1<<HFlag)         |(1<<CFlag)
2239         .hword  (0xE6<<8)|(1<<SFlag)               |(1<<CFlag)
2240         .hword  (0xE7<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)
2241         .hword  (0xE8<<8)|(1<<SFlag)      |(1<<VFlag)   |(1<<CFlag)
2242         .hword  (0xE9<<8)|(1<<SFlag)            |(1<<CFlag)
2243         .hword  (0xEA<<8)|(1<<SFlag)            |(1<<CFlag)
2244         .hword  (0xEB<<8)|(1<<SFlag)      |(1<<VFlag)   |(1<<CFlag)
2245         .hword  (0xEC<<8)|(1<<SFlag)            |(1<<CFlag)
2246         .hword  (0xED<<8)|(1<<SFlag)      |(1<<VFlag)   |(1<<CFlag)
2247         .hword  (0xEE<<8)|(1<<SFlag)      |(1<<VFlag)   |(1<<CFlag)
2248         .hword  (0xEF<<8)|(1<<SFlag)            |(1<<CFlag)
2249         .hword  (0xF0<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2250         .hword  (0xF1<<8)|(1<<SFlag)   |(1<<HFlag)         |(1<<CFlag)
2251         .hword  (0xF2<<8)|(1<<SFlag)   |(1<<HFlag)         |(1<<CFlag)
2252         .hword  (0xF3<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2253         .hword  (0xF4<<8)|(1<<SFlag)   |(1<<HFlag)         |(1<<CFlag)
2254         .hword  (0xF5<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2255         .hword  (0xF6<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)
2256         .hword  (0xF7<<8)|(1<<SFlag)               |(1<<CFlag)
2257         .hword  (0xF8<<8)|(1<<SFlag)            |(1<<CFlag)
2258         .hword  (0xF9<<8)|(1<<SFlag)      |(1<<VFlag)   |(1<<CFlag)
2259         .hword  (0xFA<<8)|(1<<SFlag)      |(1<<VFlag)   |(1<<CFlag)
2260         .hword  (0xFB<<8)|(1<<SFlag)            |(1<<CFlag)
2261         .hword  (0xFC<<8)|(1<<SFlag)      |(1<<VFlag)   |(1<<CFlag)
2262         .hword  (0xFD<<8)|(1<<SFlag)            |(1<<CFlag)
2263         .hword  (0xFE<<8)|(1<<SFlag)            |(1<<CFlag)
2264         .hword  (0xFF<<8)|(1<<SFlag)      |(1<<VFlag)   |(1<<CFlag)
2265         .hword  (0x00<<8)   |(1<<ZFlag)   |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2266         .hword  (0x01<<8)         |(1<<HFlag)         |(1<<CFlag)
2267         .hword  (0x02<<8)         |(1<<HFlag)         |(1<<CFlag)
2268         .hword  (0x03<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2269         .hword  (0x04<<8)         |(1<<HFlag)         |(1<<CFlag)
2270         .hword  (0x05<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2271         .hword  (0x06<<8)               |(1<<VFlag)   |(1<<CFlag)
2272         .hword  (0x07<<8)                     |(1<<CFlag)
2273         .hword  (0x08<<8)                  |(1<<CFlag)
2274         .hword  (0x09<<8)            |(1<<VFlag)   |(1<<CFlag)
2275         .hword  (0x0A<<8)            |(1<<VFlag)   |(1<<CFlag)
2276         .hword  (0x0B<<8)                  |(1<<CFlag)
2277         .hword  (0x0C<<8)            |(1<<VFlag)   |(1<<CFlag)
2278         .hword  (0x0D<<8)                  |(1<<CFlag)
2279         .hword  (0x0E<<8)                  |(1<<CFlag)
2280         .hword  (0x0F<<8)            |(1<<VFlag)   |(1<<CFlag)
2281         .hword  (0x10<<8)         |(1<<HFlag)         |(1<<CFlag)
2282         .hword  (0x11<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2283         .hword  (0x12<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2284         .hword  (0x13<<8)         |(1<<HFlag)         |(1<<CFlag)
2285         .hword  (0x14<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2286         .hword  (0x15<<8)         |(1<<HFlag)         |(1<<CFlag)
2287         .hword  (0x16<<8)                     |(1<<CFlag)
2288         .hword  (0x17<<8)               |(1<<VFlag)   |(1<<CFlag)
2289         .hword  (0x18<<8)            |(1<<VFlag)   |(1<<CFlag)
2290         .hword  (0x19<<8)                  |(1<<CFlag)
2291         .hword  (0x1A<<8)                  |(1<<CFlag)
2292         .hword  (0x1B<<8)            |(1<<VFlag)   |(1<<CFlag)
2293         .hword  (0x1C<<8)                  |(1<<CFlag)
2294         .hword  (0x1D<<8)            |(1<<VFlag)   |(1<<CFlag)
2295         .hword  (0x1E<<8)            |(1<<VFlag)   |(1<<CFlag)
2296         .hword  (0x1F<<8)                  |(1<<CFlag)
2297         .hword  (0x20<<8)      |(1<<HFlag)         |(1<<CFlag)
2298         .hword  (0x21<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2299         .hword  (0x22<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2300         .hword  (0x23<<8)      |(1<<HFlag)         |(1<<CFlag)
2301         .hword  (0x24<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2302         .hword  (0x25<<8)      |(1<<HFlag)         |(1<<CFlag)
2303         .hword  (0x26<<8)                  |(1<<CFlag)
2304         .hword  (0x27<<8)            |(1<<VFlag)   |(1<<CFlag)
2305         .hword  (0x28<<8)         |(1<<VFlag)   |(1<<CFlag)
2306         .hword  (0x29<<8)               |(1<<CFlag)
2307         .hword  (0x2A<<8)               |(1<<CFlag)
2308         .hword  (0x2B<<8)         |(1<<VFlag)   |(1<<CFlag)
2309         .hword  (0x2C<<8)               |(1<<CFlag)
2310         .hword  (0x2D<<8)         |(1<<VFlag)   |(1<<CFlag)
2311         .hword  (0x2E<<8)         |(1<<VFlag)   |(1<<CFlag)
2312         .hword  (0x2F<<8)               |(1<<CFlag)
2313         .hword  (0x30<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2314         .hword  (0x31<<8)      |(1<<HFlag)         |(1<<CFlag)
2315         .hword  (0x32<<8)      |(1<<HFlag)         |(1<<CFlag)
2316         .hword  (0x33<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2317         .hword  (0x34<<8)      |(1<<HFlag)         |(1<<CFlag)
2318         .hword  (0x35<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2319         .hword  (0x36<<8)            |(1<<VFlag)   |(1<<CFlag)
2320         .hword  (0x37<<8)                  |(1<<CFlag)
2321         .hword  (0x38<<8)               |(1<<CFlag)
2322         .hword  (0x39<<8)         |(1<<VFlag)   |(1<<CFlag)
2323         .hword  (0x3A<<8)         |(1<<VFlag)   |(1<<CFlag)
2324         .hword  (0x3B<<8)               |(1<<CFlag)
2325         .hword  (0x3C<<8)         |(1<<VFlag)   |(1<<CFlag)
2326         .hword  (0x3D<<8)               |(1<<CFlag)
2327         .hword  (0x3E<<8)               |(1<<CFlag)
2328         .hword  (0x3F<<8)         |(1<<VFlag)   |(1<<CFlag)
2329         .hword  (0x40<<8)         |(1<<HFlag)         |(1<<CFlag)
2330         .hword  (0x41<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2331         .hword  (0x42<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2332         .hword  (0x43<<8)         |(1<<HFlag)         |(1<<CFlag)
2333         .hword  (0x44<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2334         .hword  (0x45<<8)         |(1<<HFlag)         |(1<<CFlag)
2335         .hword  (0x46<<8)                     |(1<<CFlag)
2336         .hword  (0x47<<8)               |(1<<VFlag)   |(1<<CFlag)
2337         .hword  (0x48<<8)            |(1<<VFlag)   |(1<<CFlag)
2338         .hword  (0x49<<8)                  |(1<<CFlag)
2339         .hword  (0x4A<<8)                  |(1<<CFlag)
2340         .hword  (0x4B<<8)            |(1<<VFlag)   |(1<<CFlag)
2341         .hword  (0x4C<<8)                  |(1<<CFlag)
2342         .hword  (0x4D<<8)            |(1<<VFlag)   |(1<<CFlag)
2343         .hword  (0x4E<<8)            |(1<<VFlag)   |(1<<CFlag)
2344         .hword  (0x4F<<8)                  |(1<<CFlag)
2345         .hword  (0x50<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2346         .hword  (0x51<<8)         |(1<<HFlag)         |(1<<CFlag)
2347         .hword  (0x52<<8)         |(1<<HFlag)         |(1<<CFlag)
2348         .hword  (0x53<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2349         .hword  (0x54<<8)         |(1<<HFlag)         |(1<<CFlag)
2350         .hword  (0x55<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2351         .hword  (0x56<<8)               |(1<<VFlag)   |(1<<CFlag)
2352         .hword  (0x57<<8)                     |(1<<CFlag)
2353         .hword  (0x58<<8)                  |(1<<CFlag)
2354         .hword  (0x59<<8)            |(1<<VFlag)   |(1<<CFlag)
2355         .hword  (0x5A<<8)            |(1<<VFlag)   |(1<<CFlag)
2356         .hword  (0x5B<<8)                  |(1<<CFlag)
2357         .hword  (0x5C<<8)            |(1<<VFlag)   |(1<<CFlag)
2358         .hword  (0x5D<<8)                  |(1<<CFlag)
2359         .hword  (0x5E<<8)                  |(1<<CFlag)
2360         .hword  (0x5F<<8)            |(1<<VFlag)   |(1<<CFlag)
2361         .hword  (0x60<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2362         .hword  (0x61<<8)      |(1<<HFlag)         |(1<<CFlag)
2363         .hword  (0x62<<8)      |(1<<HFlag)         |(1<<CFlag)
2364         .hword  (0x63<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2365         .hword  (0x64<<8)      |(1<<HFlag)         |(1<<CFlag)
2366         .hword  (0x65<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2367         .hword  (0x00<<8)   |(1<<ZFlag)         |(1<<VFlag)|(1<<NFlag)
2368         .hword  (0x01<<8)                  |(1<<NFlag)
2369         .hword  (0x02<<8)                  |(1<<NFlag)
2370         .hword  (0x03<<8)               |(1<<VFlag)|(1<<NFlag)
2371         .hword  (0x04<<8)                  |(1<<NFlag)
2372         .hword  (0x05<<8)               |(1<<VFlag)|(1<<NFlag)
2373         .hword  (0x06<<8)               |(1<<VFlag)|(1<<NFlag)
2374         .hword  (0x07<<8)                  |(1<<NFlag)
2375         .hword  (0x08<<8)               |(1<<NFlag)
2376         .hword  (0x09<<8)            |(1<<VFlag)|(1<<NFlag)
2377         .hword  (0x04<<8)                  |(1<<NFlag)
2378         .hword  (0x05<<8)               |(1<<VFlag)|(1<<NFlag)
2379         .hword  (0x06<<8)               |(1<<VFlag)|(1<<NFlag)
2380         .hword  (0x07<<8)                  |(1<<NFlag)
2381         .hword  (0x08<<8)               |(1<<NFlag)
2382         .hword  (0x09<<8)            |(1<<VFlag)|(1<<NFlag)
2383         .hword  (0x10<<8)                  |(1<<NFlag)
2384         .hword  (0x11<<8)               |(1<<VFlag)|(1<<NFlag)
2385         .hword  (0x12<<8)               |(1<<VFlag)|(1<<NFlag)
2386         .hword  (0x13<<8)                  |(1<<NFlag)
2387         .hword  (0x14<<8)               |(1<<VFlag)|(1<<NFlag)
2388         .hword  (0x15<<8)                  |(1<<NFlag)
2389         .hword  (0x16<<8)                  |(1<<NFlag)
2390         .hword  (0x17<<8)               |(1<<VFlag)|(1<<NFlag)
2391         .hword  (0x18<<8)            |(1<<VFlag)|(1<<NFlag)
2392         .hword  (0x19<<8)               |(1<<NFlag)
2393         .hword  (0x14<<8)               |(1<<VFlag)|(1<<NFlag)
2394         .hword  (0x15<<8)                  |(1<<NFlag)
2395         .hword  (0x16<<8)                  |(1<<NFlag)
2396         .hword  (0x17<<8)               |(1<<VFlag)|(1<<NFlag)
2397         .hword  (0x18<<8)            |(1<<VFlag)|(1<<NFlag)
2398         .hword  (0x19<<8)               |(1<<NFlag)
2399         .hword  (0x20<<8)               |(1<<NFlag)
2400         .hword  (0x21<<8)            |(1<<VFlag)|(1<<NFlag)
2401         .hword  (0x22<<8)            |(1<<VFlag)|(1<<NFlag)
2402         .hword  (0x23<<8)               |(1<<NFlag)
2403         .hword  (0x24<<8)            |(1<<VFlag)|(1<<NFlag)
2404         .hword  (0x25<<8)               |(1<<NFlag)
2405         .hword  (0x26<<8)               |(1<<NFlag)
2406         .hword  (0x27<<8)            |(1<<VFlag)|(1<<NFlag)
2407         .hword  (0x28<<8)         |(1<<VFlag)|(1<<NFlag)
2408         .hword  (0x29<<8)            |(1<<NFlag)
2409         .hword  (0x24<<8)            |(1<<VFlag)|(1<<NFlag)
2410         .hword  (0x25<<8)               |(1<<NFlag)
2411         .hword  (0x26<<8)               |(1<<NFlag)
2412         .hword  (0x27<<8)            |(1<<VFlag)|(1<<NFlag)
2413         .hword  (0x28<<8)         |(1<<VFlag)|(1<<NFlag)
2414         .hword  (0x29<<8)            |(1<<NFlag)
2415         .hword  (0x30<<8)            |(1<<VFlag)|(1<<NFlag)
2416         .hword  (0x31<<8)               |(1<<NFlag)
2417         .hword  (0x32<<8)               |(1<<NFlag)
2418         .hword  (0x33<<8)            |(1<<VFlag)|(1<<NFlag)
2419         .hword  (0x34<<8)               |(1<<NFlag)
2420         .hword  (0x35<<8)            |(1<<VFlag)|(1<<NFlag)
2421         .hword  (0x36<<8)            |(1<<VFlag)|(1<<NFlag)
2422         .hword  (0x37<<8)               |(1<<NFlag)
2423         .hword  (0x38<<8)            |(1<<NFlag)
2424         .hword  (0x39<<8)         |(1<<VFlag)|(1<<NFlag)
2425         .hword  (0x34<<8)               |(1<<NFlag)
2426         .hword  (0x35<<8)            |(1<<VFlag)|(1<<NFlag)
2427         .hword  (0x36<<8)            |(1<<VFlag)|(1<<NFlag)
2428         .hword  (0x37<<8)               |(1<<NFlag)
2429         .hword  (0x38<<8)            |(1<<NFlag)
2430         .hword  (0x39<<8)         |(1<<VFlag)|(1<<NFlag)
2431         .hword  (0x40<<8)                  |(1<<NFlag)
2432         .hword  (0x41<<8)               |(1<<VFlag)|(1<<NFlag)
2433         .hword  (0x42<<8)               |(1<<VFlag)|(1<<NFlag)
2434         .hword  (0x43<<8)                  |(1<<NFlag)
2435         .hword  (0x44<<8)               |(1<<VFlag)|(1<<NFlag)
2436         .hword  (0x45<<8)                  |(1<<NFlag)
2437         .hword  (0x46<<8)                  |(1<<NFlag)
2438         .hword  (0x47<<8)               |(1<<VFlag)|(1<<NFlag)
2439         .hword  (0x48<<8)            |(1<<VFlag)|(1<<NFlag)
2440         .hword  (0x49<<8)               |(1<<NFlag)
2441         .hword  (0x44<<8)               |(1<<VFlag)|(1<<NFlag)
2442         .hword  (0x45<<8)                  |(1<<NFlag)
2443         .hword  (0x46<<8)                  |(1<<NFlag)
2444         .hword  (0x47<<8)               |(1<<VFlag)|(1<<NFlag)
2445         .hword  (0x48<<8)            |(1<<VFlag)|(1<<NFlag)
2446         .hword  (0x49<<8)               |(1<<NFlag)
2447         .hword  (0x50<<8)               |(1<<VFlag)|(1<<NFlag)
2448         .hword  (0x51<<8)                  |(1<<NFlag)
2449         .hword  (0x52<<8)                  |(1<<NFlag)
2450         .hword  (0x53<<8)               |(1<<VFlag)|(1<<NFlag)
2451         .hword  (0x54<<8)                  |(1<<NFlag)
2452         .hword  (0x55<<8)               |(1<<VFlag)|(1<<NFlag)
2453         .hword  (0x56<<8)               |(1<<VFlag)|(1<<NFlag)
2454         .hword  (0x57<<8)                  |(1<<NFlag)
2455         .hword  (0x58<<8)               |(1<<NFlag)
2456         .hword  (0x59<<8)            |(1<<VFlag)|(1<<NFlag)
2457         .hword  (0x54<<8)                  |(1<<NFlag)
2458         .hword  (0x55<<8)               |(1<<VFlag)|(1<<NFlag)
2459         .hword  (0x56<<8)               |(1<<VFlag)|(1<<NFlag)
2460         .hword  (0x57<<8)                  |(1<<NFlag)
2461         .hword  (0x58<<8)               |(1<<NFlag)
2462         .hword  (0x59<<8)            |(1<<VFlag)|(1<<NFlag)
2463         .hword  (0x60<<8)            |(1<<VFlag)|(1<<NFlag)
2464         .hword  (0x61<<8)               |(1<<NFlag)
2465         .hword  (0x62<<8)               |(1<<NFlag)
2466         .hword  (0x63<<8)            |(1<<VFlag)|(1<<NFlag)
2467         .hword  (0x64<<8)               |(1<<NFlag)
2468         .hword  (0x65<<8)            |(1<<VFlag)|(1<<NFlag)
2469         .hword  (0x66<<8)            |(1<<VFlag)|(1<<NFlag)
2470         .hword  (0x67<<8)               |(1<<NFlag)
2471         .hword  (0x68<<8)            |(1<<NFlag)
2472         .hword  (0x69<<8)         |(1<<VFlag)|(1<<NFlag)
2473         .hword  (0x64<<8)               |(1<<NFlag)
2474         .hword  (0x65<<8)            |(1<<VFlag)|(1<<NFlag)
2475         .hword  (0x66<<8)            |(1<<VFlag)|(1<<NFlag)
2476         .hword  (0x67<<8)               |(1<<NFlag)
2477         .hword  (0x68<<8)            |(1<<NFlag)
2478         .hword  (0x69<<8)         |(1<<VFlag)|(1<<NFlag)
2479         .hword  (0x70<<8)               |(1<<NFlag)
2480         .hword  (0x71<<8)            |(1<<VFlag)|(1<<NFlag)
2481         .hword  (0x72<<8)            |(1<<VFlag)|(1<<NFlag)
2482         .hword  (0x73<<8)               |(1<<NFlag)
2483         .hword  (0x74<<8)            |(1<<VFlag)|(1<<NFlag)
2484         .hword  (0x75<<8)               |(1<<NFlag)
2485         .hword  (0x76<<8)               |(1<<NFlag)
2486         .hword  (0x77<<8)            |(1<<VFlag)|(1<<NFlag)
2487         .hword  (0x78<<8)         |(1<<VFlag)|(1<<NFlag)
2488         .hword  (0x79<<8)            |(1<<NFlag)
2489         .hword  (0x74<<8)            |(1<<VFlag)|(1<<NFlag)
2490         .hword  (0x75<<8)               |(1<<NFlag)
2491         .hword  (0x76<<8)               |(1<<NFlag)
2492         .hword  (0x77<<8)            |(1<<VFlag)|(1<<NFlag)
2493         .hword  (0x78<<8)         |(1<<VFlag)|(1<<NFlag)
2494         .hword  (0x79<<8)            |(1<<NFlag)
2495         .hword  (0x80<<8)|(1<<SFlag)               |(1<<NFlag)
2496         .hword  (0x81<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)
2497         .hword  (0x82<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)
2498         .hword  (0x83<<8)|(1<<SFlag)               |(1<<NFlag)
2499         .hword  (0x84<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)
2500         .hword  (0x85<<8)|(1<<SFlag)               |(1<<NFlag)
2501         .hword  (0x86<<8)|(1<<SFlag)               |(1<<NFlag)
2502         .hword  (0x87<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)
2503         .hword  (0x88<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)
2504         .hword  (0x89<<8)|(1<<SFlag)            |(1<<NFlag)
2505         .hword  (0x84<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)
2506         .hword  (0x85<<8)|(1<<SFlag)               |(1<<NFlag)
2507         .hword  (0x86<<8)|(1<<SFlag)               |(1<<NFlag)
2508         .hword  (0x87<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)
2509         .hword  (0x88<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)
2510         .hword  (0x89<<8)|(1<<SFlag)            |(1<<NFlag)
2511         .hword  (0x90<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)
2512         .hword  (0x91<<8)|(1<<SFlag)               |(1<<NFlag)
2513         .hword  (0x92<<8)|(1<<SFlag)               |(1<<NFlag)
2514         .hword  (0x93<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)
2515         .hword  (0x94<<8)|(1<<SFlag)               |(1<<NFlag)
2516         .hword  (0x95<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)
2517         .hword  (0x96<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)
2518         .hword  (0x97<<8)|(1<<SFlag)               |(1<<NFlag)
2519         .hword  (0x98<<8)|(1<<SFlag)            |(1<<NFlag)
2520         .hword  (0x99<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)
2521         .hword  (0x34<<8)               |(1<<NFlag)|(1<<CFlag)
2522         .hword  (0x35<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2523         .hword  (0x36<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2524         .hword  (0x37<<8)               |(1<<NFlag)|(1<<CFlag)
2525         .hword  (0x38<<8)            |(1<<NFlag)|(1<<CFlag)
2526         .hword  (0x39<<8)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2527         .hword  (0x40<<8)                  |(1<<NFlag)|(1<<CFlag)
2528         .hword  (0x41<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2529         .hword  (0x42<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2530         .hword  (0x43<<8)                  |(1<<NFlag)|(1<<CFlag)
2531         .hword  (0x44<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2532         .hword  (0x45<<8)                  |(1<<NFlag)|(1<<CFlag)
2533         .hword  (0x46<<8)                  |(1<<NFlag)|(1<<CFlag)
2534         .hword  (0x47<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2535         .hword  (0x48<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2536         .hword  (0x49<<8)               |(1<<NFlag)|(1<<CFlag)
2537         .hword  (0x44<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2538         .hword  (0x45<<8)                  |(1<<NFlag)|(1<<CFlag)
2539         .hword  (0x46<<8)                  |(1<<NFlag)|(1<<CFlag)
2540         .hword  (0x47<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2541         .hword  (0x48<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2542         .hword  (0x49<<8)               |(1<<NFlag)|(1<<CFlag)
2543         .hword  (0x50<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2544         .hword  (0x51<<8)                  |(1<<NFlag)|(1<<CFlag)
2545         .hword  (0x52<<8)                  |(1<<NFlag)|(1<<CFlag)
2546         .hword  (0x53<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2547         .hword  (0x54<<8)                  |(1<<NFlag)|(1<<CFlag)
2548         .hword  (0x55<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2549         .hword  (0x56<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2550         .hword  (0x57<<8)                  |(1<<NFlag)|(1<<CFlag)
2551         .hword  (0x58<<8)               |(1<<NFlag)|(1<<CFlag)
2552         .hword  (0x59<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2553         .hword  (0x54<<8)                  |(1<<NFlag)|(1<<CFlag)
2554         .hword  (0x55<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2555         .hword  (0x56<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2556         .hword  (0x57<<8)                  |(1<<NFlag)|(1<<CFlag)
2557         .hword  (0x58<<8)               |(1<<NFlag)|(1<<CFlag)
2558         .hword  (0x59<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2559         .hword  (0x60<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2560         .hword  (0x61<<8)               |(1<<NFlag)|(1<<CFlag)
2561         .hword  (0x62<<8)               |(1<<NFlag)|(1<<CFlag)
2562         .hword  (0x63<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2563         .hword  (0x64<<8)               |(1<<NFlag)|(1<<CFlag)
2564         .hword  (0x65<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2565         .hword  (0x66<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2566         .hword  (0x67<<8)               |(1<<NFlag)|(1<<CFlag)
2567         .hword  (0x68<<8)            |(1<<NFlag)|(1<<CFlag)
2568         .hword  (0x69<<8)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2569         .hword  (0x64<<8)               |(1<<NFlag)|(1<<CFlag)
2570         .hword  (0x65<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2571         .hword  (0x66<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2572         .hword  (0x67<<8)               |(1<<NFlag)|(1<<CFlag)
2573         .hword  (0x68<<8)            |(1<<NFlag)|(1<<CFlag)
2574         .hword  (0x69<<8)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2575         .hword  (0x70<<8)               |(1<<NFlag)|(1<<CFlag)
2576         .hword  (0x71<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2577         .hword  (0x72<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2578         .hword  (0x73<<8)               |(1<<NFlag)|(1<<CFlag)
2579         .hword  (0x74<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2580         .hword  (0x75<<8)               |(1<<NFlag)|(1<<CFlag)
2581         .hword  (0x76<<8)               |(1<<NFlag)|(1<<CFlag)
2582         .hword  (0x77<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2583         .hword  (0x78<<8)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2584         .hword  (0x79<<8)            |(1<<NFlag)|(1<<CFlag)
2585         .hword  (0x74<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2586         .hword  (0x75<<8)               |(1<<NFlag)|(1<<CFlag)
2587         .hword  (0x76<<8)               |(1<<NFlag)|(1<<CFlag)
2588         .hword  (0x77<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2589         .hword  (0x78<<8)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2590         .hword  (0x79<<8)            |(1<<NFlag)|(1<<CFlag)
2591         .hword  (0x80<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
2592         .hword  (0x81<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2593         .hword  (0x82<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2594         .hword  (0x83<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
2595         .hword  (0x84<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2596         .hword  (0x85<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
2597         .hword  (0x86<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
2598         .hword  (0x87<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2599         .hword  (0x88<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2600         .hword  (0x89<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
2601         .hword  (0x84<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2602         .hword  (0x85<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
2603         .hword  (0x86<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
2604         .hword  (0x87<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2605         .hword  (0x88<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2606         .hword  (0x89<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
2607         .hword  (0x90<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2608         .hword  (0x91<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
2609         .hword  (0x92<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
2610         .hword  (0x93<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2611         .hword  (0x94<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
2612         .hword  (0x95<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2613         .hword  (0x96<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2614         .hword  (0x97<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
2615         .hword  (0x98<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
2616         .hword  (0x99<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2617         .hword  (0x94<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
2618         .hword  (0x95<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2619         .hword  (0x96<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2620         .hword  (0x97<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
2621         .hword  (0x98<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
2622         .hword  (0x99<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2623         .hword  (0xA0<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2624         .hword  (0xA1<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
2625         .hword  (0xA2<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
2626         .hword  (0xA3<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2627         .hword  (0xA4<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
2628         .hword  (0xA5<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2629         .hword  (0xA6<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2630         .hword  (0xA7<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
2631         .hword  (0xA8<<8)|(1<<SFlag)         |(1<<NFlag)|(1<<CFlag)
2632         .hword  (0xA9<<8)|(1<<SFlag)      |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2633         .hword  (0xA4<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
2634         .hword  (0xA5<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2635         .hword  (0xA6<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2636         .hword  (0xA7<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
2637         .hword  (0xA8<<8)|(1<<SFlag)         |(1<<NFlag)|(1<<CFlag)
2638         .hword  (0xA9<<8)|(1<<SFlag)      |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2639         .hword  (0xB0<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
2640         .hword  (0xB1<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2641         .hword  (0xB2<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2642         .hword  (0xB3<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
2643         .hword  (0xB4<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2644         .hword  (0xB5<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
2645         .hword  (0xB6<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
2646         .hword  (0xB7<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2647         .hword  (0xB8<<8)|(1<<SFlag)      |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2648         .hword  (0xB9<<8)|(1<<SFlag)         |(1<<NFlag)|(1<<CFlag)
2649         .hword  (0xB4<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2650         .hword  (0xB5<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
2651         .hword  (0xB6<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
2652         .hword  (0xB7<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2653         .hword  (0xB8<<8)|(1<<SFlag)      |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2654         .hword  (0xB9<<8)|(1<<SFlag)         |(1<<NFlag)|(1<<CFlag)
2655         .hword  (0xC0<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2656         .hword  (0xC1<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
2657         .hword  (0xC2<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
2658         .hword  (0xC3<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2659         .hword  (0xC4<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
2660         .hword  (0xC5<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2661         .hword  (0xC6<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2662         .hword  (0xC7<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
2663         .hword  (0xC8<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
2664         .hword  (0xC9<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2665         .hword  (0xC4<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
2666         .hword  (0xC5<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2667         .hword  (0xC6<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2668         .hword  (0xC7<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
2669         .hword  (0xC8<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
2670         .hword  (0xC9<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2671         .hword  (0xD0<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
2672         .hword  (0xD1<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2673         .hword  (0xD2<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2674         .hword  (0xD3<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
2675         .hword  (0xD4<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2676         .hword  (0xD5<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
2677         .hword  (0xD6<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
2678         .hword  (0xD7<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2679         .hword  (0xD8<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2680         .hword  (0xD9<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
2681         .hword  (0xD4<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2682         .hword  (0xD5<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
2683         .hword  (0xD6<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
2684         .hword  (0xD7<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2685         .hword  (0xD8<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2686         .hword  (0xD9<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
2687         .hword  (0xE0<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
2688         .hword  (0xE1<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2689         .hword  (0xE2<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2690         .hword  (0xE3<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
2691         .hword  (0xE4<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2692         .hword  (0xE5<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
2693         .hword  (0xE6<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
2694         .hword  (0xE7<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2695         .hword  (0xE8<<8)|(1<<SFlag)      |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2696         .hword  (0xE9<<8)|(1<<SFlag)         |(1<<NFlag)|(1<<CFlag)
2697         .hword  (0xE4<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2698         .hword  (0xE5<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
2699         .hword  (0xE6<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
2700         .hword  (0xE7<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2701         .hword  (0xE8<<8)|(1<<SFlag)      |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2702         .hword  (0xE9<<8)|(1<<SFlag)         |(1<<NFlag)|(1<<CFlag)
2703         .hword  (0xF0<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2704         .hword  (0xF1<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
2705         .hword  (0xF2<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
2706         .hword  (0xF3<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2707         .hword  (0xF4<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
2708         .hword  (0xF5<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2709         .hword  (0xF6<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2710         .hword  (0xF7<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
2711         .hword  (0xF8<<8)|(1<<SFlag)         |(1<<NFlag)|(1<<CFlag)
2712         .hword  (0xF9<<8)|(1<<SFlag)      |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2713         .hword  (0xF4<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
2714         .hword  (0xF5<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2715         .hword  (0xF6<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2716         .hword  (0xF7<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
2717         .hword  (0xF8<<8)|(1<<SFlag)         |(1<<NFlag)|(1<<CFlag)
2718         .hword  (0xF9<<8)|(1<<SFlag)      |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2719         .hword  (0x00<<8)   |(1<<ZFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2720         .hword  (0x01<<8)                  |(1<<NFlag)|(1<<CFlag)
2721         .hword  (0x02<<8)                  |(1<<NFlag)|(1<<CFlag)
2722         .hword  (0x03<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2723         .hword  (0x04<<8)                  |(1<<NFlag)|(1<<CFlag)
2724         .hword  (0x05<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2725         .hword  (0x06<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2726         .hword  (0x07<<8)                  |(1<<NFlag)|(1<<CFlag)
2727         .hword  (0x08<<8)               |(1<<NFlag)|(1<<CFlag)
2728         .hword  (0x09<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2729         .hword  (0x04<<8)                  |(1<<NFlag)|(1<<CFlag)
2730         .hword  (0x05<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2731         .hword  (0x06<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2732         .hword  (0x07<<8)                  |(1<<NFlag)|(1<<CFlag)
2733         .hword  (0x08<<8)               |(1<<NFlag)|(1<<CFlag)
2734         .hword  (0x09<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2735         .hword  (0x10<<8)                  |(1<<NFlag)|(1<<CFlag)
2736         .hword  (0x11<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2737         .hword  (0x12<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2738         .hword  (0x13<<8)                  |(1<<NFlag)|(1<<CFlag)
2739         .hword  (0x14<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2740         .hword  (0x15<<8)                  |(1<<NFlag)|(1<<CFlag)
2741         .hword  (0x16<<8)                  |(1<<NFlag)|(1<<CFlag)
2742         .hword  (0x17<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2743         .hword  (0x18<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2744         .hword  (0x19<<8)               |(1<<NFlag)|(1<<CFlag)
2745         .hword  (0x14<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2746         .hword  (0x15<<8)                  |(1<<NFlag)|(1<<CFlag)
2747         .hword  (0x16<<8)                  |(1<<NFlag)|(1<<CFlag)
2748         .hword  (0x17<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2749         .hword  (0x18<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2750         .hword  (0x19<<8)               |(1<<NFlag)|(1<<CFlag)
2751         .hword  (0x20<<8)               |(1<<NFlag)|(1<<CFlag)
2752         .hword  (0x21<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2753         .hword  (0x22<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2754         .hword  (0x23<<8)               |(1<<NFlag)|(1<<CFlag)
2755         .hword  (0x24<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2756         .hword  (0x25<<8)               |(1<<NFlag)|(1<<CFlag)
2757         .hword  (0x26<<8)               |(1<<NFlag)|(1<<CFlag)
2758         .hword  (0x27<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2759         .hword  (0x28<<8)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2760         .hword  (0x29<<8)            |(1<<NFlag)|(1<<CFlag)
2761         .hword  (0x24<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2762         .hword  (0x25<<8)               |(1<<NFlag)|(1<<CFlag)
2763         .hword  (0x26<<8)               |(1<<NFlag)|(1<<CFlag)
2764         .hword  (0x27<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2765         .hword  (0x28<<8)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2766         .hword  (0x29<<8)            |(1<<NFlag)|(1<<CFlag)
2767         .hword  (0x30<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2768         .hword  (0x31<<8)               |(1<<NFlag)|(1<<CFlag)
2769         .hword  (0x32<<8)               |(1<<NFlag)|(1<<CFlag)
2770         .hword  (0x33<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2771         .hword  (0x34<<8)               |(1<<NFlag)|(1<<CFlag)
2772         .hword  (0x35<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2773         .hword  (0x36<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2774         .hword  (0x37<<8)               |(1<<NFlag)|(1<<CFlag)
2775         .hword  (0x38<<8)            |(1<<NFlag)|(1<<CFlag)
2776         .hword  (0x39<<8)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2777         .hword  (0x34<<8)               |(1<<NFlag)|(1<<CFlag)
2778         .hword  (0x35<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2779         .hword  (0x36<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2780         .hword  (0x37<<8)               |(1<<NFlag)|(1<<CFlag)
2781         .hword  (0x38<<8)            |(1<<NFlag)|(1<<CFlag)
2782         .hword  (0x39<<8)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2783         .hword  (0x40<<8)                  |(1<<NFlag)|(1<<CFlag)
2784         .hword  (0x41<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2785         .hword  (0x42<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2786         .hword  (0x43<<8)                  |(1<<NFlag)|(1<<CFlag)
2787         .hword  (0x44<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2788         .hword  (0x45<<8)                  |(1<<NFlag)|(1<<CFlag)
2789         .hword  (0x46<<8)                  |(1<<NFlag)|(1<<CFlag)
2790         .hword  (0x47<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2791         .hword  (0x48<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2792         .hword  (0x49<<8)               |(1<<NFlag)|(1<<CFlag)
2793         .hword  (0x44<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2794         .hword  (0x45<<8)                  |(1<<NFlag)|(1<<CFlag)
2795         .hword  (0x46<<8)                  |(1<<NFlag)|(1<<CFlag)
2796         .hword  (0x47<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2797         .hword  (0x48<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2798         .hword  (0x49<<8)               |(1<<NFlag)|(1<<CFlag)
2799         .hword  (0x50<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2800         .hword  (0x51<<8)                  |(1<<NFlag)|(1<<CFlag)
2801         .hword  (0x52<<8)                  |(1<<NFlag)|(1<<CFlag)
2802         .hword  (0x53<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2803         .hword  (0x54<<8)                  |(1<<NFlag)|(1<<CFlag)
2804         .hword  (0x55<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2805         .hword  (0x56<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2806         .hword  (0x57<<8)                  |(1<<NFlag)|(1<<CFlag)
2807         .hword  (0x58<<8)               |(1<<NFlag)|(1<<CFlag)
2808         .hword  (0x59<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2809         .hword  (0x54<<8)                  |(1<<NFlag)|(1<<CFlag)
2810         .hword  (0x55<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2811         .hword  (0x56<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2812         .hword  (0x57<<8)                  |(1<<NFlag)|(1<<CFlag)
2813         .hword  (0x58<<8)               |(1<<NFlag)|(1<<CFlag)
2814         .hword  (0x59<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2815         .hword  (0x60<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2816         .hword  (0x61<<8)               |(1<<NFlag)|(1<<CFlag)
2817         .hword  (0x62<<8)               |(1<<NFlag)|(1<<CFlag)
2818         .hword  (0x63<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2819         .hword  (0x64<<8)               |(1<<NFlag)|(1<<CFlag)
2820         .hword  (0x65<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2821         .hword  (0x66<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2822         .hword  (0x67<<8)               |(1<<NFlag)|(1<<CFlag)
2823         .hword  (0x68<<8)            |(1<<NFlag)|(1<<CFlag)
2824         .hword  (0x69<<8)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2825         .hword  (0x64<<8)               |(1<<NFlag)|(1<<CFlag)
2826         .hword  (0x65<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2827         .hword  (0x66<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2828         .hword  (0x67<<8)               |(1<<NFlag)|(1<<CFlag)
2829         .hword  (0x68<<8)            |(1<<NFlag)|(1<<CFlag)
2830         .hword  (0x69<<8)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2831         .hword  (0x70<<8)               |(1<<NFlag)|(1<<CFlag)
2832         .hword  (0x71<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2833         .hword  (0x72<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2834         .hword  (0x73<<8)               |(1<<NFlag)|(1<<CFlag)
2835         .hword  (0x74<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2836         .hword  (0x75<<8)               |(1<<NFlag)|(1<<CFlag)
2837         .hword  (0x76<<8)               |(1<<NFlag)|(1<<CFlag)
2838         .hword  (0x77<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2839         .hword  (0x78<<8)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2840         .hword  (0x79<<8)            |(1<<NFlag)|(1<<CFlag)
2841         .hword  (0x74<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2842         .hword  (0x75<<8)               |(1<<NFlag)|(1<<CFlag)
2843         .hword  (0x76<<8)               |(1<<NFlag)|(1<<CFlag)
2844         .hword  (0x77<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2845         .hword  (0x78<<8)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2846         .hword  (0x79<<8)            |(1<<NFlag)|(1<<CFlag)
2847         .hword  (0x80<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
2848         .hword  (0x81<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2849         .hword  (0x82<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2850         .hword  (0x83<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
2851         .hword  (0x84<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2852         .hword  (0x85<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
2853         .hword  (0x86<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
2854         .hword  (0x87<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2855         .hword  (0x88<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2856         .hword  (0x89<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
2857         .hword  (0x84<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2858         .hword  (0x85<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
2859         .hword  (0x86<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
2860         .hword  (0x87<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2861         .hword  (0x88<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2862         .hword  (0x89<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
2863         .hword  (0x90<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2864         .hword  (0x91<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
2865         .hword  (0x92<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
2866         .hword  (0x93<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2867         .hword  (0x94<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
2868         .hword  (0x95<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2869         .hword  (0x96<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2870         .hword  (0x97<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
2871         .hword  (0x98<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
2872         .hword  (0x99<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2873         .hword  (0x94<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
2874         .hword  (0x95<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2875         .hword  (0x96<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2876         .hword  (0x97<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
2877         .hword  (0x98<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
2878         .hword  (0x99<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2879         .hword  (0xFA<<8)|(1<<SFlag)   |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)
2880         .hword  (0xFB<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<NFlag)
2881         .hword  (0xFC<<8)|(1<<SFlag)   |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)
2882         .hword  (0xFD<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<NFlag)
2883         .hword  (0xFE<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<NFlag)
2884         .hword  (0xFF<<8)|(1<<SFlag)   |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)
2885         .hword  (0x00<<8)   |(1<<ZFlag)         |(1<<VFlag)|(1<<NFlag)
2886         .hword  (0x01<<8)                  |(1<<NFlag)
2887         .hword  (0x02<<8)                  |(1<<NFlag)
2888         .hword  (0x03<<8)               |(1<<VFlag)|(1<<NFlag)
2889         .hword  (0x04<<8)                  |(1<<NFlag)
2890         .hword  (0x05<<8)               |(1<<VFlag)|(1<<NFlag)
2891         .hword  (0x06<<8)               |(1<<VFlag)|(1<<NFlag)
2892         .hword  (0x07<<8)                  |(1<<NFlag)
2893         .hword  (0x08<<8)               |(1<<NFlag)
2894         .hword  (0x09<<8)            |(1<<VFlag)|(1<<NFlag)
2895         .hword  (0x0A<<8)         |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)
2896         .hword  (0x0B<<8)         |(1<<HFlag)   |(1<<NFlag)
2897         .hword  (0x0C<<8)         |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)
2898         .hword  (0x0D<<8)         |(1<<HFlag)   |(1<<NFlag)
2899         .hword  (0x0E<<8)         |(1<<HFlag)   |(1<<NFlag)
2900         .hword  (0x0F<<8)         |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)
2901         .hword  (0x10<<8)                  |(1<<NFlag)
2902         .hword  (0x11<<8)               |(1<<VFlag)|(1<<NFlag)
2903         .hword  (0x12<<8)               |(1<<VFlag)|(1<<NFlag)
2904         .hword  (0x13<<8)                  |(1<<NFlag)
2905         .hword  (0x14<<8)               |(1<<VFlag)|(1<<NFlag)
2906         .hword  (0x15<<8)                  |(1<<NFlag)
2907         .hword  (0x16<<8)                  |(1<<NFlag)
2908         .hword  (0x17<<8)               |(1<<VFlag)|(1<<NFlag)
2909         .hword  (0x18<<8)            |(1<<VFlag)|(1<<NFlag)
2910         .hword  (0x19<<8)               |(1<<NFlag)
2911         .hword  (0x1A<<8)         |(1<<HFlag)   |(1<<NFlag)
2912         .hword  (0x1B<<8)         |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)
2913         .hword  (0x1C<<8)         |(1<<HFlag)   |(1<<NFlag)
2914         .hword  (0x1D<<8)         |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)
2915         .hword  (0x1E<<8)         |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)
2916         .hword  (0x1F<<8)         |(1<<HFlag)   |(1<<NFlag)
2917         .hword  (0x20<<8)               |(1<<NFlag)
2918         .hword  (0x21<<8)            |(1<<VFlag)|(1<<NFlag)
2919         .hword  (0x22<<8)            |(1<<VFlag)|(1<<NFlag)
2920         .hword  (0x23<<8)               |(1<<NFlag)
2921         .hword  (0x24<<8)            |(1<<VFlag)|(1<<NFlag)
2922         .hword  (0x25<<8)               |(1<<NFlag)
2923         .hword  (0x26<<8)               |(1<<NFlag)
2924         .hword  (0x27<<8)            |(1<<VFlag)|(1<<NFlag)
2925         .hword  (0x28<<8)         |(1<<VFlag)|(1<<NFlag)
2926         .hword  (0x29<<8)            |(1<<NFlag)
2927         .hword  (0x2A<<8)      |(1<<HFlag)   |(1<<NFlag)
2928         .hword  (0x2B<<8)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)
2929         .hword  (0x2C<<8)      |(1<<HFlag)   |(1<<NFlag)
2930         .hword  (0x2D<<8)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)
2931         .hword  (0x2E<<8)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)
2932         .hword  (0x2F<<8)      |(1<<HFlag)   |(1<<NFlag)
2933         .hword  (0x30<<8)            |(1<<VFlag)|(1<<NFlag)
2934         .hword  (0x31<<8)               |(1<<NFlag)
2935         .hword  (0x32<<8)               |(1<<NFlag)
2936         .hword  (0x33<<8)            |(1<<VFlag)|(1<<NFlag)
2937         .hword  (0x34<<8)               |(1<<NFlag)
2938         .hword  (0x35<<8)            |(1<<VFlag)|(1<<NFlag)
2939         .hword  (0x36<<8)            |(1<<VFlag)|(1<<NFlag)
2940         .hword  (0x37<<8)               |(1<<NFlag)
2941         .hword  (0x38<<8)            |(1<<NFlag)
2942         .hword  (0x39<<8)         |(1<<VFlag)|(1<<NFlag)
2943         .hword  (0x3A<<8)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)
2944         .hword  (0x3B<<8)      |(1<<HFlag)   |(1<<NFlag)
2945         .hword  (0x3C<<8)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)
2946         .hword  (0x3D<<8)      |(1<<HFlag)   |(1<<NFlag)
2947         .hword  (0x3E<<8)      |(1<<HFlag)   |(1<<NFlag)
2948         .hword  (0x3F<<8)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)
2949         .hword  (0x40<<8)                  |(1<<NFlag)
2950         .hword  (0x41<<8)               |(1<<VFlag)|(1<<NFlag)
2951         .hword  (0x42<<8)               |(1<<VFlag)|(1<<NFlag)
2952         .hword  (0x43<<8)                  |(1<<NFlag)
2953         .hword  (0x44<<8)               |(1<<VFlag)|(1<<NFlag)
2954         .hword  (0x45<<8)                  |(1<<NFlag)
2955         .hword  (0x46<<8)                  |(1<<NFlag)
2956         .hword  (0x47<<8)               |(1<<VFlag)|(1<<NFlag)
2957         .hword  (0x48<<8)            |(1<<VFlag)|(1<<NFlag)
2958         .hword  (0x49<<8)               |(1<<NFlag)
2959         .hword  (0x4A<<8)         |(1<<HFlag)   |(1<<NFlag)
2960         .hword  (0x4B<<8)         |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)
2961         .hword  (0x4C<<8)         |(1<<HFlag)   |(1<<NFlag)
2962         .hword  (0x4D<<8)         |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)
2963         .hword  (0x4E<<8)         |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)
2964         .hword  (0x4F<<8)         |(1<<HFlag)   |(1<<NFlag)
2965         .hword  (0x50<<8)               |(1<<VFlag)|(1<<NFlag)
2966         .hword  (0x51<<8)                  |(1<<NFlag)
2967         .hword  (0x52<<8)                  |(1<<NFlag)
2968         .hword  (0x53<<8)               |(1<<VFlag)|(1<<NFlag)
2969         .hword  (0x54<<8)                  |(1<<NFlag)
2970         .hword  (0x55<<8)               |(1<<VFlag)|(1<<NFlag)
2971         .hword  (0x56<<8)               |(1<<VFlag)|(1<<NFlag)
2972         .hword  (0x57<<8)                  |(1<<NFlag)
2973         .hword  (0x58<<8)               |(1<<NFlag)
2974         .hword  (0x59<<8)            |(1<<VFlag)|(1<<NFlag)
2975         .hword  (0x5A<<8)         |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)
2976         .hword  (0x5B<<8)         |(1<<HFlag)   |(1<<NFlag)
2977         .hword  (0x5C<<8)         |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)
2978         .hword  (0x5D<<8)         |(1<<HFlag)   |(1<<NFlag)
2979         .hword  (0x5E<<8)         |(1<<HFlag)   |(1<<NFlag)
2980         .hword  (0x5F<<8)         |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)
2981         .hword  (0x60<<8)            |(1<<VFlag)|(1<<NFlag)
2982         .hword  (0x61<<8)               |(1<<NFlag)
2983         .hword  (0x62<<8)               |(1<<NFlag)
2984         .hword  (0x63<<8)            |(1<<VFlag)|(1<<NFlag)
2985         .hword  (0x64<<8)               |(1<<NFlag)
2986         .hword  (0x65<<8)            |(1<<VFlag)|(1<<NFlag)
2987         .hword  (0x66<<8)            |(1<<VFlag)|(1<<NFlag)
2988         .hword  (0x67<<8)               |(1<<NFlag)
2989         .hword  (0x68<<8)            |(1<<NFlag)
2990         .hword  (0x69<<8)         |(1<<VFlag)|(1<<NFlag)
2991         .hword  (0x6A<<8)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)
2992         .hword  (0x6B<<8)      |(1<<HFlag)   |(1<<NFlag)
2993         .hword  (0x6C<<8)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)
2994         .hword  (0x6D<<8)      |(1<<HFlag)   |(1<<NFlag)
2995         .hword  (0x6E<<8)      |(1<<HFlag)   |(1<<NFlag)
2996         .hword  (0x6F<<8)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)
2997         .hword  (0x70<<8)               |(1<<NFlag)
2998         .hword  (0x71<<8)            |(1<<VFlag)|(1<<NFlag)
2999         .hword  (0x72<<8)            |(1<<VFlag)|(1<<NFlag)
3000         .hword  (0x73<<8)               |(1<<NFlag)
3001         .hword  (0x74<<8)            |(1<<VFlag)|(1<<NFlag)
3002         .hword  (0x75<<8)               |(1<<NFlag)
3003         .hword  (0x76<<8)               |(1<<NFlag)
3004         .hword  (0x77<<8)            |(1<<VFlag)|(1<<NFlag)
3005         .hword  (0x78<<8)         |(1<<VFlag)|(1<<NFlag)
3006         .hword  (0x79<<8)            |(1<<NFlag)
3007         .hword  (0x7A<<8)      |(1<<HFlag)   |(1<<NFlag)
3008         .hword  (0x7B<<8)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)
3009         .hword  (0x7C<<8)      |(1<<HFlag)   |(1<<NFlag)
3010         .hword  (0x7D<<8)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)
3011         .hword  (0x7E<<8)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)
3012         .hword  (0x7F<<8)      |(1<<HFlag)   |(1<<NFlag)
3013         .hword  (0x80<<8)|(1<<SFlag)               |(1<<NFlag)
3014         .hword  (0x81<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)
3015         .hword  (0x82<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)
3016         .hword  (0x83<<8)|(1<<SFlag)               |(1<<NFlag)
3017         .hword  (0x84<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)
3018         .hword  (0x85<<8)|(1<<SFlag)               |(1<<NFlag)
3019         .hword  (0x86<<8)|(1<<SFlag)               |(1<<NFlag)
3020         .hword  (0x87<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)
3021         .hword  (0x88<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)
3022         .hword  (0x89<<8)|(1<<SFlag)            |(1<<NFlag)
3023         .hword  (0x8A<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<NFlag)
3024         .hword  (0x8B<<8)|(1<<SFlag)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)
3025         .hword  (0x8C<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<NFlag)
3026         .hword  (0x8D<<8)|(1<<SFlag)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)
3027         .hword  (0x8E<<8)|(1<<SFlag)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)
3028         .hword  (0x8F<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<NFlag)
3029         .hword  (0x90<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)
3030         .hword  (0x91<<8)|(1<<SFlag)               |(1<<NFlag)
3031         .hword  (0x92<<8)|(1<<SFlag)               |(1<<NFlag)
3032         .hword  (0x93<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)
3033         .hword  (0x34<<8)               |(1<<NFlag)|(1<<CFlag)
3034         .hword  (0x35<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3035         .hword  (0x36<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3036         .hword  (0x37<<8)               |(1<<NFlag)|(1<<CFlag)
3037         .hword  (0x38<<8)            |(1<<NFlag)|(1<<CFlag)
3038         .hword  (0x39<<8)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3039         .hword  (0x3A<<8)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3040         .hword  (0x3B<<8)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3041         .hword  (0x3C<<8)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3042         .hword  (0x3D<<8)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3043         .hword  (0x3E<<8)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3044         .hword  (0x3F<<8)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3045         .hword  (0x40<<8)                  |(1<<NFlag)|(1<<CFlag)
3046         .hword  (0x41<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3047         .hword  (0x42<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3048         .hword  (0x43<<8)                  |(1<<NFlag)|(1<<CFlag)
3049         .hword  (0x44<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3050         .hword  (0x45<<8)                  |(1<<NFlag)|(1<<CFlag)
3051         .hword  (0x46<<8)                  |(1<<NFlag)|(1<<CFlag)
3052         .hword  (0x47<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3053         .hword  (0x48<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3054         .hword  (0x49<<8)               |(1<<NFlag)|(1<<CFlag)
3055         .hword  (0x4A<<8)         |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3056         .hword  (0x4B<<8)         |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3057         .hword  (0x4C<<8)         |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3058         .hword  (0x4D<<8)         |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3059         .hword  (0x4E<<8)         |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3060         .hword  (0x4F<<8)         |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3061         .hword  (0x50<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3062         .hword  (0x51<<8)                  |(1<<NFlag)|(1<<CFlag)
3063         .hword  (0x52<<8)                  |(1<<NFlag)|(1<<CFlag)
3064         .hword  (0x53<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3065         .hword  (0x54<<8)                  |(1<<NFlag)|(1<<CFlag)
3066         .hword  (0x55<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3067         .hword  (0x56<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3068         .hword  (0x57<<8)                  |(1<<NFlag)|(1<<CFlag)
3069         .hword  (0x58<<8)               |(1<<NFlag)|(1<<CFlag)
3070         .hword  (0x59<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3071         .hword  (0x5A<<8)         |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3072         .hword  (0x5B<<8)         |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3073         .hword  (0x5C<<8)         |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3074         .hword  (0x5D<<8)         |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3075         .hword  (0x5E<<8)         |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3076         .hword  (0x5F<<8)         |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3077         .hword  (0x60<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3078         .hword  (0x61<<8)               |(1<<NFlag)|(1<<CFlag)
3079         .hword  (0x62<<8)               |(1<<NFlag)|(1<<CFlag)
3080         .hword  (0x63<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3081         .hword  (0x64<<8)               |(1<<NFlag)|(1<<CFlag)
3082         .hword  (0x65<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3083         .hword  (0x66<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3084         .hword  (0x67<<8)               |(1<<NFlag)|(1<<CFlag)
3085         .hword  (0x68<<8)            |(1<<NFlag)|(1<<CFlag)
3086         .hword  (0x69<<8)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3087         .hword  (0x6A<<8)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3088         .hword  (0x6B<<8)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3089         .hword  (0x6C<<8)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3090         .hword  (0x6D<<8)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3091         .hword  (0x6E<<8)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3092         .hword  (0x6F<<8)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3093         .hword  (0x70<<8)               |(1<<NFlag)|(1<<CFlag)
3094         .hword  (0x71<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3095         .hword  (0x72<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3096         .hword  (0x73<<8)               |(1<<NFlag)|(1<<CFlag)
3097         .hword  (0x74<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3098         .hword  (0x75<<8)               |(1<<NFlag)|(1<<CFlag)
3099         .hword  (0x76<<8)               |(1<<NFlag)|(1<<CFlag)
3100         .hword  (0x77<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3101         .hword  (0x78<<8)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3102         .hword  (0x79<<8)            |(1<<NFlag)|(1<<CFlag)
3103         .hword  (0x7A<<8)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3104         .hword  (0x7B<<8)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3105         .hword  (0x7C<<8)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3106         .hword  (0x7D<<8)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3107         .hword  (0x7E<<8)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3108         .hword  (0x7F<<8)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3109         .hword  (0x80<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
3110         .hword  (0x81<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3111         .hword  (0x82<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3112         .hword  (0x83<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
3113         .hword  (0x84<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3114         .hword  (0x85<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
3115         .hword  (0x86<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
3116         .hword  (0x87<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3117         .hword  (0x88<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3118         .hword  (0x89<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
3119         .hword  (0x8A<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3120         .hword  (0x8B<<8)|(1<<SFlag)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3121         .hword  (0x8C<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3122         .hword  (0x8D<<8)|(1<<SFlag)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3123         .hword  (0x8E<<8)|(1<<SFlag)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3124         .hword  (0x8F<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3125         .hword  (0x90<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3126         .hword  (0x91<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
3127         .hword  (0x92<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
3128         .hword  (0x93<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3129         .hword  (0x94<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
3130         .hword  (0x95<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3131         .hword  (0x96<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3132         .hword  (0x97<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
3133         .hword  (0x98<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
3134         .hword  (0x99<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3135         .hword  (0x9A<<8)|(1<<SFlag)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3136         .hword  (0x9B<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3137         .hword  (0x9C<<8)|(1<<SFlag)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3138         .hword  (0x9D<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3139         .hword  (0x9E<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3140         .hword  (0x9F<<8)|(1<<SFlag)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3141         .hword  (0xA0<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3142         .hword  (0xA1<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
3143         .hword  (0xA2<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
3144         .hword  (0xA3<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3145         .hword  (0xA4<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
3146         .hword  (0xA5<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3147         .hword  (0xA6<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3148         .hword  (0xA7<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
3149         .hword  (0xA8<<8)|(1<<SFlag)         |(1<<NFlag)|(1<<CFlag)
3150         .hword  (0xA9<<8)|(1<<SFlag)      |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3151         .hword  (0xAA<<8)|(1<<SFlag)   |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3152         .hword  (0xAB<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3153         .hword  (0xAC<<8)|(1<<SFlag)   |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3154         .hword  (0xAD<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3155         .hword  (0xAE<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3156         .hword  (0xAF<<8)|(1<<SFlag)   |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3157         .hword  (0xB0<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
3158         .hword  (0xB1<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3159         .hword  (0xB2<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3160         .hword  (0xB3<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
3161         .hword  (0xB4<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3162         .hword  (0xB5<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
3163         .hword  (0xB6<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
3164         .hword  (0xB7<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3165         .hword  (0xB8<<8)|(1<<SFlag)      |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3166         .hword  (0xB9<<8)|(1<<SFlag)         |(1<<NFlag)|(1<<CFlag)
3167         .hword  (0xBA<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3168         .hword  (0xBB<<8)|(1<<SFlag)   |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3169         .hword  (0xBC<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3170         .hword  (0xBD<<8)|(1<<SFlag)   |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3171         .hword  (0xBE<<8)|(1<<SFlag)   |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3172         .hword  (0xBF<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3173         .hword  (0xC0<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3174         .hword  (0xC1<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
3175         .hword  (0xC2<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
3176         .hword  (0xC3<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3177         .hword  (0xC4<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
3178         .hword  (0xC5<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3179         .hword  (0xC6<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3180         .hword  (0xC7<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
3181         .hword  (0xC8<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
3182         .hword  (0xC9<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3183         .hword  (0xCA<<8)|(1<<SFlag)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3184         .hword  (0xCB<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3185         .hword  (0xCC<<8)|(1<<SFlag)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3186         .hword  (0xCD<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3187         .hword  (0xCE<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3188         .hword  (0xCF<<8)|(1<<SFlag)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3189         .hword  (0xD0<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
3190         .hword  (0xD1<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3191         .hword  (0xD2<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3192         .hword  (0xD3<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
3193         .hword  (0xD4<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3194         .hword  (0xD5<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
3195         .hword  (0xD6<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
3196         .hword  (0xD7<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3197         .hword  (0xD8<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3198         .hword  (0xD9<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
3199         .hword  (0xDA<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3200         .hword  (0xDB<<8)|(1<<SFlag)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3201         .hword  (0xDC<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3202         .hword  (0xDD<<8)|(1<<SFlag)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3203         .hword  (0xDE<<8)|(1<<SFlag)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3204         .hword  (0xDF<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3205         .hword  (0xE0<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
3206         .hword  (0xE1<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3207         .hword  (0xE2<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3208         .hword  (0xE3<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
3209         .hword  (0xE4<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3210         .hword  (0xE5<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
3211         .hword  (0xE6<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
3212         .hword  (0xE7<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3213         .hword  (0xE8<<8)|(1<<SFlag)      |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3214         .hword  (0xE9<<8)|(1<<SFlag)         |(1<<NFlag)|(1<<CFlag)
3215         .hword  (0xEA<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3216         .hword  (0xEB<<8)|(1<<SFlag)   |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3217         .hword  (0xEC<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3218         .hword  (0xED<<8)|(1<<SFlag)   |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3219         .hword  (0xEE<<8)|(1<<SFlag)   |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3220         .hword  (0xEF<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3221         .hword  (0xF0<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3222         .hword  (0xF1<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
3223         .hword  (0xF2<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
3224         .hword  (0xF3<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3225         .hword  (0xF4<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
3226         .hword  (0xF5<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3227         .hword  (0xF6<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3228         .hword  (0xF7<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
3229         .hword  (0xF8<<8)|(1<<SFlag)         |(1<<NFlag)|(1<<CFlag)
3230         .hword  (0xF9<<8)|(1<<SFlag)      |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3231         .hword  (0xFA<<8)|(1<<SFlag)   |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3232         .hword  (0xFB<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3233         .hword  (0xFC<<8)|(1<<SFlag)   |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3234         .hword  (0xFD<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3235         .hword  (0xFE<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3236         .hword  (0xFF<<8)|(1<<SFlag)   |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3237         .hword  (0x00<<8)   |(1<<ZFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3238         .hword  (0x01<<8)                  |(1<<NFlag)|(1<<CFlag)
3239         .hword  (0x02<<8)                  |(1<<NFlag)|(1<<CFlag)
3240         .hword  (0x03<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3241         .hword  (0x04<<8)                  |(1<<NFlag)|(1<<CFlag)
3242         .hword  (0x05<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3243         .hword  (0x06<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3244         .hword  (0x07<<8)                  |(1<<NFlag)|(1<<CFlag)
3245         .hword  (0x08<<8)               |(1<<NFlag)|(1<<CFlag)
3246         .hword  (0x09<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3247         .hword  (0x0A<<8)         |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3248         .hword  (0x0B<<8)         |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3249         .hword  (0x0C<<8)         |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3250         .hword  (0x0D<<8)         |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3251         .hword  (0x0E<<8)         |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3252         .hword  (0x0F<<8)         |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3253         .hword  (0x10<<8)                  |(1<<NFlag)|(1<<CFlag)
3254         .hword  (0x11<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3255         .hword  (0x12<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3256         .hword  (0x13<<8)                  |(1<<NFlag)|(1<<CFlag)
3257         .hword  (0x14<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3258         .hword  (0x15<<8)                  |(1<<NFlag)|(1<<CFlag)
3259         .hword  (0x16<<8)                  |(1<<NFlag)|(1<<CFlag)
3260         .hword  (0x17<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3261         .hword  (0x18<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3262         .hword  (0x19<<8)               |(1<<NFlag)|(1<<CFlag)
3263         .hword  (0x1A<<8)         |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3264         .hword  (0x1B<<8)         |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3265         .hword  (0x1C<<8)         |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3266         .hword  (0x1D<<8)         |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3267         .hword  (0x1E<<8)         |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3268         .hword  (0x1F<<8)         |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3269         .hword  (0x20<<8)               |(1<<NFlag)|(1<<CFlag)
3270         .hword  (0x21<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3271         .hword  (0x22<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3272         .hword  (0x23<<8)               |(1<<NFlag)|(1<<CFlag)
3273         .hword  (0x24<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3274         .hword  (0x25<<8)               |(1<<NFlag)|(1<<CFlag)
3275         .hword  (0x26<<8)               |(1<<NFlag)|(1<<CFlag)
3276         .hword  (0x27<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3277         .hword  (0x28<<8)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3278         .hword  (0x29<<8)            |(1<<NFlag)|(1<<CFlag)
3279         .hword  (0x2A<<8)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3280         .hword  (0x2B<<8)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3281         .hword  (0x2C<<8)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3282         .hword  (0x2D<<8)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3283         .hword  (0x2E<<8)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3284         .hword  (0x2F<<8)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3285         .hword  (0x30<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3286         .hword  (0x31<<8)               |(1<<NFlag)|(1<<CFlag)
3287         .hword  (0x32<<8)               |(1<<NFlag)|(1<<CFlag)
3288         .hword  (0x33<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3289         .hword  (0x34<<8)               |(1<<NFlag)|(1<<CFlag)
3290         .hword  (0x35<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3291         .hword  (0x36<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3292         .hword  (0x37<<8)               |(1<<NFlag)|(1<<CFlag)
3293         .hword  (0x38<<8)            |(1<<NFlag)|(1<<CFlag)
3294         .hword  (0x39<<8)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3295         .hword  (0x3A<<8)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3296         .hword  (0x3B<<8)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3297         .hword  (0x3C<<8)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3298         .hword  (0x3D<<8)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3299         .hword  (0x3E<<8)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3300         .hword  (0x3F<<8)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3301         .hword  (0x40<<8)                  |(1<<NFlag)|(1<<CFlag)
3302         .hword  (0x41<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3303         .hword  (0x42<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3304         .hword  (0x43<<8)                  |(1<<NFlag)|(1<<CFlag)
3305         .hword  (0x44<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3306         .hword  (0x45<<8)                  |(1<<NFlag)|(1<<CFlag)
3307         .hword  (0x46<<8)                  |(1<<NFlag)|(1<<CFlag)
3308         .hword  (0x47<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3309         .hword  (0x48<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3310         .hword  (0x49<<8)               |(1<<NFlag)|(1<<CFlag)
3311         .hword  (0x4A<<8)         |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3312         .hword  (0x4B<<8)         |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3313         .hword  (0x4C<<8)         |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3314         .hword  (0x4D<<8)         |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3315         .hword  (0x4E<<8)         |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3316         .hword  (0x4F<<8)         |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3317         .hword  (0x50<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3318         .hword  (0x51<<8)                  |(1<<NFlag)|(1<<CFlag)
3319         .hword  (0x52<<8)                  |(1<<NFlag)|(1<<CFlag)
3320         .hword  (0x53<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3321         .hword  (0x54<<8)                  |(1<<NFlag)|(1<<CFlag)
3322         .hword  (0x55<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3323         .hword  (0x56<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3324         .hword  (0x57<<8)                  |(1<<NFlag)|(1<<CFlag)
3325         .hword  (0x58<<8)               |(1<<NFlag)|(1<<CFlag)
3326         .hword  (0x59<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3327         .hword  (0x5A<<8)         |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3328         .hword  (0x5B<<8)         |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3329         .hword  (0x5C<<8)         |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3330         .hword  (0x5D<<8)         |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3331         .hword  (0x5E<<8)         |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3332         .hword  (0x5F<<8)         |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3333         .hword  (0x60<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3334         .hword  (0x61<<8)               |(1<<NFlag)|(1<<CFlag)
3335         .hword  (0x62<<8)               |(1<<NFlag)|(1<<CFlag)
3336         .hword  (0x63<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3337         .hword  (0x64<<8)               |(1<<NFlag)|(1<<CFlag)
3338         .hword  (0x65<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3339         .hword  (0x66<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3340         .hword  (0x67<<8)               |(1<<NFlag)|(1<<CFlag)
3341         .hword  (0x68<<8)            |(1<<NFlag)|(1<<CFlag)
3342         .hword  (0x69<<8)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3343         .hword  (0x6A<<8)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3344         .hword  (0x6B<<8)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3345         .hword  (0x6C<<8)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3346         .hword  (0x6D<<8)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3347         .hword  (0x6E<<8)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3348         .hword  (0x6F<<8)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3349         .hword  (0x70<<8)               |(1<<NFlag)|(1<<CFlag)
3350         .hword  (0x71<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3351         .hword  (0x72<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3352         .hword  (0x73<<8)               |(1<<NFlag)|(1<<CFlag)
3353         .hword  (0x74<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3354         .hword  (0x75<<8)               |(1<<NFlag)|(1<<CFlag)
3355         .hword  (0x76<<8)               |(1<<NFlag)|(1<<CFlag)
3356         .hword  (0x77<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3357         .hword  (0x78<<8)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3358         .hword  (0x79<<8)            |(1<<NFlag)|(1<<CFlag)
3359         .hword  (0x7A<<8)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3360         .hword  (0x7B<<8)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3361         .hword  (0x7C<<8)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3362         .hword  (0x7D<<8)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3363         .hword  (0x7E<<8)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3364         .hword  (0x7F<<8)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3365         .hword  (0x80<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
3366         .hword  (0x81<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3367         .hword  (0x82<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3368         .hword  (0x83<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
3369         .hword  (0x84<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3370         .hword  (0x85<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
3371         .hword  (0x86<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
3372         .hword  (0x87<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3373         .hword  (0x88<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3374         .hword  (0x89<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
3375         .hword  (0x8A<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3376         .hword  (0x8B<<8)|(1<<SFlag)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3377         .hword  (0x8C<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3378         .hword  (0x8D<<8)|(1<<SFlag)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3379         .hword  (0x8E<<8)|(1<<SFlag)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3380         .hword  (0x8F<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3381         .hword  (0x90<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3382         .hword  (0x91<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
3383         .hword  (0x92<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
3384         .hword  (0x93<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3385         .hword  (0x94<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
3386         .hword  (0x95<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3387         .hword  (0x96<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3388         .hword  (0x97<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
3389         .hword  (0x98<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
3390         .hword  (0x99<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3391
3392.align 4
3393
3394AF_Z80:  .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 0
3395         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 1
3396         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 2
3397         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 3
3398         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 4
3399         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 5
3400         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 6
3401         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 7
3402         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 8
3403         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 9
3404         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 10
3405         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 11
3406         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 12
3407         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 13
3408         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 14
3409         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 15
3410         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 16
3411         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 17
3412         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 18
3413         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 19
3414         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 20
3415         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 21
3416         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 22
3417         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 23
3418         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 24
3419         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 25
3420         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 26
3421         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 27
3422         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 28
3423         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 29
3424         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 30
3425         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 31
3426         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 32
3427         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 33
3428         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 34
3429         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 35
3430         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 36
3431         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 37
3432         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 38
3433         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 39
3434         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 40
3435         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 41
3436         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 42
3437         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 43
3438         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 44
3439         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 45
3440         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 46
3441         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 47
3442         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 48
3443         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 49
3444         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 50
3445         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 51
3446         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 52
3447         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 53
3448         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 54
3449         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 55
3450         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 56
3451         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 57
3452         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 58
3453         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 59
3454         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 60
3455         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 61
3456         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 62
3457         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 63
3458         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 64
3459         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 65
3460         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 66
3461         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 67
3462         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 68
3463         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 69
3464         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 70
3465         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 71
3466         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 72
3467         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 73
3468         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 74
3469         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 75
3470         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 76
3471         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 77
3472         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 78
3473         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 79
3474         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 80
3475         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 81
3476         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 82
3477         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 83
3478         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 84
3479         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 85
3480         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 86
3481         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 87
3482         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 88
3483         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 89
3484         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 90
3485         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 91
3486         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 92
3487         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 93
3488         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 94
3489         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 95
3490         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 96
3491         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 97
3492         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 98
3493         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 99
3494         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 100
3495         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 101
3496         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 102
3497         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 103
3498         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 104
3499         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 105
3500         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 106
3501         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 107
3502         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 108
3503         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 109
3504         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 110
3505         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 111
3506         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 112
3507         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 113
3508         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 114
3509         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 115
3510         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 116
3511         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 117
3512         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 118
3513         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 119
3514         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 120
3515         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 121
3516         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 122
3517         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 123
3518         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 124
3519         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 125
3520         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 126
3521         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 127
3522         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 128
3523         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 129
3524         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 130
3525         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 131
3526         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 132
3527         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 133
3528         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 134
3529         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 135
3530         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 136
3531         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 137
3532         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 138
3533         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 139
3534         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 140
3535         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 141
3536         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 142
3537         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 143
3538         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 144
3539         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 145
3540         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 146
3541         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 147
3542         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 148
3543         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 149
3544         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 150
3545         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 151
3546         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 152
3547         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 153
3548         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 154
3549         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 155
3550         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 156
3551         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 157
3552         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 158
3553         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 159
3554         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 160
3555         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 161
3556         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 162
3557         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 163
3558         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 164
3559         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 165
3560         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 166
3561         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 167
3562         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 168
3563         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 169
3564         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 170
3565         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 171
3566         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 172
3567         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 173
3568         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 174
3569         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 175
3570         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 176
3571         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 177
3572         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 178
3573         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 179
3574         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 180
3575         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 181
3576         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 182
3577         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 183
3578         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 184
3579         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 185
3580         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 186
3581         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 187
3582         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 188
3583         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 189
3584         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 190
3585         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 191
3586         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 192
3587         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 193
3588         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 194
3589         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 195
3590         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 196
3591         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 197
3592         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 198
3593         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 199
3594         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 200
3595         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 201
3596         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 202
3597         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 203
3598         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 204
3599         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 205
3600         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 206
3601         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 207
3602         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 208
3603         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 209
3604         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 210
3605         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 211
3606         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 212
3607         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 213
3608         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 214
3609         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 215
3610         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 216
3611         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 217
3612         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 218
3613         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 219
3614         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 220
3615         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 221
3616         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 222
3617         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 223
3618         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 224
3619         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 225
3620         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 226
3621         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 227
3622         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 228
3623         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 229
3624         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 230
3625         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 231
3626         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 232
3627         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 233
3628         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 234
3629         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 235
3630         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 236
3631         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 237
3632         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 238
3633         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 239
3634         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 240
3635         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 241
3636         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 242
3637         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 243
3638         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 244
3639         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 245
3640         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 246
3641         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 247
3642         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 248
3643         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 249
3644         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 250
3645         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 251
3646         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 252
3647         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 253
3648         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 254
3649         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 255
3650
3651.align 4
3652
3653AF_ARM:  .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 0
3654         .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 1
3655         .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 2
3656         .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 3
3657         .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 4
3658         .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 5
3659         .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 6
3660         .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 7
3661         .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 8
3662         .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 9
3663         .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 10
3664         .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 11
3665         .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 12
3666         .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 13
3667         .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 14
3668         .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 15
3669         .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 16
3670         .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 17
3671         .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 18
3672         .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 19
3673         .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 20
3674         .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 21
3675         .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 22
3676         .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 23
3677         .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 24
3678         .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 25
3679         .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 26
3680         .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 27
3681         .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 28
3682         .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 29
3683         .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 30
3684         .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 31
3685         .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 32
3686         .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 33
3687         .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 34
3688         .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 35
3689         .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 36
3690         .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 37
3691         .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 38
3692         .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 39
3693         .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 40
3694         .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 41
3695         .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 42
3696         .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 43
3697         .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 44
3698         .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 45
3699         .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 46
3700         .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 47
3701         .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 48
3702         .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 49
3703         .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 50
3704         .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 51
3705         .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 52
3706         .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 53
3707         .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 54
3708         .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 55
3709         .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 56
3710         .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 57
3711         .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 58
3712         .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 59
3713         .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 60
3714         .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 61
3715         .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 62
3716         .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 63
3717         .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 64
3718         .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 65
3719         .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 66
3720         .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 67
3721         .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 68
3722         .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 69
3723         .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 70
3724         .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 71
3725         .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 72
3726         .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 73
3727         .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 74
3728         .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 75
3729         .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 76
3730         .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 77
3731         .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 78
3732         .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 79
3733         .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 80
3734         .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 81
3735         .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 82
3736         .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 83
3737         .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 84
3738         .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 85
3739         .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 86
3740         .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 87
3741         .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 88
3742         .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 89
3743         .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 90
3744         .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 91
3745         .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 92
3746         .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 93
3747         .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 94
3748         .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 95
3749         .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 96
3750         .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 97
3751         .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 98
3752         .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 99
3753         .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 100
3754         .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 101
3755         .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 102
3756         .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 103
3757         .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 104
3758         .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 105
3759         .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 106
3760         .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 107
3761         .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 108
3762         .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 109
3763         .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 110
3764         .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 111
3765         .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 112
3766         .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 113
3767         .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 114
3768         .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 115
3769         .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 116
3770         .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 117
3771         .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 118
3772         .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 119
3773         .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 120
3774         .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 121
3775         .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 122
3776         .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 123
3777         .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 124
3778         .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 125
3779         .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 126
3780         .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 127
3781         .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 128
3782         .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 129
3783         .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 130
3784         .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 131
3785         .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 132
3786         .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 133
3787         .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 134
3788         .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 135
3789         .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 136
3790         .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 137
3791         .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 138
3792         .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 139
3793         .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 140
3794         .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 141
3795         .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 142
3796         .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 143
3797         .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 144
3798         .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 145
3799         .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 146
3800         .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 147
3801         .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 148
3802         .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 149
3803         .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 150
3804         .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 151
3805         .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 152
3806         .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 153
3807         .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 154
3808         .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 155
3809         .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 156
3810         .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 157
3811         .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 158
3812         .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 159
3813         .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 160
3814         .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 161
3815         .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 162
3816         .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 163
3817         .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 164
3818         .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 165
3819         .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 166
3820         .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 167
3821         .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 168
3822         .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 169
3823         .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 170
3824         .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 171
3825         .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 172
3826         .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 173
3827         .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 174
3828         .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 175
3829         .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 176
3830         .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 177
3831         .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 178
3832         .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 179
3833         .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 180
3834         .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 181
3835         .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 182
3836         .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 183
3837         .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 184
3838         .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 185
3839         .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 186
3840         .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 187
3841         .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 188
3842         .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 189
3843         .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 190
3844         .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 191
3845         .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 192
3846         .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 193
3847         .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 194
3848         .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 195
3849         .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 196
3850         .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 197
3851         .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 198
3852         .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 199
3853         .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 200
3854         .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 201
3855         .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 202
3856         .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 203
3857         .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 204
3858         .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 205
3859         .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 206
3860         .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 207
3861         .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 208
3862         .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 209
3863         .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 210
3864         .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 211
3865         .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 212
3866         .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 213
3867         .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 214
3868         .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 215
3869         .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 216
3870         .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 217
3871         .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 218
3872         .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 219
3873         .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 220
3874         .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 221
3875         .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 222
3876         .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 223
3877         .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 224
3878         .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 225
3879         .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 226
3880         .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 227
3881         .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 228
3882         .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 229
3883         .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 230
3884         .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 231
3885         .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 232
3886         .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 233
3887         .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 234
3888         .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 235
3889         .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 236
3890         .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 237
3891         .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 238
3892         .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 239
3893         .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 240
3894         .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 241
3895         .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 242
3896         .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 243
3897         .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 244
3898         .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 245
3899         .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 246
3900         .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 247
3901         .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 248
3902         .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 249
3903         .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 250
3904         .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 251
3905         .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 252
3906         .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 253
3907         .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 254
3908         .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 255
3909
3910.align 4
3911
3912PZSTable_data: .byte (1<<ZFlag)|(1<<VFlag),0,0,(1<<VFlag),0,(1<<VFlag),(1<<VFlag),0
3913	.byte  0,(1<<VFlag),(1<<VFlag),0,(1<<VFlag),0,0,(1<<VFlag)
3914	.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
3915	.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
3916	.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)
3917	.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
3918	.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)
3919	.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)
3920	.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
3921	.byte  (1<<SFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)
3922	.byte  (1<<SFlag)|(1<<VFlag),(1<<SFlag),(1<<SFlag),(1<<SFlag)|(1<<VFlag)
3923	.byte  (1<<SFlag)|(1<<VFlag),(1<<SFlag),(1<<SFlag),(1<<SFlag)|(1<<VFlag)
3924	.byte  (1<<SFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)
3925	.byte  (1<<SFlag)|(1<<VFlag),(1<<SFlag),(1<<SFlag),(1<<SFlag)|(1<<VFlag)
3926	.byte  (1<<SFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)
3927	.byte  (1<<SFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)
3928	.byte  (1<<SFlag)|(1<<VFlag),(1<<SFlag),(1<<SFlag),(1<<SFlag)|(1<<VFlag)
3929	.byte  (1<<SFlag)|(1<<VFlag),(1<<SFlag),(1<<SFlag),(1<<SFlag)|(1<<VFlag)
3930	.byte  (1<<SFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)
3931	.byte  (1<<SFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)
3932	.byte  (1<<SFlag)|(1<<VFlag),(1<<SFlag),(1<<SFlag),(1<<SFlag)|(1<<VFlag)
3933	.byte  (1<<SFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)
3934	.byte  (1<<SFlag)|(1<<VFlag),(1<<SFlag),(1<<SFlag),(1<<SFlag)|(1<<VFlag)
3935	.byte  (1<<SFlag)|(1<<VFlag),(1<<SFlag),(1<<SFlag),(1<<SFlag)|(1<<VFlag)
3936	.byte  (1<<SFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)
3937	.byte  (1<<SFlag)|(1<<VFlag),(1<<SFlag),(1<<SFlag),(1<<SFlag)|(1<<VFlag)
3938	.byte  (1<<SFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)
3939	.byte  (1<<SFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)
3940	.byte  (1<<SFlag)|(1<<VFlag),(1<<SFlag),(1<<SFlag),(1<<SFlag)|(1<<VFlag)
3941	.byte  (1<<SFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)
3942	.byte  (1<<SFlag)|(1<<VFlag),(1<<SFlag),(1<<SFlag),(1<<SFlag)|(1<<VFlag)
3943	.byte  (1<<SFlag)|(1<<VFlag),(1<<SFlag),(1<<SFlag),(1<<SFlag)|(1<<VFlag)
3944	.byte  (1<<SFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)
3945	.byte  (1<<SFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)
3946	.byte  (1<<SFlag)|(1<<VFlag),(1<<SFlag),(1<<SFlag),(1<<SFlag)|(1<<VFlag)
3947	.byte  (1<<SFlag)|(1<<VFlag),(1<<SFlag),(1<<SFlag),(1<<SFlag)|(1<<VFlag)
3948	.byte  (1<<SFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)
3949	.byte  (1<<SFlag)|(1<<VFlag),(1<<SFlag),(1<<SFlag),(1<<SFlag)|(1<<VFlag)
3950	.byte  (1<<SFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)
3951	.byte  (1<<SFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)
3952	.byte  (1<<SFlag)|(1<<VFlag),(1<<SFlag),(1<<SFlag),(1<<SFlag)|(1<<VFlag)
3953
3954.align 4
3955
3956MAIN_opcodes:
3957	.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
3958	.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
3959	.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
3960	.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
3961	.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
3962	.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
3963	.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
3964	.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
3965	.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
3966	.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
3967	.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
3968	.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
3969	.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
3970	.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
3971	.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
3972	.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
3973	.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
3974	.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
3975	.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
3976	.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
3977	.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
3978	.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
3979	.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
3980	.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
3981	.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
3982	.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
3983	.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
3984	.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
3985	.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
3986	.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
3987	.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
3988	.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
3989
3990.align 4
3991
3992EI_DUMMY_opcodes:
3993	.word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@0
3994	.word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@0
3995	.word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@1
3996	.word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@1
3997	.word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@2
3998	.word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@2
3999	.word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@3
4000	.word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@3
4001	.word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@4
4002	.word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@4
4003	.word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@5
4004	.word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@5
4005	.word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@6
4006	.word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@6
4007	.word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@7
4008	.word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@7
4009	.word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@8
4010	.word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@8
4011	.word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@9
4012	.word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@9
4013	.word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@A
4014	.word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@A
4015	.word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@B
4016	.word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@B
4017	.word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@C
4018	.word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@C
4019	.word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@D
4020	.word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@D
4021	.word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@E
4022	.word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@E
4023	.word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@F
4024	.word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@F
4025
4026.text
4027.align 4
4028
4029;@NOP
4030opcode_0_0:
4031;@LD B,B
4032opcode_4_0:
4033;@LD C,C
4034opcode_4_9:
4035;@LD D,D
4036opcode_5_2:
4037;@LD E,E
4038opcode_5_B:
4039;@LD H,H
4040opcode_6_4:
4041;@LD L,L
4042opcode_6_D:
4043;@LD A,A
4044opcode_7_F:
4045	fetch 4
4046;@LD BC,NN
4047opcode_0_1:
4048	ldrb r0,[z80pc],#1
4049	ldrb r1,[z80pc],#1
4050	orr r0,r0,r1, lsl #8
4051	mov z80bc,r0, lsl #16
4052	fetch 10
4053;@LD (BC),A
4054opcode_0_2:
4055	mov r0,z80a, lsr #24
4056	mov r1,z80bc, lsr #16
4057	writemem8
4058	fetch 7
4059;@INC BC
4060opcode_0_3:
4061	add z80bc,z80bc,#1<<16
4062	fetch 6
4063;@INC B
4064opcode_0_4:
4065	opINC8H z80bc
4066	fetch 4
4067;@DEC B
4068opcode_0_5:
4069	opDEC8H z80bc
4070	fetch 4
4071;@LD B,N
4072opcode_0_6:
4073	ldrb r1,[z80pc],#1
4074	and z80bc,z80bc,#0xFF<<16
4075	orr z80bc,z80bc,r1, lsl #24
4076	fetch 7
4077;@RLCA
4078opcode_0_7:
4079	bic z80f,z80f,#(1<<NFlag)|(1<<HFlag)|(1<<CFlag)
4080	movs z80a,z80a, lsl #1
4081	orrcs z80a,z80a,#1<<24
4082	orrcs z80f,z80f,#1<<CFlag
4083	fetch 4
4084;@EX AF,AF'
4085opcode_0_8:
4086	add r1,cpucontext,#z80a2
4087	ldr r0,[r1]
4088        str z80a,[r1]
4089        mov z80a,r0
4090	add r1,cpucontext,#z80f2
4091	ldr r0,[r1]
4092        str z80f,[r1]
4093        mov z80f,r0
4094	fetch 4
4095;@ADD HL,BC
4096opcode_0_9:
4097	opADD16 z80hl z80bc
4098	fetch 11
4099;@LD A,(BC)
4100opcode_0_A:
4101	mov r0,z80bc, lsr #16
4102	readmem8
4103	mov z80a,r0, lsl #24
4104	fetch 7
4105;@DEC BC
4106opcode_0_B:
4107	sub z80bc,z80bc,#1<<16
4108	fetch 6
4109;@INC C
4110opcode_0_C:
4111	opINC8L z80bc
4112	fetch 4
4113;@DEC C
4114opcode_0_D:
4115	opDEC8L z80bc
4116	fetch 4
4117;@LD C,N
4118opcode_0_E:
4119	ldrb r1,[z80pc],#1
4120	and z80bc,z80bc,#0xFF<<24
4121	orr z80bc,z80bc,r1, lsl #16
4122	fetch 7
4123;@RRCA
4124opcode_0_F:
4125	bic z80f,z80f,#(1<<NFlag)|(1<<HFlag)|(1<<CFlag)
4126	movs z80a,z80a, lsr #25
4127	orrcs z80a,z80a,#1<<7
4128	orrcs z80f,z80f,#1<<CFlag
4129	mov z80a,z80a, lsl #24
4130	fetch 4
4131;@DJNZ $+2
4132opcode_1_0:
4133	sub z80bc,z80bc,#1<<24
4134	tst z80bc,#0xFF<<24
4135	ldrsb r1,[z80pc],#1
4136	addne z80pc,z80pc,r1
4137	subne z80_icount,z80_icount,#5
4138	fetch 8
4139
4140;@LD DE,NN
4141opcode_1_1:
4142	ldrb r0,[z80pc],#1
4143	ldrb r1,[z80pc],#1
4144	orr r0,r0,r1, lsl #8
4145	mov z80de,r0, lsl #16
4146	fetch 10
4147;@LD (DE),A
4148opcode_1_2:
4149	mov r0,z80a, lsr #24
4150	writemem8DE
4151	fetch 7
4152;@INC DE
4153opcode_1_3:
4154	add z80de,z80de,#1<<16
4155	fetch 6
4156;@INC D
4157opcode_1_4:
4158	opINC8H z80de
4159	fetch 4
4160;@DEC D
4161opcode_1_5:
4162	opDEC8H z80de
4163	fetch 4
4164;@LD D,N
4165opcode_1_6:
4166	ldrb r1,[z80pc],#1
4167	and z80de,z80de,#0xFF<<16
4168	orr z80de,z80de,r1, lsl #24
4169	fetch 7
4170;@RLA
4171opcode_1_7:
4172	tst z80f,#1<<CFlag
4173	orrne z80a,z80a,#1<<23
4174	bic z80f,z80f,#(1<<NFlag)|(1<<HFlag)|(1<<CFlag)
4175	movs z80a,z80a, lsl #1
4176	orrcs z80f,z80f,#1<<CFlag
4177	fetch 4
4178;@JR $+2
4179opcode_1_8:
4180	ldrsb r1,[z80pc],#1
4181	add z80pc,z80pc,r1
4182	fetch 12
4183;@ADD HL,DE
4184opcode_1_9:
4185	opADD16 z80hl z80de
4186	fetch 11
4187;@LD A,(DE)
4188opcode_1_A:
4189	mov r0,z80de, lsr #16
4190	readmem8
4191	mov z80a,r0, lsl #24
4192	fetch 7
4193;@DEC DE
4194opcode_1_B:
4195	sub z80de,z80de,#1<<16
4196	fetch 6
4197;@INC E
4198opcode_1_C:
4199	opINC8L z80de
4200	fetch 4
4201;@DEC E
4202opcode_1_D:
4203	opDEC8L z80de
4204	fetch 4
4205;@LD E,N
4206opcode_1_E:
4207	ldrb r0,[z80pc],#1
4208	and z80de,z80de,#0xFF<<24
4209	orr z80de,z80de,r0, lsl #16
4210	fetch 7
4211;@RRA
4212opcode_1_F:
4213	orr z80a,z80a,z80f,lsr#1		;@get C
4214	bic z80f,z80f,#(1<<NFlag)|(1<<HFlag)|(1<<CFlag)
4215	movs z80a,z80a,ror#25
4216	orrcs z80f,z80f,#1<<CFlag
4217	mov z80a,z80a,lsl#24
4218	fetch 4
4219;@JR NZ,$+2
4220opcode_2_0:
4221	tst z80f,#1<<ZFlag
4222	beq opcode_1_8
4223	add z80pc,z80pc,#1
4224	fetch 7
4225;@LD HL,NN
4226opcode_2_1:
4227	ldrb r0,[z80pc],#1
4228	ldrb r1,[z80pc],#1
4229	orr r0,r0,r1, lsl #8
4230	mov z80hl,r0, lsl #16
4231	fetch 10
4232;@LD (NN),HL
4233opcode_ED_63:
4234	eatcycles 4
4235;@LD (NN),HL
4236opcode_2_2:
4237	ldrb r0,[z80pc],#1
4238	ldrb r1,[z80pc],#1
4239	orr r1,r0,r1, lsl #8
4240	mov r0,z80hl, lsr #16
4241	writemem16
4242	fetch 16
4243;@INC HL
4244opcode_2_3:
4245	add z80hl,z80hl,#1<<16
4246	fetch 6
4247;@INC H
4248opcode_2_4:
4249	opINC8H z80hl
4250	fetch 4
4251;@DEC H
4252opcode_2_5:
4253	opDEC8H z80hl
4254	fetch 4
4255;@LD H,N
4256opcode_2_6:
4257	ldrb r1,[z80pc],#1
4258	and z80hl,z80hl,#0xFF<<16
4259	orr z80hl,z80hl,r1, lsl #24
4260	fetch 7
4261DAATABLE_LOCAL: .word DAATable
4262;@DAA
4263opcode_2_7:
4264	mov r1,z80a, lsr #23
4265	tst z80f,#1<<CFlag
4266	orrne r1,r1,#512
4267	tst z80f,#1<<HFlag
4268	orrne r1,r1,#1024
4269	tst z80f,#1<<NFlag
4270	orrne r1,r1,#2048
4271	ldr r2,DAATABLE_LOCAL
4272	ldrh r1,[r2,r1]
4273	and z80f,r1,#0xFF
4274	and r2,r1,#0xFF<<8
4275	mov z80a,r2, lsl #16
4276	fetch 4
4277;@JR Z,$+2
4278opcode_2_8:
4279	tst z80f,#1<<ZFlag
4280	bne opcode_1_8
4281	add z80pc,z80pc,#1
4282	fetch 7
4283;@ADD HL,HL
4284opcode_2_9:
4285	opADD16_2 z80hl
4286	fetch 11
4287;@LD HL,(NN)
4288opcode_ED_6B:
4289	eatcycles 4
4290;@LD HL,(NN)
4291opcode_2_A:
4292	ldrb r0,[z80pc],#1
4293	ldrb r1,[z80pc],#1
4294	orr r0,r0,r1, lsl #8
4295	readmem16
4296	mov z80hl,r0, lsl #16
4297	fetch 16
4298;@DEC HL
4299opcode_2_B:
4300	sub z80hl,z80hl,#1<<16
4301	fetch 6
4302;@INC L
4303opcode_2_C:
4304	opINC8L z80hl
4305	fetch 4
4306;@DEC L
4307opcode_2_D:
4308	opDEC8L z80hl
4309	fetch 4
4310;@LD L,N
4311opcode_2_E:
4312	ldrb r0,[z80pc],#1
4313	and z80hl,z80hl,#0xFF<<24
4314	orr z80hl,z80hl,r0, lsl #16
4315	fetch 7
4316;@CPL
4317opcode_2_F:
4318	eor z80a,z80a,#0xFF<<24
4319	orr z80f,z80f,#(1<<NFlag)|(1<<HFlag)
4320	fetch 4
4321;@JR NC,$+2
4322opcode_3_0:
4323	tst z80f,#1<<CFlag
4324	beq opcode_1_8
4325	add z80pc,z80pc,#1
4326	fetch 7
4327;@LD SP,NN
4328opcode_3_1:
4329	ldrb r0,[z80pc],#1
4330	ldrb r1,[z80pc],#1
4331
4332.if FAST_Z80SP
4333	orr r0,r0,r1, lsl #8
4334	rebasesp
4335	;@mov z80sp,r0
4336.else
4337	orr z80sp,r0,r1, lsl #8
4338.endif
4339	fetch 10
4340;@LD (NN),A
4341opcode_3_2:
4342	ldrb r0,[z80pc],#1
4343	ldrb r1,[z80pc],#1
4344	orr r1,r0,r1, lsl #8
4345	mov r0,z80a, lsr #24
4346	writemem8
4347	fetch 13
4348;@INC SP
4349opcode_3_3:
4350	add z80sp,z80sp,#1
4351	fetch 6
4352;@INC (HL)
4353opcode_3_4:
4354	readmem8HL
4355	opINC8b
4356	writemem8HL
4357	fetch 11
4358;@DEC (HL)
4359opcode_3_5:
4360	readmem8HL
4361	opDEC8b
4362	writemem8HL
4363	fetch 11
4364;@LD (HL),N
4365opcode_3_6:
4366	ldrb r0,[z80pc],#1
4367	writemem8HL
4368	fetch 10
4369;@SCF
4370opcode_3_7:
4371	bic z80f,z80f,#(1<<NFlag)|(1<<HFlag)
4372	orr z80f,z80f,#1<<CFlag
4373	fetch 4
4374;@JR C,$+2
4375opcode_3_8:
4376	tst z80f,#1<<CFlag
4377	bne opcode_1_8
4378	add z80pc,z80pc,#1
4379	fetch 8
4380;@ADD HL,SP
4381opcode_3_9:
4382.if FAST_Z80SP
4383	ldr r0,[cpucontext,#z80sp_base]
4384	sub r0,z80sp,r0
4385	opADD16s z80hl r0 16
4386.else
4387	opADD16s z80hl z80sp 16
4388.endif
4389	fetch 11
4390;@LD A,(NN)
4391opcode_3_A:
4392	ldrb r0,[z80pc],#1
4393	ldrb r1,[z80pc],#1
4394	orr r0,r0,r1, lsl #8
4395	readmem8
4396	mov z80a,r0, lsl #24
4397	fetch 11
4398;@DEC SP
4399opcode_3_B:
4400	sub z80sp,z80sp,#1
4401	fetch 6
4402;@INC A
4403opcode_3_C:
4404	opINC8 z80a
4405	fetch 4
4406;@DEC A
4407opcode_3_D:
4408	opDEC8 z80a
4409	fetch 4
4410;@LD A,N
4411opcode_3_E:
4412	ldrb r0,[z80pc],#1
4413	mov z80a,r0, lsl #24
4414	fetch 7
4415;@CCF
4416opcode_3_F:
4417	bic z80f,z80f,#(1<<NFlag)|(1<<HFlag)
4418	tst z80f,#1<<CFlag
4419	orrne z80f,z80f,#1<<HFlag
4420	eor z80f,z80f,#1<<CFlag
4421	fetch 4
4422
4423;@LD B,C
4424opcode_4_1:
4425	and z80bc,z80bc,#0x00FF0000
4426	orr z80bc,z80bc,z80bc,lsl#8
4427	fetch 4
4428;@LD B,D
4429opcode_4_2:
4430	and z80bc,z80bc,#0x00FF0000
4431	and r0,z80de,#0xFF000000
4432	orr z80bc,z80bc,r0
4433	fetch 4
4434;@LD B,E
4435opcode_4_3:
4436	and z80bc,z80bc,#0x00FF0000
4437	orr z80bc,z80bc,z80de,lsl#8
4438	fetch 4
4439;@LD B,H
4440opcode_4_4:
4441	and z80bc,z80bc,#0x00FF0000
4442	and r0,z80hl,#0xFF000000
4443	orr z80bc,z80bc,r0
4444	fetch 4
4445;@LD B,L
4446opcode_4_5:
4447	and z80bc,z80bc,#0x00FF0000
4448	orr z80bc,z80bc,z80hl,lsl#8
4449	fetch 4
4450;@LD B,(HL)
4451opcode_4_6:
4452	readmem8HL
4453	and z80bc,z80bc,#0x00FF0000
4454	orr z80bc,z80bc,r0,lsl#24
4455	fetch 7
4456;@LD B,A
4457opcode_4_7:
4458	and z80bc,z80bc,#0x00FF0000
4459	orr z80bc,z80bc,z80a
4460	fetch 4
4461;@LD C,B
4462opcode_4_8:
4463	and z80bc,z80bc,#0xFF000000
4464	orr z80bc,z80bc,z80bc,lsr#8
4465	fetch 4
4466;@LD C,D
4467opcode_4_A:
4468	and z80bc,z80bc,#0xFF000000
4469	and r0,z80de,#0xFF000000
4470	orr z80bc,z80bc,r0,lsr#8
4471	fetch 4
4472;@LD C,E
4473opcode_4_B:
4474	and z80bc,z80bc,#0xFF000000
4475	and r0,z80de,#0x00FF0000
4476	orr z80bc,z80bc,r0
4477	fetch 4
4478;@LD C,H
4479opcode_4_C:
4480	and z80bc,z80bc,#0xFF000000
4481	and r0,z80hl,#0xFF000000
4482	orr z80bc,z80bc,r0,lsr#8
4483	fetch 4
4484;@LD C,L
4485opcode_4_D:
4486	and z80bc,z80bc,#0xFF000000
4487	and r0,z80hl,#0x00FF0000
4488	orr z80bc,z80bc,r0
4489	fetch 4
4490;@LD C,(HL)
4491opcode_4_E:
4492	readmem8HL
4493	and z80bc,z80bc,#0xFF000000
4494	orr z80bc,z80bc,r0,lsl#16
4495	fetch 7
4496;@LD C,A
4497opcode_4_F:
4498	and z80bc,z80bc,#0xFF000000
4499	orr z80bc,z80bc,z80a,lsr#8
4500	fetch 4
4501;@LD D,B
4502opcode_5_0:
4503	and z80de,z80de,#0x00FF0000
4504	and r0,z80bc,#0xFF000000
4505	orr z80de,z80de,r0
4506	fetch 4
4507;@LD D,C
4508opcode_5_1:
4509	and z80de,z80de,#0x00FF0000
4510	orr z80de,z80de,z80bc,lsl#8
4511	fetch 4
4512;@LD D,E
4513opcode_5_3:
4514	and z80de,z80de,#0x00FF0000
4515	orr z80de,z80de,z80de,lsl#8
4516	fetch 4
4517;@LD D,H
4518opcode_5_4:
4519	and z80de,z80de,#0x00FF0000
4520	and r0,z80hl,#0xFF000000
4521	orr z80de,z80de,r0
4522	fetch 4
4523;@LD D,L
4524opcode_5_5:
4525	and z80de,z80de,#0x00FF0000
4526	orr z80de,z80de,z80hl,lsl#8
4527	fetch 4
4528;@LD D,(HL)
4529opcode_5_6:
4530	readmem8HL
4531	and z80de,z80de,#0x00FF0000
4532	orr z80de,z80de,r0,lsl#24
4533	fetch 7
4534;@LD D,A
4535opcode_5_7:
4536	and z80de,z80de,#0x00FF0000
4537	orr z80de,z80de,z80a
4538	fetch 4
4539;@LD E,B
4540opcode_5_8:
4541	and z80de,z80de,#0xFF000000
4542	and r0,z80bc,#0xFF000000
4543	orr z80de,z80de,r0,lsr#8
4544	fetch 4
4545;@LD E,C
4546opcode_5_9:
4547	and z80de,z80de,#0xFF000000
4548	and r0,z80bc,#0x00FF0000
4549	orr z80de,z80de,r0
4550	fetch 4
4551;@LD E,D
4552opcode_5_A:
4553	and z80de,z80de,#0xFF000000
4554	orr z80de,z80de,z80de,lsr#8
4555	fetch 4
4556;@LD E,H
4557opcode_5_C:
4558	and z80de,z80de,#0xFF000000
4559	and r0,z80hl,#0xFF000000
4560	orr z80de,z80de,r0,lsr#8
4561	fetch 4
4562;@LD E,L
4563opcode_5_D:
4564	and z80de,z80de,#0xFF000000
4565	and r0,z80hl,#0x00FF0000
4566	orr z80de,z80de,r0
4567	fetch 4
4568;@LD E,(HL)
4569opcode_5_E:
4570	readmem8HL
4571	and z80de,z80de,#0xFF000000
4572	orr z80de,z80de,r0,lsl#16
4573	fetch 7
4574;@LD E,A
4575opcode_5_F:
4576	and z80de,z80de,#0xFF000000
4577	orr z80de,z80de,z80a,lsr#8
4578	fetch 4
4579
4580;@LD H,B
4581opcode_6_0:
4582	and z80hl,z80hl,#0x00FF0000
4583	and r0,z80bc,#0xFF000000
4584	orr z80hl,z80hl,r0
4585	fetch 4
4586;@LD H,C
4587opcode_6_1:
4588	and z80hl,z80hl,#0x00FF0000
4589	orr z80hl,z80hl,z80bc,lsl#8
4590	fetch 4
4591;@LD H,D
4592opcode_6_2:
4593	and z80hl,z80hl,#0x00FF0000
4594	and r0,z80de,#0xFF000000
4595	orr z80hl,z80hl,r0
4596	fetch 4
4597;@LD H,E
4598opcode_6_3:
4599	and z80hl,z80hl,#0x00FF0000
4600	orr z80hl,z80hl,z80de,lsl#8
4601	fetch 4
4602;@LD H,L
4603opcode_6_5:
4604	and z80hl,z80hl,#0x00FF0000
4605	orr z80hl,z80hl,z80hl,lsl#8
4606	fetch 4
4607;@LD H,(HL)
4608opcode_6_6:
4609	readmem8HL
4610	and z80hl,z80hl,#0x00FF0000
4611	orr z80hl,z80hl,r0,lsl#24
4612	fetch 7
4613;@LD H,A
4614opcode_6_7:
4615	and z80hl,z80hl,#0x00FF0000
4616	orr z80hl,z80hl,z80a
4617	fetch 4
4618
4619;@LD L,B
4620opcode_6_8:
4621	and z80hl,z80hl,#0xFF000000
4622	and r0,z80bc,#0xFF000000
4623	orr z80hl,z80hl,r0,lsr#8
4624	fetch 4
4625;@LD L,C
4626opcode_6_9:
4627	and z80hl,z80hl,#0xFF000000
4628	and r0,z80bc,#0x00FF0000
4629	orr z80hl,z80hl,r0
4630	fetch 4
4631;@LD L,D
4632opcode_6_A:
4633	and z80hl,z80hl,#0xFF000000
4634	and r0,z80de,#0xFF000000
4635	orr z80hl,z80hl,r0,lsr#8
4636	fetch 4
4637;@LD L,E
4638opcode_6_B:
4639	and z80hl,z80hl,#0xFF000000
4640	and r0,z80de,#0x00FF0000
4641	orr z80hl,z80hl,r0
4642	fetch 4
4643;@LD L,H
4644opcode_6_C:
4645	and z80hl,z80hl,#0xFF000000
4646	orr z80hl,z80hl,z80hl,lsr#8
4647	fetch 4
4648;@LD L,(HL)
4649opcode_6_E:
4650	readmem8HL
4651	and z80hl,z80hl,#0xFF000000
4652	orr z80hl,z80hl,r0,lsl#16
4653	fetch 7
4654;@LD L,A
4655opcode_6_F:
4656	and z80hl,z80hl,#0xFF000000
4657	orr z80hl,z80hl,z80a,lsr#8
4658	fetch 4
4659
4660;@LD (HL),B
4661opcode_7_0:
4662	mov r0,z80bc,lsr#24
4663	writemem8HL
4664	fetch 7
4665;@LD (HL),C
4666opcode_7_1:
4667	mov r0,z80bc,lsr#16
4668	and r0,r0,#0xFF
4669	writemem8HL
4670	fetch 7
4671;@LD (HL),D
4672opcode_7_2:
4673	mov r0,z80de,lsr#24
4674	writemem8HL
4675	fetch 7
4676;@LD (HL),E
4677opcode_7_3:
4678	mov r0,z80de,lsr#16
4679	and r0,r0,#0xFF
4680	writemem8HL
4681	fetch 7
4682;@LD (HL),H
4683opcode_7_4:
4684	mov r0,z80hl,lsr#24
4685	writemem8HL
4686	fetch 7
4687;@LD (HL),L
4688opcode_7_5:
4689	mov r1,z80hl,lsr#16
4690	and r0,r1,#0xFF
4691	writemem8
4692	fetch 7
4693;@HALT
4694opcode_7_6:
4695	sub z80pc,z80pc,#1
4696	ldrb r0,[cpucontext,#z80if]
4697	orr r0,r0,#Z80_HALT
4698	strb r0,[cpucontext,#z80if]
4699	and z80_icount,z80_icount,#3
4700	eatcycles 4
4701	b z80_execute_end
4702;@LD (HL),A
4703opcode_7_7:
4704	mov r0,z80a,lsr#24
4705	writemem8HL
4706	fetch 7
4707
4708;@LD A,B
4709opcode_7_8:
4710	and z80a,z80bc,#0xFF000000
4711	fetch 4
4712;@LD A,C
4713opcode_7_9:
4714	mov z80a,z80bc,lsl#8
4715	fetch 4
4716;@LD A,D
4717opcode_7_A:
4718	and z80a,z80de,#0xFF000000
4719	fetch 4
4720;@LD A,E
4721opcode_7_B:
4722	mov z80a,z80de,lsl#8
4723	fetch 4
4724;@LD A,H
4725opcode_7_C:
4726	and z80a,z80hl,#0xFF000000
4727	fetch 4
4728;@LD A,L
4729opcode_7_D:
4730	mov z80a,z80hl,lsl#8
4731	fetch 4
4732;@LD A,(HL)
4733opcode_7_E:
4734	readmem8HL
4735	mov z80a,r0,lsl#24
4736	fetch 7
4737
4738;@ADD A,B
4739opcode_8_0:
4740	opADDH z80bc
4741;@ADD A,C
4742opcode_8_1:
4743	opADDL z80bc
4744;@ADD A,D
4745opcode_8_2:
4746	opADDH z80de
4747;@ADD A,E
4748opcode_8_3:
4749	opADDL z80de
4750;@ADD A,H
4751opcode_8_4:
4752	opADDH z80hl
4753;@ADD A,L
4754opcode_8_5:
4755	opADDL z80hl
4756;@ADD A,(HL)
4757opcode_8_6:
4758	readmem8HL
4759	opADDb
4760	fetch 7
4761;@ADD A,A
4762opcode_8_7:
4763	opADDA
4764
4765;@ADC A,B
4766opcode_8_8:
4767	opADCH z80bc
4768;@ADC A,C
4769opcode_8_9:
4770	opADCL z80bc
4771;@ADC A,D
4772opcode_8_A:
4773	opADCH z80de
4774;@ADC A,E
4775opcode_8_B:
4776	opADCL z80de
4777;@ADC A,H
4778opcode_8_C:
4779	opADCH z80hl
4780;@ADC A,L
4781opcode_8_D:
4782	opADCL z80hl
4783;@ADC A,(HL)
4784opcode_8_E:
4785	readmem8HL
4786	opADCb
4787	fetch 7
4788;@ADC A,A
4789opcode_8_F:
4790	opADCA
4791
4792;@SUB B
4793opcode_9_0:
4794	opSUBH z80bc
4795;@SUB C
4796opcode_9_1:
4797	opSUBL z80bc
4798;@SUB D
4799opcode_9_2:
4800	opSUBH z80de
4801;@SUB E
4802opcode_9_3:
4803	opSUBL z80de
4804;@SUB H
4805opcode_9_4:
4806	opSUBH z80hl
4807;@SUB L
4808opcode_9_5:
4809	opSUBL z80hl
4810;@SUB (HL)
4811opcode_9_6:
4812	readmem8HL
4813	opSUBb
4814	fetch 7
4815;@SUB A
4816opcode_9_7:
4817	opSUBA
4818
4819;@SBC B
4820opcode_9_8:
4821	opSBCH z80bc
4822;@SBC C
4823opcode_9_9:
4824	opSBCL z80bc
4825;@SBC D
4826opcode_9_A:
4827	opSBCH z80de
4828;@SBC E
4829opcode_9_B:
4830	opSBCL z80de
4831;@SBC H
4832opcode_9_C:
4833	opSBCH z80hl
4834;@SBC L
4835opcode_9_D:
4836	opSBCL z80hl
4837;@SBC (HL)
4838opcode_9_E:
4839	readmem8HL
4840	opSBCb
4841	fetch 7
4842;@SBC A
4843opcode_9_F:
4844	opSBCA
4845
4846;@AND B
4847opcode_A_0:
4848	opANDH z80bc
4849;@AND C
4850opcode_A_1:
4851	opANDL z80bc
4852;@AND D
4853opcode_A_2:
4854	opANDH z80de
4855;@AND E
4856opcode_A_3:
4857	opANDL z80de
4858;@AND H
4859opcode_A_4:
4860	opANDH z80hl
4861;@AND L
4862opcode_A_5:
4863	opANDL z80hl
4864;@AND (HL)
4865opcode_A_6:
4866	readmem8HL
4867	opANDb
4868	fetch 7
4869;@AND A
4870opcode_A_7:
4871	opANDA
4872
4873;@XOR B
4874opcode_A_8:
4875	opXORH z80bc
4876;@XOR C
4877opcode_A_9:
4878	opXORL z80bc
4879;@XOR D
4880opcode_A_A:
4881	opXORH z80de
4882;@XOR E
4883opcode_A_B:
4884	opXORL z80de
4885;@XOR H
4886opcode_A_C:
4887	opXORH z80hl
4888;@XOR L
4889opcode_A_D:
4890	opXORL z80hl
4891;@XOR (HL)
4892opcode_A_E:
4893	readmem8HL
4894	opXORb
4895	fetch 7
4896;@XOR A
4897opcode_A_F:
4898	opXORA
4899
4900;@OR B
4901opcode_B_0:
4902	opORH z80bc
4903;@OR C
4904opcode_B_1:
4905	opORL z80bc
4906;@OR D
4907opcode_B_2:
4908	opORH z80de
4909;@OR E
4910opcode_B_3:
4911	opORL z80de
4912;@OR H
4913opcode_B_4:
4914	opORH z80hl
4915;@OR L
4916opcode_B_5:
4917	opORL z80hl
4918;@OR (HL)
4919opcode_B_6:
4920	readmem8HL
4921	opORb
4922	fetch 7
4923;@OR A
4924opcode_B_7:
4925	opORA
4926
4927;@CP B
4928opcode_B_8:
4929	opCPH z80bc
4930;@CP C
4931opcode_B_9:
4932	opCPL z80bc
4933;@CP D
4934opcode_B_A:
4935	opCPH z80de
4936;@CP E
4937opcode_B_B:
4938	opCPL z80de
4939;@CP H
4940opcode_B_C:
4941	opCPH z80hl
4942;@CP L
4943opcode_B_D:
4944	opCPL z80hl
4945;@CP (HL)
4946opcode_B_E:
4947	readmem8HL
4948	opCPb
4949	fetch 7
4950;@CP A
4951opcode_B_F:
4952	opCPA
4953
4954;@RET NZ
4955opcode_C_0:
4956	tst z80f,#1<<ZFlag
4957	beq opcode_C_9		;@unconditional RET
4958	fetch 5
4959
4960;@POP BC
4961opcode_C_1:
4962	opPOPreg z80bc
4963
4964;@JP NZ,$+3
4965opcode_C_2:
4966	tst z80f,#1<<ZFlag
4967	beq opcode_C_3		;@unconditional JP
4968	add z80pc,z80pc,#2
4969	fetch 10
4970;@JP $+3
4971opcode_C_3:
4972	ldrb r0,[z80pc],#1
4973	ldrb r1,[z80pc],#1
4974	orr r0,r0,r1, lsl #8
4975	rebasepc
4976	fetch 10
4977;@CALL NZ,NN
4978opcode_C_4:
4979	tst z80f,#1<<ZFlag
4980	beq opcode_C_D		;@unconditional CALL
4981	add z80pc,z80pc,#2
4982	fetch 10
4983
4984;@PUSH BC
4985opcode_C_5:
4986	opPUSHreg z80bc
4987	fetch 11
4988;@ADD A,N
4989opcode_C_6:
4990	ldrb r0,[z80pc],#1
4991	opADDb
4992	fetch 7
4993;@RST 0
4994opcode_C_7:
4995	opRST 0x00
4996
4997;@RET Z
4998opcode_C_8:
4999	tst z80f,#1<<ZFlag
5000	bne opcode_C_9		;@unconditional RET
5001	fetch 5
5002;@RET
5003opcode_C_9:
5004.if FAST_Z80SP
5005	ldrb r0,[z80sp],#1
5006	ldrb r1,[z80sp],#1
5007	orr r0,r0,r1, lsl #8
5008.else
5009	mov r0,z80sp
5010	readmem16
5011	add z80sp,z80sp,#2
5012.endif
5013	rebasepc
5014	fetch 10
5015;@JP Z,$+3
5016opcode_C_A:
5017	tst z80f,#1<<ZFlag
5018	bne opcode_C_3  ;@unconditional JP
5019	add z80pc,z80pc,#2
5020	fetch 10
5021
5022;@This reads this opcodes_CB lookup table to find the location of
5023;@the CB sub for the intruction and then branches to that location
5024opcode_C_B:
5025	ldrb r0,[z80pc],#1
5026	ldr pc,[pc,r0, lsl #2]
5027opcodes_CB:	.word 0x00000000
5028			.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
5029			.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
5030			.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
5031			.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
5032			.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
5033			.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
5034			.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
5035			.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
5036			.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
5037			.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
5038			.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
5039			.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
5040			.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
5041			.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
5042			.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
5043			.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
5044			.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
5045			.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
5046			.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
5047			.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
5048			.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
5049			.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
5050			.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
5051			.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
5052			.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
5053			.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
5054			.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
5055			.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
5056			.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
5057			.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
5058			.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
5059			.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
5060
5061;@CALL Z,NN
5062opcode_C_C:
5063	tst z80f,#1<<ZFlag
5064	bne opcode_C_D		;@unconditional CALL
5065	add z80pc,z80pc,#2
5066	fetch 10
5067;@CALL NN
5068opcode_C_D:
5069	ldrb r1,[z80pc],#1
5070	ldrb r2,[z80pc],#1
5071	ldr r0,[cpucontext,#z80pc_base]
5072	sub z80pc,z80pc,r0
5073.if FAST_Z80SP
5074	mov r0,z80pc, lsr #8
5075	strb r0,[z80sp,#-1]!
5076	strb z80pc,[z80sp,#-1]!
5077	orr r0,r1,r2, lsl #8
5078.else
5079	mov r0,z80pc
5080	orr z80pc,r1,r2, lsl #8
5081	sub z80sp,z80sp,#2
5082	mov r1,z80sp
5083	writemem16
5084	mov r0,z80pc
5085.endif
5086	rebasepc
5087	fetch 17
5088;@ADC A,N
5089opcode_C_E:
5090	ldrb r0,[z80pc],#1
5091	opADCb
5092	fetch 7
5093;@RST 8H
5094opcode_C_F:
5095	opRST 0x08
5096
5097;@RET NC
5098opcode_D_0:
5099	tst z80f,#1<<CFlag
5100	beq opcode_C_9		;@unconditional RET
5101	fetch 5
5102;@POP DE
5103opcode_D_1:
5104	opPOPreg z80de
5105
5106;@JP NC, $+3
5107opcode_D_2 :
5108	tst z80f,#1<<CFlag
5109	beq opcode_C_3		;@unconditional JP
5110	add z80pc,z80pc,#2
5111	fetch 10
5112;@OUT (N),A
5113opcode_D_3:
5114	ldrb r0,[z80pc],#1
5115	orr r0,r0,z80a,lsr#16
5116	mov r1,z80a, lsr #24
5117	opOUT
5118	fetch 11
5119;@CALL NC,NN
5120opcode_D_4:
5121	tst z80f,#1<<CFlag
5122	beq opcode_C_D		;@unconditional CALL
5123	add z80pc,z80pc,#2
5124	fetch 10
5125;@PUSH DE
5126opcode_D_5:
5127	opPUSHreg z80de
5128	fetch 11
5129;@SUB N
5130opcode_D_6:
5131	ldrb r0,[z80pc],#1
5132	opSUBb
5133	fetch 7
5134
5135;@RST 10H
5136opcode_D_7:
5137	opRST 0x10
5138
5139;@RET C
5140opcode_D_8:
5141	tst z80f,#1<<CFlag
5142	bne opcode_C_9		;@unconditional RET
5143	fetch 5
5144;@EXX
5145opcode_D_9:
5146	add r1,cpucontext,#z80bc2
5147        ldr r0,[r1]
5148        str z80bc,[r1]
5149        mov z80bc,r0
5150        add r1,cpucontext,#z80de2
5151	ldr r0,[r1]
5152        str z80de,[r1]
5153        mov z80de,r0
5154	add r1,cpucontext,#z80hl2
5155	ldr r0,[r1]
5156        str z80hl,[r1]
5157        mov z80hl,r0
5158	fetch 4
5159;@JP C,$+3
5160opcode_D_A:
5161	tst z80f,#1<<CFlag
5162	bne opcode_C_3		;@unconditional JP
5163	add z80pc,z80pc,#2
5164	fetch 10
5165;@IN A,(N)
5166opcode_D_B:
5167	ldrb r0,[z80pc],#1
5168	orr r0,r0,z80a,lsr#16
5169	opIN
5170	mov z80a,r0, lsl #24	;@ r0 = data read
5171	fetch 11
5172;@CALL C,NN
5173opcode_D_C:
5174	tst z80f,#1<<CFlag
5175	bne opcode_C_D		;@unconditional CALL
5176	add z80pc,z80pc,#2
5177	fetch 10
5178
5179;@opcodes_DD
5180opcode_D_D:
5181	add z80xx,cpucontext,#z80ix
5182	b opcode_D_D_F_D
5183opcode_F_D:
5184	add z80xx,cpucontext,#z80iy
5185opcode_D_D_F_D:
5186	ldrb r0,[z80pc],#1
5187	ldr pc,[pc,r0, lsl #2]
5188opcodes_DD:	.word 0x00000000
5189			.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
5190			.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
5191			.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
5192			.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
5193			.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
5194			.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
5195			.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
5196			.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
5197			.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
5198			.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
5199			.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
5200			.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
5201			.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
5202			.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
5203			.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
5204			.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
5205			.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
5206			.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
5207			.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
5208			.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
5209			.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
5210			.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
5211			.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
5212			.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
5213			.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
5214			.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
5215			.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
5216			.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
5217			.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
5218			.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
5219			.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
5220			.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
5221
5222;@SBC A,N
5223opcode_D_E:
5224	ldrb r0,[z80pc],#1
5225	opSBCb
5226	fetch 7
5227;@RST 18H
5228opcode_D_F:
5229	opRST 0x18
5230
5231;@RET PO
5232opcode_E_0:
5233	tst z80f,#1<<VFlag
5234	beq opcode_C_9		;@unconditional RET
5235	fetch 5
5236;@POP HL
5237opcode_E_1:
5238	opPOPreg z80hl
5239
5240;@JP PO,$+3
5241opcode_E_2:
5242	tst z80f,#1<<VFlag
5243	beq opcode_C_3		;@unconditional JP
5244	add z80pc,z80pc,#2
5245	fetch 10
5246;@EX (SP),HL
5247opcode_E_3:
5248.if FAST_Z80SP
5249	ldrb r0,[z80sp]
5250	ldrb r1,[z80sp,#1]
5251	orr r0,r0,r1, lsl #8
5252	mov r1,z80hl, lsr #24
5253	strb r1,[z80sp,#1]
5254	mov r1,z80hl, lsr #16
5255	strb r1,[z80sp]
5256	mov z80hl,r0, lsl #16
5257.else
5258	mov r0,z80sp
5259	readmem16
5260	mov r1,r0
5261	mov r0,z80hl,lsr#16
5262	mov z80hl,r1,lsl#16
5263	mov r1,z80sp
5264	writemem16
5265.endif
5266	fetch 19
5267;@CALL PO,NN
5268opcode_E_4:
5269	tst z80f,#1<<VFlag
5270	beq opcode_C_D		;@unconditional CALL
5271	add z80pc,z80pc,#2
5272	fetch 10
5273;@PUSH HL
5274opcode_E_5:
5275	opPUSHreg z80hl
5276	fetch 11
5277;@AND N
5278opcode_E_6:
5279	ldrb r0,[z80pc],#1
5280	opANDb
5281	fetch 7
5282;@RST 20H
5283opcode_E_7:
5284	opRST 0x20
5285
5286;@RET PE
5287opcode_E_8:
5288	tst z80f,#1<<VFlag
5289	bne opcode_C_9		;@unconditional RET
5290	fetch 5
5291;@JP (HL)
5292opcode_E_9:
5293	mov r0,z80hl, lsr #16
5294	rebasepc
5295	fetch 4
5296;@JP PE,$+3
5297opcode_E_A:
5298	tst z80f,#1<<VFlag
5299	bne opcode_C_3		;@unconditional JP
5300	add z80pc,z80pc,#2
5301	fetch 10
5302;@EX DE,HL
5303opcode_E_B:
5304	mov r1,z80de
5305	mov z80de,z80hl
5306	mov z80hl,r1
5307	fetch 4
5308;@CALL PE,NN
5309opcode_E_C:
5310	tst z80f,#1<<VFlag
5311	bne opcode_C_D		;@unconditional CALL
5312	add z80pc,z80pc,#2
5313	fetch 10
5314
5315;@This should be caught at start
5316opcode_E_D:
5317	ldrb r1,[z80pc],#1
5318	ldr pc,[pc,r1, lsl #2]
5319opcodes_ED:	.word 0x00000000
5320			.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
5321			.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
5322			.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
5323			.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
5324			.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
5325			.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
5326			.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
5327			.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
5328			.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
5329			.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
5330			.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
5331			.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
5332			.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
5333			.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
5334			.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
5335			.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
5336			.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
5337			.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
5338			.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
5339			.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
5340			.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
5341			.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
5342			.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
5343			.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
5344			.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
5345			.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
5346			.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
5347			.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
5348			.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
5349			.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
5350			.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
5351			.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
5352
5353;@XOR N
5354opcode_E_E:
5355	ldrb r0,[z80pc],#1
5356	opXORb
5357	fetch 7
5358;@RST 28H
5359opcode_E_F:
5360	opRST 0x28
5361
5362;@RET P
5363opcode_F_0:
5364	tst z80f,#1<<SFlag
5365	beq opcode_C_9		;@unconditional RET
5366	fetch 5
5367;@POP AF
5368opcode_F_1:
5369.if FAST_Z80SP
5370	ldrb z80f,[z80sp],#1
5371	sub r0,opcodes,#0x200
5372	ldrb z80f,[r0,z80f]
5373	ldrb z80a,[z80sp],#1
5374	mov z80a,z80a, lsl #24
5375.else
5376	mov r0,z80sp
5377	readmem16
5378	add z80sp,z80sp,#2
5379	and z80a,r0,#0xFF00
5380	mov z80a,z80a,lsl#16
5381	and z80f,r0,#0xFF
5382	sub r0,opcodes,#0x200
5383	ldrb z80f,[r0,z80f]
5384.endif
5385	fetch 10
5386;@JP P,$+3
5387opcode_F_2:
5388	tst z80f,#1<<SFlag
5389	beq opcode_C_3		;@unconditional JP
5390	add z80pc,z80pc,#2
5391	fetch 10
5392;@DI
5393opcode_F_3:
5394	ldrb r1,[cpucontext,#z80if]
5395	bic r1,r1,#(Z80_IF1)|(Z80_IF2)
5396	strb r1,[cpucontext,#z80if]
5397	fetch 4
5398;@CALL P,NN
5399opcode_F_4:
5400	tst z80f,#1<<SFlag
5401	beq opcode_C_D		;@unconditional CALL
5402	add z80pc,z80pc,#2
5403	fetch 10
5404;@PUSH AF
5405opcode_F_5:
5406.if FAST_Z80SP
5407	mov r1,z80a, lsr #24
5408	strb r1,[z80sp,#-1]!
5409	sub r0,opcodes,#0x300
5410	ldrb r1,[r0,z80f]
5411	strb r1,[z80sp,#-1]!
5412.else
5413	sub r0,opcodes,#0x300
5414	ldrb r0,[r0,z80f]
5415	orr r0,r0,z80a,lsr#16
5416	sub z80sp,z80sp,#2
5417	mov r1,z80sp
5418	writemem16
5419.endif
5420	fetch 11
5421;@OR N
5422opcode_F_6:
5423	ldrb r0,[z80pc],#1
5424	opORb
5425	fetch 7
5426;@RST 30H
5427opcode_F_7:
5428	opRST 0x30
5429
5430;@RET M
5431opcode_F_8:
5432	tst z80f,#1<<SFlag
5433	bne opcode_C_9		;@unconditional RET
5434	fetch 5
5435;@LD SP,HL
5436opcode_F_9:
5437.if FAST_Z80SP
5438	mov r0,z80hl, lsr #16
5439	rebasesp
5440	;@mov z80sp,r0
5441.else
5442	mov z80sp,z80hl, lsr #16
5443.endif
5444	fetch 4
5445;@JP M,$+3
5446opcode_F_A:
5447	tst z80f,#1<<SFlag
5448	bne opcode_C_3		;@unconditional JP
5449	add z80pc,z80pc,#2
5450	fetch 10
5451MAIN_opcodes_POINTER: .word MAIN_opcodes
5452EI_DUMMY_opcodes_POINTER: .word EI_DUMMY_opcodes
5453;@EI
5454opcode_F_B:
5455	ldrb r1,[cpucontext,#z80if]
5456	tst r1,#Z80_IF1
5457	bne ei_return_exit
5458
5459	orr r1,r1,#(Z80_IF1)|(Z80_IF2)
5460	strb r1,[cpucontext,#z80if]
5461
5462	mov r2,opcodes
5463	ldr opcodes,EI_DUMMY_opcodes_POINTER
5464	ldr pc,[r2,r0, lsl #2]
5465
5466ei_return:
5467	;@point that program returns from EI to check interupts
5468	;@an interupt can not be taken directly after a EI opcode
5469	;@ reset z80pc and opcode pointer
5470	sub z80pc,z80pc,#1
5471	ldr opcodes,MAIN_opcodes_POINTER
5472	;@ check ints
5473	bl DoInterrupt
5474	;@ continue
5475ei_return_exit:
5476	fetch 4
5477
5478;@CALL M,NN
5479opcode_F_C:
5480	tst z80f,#1<<SFlag
5481	bne opcode_C_D		;@unconditional CALL
5482	add z80pc,z80pc,#2
5483	fetch 10
5484
5485;@SHOULD BE CAUGHT AT START - FD SECTION
5486
5487;@CP N
5488opcode_F_E:
5489	ldrb r0,[z80pc],#1
5490	opCPb
5491	fetch 7
5492;@RST 38H
5493opcode_F_F:
5494	opRST 0x38
5495
5496
5497;@##################################
5498;@##################################
5499;@###  opcodes CB  #########################
5500;@##################################
5501;@##################################
5502
5503
5504;@RLC B
5505opcode_CB_00:
5506	opRLCH z80bc
5507;@RLC C
5508opcode_CB_01:
5509	opRLCL z80bc
5510;@RLC D
5511opcode_CB_02:
5512	opRLCH z80de
5513;@RLC E
5514opcode_CB_03:
5515	opRLCL z80de
5516;@RLC H
5517opcode_CB_04:
5518	opRLCH z80hl
5519;@RLC L
5520opcode_CB_05:
5521	opRLCL z80hl
5522;@RLC (HL)
5523opcode_CB_06:
5524	readmem8HL
5525	opRLCb
5526	writemem8HL
5527	fetch 15
5528;@RLC A
5529opcode_CB_07:
5530	opRLCA
5531
5532;@RRC B
5533opcode_CB_08:
5534	opRRCH z80bc
5535;@RRC C
5536opcode_CB_09:
5537	opRRCL z80bc
5538;@RRC D
5539opcode_CB_0A:
5540	opRRCH z80de
5541;@RRC E
5542opcode_CB_0B:
5543	opRRCL z80de
5544;@RRC H
5545opcode_CB_0C:
5546	opRRCH z80hl
5547;@RRC L
5548opcode_CB_0D:
5549	opRRCL z80hl
5550;@RRC (HL)
5551opcode_CB_0E :
5552	readmem8HL
5553	opRRCb
5554	writemem8HL
5555	fetch 15
5556;@RRC A
5557opcode_CB_0F:
5558	opRRCA
5559
5560;@RL B
5561opcode_CB_10:
5562	opRLH z80bc
5563;@RL C
5564opcode_CB_11:
5565	opRLL z80bc
5566;@RL D
5567opcode_CB_12:
5568	opRLH z80de
5569;@RL E
5570opcode_CB_13:
5571	opRLL z80de
5572;@RL H
5573opcode_CB_14:
5574	opRLH z80hl
5575;@RL L
5576opcode_CB_15:
5577	opRLL z80hl
5578;@RL (HL)
5579opcode_CB_16:
5580	readmem8HL
5581	opRLb
5582	writemem8HL
5583	fetch 15
5584;@RL A
5585opcode_CB_17:
5586	opRLA
5587
5588;@RR B
5589opcode_CB_18:
5590	opRRH z80bc
5591;@RR C
5592opcode_CB_19:
5593	opRRL z80bc
5594;@RR D
5595opcode_CB_1A:
5596	opRRH z80de
5597;@RR E
5598opcode_CB_1B:
5599	opRRL z80de
5600;@RR H
5601opcode_CB_1C:
5602	opRRH z80hl
5603;@RR L
5604opcode_CB_1D:
5605	opRRL z80hl
5606;@RR (HL)
5607opcode_CB_1E:
5608	readmem8HL
5609	opRRb
5610	writemem8HL
5611	fetch 15
5612;@RR A
5613opcode_CB_1F:
5614	opRRA
5615
5616;@SLA B
5617opcode_CB_20:
5618	opSLAH z80bc
5619;@SLA C
5620opcode_CB_21:
5621	opSLAL z80bc
5622;@SLA D
5623opcode_CB_22:
5624	opSLAH z80de
5625;@SLA E
5626opcode_CB_23:
5627	opSLAL z80de
5628;@SLA H
5629opcode_CB_24:
5630	opSLAH z80hl
5631;@SLA L
5632opcode_CB_25:
5633	opSLAL z80hl
5634;@SLA (HL)
5635opcode_CB_26:
5636	readmem8HL
5637	opSLAb
5638	writemem8HL
5639	fetch 15
5640;@SLA A
5641opcode_CB_27:
5642	opSLAA
5643
5644;@SRA B
5645opcode_CB_28:
5646	opSRAH z80bc
5647;@SRA C
5648opcode_CB_29:
5649	opSRAL z80bc
5650;@SRA D
5651opcode_CB_2A:
5652	opSRAH z80de
5653;@SRA E
5654opcode_CB_2B:
5655	opSRAL z80de
5656;@SRA H
5657opcode_CB_2C:
5658	opSRAH z80hl
5659;@SRA L
5660opcode_CB_2D:
5661	opSRAL z80hl
5662;@SRA (HL)
5663opcode_CB_2E:
5664	readmem8HL
5665	opSRAb
5666	writemem8HL
5667	fetch 15
5668;@SRA A
5669opcode_CB_2F:
5670	opSRAA
5671
5672;@SLL B
5673opcode_CB_30:
5674	opSLLH z80bc
5675;@SLL C
5676opcode_CB_31:
5677	opSLLL z80bc
5678;@SLL D
5679opcode_CB_32:
5680	opSLLH z80de
5681;@SLL E
5682opcode_CB_33:
5683	opSLLL z80de
5684;@SLL H
5685opcode_CB_34:
5686	opSLLH z80hl
5687;@SLL L
5688opcode_CB_35:
5689	opSLLL z80hl
5690;@SLL (HL)
5691opcode_CB_36:
5692	readmem8HL
5693	opSLLb
5694	writemem8HL
5695	fetch 15
5696;@SLL A
5697opcode_CB_37:
5698	opSLLA
5699
5700;@SRL B
5701opcode_CB_38:
5702	opSRLH z80bc
5703;@SRL C
5704opcode_CB_39:
5705	opSRLL z80bc
5706;@SRL D
5707opcode_CB_3A:
5708	opSRLH z80de
5709;@SRL E
5710opcode_CB_3B:
5711	opSRLL z80de
5712;@SRL H
5713opcode_CB_3C:
5714	opSRLH z80hl
5715;@SRL L
5716opcode_CB_3D:
5717	opSRLL z80hl
5718;@SRL (HL)
5719opcode_CB_3E:
5720	readmem8HL
5721	opSRLb
5722	writemem8HL
5723	fetch 15
5724;@SRL A
5725opcode_CB_3F:
5726	opSRLA
5727
5728
5729;@BIT 0,B
5730opcode_CB_40:
5731	opBITH z80bc 0
5732;@BIT 0,C
5733opcode_CB_41:
5734	opBITL z80bc 0
5735;@BIT 0,D
5736opcode_CB_42:
5737	opBITH z80de 0
5738;@BIT 0,E
5739opcode_CB_43:
5740	opBITL z80de 0
5741;@BIT 0,H
5742opcode_CB_44:
5743	opBITH z80hl 0
5744;@BIT 0,L
5745opcode_CB_45:
5746	opBITL z80hl 0
5747;@BIT 0,(HL)
5748opcode_CB_46:
5749	readmem8HL
5750	opBITb 0
5751	fetch 12
5752;@BIT 0,A
5753opcode_CB_47:
5754	opBITH z80a 0
5755
5756;@BIT 1,B
5757opcode_CB_48:
5758	opBITH z80bc 1
5759;@BIT 1,C
5760opcode_CB_49:
5761	opBITL z80bc 1
5762;@BIT 1,D
5763opcode_CB_4A:
5764	opBITH z80de 1
5765;@BIT 1,E
5766opcode_CB_4B:
5767	opBITL z80de 1
5768;@BIT 1,H
5769opcode_CB_4C:
5770	opBITH z80hl 1
5771;@BIT 1,L
5772opcode_CB_4D:
5773	opBITL z80hl 1
5774;@BIT 1,(HL)
5775opcode_CB_4E:
5776	readmem8HL
5777	opBITb 1
5778	fetch 12
5779;@BIT 1,A
5780opcode_CB_4F:
5781	opBITH z80a 1
5782
5783;@BIT 2,B
5784opcode_CB_50:
5785	opBITH z80bc 2
5786;@BIT 2,C
5787opcode_CB_51:
5788	opBITL z80bc 2
5789;@BIT 2,D
5790opcode_CB_52:
5791	opBITH z80de 2
5792;@BIT 2,E
5793opcode_CB_53:
5794	opBITL z80de 2
5795;@BIT 2,H
5796opcode_CB_54:
5797	opBITH z80hl 2
5798;@BIT 2,L
5799opcode_CB_55:
5800	opBITL z80hl 2
5801;@BIT 2,(HL)
5802opcode_CB_56:
5803	readmem8HL
5804	opBITb 2
5805	fetch 12
5806;@BIT 2,A
5807opcode_CB_57:
5808	opBITH z80a 2
5809
5810;@BIT 3,B
5811opcode_CB_58:
5812	opBITH z80bc 3
5813;@BIT 3,C
5814opcode_CB_59:
5815	opBITL z80bc 3
5816;@BIT 3,D
5817opcode_CB_5A:
5818	opBITH z80de 3
5819;@BIT 3,E
5820opcode_CB_5B:
5821	opBITL z80de 3
5822;@BIT 3,H
5823opcode_CB_5C:
5824	opBITH z80hl 3
5825;@BIT 3,L
5826opcode_CB_5D:
5827	opBITL z80hl 3
5828;@BIT 3,(HL)
5829opcode_CB_5E:
5830	readmem8HL
5831	opBITb 3
5832	fetch 12
5833;@BIT 3,A
5834opcode_CB_5F:
5835	opBITH z80a 3
5836
5837;@BIT 4,B
5838opcode_CB_60:
5839	opBITH z80bc 4
5840;@BIT 4,C
5841opcode_CB_61:
5842	opBITL z80bc 4
5843;@BIT 4,D
5844opcode_CB_62:
5845	opBITH z80de 4
5846;@BIT 4,E
5847opcode_CB_63:
5848	opBITL z80de 4
5849;@BIT 4,H
5850opcode_CB_64:
5851	opBITH z80hl 4
5852;@BIT 4,L
5853opcode_CB_65:
5854	opBITL z80hl 4
5855;@BIT 4,(HL)
5856opcode_CB_66:
5857	readmem8HL
5858	opBITb 4
5859	fetch 12
5860;@BIT 4,A
5861opcode_CB_67:
5862	opBITH z80a 4
5863
5864;@BIT 5,B
5865opcode_CB_68:
5866	opBITH z80bc 5
5867;@BIT 5,C
5868opcode_CB_69:
5869	opBITL z80bc 5
5870;@BIT 5,D
5871opcode_CB_6A:
5872	opBITH z80de 5
5873;@BIT 5,E
5874opcode_CB_6B:
5875	opBITL z80de 5
5876;@BIT 5,H
5877opcode_CB_6C:
5878	opBITH z80hl 5
5879;@BIT 5,L
5880opcode_CB_6D:
5881	opBITL z80hl 5
5882;@BIT 5,(HL)
5883opcode_CB_6E:
5884	readmem8HL
5885	opBITb 5
5886	fetch 12
5887;@BIT 5,A
5888opcode_CB_6F:
5889	opBITH z80a 5
5890
5891;@BIT 6,B
5892opcode_CB_70:
5893	opBITH z80bc 6
5894;@BIT 6,C
5895opcode_CB_71:
5896	opBITL z80bc 6
5897;@BIT 6,D
5898opcode_CB_72:
5899	opBITH z80de 6
5900;@BIT 6,E
5901opcode_CB_73:
5902	opBITL z80de 6
5903;@BIT 6,H
5904opcode_CB_74:
5905	opBITH z80hl 6
5906;@BIT 6,L
5907opcode_CB_75:
5908	opBITL z80hl 6
5909;@BIT 6,(HL)
5910opcode_CB_76:
5911	readmem8HL
5912	opBITb 6
5913	fetch 12
5914;@BIT 6,A
5915opcode_CB_77:
5916	opBITH z80a 6
5917
5918;@BIT 7,B
5919opcode_CB_78:
5920	opBIT7H z80bc
5921;@BIT 7,C
5922opcode_CB_79:
5923	opBIT7L z80bc
5924;@BIT 7,D
5925opcode_CB_7A:
5926	opBIT7H z80de
5927;@BIT 7,E
5928opcode_CB_7B:
5929	opBIT7L z80de
5930;@BIT 7,H
5931opcode_CB_7C:
5932	opBIT7H z80hl
5933;@BIT 7,L
5934opcode_CB_7D:
5935	opBIT7L z80hl
5936;@BIT 7,(HL)
5937opcode_CB_7E:
5938	readmem8HL
5939	opBIT7b
5940	fetch 12
5941;@BIT 7,A
5942opcode_CB_7F:
5943	opBIT7H z80a
5944
5945;@RES 0,B
5946opcode_CB_80:
5947	bic z80bc,z80bc,#1<<24
5948	fetch 8
5949;@RES 0,C
5950opcode_CB_81:
5951	bic z80bc,z80bc,#1<<16
5952	fetch 8
5953;@RES 0,D
5954opcode_CB_82:
5955	bic z80de,z80de,#1<<24
5956	fetch 8
5957;@RES 0,E
5958opcode_CB_83:
5959	bic z80de,z80de,#1<<16
5960	fetch 8
5961;@RES 0,H
5962opcode_CB_84:
5963	bic z80hl,z80hl,#1<<24
5964	fetch 8
5965;@RES 0,L
5966opcode_CB_85:
5967	bic z80hl,z80hl,#1<<16
5968	fetch 8
5969;@RES 0,(HL)
5970opcode_CB_86:
5971	opRESmemHL 0
5972;@RES 0,A
5973opcode_CB_87:
5974	bic z80a,z80a,#1<<24
5975	fetch 8
5976
5977;@RES 1,B
5978opcode_CB_88:
5979	bic z80bc,z80bc,#1<<25
5980	fetch 8
5981;@RES 1,C
5982opcode_CB_89:
5983	bic z80bc,z80bc,#1<<17
5984	fetch 8
5985;@RES 1,D
5986opcode_CB_8A:
5987	bic z80de,z80de,#1<<25
5988	fetch 8
5989;@RES 1,E
5990opcode_CB_8B:
5991	bic z80de,z80de,#1<<17
5992	fetch 8
5993;@RES 1,H
5994opcode_CB_8C:
5995	bic z80hl,z80hl,#1<<25
5996	fetch 8
5997;@RES 1,L
5998opcode_CB_8D:
5999	bic z80hl,z80hl,#1<<17
6000	fetch 8
6001;@RES 1,(HL)
6002opcode_CB_8E:
6003	opRESmemHL 1
6004;@RES 1,A
6005opcode_CB_8F:
6006	bic z80a,z80a,#1<<25
6007	fetch 8
6008
6009;@RES 2,B
6010opcode_CB_90:
6011	bic z80bc,z80bc,#1<<26
6012	fetch 8
6013;@RES 2,C
6014opcode_CB_91:
6015	bic z80bc,z80bc,#1<<18
6016	fetch 8
6017;@RES 2,D
6018opcode_CB_92:
6019	bic z80de,z80de,#1<<26
6020	fetch 8
6021;@RES 2,E
6022opcode_CB_93:
6023	bic z80de,z80de,#1<<18
6024	fetch 8
6025;@RES 2,H
6026opcode_CB_94:
6027	bic z80hl,z80hl,#1<<26
6028	fetch 8
6029;@RES 2,L
6030opcode_CB_95:
6031	bic z80hl,z80hl,#1<<18
6032	fetch 8
6033;@RES 2,(HL)
6034opcode_CB_96:
6035	opRESmemHL 2
6036;@RES 2,A
6037opcode_CB_97:
6038	bic z80a,z80a,#1<<26
6039	fetch 8
6040
6041;@RES 3,B
6042opcode_CB_98:
6043	bic z80bc,z80bc,#1<<27
6044	fetch 8
6045;@RES 3,C
6046opcode_CB_99:
6047	bic z80bc,z80bc,#1<<19
6048	fetch 8
6049;@RES 3,D
6050opcode_CB_9A:
6051	bic z80de,z80de,#1<<27
6052	fetch 8
6053;@RES 3,E
6054opcode_CB_9B:
6055	bic z80de,z80de,#1<<19
6056	fetch 8
6057;@RES 3,H
6058opcode_CB_9C:
6059	bic z80hl,z80hl,#1<<27
6060	fetch 8
6061;@RES 3,L
6062opcode_CB_9D:
6063	bic z80hl,z80hl,#1<<19
6064	fetch 8
6065;@RES 3,(HL)
6066opcode_CB_9E:
6067	opRESmemHL 3
6068;@RES 3,A
6069opcode_CB_9F:
6070	bic z80a,z80a,#1<<27
6071	fetch 8
6072
6073;@RES 4,B
6074opcode_CB_A0:
6075	bic z80bc,z80bc,#1<<28
6076	fetch 8
6077;@RES 4,C
6078opcode_CB_A1:
6079	bic z80bc,z80bc,#1<<20
6080	fetch 8
6081;@RES 4,D
6082opcode_CB_A2:
6083	bic z80de,z80de,#1<<28
6084	fetch 8
6085;@RES 4,E
6086opcode_CB_A3:
6087	bic z80de,z80de,#1<<20
6088	fetch 8
6089;@RES 4,H
6090opcode_CB_A4:
6091	bic z80hl,z80hl,#1<<28
6092	fetch 8
6093;@RES 4,L
6094opcode_CB_A5:
6095	bic z80hl,z80hl,#1<<20
6096	fetch 8
6097;@RES 4,(HL)
6098opcode_CB_A6:
6099	opRESmemHL 4
6100;@RES 4,A
6101opcode_CB_A7:
6102	bic z80a,z80a,#1<<28
6103	fetch 8
6104
6105;@RES 5,B
6106opcode_CB_A8:
6107	bic z80bc,z80bc,#1<<29
6108	fetch 8
6109;@RES 5,C
6110opcode_CB_A9:
6111	bic z80bc,z80bc,#1<<21
6112	fetch 8
6113;@RES 5,D
6114opcode_CB_AA:
6115	bic z80de,z80de,#1<<29
6116	fetch 8
6117;@RES 5,E
6118opcode_CB_AB:
6119	bic z80de,z80de,#1<<21
6120	fetch 8
6121;@RES 5,H
6122opcode_CB_AC:
6123	bic z80hl,z80hl,#1<<29
6124	fetch 8
6125;@RES 5,L
6126opcode_CB_AD:
6127	bic z80hl,z80hl,#1<<21
6128	fetch 8
6129;@RES 5,(HL)
6130opcode_CB_AE:
6131	opRESmemHL 5
6132;@RES 5,A
6133opcode_CB_AF:
6134	bic z80a,z80a,#1<<29
6135	fetch 8
6136
6137;@RES 6,B
6138opcode_CB_B0:
6139	bic z80bc,z80bc,#1<<30
6140	fetch 8
6141;@RES 6,C
6142opcode_CB_B1:
6143	bic z80bc,z80bc,#1<<22
6144	fetch 8
6145;@RES 6,D
6146opcode_CB_B2:
6147	bic z80de,z80de,#1<<30
6148	fetch 8
6149;@RES 6,E
6150opcode_CB_B3:
6151	bic z80de,z80de,#1<<22
6152	fetch 8
6153;@RES 6,H
6154opcode_CB_B4:
6155	bic z80hl,z80hl,#1<<30
6156	fetch 8
6157;@RES 6,L
6158opcode_CB_B5:
6159	bic z80hl,z80hl,#1<<22
6160	fetch 8
6161;@RES 6,(HL)
6162opcode_CB_B6:
6163	opRESmemHL 6
6164;@RES 6,A
6165opcode_CB_B7:
6166	bic z80a,z80a,#1<<30
6167	fetch 8
6168
6169;@RES 7,B
6170opcode_CB_B8:
6171	bic z80bc,z80bc,#1<<31
6172	fetch 8
6173;@RES 7,C
6174opcode_CB_B9:
6175	bic z80bc,z80bc,#1<<23
6176	fetch 8
6177;@RES 7,D
6178opcode_CB_BA:
6179	bic z80de,z80de,#1<<31
6180	fetch 8
6181;@RES 7,E
6182opcode_CB_BB:
6183	bic z80de,z80de,#1<<23
6184	fetch 8
6185;@RES 7,H
6186opcode_CB_BC:
6187	bic z80hl,z80hl,#1<<31
6188	fetch 8
6189;@RES 7,L
6190opcode_CB_BD:
6191	bic z80hl,z80hl,#1<<23
6192	fetch 8
6193;@RES 7,(HL)
6194opcode_CB_BE:
6195	opRESmemHL 7
6196;@RES 7,A
6197opcode_CB_BF:
6198	bic z80a,z80a,#1<<31
6199	fetch 8
6200
6201;@SET 0,B
6202opcode_CB_C0:
6203	orr z80bc,z80bc,#1<<24
6204	fetch 8
6205;@SET 0,C
6206opcode_CB_C1:
6207	orr z80bc,z80bc,#1<<16
6208	fetch 8
6209;@SET 0,D
6210opcode_CB_C2:
6211	orr z80de,z80de,#1<<24
6212	fetch 8
6213;@SET 0,E
6214opcode_CB_C3:
6215	orr z80de,z80de,#1<<16
6216	fetch 8
6217;@SET 0,H
6218opcode_CB_C4:
6219	orr z80hl,z80hl,#1<<24
6220	fetch 8
6221;@SET 0,L
6222opcode_CB_C5:
6223	orr z80hl,z80hl,#1<<16
6224	fetch 8
6225;@SET 0,(HL)
6226opcode_CB_C6:
6227	opSETmemHL 0
6228;@SET 0,A
6229opcode_CB_C7:
6230	orr z80a,z80a,#1<<24
6231	fetch 8
6232
6233;@SET 1,B
6234opcode_CB_C8:
6235	orr z80bc,z80bc,#1<<25
6236	fetch 8
6237;@SET 1,C
6238opcode_CB_C9:
6239	orr z80bc,z80bc,#1<<17
6240	fetch 8
6241;@SET 1,D
6242opcode_CB_CA:
6243	orr z80de,z80de,#1<<25
6244	fetch 8
6245;@SET 1,E
6246opcode_CB_CB:
6247	orr z80de,z80de,#1<<17
6248	fetch 8
6249;@SET 1,H
6250opcode_CB_CC:
6251	orr z80hl,z80hl,#1<<25
6252	fetch 8
6253;@SET 1,L
6254opcode_CB_CD:
6255	orr z80hl,z80hl,#1<<17
6256	fetch 8
6257;@SET 1,(HL)
6258opcode_CB_CE:
6259	opSETmemHL 1
6260;@SET 1,A
6261opcode_CB_CF:
6262	orr z80a,z80a,#1<<25
6263	fetch 8
6264
6265;@SET 2,B
6266opcode_CB_D0:
6267	orr z80bc,z80bc,#1<<26
6268	fetch 8
6269;@SET 2,C
6270opcode_CB_D1:
6271	orr z80bc,z80bc,#1<<18
6272	fetch 8
6273;@SET 2,D
6274opcode_CB_D2:
6275	orr z80de,z80de,#1<<26
6276	fetch 8
6277;@SET 2,E
6278opcode_CB_D3:
6279	orr z80de,z80de,#1<<18
6280	fetch 8
6281;@SET 2,H
6282opcode_CB_D4:
6283	orr z80hl,z80hl,#1<<26
6284	fetch 8
6285;@SET 2,L
6286opcode_CB_D5:
6287	orr z80hl,z80hl,#1<<18
6288	fetch 8
6289;@SET 2,(HL)
6290opcode_CB_D6:
6291	opSETmemHL 2
6292;@SET 2,A
6293opcode_CB_D7:
6294	orr z80a,z80a,#1<<26
6295	fetch 8
6296
6297;@SET 3,B
6298opcode_CB_D8:
6299	orr z80bc,z80bc,#1<<27
6300	fetch 8
6301;@SET 3,C
6302opcode_CB_D9:
6303	orr z80bc,z80bc,#1<<19
6304	fetch 8
6305;@SET 3,D
6306opcode_CB_DA:
6307	orr z80de,z80de,#1<<27
6308	fetch 8
6309;@SET 3,E
6310opcode_CB_DB:
6311	orr z80de,z80de,#1<<19
6312	fetch 8
6313;@SET 3,H
6314opcode_CB_DC:
6315	orr z80hl,z80hl,#1<<27
6316	fetch 8
6317;@SET 3,L
6318opcode_CB_DD:
6319	orr z80hl,z80hl,#1<<19
6320	fetch 8
6321;@SET 3,(HL)
6322opcode_CB_DE:
6323	opSETmemHL 3
6324;@SET 3,A
6325opcode_CB_DF:
6326	orr z80a,z80a,#1<<27
6327	fetch 8
6328
6329;@SET 4,B
6330opcode_CB_E0:
6331	orr z80bc,z80bc,#1<<28
6332	fetch 8
6333;@SET 4,C
6334opcode_CB_E1:
6335	orr z80bc,z80bc,#1<<20
6336	fetch 8
6337;@SET 4,D
6338opcode_CB_E2:
6339	orr z80de,z80de,#1<<28
6340	fetch 8
6341;@SET 4,E
6342opcode_CB_E3:
6343	orr z80de,z80de,#1<<20
6344	fetch 8
6345;@SET 4,H
6346opcode_CB_E4:
6347	orr z80hl,z80hl,#1<<28
6348	fetch 8
6349;@SET 4,L
6350opcode_CB_E5:
6351	orr z80hl,z80hl,#1<<20
6352	fetch 8
6353;@SET 4,(HL)
6354opcode_CB_E6:
6355	opSETmemHL 4
6356;@SET 4,A
6357opcode_CB_E7:
6358	orr z80a,z80a,#1<<28
6359	fetch 8
6360
6361;@SET 5,B
6362opcode_CB_E8:
6363	orr z80bc,z80bc,#1<<29
6364	fetch 8
6365;@SET 5,C
6366opcode_CB_E9:
6367	orr z80bc,z80bc,#1<<21
6368	fetch 8
6369;@SET 5,D
6370opcode_CB_EA:
6371	orr z80de,z80de,#1<<29
6372	fetch 8
6373;@SET 5,E
6374opcode_CB_EB:
6375	orr z80de,z80de,#1<<21
6376	fetch 8
6377;@SET 5,H
6378opcode_CB_EC:
6379	orr z80hl,z80hl,#1<<29
6380	fetch 8
6381;@SET 5,L
6382opcode_CB_ED:
6383	orr z80hl,z80hl,#1<<21
6384	fetch 8
6385;@SET 5,(HL)
6386opcode_CB_EE:
6387	opSETmemHL 5
6388;@SET 5,A
6389opcode_CB_EF:
6390	orr z80a,z80a,#1<<29
6391	fetch 8
6392
6393;@SET 6,B
6394opcode_CB_F0:
6395	orr z80bc,z80bc,#1<<30
6396	fetch 8
6397;@SET 6,C
6398opcode_CB_F1:
6399	orr z80bc,z80bc,#1<<22
6400	fetch 8
6401;@SET 6,D
6402opcode_CB_F2:
6403	orr z80de,z80de,#1<<30
6404	fetch 8
6405;@SET 6,E
6406opcode_CB_F3:
6407	orr z80de,z80de,#1<<22
6408	fetch 8
6409;@SET 6,H
6410opcode_CB_F4:
6411	orr z80hl,z80hl,#1<<30
6412	fetch 8
6413;@SET 6,L
6414opcode_CB_F5:
6415	orr z80hl,z80hl,#1<<22
6416	fetch 8
6417;@SET 6,(HL)
6418opcode_CB_F6:
6419	opSETmemHL 6
6420;@SET 6,A
6421opcode_CB_F7:
6422	orr z80a,z80a,#1<<30
6423	fetch 8
6424
6425;@SET 7,B
6426opcode_CB_F8:
6427	orr z80bc,z80bc,#1<<31
6428	fetch 8
6429;@SET 7,C
6430opcode_CB_F9:
6431	orr z80bc,z80bc,#1<<23
6432	fetch 8
6433;@SET 7,D
6434opcode_CB_FA:
6435	orr z80de,z80de,#1<<31
6436	fetch 8
6437;@SET 7,E
6438opcode_CB_FB:
6439	orr z80de,z80de,#1<<23
6440	fetch 8
6441;@SET 7,H
6442opcode_CB_FC:
6443	orr z80hl,z80hl,#1<<31
6444	fetch 8
6445;@SET 7,L
6446opcode_CB_FD:
6447	orr z80hl,z80hl,#1<<23
6448	fetch 8
6449;@SET 7,(HL)
6450opcode_CB_FE:
6451	opSETmemHL 7
6452;@SET 7,A
6453opcode_CB_FF:
6454	orr z80a,z80a,#1<<31
6455	fetch 8
6456
6457
6458
6459;@##################################
6460;@##################################
6461;@###  opcodes DD  #########################
6462;@##################################
6463;@##################################
6464;@Because the DD opcodes are not a complete range from 00-FF I have
6465;@created this sub routine that will catch any undocumented ops
6466;@halt the emulator and mov the current instruction to r0
6467;@at a later stage I may change to display a text message on the screen
6468opcode_DD_NF:
6469	eatcycles 4
6470	ldr pc,[opcodes,r0, lsl #2]
6471;@	mov r2,#0x10*4
6472;@	cmp r2,z80xx
6473;@	bne opcode_FD_NF
6474;@	mov r0,#0xDD00
6475;@	orr r0,r0,r1
6476;@	b end_loop
6477;@opcode_FD_NF:
6478;@	mov r0,#0xFD00
6479;@	orr r0,r0,r1
6480;@	b end_loop
6481opcode_DD_NF2:
6482	fetch 15
6483;@ notaz: we don't want to deadlock here
6484;@	mov r0,#0xDD0000
6485;@	orr r0,r0,#0xCB00
6486;@	orr r0,r0,r1
6487;@	b end_loop
6488
6489;@ADD IX,BC
6490opcode_DD_09:
6491	ldr r0,[z80xx]
6492	opADD16 r0 z80bc
6493	str r0,[z80xx]
6494	fetch 15
6495;@ADD IX,DE
6496opcode_DD_19:
6497	ldr r0,[z80xx]
6498	opADD16 r0 z80de
6499	str r0,[z80xx]
6500	fetch 15
6501;@LD IX,NN
6502opcode_DD_21:
6503	ldrb r0,[z80pc],#1
6504	ldrb r1,[z80pc],#1
6505	orr r0,r0,r1, lsl #8
6506	strh r0,[z80xx,#2]
6507	fetch 14
6508;@LD (NN),IX
6509opcode_DD_22:
6510	ldrb r0,[z80pc],#1
6511	ldrb r1,[z80pc],#1
6512	orr r1,r0,r1, lsl #8
6513	ldrh r0,[z80xx,#2]
6514	writemem16
6515	fetch 20
6516;@INC IX
6517opcode_DD_23:
6518	ldr r0,[z80xx]
6519	add r0,r0,#1<<16
6520	str r0,[z80xx]
6521	fetch 10
6522;@INC I  (IX)
6523opcode_DD_24:
6524	ldr r0,[z80xx]
6525	opINC8H r0
6526	str r0,[z80xx]
6527	fetch 8
6528;@DEC I  (IX)
6529opcode_DD_25:
6530	ldr r0,[z80xx]
6531	opDEC8H r0
6532	str r0,[z80xx]
6533	fetch 8
6534;@LD I,N  (IX)
6535opcode_DD_26:
6536	ldrb r0,[z80pc],#1
6537	strb r0,[z80xx,#3]
6538	fetch 11
6539;@ADD IX,IX
6540opcode_DD_29:
6541	ldr r0,[z80xx]
6542	opADD16_2 r0
6543	str r0,[z80xx]
6544	fetch 15
6545;@LD IX,(NN)
6546opcode_DD_2A:
6547	ldrb r0,[z80pc],#1
6548	ldrb r1,[z80pc],#1
6549	orr r0,r0,r1, lsl #8
6550	stmfd sp!,{z80xx}
6551	readmem16
6552	ldmfd sp!,{z80xx}
6553	strh r0,[z80xx,#2]
6554	fetch 20
6555;@DEC IX
6556opcode_DD_2B:
6557	ldr r0,[z80xx]
6558	sub r0,r0,#1<<16
6559	str r0,[z80xx]
6560	fetch 10
6561;@INC X  (IX)
6562opcode_DD_2C:
6563	ldr r0,[z80xx]
6564	opINC8L r0
6565	str r0,[z80xx]
6566	fetch 8
6567;@DEC X  (IX)
6568opcode_DD_2D:
6569	ldr r0,[z80xx]
6570	opDEC8L r0
6571	str r0,[z80xx]
6572	fetch 8
6573;@LD X,N  (IX)
6574opcode_DD_2E:
6575	ldrb r0,[z80pc],#1
6576	strb r0,[z80xx,#2]
6577	fetch 11
6578;@INC (IX+N)
6579opcode_DD_34:
6580	ldrsb r0,[z80pc],#1
6581	ldr r1,[z80xx]
6582	add r0,r0,r1, lsr #16
6583	stmfd sp!,{r0}	;@ save addr
6584	readmem8
6585	opINC8b
6586	ldmfd sp!,{r1}	;@ restore addr into r1
6587	writemem8
6588	fetch 23
6589;@DEC (IX+N)
6590opcode_DD_35:
6591	ldrsb r0,[z80pc],#1
6592	ldr r1,[z80xx]
6593	add r0,r0,r1, lsr #16
6594	stmfd sp!,{r0}	;@ save addr
6595	readmem8
6596	opDEC8b
6597	ldmfd sp!,{r1}	;@ restore addr into r1
6598	writemem8
6599	fetch 23
6600;@LD (IX+N),N
6601opcode_DD_36:
6602	ldrsb r2,[z80pc],#1
6603	ldrb r0,[z80pc],#1
6604	ldr r1,[z80xx]
6605	add r1,r2,r1, lsr #16
6606	writemem8
6607	fetch 19
6608;@ADD IX,SP
6609opcode_DD_39:
6610	ldr r0,[z80xx]
6611.if FAST_Z80SP
6612	ldr r2,[cpucontext,#z80sp_base]
6613	sub r2,z80sp,r2
6614	opADD16s r0 r2 16
6615.else
6616	opADD16s r0 z80sp 16
6617.endif
6618	str r0,[z80xx]
6619	fetch 15
6620;@LD B,I ( IX )
6621opcode_DD_44:
6622	ldrb r0,[z80xx,#3]
6623	and z80bc,z80bc,#0xFF<<16
6624	orr z80bc,z80bc,r0, lsl #24
6625	fetch 8
6626;@LD B,X ( IX )
6627opcode_DD_45:
6628	ldrb r0,[z80xx,#2]
6629	and z80bc,z80bc,#0xFF<<16
6630	orr z80bc,z80bc,r0, lsl #24
6631	fetch 8
6632;@LD B,(IX,N)
6633opcode_DD_46:
6634	ldrsb r0,[z80pc],#1
6635	ldr r1,[z80xx]
6636	add r0,r0,r1, lsr #16
6637	readmem8
6638	and z80bc,z80bc,#0xFF<<16
6639	orr z80bc,z80bc,r0, lsl #24
6640	fetch 19
6641;@LD C,I  (IX)
6642opcode_DD_4C:
6643	ldrb r0,[z80xx,#3]
6644	and z80bc,z80bc,#0xFF<<24
6645	orr z80bc,z80bc,r0, lsl #16
6646	fetch 8
6647;@LD C,X  (IX)
6648opcode_DD_4D:
6649	ldrb r0,[z80xx,#2]
6650	and z80bc,z80bc,#0xFF<<24
6651	orr z80bc,z80bc,r0, lsl #16
6652	fetch 8
6653;@LD C,(IX,N)
6654opcode_DD_4E:
6655	ldrsb r0,[z80pc],#1
6656	ldr r1,[z80xx]
6657	add r0,r0,r1, lsr #16
6658	readmem8
6659	and z80bc,z80bc,#0xFF<<24
6660	orr z80bc,z80bc,r0, lsl #16
6661	fetch 19
6662
6663;@LD D,I  (IX)
6664opcode_DD_54:
6665	ldrb r0,[z80xx,#3]
6666	and z80de,z80de,#0xFF<<16
6667	orr z80de,z80de,r0, lsl #24
6668	fetch 8
6669;@LD D,X  (IX)
6670opcode_DD_55:
6671	ldrb r0,[z80xx,#2]
6672	and z80de,z80de,#0xFF<<16
6673	orr z80de,z80de,r0, lsl #24
6674	fetch 8
6675;@LD D,(IX,N)
6676opcode_DD_56:
6677	ldrsb r0,[z80pc],#1
6678	ldr r1,[z80xx]
6679	add r0,r0,r1, lsr #16
6680	readmem8
6681	and z80de,z80de,#0xFF<<16
6682	orr z80de,z80de,r0, lsl #24
6683	fetch 19
6684;@LD E,I  (IX)
6685opcode_DD_5C:
6686	ldrb r0,[z80xx,#3]
6687	and z80de,z80de,#0xFF<<24
6688	orr z80de,z80de,r0, lsl #16
6689	fetch 8
6690;@LD E,X  (IX)
6691opcode_DD_5D:
6692	ldrb r0,[z80xx,#2]
6693	and z80de,z80de,#0xFF<<24
6694	orr z80de,z80de,r0, lsl #16
6695	fetch 8
6696;@LD E,(IX,N)
6697opcode_DD_5E:
6698	ldrsb r0,[z80pc],#1
6699	ldr r1,[z80xx]
6700	add r0,r0,r1, lsr #16
6701	readmem8
6702	and z80de,z80de,#0xFF<<24
6703	orr z80de,z80de,r0, lsl #16
6704	fetch 19
6705;@LD I,B  (IX)
6706opcode_DD_60:
6707	mov r0,z80bc,lsr#24
6708	strb r0,[z80xx,#3]
6709	fetch 8
6710;@LD I,C  (IX)
6711opcode_DD_61:
6712	mov r0,z80bc,lsr#16
6713	strb r0,[z80xx,#3]
6714	fetch 8
6715;@LD I,D  (IX)
6716opcode_DD_62:
6717	mov r0,z80de,lsr#24
6718	strb r0,[z80xx,#3]
6719	fetch 8
6720;@LD I,E  (IX)
6721opcode_DD_63:
6722	mov r0,z80de,lsr#16
6723	strb r0,[z80xx,#3]
6724	fetch 8
6725;@LD I,I  (IX)
6726opcode_DD_64:
6727	fetch 8
6728;@LD I,X  (IX)
6729opcode_DD_65:
6730	ldrb r0,[z80xx,#2]
6731	strb r0,[z80xx,#3]
6732	fetch 8
6733;@LD H,(IX,N)
6734opcode_DD_66:
6735	ldrsb r0,[z80pc],#1
6736	ldr r1,[z80xx]
6737	add r0,r0,r1, lsr #16
6738	readmem8
6739	and z80hl,z80hl,#0xFF<<16
6740	orr z80hl,z80hl,r0, lsl #24
6741	fetch 19
6742;@LD I,A  (IX)
6743opcode_DD_67:
6744	mov r0,z80a,lsr#24
6745	strb r0,[z80xx,#3]
6746	fetch 8
6747;@LD X,B  (IX)
6748opcode_DD_68:
6749	mov r0,z80bc,lsr#24
6750	strb r0,[z80xx,#2]
6751	fetch 8
6752;@LD X,C  (IX)
6753opcode_DD_69:
6754	mov r0,z80bc,lsr#16
6755	strb r0,[z80xx,#2]
6756	fetch 8
6757;@LD X,D  (IX)
6758opcode_DD_6A:
6759	mov r0,z80de,lsr#24
6760	strb r0,[z80xx,#2]
6761	fetch 8
6762;@LD X,E  (IX)
6763opcode_DD_6B:
6764	mov r0,z80de,lsr#16
6765	strb r0,[z80xx,#2]
6766	fetch 8
6767;@LD X,I  (IX)
6768opcode_DD_6C:
6769	ldrb r0,[z80xx,#3]
6770	strb r0,[z80xx,#2]
6771	fetch 8
6772;@LD X,X  (IX)
6773opcode_DD_6D:
6774	fetch 8
6775;@LD L,(IX,N)
6776opcode_DD_6E:
6777	ldrsb r0,[z80pc],#1
6778	ldr r1,[z80xx]
6779	add r0,r0,r1, lsr #16
6780	readmem8
6781	and z80hl,z80hl,#0xFF<<24
6782	orr z80hl,z80hl,r0, lsl #16
6783	fetch 19
6784;@LD X,A  (IX)
6785opcode_DD_6F:
6786	mov r0,z80a,lsr#24
6787	strb r0,[z80xx,#2]
6788	fetch 8
6789
6790;@LD (IX,N),B
6791opcode_DD_70:
6792	ldrsb r0,[z80pc],#1
6793	ldr r1,[z80xx]
6794	add r1,r0,r1, lsr #16
6795	mov r0,z80bc, lsr #24
6796	writemem8
6797	fetch 19
6798;@LD (IX,N),C
6799opcode_DD_71:
6800	ldrsb r0,[z80pc],#1
6801	ldr r1,[z80xx]
6802	add r1,r0,r1, lsr #16
6803	mov r0,z80bc, lsr #16
6804	and r0,r0,#0xFF
6805	writemem8
6806	fetch 19
6807;@LD (IX,N),D
6808opcode_DD_72:
6809	ldrsb r0,[z80pc],#1
6810	ldr r1,[z80xx]
6811	add r1,r0,r1, lsr #16
6812	mov r0,z80de, lsr #24
6813	writemem8
6814	fetch 19
6815;@LD (IX,N),E
6816opcode_DD_73:
6817	ldrsb r0,[z80pc],#1
6818	ldr r1,[z80xx]
6819	add r1,r0,r1, lsr #16
6820	mov r0,z80de, lsr #16
6821	and r0,r0,#0xFF
6822	writemem8
6823	fetch 19
6824;@LD (IX,N),H
6825opcode_DD_74:
6826	ldrsb r0,[z80pc],#1
6827	ldr r1,[z80xx]
6828	add r1,r0,r1, lsr #16
6829	mov r0,z80hl, lsr #24
6830	writemem8
6831	fetch 19
6832;@LD (IX,N),L
6833opcode_DD_75:
6834	ldrsb r0,[z80pc],#1
6835	ldr r1,[z80xx]
6836	add r1,r0,r1, lsr #16
6837	mov r0,z80hl, lsr #16
6838	and r0,r0,#0xFF
6839	writemem8
6840	fetch 19
6841;@LD (IX,N),A
6842opcode_DD_77:
6843	ldrsb r0,[z80pc],#1
6844	ldr r1,[z80xx]
6845	add r1,r0,r1, lsr #16
6846	mov r0,z80a, lsr #24
6847	writemem8
6848	fetch 19
6849
6850;@LD A,I  from (IX)
6851opcode_DD_7C:
6852	ldrb r0,[z80xx,#3]
6853	mov z80a,r0, lsl #24
6854	fetch 8
6855;@LD A,X  from (IX)
6856opcode_DD_7D:
6857	ldrb r0,[z80xx,#2]
6858	mov z80a,r0, lsl #24
6859	fetch 8
6860;@LD A,(IX,N)
6861opcode_DD_7E:
6862	ldrsb r0,[z80pc],#1
6863	ldr r1,[z80xx]
6864	add r0,r0,r1, lsr #16
6865	readmem8
6866	mov z80a,r0, lsl #24
6867	fetch 19
6868
6869;@ADD A,I  ( IX)
6870opcode_DD_84:
6871	ldrb r0,[z80xx,#3]
6872	opADDb
6873	fetch 8
6874;@ADD A,X  ( IX)
6875opcode_DD_85:
6876	ldrb r0,[z80xx,#2]
6877	opADDb
6878	fetch 8
6879;@ADD A,(IX+N)
6880opcode_DD_86:
6881	ldrsb r0,[z80pc],#1
6882	ldr r1,[z80xx]
6883	add r0,r0,r1, lsr #16
6884	readmem8
6885	opADDb
6886	fetch 19
6887
6888;@ADC A,I  (IX)
6889opcode_DD_8C:
6890	ldrb r0,[z80xx,#3]
6891	opADCb
6892	fetch 8
6893;@ADC A,X  (IX)
6894opcode_DD_8D:
6895	ldrb r0,[z80xx,#2]
6896	opADCb
6897	fetch 8
6898;@ADC A,(IX+N)
6899opcode_DD_8E:
6900	ldrsb r0,[z80pc],#1
6901	ldr r1,[z80xx]
6902	add r0,r0,r1, lsr #16
6903	readmem8
6904	opADCb
6905	fetch 19
6906
6907;@SUB A,I  (IX)
6908opcode_DD_94:
6909	ldrb r0,[z80xx,#3]
6910	opSUBb
6911	fetch 8
6912;@SUB A,X  (IX)
6913opcode_DD_95:
6914	ldrb r0,[z80xx,#2]
6915	opSUBb
6916	fetch 8
6917;@SUB A,(IX+N)
6918opcode_DD_96:
6919	ldrsb r0,[z80pc],#1
6920	ldr r1,[z80xx]
6921	add r0,r0,r1, lsr #16
6922	readmem8
6923	opSUBb
6924	fetch 19
6925
6926;@SBC A,I  (IX)
6927opcode_DD_9C:
6928	ldrb r0,[z80xx,#3]
6929	opSBCb
6930	fetch 8
6931;@SBC A,X  (IX)
6932opcode_DD_9D:
6933	ldrb r0,[z80xx,#2]
6934	opSBCb
6935	fetch 8
6936;@SBC A,(IX+N)
6937opcode_DD_9E:
6938	ldrsb r0,[z80pc],#1
6939	ldr r1,[z80xx]
6940	add r0,r0,r1, lsr #16
6941	readmem8
6942	opSBCb
6943	fetch 19
6944
6945;@AND I  (IX)
6946opcode_DD_A4:
6947	ldrb r0,[z80xx,#3]
6948	opANDb
6949	fetch 8
6950;@AND X  (IX)
6951opcode_DD_A5:
6952	ldrb r0,[z80xx,#2]
6953	opANDb
6954	fetch 8
6955;@AND (IX+N)
6956opcode_DD_A6:
6957	ldrsb r0,[z80pc],#1
6958	ldr r1,[z80xx]
6959	add r0,r0,r1, lsr #16
6960	readmem8
6961	opANDb
6962	fetch 19
6963
6964;@XOR I  (IX)
6965opcode_DD_AC:
6966	ldrb r0,[z80xx,#3]
6967	opXORb
6968	fetch 8
6969;@XOR X  (IX)
6970opcode_DD_AD:
6971	ldrb r0,[z80xx,#2]
6972	opXORb
6973	fetch 8
6974;@XOR (IX+N)
6975opcode_DD_AE:
6976	ldrsb r0,[z80pc],#1
6977	ldr r1,[z80xx]
6978	add r0,r0,r1, lsr #16
6979	readmem8
6980	opXORb
6981	fetch 19
6982
6983;@OR I  (IX)
6984opcode_DD_B4:
6985	ldrb r0,[z80xx,#3]
6986	opORb
6987	fetch 8
6988;@OR X  (IX)
6989opcode_DD_B5:
6990	ldrb r0,[z80xx,#2]
6991	opORb
6992	fetch 8
6993;@OR (IX+N)
6994opcode_DD_B6:
6995	ldrsb r0,[z80pc],#1
6996	ldr r1,[z80xx]
6997	add r0,r0,r1, lsr #16
6998	readmem8
6999	opORb
7000	fetch 19
7001
7002;@CP I  (IX)
7003opcode_DD_BC:
7004	ldrb r0,[z80xx,#3]
7005	opCPb
7006	fetch 8
7007;@CP X  (IX)
7008opcode_DD_BD:
7009	ldrb r0,[z80xx,#2]
7010	opCPb
7011	fetch 8
7012;@CP (IX+N)
7013opcode_DD_BE:
7014	ldrsb r0,[z80pc],#1
7015	ldr r1,[z80xx]
7016	add r0,r0,r1, lsr #16
7017	readmem8
7018	opCPb
7019	fetch 19
7020
7021
7022opcodes_DD_CB_LOCAL: .word opcodes_DD_CB
7023opcode_DD_CB:
7024;@Looks up the opcode on the opcodes_DD_CB table and then
7025;@moves the PC to the location of the subroutine
7026	ldrsb r0,[z80pc],#1
7027	ldr r1,[z80xx]
7028	add r0,r0,r1, lsr #16
7029
7030	ldrb r1,[z80pc],#1
7031	ldr pc,[pc,r1, lsl #2]
7032		.word 0x00
7033opcodes_DD_CB:
7034		.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
7035		.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
7036		.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
7037		.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
7038		.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
7039		.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
7040		.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
7041		.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
7042		.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
7043		.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
7044		.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
7045		.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
7046		.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
7047		.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
7048		.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
7049		.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
7050		.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
7051		.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
7052		.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
7053		.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
7054		.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
7055		.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
7056		.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
7057		.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
7058		.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
7059		.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
7060		.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
7061		.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
7062		.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
7063		.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
7064		.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
7065		.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
7066
7067;@RLC (IX+N)
7068opcode_DD_CB_06:
7069	stmfd sp!,{r0}		;@ save addr
7070	readmem8
7071	opRLCb
7072	ldmfd sp!,{r1}		;@ restore addr into r1
7073	writemem8
7074	fetch 23
7075;@RRC (IX+N)
7076opcode_DD_CB_0E:
7077	stmfd sp!,{r0}		;@ save addr
7078	readmem8
7079	opRRCb
7080	ldmfd sp!,{r1}		;@ restore addr into r1
7081	writemem8
7082	fetch 23
7083;@RL (IX+N)
7084opcode_DD_CB_16:
7085	stmfd sp!,{r0}		;@ save addr
7086	readmem8
7087	opRLb
7088	ldmfd sp!,{r1}		;@ restore addr into r1
7089	writemem8
7090	fetch 23
7091;@RR (IX+N)
7092opcode_DD_CB_1E:
7093	stmfd sp!,{r0}		;@ save addr
7094	readmem8
7095	opRRb
7096	ldmfd sp!,{r1}		;@ restore addr into r1
7097	writemem8
7098	fetch 23
7099
7100;@SLA (IX+N)
7101opcode_DD_CB_26:
7102	stmfd sp!,{r0}		;@ save addr
7103	readmem8
7104	opSLAb
7105	ldmfd sp!,{r1}		;@ restore addr into r1
7106	writemem8
7107	fetch 23
7108;@SRA (IX+N)
7109opcode_DD_CB_2E:
7110	stmfd sp!,{r0}		;@ save addr
7111	readmem8
7112	opSRAb
7113	ldmfd sp!,{r1}		;@ restore addr into r1
7114	writemem8
7115	fetch 23
7116;@SLL (IX+N)
7117opcode_DD_CB_36:
7118	stmfd sp!,{r0}		;@ save addr
7119	readmem8
7120	opSLLb
7121	ldmfd sp!,{r1}		;@ restore addr into r1
7122	writemem8
7123	fetch 23
7124;@SRL (IX+N)
7125opcode_DD_CB_3E:
7126	stmfd sp!,{r0}		;@ save addr
7127	readmem8
7128	opSRLb
7129	ldmfd sp!,{r1}		;@ restore addr into r1
7130	writemem8
7131	fetch 23
7132
7133;@BIT 0,(IX+N)
7134opcode_DD_CB_46:
7135	readmem8
7136	opBITb 0
7137	fetch 20
7138;@BIT 1,(IX+N)
7139opcode_DD_CB_4E:
7140	readmem8
7141	opBITb 1
7142	fetch 20
7143;@BIT 2,(IX+N)
7144opcode_DD_CB_56:
7145	readmem8
7146	opBITb 2
7147	fetch 20
7148;@BIT 3,(IX+N)
7149opcode_DD_CB_5E:
7150	readmem8
7151	opBITb 3
7152	fetch 20
7153;@BIT 4,(IX+N)
7154opcode_DD_CB_66:
7155	readmem8
7156	opBITb 4
7157	fetch 20
7158;@BIT 5,(IX+N)
7159opcode_DD_CB_6E:
7160	readmem8
7161	opBITb 5
7162	fetch 20
7163;@BIT 6,(IX+N)
7164opcode_DD_CB_76:
7165	readmem8
7166	opBITb 6
7167	fetch 20
7168;@BIT 7,(IX+N)
7169opcode_DD_CB_7E:
7170	readmem8
7171	opBIT7b
7172	fetch 20
7173;@RES 0,(IX+N)
7174opcode_DD_CB_86:
7175	opRESmem 0
7176;@RES 1,(IX+N)
7177opcode_DD_CB_8E:
7178	opRESmem 1
7179;@RES 2,(IX+N)
7180opcode_DD_CB_96:
7181	opRESmem 2
7182;@RES 3,(IX+N)
7183opcode_DD_CB_9E:
7184	opRESmem 3
7185;@RES 4,(IX+N)
7186opcode_DD_CB_A6:
7187	opRESmem 4
7188;@RES 5,(IX+N)
7189opcode_DD_CB_AE:
7190	opRESmem 5
7191;@RES 6,(IX+N)
7192opcode_DD_CB_B6:
7193	opRESmem 6
7194;@RES 7,(IX+N)
7195opcode_DD_CB_BE:
7196	opRESmem 7
7197
7198;@SET 0,(IX+N)
7199opcode_DD_CB_C6:
7200	opSETmem 0
7201;@SET 1,(IX+N)
7202opcode_DD_CB_CE:
7203	opSETmem 1
7204;@SET 2,(IX+N)
7205opcode_DD_CB_D6:
7206	opSETmem 2
7207;@SET 3,(IX+N)
7208opcode_DD_CB_DE:
7209	opSETmem 3
7210;@SET 4,(IX+N)
7211opcode_DD_CB_E6:
7212	opSETmem 4
7213;@SET 5,(IX+N)
7214opcode_DD_CB_EE:
7215	opSETmem 5
7216;@SET 6,(IX+N)
7217opcode_DD_CB_F6:
7218	opSETmem 6
7219;@SET 7,(IX+N)
7220opcode_DD_CB_FE:
7221	opSETmem 7
7222
7223
7224
7225;@POP IX
7226opcode_DD_E1:
7227.if FAST_Z80SP
7228	ldrb r0,[z80sp],#1
7229	ldrb r1,[z80sp],#1
7230	orr r0,r0,r1, lsl #8
7231.else
7232	mov r0,z80sp
7233	stmfd sp!,{z80xx}
7234	readmem16
7235	ldmfd sp!,{z80xx}
7236	add z80sp,z80sp,#2
7237.endif
7238	strh r0,[z80xx,#2]
7239	fetch 14
7240;@EX (SP),IX
7241opcode_DD_E3:
7242.if FAST_Z80SP
7243	ldrb r0,[z80sp]
7244	ldrb r1,[z80sp,#1]
7245	orr r2,r0,r1, lsl #8
7246	ldrh r1,[z80xx,#2]
7247	mov r0,r1, lsr #8
7248	strb r0,[z80sp,#1]
7249	strb r1,[z80sp]
7250	strh r2,[z80xx,#2]
7251.else
7252	mov r0,z80sp
7253	stmfd sp!,{z80xx}
7254	readmem16
7255	ldmfd sp!,{z80xx}
7256	mov r2,r0
7257	ldrh r0,[z80xx,#2]
7258	strh r2,[z80xx,#2]
7259	mov r1,z80sp
7260	writemem16
7261.endif
7262	fetch 23
7263;@PUSH IX
7264opcode_DD_E5:
7265	ldr r0,[z80xx]
7266	opPUSHreg r0
7267	fetch 15
7268;@JP (IX)
7269opcode_DD_E9:
7270	ldrh r0,[z80xx,#2]
7271	rebasepc
7272	fetch 8
7273;@LD SP,IX
7274opcode_DD_F9:
7275.if FAST_Z80SP
7276	ldrh r0,[z80xx,#2]
7277	rebasesp
7278	;@mov z80sp,r0
7279.else
7280	ldrh z80sp,[z80xx,#2]
7281.endif
7282	fetch 10
7283
7284;@##################################
7285;@##################################
7286;@###  opcodes ED  #########################
7287;@##################################
7288;@##################################
7289
7290opcode_ED_NF:
7291	fetch 8
7292;@	ldrb r0,[z80pc],#1
7293;@	ldr pc,[opcodes,r0, lsl #2]
7294;@	mov r0,#0xED00
7295;@	orr r0,r0,r1
7296;@	b end_loop
7297
7298;@IN B,(C)
7299opcode_ED_40:
7300	opIN_C
7301	and z80bc,z80bc,#0xFF<<16
7302	orr z80bc,z80bc,r0, lsl #24
7303	sub r1,opcodes,#0x100
7304	ldrb r0,[r1,r0]
7305	and z80f,z80f,#1<<CFlag
7306	orr z80f,z80f,r0
7307	fetch 12
7308;@OUT (C),B
7309opcode_ED_41:
7310	mov r1,z80bc, lsr #24
7311	opOUT_C
7312	fetch 12
7313
7314;@SBC HL,BC
7315opcode_ED_42:
7316	opSBC16 z80bc
7317
7318;@LD (NN),BC
7319opcode_ED_43:
7320	ldrb r0,[z80pc],#1
7321	ldrb r1,[z80pc],#1
7322	orr r1,r0,r1, lsl #8
7323	mov r0,z80bc, lsr #16
7324	writemem16
7325	fetch 20
7326;@NEG
7327opcode_ED_44:
7328	rsbs z80a,z80a,#0
7329	mrs z80f,cpsr
7330	mov z80f,z80f,lsr#28					;@S,Z,V&C
7331	eor z80f,z80f,#(1<<CFlag)|(1<<NFlag)	;@invert C and set n.
7332	tst z80a,#0x0F000000					;@H, correct
7333	orrne z80f,z80f,#1<<HFlag
7334	fetch 8
7335
7336;@RETN, moved to ED_4D
7337;@opcode_ED_45:
7338
7339;@IM 0
7340opcode_ED_46:
7341	strb z80a,[cpucontext,#z80im]			;@zero IM
7342	fetch 8
7343;@LD I,A
7344opcode_ED_47:
7345	str z80a,[cpucontext,#z80i]
7346	fetch 9
7347;@IN C,(C)
7348opcode_ED_48:
7349	opIN_C
7350	and z80bc,z80bc,#0xFF<<24
7351	orr z80bc,z80bc,r0, lsl #16
7352	sub r1,opcodes,#0x100
7353	ldrb r0,[r1,r0]
7354	and z80f,z80f,#1<<CFlag
7355	orr z80f,z80f,r0
7356	fetch 12
7357;@OUT (C),C
7358opcode_ED_49:
7359	mov r0,z80bc, lsr #16
7360	and r1,r0,#0xFF
7361	opOUT
7362	fetch 12
7363;@ADC HL,BC
7364opcode_ED_4A:
7365	opADC16 z80bc
7366;@LD BC,(NN)
7367opcode_ED_4B:
7368	ldrb r0,[z80pc],#1
7369	ldrb r1,[z80pc],#1
7370	orr r0,r0,r1, lsl #8
7371	readmem16
7372	mov z80bc,r0, lsl #16
7373	fetch 20
7374
7375;@RETN
7376opcode_ED_45:
7377;@RETI
7378opcode_ED_4D:
7379	ldrb r0,[cpucontext,#z80if]
7380	tst r0,#Z80_IF2
7381	orrne r0,r0,#Z80_IF1
7382	biceq r0,r0,#Z80_IF1
7383	strb r0,[cpucontext,#z80if]
7384.if FAST_Z80SP
7385	ldrb r0,[z80sp],#1
7386	ldrb r1,[z80sp],#1
7387	orr r0,r0,r1, lsl #8
7388.else
7389	mov r0,z80sp
7390	readmem16
7391	add z80sp,z80sp,#2
7392.endif
7393	rebasepc
7394	fetch 14
7395
7396;@LD R,A
7397opcode_ED_4F:
7398	mov r0,z80a,lsr#24
7399	strb r0,[cpucontext,#z80r]
7400	fetch 9
7401
7402;@IN D,(C)
7403opcode_ED_50:
7404	opIN_C
7405	and z80de,z80de,#0xFF<<16
7406	orr z80de,z80de,r0, lsl #24
7407	sub r1,opcodes,#0x100
7408	ldrb r0,[r1,r0]
7409	and z80f,z80f,#1<<CFlag
7410	orr z80f,z80f,r0
7411	fetch 12
7412;@OUT (C),D
7413opcode_ED_51:
7414	mov r1,z80de, lsr #24
7415	opOUT_C
7416	fetch 12
7417;@SBC HL,DE
7418opcode_ED_52:
7419	opSBC16 z80de
7420;@LD (NN),DE
7421opcode_ED_53:
7422	ldrb r0,[z80pc],#1
7423	ldrb r1,[z80pc],#1
7424	orr r1,r0,r1, lsl #8
7425	mov r0,z80de, lsr #16
7426	writemem16
7427	fetch 20
7428;@IM 1
7429opcode_ED_56:
7430	mov r0,#1
7431	strb r0,[cpucontext,#z80im]
7432	fetch 8
7433;@LD A,I
7434opcode_ED_57:
7435	ldr z80a,[cpucontext,#z80i]
7436	tst z80a,#0xFF000000
7437	and z80f,z80f,#(1<<CFlag)
7438	orreq z80f,z80f,#(1<<ZFlag)
7439	orrmi z80f,z80f,#(1<<SFlag)
7440	ldrb r0,[cpucontext,#z80if]
7441	tst r0,#Z80_IF2
7442	orrne z80f,z80f,#(1<<VFlag)
7443	fetch 9
7444;@IN E,(C)
7445opcode_ED_58:
7446	opIN_C
7447	and z80de,z80de,#0xFF<<24
7448	orr z80de,z80de,r0, lsl #16
7449	sub r1,opcodes,#0x100
7450	ldrb r0,[r1,r0]
7451	and z80f,z80f,#1<<CFlag
7452	orr z80f,z80f,r0
7453	fetch 12
7454;@OUT (C),E
7455opcode_ED_59:
7456	mov r1,z80de, lsr #16
7457	and r1,r1,#0xFF
7458	opOUT_C
7459	fetch 12
7460;@ADC HL,DE
7461opcode_ED_5A:
7462	opADC16 z80de
7463;@LD DE,(NN)
7464opcode_ED_5B:
7465	ldrb r0,[z80pc],#1
7466	ldrb r1,[z80pc],#1
7467	orr r0,r0,r1, lsl #8
7468	readmem16
7469	mov z80de,r0, lsl #16
7470	fetch 20
7471;@IM 2
7472opcode_ED_5E:
7473	mov r0,#2
7474	strb r0,[cpucontext,#z80im]
7475	fetch 8
7476;@LD A,R
7477opcode_ED_5F:
7478	ldrb r0,[cpucontext,#z80r]
7479	and r0,r0,#0x80
7480	rsb r1,z80_icount,#0
7481	and r1,r1,#0x7F
7482	orr r0,r0,r1
7483	movs z80a,r0, lsl #24
7484	and z80f,z80f,#1<<CFlag
7485	orrmi z80f,z80f,#(1<<SFlag)
7486	orreq z80f,z80f,#(1<<ZFlag)
7487	ldrb r0,[cpucontext,#z80if]
7488	tst r0,#Z80_IF2
7489	orrne z80f,z80f,#(1<<VFlag)
7490	fetch 9
7491;@IN H,(C)
7492opcode_ED_60:
7493	opIN_C
7494	and z80hl,z80hl,#0xFF<<16
7495	orr z80hl,z80hl,r0, lsl #24
7496	sub r1,opcodes,#0x100
7497	ldrb r0,[r1,r0]
7498	and z80f,z80f,#1<<CFlag
7499	orr z80f,z80f,r0
7500	fetch 12
7501;@OUT (C),H
7502opcode_ED_61:
7503	mov r1,z80hl, lsr #24
7504	opOUT_C
7505	fetch 12
7506;@SBC HL,HL
7507opcode_ED_62:
7508	opSBC16HL
7509;@RRD
7510opcode_ED_67:
7511	readmem8HL
7512	mov r1,r0,ror#4
7513	orr r0,r1,z80a,lsr#20
7514	bic z80a,z80a,#0x0F000000
7515	orr z80a,z80a,r1,lsr#4
7516	writemem8HL
7517	sub r1,opcodes,#0x100
7518	ldrb r0,[r1,z80a, lsr #24]
7519	and z80f,z80f,#1<<CFlag
7520	orr z80f,z80f,r0
7521	fetch 18
7522;@IN L,(C)
7523opcode_ED_68:
7524	opIN_C
7525	and z80hl,z80hl,#0xFF<<24
7526	orr z80hl,z80hl,r0, lsl #16
7527	and z80f,z80f,#1<<CFlag
7528	sub r1,opcodes,#0x100
7529	ldrb r0,[r1,r0]
7530	orr z80f,z80f,r0
7531	fetch 12
7532;@OUT (C),L
7533opcode_ED_69:
7534	mov r1,z80hl, lsr #16
7535	and r1,r1,#0xFF
7536	opOUT_C
7537	fetch 12
7538;@ADC HL,HL
7539opcode_ED_6A:
7540	opADC16HL
7541;@RLD
7542opcode_ED_6F:
7543	readmem8HL
7544	orr r0,r0,z80a,lsl#4
7545	mov r0,r0,ror#28
7546	and z80a,z80a,#0xF0000000
7547	orr z80a,z80a,r0,lsl#16
7548	and z80a,z80a,#0xFF000000
7549	writemem8HL
7550	sub r1,opcodes,#0x100
7551	ldrb r0,[r1,z80a, lsr #24]
7552	and z80f,z80f,#1<<CFlag
7553	orr z80f,z80f,r0
7554	fetch 18
7555;@IN F,(C)
7556opcode_ED_70:
7557	opIN_C
7558	and z80f,z80f,#1<<CFlag
7559	sub r1,opcodes,#0x100
7560	ldrb r0,[r1,r0]
7561	orr z80f,z80f,r0
7562	fetch 12
7563;@OUT (C),0
7564opcode_ED_71:
7565	mov r1,#0
7566	opOUT_C
7567	fetch 12
7568
7569;@SBC HL,SP
7570opcode_ED_72:
7571.if FAST_Z80SP
7572	ldr r0,[cpucontext,#z80sp_base]
7573	sub r0,z80sp,r0
7574	mov r0, r0, lsl #16
7575.else
7576	mov r0,z80sp,lsl#16
7577.endif
7578	opSBC16 r0
7579;@LD (NN),SP
7580opcode_ED_73:
7581	ldrb r0,[z80pc],#1
7582	ldrb r1,[z80pc],#1
7583	orr r1,r0,r1, lsl #8
7584.if FAST_Z80SP
7585	ldr r0,[cpucontext,#z80sp_base]
7586	sub r0,z80sp,r0
7587.else
7588	mov r0,z80sp
7589.endif
7590	writemem16
7591	fetch 16
7592;@IN A,(C)
7593opcode_ED_78:
7594	opIN_C
7595	mov z80a,r0, lsl #24
7596	and z80f,z80f,#1<<CFlag
7597	sub r1,opcodes,#0x100
7598	ldrb r0,[r1,r0]
7599	orr z80f,z80f,r0
7600	fetch 12
7601;@OUT (C),A
7602opcode_ED_79:
7603	mov r1,z80a, lsr #24
7604	opOUT_C
7605	fetch 12
7606;@ADC HL,SP
7607opcode_ED_7A:
7608.if FAST_Z80SP
7609	ldr r0,[cpucontext,#z80sp_base]
7610	sub r0,z80sp,r0
7611	mov r0, r0, lsl #16
7612.else
7613	mov r0,z80sp,lsl#16
7614.endif
7615	opADC16 r0
7616;@LD SP,(NN)
7617opcode_ED_7B:
7618	ldrb r0,[z80pc],#1
7619	ldrb r1,[z80pc],#1
7620	orr r0,r0,r1, lsl #8
7621	readmem16
7622.if FAST_Z80SP
7623	rebasesp
7624.else
7625	mov z80sp,r0
7626.endif
7627	fetch 20
7628;@LDI
7629opcode_ED_A0:
7630	copymem8HL_DE
7631	add z80hl,z80hl,#1<<16
7632	add z80de,z80de,#1<<16
7633	subs z80bc,z80bc,#1<<16
7634	bic z80f,z80f,#(1<<VFlag)|(1<<NFlag)|(1<<HFlag)
7635	orrne z80f,z80f,#1<<VFlag
7636	fetch 16
7637;@CPI
7638opcode_ED_A1:
7639	readmem8HL
7640	add z80hl,z80hl,#0x00010000
7641	mov r1,z80a,lsl#4
7642	cmp z80a,r0,lsl#24
7643	and z80f,z80f,#1<<CFlag
7644	orr z80f,z80f,#1<<NFlag
7645	orrmi z80f,z80f,#1<<SFlag
7646	orreq z80f,z80f,#1<<ZFlag
7647	cmp r1,r0,lsl#28
7648	orrcc z80f,z80f,#1<<HFlag
7649	subs z80bc,z80bc,#0x00010000
7650	orrne z80f,z80f,#1<<VFlag
7651	fetch 16
7652;@INI
7653opcode_ED_A2:
7654	opIN_C
7655	and z80f,r0,#0x80
7656	mov z80f,z80f,lsr#2						;@NFlag set by bit 7
7657;@	mov r1,z80bc,lsl#8
7658;@	add r1,r1,#0x01000000
7659;@	adds r1,r1,r0,lsl#24
7660;@	orrcs z80f,z80f,#(1<<CFlag)|(1<<HFlag)	;@ CF & HF set if (HL) + ((C+1) & 0xFF) > 0xFF
7661	writemem8HL
7662	add z80hl,z80hl,#1<<16
7663	sub z80bc,z80bc,#1<<24
7664	tst z80bc,#0xFF<<24
7665	orrmi z80f,z80f,#1<<SFlag
7666	orreq z80f,z80f,#1<<ZFlag
7667	fetch 16
7668
7669;@OUTI
7670opcode_ED_A3:
7671	readmem8HL
7672	add z80hl,z80hl,#1<<16
7673	and z80f,r0,#0x80
7674	mov z80f,z80f,lsr#2						;@NFlag set by bit 7
7675	mov r1,z80hl,lsl#8
7676	adds r1,r1,r0,lsl#24
7677	orrcs z80f,z80f,#(1<<CFlag)|(1<<HFlag)	;@ CF & HF set if (HL)+L > 0xFF
7678	sub z80bc,z80bc,#1<<24
7679	tst z80bc,#0xFF<<24
7680	orrmi z80f,z80f,#1<<SFlag
7681	orreq z80f,z80f,#1<<ZFlag
7682	mov r1,r0
7683	opOUT_C
7684	fetch 16
7685
7686;@LDD
7687opcode_ED_A8:
7688	copymem8HL_DE
7689	sub z80hl,z80hl,#1<<16
7690	sub z80de,z80de,#1<<16
7691	subs z80bc,z80bc,#1<<16
7692	bic z80f,z80f,#(1<<VFlag)|(1<<NFlag)|(1<<HFlag)
7693	orrne z80f,z80f,#1<<VFlag
7694	fetch 16
7695
7696;@CPD
7697opcode_ED_A9:
7698	readmem8HL
7699	sub z80hl,z80hl,#1<<16
7700	mov r1,z80a,lsl#4
7701	cmp z80a,r0,lsl#24
7702	and z80f,z80f,#1<<CFlag
7703	orr z80f,z80f,#1<<NFlag
7704	orrmi z80f,z80f,#1<<SFlag
7705	orreq z80f,z80f,#1<<ZFlag
7706	cmp r1,r0,lsl#28
7707	orrcc z80f,z80f,#1<<HFlag
7708	subs z80bc,z80bc,#0x00010000
7709	orrne z80f,z80f,#1<<VFlag
7710	fetch 16
7711
7712;@IND
7713opcode_ED_AA:
7714	opIN_C
7715	and z80f,r0,#0x80
7716	mov z80f,z80f,lsr#2						;@NFlag set by bit 7
7717;@	mov r1,z80bc,lsl#8
7718;@	sub r1,r1,#0x01000000
7719;@	adds r1,r1,r0,lsl#24
7720;@	orrcs z80f,z80f,#(1<<CFlag)|(1<<HFlag)	;@ CF & HF set if (HL) + ((C-1) & 0xFF) > 0xFF
7721	writemem8HL
7722	sub z80hl,z80hl,#1<<16
7723	sub z80bc,z80bc,#1<<24
7724	tst z80bc,#0xFF<<24
7725	orrmi z80f,z80f,#1<<SFlag
7726	orreq z80f,z80f,#1<<ZFlag
7727	fetch 16
7728
7729;@OUTD
7730opcode_ED_AB:
7731	readmem8HL
7732	sub z80hl,z80hl,#1<<16
7733	and z80f,r0,#0x80
7734	mov z80f,z80f,lsr#2						;@NFlag set by bit 7
7735	mov r1,z80hl,lsl#8
7736	adds r1,r1,r0,lsl#24
7737	orrcs z80f,z80f,#(1<<CFlag)|(1<<HFlag)	;@ CF & HF set if r0+HL > 0xFF
7738	sub z80bc,z80bc,#1<<24
7739	tst z80bc,#0xFF<<24
7740	orrmi z80f,z80f,#1<<SFlag
7741	orreq z80f,z80f,#1<<ZFlag
7742	mov r1,r0
7743	opOUT_C
7744	fetch 16
7745;@LDIR
7746opcode_ED_B0:
7747	copymem8HL_DE
7748	add z80hl,z80hl,#1<<16
7749	add z80de,z80de,#1<<16
7750	subs z80bc,z80bc,#1<<16
7751	bic z80f,z80f,#(1<<VFlag)|(1<<NFlag)|(1<<HFlag)
7752	orrne z80f,z80f,#1<<VFlag
7753	subne z80pc,z80pc,#2
7754	subne z80_icount,z80_icount,#5
7755	fetch 16
7756
7757;@CPIR
7758opcode_ED_B1:
7759	readmem8HL
7760	add z80hl,z80hl,#1<<16
7761	mov r1,z80a,lsl#4
7762	cmp z80a,r0,lsl#24
7763	and z80f,z80f,#1<<CFlag
7764	orr z80f,z80f,#1<<NFlag
7765	orrmi z80f,z80f,#1<<SFlag
7766	orreq z80f,z80f,#1<<ZFlag
7767	cmp r1,r0,lsl#28
7768	orrcc z80f,z80f,#1<<HFlag
7769	subs z80bc,z80bc,#1<<16
7770	bne opcode_ED_B1_decpc
7771	fetch 16
7772opcode_ED_B1_decpc:
7773	orr z80f,z80f,#1<<VFlag
7774	tst z80f,#1<<ZFlag
7775	subeq z80pc,z80pc,#2
7776	subeq z80_icount,z80_icount,#5
7777	fetch 16
7778;@INIR
7779opcode_ED_B2:
7780	opIN_C
7781	and z80f,r0,#0x80
7782	mov z80f,z80f,lsr#2						;@NFlag set by bit 7
7783;@	mov r1,z80bc,lsl#8
7784;@	add r1,r1,#0x01000000
7785;@	adds r1,r1,r0,lsl#24
7786;@	orrcs z80f,z80f,#(1<<CFlag)|(1<<HFlag)	;@ CF & HF set if (HL) + ((C+1) & 0xFF) > 0xFF
7787	writemem8HL
7788	add z80hl,z80hl,#1<<16
7789	sub z80bc,z80bc,#1<<24
7790	tst z80bc,#0xFF<<24
7791	orrmi z80f,z80f,#1<<SFlag
7792	orreq z80f,z80f,#1<<ZFlag
7793	subne z80pc,z80pc,#2
7794	subne z80_icount,z80_icount,#5
7795	fetch 16
7796;@OTIR
7797opcode_ED_B3:
7798	readmem8HL
7799	add z80hl,z80hl,#1<<16
7800	and z80f,r0,#0x80
7801	mov z80f,z80f,lsr#2						;@NFlag set by bit 7
7802	mov r1,z80hl,lsl#8
7803	adds r1,r1,r0,lsl#24
7804	orrcs z80f,z80f,#(1<<CFlag)|(1<<HFlag)	;@ CF & HF set if r0+HL > 0xFF
7805	sub z80bc,z80bc,#1<<24
7806	tst z80bc,#0xFF<<24
7807	orrmi z80f,z80f,#1<<SFlag
7808	orreq z80f,z80f,#1<<ZFlag
7809	subne z80pc,z80pc,#2
7810	subne z80_icount,z80_icount,#5
7811	mov r1,r0
7812	opOUT_C
7813	fetch 16
7814;@LDDR
7815opcode_ED_B8:
7816	copymem8HL_DE
7817	sub z80hl,z80hl,#1<<16
7818	sub z80de,z80de,#1<<16
7819	subs z80bc,z80bc,#1<<16
7820	bic z80f,z80f,#(1<<VFlag)|(1<<NFlag)|(1<<HFlag)
7821	orrne z80f,z80f,#1<<VFlag
7822	subne z80pc,z80pc,#2
7823	subne z80_icount,z80_icount,#5
7824	fetch 16
7825
7826;@CPDR
7827opcode_ED_B9:
7828	readmem8HL
7829	sub z80hl,z80hl,#1<<16
7830	mov r1,z80a,lsl#4
7831	cmp z80a,r0,lsl#24
7832	and z80f,z80f,#1<<CFlag
7833	orr z80f,z80f,#1<<NFlag
7834	orrmi z80f,z80f,#1<<SFlag
7835	orreq z80f,z80f,#1<<ZFlag
7836	cmp r1,r0,lsl#28
7837	orrcc z80f,z80f,#1<<HFlag
7838	subs z80bc,z80bc,#1<<16
7839	bne opcode_ED_B9_decpc
7840	fetch 16
7841opcode_ED_B9_decpc:
7842	orr z80f,z80f,#1<<VFlag
7843	tst z80f,#1<<ZFlag
7844	subeq z80pc,z80pc,#2
7845	subeq z80_icount,z80_icount,#5
7846	fetch 16
7847;@INDR
7848opcode_ED_BA:
7849	opIN_C
7850	and z80f,r0,#0x80
7851	mov z80f,z80f,lsr#2						;@NFlag set by bit 7
7852;@	mov r1,z80bc,lsl#8
7853;@	sub r1,r1,#0x01000000
7854;@	adds r1,r1,r0,lsl#24
7855;@	orrcs z80f,z80f,#(1<<CFlag)|(1<<HFlag)	;@ CF & HF set if (HL) + ((C-1) & 0xFF) > 0xFF
7856	writemem8HL
7857	sub z80hl,z80hl,#1<<16
7858	sub z80bc,z80bc,#1<<24
7859	tst z80bc,#0xFF<<24
7860	orrmi z80f,z80f,#1<<SFlag
7861	orreq z80f,z80f,#1<<ZFlag
7862	subne z80pc,z80pc,#2
7863	subne z80_icount,z80_icount,#5
7864	fetch 16
7865;@OTDR
7866opcode_ED_BB:
7867	readmem8HL
7868	sub z80hl,z80hl,#1<<16
7869	and z80f,r0,#0x80
7870	mov z80f,z80f,lsr#2						;@NFlag set by bit 7
7871	mov r1,z80hl,lsl#8
7872	adds r1,r1,r0,lsl#24
7873	orrcs z80f,z80f,#(1<<CFlag)|(1<<HFlag)	;@ CF & HF set if r0+HL > 0xFF
7874	sub z80bc,z80bc,#1<<24
7875	tst z80bc,#0xFF<<24
7876	orrmi z80f,z80f,#1<<SFlag
7877	orreq z80f,z80f,#1<<ZFlag
7878	subne z80pc,z80pc,#2
7879	subne z80_icount,z80_icount,#5
7880	mov r1,r0
7881	opOUT_C
7882	fetch 16
7883;@##################################
7884;@##################################
7885;@###  opcodes FD  #########################
7886;@##################################
7887;@##################################
7888;@Since DD and FD opcodes are all the same apart from the address
7889;@register they use.  When a FD intruction the program runs the code
7890;@from the DD location but the address of the IY reg is passed instead
7891;@of IX
7892
7893;@end_loop:
7894;@     b end_loop
7895