1      .DATA
2;@ Reesy's Z80 Emulator Version 0.001
3
4;@ (c) Copyright 2004 Reesy, All rights reserved
5;@ DrZ80 is free for non-commercial use.
6
7;@ For commercial use, separate licencing terms must be obtained.
8
9      .global DrZ80Run
10      .global DrZ80Ver
11
12	  .equiv INTERRUPT_MODE, 		0		;@0 = Use internal int handler, 1 = Use Mames int handler
13	  .equiv FAST_Z80SP,			1		;@0 = Use mem functions for stack pointer, 1 = Use direct mem pointer
14	  .equiv GNGEO_OPTIM,                   1		;@0 = Use mem handler and rebase pc/sp, 1 = Use optim for gngeo
15
16.if INTERRUPT_MODE
17	  .extern Interrupt
18.endif
19
20DrZ80Ver: .long 0x0001
21
22;@---------------------------------------
23
24.macro fetch cycs
25	subs z80_icount,z80_icount,#\cycs
26	ldrplb r0,[z80pc],#1
27	ldrpl pc,[opcodes,r0, lsl #2]
28	bmi z80_execute_end
29.endm
30
31.macro eatcycles cycs
32	sub z80_icount,z80_icount,#\cycs
33.endm
34
35.if GNGEO_OPTIM
36.macro readmem8
37	ldr r1,[cpucontext,#z80pc_base]
38	ldrb r0,[r1,r0]
39.endm
40
41.macro readmem8HL
42	ldr r1,[cpucontext,#z80pc_base]
43	ldrb r0,[r1,z80hl, lsr #16]
44.endm
45
46.macro readmem16
47	ldr r1,[cpucontext,#z80pc_base]
48	ldrb r2,[r0,r1]!
49	ldrb r0,[r0, #1]
50	orr r0,r2, r0, lsl #8
51.endm
52
53.macro writemem8
54	ldr r2,[cpucontext,#z80pc_base]
55	strb r0,[r2,r1]
56.endm
57				;@ TODO
58@.macro writemem16
59@	ldr r2,[cpucontext,#z80pc_base]
60@	strb r1,[r0,r2]!
61@	mov r1, r1, lsr #8
62@	strb r1,[r0,#1]
63@.endm
64.macro writemem16
65	stmfd sp!,{r3,r12}
66	mov lr,pc
67	ldr pc,[cpucontext,#z80_write16]		;@ r0=data r1=addr
68	ldmfd sp!,{r3,r12}
69.endm
70
71.else
72.macro readmem8
73	stmfd sp!,{r3,r12}
74	mov lr,pc
75	ldr pc,[cpucontext,#z80_read8]			;@ r0 = addr - data returned in r0
76	ldmfd sp!,{r3,r12}
77.endm
78
79.macro readmem8HL
80	mov r0,z80hl, lsr #16
81	readmem8
82.endm
83
84.macro readmem16
85	stmfd sp!,{r3,r12}
86	mov lr,pc
87	ldr pc,[cpucontext,#z80_read16]
88	ldmfd sp!,{r3,r12}
89.endm
90
91.macro writemem8
92	stmfd sp!,{r3,r12}
93	mov lr,pc
94	ldr pc,[cpucontext,#z80_write8]			;@ r0=data r1=addr
95	ldmfd sp!,{r3,r12}
96.endm
97
98.macro writemem16
99	stmfd sp!,{r3,r12}
100	mov lr,pc
101	ldr pc,[cpucontext,#z80_write16]		;@ r0=data r1=addr
102	ldmfd sp!,{r3,r12}
103.endm
104
105.endif
106
107
108.macro writemem8DE
109	mov r1,z80de, lsr #16
110	writemem8
111.endm
112
113.macro writemem8HL
114	mov r1,z80hl, lsr #16
115	writemem8
116.endm
117
118.macro copymem8HL_DE
119	mov r0,z80hl, lsr #16
120	stmfd sp!,{r3,r12}
121	mov lr,pc
122	ldr pc,[cpucontext,#z80_read8]			;@ r0 = addr - data returned in r0
123	mov r1,z80de, lsr #16
124	mov lr,pc
125	ldr pc,[cpucontext,#z80_write8]			;@ r0=data r1=addr
126	ldmfd sp!,{r3,r12}
127.endm
128;@---------------------------------------
129.if GNGEO_OPTIM
130.macro rebasepc
131	ldr r1,[cpucontext,#z80pc_base]
132	add z80pc,r0,r1
133.endm
134.else
135.macro rebasepc
136	stmfd sp!,{r3,r12}
137	mov lr,pc
138	ldr pc,[cpucontext,#z80_rebasePC]		;@ r0=new pc - external function sets z80pc_base and returns new z80pc in r0
139	ldmfd sp!,{r3,r12}
140	mov z80pc,r0
141.endm
142.endif
143
144.if GNGEO_OPTIM
145.macro rebasesp
146	ldr r1,[cpucontext,#z80sp_base]
147	add z80sp,r0,r1
148.endm
149.else
150.macro rebasesp
151	stmfd sp!,{r3,r12}
152	mov lr,pc
153	ldr pc,[cpucontext,#z80_rebaseSP]		;@ external function must rebase sp
154	ldmfd sp!,{r3,r12}
155	mov z80sp,r0
156.endm
157.endif
158;@----------------------------------------------------------------------------
159
160.macro opADC
161	movs z80f,z80f,lsr#2					;@ get C
162	subcs r0,r0,#0x100
163	eor z80f,r0,z80a,lsr#24					;@ prepare for check of half carry
164	adcs z80a,z80a,r0,ror#8
165	mrs r0,cpsr								;@ S,Z,V&C
166	eor z80f,z80f,z80a,lsr#24
167	and z80f,z80f,#1<<HFlag					;@ H, correct
168	orr z80f,z80f,r0,lsr#28
169.endm
170
171.macro opADCA
172	movs z80f,z80f,lsr#2					;@ get C
173	orrcs z80a,z80a,#0x00800000
174	adds z80a,z80a,z80a
175	mrs z80f,cpsr							;@ S,Z,V&C
176	mov z80f,z80f,lsr#28
177	tst z80a,#0x10000000					;@ H, correct
178	orrne z80f,z80f,#1<<HFlag
179	fetch 4
180.endm
181
182.macro opADCH reg
183	mov r0,\reg,lsr#24
184	opADC
185	fetch 4
186.endm
187
188.macro opADCL reg
189	movs z80f,z80f,lsr#2					;@ get C
190	adc r0,\reg,\reg,lsr#15
191	orrcs z80a,z80a,#0x00800000
192	mov r1,z80a,lsl#4						;@ Prepare for check of half carry
193	adds z80a,z80a,r0,lsl#23
194	mrs z80f,cpsr							;@ S,Z,V&C
195	mov z80f,z80f,lsr#28
196	cmn r1,r0,lsl#27
197	orrcs z80f,z80f,#1<<HFlag				;@ H, correct
198	fetch 4
199.endm
200
201.macro opADCb
202	opADC
203.endm
204;@---------------------------------------
205
206.macro opADD reg shift
207	mov r1,z80a,lsl#4						;@ Prepare for check of half carry
208	adds z80a,z80a,\reg,lsl#\shift
209	mrs z80f,cpsr							;@ S,Z,V&C
210	mov z80f,z80f,lsr#28
211	cmn r1,\reg,lsl#\shift+4
212	orrcs z80f,z80f,#1<<HFlag
213.endm
214
215.macro opADDA
216	adds z80a,z80a,z80a
217	mrs z80f,cpsr							;@ S,Z,V&C
218	mov z80f,z80f,lsr#28
219	tst z80a,#0x10000000					;@ H, correct
220	orrne z80f,z80f,#1<<HFlag
221	fetch 4
222.endm
223
224.macro opADDH reg
225	and r0,\reg,#0xFF000000
226	opADD r0 0
227	fetch 4
228.endm
229
230.macro opADDL reg
231	opADD \reg 8
232	fetch 4
233.endm
234
235.macro opADDb
236	opADD r0 24
237.endm
238;@---------------------------------------
239
240.macro opADC16 reg
241	movs z80f,z80f,lsr#2					;@ get C
242	adc r0,z80a,\reg,lsr#15
243	orrcs z80hl,z80hl,#0x00008000
244	mov r1,z80hl,lsl#4
245	adds z80hl,z80hl,r0,lsl#15
246	mrs z80f,cpsr							;@ S, Z, V & C
247	mov z80f,z80f,lsr#28
248	cmn r1,r0,lsl#19
249	orrcs z80f,z80f,#1<<HFlag
250	fetch 15
251.endm
252
253.macro opADC16HL
254	movs z80f,z80f,lsr#2					;@ get C
255	orrcs z80hl,z80hl,#0x00008000
256	adds z80hl,z80hl,z80hl
257	mrs z80f,cpsr							;@ S, Z, V & C
258	mov z80f,z80f,lsr#28
259	tst z80hl,#0x10000000					;@ H, correct.
260	orrne z80f,z80f,#1<<HFlag
261	fetch 15
262.endm
263
264.macro opADD16 reg1 reg2
265	mov r1,\reg1,lsl#4						;@ Prepare for check of half carry
266	adds \reg1,\reg1,\reg2
267	bic z80f,z80f,#(1<<CFlag)|(1<<HFlag)|(1<<NFlag)
268	orrcs z80f,z80f,#1<<CFlag
269	cmn r1,\reg2,lsl#4
270	orrcs z80f,z80f,#1<<HFlag
271.endm
272
273.macro opADD16s reg1 reg2 shift
274	mov r1,\reg1,lsl#4						;@ Prepare for check of half carry
275	adds \reg1,\reg1,\reg2,lsl#\shift
276	bic z80f,z80f,#(1<<CFlag)|(1<<HFlag)|(1<<NFlag)
277	orrcs z80f,z80f,#1<<CFlag
278	cmn r1,\reg2,lsl#4+\shift
279	orrcs z80f,z80f,#1<<HFlag
280.endm
281
282.macro opADD16_2 reg
283	adds \reg,\reg,\reg
284	bic z80f,z80f,#(1<<CFlag)|(1<<HFlag)|(1<<NFlag)
285	orrcs z80f,z80f,#1<<CFlag
286	tst \reg,#0x10000000					;@ H, correct.
287	orrne z80f,z80f,#1<<HFlag
288.endm
289;@---------------------------------------
290
291.macro opAND reg shift
292	and z80a,z80a,\reg,lsl#\shift
293	sub r0,opcodes,#0x100
294	ldrb z80f,[r0,z80a, lsr #24]
295	orr z80f,z80f,#1<<HFlag
296.endm
297
298.macro opANDA
299	sub r0,opcodes,#0x100
300	ldrb z80f,[r0,z80a, lsr #24]
301	orr z80f,z80f,#1<<HFlag
302	fetch 4
303.endm
304
305.macro opANDH reg
306	opAND \reg 0
307	fetch 4
308.endm
309
310.macro opANDL reg
311	opAND \reg 8
312	fetch 4
313.endm
314
315.macro opANDb
316	opAND r0 24
317.endm
318;@---------------------------------------
319
320.macro opBITH reg bit
321	and z80f,z80f,#1<<CFlag
322	tst \reg,#1<<(24+\bit)
323	orreq z80f,z80f,#(1<<HFlag)|(1<<ZFlag)|(1<<VFlag)
324	orrne z80f,z80f,#(1<<HFlag)
325	fetch 8
326.endm
327
328.macro opBIT7H reg
329	and z80f,z80f,#1<<CFlag
330	tst \reg,#1<<(24+7)
331	orreq z80f,z80f,#(1<<HFlag)|(1<<ZFlag)|(1<<VFlag)
332	orrne z80f,z80f,#(1<<HFlag)|(1<<SFlag)
333	fetch 8
334.endm
335
336.macro opBITL reg bit
337	and z80f,z80f,#1<<CFlag
338	tst \reg,#1<<(16+\bit)
339	orreq z80f,z80f,#(1<<HFlag)|(1<<ZFlag)|(1<<VFlag)
340	orrne z80f,z80f,#(1<<HFlag)
341	fetch 8
342.endm
343
344.macro opBIT7L reg
345	and z80f,z80f,#1<<CFlag
346	tst \reg,#1<<(16+7)
347	orreq z80f,z80f,#(1<<HFlag)|(1<<ZFlag)|(1<<VFlag)
348	orrne z80f,z80f,#(1<<HFlag)|(1<<SFlag)
349	fetch 8
350.endm
351
352.macro opBITb bit
353	and z80f,z80f,#1<<CFlag
354	tst r0,#1<<\bit
355	orreq z80f,z80f,#(1<<HFlag)|(1<<ZFlag)|(1<<VFlag)
356	orrne z80f,z80f,#(1<<HFlag)
357.endm
358
359.macro opBIT7b
360	and z80f,z80f,#1<<CFlag
361	tst r0,#1<<7
362	orreq z80f,z80f,#(1<<HFlag)|(1<<ZFlag)|(1<<VFlag)
363	orrne z80f,z80f,#(1<<HFlag)|(1<<SFlag)
364.endm
365;@---------------------------------------
366
367.macro opCP reg shift
368	mov r1,z80a,lsl#4						;@ prepare for check of half carry
369	cmp z80a,\reg,lsl#\shift
370	mrs z80f,cpsr
371	mov z80f,z80f,lsr#28					;@ S,Z,V&C
372	eor z80f,z80f,#(1<<CFlag)|(1<<NFlag)	;@ invert C and set n
373	cmp r1,\reg,lsl#\shift+4
374	orrcc z80f,z80f,#1<<HFlag
375.endm
376
377.macro opCPA
378	mov z80f,#(1<<ZFlag)|(1<<NFlag)			;@ set Z & n
379	fetch 4
380.endm
381
382.macro opCPH reg
383	and r0,\reg,#0xFF000000
384	opCP r0 0
385	fetch 4
386.endm
387
388.macro opCPL reg
389	opCP \reg 8
390	fetch 4
391.endm
392
393.macro opCPb
394	opCP r0 24
395.endm
396;@---------------------------------------
397
398.macro opDEC8 reg							;@for A and memory
399	and z80f,z80f,#1<<CFlag					;@save carry
400	orr z80f,z80f,#1<<NFlag					;@set n
401	tst \reg,#0x0f000000
402	orreq z80f,z80f,#1<<HFlag
403	subs \reg,\reg,#0x01000000
404	orrmi z80f,z80f,#1<<SFlag
405	orrvs z80f,z80f,#1<<VFlag
406	orreq z80f,z80f,#1<<ZFlag
407.endm
408
409.macro opDEC8H reg							;@for B, D & H
410	and z80f,z80f,#1<<CFlag					;@save carry
411	orr z80f,z80f,#1<<NFlag					;@set n
412	tst \reg,#0x0f000000
413	orreq z80f,z80f,#1<<HFlag
414	subs \reg,\reg,#0x01000000
415	orrmi z80f,z80f,#1<<SFlag
416	orrvs z80f,z80f,#1<<VFlag
417	tst \reg,#0xff000000					;@Z
418	orreq z80f,z80f,#1<<ZFlag
419.endm
420
421.macro opDEC8L reg							;@for C, E & L
422	mov \reg,\reg,ror#24
423	opDEC8H \reg
424	mov \reg,\reg,ror#8
425.endm
426
427.macro opDEC8b								;@for memory
428	mov r0,r0,lsl#24
429	opDEC8 r0
430	mov r0,r0,lsr#24
431.endm
432;@---------------------------------------
433
434.macro opIN
435	stmfd sp!,{r3,r12}
436	mov lr,pc
437	ldr pc,[cpucontext,#z80_in]				;@ r0=port - data returned in r0
438	ldmfd sp!,{r3,r12}
439.endm
440
441.macro opIN_C
442	mov r0,z80bc, lsr #16
443	opIN
444.endm
445;@---------------------------------------
446
447.macro opINC8 reg							;@for A and memory
448	and z80f,z80f,#1<<CFlag					;@save carry, clear n
449	adds \reg,\reg,#0x01000000
450	orrmi z80f,z80f,#1<<SFlag
451	orrvs z80f,z80f,#1<<VFlag
452	orrcs z80f,z80f,#1<<ZFlag				;@cs when going from 0xFF to 0x00
453	tst \reg,#0x0f000000
454	orreq z80f,z80f,#1<<HFlag
455.endm
456
457.macro opINC8H reg							;@for B, D & H
458	opINC8 \reg
459.endm
460
461.macro opINC8L reg							;@for C, E & L
462	mov \reg,\reg,ror#24
463	opINC8 \reg
464	mov \reg,\reg,ror#8
465.endm
466
467.macro opINC8b								;@for memory
468	mov r0,r0,lsl#24
469	opINC8 r0
470	mov r0,r0,lsr#24
471.endm
472;@---------------------------------------
473
474.macro opOR reg shift
475	orr z80a,z80a,\reg,lsl#\shift
476	sub r0,opcodes,#0x100
477	ldrb z80f,[r0,z80a, lsr #24]
478.endm
479
480.macro opORA
481	sub r0,opcodes,#0x100
482	ldrb z80f,[r0,z80a, lsr #24]
483	fetch 4
484.endm
485
486.macro opORH reg
487	and r0,\reg,#0xFF000000
488	opOR r0 0
489	fetch 4
490.endm
491
492.macro opORL reg
493	opOR \reg 8
494	fetch 4
495.endm
496
497.macro opORb
498	opOR r0 24
499.endm
500;@---------------------------------------
501
502.macro opOUT
503	stmfd sp!,{r3,r12}
504	mov lr,pc
505	ldr pc,[cpucontext,#z80_out]			;@ r0=port r1=data
506	ldmfd sp!,{r3,r12}
507.endm
508
509.macro opOUT_C
510	mov r0,z80bc, lsr #16
511	opOUT
512.endm
513;@---------------------------------------
514
515.macro opPOP
516.if FAST_Z80SP
517	ldrb r0,[z80sp],#1
518	ldrb r1,[z80sp],#1
519	orr r0,r0,r1, lsl #8
520.else
521	mov r0,z80sp
522	readmem16
523	add z80sp,z80sp,#2
524.endif
525.endm
526
527.macro opPOPreg reg
528	opPOP
529	mov \reg,r0, lsl #16
530	fetch 10
531.endm
532;@---------------------------------------
533
534.macro opPUSHreg reg
535.if FAST_Z80SP
536	mov r1,\reg, lsr #24
537	strb r1,[z80sp,#-1]!
538	mov r1,\reg, lsr #16
539	strb r1,[z80sp,#-1]!
540.else
541	mov r0,\reg,lsr #16
542	sub z80sp,z80sp,#2
543	mov r1,z80sp
544	writemem16
545.endif
546.endm
547;@---------------------------------------
548
549.macro opRESmemHL bit
550	mov r0,z80hl, lsr #16
551	stmfd sp!,{r3,r12}
552	mov lr,pc
553	ldr pc,[cpucontext,#z80_read8]			;@ r0 = addr - data returned in r0
554	bic r0,r0,#1<<\bit
555	mov r1,z80hl, lsr #16
556	mov lr,pc
557	ldr pc,[cpucontext,#z80_write8]			;@ r0=data r1=addr
558	ldmfd sp!,{r3,r12}
559	fetch 15
560.endm
561;@---------------------------------------
562
563.macro opRESmem bit
564	stmfd sp!,{r3,r12}
565	stmfd sp!,{r0}							;@ save addr as well
566	mov lr,pc
567	ldr pc,[cpucontext,#z80_read8] 			;@ r0=addr - data returned in r0
568	bic r0,r0,#1<<\bit
569	ldmfd sp!,{r1}							;@ restore addr into r1
570	mov lr,pc
571	ldr pc,[cpucontext,#z80_write8]			;@ r0=data r1=addr
572	ldmfd sp!,{r3,r12}
573	fetch 23
574.endm
575;@---------------------------------------
576
577.macro opRL reg1 reg2 shift
578	movs \reg1,\reg2,lsl#\shift
579	tst z80f,#1<<CFlag						;@doesn't affect ARM carry, as long as the imidiate value is < 0x100. Watch out!
580	orrne \reg1,\reg1,#0x01000000
581;@	and r2,z80f,#1<<CFlag
582;@	orr $x,$x,r2,lsl#23
583	sub r1,opcodes,#0x100
584	ldrb z80f,[r1,\reg1,lsr#24]				;@get PZS
585	orrcs z80f,z80f,#1<<CFlag
586.endm
587
588.macro opRLA
589	opRL z80a z80a 1
590	fetch 8
591.endm
592
593.macro opRLH reg
594	and r0,\reg,#0xFF000000					;@mask high to r0
595	adds \reg,\reg,r0
596	tst z80f,#1<<CFlag						;@doesn't affect ARM carry, as long as the imidiate value is < 0x100. Watch out!
597	orrne \reg,\reg,#0x01000000
598	sub r1,opcodes,#0x100
599	ldrb z80f,[r1,\reg,lsr#24]				;@get PZS
600	orrcs z80f,z80f,#1<<CFlag
601	fetch 8
602.endm
603
604.macro opRLL reg
605	opRL r0 \reg 9
606	and \reg,\reg,#0xFF000000				;@mask out high
607	orr \reg,\reg,r0,lsr#8
608	fetch 8
609.endm
610
611.macro opRLb
612	opRL r0 r0 25
613	mov r0,r0,lsr#24
614.endm
615;@---------------------------------------
616
617.macro opRLC reg1 reg2 shift
618	movs \reg1,\reg2,lsl#\shift
619	orrcs \reg1,\reg1,#0x01000000
620	sub r1,opcodes,#0x100
621	ldrb z80f,[r1,\reg1,lsr#24]
622	orrcs z80f,z80f,#1<<CFlag
623.endm
624
625.macro opRLCA
626	opRLC z80a z80a 1
627	fetch 8
628.endm
629
630.macro opRLCH reg
631	and r0,\reg,#0xFF000000					;@mask high to r0
632	adds \reg,\reg,r0
633	orrcs \reg,\reg,#0x01000000
634	sub r1,opcodes,#0x100
635	ldrb z80f,[r1,\reg,lsr#24]
636	orrcs z80f,z80f,#1<<CFlag
637	fetch 8
638.endm
639
640.macro opRLCL reg
641	opRLC r0 \reg 9
642	and \reg,\reg,#0xFF000000				;@mask out high
643	orr \reg,\reg,r0,lsr#8
644	fetch 8
645.endm
646
647.macro opRLCb
648	opRLC r0 r0 25
649	mov r0,r0,lsr#24
650.endm
651;@---------------------------------------
652
653.macro opRR reg1 reg2 shift
654	movs \reg1,\reg2,lsr#\shift
655	tst z80f,#1<<CFlag						;@doesn't affect ARM carry, as long as the imidiate value is < 0x100. Watch out!
656	orrne \reg1,\reg1,#0x00000080
657;@	and r2,z80_f,#PSR_C
658;@	orr \reg1,\reg1,r2,lsl#6
659	sub r1,opcodes,#0x100
660	ldrb z80f,[r1,\reg1]
661	orrcs z80f,z80f,#1<<CFlag
662.endm
663
664.macro opRRA
665	orr z80a,z80a,z80f,lsr#1				;@get C
666	movs z80a,z80a,ror#25
667	mov z80a,z80a,lsl#24
668	sub r1,opcodes,#0x100
669	ldrb z80f,[r1,z80a,lsr#24]
670	orrcs z80f,z80f,#1<<CFlag
671	fetch 8
672.endm
673
674.macro opRRH reg
675	orr r0,\reg,z80f,lsr#1					;@get C
676	movs r0,r0,ror#25
677	and \reg,\reg,#0x00FF0000				;@mask out low
678	orr \reg,\reg,r0,lsl#24
679	sub r1,opcodes,#0x100
680	ldrb z80f,[r1,\reg,lsr#24]
681	orrcs z80f,z80f,#1<<CFlag
682	fetch 8
683.endm
684
685.macro opRRL reg
686	and r0,\reg,#0x00FF0000					;@mask out low to r0
687	opRR r0 r0 17
688	and \reg,\reg,#0xFF000000				;@mask out high
689	orr \reg,\reg,r0,lsl#16
690	fetch 8
691.endm
692
693.macro opRRb
694	opRR r0 r0 1
695.endm
696;@---------------------------------------
697
698.macro opRRC reg1 reg2 shift
699	movs \reg1,\reg2,lsr#\shift
700	orrcs \reg1,\reg1,#0x00000080
701	sub r1,opcodes,#0x100
702	ldrb z80f,[r1,\reg1]
703	orrcs z80f,z80f,#1<<CFlag
704.endm
705
706.macro opRRCA
707	opRRC z80a z80a 25
708	mov z80a,z80a,lsl#24
709	fetch 8
710.endm
711
712.macro opRRCH reg
713	opRRC r0 \reg 25
714	and \reg,\reg,#0x00FF0000				;@mask out low
715	orr \reg,\reg,r0,lsl#24
716	fetch 8
717.endm
718
719.macro opRRCL reg
720	and r0,\reg,#0x00FF0000					;@mask low to r0
721	opRRC r0 r0 17
722	and \reg,\reg,#0xFF000000				;@mask out high
723	orr \reg,\reg,r0,lsl#16
724	fetch 8
725.endm
726
727.macro opRRCb
728	opRRC r0 r0 1
729.endm
730;@---------------------------------------
731
732.macro opRST addr
733	ldr r0,[cpucontext,#z80pc_base]
734	sub r0,z80pc,r0
735.if FAST_Z80SP
736	mov r1,r0, lsr #8
737	strb r1,[z80sp,#-1]!
738	strb r0,[z80sp,#-1]!
739.else
740	sub z80sp,z80sp,#2
741	mov r1,z80sp
742	writemem16
743.endif
744	mov r0,#\addr
745	rebasepc
746	fetch 11
747.endm
748;@---------------------------------------
749
750.macro opSBC
751	eor z80f,z80f,#1<<CFlag					;@ invert C
752	movs z80f,z80f,lsr#2					;@ get C
753	subcc r0,r0,#0x100
754	eor z80f,r0,z80a,lsr#24					;@ prepare for check of H
755	sbcs z80a,z80a,r0,ror#8
756	mrs r0,cpsr
757	eor z80f,z80f,z80a,lsr#24
758	and z80f,z80f,#1<<HFlag					;@ H, correct
759	orr z80f,z80f,r0,lsr#28					;@ S,Z,V&C
760	eor z80f,z80f,#(1<<CFlag)|(1<<NFlag)	;@ invert C and set n.
761.endm
762
763.macro opSBCA
764	movs z80f,z80f,lsr#2					;@ get C
765	movcc z80a,#0x00000000
766	movcs z80a,#0xFF000000
767	movcc z80f,#(1<<NFlag)|(1<<ZFlag)
768	movcs z80f,#(1<<NFlag)|(1<<SFlag)|(1<<CFlag)|(1<<HFlag)
769	fetch 4
770.endm
771
772.macro opSBCH reg
773	mov r0,\reg,lsr#24
774	opSBC
775	fetch 4
776.endm
777
778.macro opSBCL reg
779	mov r0,\reg,lsl#8
780	eor z80f,z80f,#1<<CFlag					;@ invert C
781	movs z80f,z80f,lsr#2					;@ get C
782	sbccc r0,r0,#0xFF000000
783	mov r1,z80a,lsl#4						;@ prepare for check of H
784	sbcs z80a,z80a,r0
785	mrs z80f,cpsr
786	mov z80f,z80f,lsr#28					;@ S,Z,V&C
787	eor z80f,z80f,#(1<<CFlag)|(1<<NFlag)	;@ invert C and set n.
788	cmp r1,r0,lsl#4
789	orrcc z80f,z80f,#1<<HFlag				;@ H, correct
790	fetch 4
791.endm
792
793.macro opSBCb
794	opSBC
795.endm
796;@---------------------------------------
797
798.macro opSBC16 reg
799	eor z80f,z80f,#1<<CFlag					;@ invert C
800	movs z80f,z80f,lsr#2					;@ get C
801	sbc r1,r1,r1							;@ set r1 to -1 or 0.
802	orr r0,\reg,r1,lsr#16
803	mov r1,z80hl,lsl#4						;@ prepare for check of H
804	sbcs z80hl,z80hl,r0
805	mrs z80f,cpsr
806	mov z80f,z80f,lsr#28					;@ S,Z,V&C
807	eor z80f,z80f,#(1<<CFlag)|(1<<NFlag)	;@ invert C and set n.
808	cmp r1,r0,lsl#4
809	orrcc z80f,z80f,#1<<HFlag				;@ H, correct
810	fetch 15
811.endm
812
813.macro opSBC16HL
814	movs z80f,z80f,lsr#2					;@ get C
815	mov z80hl,#0x00000000
816	subcs z80hl,z80hl,#0x00010000
817	movcc z80f,#(1<<NFlag)|(1<<ZFlag)
818	movcs z80f,#(1<<NFlag)|(1<<SFlag)|(1<<CFlag)|(1<<HFlag)
819	fetch 15
820.endm
821;@---------------------------------------
822
823.macro opSETmemHL bit
824	mov r0,z80hl, lsr #16
825	stmfd sp!,{r3,r12}
826	mov lr,pc
827	ldr pc,[cpucontext,#z80_read8]			;@ r0 = addr - data returned in r0
828	orr r0,r0,#1<<\bit
829	mov r1,z80hl, lsr #16
830	mov lr,pc
831	ldr pc,[cpucontext,#z80_write8]			;@ r0=data r1=addr
832	ldmfd sp!,{r3,r12}
833	fetch 15
834.endm
835;@---------------------------------------
836
837.macro opSETmem bit
838	stmfd sp!,{r3,r12}
839	stmfd sp!,{r0}	;@ save addr as well
840	mov lr,pc
841	ldr pc,[cpucontext,#z80_read8]			;@ r0=addr - data returned in r0
842	orr r0,r0,#1<<\bit
843	ldmfd sp!,{r1}	;@ restore addr into r1
844	mov lr,pc
845	ldr pc,[cpucontext,#z80_write8]			;@ r0=data r1=addr
846	ldmfd sp!,{r3,r12}
847	fetch 23
848.endm
849;@---------------------------------------
850
851.macro opSLA reg1 reg2 shift
852	movs \reg1,\reg2,lsl#\shift
853	sub r1,opcodes,#0x100
854	ldrb z80f,[r1,\reg1,lsr#24]
855	orrcs z80f,z80f,#1<<CFlag
856.endm
857
858.macro opSLAA
859	opSLA z80a z80a 1
860	fetch 8
861.endm
862
863.macro opSLAH reg
864	and r0,\reg,#0xFF000000					;@mask high to r0
865	adds \reg,\reg,r0
866	sub r1,opcodes,#0x100
867	ldrb z80f,[r1,\reg,lsr#24]
868	orrcs z80f,z80f,#1<<CFlag
869	fetch 8
870.endm
871
872.macro opSLAL reg
873	opSLA r0 \reg 9
874	and \reg,\reg,#0xFF000000				;@mask out high
875	orr \reg,\reg,r0,lsr#8
876	fetch 8
877.endm
878
879.macro opSLAb
880	opSLA r0 r0 25
881	mov r0,r0,lsr#24
882.endm
883;@---------------------------------------
884
885.macro opSLL reg1 reg2 shift
886	movs \reg1,\reg2,lsl#\shift
887	orr \reg1,\reg1,#0x01000000
888	sub r1,opcodes,#0x100
889	ldrb z80f,[r1,\reg1,lsr#24]
890	orrcs z80f,z80f,#1<<CFlag
891.endm
892
893.macro opSLLA
894	opSLL z80a z80a 1
895	fetch 8
896.endm
897
898.macro opSLLH reg
899	and r0,\reg,#0xFF000000					;@mask high to r0
900	adds \reg,\reg,r0
901	orr \reg,\reg,#0x01000000
902	sub r1,opcodes,#0x100
903	ldrb z80f,[r1,\reg,lsr#24]
904	orrcs z80f,z80f,#1<<CFlag
905	fetch 8
906.endm
907
908.macro opSLLL reg
909	opSLL r0 \reg 9
910	and \reg,\reg,#0xFF000000				;@mask out high
911	orr \reg,\reg,r0,lsr#8
912	fetch 8
913.endm
914
915.macro opSLLb
916	opSLL r0 r0 25
917	mov r0,r0,lsr#24
918.endm
919;@---------------------------------------
920
921.macro opSRA reg1 reg2
922	movs \reg1,\reg2,asr#25
923	and \reg1,\reg1,#0xFF
924	sub r1,opcodes,#0x100
925	ldrb z80f,[r1,\reg1]
926	orrcs z80f,z80f,#1<<CFlag
927.endm
928
929.macro opSRAA
930	movs r0,z80a,asr#25
931	mov z80a,r0,lsl#24
932	sub r1,opcodes,#0x100
933	ldrb z80f,[r1,z80a,lsr#24]
934	orrcs z80f,z80f,#1<<CFlag
935	fetch 8
936.endm
937
938.macro opSRAH reg
939	movs r0,\reg,asr#25
940	and \reg,\reg,#0x00FF0000				;@mask out low
941	orr \reg,\reg,r0,lsl#24
942	sub r1,opcodes,#0x100
943	ldrb z80f,[r1,\reg,lsr#24]
944	orrcs z80f,z80f,#1<<CFlag
945	fetch 8
946.endm
947
948.macro opSRAL reg
949	mov r0,\reg,lsl#8
950	opSRA r0 r0
951	and \reg,\reg,#0xFF000000				;@mask out high
952	orr \reg,\reg,r0,lsl#16
953	fetch 8
954.endm
955
956.macro opSRAb
957	mov r0,r0,lsl#24
958	opSRA r0 r0
959.endm
960;@---------------------------------------
961
962.macro opSRL reg1 reg2 shift
963	movs \reg1,\reg2,lsr#\shift
964	sub r1,opcodes,#0x100
965	ldrb z80f,[r1,\reg1]
966	orrcs z80f,z80f,#1<<CFlag
967.endm
968
969.macro opSRLA
970	opSRL z80a z80a 25
971	mov z80a,z80a,lsl#24
972	fetch 8
973.endm
974
975.macro opSRLH reg
976	opSRL r0 \reg 25
977	and \reg,\reg,#0x00FF0000				;@mask out low
978	orr \reg,\reg,r0,lsl#24
979	fetch 8
980.endm
981
982.macro opSRLL reg
983	mov r0,\reg,lsl#8
984	opSRL r0 r0 25
985	and \reg,\reg,#0xFF000000				;@mask out high
986	orr \reg,\reg,r0,lsl#16
987	fetch 8
988.endm
989
990.macro opSRLb
991	opSRL r0 r0 1
992.endm
993;@---------------------------------------
994
995.macro opSUB reg shift
996	mov r1,z80a,lsl#4 						;@ Prepare for check of half carry
997	subs z80a,z80a,\reg,lsl#\shift
998	mrs z80f,cpsr
999	mov z80f,z80f,lsr#28					;@ S,Z,V&C
1000	eor z80f,z80f,#(1<<CFlag)|(1<<NFlag)	;@ invert C and set n
1001	cmp r1,\reg,lsl#\shift+4
1002	orrcc z80f,z80f,#1<<HFlag
1003.endm
1004
1005.macro opSUBA
1006	mov z80a,#0
1007	mov z80f,#(1<<ZFlag)|(1<<NFlag)			;@ set Z & n
1008	fetch 4
1009.endm
1010
1011.macro opSUBH reg
1012	and r0,\reg,#0xFF000000
1013	opSUB r0 0
1014	fetch 4
1015.endm
1016
1017.macro opSUBL reg
1018	opSUB \reg 8
1019	fetch 4
1020.endm
1021
1022.macro opSUBb
1023	opSUB r0 24
1024.endm
1025;@---------------------------------------
1026
1027.macro opXOR reg shift
1028	eor z80a,z80a,\reg,lsl#\shift
1029	sub r0,opcodes,#0x100
1030	ldrb z80f,[r0,z80a, lsr #24]
1031.endm
1032
1033.macro opXORA
1034	mov z80a,#0
1035	mov z80f,#(1<<ZFlag)|(1<<VFlag)
1036	fetch 4
1037.endm
1038
1039.macro opXORH reg
1040	and r0,\reg,#0xFF000000
1041	opXOR r0 0
1042	fetch 4
1043.endm
1044
1045.macro opXORL reg
1046	opXOR \reg 8
1047	fetch 4
1048.endm
1049
1050.macro opXORb
1051	opXOR r0 24
1052.endm
1053;@---------------------------------------
1054
1055
1056;@ --------------------------- Defines ----------------------------
1057;@ Make sure that regs/pointers for z80pc to z80sp match up!
1058
1059	opcodes .req r3
1060	z80_icount .req r4
1061	cpucontext .req r5
1062	z80pc .req r6
1063	z80a .req r7
1064	z80f .req r8
1065	z80bc .req r9
1066	z80de .req r10
1067	z80hl .req r11
1068	z80sp .req r12
1069	z80xx .req lr
1070
1071	.equ z80pc_pointer,           0                  ;@  0
1072	.equ z80a_pointer,            z80pc_pointer+4    ;@  4
1073	.equ z80f_pointer,            z80a_pointer+4     ;@  8
1074	.equ z80bc_pointer,           z80f_pointer+4     ;@
1075	.equ z80de_pointer,           z80bc_pointer+4
1076	.equ z80hl_pointer,           z80de_pointer+4
1077	.equ z80sp_pointer,           z80hl_pointer+4
1078	.equ z80pc_base,              z80sp_pointer+4
1079	.equ z80sp_base,              z80pc_base+4
1080	.equ z80ix,                   z80sp_base+4
1081	.equ z80iy,                   z80ix+4
1082	.equ z80i,                    z80iy+4
1083	.equ z80a2,                   z80i+4
1084	.equ z80f2,                   z80a2+4
1085	.equ z80bc2,                  z80f2+4
1086	.equ z80de2,                  z80bc2+4
1087	.equ z80hl2,                  z80de2+4
1088	.equ z80irq,                  z80hl2+4
1089	.equ z80if,                   z80irq+1
1090	.equ z80im,                   z80if+1
1091	.equ z80r,                    z80im+1
1092	.equ z80irqvector,            z80r+1
1093	.equ z80irqcallback,          z80irqvector+4
1094	.equ z80_write8,              z80irqcallback+4
1095	.equ z80_write16,             z80_write8+4
1096	.equ z80_in,                  z80_write16+4
1097	.equ z80_out,                 z80_in+4
1098	.equ z80_read8,               z80_out+4
1099	.equ z80_read16,              z80_read8+4
1100	.equ z80_rebaseSP,            z80_read16+4
1101	.equ z80_rebasePC,            z80_rebaseSP+4
1102
1103	.equ VFlag, 0
1104	.equ CFlag, 1
1105	.equ ZFlag, 2
1106	.equ SFlag, 3
1107	.equ HFlag, 4
1108	.equ NFlag, 5
1109	.equ Flag3, 6
1110	.equ Flag5, 7
1111
1112	.equ Z80_CFlag, 0
1113	.equ Z80_NFlag, 1
1114	.equ Z80_VFlag, 2
1115	.equ Z80_Flag3, 3
1116	.equ Z80_HFlag, 4
1117	.equ Z80_Flag5, 5
1118	.equ Z80_ZFlag, 6
1119	.equ Z80_SFlag, 7
1120
1121	.equ Z80_IF1, 1<<0
1122	.equ Z80_IF2, 1<<1
1123	.equ Z80_HALT, 1<<2
1124
1125;@ --------------------------- Framework --------------------------
1126
1127DrZ80Run:
1128	;@ r0 = pointer to cpu context
1129	;@ r1 = ISTATES to execute
1130	;@#########################################
1131	stmdb sp!,{r4-r12,lr}					;@ save registers on stack
1132	mov cpucontext,r0						;@ setup main memory pointer
1133	mov z80_icount,r1						;@ setup number of Tstates to execute
1134	ldmia cpucontext,{z80pc-z80sp}			;@ load Z80 registers
1135
1136
1137	ldr opcodes,MAIN_opcodes_POINTER2
1138
1139.if INTERRUPT_MODE == 0
1140	;@ check ints
1141	bl DoInterrupt  ;@ done in mame now
1142.endif
1143
1144	ldrb r0,[z80pc],#1    ;@ get first op code
1145	ldr pc,[opcodes,r0, lsl #2]  ;@ execute op code
1146
1147MAIN_opcodes_POINTER2: .word MAIN_opcodes
1148
1149
1150z80_execute_end:
1151	;@ save registers in CPU context
1152	stmia cpucontext,{z80pc-z80sp}			;@ save Z80 registers
1153	ldmia sp!,{r4-r12,pc}					;@ restore registers from stack and return to C code
1154
1155.if INTERRUPT_MODE
1156Interrupt_local: .word Interrupt
1157.endif
1158
1159DoInterrupt:
1160.if INTERRUPT_MODE
1161	;@ Don't do own int handler, call mames instead
1162
1163	;@ save everything back into DrZ80 context
1164	stmia cpucontext,{z80pc-z80sp}			;@ save Z80 registers
1165	stmfd sp!,{r3,r4,r5,lr}					;@ save rest of regs on stack
1166	mov lr,pc
1167	ldr pc,Interrupt_local
1168	ldmfd sp!,{r3,r4,r5,lr}					;@ load regs from stack
1169	;@ reload regs from DrZ80 context
1170	ldmia cpucontext,{z80pc-z80sp}			;@ load Z80 registers
1171	mov pc,lr ;@ return
1172.else
1173	ldrb r0,[cpucontext,#z80irq]
1174	tst r0,r0
1175	moveq pc,lr
1176
1177	tst r0,#2
1178	bne DoInterrupt_NMI
1179
1180	ldrb r0,[cpucontext,#z80if]
1181	tst r0,#Z80_IF1
1182	moveq pc,lr ;@ exit if int disabled
1183
1184	stmfd sp!,{lr}
1185
1186	tst r0,#Z80_HALT ;@ check halt
1187	addne z80pc,z80pc,#1
1188
1189	;@ clear halt and int flags
1190	eor r0,r0,r0
1191	strb r0,[cpucontext,#z80if]
1192
1193	;@ now check int mode
1194	ldrb r0,[cpucontext,#z80im]
1195	and r0,r0,#3
1196	ldr pc,[pc,r0,lsl#2]
1197	.word 0
1198	.word DoInterrupt_mode0
1199	.word DoInterrupt_mode1
1200	.word DoInterrupt_mode2
1201	.word DoInterrupt_mode1
1202
1203DoInterrupt_NMI:
1204	stmfd sp!,{lr}
1205
1206	bic r0,r0,#2
1207	strb r0,[cpucontext,#z80irq]
1208
1209	ldrb r0,[cpucontext,#z80if]
1210	tst r0,#Z80_HALT ;@ check halt
1211	addne z80pc,z80pc,#1
1212
1213	;@ clear halt & iff1
1214	bic r0,r0,#Z80_IF1|Z80_HALT
1215	strb r0,[cpucontext,#z80if]
1216
1217	ldr r0,[cpucontext,#z80pc_base]
1218	sub r0,z80pc,r0
1219.if FAST_Z80SP
1220	mov r1,r0, lsr #8
1221	strb r1,[z80sp,#-1]!
1222	strb r0,[z80sp,#-1]!
1223.else
1224	sub z80sp,z80sp,#2
1225	mov r1,z80sp
1226	writemem16
1227	ldr r2,[cpucontext, #z80irqvector]
1228.endif
1229	;@ jump to vector
1230	mov r0,#0x66
1231	rebasepc
1232
1233	b DoInterrupt_end
1234
1235DoInterrupt_mode0:
1236	;@ get 3 byte vector
1237	ldr r2,[cpucontext, #z80irqvector]
1238	and r1,r2,#0xFF0000
1239	cmp r1,#0xCD0000  ;@ call
1240	bne 1f
1241	;@ ########
1242	;@ # call
1243	;@ ########
1244	;@ save current pc on stack
1245	ldr r0,[cpucontext,#z80pc_base]
1246	sub r0,z80pc,r0
1247.if FAST_Z80SP
1248	mov r1,r0, lsr #8
1249	strb r1,[z80sp,#-1]!
1250	strb r0,[z80sp,#-1]!
1251.else
1252	sub z80sp,z80sp,#2
1253	mov r1,z80sp
1254	writemem16
1255	ldr r2,[cpucontext, #z80irqvector]
1256.endif
1257	;@ jump to vector
1258	mov r2,r2,lsl#16
1259	mov r0,r2,lsr#16
1260	;@ rebase new pc
1261	rebasepc
1262
1263	b DoInterrupt_end
1264
12651:
1266	cmp r1,#0xC30000  ;@ jump
1267	bne DoInterrupt_mode1    ;@ rst
1268	;@ #######
1269	;@ # jump
1270	;@ #######
1271	;@ jump to vector
1272	mov r2,r2,lsl#16
1273	mov r0,r2,lsr#16
1274	;@ rebase new pc
1275	rebasepc
1276
1277	b DoInterrupt_end
1278
1279DoInterrupt_mode1:
1280	ldr r0,[cpucontext,#z80pc_base]
1281	sub r0,z80pc,r0
1282.if FAST_Z80SP
1283	mov r1,r0, lsr #8
1284	strb r1,[z80sp,#-1]!
1285	strb r0,[z80sp,#-1]!
1286.else
1287	sub z80sp,z80sp,#2
1288	mov r1,z80sp
1289	writemem16
1290.endif
1291	mov r0,#0x38
1292	rebasepc
1293
1294	b DoInterrupt_end
1295
1296DoInterrupt_mode2:
1297	;@ push pc on stack
1298	ldr r0,[cpucontext,#z80pc_base]
1299	sub r0,z80pc,r0
1300.if FAST_Z80SP
1301	mov r1,r0, lsr #8
1302	strb r1,[z80sp,#-1]!
1303	strb r0,[z80sp,#-1]!
1304.else
1305	sub z80sp,z80sp,#2
1306	mov r1,z80sp
1307	writemem16
1308.endif
1309
1310	;@ get 1 byte vector address
1311	ldrb r0,[cpucontext, #z80irqvector]
1312	ldr r1,[cpucontext, #z80i]
1313	orr r0,r0,r1,lsr#16
1314
1315	;@ read new pc from vector address
1316	stmfd sp!,{r3,r12}
1317	mov lr,pc
1318	ldr pc,[cpucontext,#z80_read16]
1319
1320	;@ rebase new pc
1321	mov lr,pc
1322	ldr pc,[cpucontext,#z80_rebasePC] ;@ r0=new pc - external function sets z80pc_base and returns new z80pc in r0
1323	ldmfd sp!,{r3,r12}
1324	mov z80pc,r0
1325
1326DoInterrupt_end:
1327	;@ interupt accepted so callback irq interface
1328	ldr r0,[cpucontext, #z80irqcallback]
1329	tst r0,r0
1330	ldmeqfd sp!,{pc}
1331	stmfd sp!,{r3,r12}
1332	mov lr,pc
1333	mov pc,r0    ;@ call callback function
1334	ldmfd sp!,{r3,r12}
1335	ldmfd sp!,{pc} ;@ return
1336
1337.endif
1338
1339DAATable: .hword  (0x00<<8)|(1<<ZFlag)|(1<<VFlag)
1340         .hword  (0x01<<8)
1341         .hword  (0x02<<8)
1342         .hword  (0x03<<8)               |(1<<VFlag)
1343         .hword  (0x04<<8)
1344         .hword  (0x05<<8)               |(1<<VFlag)
1345         .hword  (0x06<<8)               |(1<<VFlag)
1346         .hword  (0x07<<8)
1347         .hword  (0x08<<8)
1348         .hword  (0x09<<8)            |(1<<VFlag)
1349         .hword  (0x10<<8)         |(1<<HFlag)
1350         .hword  (0x11<<8)         |(1<<HFlag)   |(1<<VFlag)
1351         .hword  (0x12<<8)         |(1<<HFlag)   |(1<<VFlag)
1352         .hword  (0x13<<8)         |(1<<HFlag)
1353         .hword  (0x14<<8)         |(1<<HFlag)   |(1<<VFlag)
1354         .hword  (0x15<<8)         |(1<<HFlag)
1355         .hword  (0x10<<8)
1356         .hword  (0x11<<8)               |(1<<VFlag)
1357         .hword  (0x12<<8)               |(1<<VFlag)
1358         .hword  (0x13<<8)
1359         .hword  (0x14<<8)               |(1<<VFlag)
1360         .hword  (0x15<<8)
1361         .hword  (0x16<<8)
1362         .hword  (0x17<<8)               |(1<<VFlag)
1363         .hword  (0x18<<8)            |(1<<VFlag)
1364         .hword  (0x19<<8)
1365         .hword  (0x20<<8)      |(1<<HFlag)
1366         .hword  (0x21<<8)      |(1<<HFlag)   |(1<<VFlag)
1367         .hword  (0x22<<8)      |(1<<HFlag)   |(1<<VFlag)
1368         .hword  (0x23<<8)      |(1<<HFlag)
1369         .hword  (0x24<<8)      |(1<<HFlag)   |(1<<VFlag)
1370         .hword  (0x25<<8)      |(1<<HFlag)
1371         .hword  (0x20<<8)
1372         .hword  (0x21<<8)            |(1<<VFlag)
1373         .hword  (0x22<<8)            |(1<<VFlag)
1374         .hword  (0x23<<8)
1375         .hword  (0x24<<8)            |(1<<VFlag)
1376         .hword  (0x25<<8)
1377         .hword  (0x26<<8)
1378         .hword  (0x27<<8)            |(1<<VFlag)
1379         .hword  (0x28<<8)         |(1<<VFlag)
1380         .hword  (0x29<<8)
1381         .hword  (0x30<<8)      |(1<<HFlag)   |(1<<VFlag)
1382         .hword  (0x31<<8)      |(1<<HFlag)
1383         .hword  (0x32<<8)      |(1<<HFlag)
1384         .hword  (0x33<<8)      |(1<<HFlag)   |(1<<VFlag)
1385         .hword  (0x34<<8)      |(1<<HFlag)
1386         .hword  (0x35<<8)      |(1<<HFlag)   |(1<<VFlag)
1387         .hword  (0x30<<8)            |(1<<VFlag)
1388         .hword  (0x31<<8)
1389         .hword  (0x32<<8)
1390         .hword  (0x33<<8)            |(1<<VFlag)
1391         .hword  (0x34<<8)
1392         .hword  (0x35<<8)            |(1<<VFlag)
1393         .hword  (0x36<<8)            |(1<<VFlag)
1394         .hword  (0x37<<8)
1395         .hword  (0x38<<8)
1396         .hword  (0x39<<8)         |(1<<VFlag)
1397         .hword  (0x40<<8)         |(1<<HFlag)
1398         .hword  (0x41<<8)         |(1<<HFlag)   |(1<<VFlag)
1399         .hword  (0x42<<8)         |(1<<HFlag)   |(1<<VFlag)
1400         .hword  (0x43<<8)         |(1<<HFlag)
1401         .hword  (0x44<<8)         |(1<<HFlag)   |(1<<VFlag)
1402         .hword  (0x45<<8)         |(1<<HFlag)
1403         .hword  (0x40<<8)
1404         .hword  (0x41<<8)               |(1<<VFlag)
1405         .hword  (0x42<<8)               |(1<<VFlag)
1406         .hword  (0x43<<8)
1407         .hword  (0x44<<8)               |(1<<VFlag)
1408         .hword  (0x45<<8)
1409         .hword  (0x46<<8)
1410         .hword  (0x47<<8)               |(1<<VFlag)
1411         .hword  (0x48<<8)            |(1<<VFlag)
1412         .hword  (0x49<<8)
1413         .hword  (0x50<<8)         |(1<<HFlag)   |(1<<VFlag)
1414         .hword  (0x51<<8)         |(1<<HFlag)
1415         .hword  (0x52<<8)         |(1<<HFlag)
1416         .hword  (0x53<<8)         |(1<<HFlag)   |(1<<VFlag)
1417         .hword  (0x54<<8)         |(1<<HFlag)
1418         .hword  (0x55<<8)         |(1<<HFlag)   |(1<<VFlag)
1419         .hword  (0x50<<8)               |(1<<VFlag)
1420         .hword  (0x51<<8)
1421         .hword  (0x52<<8)
1422         .hword  (0x53<<8)               |(1<<VFlag)
1423         .hword  (0x54<<8)
1424         .hword  (0x55<<8)               |(1<<VFlag)
1425         .hword  (0x56<<8)               |(1<<VFlag)
1426         .hword  (0x57<<8)
1427         .hword  (0x58<<8)
1428         .hword  (0x59<<8)            |(1<<VFlag)
1429         .hword  (0x60<<8)      |(1<<HFlag)   |(1<<VFlag)
1430         .hword  (0x61<<8)      |(1<<HFlag)
1431         .hword  (0x62<<8)      |(1<<HFlag)
1432         .hword  (0x63<<8)      |(1<<HFlag)   |(1<<VFlag)
1433         .hword  (0x64<<8)      |(1<<HFlag)
1434         .hword  (0x65<<8)      |(1<<HFlag)   |(1<<VFlag)
1435         .hword  (0x60<<8)            |(1<<VFlag)
1436         .hword  (0x61<<8)
1437         .hword  (0x62<<8)
1438         .hword  (0x63<<8)            |(1<<VFlag)
1439         .hword  (0x64<<8)
1440         .hword  (0x65<<8)            |(1<<VFlag)
1441         .hword  (0x66<<8)            |(1<<VFlag)
1442         .hword  (0x67<<8)
1443         .hword  (0x68<<8)
1444         .hword  (0x69<<8)         |(1<<VFlag)
1445         .hword  (0x70<<8)      |(1<<HFlag)
1446         .hword  (0x71<<8)      |(1<<HFlag)   |(1<<VFlag)
1447         .hword  (0x72<<8)      |(1<<HFlag)   |(1<<VFlag)
1448         .hword  (0x73<<8)      |(1<<HFlag)
1449         .hword  (0x74<<8)      |(1<<HFlag)   |(1<<VFlag)
1450         .hword  (0x75<<8)      |(1<<HFlag)
1451         .hword  (0x70<<8)
1452         .hword  (0x71<<8)            |(1<<VFlag)
1453         .hword  (0x72<<8)            |(1<<VFlag)
1454         .hword  (0x73<<8)
1455         .hword  (0x74<<8)            |(1<<VFlag)
1456         .hword  (0x75<<8)
1457         .hword  (0x76<<8)
1458         .hword  (0x77<<8)            |(1<<VFlag)
1459         .hword  (0x78<<8)         |(1<<VFlag)
1460         .hword  (0x79<<8)
1461         .hword  (0x80<<8)|(1<<SFlag)      |(1<<HFlag)
1462         .hword  (0x81<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)
1463         .hword  (0x82<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)
1464         .hword  (0x83<<8)|(1<<SFlag)      |(1<<HFlag)
1465         .hword  (0x84<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)
1466         .hword  (0x85<<8)|(1<<SFlag)      |(1<<HFlag)
1467         .hword  (0x80<<8)|(1<<SFlag)
1468         .hword  (0x81<<8)|(1<<SFlag)            |(1<<VFlag)
1469         .hword  (0x82<<8)|(1<<SFlag)            |(1<<VFlag)
1470         .hword  (0x83<<8)|(1<<SFlag)
1471         .hword  (0x84<<8)|(1<<SFlag)            |(1<<VFlag)
1472         .hword  (0x85<<8)|(1<<SFlag)
1473         .hword  (0x86<<8)|(1<<SFlag)
1474         .hword  (0x87<<8)|(1<<SFlag)            |(1<<VFlag)
1475         .hword  (0x88<<8)|(1<<SFlag)         |(1<<VFlag)
1476         .hword  (0x89<<8)|(1<<SFlag)
1477         .hword  (0x90<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)
1478         .hword  (0x91<<8)|(1<<SFlag)      |(1<<HFlag)
1479         .hword  (0x92<<8)|(1<<SFlag)      |(1<<HFlag)
1480         .hword  (0x93<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)
1481         .hword  (0x94<<8)|(1<<SFlag)      |(1<<HFlag)
1482         .hword  (0x95<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)
1483         .hword  (0x90<<8)|(1<<SFlag)            |(1<<VFlag)
1484         .hword  (0x91<<8)|(1<<SFlag)
1485         .hword  (0x92<<8)|(1<<SFlag)
1486         .hword  (0x93<<8)|(1<<SFlag)            |(1<<VFlag)
1487         .hword  (0x94<<8)|(1<<SFlag)
1488         .hword  (0x95<<8)|(1<<SFlag)            |(1<<VFlag)
1489         .hword  (0x96<<8)|(1<<SFlag)            |(1<<VFlag)
1490         .hword  (0x97<<8)|(1<<SFlag)
1491         .hword  (0x98<<8)|(1<<SFlag)
1492         .hword  (0x99<<8)|(1<<SFlag)         |(1<<VFlag)
1493         .hword  (0x00<<8)   |(1<<ZFlag)   |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1494         .hword  (0x01<<8)         |(1<<HFlag)         |(1<<CFlag)
1495         .hword  (0x02<<8)         |(1<<HFlag)         |(1<<CFlag)
1496         .hword  (0x03<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1497         .hword  (0x04<<8)         |(1<<HFlag)         |(1<<CFlag)
1498         .hword  (0x05<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1499         .hword  (0x00<<8)   |(1<<ZFlag)         |(1<<VFlag)   |(1<<CFlag)
1500         .hword  (0x01<<8)                     |(1<<CFlag)
1501         .hword  (0x02<<8)                     |(1<<CFlag)
1502         .hword  (0x03<<8)               |(1<<VFlag)   |(1<<CFlag)
1503         .hword  (0x04<<8)                     |(1<<CFlag)
1504         .hword  (0x05<<8)               |(1<<VFlag)   |(1<<CFlag)
1505         .hword  (0x06<<8)               |(1<<VFlag)   |(1<<CFlag)
1506         .hword  (0x07<<8)                     |(1<<CFlag)
1507         .hword  (0x08<<8)                  |(1<<CFlag)
1508         .hword  (0x09<<8)            |(1<<VFlag)   |(1<<CFlag)
1509         .hword  (0x10<<8)         |(1<<HFlag)         |(1<<CFlag)
1510         .hword  (0x11<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1511         .hword  (0x12<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1512         .hword  (0x13<<8)         |(1<<HFlag)         |(1<<CFlag)
1513         .hword  (0x14<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1514         .hword  (0x15<<8)         |(1<<HFlag)         |(1<<CFlag)
1515         .hword  (0x10<<8)                     |(1<<CFlag)
1516         .hword  (0x11<<8)               |(1<<VFlag)   |(1<<CFlag)
1517         .hword  (0x12<<8)               |(1<<VFlag)   |(1<<CFlag)
1518         .hword  (0x13<<8)                     |(1<<CFlag)
1519         .hword  (0x14<<8)               |(1<<VFlag)   |(1<<CFlag)
1520         .hword  (0x15<<8)                     |(1<<CFlag)
1521         .hword  (0x16<<8)                     |(1<<CFlag)
1522         .hword  (0x17<<8)               |(1<<VFlag)   |(1<<CFlag)
1523         .hword  (0x18<<8)            |(1<<VFlag)   |(1<<CFlag)
1524         .hword  (0x19<<8)                  |(1<<CFlag)
1525         .hword  (0x20<<8)      |(1<<HFlag)         |(1<<CFlag)
1526         .hword  (0x21<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1527         .hword  (0x22<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1528         .hword  (0x23<<8)      |(1<<HFlag)         |(1<<CFlag)
1529         .hword  (0x24<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1530         .hword  (0x25<<8)      |(1<<HFlag)         |(1<<CFlag)
1531         .hword  (0x20<<8)                  |(1<<CFlag)
1532         .hword  (0x21<<8)            |(1<<VFlag)   |(1<<CFlag)
1533         .hword  (0x22<<8)            |(1<<VFlag)   |(1<<CFlag)
1534         .hword  (0x23<<8)                  |(1<<CFlag)
1535         .hword  (0x24<<8)            |(1<<VFlag)   |(1<<CFlag)
1536         .hword  (0x25<<8)                  |(1<<CFlag)
1537         .hword  (0x26<<8)                  |(1<<CFlag)
1538         .hword  (0x27<<8)            |(1<<VFlag)   |(1<<CFlag)
1539         .hword  (0x28<<8)         |(1<<VFlag)   |(1<<CFlag)
1540         .hword  (0x29<<8)               |(1<<CFlag)
1541         .hword  (0x30<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1542         .hword  (0x31<<8)      |(1<<HFlag)         |(1<<CFlag)
1543         .hword  (0x32<<8)      |(1<<HFlag)         |(1<<CFlag)
1544         .hword  (0x33<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1545         .hword  (0x34<<8)      |(1<<HFlag)         |(1<<CFlag)
1546         .hword  (0x35<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1547         .hword  (0x30<<8)            |(1<<VFlag)   |(1<<CFlag)
1548         .hword  (0x31<<8)                  |(1<<CFlag)
1549         .hword  (0x32<<8)                  |(1<<CFlag)
1550         .hword  (0x33<<8)            |(1<<VFlag)   |(1<<CFlag)
1551         .hword  (0x34<<8)                  |(1<<CFlag)
1552         .hword  (0x35<<8)            |(1<<VFlag)   |(1<<CFlag)
1553         .hword  (0x36<<8)            |(1<<VFlag)   |(1<<CFlag)
1554         .hword  (0x37<<8)                  |(1<<CFlag)
1555         .hword  (0x38<<8)               |(1<<CFlag)
1556         .hword  (0x39<<8)         |(1<<VFlag)   |(1<<CFlag)
1557         .hword  (0x40<<8)         |(1<<HFlag)         |(1<<CFlag)
1558         .hword  (0x41<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1559         .hword  (0x42<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1560         .hword  (0x43<<8)         |(1<<HFlag)         |(1<<CFlag)
1561         .hword  (0x44<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1562         .hword  (0x45<<8)         |(1<<HFlag)         |(1<<CFlag)
1563         .hword  (0x40<<8)                     |(1<<CFlag)
1564         .hword  (0x41<<8)               |(1<<VFlag)   |(1<<CFlag)
1565         .hword  (0x42<<8)               |(1<<VFlag)   |(1<<CFlag)
1566         .hword  (0x43<<8)                     |(1<<CFlag)
1567         .hword  (0x44<<8)               |(1<<VFlag)   |(1<<CFlag)
1568         .hword  (0x45<<8)                     |(1<<CFlag)
1569         .hword  (0x46<<8)                     |(1<<CFlag)
1570         .hword  (0x47<<8)               |(1<<VFlag)   |(1<<CFlag)
1571         .hword  (0x48<<8)            |(1<<VFlag)   |(1<<CFlag)
1572         .hword  (0x49<<8)                  |(1<<CFlag)
1573         .hword  (0x50<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1574         .hword  (0x51<<8)         |(1<<HFlag)         |(1<<CFlag)
1575         .hword  (0x52<<8)         |(1<<HFlag)         |(1<<CFlag)
1576         .hword  (0x53<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1577         .hword  (0x54<<8)         |(1<<HFlag)         |(1<<CFlag)
1578         .hword  (0x55<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1579         .hword  (0x50<<8)               |(1<<VFlag)   |(1<<CFlag)
1580         .hword  (0x51<<8)                     |(1<<CFlag)
1581         .hword  (0x52<<8)                     |(1<<CFlag)
1582         .hword  (0x53<<8)               |(1<<VFlag)   |(1<<CFlag)
1583         .hword  (0x54<<8)                     |(1<<CFlag)
1584         .hword  (0x55<<8)               |(1<<VFlag)   |(1<<CFlag)
1585         .hword  (0x56<<8)               |(1<<VFlag)   |(1<<CFlag)
1586         .hword  (0x57<<8)                     |(1<<CFlag)
1587         .hword  (0x58<<8)                  |(1<<CFlag)
1588         .hword  (0x59<<8)            |(1<<VFlag)   |(1<<CFlag)
1589         .hword  (0x60<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1590         .hword  (0x61<<8)      |(1<<HFlag)         |(1<<CFlag)
1591         .hword  (0x62<<8)      |(1<<HFlag)         |(1<<CFlag)
1592         .hword  (0x63<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1593         .hword  (0x64<<8)      |(1<<HFlag)         |(1<<CFlag)
1594         .hword  (0x65<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1595         .hword  (0x60<<8)            |(1<<VFlag)   |(1<<CFlag)
1596         .hword  (0x61<<8)                  |(1<<CFlag)
1597         .hword  (0x62<<8)                  |(1<<CFlag)
1598         .hword  (0x63<<8)            |(1<<VFlag)   |(1<<CFlag)
1599         .hword  (0x64<<8)                  |(1<<CFlag)
1600         .hword  (0x65<<8)            |(1<<VFlag)   |(1<<CFlag)
1601         .hword  (0x66<<8)            |(1<<VFlag)   |(1<<CFlag)
1602         .hword  (0x67<<8)                  |(1<<CFlag)
1603         .hword  (0x68<<8)               |(1<<CFlag)
1604         .hword  (0x69<<8)         |(1<<VFlag)   |(1<<CFlag)
1605         .hword  (0x70<<8)      |(1<<HFlag)         |(1<<CFlag)
1606         .hword  (0x71<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1607         .hword  (0x72<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1608         .hword  (0x73<<8)      |(1<<HFlag)         |(1<<CFlag)
1609         .hword  (0x74<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1610         .hword  (0x75<<8)      |(1<<HFlag)         |(1<<CFlag)
1611         .hword  (0x70<<8)                  |(1<<CFlag)
1612         .hword  (0x71<<8)            |(1<<VFlag)   |(1<<CFlag)
1613         .hword  (0x72<<8)            |(1<<VFlag)   |(1<<CFlag)
1614         .hword  (0x73<<8)                  |(1<<CFlag)
1615         .hword  (0x74<<8)            |(1<<VFlag)   |(1<<CFlag)
1616         .hword  (0x75<<8)                  |(1<<CFlag)
1617         .hword  (0x76<<8)                  |(1<<CFlag)
1618         .hword  (0x77<<8)            |(1<<VFlag)   |(1<<CFlag)
1619         .hword  (0x78<<8)         |(1<<VFlag)   |(1<<CFlag)
1620         .hword  (0x79<<8)               |(1<<CFlag)
1621         .hword  (0x80<<8)|(1<<SFlag)      |(1<<HFlag)         |(1<<CFlag)
1622         .hword  (0x81<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1623         .hword  (0x82<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1624         .hword  (0x83<<8)|(1<<SFlag)      |(1<<HFlag)         |(1<<CFlag)
1625         .hword  (0x84<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1626         .hword  (0x85<<8)|(1<<SFlag)      |(1<<HFlag)         |(1<<CFlag)
1627         .hword  (0x80<<8)|(1<<SFlag)                  |(1<<CFlag)
1628         .hword  (0x81<<8)|(1<<SFlag)            |(1<<VFlag)   |(1<<CFlag)
1629         .hword  (0x82<<8)|(1<<SFlag)            |(1<<VFlag)   |(1<<CFlag)
1630         .hword  (0x83<<8)|(1<<SFlag)                  |(1<<CFlag)
1631         .hword  (0x84<<8)|(1<<SFlag)            |(1<<VFlag)   |(1<<CFlag)
1632         .hword  (0x85<<8)|(1<<SFlag)                  |(1<<CFlag)
1633         .hword  (0x86<<8)|(1<<SFlag)                  |(1<<CFlag)
1634         .hword  (0x87<<8)|(1<<SFlag)            |(1<<VFlag)   |(1<<CFlag)
1635         .hword  (0x88<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)
1636         .hword  (0x89<<8)|(1<<SFlag)               |(1<<CFlag)
1637         .hword  (0x90<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1638         .hword  (0x91<<8)|(1<<SFlag)      |(1<<HFlag)         |(1<<CFlag)
1639         .hword  (0x92<<8)|(1<<SFlag)      |(1<<HFlag)         |(1<<CFlag)
1640         .hword  (0x93<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1641         .hword  (0x94<<8)|(1<<SFlag)      |(1<<HFlag)         |(1<<CFlag)
1642         .hword  (0x95<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1643         .hword  (0x90<<8)|(1<<SFlag)            |(1<<VFlag)   |(1<<CFlag)
1644         .hword  (0x91<<8)|(1<<SFlag)                  |(1<<CFlag)
1645         .hword  (0x92<<8)|(1<<SFlag)                  |(1<<CFlag)
1646         .hword  (0x93<<8)|(1<<SFlag)            |(1<<VFlag)   |(1<<CFlag)
1647         .hword  (0x94<<8)|(1<<SFlag)                  |(1<<CFlag)
1648         .hword  (0x95<<8)|(1<<SFlag)            |(1<<VFlag)   |(1<<CFlag)
1649         .hword  (0x96<<8)|(1<<SFlag)            |(1<<VFlag)   |(1<<CFlag)
1650         .hword  (0x97<<8)|(1<<SFlag)                  |(1<<CFlag)
1651         .hword  (0x98<<8)|(1<<SFlag)               |(1<<CFlag)
1652         .hword  (0x99<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)
1653         .hword  (0xA0<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1654         .hword  (0xA1<<8)|(1<<SFlag)   |(1<<HFlag)         |(1<<CFlag)
1655         .hword  (0xA2<<8)|(1<<SFlag)   |(1<<HFlag)         |(1<<CFlag)
1656         .hword  (0xA3<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1657         .hword  (0xA4<<8)|(1<<SFlag)   |(1<<HFlag)         |(1<<CFlag)
1658         .hword  (0xA5<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1659         .hword  (0xA0<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)
1660         .hword  (0xA1<<8)|(1<<SFlag)               |(1<<CFlag)
1661         .hword  (0xA2<<8)|(1<<SFlag)               |(1<<CFlag)
1662         .hword  (0xA3<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)
1663         .hword  (0xA4<<8)|(1<<SFlag)               |(1<<CFlag)
1664         .hword  (0xA5<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)
1665         .hword  (0xA6<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)
1666         .hword  (0xA7<<8)|(1<<SFlag)               |(1<<CFlag)
1667         .hword  (0xA8<<8)|(1<<SFlag)            |(1<<CFlag)
1668         .hword  (0xA9<<8)|(1<<SFlag)      |(1<<VFlag)   |(1<<CFlag)
1669         .hword  (0xB0<<8)|(1<<SFlag)   |(1<<HFlag)         |(1<<CFlag)
1670         .hword  (0xB1<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1671         .hword  (0xB2<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1672         .hword  (0xB3<<8)|(1<<SFlag)   |(1<<HFlag)         |(1<<CFlag)
1673         .hword  (0xB4<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1674         .hword  (0xB5<<8)|(1<<SFlag)   |(1<<HFlag)         |(1<<CFlag)
1675         .hword  (0xB0<<8)|(1<<SFlag)               |(1<<CFlag)
1676         .hword  (0xB1<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)
1677         .hword  (0xB2<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)
1678         .hword  (0xB3<<8)|(1<<SFlag)               |(1<<CFlag)
1679         .hword  (0xB4<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)
1680         .hword  (0xB5<<8)|(1<<SFlag)               |(1<<CFlag)
1681         .hword  (0xB6<<8)|(1<<SFlag)               |(1<<CFlag)
1682         .hword  (0xB7<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)
1683         .hword  (0xB8<<8)|(1<<SFlag)      |(1<<VFlag)   |(1<<CFlag)
1684         .hword  (0xB9<<8)|(1<<SFlag)            |(1<<CFlag)
1685         .hword  (0xC0<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1686         .hword  (0xC1<<8)|(1<<SFlag)      |(1<<HFlag)         |(1<<CFlag)
1687         .hword  (0xC2<<8)|(1<<SFlag)      |(1<<HFlag)         |(1<<CFlag)
1688         .hword  (0xC3<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1689         .hword  (0xC4<<8)|(1<<SFlag)      |(1<<HFlag)         |(1<<CFlag)
1690         .hword  (0xC5<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1691         .hword  (0xC0<<8)|(1<<SFlag)            |(1<<VFlag)   |(1<<CFlag)
1692         .hword  (0xC1<<8)|(1<<SFlag)                  |(1<<CFlag)
1693         .hword  (0xC2<<8)|(1<<SFlag)                  |(1<<CFlag)
1694         .hword  (0xC3<<8)|(1<<SFlag)            |(1<<VFlag)   |(1<<CFlag)
1695         .hword  (0xC4<<8)|(1<<SFlag)                  |(1<<CFlag)
1696         .hword  (0xC5<<8)|(1<<SFlag)            |(1<<VFlag)   |(1<<CFlag)
1697         .hword  (0xC6<<8)|(1<<SFlag)            |(1<<VFlag)   |(1<<CFlag)
1698         .hword  (0xC7<<8)|(1<<SFlag)                  |(1<<CFlag)
1699         .hword  (0xC8<<8)|(1<<SFlag)               |(1<<CFlag)
1700         .hword  (0xC9<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)
1701         .hword  (0xD0<<8)|(1<<SFlag)      |(1<<HFlag)         |(1<<CFlag)
1702         .hword  (0xD1<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1703         .hword  (0xD2<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1704         .hword  (0xD3<<8)|(1<<SFlag)      |(1<<HFlag)         |(1<<CFlag)
1705         .hword  (0xD4<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1706         .hword  (0xD5<<8)|(1<<SFlag)      |(1<<HFlag)         |(1<<CFlag)
1707         .hword  (0xD0<<8)|(1<<SFlag)                  |(1<<CFlag)
1708         .hword  (0xD1<<8)|(1<<SFlag)            |(1<<VFlag)   |(1<<CFlag)
1709         .hword  (0xD2<<8)|(1<<SFlag)            |(1<<VFlag)   |(1<<CFlag)
1710         .hword  (0xD3<<8)|(1<<SFlag)                  |(1<<CFlag)
1711         .hword  (0xD4<<8)|(1<<SFlag)            |(1<<VFlag)   |(1<<CFlag)
1712         .hword  (0xD5<<8)|(1<<SFlag)                  |(1<<CFlag)
1713         .hword  (0xD6<<8)|(1<<SFlag)                  |(1<<CFlag)
1714         .hword  (0xD7<<8)|(1<<SFlag)            |(1<<VFlag)   |(1<<CFlag)
1715         .hword  (0xD8<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)
1716         .hword  (0xD9<<8)|(1<<SFlag)               |(1<<CFlag)
1717         .hword  (0xE0<<8)|(1<<SFlag)   |(1<<HFlag)         |(1<<CFlag)
1718         .hword  (0xE1<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1719         .hword  (0xE2<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1720         .hword  (0xE3<<8)|(1<<SFlag)   |(1<<HFlag)         |(1<<CFlag)
1721         .hword  (0xE4<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1722         .hword  (0xE5<<8)|(1<<SFlag)   |(1<<HFlag)         |(1<<CFlag)
1723         .hword  (0xE0<<8)|(1<<SFlag)               |(1<<CFlag)
1724         .hword  (0xE1<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)
1725         .hword  (0xE2<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)
1726         .hword  (0xE3<<8)|(1<<SFlag)               |(1<<CFlag)
1727         .hword  (0xE4<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)
1728         .hword  (0xE5<<8)|(1<<SFlag)               |(1<<CFlag)
1729         .hword  (0xE6<<8)|(1<<SFlag)               |(1<<CFlag)
1730         .hword  (0xE7<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)
1731         .hword  (0xE8<<8)|(1<<SFlag)      |(1<<VFlag)   |(1<<CFlag)
1732         .hword  (0xE9<<8)|(1<<SFlag)            |(1<<CFlag)
1733         .hword  (0xF0<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1734         .hword  (0xF1<<8)|(1<<SFlag)   |(1<<HFlag)         |(1<<CFlag)
1735         .hword  (0xF2<<8)|(1<<SFlag)   |(1<<HFlag)         |(1<<CFlag)
1736         .hword  (0xF3<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1737         .hword  (0xF4<<8)|(1<<SFlag)   |(1<<HFlag)         |(1<<CFlag)
1738         .hword  (0xF5<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1739         .hword  (0xF0<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)
1740         .hword  (0xF1<<8)|(1<<SFlag)               |(1<<CFlag)
1741         .hword  (0xF2<<8)|(1<<SFlag)               |(1<<CFlag)
1742         .hword  (0xF3<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)
1743         .hword  (0xF4<<8)|(1<<SFlag)               |(1<<CFlag)
1744         .hword  (0xF5<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)
1745         .hword  (0xF6<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)
1746         .hword  (0xF7<<8)|(1<<SFlag)               |(1<<CFlag)
1747         .hword  (0xF8<<8)|(1<<SFlag)            |(1<<CFlag)
1748         .hword  (0xF9<<8)|(1<<SFlag)      |(1<<VFlag)   |(1<<CFlag)
1749         .hword  (0x00<<8)   |(1<<ZFlag)   |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1750         .hword  (0x01<<8)         |(1<<HFlag)         |(1<<CFlag)
1751         .hword  (0x02<<8)         |(1<<HFlag)         |(1<<CFlag)
1752         .hword  (0x03<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1753         .hword  (0x04<<8)         |(1<<HFlag)         |(1<<CFlag)
1754         .hword  (0x05<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1755         .hword  (0x00<<8)   |(1<<ZFlag)         |(1<<VFlag)   |(1<<CFlag)
1756         .hword  (0x01<<8)                     |(1<<CFlag)
1757         .hword  (0x02<<8)                     |(1<<CFlag)
1758         .hword  (0x03<<8)               |(1<<VFlag)   |(1<<CFlag)
1759         .hword  (0x04<<8)                     |(1<<CFlag)
1760         .hword  (0x05<<8)               |(1<<VFlag)   |(1<<CFlag)
1761         .hword  (0x06<<8)               |(1<<VFlag)   |(1<<CFlag)
1762         .hword  (0x07<<8)                     |(1<<CFlag)
1763         .hword  (0x08<<8)                  |(1<<CFlag)
1764         .hword  (0x09<<8)            |(1<<VFlag)   |(1<<CFlag)
1765         .hword  (0x10<<8)         |(1<<HFlag)         |(1<<CFlag)
1766         .hword  (0x11<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1767         .hword  (0x12<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1768         .hword  (0x13<<8)         |(1<<HFlag)         |(1<<CFlag)
1769         .hword  (0x14<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1770         .hword  (0x15<<8)         |(1<<HFlag)         |(1<<CFlag)
1771         .hword  (0x10<<8)                     |(1<<CFlag)
1772         .hword  (0x11<<8)               |(1<<VFlag)   |(1<<CFlag)
1773         .hword  (0x12<<8)               |(1<<VFlag)   |(1<<CFlag)
1774         .hword  (0x13<<8)                     |(1<<CFlag)
1775         .hword  (0x14<<8)               |(1<<VFlag)   |(1<<CFlag)
1776         .hword  (0x15<<8)                     |(1<<CFlag)
1777         .hword  (0x16<<8)                     |(1<<CFlag)
1778         .hword  (0x17<<8)               |(1<<VFlag)   |(1<<CFlag)
1779         .hword  (0x18<<8)            |(1<<VFlag)   |(1<<CFlag)
1780         .hword  (0x19<<8)                  |(1<<CFlag)
1781         .hword  (0x20<<8)      |(1<<HFlag)         |(1<<CFlag)
1782         .hword  (0x21<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1783         .hword  (0x22<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1784         .hword  (0x23<<8)      |(1<<HFlag)         |(1<<CFlag)
1785         .hword  (0x24<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1786         .hword  (0x25<<8)      |(1<<HFlag)         |(1<<CFlag)
1787         .hword  (0x20<<8)                  |(1<<CFlag)
1788         .hword  (0x21<<8)            |(1<<VFlag)   |(1<<CFlag)
1789         .hword  (0x22<<8)            |(1<<VFlag)   |(1<<CFlag)
1790         .hword  (0x23<<8)                  |(1<<CFlag)
1791         .hword  (0x24<<8)            |(1<<VFlag)   |(1<<CFlag)
1792         .hword  (0x25<<8)                  |(1<<CFlag)
1793         .hword  (0x26<<8)                  |(1<<CFlag)
1794         .hword  (0x27<<8)            |(1<<VFlag)   |(1<<CFlag)
1795         .hword  (0x28<<8)         |(1<<VFlag)   |(1<<CFlag)
1796         .hword  (0x29<<8)               |(1<<CFlag)
1797         .hword  (0x30<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1798         .hword  (0x31<<8)      |(1<<HFlag)         |(1<<CFlag)
1799         .hword  (0x32<<8)      |(1<<HFlag)         |(1<<CFlag)
1800         .hword  (0x33<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1801         .hword  (0x34<<8)      |(1<<HFlag)         |(1<<CFlag)
1802         .hword  (0x35<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1803         .hword  (0x30<<8)            |(1<<VFlag)   |(1<<CFlag)
1804         .hword  (0x31<<8)                  |(1<<CFlag)
1805         .hword  (0x32<<8)                  |(1<<CFlag)
1806         .hword  (0x33<<8)            |(1<<VFlag)   |(1<<CFlag)
1807         .hword  (0x34<<8)                  |(1<<CFlag)
1808         .hword  (0x35<<8)            |(1<<VFlag)   |(1<<CFlag)
1809         .hword  (0x36<<8)            |(1<<VFlag)   |(1<<CFlag)
1810         .hword  (0x37<<8)                  |(1<<CFlag)
1811         .hword  (0x38<<8)               |(1<<CFlag)
1812         .hword  (0x39<<8)         |(1<<VFlag)   |(1<<CFlag)
1813         .hword  (0x40<<8)         |(1<<HFlag)         |(1<<CFlag)
1814         .hword  (0x41<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1815         .hword  (0x42<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1816         .hword  (0x43<<8)         |(1<<HFlag)         |(1<<CFlag)
1817         .hword  (0x44<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1818         .hword  (0x45<<8)         |(1<<HFlag)         |(1<<CFlag)
1819         .hword  (0x40<<8)                     |(1<<CFlag)
1820         .hword  (0x41<<8)               |(1<<VFlag)   |(1<<CFlag)
1821         .hword  (0x42<<8)               |(1<<VFlag)   |(1<<CFlag)
1822         .hword  (0x43<<8)                     |(1<<CFlag)
1823         .hword  (0x44<<8)               |(1<<VFlag)   |(1<<CFlag)
1824         .hword  (0x45<<8)                     |(1<<CFlag)
1825         .hword  (0x46<<8)                     |(1<<CFlag)
1826         .hword  (0x47<<8)               |(1<<VFlag)   |(1<<CFlag)
1827         .hword  (0x48<<8)            |(1<<VFlag)   |(1<<CFlag)
1828         .hword  (0x49<<8)                  |(1<<CFlag)
1829         .hword  (0x50<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1830         .hword  (0x51<<8)         |(1<<HFlag)         |(1<<CFlag)
1831         .hword  (0x52<<8)         |(1<<HFlag)         |(1<<CFlag)
1832         .hword  (0x53<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1833         .hword  (0x54<<8)         |(1<<HFlag)         |(1<<CFlag)
1834         .hword  (0x55<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1835         .hword  (0x50<<8)               |(1<<VFlag)   |(1<<CFlag)
1836         .hword  (0x51<<8)                     |(1<<CFlag)
1837         .hword  (0x52<<8)                     |(1<<CFlag)
1838         .hword  (0x53<<8)               |(1<<VFlag)   |(1<<CFlag)
1839         .hword  (0x54<<8)                     |(1<<CFlag)
1840         .hword  (0x55<<8)               |(1<<VFlag)   |(1<<CFlag)
1841         .hword  (0x56<<8)               |(1<<VFlag)   |(1<<CFlag)
1842         .hword  (0x57<<8)                     |(1<<CFlag)
1843         .hword  (0x58<<8)                  |(1<<CFlag)
1844         .hword  (0x59<<8)            |(1<<VFlag)   |(1<<CFlag)
1845         .hword  (0x60<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1846         .hword  (0x61<<8)      |(1<<HFlag)         |(1<<CFlag)
1847         .hword  (0x62<<8)      |(1<<HFlag)         |(1<<CFlag)
1848         .hword  (0x63<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1849         .hword  (0x64<<8)      |(1<<HFlag)         |(1<<CFlag)
1850         .hword  (0x65<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1851         .hword  (0x06<<8)               |(1<<VFlag)
1852         .hword  (0x07<<8)
1853         .hword  (0x08<<8)
1854         .hword  (0x09<<8)            |(1<<VFlag)
1855         .hword  (0x0A<<8)            |(1<<VFlag)
1856         .hword  (0x0B<<8)
1857         .hword  (0x0C<<8)            |(1<<VFlag)
1858         .hword  (0x0D<<8)
1859         .hword  (0x0E<<8)
1860         .hword  (0x0F<<8)            |(1<<VFlag)
1861         .hword  (0x10<<8)         |(1<<HFlag)
1862         .hword  (0x11<<8)         |(1<<HFlag)   |(1<<VFlag)
1863         .hword  (0x12<<8)         |(1<<HFlag)   |(1<<VFlag)
1864         .hword  (0x13<<8)         |(1<<HFlag)
1865         .hword  (0x14<<8)         |(1<<HFlag)   |(1<<VFlag)
1866         .hword  (0x15<<8)         |(1<<HFlag)
1867         .hword  (0x16<<8)
1868         .hword  (0x17<<8)               |(1<<VFlag)
1869         .hword  (0x18<<8)            |(1<<VFlag)
1870         .hword  (0x19<<8)
1871         .hword  (0x1A<<8)
1872         .hword  (0x1B<<8)            |(1<<VFlag)
1873         .hword  (0x1C<<8)
1874         .hword  (0x1D<<8)            |(1<<VFlag)
1875         .hword  (0x1E<<8)            |(1<<VFlag)
1876         .hword  (0x1F<<8)
1877         .hword  (0x20<<8)      |(1<<HFlag)
1878         .hword  (0x21<<8)      |(1<<HFlag)   |(1<<VFlag)
1879         .hword  (0x22<<8)      |(1<<HFlag)   |(1<<VFlag)
1880         .hword  (0x23<<8)      |(1<<HFlag)
1881         .hword  (0x24<<8)      |(1<<HFlag)   |(1<<VFlag)
1882         .hword  (0x25<<8)      |(1<<HFlag)
1883         .hword  (0x26<<8)
1884         .hword  (0x27<<8)            |(1<<VFlag)
1885         .hword  (0x28<<8)         |(1<<VFlag)
1886         .hword  (0x29<<8)
1887         .hword  (0x2A<<8)
1888         .hword  (0x2B<<8)         |(1<<VFlag)
1889         .hword  (0x2C<<8)
1890         .hword  (0x2D<<8)         |(1<<VFlag)
1891         .hword  (0x2E<<8)         |(1<<VFlag)
1892         .hword  (0x2F<<8)
1893         .hword  (0x30<<8)      |(1<<HFlag)   |(1<<VFlag)
1894         .hword  (0x31<<8)      |(1<<HFlag)
1895         .hword  (0x32<<8)      |(1<<HFlag)
1896         .hword  (0x33<<8)      |(1<<HFlag)   |(1<<VFlag)
1897         .hword  (0x34<<8)      |(1<<HFlag)
1898         .hword  (0x35<<8)      |(1<<HFlag)   |(1<<VFlag)
1899         .hword  (0x36<<8)            |(1<<VFlag)
1900         .hword  (0x37<<8)
1901         .hword  (0x38<<8)
1902         .hword  (0x39<<8)         |(1<<VFlag)
1903         .hword  (0x3A<<8)         |(1<<VFlag)
1904         .hword  (0x3B<<8)
1905         .hword  (0x3C<<8)         |(1<<VFlag)
1906         .hword  (0x3D<<8)
1907         .hword  (0x3E<<8)
1908         .hword  (0x3F<<8)         |(1<<VFlag)
1909         .hword  (0x40<<8)         |(1<<HFlag)
1910         .hword  (0x41<<8)         |(1<<HFlag)   |(1<<VFlag)
1911         .hword  (0x42<<8)         |(1<<HFlag)   |(1<<VFlag)
1912         .hword  (0x43<<8)         |(1<<HFlag)
1913         .hword  (0x44<<8)         |(1<<HFlag)   |(1<<VFlag)
1914         .hword  (0x45<<8)         |(1<<HFlag)
1915         .hword  (0x46<<8)
1916         .hword  (0x47<<8)               |(1<<VFlag)
1917         .hword  (0x48<<8)            |(1<<VFlag)
1918         .hword  (0x49<<8)
1919         .hword  (0x4A<<8)
1920         .hword  (0x4B<<8)            |(1<<VFlag)
1921         .hword  (0x4C<<8)
1922         .hword  (0x4D<<8)            |(1<<VFlag)
1923         .hword  (0x4E<<8)            |(1<<VFlag)
1924         .hword  (0x4F<<8)
1925         .hword  (0x50<<8)         |(1<<HFlag)   |(1<<VFlag)
1926         .hword  (0x51<<8)         |(1<<HFlag)
1927         .hword  (0x52<<8)         |(1<<HFlag)
1928         .hword  (0x53<<8)         |(1<<HFlag)   |(1<<VFlag)
1929         .hword  (0x54<<8)         |(1<<HFlag)
1930         .hword  (0x55<<8)         |(1<<HFlag)   |(1<<VFlag)
1931         .hword  (0x56<<8)               |(1<<VFlag)
1932         .hword  (0x57<<8)
1933         .hword  (0x58<<8)
1934         .hword  (0x59<<8)            |(1<<VFlag)
1935         .hword  (0x5A<<8)            |(1<<VFlag)
1936         .hword  (0x5B<<8)
1937         .hword  (0x5C<<8)            |(1<<VFlag)
1938         .hword  (0x5D<<8)
1939         .hword  (0x5E<<8)
1940         .hword  (0x5F<<8)            |(1<<VFlag)
1941         .hword  (0x60<<8)      |(1<<HFlag)   |(1<<VFlag)
1942         .hword  (0x61<<8)      |(1<<HFlag)
1943         .hword  (0x62<<8)      |(1<<HFlag)
1944         .hword  (0x63<<8)      |(1<<HFlag)   |(1<<VFlag)
1945         .hword  (0x64<<8)      |(1<<HFlag)
1946         .hword  (0x65<<8)      |(1<<HFlag)   |(1<<VFlag)
1947         .hword  (0x66<<8)            |(1<<VFlag)
1948         .hword  (0x67<<8)
1949         .hword  (0x68<<8)
1950         .hword  (0x69<<8)         |(1<<VFlag)
1951         .hword  (0x6A<<8)         |(1<<VFlag)
1952         .hword  (0x6B<<8)
1953         .hword  (0x6C<<8)         |(1<<VFlag)
1954         .hword  (0x6D<<8)
1955         .hword  (0x6E<<8)
1956         .hword  (0x6F<<8)         |(1<<VFlag)
1957         .hword  (0x70<<8)      |(1<<HFlag)
1958         .hword  (0x71<<8)      |(1<<HFlag)   |(1<<VFlag)
1959         .hword  (0x72<<8)      |(1<<HFlag)   |(1<<VFlag)
1960         .hword  (0x73<<8)      |(1<<HFlag)
1961         .hword  (0x74<<8)      |(1<<HFlag)   |(1<<VFlag)
1962         .hword  (0x75<<8)      |(1<<HFlag)
1963         .hword  (0x76<<8)
1964         .hword  (0x77<<8)            |(1<<VFlag)
1965         .hword  (0x78<<8)         |(1<<VFlag)
1966         .hword  (0x79<<8)
1967         .hword  (0x7A<<8)
1968         .hword  (0x7B<<8)         |(1<<VFlag)
1969         .hword  (0x7C<<8)
1970         .hword  (0x7D<<8)         |(1<<VFlag)
1971         .hword  (0x7E<<8)         |(1<<VFlag)
1972         .hword  (0x7F<<8)
1973         .hword  (0x80<<8)|(1<<SFlag)      |(1<<HFlag)
1974         .hword  (0x81<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)
1975         .hword  (0x82<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)
1976         .hword  (0x83<<8)|(1<<SFlag)      |(1<<HFlag)
1977         .hword  (0x84<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)
1978         .hword  (0x85<<8)|(1<<SFlag)      |(1<<HFlag)
1979         .hword  (0x86<<8)|(1<<SFlag)
1980         .hword  (0x87<<8)|(1<<SFlag)            |(1<<VFlag)
1981         .hword  (0x88<<8)|(1<<SFlag)         |(1<<VFlag)
1982         .hword  (0x89<<8)|(1<<SFlag)
1983         .hword  (0x8A<<8)|(1<<SFlag)
1984         .hword  (0x8B<<8)|(1<<SFlag)         |(1<<VFlag)
1985         .hword  (0x8C<<8)|(1<<SFlag)
1986         .hword  (0x8D<<8)|(1<<SFlag)         |(1<<VFlag)
1987         .hword  (0x8E<<8)|(1<<SFlag)         |(1<<VFlag)
1988         .hword  (0x8F<<8)|(1<<SFlag)
1989         .hword  (0x90<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)
1990         .hword  (0x91<<8)|(1<<SFlag)      |(1<<HFlag)
1991         .hword  (0x92<<8)|(1<<SFlag)      |(1<<HFlag)
1992         .hword  (0x93<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)
1993         .hword  (0x94<<8)|(1<<SFlag)      |(1<<HFlag)
1994         .hword  (0x95<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)
1995         .hword  (0x96<<8)|(1<<SFlag)            |(1<<VFlag)
1996         .hword  (0x97<<8)|(1<<SFlag)
1997         .hword  (0x98<<8)|(1<<SFlag)
1998         .hword  (0x99<<8)|(1<<SFlag)         |(1<<VFlag)
1999         .hword  (0x9A<<8)|(1<<SFlag)         |(1<<VFlag)
2000         .hword  (0x9B<<8)|(1<<SFlag)
2001         .hword  (0x9C<<8)|(1<<SFlag)         |(1<<VFlag)
2002         .hword  (0x9D<<8)|(1<<SFlag)
2003         .hword  (0x9E<<8)|(1<<SFlag)
2004         .hword  (0x9F<<8)|(1<<SFlag)         |(1<<VFlag)
2005         .hword  (0x00<<8)   |(1<<ZFlag)   |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2006         .hword  (0x01<<8)         |(1<<HFlag)         |(1<<CFlag)
2007         .hword  (0x02<<8)         |(1<<HFlag)         |(1<<CFlag)
2008         .hword  (0x03<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2009         .hword  (0x04<<8)         |(1<<HFlag)         |(1<<CFlag)
2010         .hword  (0x05<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2011         .hword  (0x06<<8)               |(1<<VFlag)   |(1<<CFlag)
2012         .hword  (0x07<<8)                     |(1<<CFlag)
2013         .hword  (0x08<<8)                  |(1<<CFlag)
2014         .hword  (0x09<<8)            |(1<<VFlag)   |(1<<CFlag)
2015         .hword  (0x0A<<8)            |(1<<VFlag)   |(1<<CFlag)
2016         .hword  (0x0B<<8)                  |(1<<CFlag)
2017         .hword  (0x0C<<8)            |(1<<VFlag)   |(1<<CFlag)
2018         .hword  (0x0D<<8)                  |(1<<CFlag)
2019         .hword  (0x0E<<8)                  |(1<<CFlag)
2020         .hword  (0x0F<<8)            |(1<<VFlag)   |(1<<CFlag)
2021         .hword  (0x10<<8)         |(1<<HFlag)         |(1<<CFlag)
2022         .hword  (0x11<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2023         .hword  (0x12<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2024         .hword  (0x13<<8)         |(1<<HFlag)         |(1<<CFlag)
2025         .hword  (0x14<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2026         .hword  (0x15<<8)         |(1<<HFlag)         |(1<<CFlag)
2027         .hword  (0x16<<8)                     |(1<<CFlag)
2028         .hword  (0x17<<8)               |(1<<VFlag)   |(1<<CFlag)
2029         .hword  (0x18<<8)            |(1<<VFlag)   |(1<<CFlag)
2030         .hword  (0x19<<8)                  |(1<<CFlag)
2031         .hword  (0x1A<<8)                  |(1<<CFlag)
2032         .hword  (0x1B<<8)            |(1<<VFlag)   |(1<<CFlag)
2033         .hword  (0x1C<<8)                  |(1<<CFlag)
2034         .hword  (0x1D<<8)            |(1<<VFlag)   |(1<<CFlag)
2035         .hword  (0x1E<<8)            |(1<<VFlag)   |(1<<CFlag)
2036         .hword  (0x1F<<8)                  |(1<<CFlag)
2037         .hword  (0x20<<8)      |(1<<HFlag)         |(1<<CFlag)
2038         .hword  (0x21<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2039         .hword  (0x22<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2040         .hword  (0x23<<8)      |(1<<HFlag)         |(1<<CFlag)
2041         .hword  (0x24<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2042         .hword  (0x25<<8)      |(1<<HFlag)         |(1<<CFlag)
2043         .hword  (0x26<<8)                  |(1<<CFlag)
2044         .hword  (0x27<<8)            |(1<<VFlag)   |(1<<CFlag)
2045         .hword  (0x28<<8)         |(1<<VFlag)   |(1<<CFlag)
2046         .hword  (0x29<<8)               |(1<<CFlag)
2047         .hword  (0x2A<<8)               |(1<<CFlag)
2048         .hword  (0x2B<<8)         |(1<<VFlag)   |(1<<CFlag)
2049         .hword  (0x2C<<8)               |(1<<CFlag)
2050         .hword  (0x2D<<8)         |(1<<VFlag)   |(1<<CFlag)
2051         .hword  (0x2E<<8)         |(1<<VFlag)   |(1<<CFlag)
2052         .hword  (0x2F<<8)               |(1<<CFlag)
2053         .hword  (0x30<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2054         .hword  (0x31<<8)      |(1<<HFlag)         |(1<<CFlag)
2055         .hword  (0x32<<8)      |(1<<HFlag)         |(1<<CFlag)
2056         .hword  (0x33<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2057         .hword  (0x34<<8)      |(1<<HFlag)         |(1<<CFlag)
2058         .hword  (0x35<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2059         .hword  (0x36<<8)            |(1<<VFlag)   |(1<<CFlag)
2060         .hword  (0x37<<8)                  |(1<<CFlag)
2061         .hword  (0x38<<8)               |(1<<CFlag)
2062         .hword  (0x39<<8)         |(1<<VFlag)   |(1<<CFlag)
2063         .hword  (0x3A<<8)         |(1<<VFlag)   |(1<<CFlag)
2064         .hword  (0x3B<<8)               |(1<<CFlag)
2065         .hword  (0x3C<<8)         |(1<<VFlag)   |(1<<CFlag)
2066         .hword  (0x3D<<8)               |(1<<CFlag)
2067         .hword  (0x3E<<8)               |(1<<CFlag)
2068         .hword  (0x3F<<8)         |(1<<VFlag)   |(1<<CFlag)
2069         .hword  (0x40<<8)         |(1<<HFlag)         |(1<<CFlag)
2070         .hword  (0x41<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2071         .hword  (0x42<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2072         .hword  (0x43<<8)         |(1<<HFlag)         |(1<<CFlag)
2073         .hword  (0x44<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2074         .hword  (0x45<<8)         |(1<<HFlag)         |(1<<CFlag)
2075         .hword  (0x46<<8)                     |(1<<CFlag)
2076         .hword  (0x47<<8)               |(1<<VFlag)   |(1<<CFlag)
2077         .hword  (0x48<<8)            |(1<<VFlag)   |(1<<CFlag)
2078         .hword  (0x49<<8)                  |(1<<CFlag)
2079         .hword  (0x4A<<8)                  |(1<<CFlag)
2080         .hword  (0x4B<<8)            |(1<<VFlag)   |(1<<CFlag)
2081         .hword  (0x4C<<8)                  |(1<<CFlag)
2082         .hword  (0x4D<<8)            |(1<<VFlag)   |(1<<CFlag)
2083         .hword  (0x4E<<8)            |(1<<VFlag)   |(1<<CFlag)
2084         .hword  (0x4F<<8)                  |(1<<CFlag)
2085         .hword  (0x50<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2086         .hword  (0x51<<8)         |(1<<HFlag)         |(1<<CFlag)
2087         .hword  (0x52<<8)         |(1<<HFlag)         |(1<<CFlag)
2088         .hword  (0x53<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2089         .hword  (0x54<<8)         |(1<<HFlag)         |(1<<CFlag)
2090         .hword  (0x55<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2091         .hword  (0x56<<8)               |(1<<VFlag)   |(1<<CFlag)
2092         .hword  (0x57<<8)                     |(1<<CFlag)
2093         .hword  (0x58<<8)                  |(1<<CFlag)
2094         .hword  (0x59<<8)            |(1<<VFlag)   |(1<<CFlag)
2095         .hword  (0x5A<<8)            |(1<<VFlag)   |(1<<CFlag)
2096         .hword  (0x5B<<8)                  |(1<<CFlag)
2097         .hword  (0x5C<<8)            |(1<<VFlag)   |(1<<CFlag)
2098         .hword  (0x5D<<8)                  |(1<<CFlag)
2099         .hword  (0x5E<<8)                  |(1<<CFlag)
2100         .hword  (0x5F<<8)            |(1<<VFlag)   |(1<<CFlag)
2101         .hword  (0x60<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2102         .hword  (0x61<<8)      |(1<<HFlag)         |(1<<CFlag)
2103         .hword  (0x62<<8)      |(1<<HFlag)         |(1<<CFlag)
2104         .hword  (0x63<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2105         .hword  (0x64<<8)      |(1<<HFlag)         |(1<<CFlag)
2106         .hword  (0x65<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2107         .hword  (0x66<<8)            |(1<<VFlag)   |(1<<CFlag)
2108         .hword  (0x67<<8)                  |(1<<CFlag)
2109         .hword  (0x68<<8)               |(1<<CFlag)
2110         .hword  (0x69<<8)         |(1<<VFlag)   |(1<<CFlag)
2111         .hword  (0x6A<<8)         |(1<<VFlag)   |(1<<CFlag)
2112         .hword  (0x6B<<8)               |(1<<CFlag)
2113         .hword  (0x6C<<8)         |(1<<VFlag)   |(1<<CFlag)
2114         .hword  (0x6D<<8)               |(1<<CFlag)
2115         .hword  (0x6E<<8)               |(1<<CFlag)
2116         .hword  (0x6F<<8)         |(1<<VFlag)   |(1<<CFlag)
2117         .hword  (0x70<<8)      |(1<<HFlag)         |(1<<CFlag)
2118         .hword  (0x71<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2119         .hword  (0x72<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2120         .hword  (0x73<<8)      |(1<<HFlag)         |(1<<CFlag)
2121         .hword  (0x74<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2122         .hword  (0x75<<8)      |(1<<HFlag)         |(1<<CFlag)
2123         .hword  (0x76<<8)                  |(1<<CFlag)
2124         .hword  (0x77<<8)            |(1<<VFlag)   |(1<<CFlag)
2125         .hword  (0x78<<8)         |(1<<VFlag)   |(1<<CFlag)
2126         .hword  (0x79<<8)               |(1<<CFlag)
2127         .hword  (0x7A<<8)               |(1<<CFlag)
2128         .hword  (0x7B<<8)         |(1<<VFlag)   |(1<<CFlag)
2129         .hword  (0x7C<<8)               |(1<<CFlag)
2130         .hword  (0x7D<<8)         |(1<<VFlag)   |(1<<CFlag)
2131         .hword  (0x7E<<8)         |(1<<VFlag)   |(1<<CFlag)
2132         .hword  (0x7F<<8)               |(1<<CFlag)
2133         .hword  (0x80<<8)|(1<<SFlag)      |(1<<HFlag)         |(1<<CFlag)
2134         .hword  (0x81<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2135         .hword  (0x82<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2136         .hword  (0x83<<8)|(1<<SFlag)      |(1<<HFlag)         |(1<<CFlag)
2137         .hword  (0x84<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2138         .hword  (0x85<<8)|(1<<SFlag)      |(1<<HFlag)         |(1<<CFlag)
2139         .hword  (0x86<<8)|(1<<SFlag)                  |(1<<CFlag)
2140         .hword  (0x87<<8)|(1<<SFlag)            |(1<<VFlag)   |(1<<CFlag)
2141         .hword  (0x88<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)
2142         .hword  (0x89<<8)|(1<<SFlag)               |(1<<CFlag)
2143         .hword  (0x8A<<8)|(1<<SFlag)               |(1<<CFlag)
2144         .hword  (0x8B<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)
2145         .hword  (0x8C<<8)|(1<<SFlag)               |(1<<CFlag)
2146         .hword  (0x8D<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)
2147         .hword  (0x8E<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)
2148         .hword  (0x8F<<8)|(1<<SFlag)               |(1<<CFlag)
2149         .hword  (0x90<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2150         .hword  (0x91<<8)|(1<<SFlag)      |(1<<HFlag)         |(1<<CFlag)
2151         .hword  (0x92<<8)|(1<<SFlag)      |(1<<HFlag)         |(1<<CFlag)
2152         .hword  (0x93<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2153         .hword  (0x94<<8)|(1<<SFlag)      |(1<<HFlag)         |(1<<CFlag)
2154         .hword  (0x95<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2155         .hword  (0x96<<8)|(1<<SFlag)            |(1<<VFlag)   |(1<<CFlag)
2156         .hword  (0x97<<8)|(1<<SFlag)                  |(1<<CFlag)
2157         .hword  (0x98<<8)|(1<<SFlag)               |(1<<CFlag)
2158         .hword  (0x99<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)
2159         .hword  (0x9A<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)
2160         .hword  (0x9B<<8)|(1<<SFlag)               |(1<<CFlag)
2161         .hword  (0x9C<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)
2162         .hword  (0x9D<<8)|(1<<SFlag)               |(1<<CFlag)
2163         .hword  (0x9E<<8)|(1<<SFlag)               |(1<<CFlag)
2164         .hword  (0x9F<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)
2165         .hword  (0xA0<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2166         .hword  (0xA1<<8)|(1<<SFlag)   |(1<<HFlag)         |(1<<CFlag)
2167         .hword  (0xA2<<8)|(1<<SFlag)   |(1<<HFlag)         |(1<<CFlag)
2168         .hword  (0xA3<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2169         .hword  (0xA4<<8)|(1<<SFlag)   |(1<<HFlag)         |(1<<CFlag)
2170         .hword  (0xA5<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2171         .hword  (0xA6<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)
2172         .hword  (0xA7<<8)|(1<<SFlag)               |(1<<CFlag)
2173         .hword  (0xA8<<8)|(1<<SFlag)            |(1<<CFlag)
2174         .hword  (0xA9<<8)|(1<<SFlag)      |(1<<VFlag)   |(1<<CFlag)
2175         .hword  (0xAA<<8)|(1<<SFlag)      |(1<<VFlag)   |(1<<CFlag)
2176         .hword  (0xAB<<8)|(1<<SFlag)            |(1<<CFlag)
2177         .hword  (0xAC<<8)|(1<<SFlag)      |(1<<VFlag)   |(1<<CFlag)
2178         .hword  (0xAD<<8)|(1<<SFlag)            |(1<<CFlag)
2179         .hword  (0xAE<<8)|(1<<SFlag)            |(1<<CFlag)
2180         .hword  (0xAF<<8)|(1<<SFlag)      |(1<<VFlag)   |(1<<CFlag)
2181         .hword  (0xB0<<8)|(1<<SFlag)   |(1<<HFlag)         |(1<<CFlag)
2182         .hword  (0xB1<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2183         .hword  (0xB2<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2184         .hword  (0xB3<<8)|(1<<SFlag)   |(1<<HFlag)         |(1<<CFlag)
2185         .hword  (0xB4<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2186         .hword  (0xB5<<8)|(1<<SFlag)   |(1<<HFlag)         |(1<<CFlag)
2187         .hword  (0xB6<<8)|(1<<SFlag)               |(1<<CFlag)
2188         .hword  (0xB7<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)
2189         .hword  (0xB8<<8)|(1<<SFlag)      |(1<<VFlag)   |(1<<CFlag)
2190         .hword  (0xB9<<8)|(1<<SFlag)            |(1<<CFlag)
2191         .hword  (0xBA<<8)|(1<<SFlag)            |(1<<CFlag)
2192         .hword  (0xBB<<8)|(1<<SFlag)      |(1<<VFlag)   |(1<<CFlag)
2193         .hword  (0xBC<<8)|(1<<SFlag)            |(1<<CFlag)
2194         .hword  (0xBD<<8)|(1<<SFlag)      |(1<<VFlag)   |(1<<CFlag)
2195         .hword  (0xBE<<8)|(1<<SFlag)      |(1<<VFlag)   |(1<<CFlag)
2196         .hword  (0xBF<<8)|(1<<SFlag)            |(1<<CFlag)
2197         .hword  (0xC0<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2198         .hword  (0xC1<<8)|(1<<SFlag)      |(1<<HFlag)         |(1<<CFlag)
2199         .hword  (0xC2<<8)|(1<<SFlag)      |(1<<HFlag)         |(1<<CFlag)
2200         .hword  (0xC3<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2201         .hword  (0xC4<<8)|(1<<SFlag)      |(1<<HFlag)         |(1<<CFlag)
2202         .hword  (0xC5<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2203         .hword  (0xC6<<8)|(1<<SFlag)            |(1<<VFlag)   |(1<<CFlag)
2204         .hword  (0xC7<<8)|(1<<SFlag)                  |(1<<CFlag)
2205         .hword  (0xC8<<8)|(1<<SFlag)               |(1<<CFlag)
2206         .hword  (0xC9<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)
2207         .hword  (0xCA<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)
2208         .hword  (0xCB<<8)|(1<<SFlag)               |(1<<CFlag)
2209         .hword  (0xCC<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)
2210         .hword  (0xCD<<8)|(1<<SFlag)               |(1<<CFlag)
2211         .hword  (0xCE<<8)|(1<<SFlag)               |(1<<CFlag)
2212         .hword  (0xCF<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)
2213         .hword  (0xD0<<8)|(1<<SFlag)      |(1<<HFlag)         |(1<<CFlag)
2214         .hword  (0xD1<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2215         .hword  (0xD2<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2216         .hword  (0xD3<<8)|(1<<SFlag)      |(1<<HFlag)         |(1<<CFlag)
2217         .hword  (0xD4<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2218         .hword  (0xD5<<8)|(1<<SFlag)      |(1<<HFlag)         |(1<<CFlag)
2219         .hword  (0xD6<<8)|(1<<SFlag)                  |(1<<CFlag)
2220         .hword  (0xD7<<8)|(1<<SFlag)            |(1<<VFlag)   |(1<<CFlag)
2221         .hword  (0xD8<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)
2222         .hword  (0xD9<<8)|(1<<SFlag)               |(1<<CFlag)
2223         .hword  (0xDA<<8)|(1<<SFlag)               |(1<<CFlag)
2224         .hword  (0xDB<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)
2225         .hword  (0xDC<<8)|(1<<SFlag)               |(1<<CFlag)
2226         .hword  (0xDD<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)
2227         .hword  (0xDE<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)
2228         .hword  (0xDF<<8)|(1<<SFlag)               |(1<<CFlag)
2229         .hword  (0xE0<<8)|(1<<SFlag)   |(1<<HFlag)         |(1<<CFlag)
2230         .hword  (0xE1<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2231         .hword  (0xE2<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2232         .hword  (0xE3<<8)|(1<<SFlag)   |(1<<HFlag)         |(1<<CFlag)
2233         .hword  (0xE4<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2234         .hword  (0xE5<<8)|(1<<SFlag)   |(1<<HFlag)         |(1<<CFlag)
2235         .hword  (0xE6<<8)|(1<<SFlag)               |(1<<CFlag)
2236         .hword  (0xE7<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)
2237         .hword  (0xE8<<8)|(1<<SFlag)      |(1<<VFlag)   |(1<<CFlag)
2238         .hword  (0xE9<<8)|(1<<SFlag)            |(1<<CFlag)
2239         .hword  (0xEA<<8)|(1<<SFlag)            |(1<<CFlag)
2240         .hword  (0xEB<<8)|(1<<SFlag)      |(1<<VFlag)   |(1<<CFlag)
2241         .hword  (0xEC<<8)|(1<<SFlag)            |(1<<CFlag)
2242         .hword  (0xED<<8)|(1<<SFlag)      |(1<<VFlag)   |(1<<CFlag)
2243         .hword  (0xEE<<8)|(1<<SFlag)      |(1<<VFlag)   |(1<<CFlag)
2244         .hword  (0xEF<<8)|(1<<SFlag)            |(1<<CFlag)
2245         .hword  (0xF0<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2246         .hword  (0xF1<<8)|(1<<SFlag)   |(1<<HFlag)         |(1<<CFlag)
2247         .hword  (0xF2<<8)|(1<<SFlag)   |(1<<HFlag)         |(1<<CFlag)
2248         .hword  (0xF3<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2249         .hword  (0xF4<<8)|(1<<SFlag)   |(1<<HFlag)         |(1<<CFlag)
2250         .hword  (0xF5<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2251         .hword  (0xF6<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)
2252         .hword  (0xF7<<8)|(1<<SFlag)               |(1<<CFlag)
2253         .hword  (0xF8<<8)|(1<<SFlag)            |(1<<CFlag)
2254         .hword  (0xF9<<8)|(1<<SFlag)      |(1<<VFlag)   |(1<<CFlag)
2255         .hword  (0xFA<<8)|(1<<SFlag)      |(1<<VFlag)   |(1<<CFlag)
2256         .hword  (0xFB<<8)|(1<<SFlag)            |(1<<CFlag)
2257         .hword  (0xFC<<8)|(1<<SFlag)      |(1<<VFlag)   |(1<<CFlag)
2258         .hword  (0xFD<<8)|(1<<SFlag)            |(1<<CFlag)
2259         .hword  (0xFE<<8)|(1<<SFlag)            |(1<<CFlag)
2260         .hword  (0xFF<<8)|(1<<SFlag)      |(1<<VFlag)   |(1<<CFlag)
2261         .hword  (0x00<<8)   |(1<<ZFlag)   |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2262         .hword  (0x01<<8)         |(1<<HFlag)         |(1<<CFlag)
2263         .hword  (0x02<<8)         |(1<<HFlag)         |(1<<CFlag)
2264         .hword  (0x03<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2265         .hword  (0x04<<8)         |(1<<HFlag)         |(1<<CFlag)
2266         .hword  (0x05<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2267         .hword  (0x06<<8)               |(1<<VFlag)   |(1<<CFlag)
2268         .hword  (0x07<<8)                     |(1<<CFlag)
2269         .hword  (0x08<<8)                  |(1<<CFlag)
2270         .hword  (0x09<<8)            |(1<<VFlag)   |(1<<CFlag)
2271         .hword  (0x0A<<8)            |(1<<VFlag)   |(1<<CFlag)
2272         .hword  (0x0B<<8)                  |(1<<CFlag)
2273         .hword  (0x0C<<8)            |(1<<VFlag)   |(1<<CFlag)
2274         .hword  (0x0D<<8)                  |(1<<CFlag)
2275         .hword  (0x0E<<8)                  |(1<<CFlag)
2276         .hword  (0x0F<<8)            |(1<<VFlag)   |(1<<CFlag)
2277         .hword  (0x10<<8)         |(1<<HFlag)         |(1<<CFlag)
2278         .hword  (0x11<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2279         .hword  (0x12<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2280         .hword  (0x13<<8)         |(1<<HFlag)         |(1<<CFlag)
2281         .hword  (0x14<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2282         .hword  (0x15<<8)         |(1<<HFlag)         |(1<<CFlag)
2283         .hword  (0x16<<8)                     |(1<<CFlag)
2284         .hword  (0x17<<8)               |(1<<VFlag)   |(1<<CFlag)
2285         .hword  (0x18<<8)            |(1<<VFlag)   |(1<<CFlag)
2286         .hword  (0x19<<8)                  |(1<<CFlag)
2287         .hword  (0x1A<<8)                  |(1<<CFlag)
2288         .hword  (0x1B<<8)            |(1<<VFlag)   |(1<<CFlag)
2289         .hword  (0x1C<<8)                  |(1<<CFlag)
2290         .hword  (0x1D<<8)            |(1<<VFlag)   |(1<<CFlag)
2291         .hword  (0x1E<<8)            |(1<<VFlag)   |(1<<CFlag)
2292         .hword  (0x1F<<8)                  |(1<<CFlag)
2293         .hword  (0x20<<8)      |(1<<HFlag)         |(1<<CFlag)
2294         .hword  (0x21<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2295         .hword  (0x22<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2296         .hword  (0x23<<8)      |(1<<HFlag)         |(1<<CFlag)
2297         .hword  (0x24<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2298         .hword  (0x25<<8)      |(1<<HFlag)         |(1<<CFlag)
2299         .hword  (0x26<<8)                  |(1<<CFlag)
2300         .hword  (0x27<<8)            |(1<<VFlag)   |(1<<CFlag)
2301         .hword  (0x28<<8)         |(1<<VFlag)   |(1<<CFlag)
2302         .hword  (0x29<<8)               |(1<<CFlag)
2303         .hword  (0x2A<<8)               |(1<<CFlag)
2304         .hword  (0x2B<<8)         |(1<<VFlag)   |(1<<CFlag)
2305         .hword  (0x2C<<8)               |(1<<CFlag)
2306         .hword  (0x2D<<8)         |(1<<VFlag)   |(1<<CFlag)
2307         .hword  (0x2E<<8)         |(1<<VFlag)   |(1<<CFlag)
2308         .hword  (0x2F<<8)               |(1<<CFlag)
2309         .hword  (0x30<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2310         .hword  (0x31<<8)      |(1<<HFlag)         |(1<<CFlag)
2311         .hword  (0x32<<8)      |(1<<HFlag)         |(1<<CFlag)
2312         .hword  (0x33<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2313         .hword  (0x34<<8)      |(1<<HFlag)         |(1<<CFlag)
2314         .hword  (0x35<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2315         .hword  (0x36<<8)            |(1<<VFlag)   |(1<<CFlag)
2316         .hword  (0x37<<8)                  |(1<<CFlag)
2317         .hword  (0x38<<8)               |(1<<CFlag)
2318         .hword  (0x39<<8)         |(1<<VFlag)   |(1<<CFlag)
2319         .hword  (0x3A<<8)         |(1<<VFlag)   |(1<<CFlag)
2320         .hword  (0x3B<<8)               |(1<<CFlag)
2321         .hword  (0x3C<<8)         |(1<<VFlag)   |(1<<CFlag)
2322         .hword  (0x3D<<8)               |(1<<CFlag)
2323         .hword  (0x3E<<8)               |(1<<CFlag)
2324         .hword  (0x3F<<8)         |(1<<VFlag)   |(1<<CFlag)
2325         .hword  (0x40<<8)         |(1<<HFlag)         |(1<<CFlag)
2326         .hword  (0x41<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2327         .hword  (0x42<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2328         .hword  (0x43<<8)         |(1<<HFlag)         |(1<<CFlag)
2329         .hword  (0x44<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2330         .hword  (0x45<<8)         |(1<<HFlag)         |(1<<CFlag)
2331         .hword  (0x46<<8)                     |(1<<CFlag)
2332         .hword  (0x47<<8)               |(1<<VFlag)   |(1<<CFlag)
2333         .hword  (0x48<<8)            |(1<<VFlag)   |(1<<CFlag)
2334         .hword  (0x49<<8)                  |(1<<CFlag)
2335         .hword  (0x4A<<8)                  |(1<<CFlag)
2336         .hword  (0x4B<<8)            |(1<<VFlag)   |(1<<CFlag)
2337         .hword  (0x4C<<8)                  |(1<<CFlag)
2338         .hword  (0x4D<<8)            |(1<<VFlag)   |(1<<CFlag)
2339         .hword  (0x4E<<8)            |(1<<VFlag)   |(1<<CFlag)
2340         .hword  (0x4F<<8)                  |(1<<CFlag)
2341         .hword  (0x50<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2342         .hword  (0x51<<8)         |(1<<HFlag)         |(1<<CFlag)
2343         .hword  (0x52<<8)         |(1<<HFlag)         |(1<<CFlag)
2344         .hword  (0x53<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2345         .hword  (0x54<<8)         |(1<<HFlag)         |(1<<CFlag)
2346         .hword  (0x55<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2347         .hword  (0x56<<8)               |(1<<VFlag)   |(1<<CFlag)
2348         .hword  (0x57<<8)                     |(1<<CFlag)
2349         .hword  (0x58<<8)                  |(1<<CFlag)
2350         .hword  (0x59<<8)            |(1<<VFlag)   |(1<<CFlag)
2351         .hword  (0x5A<<8)            |(1<<VFlag)   |(1<<CFlag)
2352         .hword  (0x5B<<8)                  |(1<<CFlag)
2353         .hword  (0x5C<<8)            |(1<<VFlag)   |(1<<CFlag)
2354         .hword  (0x5D<<8)                  |(1<<CFlag)
2355         .hword  (0x5E<<8)                  |(1<<CFlag)
2356         .hword  (0x5F<<8)            |(1<<VFlag)   |(1<<CFlag)
2357         .hword  (0x60<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2358         .hword  (0x61<<8)      |(1<<HFlag)         |(1<<CFlag)
2359         .hword  (0x62<<8)      |(1<<HFlag)         |(1<<CFlag)
2360         .hword  (0x63<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2361         .hword  (0x64<<8)      |(1<<HFlag)         |(1<<CFlag)
2362         .hword  (0x65<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2363         .hword  (0x00<<8)   |(1<<ZFlag)         |(1<<VFlag)|(1<<NFlag)
2364         .hword  (0x01<<8)                  |(1<<NFlag)
2365         .hword  (0x02<<8)                  |(1<<NFlag)
2366         .hword  (0x03<<8)               |(1<<VFlag)|(1<<NFlag)
2367         .hword  (0x04<<8)                  |(1<<NFlag)
2368         .hword  (0x05<<8)               |(1<<VFlag)|(1<<NFlag)
2369         .hword  (0x06<<8)               |(1<<VFlag)|(1<<NFlag)
2370         .hword  (0x07<<8)                  |(1<<NFlag)
2371         .hword  (0x08<<8)               |(1<<NFlag)
2372         .hword  (0x09<<8)            |(1<<VFlag)|(1<<NFlag)
2373         .hword  (0x04<<8)                  |(1<<NFlag)
2374         .hword  (0x05<<8)               |(1<<VFlag)|(1<<NFlag)
2375         .hword  (0x06<<8)               |(1<<VFlag)|(1<<NFlag)
2376         .hword  (0x07<<8)                  |(1<<NFlag)
2377         .hword  (0x08<<8)               |(1<<NFlag)
2378         .hword  (0x09<<8)            |(1<<VFlag)|(1<<NFlag)
2379         .hword  (0x10<<8)                  |(1<<NFlag)
2380         .hword  (0x11<<8)               |(1<<VFlag)|(1<<NFlag)
2381         .hword  (0x12<<8)               |(1<<VFlag)|(1<<NFlag)
2382         .hword  (0x13<<8)                  |(1<<NFlag)
2383         .hword  (0x14<<8)               |(1<<VFlag)|(1<<NFlag)
2384         .hword  (0x15<<8)                  |(1<<NFlag)
2385         .hword  (0x16<<8)                  |(1<<NFlag)
2386         .hword  (0x17<<8)               |(1<<VFlag)|(1<<NFlag)
2387         .hword  (0x18<<8)            |(1<<VFlag)|(1<<NFlag)
2388         .hword  (0x19<<8)               |(1<<NFlag)
2389         .hword  (0x14<<8)               |(1<<VFlag)|(1<<NFlag)
2390         .hword  (0x15<<8)                  |(1<<NFlag)
2391         .hword  (0x16<<8)                  |(1<<NFlag)
2392         .hword  (0x17<<8)               |(1<<VFlag)|(1<<NFlag)
2393         .hword  (0x18<<8)            |(1<<VFlag)|(1<<NFlag)
2394         .hword  (0x19<<8)               |(1<<NFlag)
2395         .hword  (0x20<<8)               |(1<<NFlag)
2396         .hword  (0x21<<8)            |(1<<VFlag)|(1<<NFlag)
2397         .hword  (0x22<<8)            |(1<<VFlag)|(1<<NFlag)
2398         .hword  (0x23<<8)               |(1<<NFlag)
2399         .hword  (0x24<<8)            |(1<<VFlag)|(1<<NFlag)
2400         .hword  (0x25<<8)               |(1<<NFlag)
2401         .hword  (0x26<<8)               |(1<<NFlag)
2402         .hword  (0x27<<8)            |(1<<VFlag)|(1<<NFlag)
2403         .hword  (0x28<<8)         |(1<<VFlag)|(1<<NFlag)
2404         .hword  (0x29<<8)            |(1<<NFlag)
2405         .hword  (0x24<<8)            |(1<<VFlag)|(1<<NFlag)
2406         .hword  (0x25<<8)               |(1<<NFlag)
2407         .hword  (0x26<<8)               |(1<<NFlag)
2408         .hword  (0x27<<8)            |(1<<VFlag)|(1<<NFlag)
2409         .hword  (0x28<<8)         |(1<<VFlag)|(1<<NFlag)
2410         .hword  (0x29<<8)            |(1<<NFlag)
2411         .hword  (0x30<<8)            |(1<<VFlag)|(1<<NFlag)
2412         .hword  (0x31<<8)               |(1<<NFlag)
2413         .hword  (0x32<<8)               |(1<<NFlag)
2414         .hword  (0x33<<8)            |(1<<VFlag)|(1<<NFlag)
2415         .hword  (0x34<<8)               |(1<<NFlag)
2416         .hword  (0x35<<8)            |(1<<VFlag)|(1<<NFlag)
2417         .hword  (0x36<<8)            |(1<<VFlag)|(1<<NFlag)
2418         .hword  (0x37<<8)               |(1<<NFlag)
2419         .hword  (0x38<<8)            |(1<<NFlag)
2420         .hword  (0x39<<8)         |(1<<VFlag)|(1<<NFlag)
2421         .hword  (0x34<<8)               |(1<<NFlag)
2422         .hword  (0x35<<8)            |(1<<VFlag)|(1<<NFlag)
2423         .hword  (0x36<<8)            |(1<<VFlag)|(1<<NFlag)
2424         .hword  (0x37<<8)               |(1<<NFlag)
2425         .hword  (0x38<<8)            |(1<<NFlag)
2426         .hword  (0x39<<8)         |(1<<VFlag)|(1<<NFlag)
2427         .hword  (0x40<<8)                  |(1<<NFlag)
2428         .hword  (0x41<<8)               |(1<<VFlag)|(1<<NFlag)
2429         .hword  (0x42<<8)               |(1<<VFlag)|(1<<NFlag)
2430         .hword  (0x43<<8)                  |(1<<NFlag)
2431         .hword  (0x44<<8)               |(1<<VFlag)|(1<<NFlag)
2432         .hword  (0x45<<8)                  |(1<<NFlag)
2433         .hword  (0x46<<8)                  |(1<<NFlag)
2434         .hword  (0x47<<8)               |(1<<VFlag)|(1<<NFlag)
2435         .hword  (0x48<<8)            |(1<<VFlag)|(1<<NFlag)
2436         .hword  (0x49<<8)               |(1<<NFlag)
2437         .hword  (0x44<<8)               |(1<<VFlag)|(1<<NFlag)
2438         .hword  (0x45<<8)                  |(1<<NFlag)
2439         .hword  (0x46<<8)                  |(1<<NFlag)
2440         .hword  (0x47<<8)               |(1<<VFlag)|(1<<NFlag)
2441         .hword  (0x48<<8)            |(1<<VFlag)|(1<<NFlag)
2442         .hword  (0x49<<8)               |(1<<NFlag)
2443         .hword  (0x50<<8)               |(1<<VFlag)|(1<<NFlag)
2444         .hword  (0x51<<8)                  |(1<<NFlag)
2445         .hword  (0x52<<8)                  |(1<<NFlag)
2446         .hword  (0x53<<8)               |(1<<VFlag)|(1<<NFlag)
2447         .hword  (0x54<<8)                  |(1<<NFlag)
2448         .hword  (0x55<<8)               |(1<<VFlag)|(1<<NFlag)
2449         .hword  (0x56<<8)               |(1<<VFlag)|(1<<NFlag)
2450         .hword  (0x57<<8)                  |(1<<NFlag)
2451         .hword  (0x58<<8)               |(1<<NFlag)
2452         .hword  (0x59<<8)            |(1<<VFlag)|(1<<NFlag)
2453         .hword  (0x54<<8)                  |(1<<NFlag)
2454         .hword  (0x55<<8)               |(1<<VFlag)|(1<<NFlag)
2455         .hword  (0x56<<8)               |(1<<VFlag)|(1<<NFlag)
2456         .hword  (0x57<<8)                  |(1<<NFlag)
2457         .hword  (0x58<<8)               |(1<<NFlag)
2458         .hword  (0x59<<8)            |(1<<VFlag)|(1<<NFlag)
2459         .hword  (0x60<<8)            |(1<<VFlag)|(1<<NFlag)
2460         .hword  (0x61<<8)               |(1<<NFlag)
2461         .hword  (0x62<<8)               |(1<<NFlag)
2462         .hword  (0x63<<8)            |(1<<VFlag)|(1<<NFlag)
2463         .hword  (0x64<<8)               |(1<<NFlag)
2464         .hword  (0x65<<8)            |(1<<VFlag)|(1<<NFlag)
2465         .hword  (0x66<<8)            |(1<<VFlag)|(1<<NFlag)
2466         .hword  (0x67<<8)               |(1<<NFlag)
2467         .hword  (0x68<<8)            |(1<<NFlag)
2468         .hword  (0x69<<8)         |(1<<VFlag)|(1<<NFlag)
2469         .hword  (0x64<<8)               |(1<<NFlag)
2470         .hword  (0x65<<8)            |(1<<VFlag)|(1<<NFlag)
2471         .hword  (0x66<<8)            |(1<<VFlag)|(1<<NFlag)
2472         .hword  (0x67<<8)               |(1<<NFlag)
2473         .hword  (0x68<<8)            |(1<<NFlag)
2474         .hword  (0x69<<8)         |(1<<VFlag)|(1<<NFlag)
2475         .hword  (0x70<<8)               |(1<<NFlag)
2476         .hword  (0x71<<8)            |(1<<VFlag)|(1<<NFlag)
2477         .hword  (0x72<<8)            |(1<<VFlag)|(1<<NFlag)
2478         .hword  (0x73<<8)               |(1<<NFlag)
2479         .hword  (0x74<<8)            |(1<<VFlag)|(1<<NFlag)
2480         .hword  (0x75<<8)               |(1<<NFlag)
2481         .hword  (0x76<<8)               |(1<<NFlag)
2482         .hword  (0x77<<8)            |(1<<VFlag)|(1<<NFlag)
2483         .hword  (0x78<<8)         |(1<<VFlag)|(1<<NFlag)
2484         .hword  (0x79<<8)            |(1<<NFlag)
2485         .hword  (0x74<<8)            |(1<<VFlag)|(1<<NFlag)
2486         .hword  (0x75<<8)               |(1<<NFlag)
2487         .hword  (0x76<<8)               |(1<<NFlag)
2488         .hword  (0x77<<8)            |(1<<VFlag)|(1<<NFlag)
2489         .hword  (0x78<<8)         |(1<<VFlag)|(1<<NFlag)
2490         .hword  (0x79<<8)            |(1<<NFlag)
2491         .hword  (0x80<<8)|(1<<SFlag)               |(1<<NFlag)
2492         .hword  (0x81<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)
2493         .hword  (0x82<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)
2494         .hword  (0x83<<8)|(1<<SFlag)               |(1<<NFlag)
2495         .hword  (0x84<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)
2496         .hword  (0x85<<8)|(1<<SFlag)               |(1<<NFlag)
2497         .hword  (0x86<<8)|(1<<SFlag)               |(1<<NFlag)
2498         .hword  (0x87<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)
2499         .hword  (0x88<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)
2500         .hword  (0x89<<8)|(1<<SFlag)            |(1<<NFlag)
2501         .hword  (0x84<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)
2502         .hword  (0x85<<8)|(1<<SFlag)               |(1<<NFlag)
2503         .hword  (0x86<<8)|(1<<SFlag)               |(1<<NFlag)
2504         .hword  (0x87<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)
2505         .hword  (0x88<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)
2506         .hword  (0x89<<8)|(1<<SFlag)            |(1<<NFlag)
2507         .hword  (0x90<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)
2508         .hword  (0x91<<8)|(1<<SFlag)               |(1<<NFlag)
2509         .hword  (0x92<<8)|(1<<SFlag)               |(1<<NFlag)
2510         .hword  (0x93<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)
2511         .hword  (0x94<<8)|(1<<SFlag)               |(1<<NFlag)
2512         .hword  (0x95<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)
2513         .hword  (0x96<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)
2514         .hword  (0x97<<8)|(1<<SFlag)               |(1<<NFlag)
2515         .hword  (0x98<<8)|(1<<SFlag)            |(1<<NFlag)
2516         .hword  (0x99<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)
2517         .hword  (0x34<<8)               |(1<<NFlag)|(1<<CFlag)
2518         .hword  (0x35<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2519         .hword  (0x36<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2520         .hword  (0x37<<8)               |(1<<NFlag)|(1<<CFlag)
2521         .hword  (0x38<<8)            |(1<<NFlag)|(1<<CFlag)
2522         .hword  (0x39<<8)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2523         .hword  (0x40<<8)                  |(1<<NFlag)|(1<<CFlag)
2524         .hword  (0x41<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2525         .hword  (0x42<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2526         .hword  (0x43<<8)                  |(1<<NFlag)|(1<<CFlag)
2527         .hword  (0x44<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2528         .hword  (0x45<<8)                  |(1<<NFlag)|(1<<CFlag)
2529         .hword  (0x46<<8)                  |(1<<NFlag)|(1<<CFlag)
2530         .hword  (0x47<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2531         .hword  (0x48<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2532         .hword  (0x49<<8)               |(1<<NFlag)|(1<<CFlag)
2533         .hword  (0x44<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2534         .hword  (0x45<<8)                  |(1<<NFlag)|(1<<CFlag)
2535         .hword  (0x46<<8)                  |(1<<NFlag)|(1<<CFlag)
2536         .hword  (0x47<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2537         .hword  (0x48<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2538         .hword  (0x49<<8)               |(1<<NFlag)|(1<<CFlag)
2539         .hword  (0x50<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2540         .hword  (0x51<<8)                  |(1<<NFlag)|(1<<CFlag)
2541         .hword  (0x52<<8)                  |(1<<NFlag)|(1<<CFlag)
2542         .hword  (0x53<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2543         .hword  (0x54<<8)                  |(1<<NFlag)|(1<<CFlag)
2544         .hword  (0x55<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2545         .hword  (0x56<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2546         .hword  (0x57<<8)                  |(1<<NFlag)|(1<<CFlag)
2547         .hword  (0x58<<8)               |(1<<NFlag)|(1<<CFlag)
2548         .hword  (0x59<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2549         .hword  (0x54<<8)                  |(1<<NFlag)|(1<<CFlag)
2550         .hword  (0x55<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2551         .hword  (0x56<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2552         .hword  (0x57<<8)                  |(1<<NFlag)|(1<<CFlag)
2553         .hword  (0x58<<8)               |(1<<NFlag)|(1<<CFlag)
2554         .hword  (0x59<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2555         .hword  (0x60<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2556         .hword  (0x61<<8)               |(1<<NFlag)|(1<<CFlag)
2557         .hword  (0x62<<8)               |(1<<NFlag)|(1<<CFlag)
2558         .hword  (0x63<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2559         .hword  (0x64<<8)               |(1<<NFlag)|(1<<CFlag)
2560         .hword  (0x65<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2561         .hword  (0x66<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2562         .hword  (0x67<<8)               |(1<<NFlag)|(1<<CFlag)
2563         .hword  (0x68<<8)            |(1<<NFlag)|(1<<CFlag)
2564         .hword  (0x69<<8)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2565         .hword  (0x64<<8)               |(1<<NFlag)|(1<<CFlag)
2566         .hword  (0x65<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2567         .hword  (0x66<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2568         .hword  (0x67<<8)               |(1<<NFlag)|(1<<CFlag)
2569         .hword  (0x68<<8)            |(1<<NFlag)|(1<<CFlag)
2570         .hword  (0x69<<8)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2571         .hword  (0x70<<8)               |(1<<NFlag)|(1<<CFlag)
2572         .hword  (0x71<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2573         .hword  (0x72<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2574         .hword  (0x73<<8)               |(1<<NFlag)|(1<<CFlag)
2575         .hword  (0x74<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2576         .hword  (0x75<<8)               |(1<<NFlag)|(1<<CFlag)
2577         .hword  (0x76<<8)               |(1<<NFlag)|(1<<CFlag)
2578         .hword  (0x77<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2579         .hword  (0x78<<8)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2580         .hword  (0x79<<8)            |(1<<NFlag)|(1<<CFlag)
2581         .hword  (0x74<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2582         .hword  (0x75<<8)               |(1<<NFlag)|(1<<CFlag)
2583         .hword  (0x76<<8)               |(1<<NFlag)|(1<<CFlag)
2584         .hword  (0x77<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2585         .hword  (0x78<<8)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2586         .hword  (0x79<<8)            |(1<<NFlag)|(1<<CFlag)
2587         .hword  (0x80<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
2588         .hword  (0x81<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2589         .hword  (0x82<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2590         .hword  (0x83<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
2591         .hword  (0x84<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2592         .hword  (0x85<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
2593         .hword  (0x86<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
2594         .hword  (0x87<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2595         .hword  (0x88<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2596         .hword  (0x89<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
2597         .hword  (0x84<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2598         .hword  (0x85<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
2599         .hword  (0x86<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
2600         .hword  (0x87<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2601         .hword  (0x88<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2602         .hword  (0x89<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
2603         .hword  (0x90<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2604         .hword  (0x91<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
2605         .hword  (0x92<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
2606         .hword  (0x93<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2607         .hword  (0x94<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
2608         .hword  (0x95<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2609         .hword  (0x96<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2610         .hword  (0x97<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
2611         .hword  (0x98<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
2612         .hword  (0x99<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2613         .hword  (0x94<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
2614         .hword  (0x95<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2615         .hword  (0x96<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2616         .hword  (0x97<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
2617         .hword  (0x98<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
2618         .hword  (0x99<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2619         .hword  (0xA0<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2620         .hword  (0xA1<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
2621         .hword  (0xA2<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
2622         .hword  (0xA3<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2623         .hword  (0xA4<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
2624         .hword  (0xA5<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2625         .hword  (0xA6<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2626         .hword  (0xA7<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
2627         .hword  (0xA8<<8)|(1<<SFlag)         |(1<<NFlag)|(1<<CFlag)
2628         .hword  (0xA9<<8)|(1<<SFlag)      |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2629         .hword  (0xA4<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
2630         .hword  (0xA5<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2631         .hword  (0xA6<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2632         .hword  (0xA7<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
2633         .hword  (0xA8<<8)|(1<<SFlag)         |(1<<NFlag)|(1<<CFlag)
2634         .hword  (0xA9<<8)|(1<<SFlag)      |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2635         .hword  (0xB0<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
2636         .hword  (0xB1<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2637         .hword  (0xB2<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2638         .hword  (0xB3<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
2639         .hword  (0xB4<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2640         .hword  (0xB5<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
2641         .hword  (0xB6<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
2642         .hword  (0xB7<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2643         .hword  (0xB8<<8)|(1<<SFlag)      |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2644         .hword  (0xB9<<8)|(1<<SFlag)         |(1<<NFlag)|(1<<CFlag)
2645         .hword  (0xB4<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2646         .hword  (0xB5<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
2647         .hword  (0xB6<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
2648         .hword  (0xB7<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2649         .hword  (0xB8<<8)|(1<<SFlag)      |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2650         .hword  (0xB9<<8)|(1<<SFlag)         |(1<<NFlag)|(1<<CFlag)
2651         .hword  (0xC0<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2652         .hword  (0xC1<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
2653         .hword  (0xC2<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
2654         .hword  (0xC3<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2655         .hword  (0xC4<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
2656         .hword  (0xC5<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2657         .hword  (0xC6<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2658         .hword  (0xC7<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
2659         .hword  (0xC8<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
2660         .hword  (0xC9<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2661         .hword  (0xC4<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
2662         .hword  (0xC5<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2663         .hword  (0xC6<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2664         .hword  (0xC7<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
2665         .hword  (0xC8<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
2666         .hword  (0xC9<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2667         .hword  (0xD0<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
2668         .hword  (0xD1<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2669         .hword  (0xD2<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2670         .hword  (0xD3<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
2671         .hword  (0xD4<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2672         .hword  (0xD5<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
2673         .hword  (0xD6<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
2674         .hword  (0xD7<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2675         .hword  (0xD8<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2676         .hword  (0xD9<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
2677         .hword  (0xD4<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2678         .hword  (0xD5<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
2679         .hword  (0xD6<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
2680         .hword  (0xD7<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2681         .hword  (0xD8<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2682         .hword  (0xD9<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
2683         .hword  (0xE0<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
2684         .hword  (0xE1<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2685         .hword  (0xE2<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2686         .hword  (0xE3<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
2687         .hword  (0xE4<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2688         .hword  (0xE5<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
2689         .hword  (0xE6<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
2690         .hword  (0xE7<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2691         .hword  (0xE8<<8)|(1<<SFlag)      |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2692         .hword  (0xE9<<8)|(1<<SFlag)         |(1<<NFlag)|(1<<CFlag)
2693         .hword  (0xE4<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2694         .hword  (0xE5<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
2695         .hword  (0xE6<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
2696         .hword  (0xE7<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2697         .hword  (0xE8<<8)|(1<<SFlag)      |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2698         .hword  (0xE9<<8)|(1<<SFlag)         |(1<<NFlag)|(1<<CFlag)
2699         .hword  (0xF0<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2700         .hword  (0xF1<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
2701         .hword  (0xF2<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
2702         .hword  (0xF3<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2703         .hword  (0xF4<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
2704         .hword  (0xF5<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2705         .hword  (0xF6<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2706         .hword  (0xF7<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
2707         .hword  (0xF8<<8)|(1<<SFlag)         |(1<<NFlag)|(1<<CFlag)
2708         .hword  (0xF9<<8)|(1<<SFlag)      |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2709         .hword  (0xF4<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
2710         .hword  (0xF5<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2711         .hword  (0xF6<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2712         .hword  (0xF7<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
2713         .hword  (0xF8<<8)|(1<<SFlag)         |(1<<NFlag)|(1<<CFlag)
2714         .hword  (0xF9<<8)|(1<<SFlag)      |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2715         .hword  (0x00<<8)   |(1<<ZFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2716         .hword  (0x01<<8)                  |(1<<NFlag)|(1<<CFlag)
2717         .hword  (0x02<<8)                  |(1<<NFlag)|(1<<CFlag)
2718         .hword  (0x03<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2719         .hword  (0x04<<8)                  |(1<<NFlag)|(1<<CFlag)
2720         .hword  (0x05<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2721         .hword  (0x06<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2722         .hword  (0x07<<8)                  |(1<<NFlag)|(1<<CFlag)
2723         .hword  (0x08<<8)               |(1<<NFlag)|(1<<CFlag)
2724         .hword  (0x09<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2725         .hword  (0x04<<8)                  |(1<<NFlag)|(1<<CFlag)
2726         .hword  (0x05<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2727         .hword  (0x06<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2728         .hword  (0x07<<8)                  |(1<<NFlag)|(1<<CFlag)
2729         .hword  (0x08<<8)               |(1<<NFlag)|(1<<CFlag)
2730         .hword  (0x09<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2731         .hword  (0x10<<8)                  |(1<<NFlag)|(1<<CFlag)
2732         .hword  (0x11<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2733         .hword  (0x12<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2734         .hword  (0x13<<8)                  |(1<<NFlag)|(1<<CFlag)
2735         .hword  (0x14<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2736         .hword  (0x15<<8)                  |(1<<NFlag)|(1<<CFlag)
2737         .hword  (0x16<<8)                  |(1<<NFlag)|(1<<CFlag)
2738         .hword  (0x17<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2739         .hword  (0x18<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2740         .hword  (0x19<<8)               |(1<<NFlag)|(1<<CFlag)
2741         .hword  (0x14<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2742         .hword  (0x15<<8)                  |(1<<NFlag)|(1<<CFlag)
2743         .hword  (0x16<<8)                  |(1<<NFlag)|(1<<CFlag)
2744         .hword  (0x17<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2745         .hword  (0x18<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2746         .hword  (0x19<<8)               |(1<<NFlag)|(1<<CFlag)
2747         .hword  (0x20<<8)               |(1<<NFlag)|(1<<CFlag)
2748         .hword  (0x21<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2749         .hword  (0x22<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2750         .hword  (0x23<<8)               |(1<<NFlag)|(1<<CFlag)
2751         .hword  (0x24<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2752         .hword  (0x25<<8)               |(1<<NFlag)|(1<<CFlag)
2753         .hword  (0x26<<8)               |(1<<NFlag)|(1<<CFlag)
2754         .hword  (0x27<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2755         .hword  (0x28<<8)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2756         .hword  (0x29<<8)            |(1<<NFlag)|(1<<CFlag)
2757         .hword  (0x24<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2758         .hword  (0x25<<8)               |(1<<NFlag)|(1<<CFlag)
2759         .hword  (0x26<<8)               |(1<<NFlag)|(1<<CFlag)
2760         .hword  (0x27<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2761         .hword  (0x28<<8)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2762         .hword  (0x29<<8)            |(1<<NFlag)|(1<<CFlag)
2763         .hword  (0x30<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2764         .hword  (0x31<<8)               |(1<<NFlag)|(1<<CFlag)
2765         .hword  (0x32<<8)               |(1<<NFlag)|(1<<CFlag)
2766         .hword  (0x33<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2767         .hword  (0x34<<8)               |(1<<NFlag)|(1<<CFlag)
2768         .hword  (0x35<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2769         .hword  (0x36<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2770         .hword  (0x37<<8)               |(1<<NFlag)|(1<<CFlag)
2771         .hword  (0x38<<8)            |(1<<NFlag)|(1<<CFlag)
2772         .hword  (0x39<<8)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2773         .hword  (0x34<<8)               |(1<<NFlag)|(1<<CFlag)
2774         .hword  (0x35<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2775         .hword  (0x36<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2776         .hword  (0x37<<8)               |(1<<NFlag)|(1<<CFlag)
2777         .hword  (0x38<<8)            |(1<<NFlag)|(1<<CFlag)
2778         .hword  (0x39<<8)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2779         .hword  (0x40<<8)                  |(1<<NFlag)|(1<<CFlag)
2780         .hword  (0x41<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2781         .hword  (0x42<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2782         .hword  (0x43<<8)                  |(1<<NFlag)|(1<<CFlag)
2783         .hword  (0x44<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2784         .hword  (0x45<<8)                  |(1<<NFlag)|(1<<CFlag)
2785         .hword  (0x46<<8)                  |(1<<NFlag)|(1<<CFlag)
2786         .hword  (0x47<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2787         .hword  (0x48<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2788         .hword  (0x49<<8)               |(1<<NFlag)|(1<<CFlag)
2789         .hword  (0x44<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2790         .hword  (0x45<<8)                  |(1<<NFlag)|(1<<CFlag)
2791         .hword  (0x46<<8)                  |(1<<NFlag)|(1<<CFlag)
2792         .hword  (0x47<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2793         .hword  (0x48<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2794         .hword  (0x49<<8)               |(1<<NFlag)|(1<<CFlag)
2795         .hword  (0x50<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2796         .hword  (0x51<<8)                  |(1<<NFlag)|(1<<CFlag)
2797         .hword  (0x52<<8)                  |(1<<NFlag)|(1<<CFlag)
2798         .hword  (0x53<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2799         .hword  (0x54<<8)                  |(1<<NFlag)|(1<<CFlag)
2800         .hword  (0x55<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2801         .hword  (0x56<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2802         .hword  (0x57<<8)                  |(1<<NFlag)|(1<<CFlag)
2803         .hword  (0x58<<8)               |(1<<NFlag)|(1<<CFlag)
2804         .hword  (0x59<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2805         .hword  (0x54<<8)                  |(1<<NFlag)|(1<<CFlag)
2806         .hword  (0x55<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2807         .hword  (0x56<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2808         .hword  (0x57<<8)                  |(1<<NFlag)|(1<<CFlag)
2809         .hword  (0x58<<8)               |(1<<NFlag)|(1<<CFlag)
2810         .hword  (0x59<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2811         .hword  (0x60<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2812         .hword  (0x61<<8)               |(1<<NFlag)|(1<<CFlag)
2813         .hword  (0x62<<8)               |(1<<NFlag)|(1<<CFlag)
2814         .hword  (0x63<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2815         .hword  (0x64<<8)               |(1<<NFlag)|(1<<CFlag)
2816         .hword  (0x65<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2817         .hword  (0x66<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2818         .hword  (0x67<<8)               |(1<<NFlag)|(1<<CFlag)
2819         .hword  (0x68<<8)            |(1<<NFlag)|(1<<CFlag)
2820         .hword  (0x69<<8)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2821         .hword  (0x64<<8)               |(1<<NFlag)|(1<<CFlag)
2822         .hword  (0x65<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2823         .hword  (0x66<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2824         .hword  (0x67<<8)               |(1<<NFlag)|(1<<CFlag)
2825         .hword  (0x68<<8)            |(1<<NFlag)|(1<<CFlag)
2826         .hword  (0x69<<8)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2827         .hword  (0x70<<8)               |(1<<NFlag)|(1<<CFlag)
2828         .hword  (0x71<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2829         .hword  (0x72<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2830         .hword  (0x73<<8)               |(1<<NFlag)|(1<<CFlag)
2831         .hword  (0x74<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2832         .hword  (0x75<<8)               |(1<<NFlag)|(1<<CFlag)
2833         .hword  (0x76<<8)               |(1<<NFlag)|(1<<CFlag)
2834         .hword  (0x77<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2835         .hword  (0x78<<8)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2836         .hword  (0x79<<8)            |(1<<NFlag)|(1<<CFlag)
2837         .hword  (0x74<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2838         .hword  (0x75<<8)               |(1<<NFlag)|(1<<CFlag)
2839         .hword  (0x76<<8)               |(1<<NFlag)|(1<<CFlag)
2840         .hword  (0x77<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2841         .hword  (0x78<<8)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2842         .hword  (0x79<<8)            |(1<<NFlag)|(1<<CFlag)
2843         .hword  (0x80<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
2844         .hword  (0x81<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2845         .hword  (0x82<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2846         .hword  (0x83<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
2847         .hword  (0x84<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2848         .hword  (0x85<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
2849         .hword  (0x86<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
2850         .hword  (0x87<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2851         .hword  (0x88<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2852         .hword  (0x89<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
2853         .hword  (0x84<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2854         .hword  (0x85<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
2855         .hword  (0x86<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
2856         .hword  (0x87<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2857         .hword  (0x88<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2858         .hword  (0x89<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
2859         .hword  (0x90<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2860         .hword  (0x91<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
2861         .hword  (0x92<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
2862         .hword  (0x93<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2863         .hword  (0x94<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
2864         .hword  (0x95<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2865         .hword  (0x96<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2866         .hword  (0x97<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
2867         .hword  (0x98<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
2868         .hword  (0x99<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2869         .hword  (0x94<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
2870         .hword  (0x95<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2871         .hword  (0x96<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2872         .hword  (0x97<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
2873         .hword  (0x98<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
2874         .hword  (0x99<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2875         .hword  (0xFA<<8)|(1<<SFlag)   |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)
2876         .hword  (0xFB<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<NFlag)
2877         .hword  (0xFC<<8)|(1<<SFlag)   |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)
2878         .hword  (0xFD<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<NFlag)
2879         .hword  (0xFE<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<NFlag)
2880         .hword  (0xFF<<8)|(1<<SFlag)   |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)
2881         .hword  (0x00<<8)   |(1<<ZFlag)         |(1<<VFlag)|(1<<NFlag)
2882         .hword  (0x01<<8)                  |(1<<NFlag)
2883         .hword  (0x02<<8)                  |(1<<NFlag)
2884         .hword  (0x03<<8)               |(1<<VFlag)|(1<<NFlag)
2885         .hword  (0x04<<8)                  |(1<<NFlag)
2886         .hword  (0x05<<8)               |(1<<VFlag)|(1<<NFlag)
2887         .hword  (0x06<<8)               |(1<<VFlag)|(1<<NFlag)
2888         .hword  (0x07<<8)                  |(1<<NFlag)
2889         .hword  (0x08<<8)               |(1<<NFlag)
2890         .hword  (0x09<<8)            |(1<<VFlag)|(1<<NFlag)
2891         .hword  (0x0A<<8)         |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)
2892         .hword  (0x0B<<8)         |(1<<HFlag)   |(1<<NFlag)
2893         .hword  (0x0C<<8)         |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)
2894         .hword  (0x0D<<8)         |(1<<HFlag)   |(1<<NFlag)
2895         .hword  (0x0E<<8)         |(1<<HFlag)   |(1<<NFlag)
2896         .hword  (0x0F<<8)         |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)
2897         .hword  (0x10<<8)                  |(1<<NFlag)
2898         .hword  (0x11<<8)               |(1<<VFlag)|(1<<NFlag)
2899         .hword  (0x12<<8)               |(1<<VFlag)|(1<<NFlag)
2900         .hword  (0x13<<8)                  |(1<<NFlag)
2901         .hword  (0x14<<8)               |(1<<VFlag)|(1<<NFlag)
2902         .hword  (0x15<<8)                  |(1<<NFlag)
2903         .hword  (0x16<<8)                  |(1<<NFlag)
2904         .hword  (0x17<<8)               |(1<<VFlag)|(1<<NFlag)
2905         .hword  (0x18<<8)            |(1<<VFlag)|(1<<NFlag)
2906         .hword  (0x19<<8)               |(1<<NFlag)
2907         .hword  (0x1A<<8)         |(1<<HFlag)   |(1<<NFlag)
2908         .hword  (0x1B<<8)         |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)
2909         .hword  (0x1C<<8)         |(1<<HFlag)   |(1<<NFlag)
2910         .hword  (0x1D<<8)         |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)
2911         .hword  (0x1E<<8)         |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)
2912         .hword  (0x1F<<8)         |(1<<HFlag)   |(1<<NFlag)
2913         .hword  (0x20<<8)               |(1<<NFlag)
2914         .hword  (0x21<<8)            |(1<<VFlag)|(1<<NFlag)
2915         .hword  (0x22<<8)            |(1<<VFlag)|(1<<NFlag)
2916         .hword  (0x23<<8)               |(1<<NFlag)
2917         .hword  (0x24<<8)            |(1<<VFlag)|(1<<NFlag)
2918         .hword  (0x25<<8)               |(1<<NFlag)
2919         .hword  (0x26<<8)               |(1<<NFlag)
2920         .hword  (0x27<<8)            |(1<<VFlag)|(1<<NFlag)
2921         .hword  (0x28<<8)         |(1<<VFlag)|(1<<NFlag)
2922         .hword  (0x29<<8)            |(1<<NFlag)
2923         .hword  (0x2A<<8)      |(1<<HFlag)   |(1<<NFlag)
2924         .hword  (0x2B<<8)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)
2925         .hword  (0x2C<<8)      |(1<<HFlag)   |(1<<NFlag)
2926         .hword  (0x2D<<8)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)
2927         .hword  (0x2E<<8)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)
2928         .hword  (0x2F<<8)      |(1<<HFlag)   |(1<<NFlag)
2929         .hword  (0x30<<8)            |(1<<VFlag)|(1<<NFlag)
2930         .hword  (0x31<<8)               |(1<<NFlag)
2931         .hword  (0x32<<8)               |(1<<NFlag)
2932         .hword  (0x33<<8)            |(1<<VFlag)|(1<<NFlag)
2933         .hword  (0x34<<8)               |(1<<NFlag)
2934         .hword  (0x35<<8)            |(1<<VFlag)|(1<<NFlag)
2935         .hword  (0x36<<8)            |(1<<VFlag)|(1<<NFlag)
2936         .hword  (0x37<<8)               |(1<<NFlag)
2937         .hword  (0x38<<8)            |(1<<NFlag)
2938         .hword  (0x39<<8)         |(1<<VFlag)|(1<<NFlag)
2939         .hword  (0x3A<<8)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)
2940         .hword  (0x3B<<8)      |(1<<HFlag)   |(1<<NFlag)
2941         .hword  (0x3C<<8)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)
2942         .hword  (0x3D<<8)      |(1<<HFlag)   |(1<<NFlag)
2943         .hword  (0x3E<<8)      |(1<<HFlag)   |(1<<NFlag)
2944         .hword  (0x3F<<8)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)
2945         .hword  (0x40<<8)                  |(1<<NFlag)
2946         .hword  (0x41<<8)               |(1<<VFlag)|(1<<NFlag)
2947         .hword  (0x42<<8)               |(1<<VFlag)|(1<<NFlag)
2948         .hword  (0x43<<8)                  |(1<<NFlag)
2949         .hword  (0x44<<8)               |(1<<VFlag)|(1<<NFlag)
2950         .hword  (0x45<<8)                  |(1<<NFlag)
2951         .hword  (0x46<<8)                  |(1<<NFlag)
2952         .hword  (0x47<<8)               |(1<<VFlag)|(1<<NFlag)
2953         .hword  (0x48<<8)            |(1<<VFlag)|(1<<NFlag)
2954         .hword  (0x49<<8)               |(1<<NFlag)
2955         .hword  (0x4A<<8)         |(1<<HFlag)   |(1<<NFlag)
2956         .hword  (0x4B<<8)         |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)
2957         .hword  (0x4C<<8)         |(1<<HFlag)   |(1<<NFlag)
2958         .hword  (0x4D<<8)         |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)
2959         .hword  (0x4E<<8)         |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)
2960         .hword  (0x4F<<8)         |(1<<HFlag)   |(1<<NFlag)
2961         .hword  (0x50<<8)               |(1<<VFlag)|(1<<NFlag)
2962         .hword  (0x51<<8)                  |(1<<NFlag)
2963         .hword  (0x52<<8)                  |(1<<NFlag)
2964         .hword  (0x53<<8)               |(1<<VFlag)|(1<<NFlag)
2965         .hword  (0x54<<8)                  |(1<<NFlag)
2966         .hword  (0x55<<8)               |(1<<VFlag)|(1<<NFlag)
2967         .hword  (0x56<<8)               |(1<<VFlag)|(1<<NFlag)
2968         .hword  (0x57<<8)                  |(1<<NFlag)
2969         .hword  (0x58<<8)               |(1<<NFlag)
2970         .hword  (0x59<<8)            |(1<<VFlag)|(1<<NFlag)
2971         .hword  (0x5A<<8)         |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)
2972         .hword  (0x5B<<8)         |(1<<HFlag)   |(1<<NFlag)
2973         .hword  (0x5C<<8)         |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)
2974         .hword  (0x5D<<8)         |(1<<HFlag)   |(1<<NFlag)
2975         .hword  (0x5E<<8)         |(1<<HFlag)   |(1<<NFlag)
2976         .hword  (0x5F<<8)         |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)
2977         .hword  (0x60<<8)            |(1<<VFlag)|(1<<NFlag)
2978         .hword  (0x61<<8)               |(1<<NFlag)
2979         .hword  (0x62<<8)               |(1<<NFlag)
2980         .hword  (0x63<<8)            |(1<<VFlag)|(1<<NFlag)
2981         .hword  (0x64<<8)               |(1<<NFlag)
2982         .hword  (0x65<<8)            |(1<<VFlag)|(1<<NFlag)
2983         .hword  (0x66<<8)            |(1<<VFlag)|(1<<NFlag)
2984         .hword  (0x67<<8)               |(1<<NFlag)
2985         .hword  (0x68<<8)            |(1<<NFlag)
2986         .hword  (0x69<<8)         |(1<<VFlag)|(1<<NFlag)
2987         .hword  (0x6A<<8)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)
2988         .hword  (0x6B<<8)      |(1<<HFlag)   |(1<<NFlag)
2989         .hword  (0x6C<<8)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)
2990         .hword  (0x6D<<8)      |(1<<HFlag)   |(1<<NFlag)
2991         .hword  (0x6E<<8)      |(1<<HFlag)   |(1<<NFlag)
2992         .hword  (0x6F<<8)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)
2993         .hword  (0x70<<8)               |(1<<NFlag)
2994         .hword  (0x71<<8)            |(1<<VFlag)|(1<<NFlag)
2995         .hword  (0x72<<8)            |(1<<VFlag)|(1<<NFlag)
2996         .hword  (0x73<<8)               |(1<<NFlag)
2997         .hword  (0x74<<8)            |(1<<VFlag)|(1<<NFlag)
2998         .hword  (0x75<<8)               |(1<<NFlag)
2999         .hword  (0x76<<8)               |(1<<NFlag)
3000         .hword  (0x77<<8)            |(1<<VFlag)|(1<<NFlag)
3001         .hword  (0x78<<8)         |(1<<VFlag)|(1<<NFlag)
3002         .hword  (0x79<<8)            |(1<<NFlag)
3003         .hword  (0x7A<<8)      |(1<<HFlag)   |(1<<NFlag)
3004         .hword  (0x7B<<8)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)
3005         .hword  (0x7C<<8)      |(1<<HFlag)   |(1<<NFlag)
3006         .hword  (0x7D<<8)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)
3007         .hword  (0x7E<<8)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)
3008         .hword  (0x7F<<8)      |(1<<HFlag)   |(1<<NFlag)
3009         .hword  (0x80<<8)|(1<<SFlag)               |(1<<NFlag)
3010         .hword  (0x81<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)
3011         .hword  (0x82<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)
3012         .hword  (0x83<<8)|(1<<SFlag)               |(1<<NFlag)
3013         .hword  (0x84<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)
3014         .hword  (0x85<<8)|(1<<SFlag)               |(1<<NFlag)
3015         .hword  (0x86<<8)|(1<<SFlag)               |(1<<NFlag)
3016         .hword  (0x87<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)
3017         .hword  (0x88<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)
3018         .hword  (0x89<<8)|(1<<SFlag)            |(1<<NFlag)
3019         .hword  (0x8A<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<NFlag)
3020         .hword  (0x8B<<8)|(1<<SFlag)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)
3021         .hword  (0x8C<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<NFlag)
3022         .hword  (0x8D<<8)|(1<<SFlag)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)
3023         .hword  (0x8E<<8)|(1<<SFlag)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)
3024         .hword  (0x8F<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<NFlag)
3025         .hword  (0x90<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)
3026         .hword  (0x91<<8)|(1<<SFlag)               |(1<<NFlag)
3027         .hword  (0x92<<8)|(1<<SFlag)               |(1<<NFlag)
3028         .hword  (0x93<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)
3029         .hword  (0x34<<8)               |(1<<NFlag)|(1<<CFlag)
3030         .hword  (0x35<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3031         .hword  (0x36<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3032         .hword  (0x37<<8)               |(1<<NFlag)|(1<<CFlag)
3033         .hword  (0x38<<8)            |(1<<NFlag)|(1<<CFlag)
3034         .hword  (0x39<<8)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3035         .hword  (0x3A<<8)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3036         .hword  (0x3B<<8)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3037         .hword  (0x3C<<8)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3038         .hword  (0x3D<<8)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3039         .hword  (0x3E<<8)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3040         .hword  (0x3F<<8)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3041         .hword  (0x40<<8)                  |(1<<NFlag)|(1<<CFlag)
3042         .hword  (0x41<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3043         .hword  (0x42<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3044         .hword  (0x43<<8)                  |(1<<NFlag)|(1<<CFlag)
3045         .hword  (0x44<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3046         .hword  (0x45<<8)                  |(1<<NFlag)|(1<<CFlag)
3047         .hword  (0x46<<8)                  |(1<<NFlag)|(1<<CFlag)
3048         .hword  (0x47<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3049         .hword  (0x48<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3050         .hword  (0x49<<8)               |(1<<NFlag)|(1<<CFlag)
3051         .hword  (0x4A<<8)         |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3052         .hword  (0x4B<<8)         |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3053         .hword  (0x4C<<8)         |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3054         .hword  (0x4D<<8)         |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3055         .hword  (0x4E<<8)         |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3056         .hword  (0x4F<<8)         |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3057         .hword  (0x50<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3058         .hword  (0x51<<8)                  |(1<<NFlag)|(1<<CFlag)
3059         .hword  (0x52<<8)                  |(1<<NFlag)|(1<<CFlag)
3060         .hword  (0x53<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3061         .hword  (0x54<<8)                  |(1<<NFlag)|(1<<CFlag)
3062         .hword  (0x55<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3063         .hword  (0x56<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3064         .hword  (0x57<<8)                  |(1<<NFlag)|(1<<CFlag)
3065         .hword  (0x58<<8)               |(1<<NFlag)|(1<<CFlag)
3066         .hword  (0x59<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3067         .hword  (0x5A<<8)         |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3068         .hword  (0x5B<<8)         |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3069         .hword  (0x5C<<8)         |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3070         .hword  (0x5D<<8)         |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3071         .hword  (0x5E<<8)         |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3072         .hword  (0x5F<<8)         |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3073         .hword  (0x60<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3074         .hword  (0x61<<8)               |(1<<NFlag)|(1<<CFlag)
3075         .hword  (0x62<<8)               |(1<<NFlag)|(1<<CFlag)
3076         .hword  (0x63<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3077         .hword  (0x64<<8)               |(1<<NFlag)|(1<<CFlag)
3078         .hword  (0x65<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3079         .hword  (0x66<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3080         .hword  (0x67<<8)               |(1<<NFlag)|(1<<CFlag)
3081         .hword  (0x68<<8)            |(1<<NFlag)|(1<<CFlag)
3082         .hword  (0x69<<8)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3083         .hword  (0x6A<<8)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3084         .hword  (0x6B<<8)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3085         .hword  (0x6C<<8)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3086         .hword  (0x6D<<8)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3087         .hword  (0x6E<<8)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3088         .hword  (0x6F<<8)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3089         .hword  (0x70<<8)               |(1<<NFlag)|(1<<CFlag)
3090         .hword  (0x71<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3091         .hword  (0x72<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3092         .hword  (0x73<<8)               |(1<<NFlag)|(1<<CFlag)
3093         .hword  (0x74<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3094         .hword  (0x75<<8)               |(1<<NFlag)|(1<<CFlag)
3095         .hword  (0x76<<8)               |(1<<NFlag)|(1<<CFlag)
3096         .hword  (0x77<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3097         .hword  (0x78<<8)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3098         .hword  (0x79<<8)            |(1<<NFlag)|(1<<CFlag)
3099         .hword  (0x7A<<8)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3100         .hword  (0x7B<<8)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3101         .hword  (0x7C<<8)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3102         .hword  (0x7D<<8)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3103         .hword  (0x7E<<8)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3104         .hword  (0x7F<<8)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3105         .hword  (0x80<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
3106         .hword  (0x81<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3107         .hword  (0x82<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3108         .hword  (0x83<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
3109         .hword  (0x84<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3110         .hword  (0x85<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
3111         .hword  (0x86<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
3112         .hword  (0x87<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3113         .hword  (0x88<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3114         .hword  (0x89<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
3115         .hword  (0x8A<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3116         .hword  (0x8B<<8)|(1<<SFlag)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3117         .hword  (0x8C<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3118         .hword  (0x8D<<8)|(1<<SFlag)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3119         .hword  (0x8E<<8)|(1<<SFlag)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3120         .hword  (0x8F<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3121         .hword  (0x90<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3122         .hword  (0x91<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
3123         .hword  (0x92<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
3124         .hword  (0x93<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3125         .hword  (0x94<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
3126         .hword  (0x95<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3127         .hword  (0x96<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3128         .hword  (0x97<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
3129         .hword  (0x98<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
3130         .hword  (0x99<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3131         .hword  (0x9A<<8)|(1<<SFlag)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3132         .hword  (0x9B<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3133         .hword  (0x9C<<8)|(1<<SFlag)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3134         .hword  (0x9D<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3135         .hword  (0x9E<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3136         .hword  (0x9F<<8)|(1<<SFlag)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3137         .hword  (0xA0<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3138         .hword  (0xA1<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
3139         .hword  (0xA2<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
3140         .hword  (0xA3<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3141         .hword  (0xA4<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
3142         .hword  (0xA5<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3143         .hword  (0xA6<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3144         .hword  (0xA7<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
3145         .hword  (0xA8<<8)|(1<<SFlag)         |(1<<NFlag)|(1<<CFlag)
3146         .hword  (0xA9<<8)|(1<<SFlag)      |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3147         .hword  (0xAA<<8)|(1<<SFlag)   |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3148         .hword  (0xAB<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3149         .hword  (0xAC<<8)|(1<<SFlag)   |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3150         .hword  (0xAD<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3151         .hword  (0xAE<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3152         .hword  (0xAF<<8)|(1<<SFlag)   |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3153         .hword  (0xB0<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
3154         .hword  (0xB1<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3155         .hword  (0xB2<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3156         .hword  (0xB3<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
3157         .hword  (0xB4<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3158         .hword  (0xB5<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
3159         .hword  (0xB6<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
3160         .hword  (0xB7<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3161         .hword  (0xB8<<8)|(1<<SFlag)      |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3162         .hword  (0xB9<<8)|(1<<SFlag)         |(1<<NFlag)|(1<<CFlag)
3163         .hword  (0xBA<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3164         .hword  (0xBB<<8)|(1<<SFlag)   |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3165         .hword  (0xBC<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3166         .hword  (0xBD<<8)|(1<<SFlag)   |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3167         .hword  (0xBE<<8)|(1<<SFlag)   |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3168         .hword  (0xBF<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3169         .hword  (0xC0<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3170         .hword  (0xC1<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
3171         .hword  (0xC2<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
3172         .hword  (0xC3<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3173         .hword  (0xC4<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
3174         .hword  (0xC5<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3175         .hword  (0xC6<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3176         .hword  (0xC7<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
3177         .hword  (0xC8<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
3178         .hword  (0xC9<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3179         .hword  (0xCA<<8)|(1<<SFlag)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3180         .hword  (0xCB<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3181         .hword  (0xCC<<8)|(1<<SFlag)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3182         .hword  (0xCD<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3183         .hword  (0xCE<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3184         .hword  (0xCF<<8)|(1<<SFlag)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3185         .hword  (0xD0<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
3186         .hword  (0xD1<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3187         .hword  (0xD2<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3188         .hword  (0xD3<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
3189         .hword  (0xD4<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3190         .hword  (0xD5<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
3191         .hword  (0xD6<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
3192         .hword  (0xD7<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3193         .hword  (0xD8<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3194         .hword  (0xD9<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
3195         .hword  (0xDA<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3196         .hword  (0xDB<<8)|(1<<SFlag)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3197         .hword  (0xDC<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3198         .hword  (0xDD<<8)|(1<<SFlag)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3199         .hword  (0xDE<<8)|(1<<SFlag)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3200         .hword  (0xDF<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3201         .hword  (0xE0<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
3202         .hword  (0xE1<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3203         .hword  (0xE2<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3204         .hword  (0xE3<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
3205         .hword  (0xE4<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3206         .hword  (0xE5<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
3207         .hword  (0xE6<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
3208         .hword  (0xE7<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3209         .hword  (0xE8<<8)|(1<<SFlag)      |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3210         .hword  (0xE9<<8)|(1<<SFlag)         |(1<<NFlag)|(1<<CFlag)
3211         .hword  (0xEA<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3212         .hword  (0xEB<<8)|(1<<SFlag)   |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3213         .hword  (0xEC<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3214         .hword  (0xED<<8)|(1<<SFlag)   |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3215         .hword  (0xEE<<8)|(1<<SFlag)   |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3216         .hword  (0xEF<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3217         .hword  (0xF0<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3218         .hword  (0xF1<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
3219         .hword  (0xF2<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
3220         .hword  (0xF3<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3221         .hword  (0xF4<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
3222         .hword  (0xF5<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3223         .hword  (0xF6<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3224         .hword  (0xF7<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
3225         .hword  (0xF8<<8)|(1<<SFlag)         |(1<<NFlag)|(1<<CFlag)
3226         .hword  (0xF9<<8)|(1<<SFlag)      |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3227         .hword  (0xFA<<8)|(1<<SFlag)   |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3228         .hword  (0xFB<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3229         .hword  (0xFC<<8)|(1<<SFlag)   |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3230         .hword  (0xFD<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3231         .hword  (0xFE<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3232         .hword  (0xFF<<8)|(1<<SFlag)   |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3233         .hword  (0x00<<8)   |(1<<ZFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3234         .hword  (0x01<<8)                  |(1<<NFlag)|(1<<CFlag)
3235         .hword  (0x02<<8)                  |(1<<NFlag)|(1<<CFlag)
3236         .hword  (0x03<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3237         .hword  (0x04<<8)                  |(1<<NFlag)|(1<<CFlag)
3238         .hword  (0x05<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3239         .hword  (0x06<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3240         .hword  (0x07<<8)                  |(1<<NFlag)|(1<<CFlag)
3241         .hword  (0x08<<8)               |(1<<NFlag)|(1<<CFlag)
3242         .hword  (0x09<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3243         .hword  (0x0A<<8)         |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3244         .hword  (0x0B<<8)         |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3245         .hword  (0x0C<<8)         |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3246         .hword  (0x0D<<8)         |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3247         .hword  (0x0E<<8)         |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3248         .hword  (0x0F<<8)         |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3249         .hword  (0x10<<8)                  |(1<<NFlag)|(1<<CFlag)
3250         .hword  (0x11<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3251         .hword  (0x12<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3252         .hword  (0x13<<8)                  |(1<<NFlag)|(1<<CFlag)
3253         .hword  (0x14<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3254         .hword  (0x15<<8)                  |(1<<NFlag)|(1<<CFlag)
3255         .hword  (0x16<<8)                  |(1<<NFlag)|(1<<CFlag)
3256         .hword  (0x17<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3257         .hword  (0x18<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3258         .hword  (0x19<<8)               |(1<<NFlag)|(1<<CFlag)
3259         .hword  (0x1A<<8)         |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3260         .hword  (0x1B<<8)         |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3261         .hword  (0x1C<<8)         |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3262         .hword  (0x1D<<8)         |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3263         .hword  (0x1E<<8)         |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3264         .hword  (0x1F<<8)         |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3265         .hword  (0x20<<8)               |(1<<NFlag)|(1<<CFlag)
3266         .hword  (0x21<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3267         .hword  (0x22<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3268         .hword  (0x23<<8)               |(1<<NFlag)|(1<<CFlag)
3269         .hword  (0x24<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3270         .hword  (0x25<<8)               |(1<<NFlag)|(1<<CFlag)
3271         .hword  (0x26<<8)               |(1<<NFlag)|(1<<CFlag)
3272         .hword  (0x27<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3273         .hword  (0x28<<8)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3274         .hword  (0x29<<8)            |(1<<NFlag)|(1<<CFlag)
3275         .hword  (0x2A<<8)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3276         .hword  (0x2B<<8)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3277         .hword  (0x2C<<8)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3278         .hword  (0x2D<<8)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3279         .hword  (0x2E<<8)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3280         .hword  (0x2F<<8)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3281         .hword  (0x30<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3282         .hword  (0x31<<8)               |(1<<NFlag)|(1<<CFlag)
3283         .hword  (0x32<<8)               |(1<<NFlag)|(1<<CFlag)
3284         .hword  (0x33<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3285         .hword  (0x34<<8)               |(1<<NFlag)|(1<<CFlag)
3286         .hword  (0x35<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3287         .hword  (0x36<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3288         .hword  (0x37<<8)               |(1<<NFlag)|(1<<CFlag)
3289         .hword  (0x38<<8)            |(1<<NFlag)|(1<<CFlag)
3290         .hword  (0x39<<8)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3291         .hword  (0x3A<<8)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3292         .hword  (0x3B<<8)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3293         .hword  (0x3C<<8)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3294         .hword  (0x3D<<8)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3295         .hword  (0x3E<<8)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3296         .hword  (0x3F<<8)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3297         .hword  (0x40<<8)                  |(1<<NFlag)|(1<<CFlag)
3298         .hword  (0x41<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3299         .hword  (0x42<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3300         .hword  (0x43<<8)                  |(1<<NFlag)|(1<<CFlag)
3301         .hword  (0x44<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3302         .hword  (0x45<<8)                  |(1<<NFlag)|(1<<CFlag)
3303         .hword  (0x46<<8)                  |(1<<NFlag)|(1<<CFlag)
3304         .hword  (0x47<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3305         .hword  (0x48<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3306         .hword  (0x49<<8)               |(1<<NFlag)|(1<<CFlag)
3307         .hword  (0x4A<<8)         |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3308         .hword  (0x4B<<8)         |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3309         .hword  (0x4C<<8)         |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3310         .hword  (0x4D<<8)         |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3311         .hword  (0x4E<<8)         |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3312         .hword  (0x4F<<8)         |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3313         .hword  (0x50<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3314         .hword  (0x51<<8)                  |(1<<NFlag)|(1<<CFlag)
3315         .hword  (0x52<<8)                  |(1<<NFlag)|(1<<CFlag)
3316         .hword  (0x53<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3317         .hword  (0x54<<8)                  |(1<<NFlag)|(1<<CFlag)
3318         .hword  (0x55<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3319         .hword  (0x56<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3320         .hword  (0x57<<8)                  |(1<<NFlag)|(1<<CFlag)
3321         .hword  (0x58<<8)               |(1<<NFlag)|(1<<CFlag)
3322         .hword  (0x59<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3323         .hword  (0x5A<<8)         |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3324         .hword  (0x5B<<8)         |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3325         .hword  (0x5C<<8)         |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3326         .hword  (0x5D<<8)         |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3327         .hword  (0x5E<<8)         |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3328         .hword  (0x5F<<8)         |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3329         .hword  (0x60<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3330         .hword  (0x61<<8)               |(1<<NFlag)|(1<<CFlag)
3331         .hword  (0x62<<8)               |(1<<NFlag)|(1<<CFlag)
3332         .hword  (0x63<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3333         .hword  (0x64<<8)               |(1<<NFlag)|(1<<CFlag)
3334         .hword  (0x65<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3335         .hword  (0x66<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3336         .hword  (0x67<<8)               |(1<<NFlag)|(1<<CFlag)
3337         .hword  (0x68<<8)            |(1<<NFlag)|(1<<CFlag)
3338         .hword  (0x69<<8)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3339         .hword  (0x6A<<8)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3340         .hword  (0x6B<<8)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3341         .hword  (0x6C<<8)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3342         .hword  (0x6D<<8)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3343         .hword  (0x6E<<8)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3344         .hword  (0x6F<<8)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3345         .hword  (0x70<<8)               |(1<<NFlag)|(1<<CFlag)
3346         .hword  (0x71<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3347         .hword  (0x72<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3348         .hword  (0x73<<8)               |(1<<NFlag)|(1<<CFlag)
3349         .hword  (0x74<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3350         .hword  (0x75<<8)               |(1<<NFlag)|(1<<CFlag)
3351         .hword  (0x76<<8)               |(1<<NFlag)|(1<<CFlag)
3352         .hword  (0x77<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3353         .hword  (0x78<<8)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3354         .hword  (0x79<<8)            |(1<<NFlag)|(1<<CFlag)
3355         .hword  (0x7A<<8)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3356         .hword  (0x7B<<8)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3357         .hword  (0x7C<<8)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3358         .hword  (0x7D<<8)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3359         .hword  (0x7E<<8)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3360         .hword  (0x7F<<8)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3361         .hword  (0x80<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
3362         .hword  (0x81<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3363         .hword  (0x82<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3364         .hword  (0x83<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
3365         .hword  (0x84<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3366         .hword  (0x85<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
3367         .hword  (0x86<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
3368         .hword  (0x87<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3369         .hword  (0x88<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3370         .hword  (0x89<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
3371         .hword  (0x8A<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3372         .hword  (0x8B<<8)|(1<<SFlag)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3373         .hword  (0x8C<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3374         .hword  (0x8D<<8)|(1<<SFlag)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3375         .hword  (0x8E<<8)|(1<<SFlag)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3376         .hword  (0x8F<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3377         .hword  (0x90<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3378         .hword  (0x91<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
3379         .hword  (0x92<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
3380         .hword  (0x93<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3381         .hword  (0x94<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
3382         .hword  (0x95<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3383         .hword  (0x96<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3384         .hword  (0x97<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
3385         .hword  (0x98<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
3386         .hword  (0x99<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3387
3388AF_Z80:  .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 0
3389         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 1
3390         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 2
3391         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 3
3392         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 4
3393         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 5
3394         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 6
3395         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 7
3396         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 8
3397         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 9
3398         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 10
3399         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 11
3400         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 12
3401         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 13
3402         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 14
3403         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 15
3404         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 16
3405         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 17
3406         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 18
3407         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 19
3408         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 20
3409         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 21
3410         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 22
3411         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 23
3412         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 24
3413         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 25
3414         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 26
3415         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 27
3416         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 28
3417         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 29
3418         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 30
3419         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 31
3420         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 32
3421         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 33
3422         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 34
3423         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 35
3424         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 36
3425         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 37
3426         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 38
3427         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 39
3428         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 40
3429         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 41
3430         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 42
3431         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 43
3432         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 44
3433         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 45
3434         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 46
3435         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 47
3436         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 48
3437         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 49
3438         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 50
3439         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 51
3440         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 52
3441         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 53
3442         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 54
3443         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 55
3444         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 56
3445         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 57
3446         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 58
3447         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 59
3448         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 60
3449         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 61
3450         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 62
3451         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 63
3452         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 64
3453         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 65
3454         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 66
3455         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 67
3456         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 68
3457         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 69
3458         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 70
3459         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 71
3460         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 72
3461         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 73
3462         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 74
3463         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 75
3464         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 76
3465         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 77
3466         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 78
3467         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 79
3468         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 80
3469         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 81
3470         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 82
3471         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 83
3472         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 84
3473         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 85
3474         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 86
3475         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 87
3476         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 88
3477         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 89
3478         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 90
3479         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 91
3480         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 92
3481         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 93
3482         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 94
3483         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 95
3484         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 96
3485         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 97
3486         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 98
3487         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 99
3488         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 100
3489         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 101
3490         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 102
3491         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 103
3492         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 104
3493         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 105
3494         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 106
3495         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 107
3496         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 108
3497         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 109
3498         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 110
3499         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 111
3500         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 112
3501         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 113
3502         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 114
3503         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 115
3504         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 116
3505         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 117
3506         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 118
3507         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 119
3508         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 120
3509         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 121
3510         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 122
3511         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 123
3512         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 124
3513         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 125
3514         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 126
3515         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 127
3516         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 128
3517         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 129
3518         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 130
3519         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 131
3520         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 132
3521         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 133
3522         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 134
3523         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 135
3524         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 136
3525         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 137
3526         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 138
3527         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 139
3528         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 140
3529         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 141
3530         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 142
3531         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 143
3532         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 144
3533         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 145
3534         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 146
3535         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 147
3536         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 148
3537         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 149
3538         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 150
3539         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 151
3540         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 152
3541         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 153
3542         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 154
3543         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 155
3544         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 156
3545         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 157
3546         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 158
3547         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 159
3548         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 160
3549         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 161
3550         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 162
3551         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 163
3552         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 164
3553         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 165
3554         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 166
3555         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 167
3556         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 168
3557         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 169
3558         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 170
3559         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 171
3560         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 172
3561         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 173
3562         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 174
3563         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 175
3564         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 176
3565         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 177
3566         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 178
3567         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 179
3568         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 180
3569         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 181
3570         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 182
3571         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 183
3572         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 184
3573         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 185
3574         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 186
3575         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 187
3576         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 188
3577         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 189
3578         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 190
3579         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 191
3580         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 192
3581         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 193
3582         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 194
3583         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 195
3584         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 196
3585         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 197
3586         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 198
3587         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 199
3588         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 200
3589         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 201
3590         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 202
3591         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 203
3592         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 204
3593         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 205
3594         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 206
3595         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 207
3596         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 208
3597         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 209
3598         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 210
3599         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 211
3600         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 212
3601         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 213
3602         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 214
3603         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 215
3604         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 216
3605         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 217
3606         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 218
3607         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 219
3608         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 220
3609         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 221
3610         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 222
3611         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 223
3612         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 224
3613         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 225
3614         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 226
3615         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 227
3616         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 228
3617         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 229
3618         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 230
3619         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 231
3620         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 232
3621         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 233
3622         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 234
3623         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 235
3624         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 236
3625         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 237
3626         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 238
3627         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 239
3628         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 240
3629         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 241
3630         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 242
3631         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 243
3632         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 244
3633         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 245
3634         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 246
3635         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 247
3636         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 248
3637         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 249
3638         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 250
3639         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 251
3640         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 252
3641         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 253
3642         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 254
3643         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 255
3644
3645AF_ARM:  .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 0
3646         .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 1
3647         .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 2
3648         .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 3
3649         .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 4
3650         .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 5
3651         .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 6
3652         .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 7
3653         .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 8
3654         .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 9
3655         .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 10
3656         .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 11
3657         .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 12
3658         .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 13
3659         .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 14
3660         .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 15
3661         .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 16
3662         .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 17
3663         .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 18
3664         .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 19
3665         .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 20
3666         .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 21
3667         .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 22
3668         .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 23
3669         .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 24
3670         .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 25
3671         .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 26
3672         .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 27
3673         .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 28
3674         .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 29
3675         .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 30
3676         .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 31
3677         .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 32
3678         .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 33
3679         .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 34
3680         .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 35
3681         .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 36
3682         .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 37
3683         .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 38
3684         .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 39
3685         .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 40
3686         .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 41
3687         .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 42
3688         .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 43
3689         .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 44
3690         .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 45
3691         .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 46
3692         .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 47
3693         .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 48
3694         .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 49
3695         .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 50
3696         .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 51
3697         .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 52
3698         .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 53
3699         .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 54
3700         .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 55
3701         .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 56
3702         .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 57
3703         .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 58
3704         .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 59
3705         .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 60
3706         .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 61
3707         .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 62
3708         .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 63
3709         .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 64
3710         .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 65
3711         .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 66
3712         .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 67
3713         .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 68
3714         .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 69
3715         .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 70
3716         .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 71
3717         .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 72
3718         .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 73
3719         .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 74
3720         .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 75
3721         .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 76
3722         .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 77
3723         .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 78
3724         .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 79
3725         .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 80
3726         .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 81
3727         .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 82
3728         .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 83
3729         .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 84
3730         .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 85
3731         .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 86
3732         .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 87
3733         .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 88
3734         .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 89
3735         .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 90
3736         .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 91
3737         .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 92
3738         .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 93
3739         .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 94
3740         .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 95
3741         .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 96
3742         .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 97
3743         .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 98
3744         .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 99
3745         .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 100
3746         .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 101
3747         .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 102
3748         .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 103
3749         .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 104
3750         .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 105
3751         .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 106
3752         .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 107
3753         .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 108
3754         .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 109
3755         .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 110
3756         .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 111
3757         .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 112
3758         .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 113
3759         .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 114
3760         .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 115
3761         .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 116
3762         .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 117
3763         .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 118
3764         .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 119
3765         .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 120
3766         .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 121
3767         .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 122
3768         .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 123
3769         .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 124
3770         .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 125
3771         .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 126
3772         .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 127
3773         .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 128
3774         .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 129
3775         .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 130
3776         .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 131
3777         .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 132
3778         .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 133
3779         .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 134
3780         .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 135
3781         .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 136
3782         .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 137
3783         .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 138
3784         .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 139
3785         .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 140
3786         .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 141
3787         .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 142
3788         .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 143
3789         .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 144
3790         .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 145
3791         .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 146
3792         .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 147
3793         .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 148
3794         .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 149
3795         .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 150
3796         .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 151
3797         .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 152
3798         .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 153
3799         .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 154
3800         .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 155
3801         .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 156
3802         .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 157
3803         .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 158
3804         .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 159
3805         .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 160
3806         .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 161
3807         .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 162
3808         .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 163
3809         .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 164
3810         .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 165
3811         .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 166
3812         .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 167
3813         .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 168
3814         .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 169
3815         .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 170
3816         .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 171
3817         .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 172
3818         .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 173
3819         .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 174
3820         .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 175
3821         .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 176
3822         .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 177
3823         .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 178
3824         .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 179
3825         .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 180
3826         .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 181
3827         .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 182
3828         .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 183
3829         .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 184
3830         .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 185
3831         .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 186
3832         .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 187
3833         .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 188
3834         .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 189
3835         .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 190
3836         .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 191
3837         .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 192
3838         .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 193
3839         .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 194
3840         .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 195
3841         .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 196
3842         .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 197
3843         .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 198
3844         .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 199
3845         .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 200
3846         .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 201
3847         .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 202
3848         .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 203
3849         .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 204
3850         .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 205
3851         .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 206
3852         .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 207
3853         .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 208
3854         .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 209
3855         .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 210
3856         .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 211
3857         .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 212
3858         .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 213
3859         .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 214
3860         .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 215
3861         .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 216
3862         .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 217
3863         .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 218
3864         .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 219
3865         .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 220
3866         .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 221
3867         .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 222
3868         .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 223
3869         .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 224
3870         .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 225
3871         .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 226
3872         .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 227
3873         .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 228
3874         .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 229
3875         .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 230
3876         .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 231
3877         .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 232
3878         .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 233
3879         .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 234
3880         .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 235
3881         .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 236
3882         .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 237
3883         .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 238
3884         .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 239
3885         .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 240
3886         .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 241
3887         .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 242
3888         .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 243
3889         .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 244
3890         .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 245
3891         .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 246
3892         .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 247
3893         .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 248
3894         .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 249
3895         .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 250
3896         .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 251
3897         .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 252
3898         .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 253
3899         .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 254
3900         .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 255
3901
3902PZSTable_data: .byte (1<<ZFlag)|(1<<VFlag),0,0,(1<<VFlag),0,(1<<VFlag),(1<<VFlag),0
3903	.byte  0,(1<<VFlag),(1<<VFlag),0,(1<<VFlag),0,0,(1<<VFlag)
3904	.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
3905	.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
3906	.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)
3907	.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
3908	.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)
3909	.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)
3910	.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
3911	.byte  (1<<SFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)
3912	.byte  (1<<SFlag)|(1<<VFlag),(1<<SFlag),(1<<SFlag),(1<<SFlag)|(1<<VFlag)
3913	.byte  (1<<SFlag)|(1<<VFlag),(1<<SFlag),(1<<SFlag),(1<<SFlag)|(1<<VFlag)
3914	.byte  (1<<SFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)
3915	.byte  (1<<SFlag)|(1<<VFlag),(1<<SFlag),(1<<SFlag),(1<<SFlag)|(1<<VFlag)
3916	.byte  (1<<SFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)
3917	.byte  (1<<SFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)
3918	.byte  (1<<SFlag)|(1<<VFlag),(1<<SFlag),(1<<SFlag),(1<<SFlag)|(1<<VFlag)
3919	.byte  (1<<SFlag)|(1<<VFlag),(1<<SFlag),(1<<SFlag),(1<<SFlag)|(1<<VFlag)
3920	.byte  (1<<SFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)
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<<SFlag)|(1<<VFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)
3924	.byte  (1<<SFlag)|(1<<VFlag),(1<<SFlag),(1<<SFlag),(1<<SFlag)|(1<<VFlag)
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<<VFlag),(1<<SFlag),(1<<SFlag),(1<<SFlag)|(1<<VFlag)
3928	.byte  (1<<SFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)
3929	.byte  (1<<SFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)
3930	.byte  (1<<SFlag)|(1<<VFlag),(1<<SFlag),(1<<SFlag),(1<<SFlag)|(1<<VFlag)
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<<VFlag),(1<<SFlag),(1<<SFlag),(1<<SFlag)|(1<<VFlag)
3934	.byte  (1<<SFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)
3935	.byte  (1<<SFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)
3936	.byte  (1<<SFlag)|(1<<VFlag),(1<<SFlag),(1<<SFlag),(1<<SFlag)|(1<<VFlag)
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<<VFlag),(1<<SFlag),(1<<SFlag),(1<<SFlag)|(1<<VFlag)
3940	.byte  (1<<SFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)
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)
3943MAIN_opcodes:
3944	.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
3945	.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
3946	.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
3947	.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
3948	.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
3949	.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
3950	.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
3951	.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
3952	.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
3953	.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
3954	.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
3955	.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
3956	.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
3957	.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
3958	.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
3959	.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
3960	.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
3961	.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
3962	.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
3963	.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
3964	.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
3965	.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
3966	.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
3967	.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
3968	.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
3969	.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
3970	.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
3971	.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
3972	.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
3973	.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
3974	.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
3975	.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
3976
3977EI_DUMMY_opcodes:
3978	.word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@0
3979	.word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@0
3980	.word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@1
3981	.word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@1
3982	.word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@2
3983	.word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@2
3984	.word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@3
3985	.word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@3
3986	.word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@4
3987	.word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@4
3988	.word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@5
3989	.word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@5
3990	.word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@6
3991	.word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@6
3992	.word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@7
3993	.word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@7
3994	.word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@8
3995	.word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@8
3996	.word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@9
3997	.word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@9
3998	.word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@A
3999	.word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@A
4000	.word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@B
4001	.word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@B
4002	.word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@C
4003	.word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@C
4004	.word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@D
4005	.word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@D
4006	.word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@E
4007	.word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@E
4008	.word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@F
4009	.word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@F
4010
4011;@NOP
4012opcode_0_0:
4013;@LD B,B
4014opcode_4_0:
4015;@LD C,C
4016opcode_4_9:
4017;@LD D,D
4018opcode_5_2:
4019;@LD E,E
4020opcode_5_B:
4021;@LD H,H
4022opcode_6_4:
4023;@LD L,L
4024opcode_6_D:
4025;@LD A,A
4026opcode_7_F:
4027	fetch 4
4028;@LD BC,NN
4029opcode_0_1:
4030	ldrb r0,[z80pc],#1
4031	ldrb r1,[z80pc],#1
4032	orr r0,r0,r1, lsl #8
4033	mov z80bc,r0, lsl #16
4034	fetch 10
4035;@LD (BC),A
4036opcode_0_2:
4037	mov r0,z80a, lsr #24
4038	mov r1,z80bc, lsr #16
4039	writemem8
4040	fetch 7
4041;@INC BC
4042opcode_0_3:
4043	add z80bc,z80bc,#1<<16
4044	fetch 6
4045;@INC B
4046opcode_0_4:
4047	opINC8H z80bc
4048	fetch 4
4049;@DEC B
4050opcode_0_5:
4051	opDEC8H z80bc
4052	fetch 4
4053;@LD B,N
4054opcode_0_6:
4055	ldrb r1,[z80pc],#1
4056	and z80bc,z80bc,#0xFF<<16
4057	orr z80bc,z80bc,r1, lsl #24
4058	fetch 7
4059;@RLCA
4060opcode_0_7:
4061	bic z80f,z80f,#(1<<NFlag)|(1<<HFlag)|(1<<CFlag)
4062	movs z80a,z80a, lsl #1
4063	orrcs z80a,z80a,#1<<24
4064	orrcs z80f,z80f,#1<<CFlag
4065	fetch 4
4066;@EX AF,AF'
4067opcode_0_8:
4068	add r1,cpucontext,#z80a2
4069	swp z80a,z80a,[r1]
4070	add r1,cpucontext,#z80f2
4071	swp z80f,z80f,[r1]
4072	fetch 4
4073;@ADD HL,BC
4074opcode_0_9:
4075	opADD16 z80hl z80bc
4076	fetch 11
4077;@LD A,(BC)
4078opcode_0_A:
4079	mov r0,z80bc, lsr #16
4080	readmem8
4081	mov z80a,r0, lsl #24
4082	fetch 7
4083;@DEC BC
4084opcode_0_B:
4085	sub z80bc,z80bc,#1<<16
4086	fetch 6
4087;@INC C
4088opcode_0_C:
4089	opINC8L z80bc
4090	fetch 4
4091;@DEC C
4092opcode_0_D:
4093	opDEC8L z80bc
4094	fetch 4
4095;@LD C,N
4096opcode_0_E:
4097	ldrb r1,[z80pc],#1
4098	and z80bc,z80bc,#0xFF<<24
4099	orr z80bc,z80bc,r1, lsl #16
4100	fetch 7
4101;@RRCA
4102opcode_0_F:
4103	bic z80f,z80f,#(1<<NFlag)|(1<<HFlag)|(1<<CFlag)
4104	movs z80a,z80a, lsr #25
4105	orrcs z80a,z80a,#1<<7
4106	orrcs z80f,z80f,#1<<CFlag
4107	mov z80a,z80a, lsl #24
4108	fetch 4
4109;@DJNZ $+2
4110opcode_1_0:
4111	sub z80bc,z80bc,#1<<24
4112	tst z80bc,#0xFF<<24
4113	ldrsb r1,[z80pc],#1
4114	addne z80pc,z80pc,r1
4115	subne z80_icount,z80_icount,#5
4116	fetch 8
4117
4118;@LD DE,NN
4119opcode_1_1:
4120	ldrb r0,[z80pc],#1
4121	ldrb r1,[z80pc],#1
4122	orr r0,r0,r1, lsl #8
4123	mov z80de,r0, lsl #16
4124	fetch 10
4125;@LD (DE),A
4126opcode_1_2:
4127	mov r0,z80a, lsr #24
4128	writemem8DE
4129	fetch 7
4130;@INC DE
4131opcode_1_3:
4132	add z80de,z80de,#1<<16
4133	fetch 6
4134;@INC D
4135opcode_1_4:
4136	opINC8H z80de
4137	fetch 4
4138;@DEC D
4139opcode_1_5:
4140	opDEC8H z80de
4141	fetch 4
4142;@LD D,N
4143opcode_1_6:
4144	ldrb r1,[z80pc],#1
4145	and z80de,z80de,#0xFF<<16
4146	orr z80de,z80de,r1, lsl #24
4147	fetch 7
4148;@RLA
4149opcode_1_7:
4150	tst z80f,#1<<CFlag
4151	orrne z80a,z80a,#1<<23
4152	bic z80f,z80f,#(1<<NFlag)|(1<<HFlag)|(1<<CFlag)
4153	movs z80a,z80a, lsl #1
4154	orrcs z80f,z80f,#1<<CFlag
4155	fetch 4
4156;@JR $+2
4157opcode_1_8:
4158	ldrsb r1,[z80pc],#1
4159	add z80pc,z80pc,r1
4160	fetch 12
4161;@ADD HL,DE
4162opcode_1_9:
4163	opADD16 z80hl z80de
4164	fetch 11
4165;@LD A,(DE)
4166opcode_1_A:
4167	mov r0,z80de, lsr #16
4168	readmem8
4169	mov z80a,r0, lsl #24
4170	fetch 7
4171;@DEC DE
4172opcode_1_B:
4173	sub z80de,z80de,#1<<16
4174	fetch 6
4175;@INC E
4176opcode_1_C:
4177	opINC8L z80de
4178	fetch 4
4179;@DEC E
4180opcode_1_D:
4181	opDEC8L z80de
4182	fetch 4
4183;@LD E,N
4184opcode_1_E:
4185	ldrb r0,[z80pc],#1
4186	and z80de,z80de,#0xFF<<24
4187	orr z80de,z80de,r0, lsl #16
4188	fetch 7
4189;@RRA
4190opcode_1_F:
4191	orr z80a,z80a,z80f,lsr#1		;@get C
4192	bic z80f,z80f,#(1<<NFlag)|(1<<HFlag)|(1<<CFlag)
4193	movs z80a,z80a,ror#25
4194	orrcs z80f,z80f,#1<<CFlag
4195	mov z80a,z80a,lsl#24
4196	fetch 4
4197;@JR NZ,$+2
4198opcode_2_0:
4199	tst z80f,#1<<ZFlag
4200	beq opcode_1_8
4201	add z80pc,z80pc,#1
4202	fetch 7
4203;@LD HL,NN
4204opcode_2_1:
4205	ldrb r0,[z80pc],#1
4206	ldrb r1,[z80pc],#1
4207	orr r0,r0,r1, lsl #8
4208	mov z80hl,r0, lsl #16
4209	fetch 10
4210;@LD (NN),HL
4211opcode_ED_63:
4212	eatcycles 4
4213;@LD (NN),HL
4214opcode_2_2:
4215	ldrb r0,[z80pc],#1
4216	ldrb r1,[z80pc],#1
4217	orr r1,r0,r1, lsl #8
4218	mov r0,z80hl, lsr #16
4219	writemem16
4220	fetch 16
4221;@INC HL
4222opcode_2_3:
4223	add z80hl,z80hl,#1<<16
4224	fetch 6
4225;@INC H
4226opcode_2_4:
4227	opINC8H z80hl
4228	fetch 4
4229;@DEC H
4230opcode_2_5:
4231	opDEC8H z80hl
4232	fetch 4
4233;@LD H,N
4234opcode_2_6:
4235	ldrb r1,[z80pc],#1
4236	and z80hl,z80hl,#0xFF<<16
4237	orr z80hl,z80hl,r1, lsl #24
4238	fetch 7
4239DAATABLE_LOCAL: .word DAATable
4240;@DAA
4241opcode_2_7:
4242	mov r1,z80a, lsr #23
4243	tst z80f,#1<<CFlag
4244	orrne r1,r1,#512
4245	tst z80f,#1<<HFlag
4246	orrne r1,r1,#1024
4247	tst z80f,#1<<NFlag
4248	orrne r1,r1,#2048
4249	ldr r2,DAATABLE_LOCAL
4250	ldrh r1,[r2,r1]
4251	and z80f,r1,#0xFF
4252	and r2,r1,#0xFF<<8
4253	mov z80a,r2, lsl #16
4254	fetch 4
4255;@JR Z,$+2
4256opcode_2_8:
4257	tst z80f,#1<<ZFlag
4258	bne opcode_1_8
4259	add z80pc,z80pc,#1
4260	fetch 7
4261;@ADD HL,HL
4262opcode_2_9:
4263	opADD16_2 z80hl
4264	fetch 11
4265;@LD HL,(NN)
4266opcode_ED_6B:
4267	eatcycles 4
4268;@LD HL,(NN)
4269opcode_2_A:
4270	ldrb r0,[z80pc],#1
4271	ldrb r1,[z80pc],#1
4272	orr r0,r0,r1, lsl #8
4273	readmem16
4274	mov z80hl,r0, lsl #16
4275	fetch 16
4276;@DEC HL
4277opcode_2_B:
4278	sub z80hl,z80hl,#1<<16
4279	fetch 6
4280;@INC L
4281opcode_2_C:
4282	opINC8L z80hl
4283	fetch 4
4284;@DEC L
4285opcode_2_D:
4286	opDEC8L z80hl
4287	fetch 4
4288;@LD L,N
4289opcode_2_E:
4290	ldrb r0,[z80pc],#1
4291	and z80hl,z80hl,#0xFF<<24
4292	orr z80hl,z80hl,r0, lsl #16
4293	fetch 7
4294;@CPL
4295opcode_2_F:
4296	eor z80a,z80a,#0xFF<<24
4297	orr z80f,z80f,#(1<<NFlag)|(1<<HFlag)
4298	fetch 4
4299;@JR NC,$+2
4300opcode_3_0:
4301	tst z80f,#1<<CFlag
4302	beq opcode_1_8
4303	add z80pc,z80pc,#1
4304	fetch 7
4305;@LD SP,NN
4306opcode_3_1:
4307	ldrb r0,[z80pc],#1
4308	ldrb r1,[z80pc],#1
4309
4310.if FAST_Z80SP
4311	orr r0,r0,r1, lsl #8
4312	rebasesp
4313	;@mov z80sp,r0
4314.else
4315	orr z80sp,r0,r1, lsl #8
4316.endif
4317	fetch 10
4318;@LD (NN),A
4319opcode_3_2:
4320	ldrb r0,[z80pc],#1
4321	ldrb r1,[z80pc],#1
4322	orr r1,r0,r1, lsl #8
4323	mov r0,z80a, lsr #24
4324	writemem8
4325	fetch 13
4326;@INC SP
4327opcode_3_3:
4328	add z80sp,z80sp,#1
4329	fetch 6
4330;@INC (HL)
4331opcode_3_4:
4332	readmem8HL
4333	opINC8b
4334	writemem8HL
4335	fetch 11
4336;@DEC (HL)
4337opcode_3_5:
4338	readmem8HL
4339	opDEC8b
4340	writemem8HL
4341	fetch 11
4342;@LD (HL),N
4343opcode_3_6:
4344	ldrb r0,[z80pc],#1
4345	writemem8HL
4346	fetch 10
4347;@SCF
4348opcode_3_7:
4349	bic z80f,z80f,#(1<<NFlag)|(1<<HFlag)
4350	orr z80f,z80f,#1<<CFlag
4351	fetch 4
4352;@JR C,$+2
4353opcode_3_8:
4354	tst z80f,#1<<CFlag
4355	bne opcode_1_8
4356	add z80pc,z80pc,#1
4357	fetch 8
4358;@ADD HL,SP
4359opcode_3_9:
4360.if FAST_Z80SP
4361	ldr r0,[cpucontext,#z80sp_base]
4362	sub r0,z80sp,r0
4363	opADD16s z80hl r0 16
4364.else
4365	opADD16s z80hl z80sp 16
4366.endif
4367	fetch 11
4368;@LD A,(NN)
4369opcode_3_A:
4370	ldrb r0,[z80pc],#1
4371	ldrb r1,[z80pc],#1
4372	orr r0,r0,r1, lsl #8
4373	readmem8
4374	mov z80a,r0, lsl #24
4375	fetch 11
4376;@DEC SP
4377opcode_3_B:
4378	sub z80sp,z80sp,#1
4379	fetch 6
4380;@INC A
4381opcode_3_C:
4382	opINC8 z80a
4383	fetch 4
4384;@DEC A
4385opcode_3_D:
4386	opDEC8 z80a
4387	fetch 4
4388;@LD A,N
4389opcode_3_E:
4390	ldrb r0,[z80pc],#1
4391	mov z80a,r0, lsl #24
4392	fetch 7
4393;@CCF
4394opcode_3_F:
4395	bic z80f,z80f,#(1<<NFlag)|(1<<HFlag)
4396	tst z80f,#1<<CFlag
4397	orrne z80f,z80f,#1<<HFlag
4398	eor z80f,z80f,#1<<CFlag
4399	fetch 4
4400
4401;@LD B,C
4402opcode_4_1:
4403	and z80bc,z80bc,#0x00FF0000
4404	orr z80bc,z80bc,z80bc,lsl#8
4405	fetch 4
4406;@LD B,D
4407opcode_4_2:
4408	and z80bc,z80bc,#0x00FF0000
4409	and r0,z80de,#0xFF000000
4410	orr z80bc,z80bc,r0
4411	fetch 4
4412;@LD B,E
4413opcode_4_3:
4414	and z80bc,z80bc,#0x00FF0000
4415	orr z80bc,z80bc,z80de,lsl#8
4416	fetch 4
4417;@LD B,H
4418opcode_4_4:
4419	and z80bc,z80bc,#0x00FF0000
4420	and r0,z80hl,#0xFF000000
4421	orr z80bc,z80bc,r0
4422	fetch 4
4423;@LD B,L
4424opcode_4_5:
4425	and z80bc,z80bc,#0x00FF0000
4426	orr z80bc,z80bc,z80hl,lsl#8
4427	fetch 4
4428;@LD B,(HL)
4429opcode_4_6:
4430	readmem8HL
4431	and z80bc,z80bc,#0x00FF0000
4432	orr z80bc,z80bc,r0,lsl#24
4433	fetch 7
4434;@LD B,A
4435opcode_4_7:
4436	and z80bc,z80bc,#0x00FF0000
4437	orr z80bc,z80bc,z80a
4438	fetch 4
4439;@LD C,B
4440opcode_4_8:
4441	and z80bc,z80bc,#0xFF000000
4442	orr z80bc,z80bc,z80bc,lsr#8
4443	fetch 4
4444;@LD C,D
4445opcode_4_A:
4446	and z80bc,z80bc,#0xFF000000
4447	and r0,z80de,#0xFF000000
4448	orr z80bc,z80bc,r0,lsr#8
4449	fetch 4
4450;@LD C,E
4451opcode_4_B:
4452	and z80bc,z80bc,#0xFF000000
4453	and r0,z80de,#0x00FF0000
4454	orr z80bc,z80bc,r0
4455	fetch 4
4456;@LD C,H
4457opcode_4_C:
4458	and z80bc,z80bc,#0xFF000000
4459	and r0,z80hl,#0xFF000000
4460	orr z80bc,z80bc,r0,lsr#8
4461	fetch 4
4462;@LD C,L
4463opcode_4_D:
4464	and z80bc,z80bc,#0xFF000000
4465	and r0,z80hl,#0x00FF0000
4466	orr z80bc,z80bc,r0
4467	fetch 4
4468;@LD C,(HL)
4469opcode_4_E:
4470	readmem8HL
4471	and z80bc,z80bc,#0xFF000000
4472	orr z80bc,z80bc,r0,lsl#16
4473	fetch 7
4474;@LD C,A
4475opcode_4_F:
4476	and z80bc,z80bc,#0xFF000000
4477	orr z80bc,z80bc,z80a,lsr#8
4478	fetch 4
4479;@LD D,B
4480opcode_5_0:
4481	and z80de,z80de,#0x00FF0000
4482	and r0,z80bc,#0xFF000000
4483	orr z80de,z80de,r0
4484	fetch 4
4485;@LD D,C
4486opcode_5_1:
4487	and z80de,z80de,#0x00FF0000
4488	orr z80de,z80de,z80bc,lsl#8
4489	fetch 4
4490;@LD D,E
4491opcode_5_3:
4492	and z80de,z80de,#0x00FF0000
4493	orr z80de,z80de,z80de,lsl#8
4494	fetch 4
4495;@LD D,H
4496opcode_5_4:
4497	and z80de,z80de,#0x00FF0000
4498	and r0,z80hl,#0xFF000000
4499	orr z80de,z80de,r0
4500	fetch 4
4501;@LD D,L
4502opcode_5_5:
4503	and z80de,z80de,#0x00FF0000
4504	orr z80de,z80de,z80hl,lsl#8
4505	fetch 4
4506;@LD D,(HL)
4507opcode_5_6:
4508	readmem8HL
4509	and z80de,z80de,#0x00FF0000
4510	orr z80de,z80de,r0,lsl#24
4511	fetch 7
4512;@LD D,A
4513opcode_5_7:
4514	and z80de,z80de,#0x00FF0000
4515	orr z80de,z80de,z80a
4516	fetch 4
4517;@LD E,B
4518opcode_5_8:
4519	and z80de,z80de,#0xFF000000
4520	and r0,z80bc,#0xFF000000
4521	orr z80de,z80de,r0,lsr#8
4522	fetch 4
4523;@LD E,C
4524opcode_5_9:
4525	and z80de,z80de,#0xFF000000
4526	and r0,z80bc,#0x00FF0000
4527	orr z80de,z80de,r0
4528	fetch 4
4529;@LD E,D
4530opcode_5_A:
4531	and z80de,z80de,#0xFF000000
4532	orr z80de,z80de,z80de,lsr#8
4533	fetch 4
4534;@LD E,H
4535opcode_5_C:
4536	and z80de,z80de,#0xFF000000
4537	and r0,z80hl,#0xFF000000
4538	orr z80de,z80de,r0,lsr#8
4539	fetch 4
4540;@LD E,L
4541opcode_5_D:
4542	and z80de,z80de,#0xFF000000
4543	and r0,z80hl,#0x00FF0000
4544	orr z80de,z80de,r0
4545	fetch 4
4546;@LD E,(HL)
4547opcode_5_E:
4548	readmem8HL
4549	and z80de,z80de,#0xFF000000
4550	orr z80de,z80de,r0,lsl#16
4551	fetch 7
4552;@LD E,A
4553opcode_5_F:
4554	and z80de,z80de,#0xFF000000
4555	orr z80de,z80de,z80a,lsr#8
4556	fetch 4
4557
4558;@LD H,B
4559opcode_6_0:
4560	and z80hl,z80hl,#0x00FF0000
4561	and r0,z80bc,#0xFF000000
4562	orr z80hl,z80hl,r0
4563	fetch 4
4564;@LD H,C
4565opcode_6_1:
4566	and z80hl,z80hl,#0x00FF0000
4567	orr z80hl,z80hl,z80bc,lsl#8
4568	fetch 4
4569;@LD H,D
4570opcode_6_2:
4571	and z80hl,z80hl,#0x00FF0000
4572	and r0,z80de,#0xFF000000
4573	orr z80hl,z80hl,r0
4574	fetch 4
4575;@LD H,E
4576opcode_6_3:
4577	and z80hl,z80hl,#0x00FF0000
4578	orr z80hl,z80hl,z80de,lsl#8
4579	fetch 4
4580;@LD H,L
4581opcode_6_5:
4582	and z80hl,z80hl,#0x00FF0000
4583	orr z80hl,z80hl,z80hl,lsl#8
4584	fetch 4
4585;@LD H,(HL)
4586opcode_6_6:
4587	readmem8HL
4588	and z80hl,z80hl,#0x00FF0000
4589	orr z80hl,z80hl,r0,lsl#24
4590	fetch 7
4591;@LD H,A
4592opcode_6_7:
4593	and z80hl,z80hl,#0x00FF0000
4594	orr z80hl,z80hl,z80a
4595	fetch 4
4596
4597;@LD L,B
4598opcode_6_8:
4599	and z80hl,z80hl,#0xFF000000
4600	and r0,z80bc,#0xFF000000
4601	orr z80hl,z80hl,r0,lsr#8
4602	fetch 4
4603;@LD L,C
4604opcode_6_9:
4605	and z80hl,z80hl,#0xFF000000
4606	and r0,z80bc,#0x00FF0000
4607	orr z80hl,z80hl,r0
4608	fetch 4
4609;@LD L,D
4610opcode_6_A:
4611	and z80hl,z80hl,#0xFF000000
4612	and r0,z80de,#0xFF000000
4613	orr z80hl,z80hl,r0,lsr#8
4614	fetch 4
4615;@LD L,E
4616opcode_6_B:
4617	and z80hl,z80hl,#0xFF000000
4618	and r0,z80de,#0x00FF0000
4619	orr z80hl,z80hl,r0
4620	fetch 4
4621;@LD L,H
4622opcode_6_C:
4623	and z80hl,z80hl,#0xFF000000
4624	orr z80hl,z80hl,z80hl,lsr#8
4625	fetch 4
4626;@LD L,(HL)
4627opcode_6_E:
4628	readmem8HL
4629	and z80hl,z80hl,#0xFF000000
4630	orr z80hl,z80hl,r0,lsl#16
4631	fetch 7
4632;@LD L,A
4633opcode_6_F:
4634	and z80hl,z80hl,#0xFF000000
4635	orr z80hl,z80hl,z80a,lsr#8
4636	fetch 4
4637
4638;@LD (HL),B
4639opcode_7_0:
4640	mov r0,z80bc,lsr#24
4641	writemem8HL
4642	fetch 7
4643;@LD (HL),C
4644opcode_7_1:
4645	mov r0,z80bc,lsr#16
4646	and r0,r0,#0xFF
4647	writemem8HL
4648	fetch 7
4649;@LD (HL),D
4650opcode_7_2:
4651	mov r0,z80de,lsr#24
4652	writemem8HL
4653	fetch 7
4654;@LD (HL),E
4655opcode_7_3:
4656	mov r0,z80de,lsr#16
4657	and r0,r0,#0xFF
4658	writemem8HL
4659	fetch 7
4660;@LD (HL),H
4661opcode_7_4:
4662	mov r0,z80hl,lsr#24
4663	writemem8HL
4664	fetch 7
4665;@LD (HL),L
4666opcode_7_5:
4667	mov r1,z80hl,lsr#16
4668	and r0,r1,#0xFF
4669	writemem8
4670	fetch 7
4671;@HALT
4672opcode_7_6:
4673	sub z80pc,z80pc,#1
4674	ldrb r0,[cpucontext,#z80if]
4675	orr r0,r0,#Z80_HALT
4676	strb r0,[cpucontext,#z80if]
4677	and z80_icount,z80_icount,#3
4678	eatcycles 4
4679	b z80_execute_end
4680;@LD (HL),A
4681opcode_7_7:
4682	mov r0,z80a,lsr#24
4683	writemem8HL
4684	fetch 7
4685
4686;@LD A,B
4687opcode_7_8:
4688	and z80a,z80bc,#0xFF000000
4689	fetch 4
4690;@LD A,C
4691opcode_7_9:
4692	mov z80a,z80bc,lsl#8
4693	fetch 4
4694;@LD A,D
4695opcode_7_A:
4696	and z80a,z80de,#0xFF000000
4697	fetch 4
4698;@LD A,E
4699opcode_7_B:
4700	mov z80a,z80de,lsl#8
4701	fetch 4
4702;@LD A,H
4703opcode_7_C:
4704	and z80a,z80hl,#0xFF000000
4705	fetch 4
4706;@LD A,L
4707opcode_7_D:
4708	mov z80a,z80hl,lsl#8
4709	fetch 4
4710;@LD A,(HL)
4711opcode_7_E:
4712	readmem8HL
4713	mov z80a,r0,lsl#24
4714	fetch 7
4715
4716;@ADD A,B
4717opcode_8_0:
4718	opADDH z80bc
4719;@ADD A,C
4720opcode_8_1:
4721	opADDL z80bc
4722;@ADD A,D
4723opcode_8_2:
4724	opADDH z80de
4725;@ADD A,E
4726opcode_8_3:
4727	opADDL z80de
4728;@ADD A,H
4729opcode_8_4:
4730	opADDH z80hl
4731;@ADD A,L
4732opcode_8_5:
4733	opADDL z80hl
4734;@ADD A,(HL)
4735opcode_8_6:
4736	readmem8HL
4737	opADDb
4738	fetch 7
4739;@ADD A,A
4740opcode_8_7:
4741	opADDA
4742
4743;@ADC A,B
4744opcode_8_8:
4745	opADCH z80bc
4746;@ADC A,C
4747opcode_8_9:
4748	opADCL z80bc
4749;@ADC A,D
4750opcode_8_A:
4751	opADCH z80de
4752;@ADC A,E
4753opcode_8_B:
4754	opADCL z80de
4755;@ADC A,H
4756opcode_8_C:
4757	opADCH z80hl
4758;@ADC A,L
4759opcode_8_D:
4760	opADCL z80hl
4761;@ADC A,(HL)
4762opcode_8_E:
4763	readmem8HL
4764	opADCb
4765	fetch 7
4766;@ADC A,A
4767opcode_8_F:
4768	opADCA
4769
4770;@SUB B
4771opcode_9_0:
4772	opSUBH z80bc
4773;@SUB C
4774opcode_9_1:
4775	opSUBL z80bc
4776;@SUB D
4777opcode_9_2:
4778	opSUBH z80de
4779;@SUB E
4780opcode_9_3:
4781	opSUBL z80de
4782;@SUB H
4783opcode_9_4:
4784	opSUBH z80hl
4785;@SUB L
4786opcode_9_5:
4787	opSUBL z80hl
4788;@SUB (HL)
4789opcode_9_6:
4790	readmem8HL
4791	opSUBb
4792	fetch 7
4793;@SUB A
4794opcode_9_7:
4795	opSUBA
4796
4797;@SBC B
4798opcode_9_8:
4799	opSBCH z80bc
4800;@SBC C
4801opcode_9_9:
4802	opSBCL z80bc
4803;@SBC D
4804opcode_9_A:
4805	opSBCH z80de
4806;@SBC E
4807opcode_9_B:
4808	opSBCL z80de
4809;@SBC H
4810opcode_9_C:
4811	opSBCH z80hl
4812;@SBC L
4813opcode_9_D:
4814	opSBCL z80hl
4815;@SBC (HL)
4816opcode_9_E:
4817	readmem8HL
4818	opSBCb
4819	fetch 7
4820;@SBC A
4821opcode_9_F:
4822	opSBCA
4823
4824;@AND B
4825opcode_A_0:
4826	opANDH z80bc
4827;@AND C
4828opcode_A_1:
4829	opANDL z80bc
4830;@AND D
4831opcode_A_2:
4832	opANDH z80de
4833;@AND E
4834opcode_A_3:
4835	opANDL z80de
4836;@AND H
4837opcode_A_4:
4838	opANDH z80hl
4839;@AND L
4840opcode_A_5:
4841	opANDL z80hl
4842;@AND (HL)
4843opcode_A_6:
4844	readmem8HL
4845	opANDb
4846	fetch 7
4847;@AND A
4848opcode_A_7:
4849	opANDA
4850
4851;@XOR B
4852opcode_A_8:
4853	opXORH z80bc
4854;@XOR C
4855opcode_A_9:
4856	opXORL z80bc
4857;@XOR D
4858opcode_A_A:
4859	opXORH z80de
4860;@XOR E
4861opcode_A_B:
4862	opXORL z80de
4863;@XOR H
4864opcode_A_C:
4865	opXORH z80hl
4866;@XOR L
4867opcode_A_D:
4868	opXORL z80hl
4869;@XOR (HL)
4870opcode_A_E:
4871	readmem8HL
4872	opXORb
4873	fetch 7
4874;@XOR A
4875opcode_A_F:
4876	opXORA
4877
4878;@OR B
4879opcode_B_0:
4880	opORH z80bc
4881;@OR C
4882opcode_B_1:
4883	opORL z80bc
4884;@OR D
4885opcode_B_2:
4886	opORH z80de
4887;@OR E
4888opcode_B_3:
4889	opORL z80de
4890;@OR H
4891opcode_B_4:
4892	opORH z80hl
4893;@OR L
4894opcode_B_5:
4895	opORL z80hl
4896;@OR (HL)
4897opcode_B_6:
4898	readmem8HL
4899	opORb
4900	fetch 7
4901;@OR A
4902opcode_B_7:
4903	opORA
4904
4905;@CP B
4906opcode_B_8:
4907	opCPH z80bc
4908;@CP C
4909opcode_B_9:
4910	opCPL z80bc
4911;@CP D
4912opcode_B_A:
4913	opCPH z80de
4914;@CP E
4915opcode_B_B:
4916	opCPL z80de
4917;@CP H
4918opcode_B_C:
4919	opCPH z80hl
4920;@CP L
4921opcode_B_D:
4922	opCPL z80hl
4923;@CP (HL)
4924opcode_B_E:
4925	readmem8HL
4926	opCPb
4927	fetch 7
4928;@CP A
4929opcode_B_F:
4930	opCPA
4931
4932;@RET NZ
4933opcode_C_0:
4934	tst z80f,#1<<ZFlag
4935	beq opcode_C_9		;@unconditional RET
4936	fetch 5
4937
4938;@POP BC
4939opcode_C_1:
4940	opPOPreg z80bc
4941
4942;@JP NZ,$+3
4943opcode_C_2:
4944	tst z80f,#1<<ZFlag
4945	beq opcode_C_3		;@unconditional JP
4946	add z80pc,z80pc,#2
4947	fetch 10
4948;@JP $+3
4949opcode_C_3:
4950	ldrb r0,[z80pc],#1
4951	ldrb r1,[z80pc],#1
4952	orr r0,r0,r1, lsl #8
4953	rebasepc
4954	fetch 10
4955;@CALL NZ,NN
4956opcode_C_4:
4957	tst z80f,#1<<ZFlag
4958	beq opcode_C_D		;@unconditional CALL
4959	add z80pc,z80pc,#2
4960	fetch 10
4961
4962;@PUSH BC
4963opcode_C_5:
4964	opPUSHreg z80bc
4965	fetch 11
4966;@ADD A,N
4967opcode_C_6:
4968	ldrb r0,[z80pc],#1
4969	opADDb
4970	fetch 7
4971;@RST 0
4972opcode_C_7:
4973	opRST 0x00
4974
4975;@RET Z
4976opcode_C_8:
4977	tst z80f,#1<<ZFlag
4978	bne opcode_C_9		;@unconditional RET
4979	fetch 5
4980;@RET
4981opcode_C_9:
4982.if FAST_Z80SP
4983	ldrb r0,[z80sp],#1
4984	ldrb r1,[z80sp],#1
4985	orr r0,r0,r1, lsl #8
4986.else
4987	mov r0,z80sp
4988	readmem16
4989	add z80sp,z80sp,#2
4990.endif
4991	rebasepc
4992	fetch 10
4993;@JP Z,$+3
4994opcode_C_A:
4995	tst z80f,#1<<ZFlag
4996	bne opcode_C_3  ;@unconditional JP
4997	add z80pc,z80pc,#2
4998	fetch 10
4999
5000;@This reads this opcodes_CB lookup table to find the location of
5001;@the CB sub for the intruction and then branches to that location
5002opcode_C_B:
5003	ldrb r0,[z80pc],#1
5004	ldr pc,[pc,r0, lsl #2]
5005opcodes_CB:	.word 0x00000000
5006			.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
5007			.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
5008			.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
5009			.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
5010			.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
5011			.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
5012			.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
5013			.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
5014			.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
5015			.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
5016			.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
5017			.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
5018			.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
5019			.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
5020			.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
5021			.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
5022			.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
5023			.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
5024			.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
5025			.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
5026			.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
5027			.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
5028			.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
5029			.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
5030			.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
5031			.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
5032			.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
5033			.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
5034			.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
5035			.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
5036			.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
5037			.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
5038
5039;@CALL Z,NN
5040opcode_C_C:
5041	tst z80f,#1<<ZFlag
5042	bne opcode_C_D		;@unconditional CALL
5043	add z80pc,z80pc,#2
5044	fetch 10
5045;@CALL NN
5046opcode_C_D:
5047	ldrb r1,[z80pc],#1
5048	ldrb r2,[z80pc],#1
5049	ldr r0,[cpucontext,#z80pc_base]
5050	sub z80pc,z80pc,r0
5051.if FAST_Z80SP
5052	mov r0,z80pc, lsr #8
5053	strb r0,[z80sp,#-1]!
5054	strb z80pc,[z80sp,#-1]!
5055	orr r0,r1,r2, lsl #8
5056.else
5057	mov r0,z80pc
5058	orr z80pc,r1,r2, lsl #8
5059	sub z80sp,z80sp,#2
5060	mov r1,z80sp
5061	writemem16
5062	mov r0,z80pc
5063.endif
5064	rebasepc
5065	fetch 17
5066;@ADC A,N
5067opcode_C_E:
5068	ldrb r0,[z80pc],#1
5069	opADCb
5070	fetch 7
5071;@RST 8H
5072opcode_C_F:
5073	opRST 0x08
5074
5075;@RET NC
5076opcode_D_0:
5077	tst z80f,#1<<CFlag
5078	beq opcode_C_9		;@unconditional RET
5079	fetch 5
5080;@POP DE
5081opcode_D_1:
5082	opPOPreg z80de
5083
5084;@JP NC, $+3
5085opcode_D_2 :
5086	tst z80f,#1<<CFlag
5087	beq opcode_C_3		;@unconditional JP
5088	add z80pc,z80pc,#2
5089	fetch 10
5090;@OUT (N),A
5091opcode_D_3:
5092	ldrb r0,[z80pc],#1
5093	orr r0,r0,z80a,lsr#16
5094	mov r1,z80a, lsr #24
5095	opOUT
5096	fetch 11
5097;@CALL NC,NN
5098opcode_D_4:
5099	tst z80f,#1<<CFlag
5100	beq opcode_C_D		;@unconditional CALL
5101	add z80pc,z80pc,#2
5102	fetch 10
5103;@PUSH DE
5104opcode_D_5:
5105	opPUSHreg z80de
5106	fetch 11
5107;@SUB N
5108opcode_D_6:
5109	ldrb r0,[z80pc],#1
5110	opSUBb
5111	fetch 7
5112
5113;@RST 10H
5114opcode_D_7:
5115	opRST 0x10
5116
5117;@RET C
5118opcode_D_8:
5119	tst z80f,#1<<CFlag
5120	bne opcode_C_9		;@unconditional RET
5121	fetch 5
5122;@EXX
5123opcode_D_9:
5124	add r1,cpucontext,#z80bc2
5125	swp z80bc,z80bc,[r1]
5126	add r1,cpucontext,#z80de2
5127	swp z80de,z80de,[r1]
5128	add r1,cpucontext,#z80hl2
5129	swp z80hl,z80hl,[r1]
5130	fetch 4
5131;@JP C,$+3
5132opcode_D_A:
5133	tst z80f,#1<<CFlag
5134	bne opcode_C_3		;@unconditional JP
5135	add z80pc,z80pc,#2
5136	fetch 10
5137;@IN A,(N)
5138opcode_D_B:
5139	ldrb r0,[z80pc],#1
5140	orr r0,r0,z80a,lsr#16
5141	opIN
5142	mov z80a,r0, lsl #24	;@ r0 = data read
5143	fetch 11
5144;@CALL C,NN
5145opcode_D_C:
5146	tst z80f,#1<<CFlag
5147	bne opcode_C_D		;@unconditional CALL
5148	add z80pc,z80pc,#2
5149	fetch 10
5150
5151;@opcodes_DD
5152opcode_D_D:
5153	add z80xx,cpucontext,#z80ix
5154	b opcode_D_D_F_D
5155opcode_F_D:
5156	add z80xx,cpucontext,#z80iy
5157opcode_D_D_F_D:
5158	ldrb r0,[z80pc],#1
5159	ldr pc,[pc,r0, lsl #2]
5160opcodes_DD:	.word 0x00000000
5161			.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
5162			.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
5163			.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
5164			.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
5165			.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
5166			.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
5167			.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
5168			.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
5169			.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
5170			.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
5171			.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
5172			.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
5173			.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
5174			.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
5175			.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
5176			.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
5177			.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
5178			.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
5179			.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
5180			.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
5181			.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
5182			.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
5183			.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
5184			.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
5185			.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
5186			.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
5187			.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
5188			.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
5189			.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
5190			.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
5191			.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
5192			.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
5193
5194;@SBC A,N
5195opcode_D_E:
5196	ldrb r0,[z80pc],#1
5197	opSBCb
5198	fetch 7
5199;@RST 18H
5200opcode_D_F:
5201	opRST 0x18
5202
5203;@RET PO
5204opcode_E_0:
5205	tst z80f,#1<<VFlag
5206	beq opcode_C_9		;@unconditional RET
5207	fetch 5
5208;@POP HL
5209opcode_E_1:
5210	opPOPreg z80hl
5211
5212;@JP PO,$+3
5213opcode_E_2:
5214	tst z80f,#1<<VFlag
5215	beq opcode_C_3		;@unconditional JP
5216	add z80pc,z80pc,#2
5217	fetch 10
5218;@EX (SP),HL
5219opcode_E_3:
5220.if FAST_Z80SP
5221	ldrb r0,[z80sp]
5222	ldrb r1,[z80sp,#1]
5223	orr r0,r0,r1, lsl #8
5224	mov r1,z80hl, lsr #24
5225	strb r1,[z80sp,#1]
5226	mov r1,z80hl, lsr #16
5227	strb r1,[z80sp]
5228	mov z80hl,r0, lsl #16
5229.else
5230	mov r0,z80sp
5231	readmem16
5232	mov r1,r0
5233	mov r0,z80hl,lsr#16
5234	mov z80hl,r1,lsl#16
5235	mov r1,z80sp
5236	writemem16
5237.endif
5238	fetch 19
5239;@CALL PO,NN
5240opcode_E_4:
5241	tst z80f,#1<<VFlag
5242	beq opcode_C_D		;@unconditional CALL
5243	add z80pc,z80pc,#2
5244	fetch 10
5245;@PUSH HL
5246opcode_E_5:
5247	opPUSHreg z80hl
5248	fetch 11
5249;@AND N
5250opcode_E_6:
5251	ldrb r0,[z80pc],#1
5252	opANDb
5253	fetch 7
5254;@RST 20H
5255opcode_E_7:
5256	opRST 0x20
5257
5258;@RET PE
5259opcode_E_8:
5260	tst z80f,#1<<VFlag
5261	bne opcode_C_9		;@unconditional RET
5262	fetch 5
5263;@JP (HL)
5264opcode_E_9:
5265	mov r0,z80hl, lsr #16
5266	rebasepc
5267	fetch 4
5268;@JP PE,$+3
5269opcode_E_A:
5270	tst z80f,#1<<VFlag
5271	bne opcode_C_3		;@unconditional JP
5272	add z80pc,z80pc,#2
5273	fetch 10
5274;@EX DE,HL
5275opcode_E_B:
5276	mov r1,z80de
5277	mov z80de,z80hl
5278	mov z80hl,r1
5279	fetch 4
5280;@CALL PE,NN
5281opcode_E_C:
5282	tst z80f,#1<<VFlag
5283	bne opcode_C_D		;@unconditional CALL
5284	add z80pc,z80pc,#2
5285	fetch 10
5286
5287;@This should be caught at start
5288opcode_E_D:
5289	ldrb r1,[z80pc],#1
5290	ldr pc,[pc,r1, lsl #2]
5291opcodes_ED:	.word 0x00000000
5292			.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
5293			.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
5294			.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
5295			.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
5296			.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
5297			.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
5298			.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
5299			.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
5300			.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
5301			.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
5302			.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
5303			.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
5304			.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
5305			.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
5306			.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
5307			.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
5308			.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
5309			.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
5310			.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
5311			.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
5312			.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
5313			.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
5314			.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
5315			.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
5316			.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
5317			.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
5318			.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
5319			.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
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
5325;@XOR N
5326opcode_E_E:
5327	ldrb r0,[z80pc],#1
5328	opXORb
5329	fetch 7
5330;@RST 28H
5331opcode_E_F:
5332	opRST 0x28
5333
5334;@RET P
5335opcode_F_0:
5336	tst z80f,#1<<SFlag
5337	beq opcode_C_9		;@unconditional RET
5338	fetch 5
5339;@POP AF
5340opcode_F_1:
5341.if FAST_Z80SP
5342	ldrb z80f,[z80sp],#1
5343	sub r0,opcodes,#0x200
5344	ldrb z80f,[r0,z80f]
5345	ldrb z80a,[z80sp],#1
5346	mov z80a,z80a, lsl #24
5347.else
5348	mov r0,z80sp
5349	readmem16
5350	add z80sp,z80sp,#2
5351	and z80a,r0,#0xFF00
5352	mov z80a,z80a,lsl#16
5353	and z80f,r0,#0xFF
5354	sub r0,opcodes,#0x200
5355	ldrb z80f,[r0,z80f]
5356.endif
5357	fetch 10
5358;@JP P,$+3
5359opcode_F_2:
5360	tst z80f,#1<<SFlag
5361	beq opcode_C_3		;@unconditional JP
5362	add z80pc,z80pc,#2
5363	fetch 10
5364;@DI
5365opcode_F_3:
5366	ldrb r1,[cpucontext,#z80if]
5367	bic r1,r1,#(Z80_IF1)|(Z80_IF2)
5368	strb r1,[cpucontext,#z80if]
5369	fetch 4
5370;@CALL P,NN
5371opcode_F_4:
5372	tst z80f,#1<<SFlag
5373	beq opcode_C_D		;@unconditional CALL
5374	add z80pc,z80pc,#2
5375	fetch 10
5376;@PUSH AF
5377opcode_F_5:
5378.if FAST_Z80SP
5379	mov r1,z80a, lsr #24
5380	strb r1,[z80sp,#-1]!
5381	sub r0,opcodes,#0x300
5382	ldrb r1,[r0,z80f]
5383	strb r1,[z80sp,#-1]!
5384.else
5385	sub r0,opcodes,#0x300
5386	ldrb r0,[r0,z80f]
5387	orr r0,r0,z80a,lsr#16
5388	sub z80sp,z80sp,#2
5389	mov r1,z80sp
5390	writemem16
5391.endif
5392	fetch 11
5393;@OR N
5394opcode_F_6:
5395	ldrb r0,[z80pc],#1
5396	opORb
5397	fetch 7
5398;@RST 30H
5399opcode_F_7:
5400	opRST 0x30
5401
5402;@RET M
5403opcode_F_8:
5404	tst z80f,#1<<SFlag
5405	bne opcode_C_9		;@unconditional RET
5406	fetch 5
5407;@LD SP,HL
5408opcode_F_9:
5409.if FAST_Z80SP
5410	mov r0,z80hl, lsr #16
5411	rebasesp
5412	;@mov z80sp,r0
5413.else
5414	mov z80sp,z80hl, lsr #16
5415.endif
5416	fetch 4
5417;@JP M,$+3
5418opcode_F_A:
5419	tst z80f,#1<<SFlag
5420	bne opcode_C_3		;@unconditional JP
5421	add z80pc,z80pc,#2
5422	fetch 10
5423MAIN_opcodes_POINTER: .word MAIN_opcodes
5424EI_DUMMY_opcodes_POINTER: .word EI_DUMMY_opcodes
5425;@EI
5426opcode_F_B:
5427	ldrb r1,[cpucontext,#z80if]
5428	tst r1,#Z80_IF1
5429	bne ei_return_exit
5430
5431	orr r1,r1,#(Z80_IF1)|(Z80_IF2)
5432	strb r1,[cpucontext,#z80if]
5433
5434	mov r2,opcodes
5435	ldr opcodes,EI_DUMMY_opcodes_POINTER
5436	ldr pc,[r2,r0, lsl #2]
5437
5438ei_return:
5439	;@point that program returns from EI to check interupts
5440	;@an interupt can not be taken directly after a EI opcode
5441	;@ reset z80pc and opcode pointer
5442	sub z80pc,z80pc,#1
5443	ldr opcodes,MAIN_opcodes_POINTER
5444	;@ check ints
5445	bl DoInterrupt
5446	;@ continue
5447ei_return_exit:
5448	fetch 4
5449
5450;@CALL M,NN
5451opcode_F_C:
5452	tst z80f,#1<<SFlag
5453	bne opcode_C_D		;@unconditional CALL
5454	add z80pc,z80pc,#2
5455	fetch 10
5456
5457;@SHOULD BE CAUGHT AT START - FD SECTION
5458
5459;@CP N
5460opcode_F_E:
5461	ldrb r0,[z80pc],#1
5462	opCPb
5463	fetch 7
5464;@RST 38H
5465opcode_F_F:
5466	opRST 0x38
5467
5468
5469;@##################################
5470;@##################################
5471;@###  opcodes CB  #########################
5472;@##################################
5473;@##################################
5474
5475
5476;@RLC B
5477opcode_CB_00:
5478	opRLCH z80bc
5479;@RLC C
5480opcode_CB_01:
5481	opRLCL z80bc
5482;@RLC D
5483opcode_CB_02:
5484	opRLCH z80de
5485;@RLC E
5486opcode_CB_03:
5487	opRLCL z80de
5488;@RLC H
5489opcode_CB_04:
5490	opRLCH z80hl
5491;@RLC L
5492opcode_CB_05:
5493	opRLCL z80hl
5494;@RLC (HL)
5495opcode_CB_06:
5496	readmem8HL
5497	opRLCb
5498	writemem8HL
5499	fetch 15
5500;@RLC A
5501opcode_CB_07:
5502	opRLCA
5503
5504;@RRC B
5505opcode_CB_08:
5506	opRRCH z80bc
5507;@RRC C
5508opcode_CB_09:
5509	opRRCL z80bc
5510;@RRC D
5511opcode_CB_0A:
5512	opRRCH z80de
5513;@RRC E
5514opcode_CB_0B:
5515	opRRCL z80de
5516;@RRC H
5517opcode_CB_0C:
5518	opRRCH z80hl
5519;@RRC L
5520opcode_CB_0D:
5521	opRRCL z80hl
5522;@RRC (HL)
5523opcode_CB_0E :
5524	readmem8HL
5525	opRRCb
5526	writemem8HL
5527	fetch 15
5528;@RRC A
5529opcode_CB_0F:
5530	opRRCA
5531
5532;@RL B
5533opcode_CB_10:
5534	opRLH z80bc
5535;@RL C
5536opcode_CB_11:
5537	opRLL z80bc
5538;@RL D
5539opcode_CB_12:
5540	opRLH z80de
5541;@RL E
5542opcode_CB_13:
5543	opRLL z80de
5544;@RL H
5545opcode_CB_14:
5546	opRLH z80hl
5547;@RL L
5548opcode_CB_15:
5549	opRLL z80hl
5550;@RL (HL)
5551opcode_CB_16:
5552	readmem8HL
5553	opRLb
5554	writemem8HL
5555	fetch 15
5556;@RL A
5557opcode_CB_17:
5558	opRLA
5559
5560;@RR B
5561opcode_CB_18:
5562	opRRH z80bc
5563;@RR C
5564opcode_CB_19:
5565	opRRL z80bc
5566;@RR D
5567opcode_CB_1A:
5568	opRRH z80de
5569;@RR E
5570opcode_CB_1B:
5571	opRRL z80de
5572;@RR H
5573opcode_CB_1C:
5574	opRRH z80hl
5575;@RR L
5576opcode_CB_1D:
5577	opRRL z80hl
5578;@RR (HL)
5579opcode_CB_1E:
5580	readmem8HL
5581	opRRb
5582	writemem8HL
5583	fetch 15
5584;@RR A
5585opcode_CB_1F:
5586	opRRA
5587
5588;@SLA B
5589opcode_CB_20:
5590	opSLAH z80bc
5591;@SLA C
5592opcode_CB_21:
5593	opSLAL z80bc
5594;@SLA D
5595opcode_CB_22:
5596	opSLAH z80de
5597;@SLA E
5598opcode_CB_23:
5599	opSLAL z80de
5600;@SLA H
5601opcode_CB_24:
5602	opSLAH z80hl
5603;@SLA L
5604opcode_CB_25:
5605	opSLAL z80hl
5606;@SLA (HL)
5607opcode_CB_26:
5608	readmem8HL
5609	opSLAb
5610	writemem8HL
5611	fetch 15
5612;@SLA A
5613opcode_CB_27:
5614	opSLAA
5615
5616;@SRA B
5617opcode_CB_28:
5618	opSRAH z80bc
5619;@SRA C
5620opcode_CB_29:
5621	opSRAL z80bc
5622;@SRA D
5623opcode_CB_2A:
5624	opSRAH z80de
5625;@SRA E
5626opcode_CB_2B:
5627	opSRAL z80de
5628;@SRA H
5629opcode_CB_2C:
5630	opSRAH z80hl
5631;@SRA L
5632opcode_CB_2D:
5633	opSRAL z80hl
5634;@SRA (HL)
5635opcode_CB_2E:
5636	readmem8HL
5637	opSRAb
5638	writemem8HL
5639	fetch 15
5640;@SRA A
5641opcode_CB_2F:
5642	opSRAA
5643
5644;@SLL B
5645opcode_CB_30:
5646	opSLLH z80bc
5647;@SLL C
5648opcode_CB_31:
5649	opSLLL z80bc
5650;@SLL D
5651opcode_CB_32:
5652	opSLLH z80de
5653;@SLL E
5654opcode_CB_33:
5655	opSLLL z80de
5656;@SLL H
5657opcode_CB_34:
5658	opSLLH z80hl
5659;@SLL L
5660opcode_CB_35:
5661	opSLLL z80hl
5662;@SLL (HL)
5663opcode_CB_36:
5664	readmem8HL
5665	opSLLb
5666	writemem8HL
5667	fetch 15
5668;@SLL A
5669opcode_CB_37:
5670	opSLLA
5671
5672;@SRL B
5673opcode_CB_38:
5674	opSRLH z80bc
5675;@SRL C
5676opcode_CB_39:
5677	opSRLL z80bc
5678;@SRL D
5679opcode_CB_3A:
5680	opSRLH z80de
5681;@SRL E
5682opcode_CB_3B:
5683	opSRLL z80de
5684;@SRL H
5685opcode_CB_3C:
5686	opSRLH z80hl
5687;@SRL L
5688opcode_CB_3D:
5689	opSRLL z80hl
5690;@SRL (HL)
5691opcode_CB_3E:
5692	readmem8HL
5693	opSRLb
5694	writemem8HL
5695	fetch 15
5696;@SRL A
5697opcode_CB_3F:
5698	opSRLA
5699
5700
5701;@BIT 0,B
5702opcode_CB_40:
5703	opBITH z80bc 0
5704;@BIT 0,C
5705opcode_CB_41:
5706	opBITL z80bc 0
5707;@BIT 0,D
5708opcode_CB_42:
5709	opBITH z80de 0
5710;@BIT 0,E
5711opcode_CB_43:
5712	opBITL z80de 0
5713;@BIT 0,H
5714opcode_CB_44:
5715	opBITH z80hl 0
5716;@BIT 0,L
5717opcode_CB_45:
5718	opBITL z80hl 0
5719;@BIT 0,(HL)
5720opcode_CB_46:
5721	readmem8HL
5722	opBITb 0
5723	fetch 12
5724;@BIT 0,A
5725opcode_CB_47:
5726	opBITH z80a 0
5727
5728;@BIT 1,B
5729opcode_CB_48:
5730	opBITH z80bc 1
5731;@BIT 1,C
5732opcode_CB_49:
5733	opBITL z80bc 1
5734;@BIT 1,D
5735opcode_CB_4A:
5736	opBITH z80de 1
5737;@BIT 1,E
5738opcode_CB_4B:
5739	opBITL z80de 1
5740;@BIT 1,H
5741opcode_CB_4C:
5742	opBITH z80hl 1
5743;@BIT 1,L
5744opcode_CB_4D:
5745	opBITL z80hl 1
5746;@BIT 1,(HL)
5747opcode_CB_4E:
5748	readmem8HL
5749	opBITb 1
5750	fetch 12
5751;@BIT 1,A
5752opcode_CB_4F:
5753	opBITH z80a 1
5754
5755;@BIT 2,B
5756opcode_CB_50:
5757	opBITH z80bc 2
5758;@BIT 2,C
5759opcode_CB_51:
5760	opBITL z80bc 2
5761;@BIT 2,D
5762opcode_CB_52:
5763	opBITH z80de 2
5764;@BIT 2,E
5765opcode_CB_53:
5766	opBITL z80de 2
5767;@BIT 2,H
5768opcode_CB_54:
5769	opBITH z80hl 2
5770;@BIT 2,L
5771opcode_CB_55:
5772	opBITL z80hl 2
5773;@BIT 2,(HL)
5774opcode_CB_56:
5775	readmem8HL
5776	opBITb 2
5777	fetch 12
5778;@BIT 2,A
5779opcode_CB_57:
5780	opBITH z80a 2
5781
5782;@BIT 3,B
5783opcode_CB_58:
5784	opBITH z80bc 3
5785;@BIT 3,C
5786opcode_CB_59:
5787	opBITL z80bc 3
5788;@BIT 3,D
5789opcode_CB_5A:
5790	opBITH z80de 3
5791;@BIT 3,E
5792opcode_CB_5B:
5793	opBITL z80de 3
5794;@BIT 3,H
5795opcode_CB_5C:
5796	opBITH z80hl 3
5797;@BIT 3,L
5798opcode_CB_5D:
5799	opBITL z80hl 3
5800;@BIT 3,(HL)
5801opcode_CB_5E:
5802	readmem8HL
5803	opBITb 3
5804	fetch 12
5805;@BIT 3,A
5806opcode_CB_5F:
5807	opBITH z80a 3
5808
5809;@BIT 4,B
5810opcode_CB_60:
5811	opBITH z80bc 4
5812;@BIT 4,C
5813opcode_CB_61:
5814	opBITL z80bc 4
5815;@BIT 4,D
5816opcode_CB_62:
5817	opBITH z80de 4
5818;@BIT 4,E
5819opcode_CB_63:
5820	opBITL z80de 4
5821;@BIT 4,H
5822opcode_CB_64:
5823	opBITH z80hl 4
5824;@BIT 4,L
5825opcode_CB_65:
5826	opBITL z80hl 4
5827;@BIT 4,(HL)
5828opcode_CB_66:
5829	readmem8HL
5830	opBITb 4
5831	fetch 12
5832;@BIT 4,A
5833opcode_CB_67:
5834	opBITH z80a 4
5835
5836;@BIT 5,B
5837opcode_CB_68:
5838	opBITH z80bc 5
5839;@BIT 5,C
5840opcode_CB_69:
5841	opBITL z80bc 5
5842;@BIT 5,D
5843opcode_CB_6A:
5844	opBITH z80de 5
5845;@BIT 5,E
5846opcode_CB_6B:
5847	opBITL z80de 5
5848;@BIT 5,H
5849opcode_CB_6C:
5850	opBITH z80hl 5
5851;@BIT 5,L
5852opcode_CB_6D:
5853	opBITL z80hl 5
5854;@BIT 5,(HL)
5855opcode_CB_6E:
5856	readmem8HL
5857	opBITb 5
5858	fetch 12
5859;@BIT 5,A
5860opcode_CB_6F:
5861	opBITH z80a 5
5862
5863;@BIT 6,B
5864opcode_CB_70:
5865	opBITH z80bc 6
5866;@BIT 6,C
5867opcode_CB_71:
5868	opBITL z80bc 6
5869;@BIT 6,D
5870opcode_CB_72:
5871	opBITH z80de 6
5872;@BIT 6,E
5873opcode_CB_73:
5874	opBITL z80de 6
5875;@BIT 6,H
5876opcode_CB_74:
5877	opBITH z80hl 6
5878;@BIT 6,L
5879opcode_CB_75:
5880	opBITL z80hl 6
5881;@BIT 6,(HL)
5882opcode_CB_76:
5883	readmem8HL
5884	opBITb 6
5885	fetch 12
5886;@BIT 6,A
5887opcode_CB_77:
5888	opBITH z80a 6
5889
5890;@BIT 7,B
5891opcode_CB_78:
5892	opBIT7H z80bc
5893;@BIT 7,C
5894opcode_CB_79:
5895	opBIT7L z80bc
5896;@BIT 7,D
5897opcode_CB_7A:
5898	opBIT7H z80de
5899;@BIT 7,E
5900opcode_CB_7B:
5901	opBIT7L z80de
5902;@BIT 7,H
5903opcode_CB_7C:
5904	opBIT7H z80hl
5905;@BIT 7,L
5906opcode_CB_7D:
5907	opBIT7L z80hl
5908;@BIT 7,(HL)
5909opcode_CB_7E:
5910	readmem8HL
5911	opBIT7b
5912	fetch 12
5913;@BIT 7,A
5914opcode_CB_7F:
5915	opBIT7H z80a
5916
5917;@RES 0,B
5918opcode_CB_80:
5919	bic z80bc,z80bc,#1<<24
5920	fetch 8
5921;@RES 0,C
5922opcode_CB_81:
5923	bic z80bc,z80bc,#1<<16
5924	fetch 8
5925;@RES 0,D
5926opcode_CB_82:
5927	bic z80de,z80de,#1<<24
5928	fetch 8
5929;@RES 0,E
5930opcode_CB_83:
5931	bic z80de,z80de,#1<<16
5932	fetch 8
5933;@RES 0,H
5934opcode_CB_84:
5935	bic z80hl,z80hl,#1<<24
5936	fetch 8
5937;@RES 0,L
5938opcode_CB_85:
5939	bic z80hl,z80hl,#1<<16
5940	fetch 8
5941;@RES 0,(HL)
5942opcode_CB_86:
5943	opRESmemHL 0
5944;@RES 0,A
5945opcode_CB_87:
5946	bic z80a,z80a,#1<<24
5947	fetch 8
5948
5949;@RES 1,B
5950opcode_CB_88:
5951	bic z80bc,z80bc,#1<<25
5952	fetch 8
5953;@RES 1,C
5954opcode_CB_89:
5955	bic z80bc,z80bc,#1<<17
5956	fetch 8
5957;@RES 1,D
5958opcode_CB_8A:
5959	bic z80de,z80de,#1<<25
5960	fetch 8
5961;@RES 1,E
5962opcode_CB_8B:
5963	bic z80de,z80de,#1<<17
5964	fetch 8
5965;@RES 1,H
5966opcode_CB_8C:
5967	bic z80hl,z80hl,#1<<25
5968	fetch 8
5969;@RES 1,L
5970opcode_CB_8D:
5971	bic z80hl,z80hl,#1<<17
5972	fetch 8
5973;@RES 1,(HL)
5974opcode_CB_8E:
5975	opRESmemHL 1
5976;@RES 1,A
5977opcode_CB_8F:
5978	bic z80a,z80a,#1<<25
5979	fetch 8
5980
5981;@RES 2,B
5982opcode_CB_90:
5983	bic z80bc,z80bc,#1<<26
5984	fetch 8
5985;@RES 2,C
5986opcode_CB_91:
5987	bic z80bc,z80bc,#1<<18
5988	fetch 8
5989;@RES 2,D
5990opcode_CB_92:
5991	bic z80de,z80de,#1<<26
5992	fetch 8
5993;@RES 2,E
5994opcode_CB_93:
5995	bic z80de,z80de,#1<<18
5996	fetch 8
5997;@RES 2,H
5998opcode_CB_94:
5999	bic z80hl,z80hl,#1<<26
6000	fetch 8
6001;@RES 2,L
6002opcode_CB_95:
6003	bic z80hl,z80hl,#1<<18
6004	fetch 8
6005;@RES 2,(HL)
6006opcode_CB_96:
6007	opRESmemHL 2
6008;@RES 2,A
6009opcode_CB_97:
6010	bic z80a,z80a,#1<<26
6011	fetch 8
6012
6013;@RES 3,B
6014opcode_CB_98:
6015	bic z80bc,z80bc,#1<<27
6016	fetch 8
6017;@RES 3,C
6018opcode_CB_99:
6019	bic z80bc,z80bc,#1<<19
6020	fetch 8
6021;@RES 3,D
6022opcode_CB_9A:
6023	bic z80de,z80de,#1<<27
6024	fetch 8
6025;@RES 3,E
6026opcode_CB_9B:
6027	bic z80de,z80de,#1<<19
6028	fetch 8
6029;@RES 3,H
6030opcode_CB_9C:
6031	bic z80hl,z80hl,#1<<27
6032	fetch 8
6033;@RES 3,L
6034opcode_CB_9D:
6035	bic z80hl,z80hl,#1<<19
6036	fetch 8
6037;@RES 3,(HL)
6038opcode_CB_9E:
6039	opRESmemHL 3
6040;@RES 3,A
6041opcode_CB_9F:
6042	bic z80a,z80a,#1<<27
6043	fetch 8
6044
6045;@RES 4,B
6046opcode_CB_A0:
6047	bic z80bc,z80bc,#1<<28
6048	fetch 8
6049;@RES 4,C
6050opcode_CB_A1:
6051	bic z80bc,z80bc,#1<<20
6052	fetch 8
6053;@RES 4,D
6054opcode_CB_A2:
6055	bic z80de,z80de,#1<<28
6056	fetch 8
6057;@RES 4,E
6058opcode_CB_A3:
6059	bic z80de,z80de,#1<<20
6060	fetch 8
6061;@RES 4,H
6062opcode_CB_A4:
6063	bic z80hl,z80hl,#1<<28
6064	fetch 8
6065;@RES 4,L
6066opcode_CB_A5:
6067	bic z80hl,z80hl,#1<<20
6068	fetch 8
6069;@RES 4,(HL)
6070opcode_CB_A6:
6071	opRESmemHL 4
6072;@RES 4,A
6073opcode_CB_A7:
6074	bic z80a,z80a,#1<<28
6075	fetch 8
6076
6077;@RES 5,B
6078opcode_CB_A8:
6079	bic z80bc,z80bc,#1<<29
6080	fetch 8
6081;@RES 5,C
6082opcode_CB_A9:
6083	bic z80bc,z80bc,#1<<21
6084	fetch 8
6085;@RES 5,D
6086opcode_CB_AA:
6087	bic z80de,z80de,#1<<29
6088	fetch 8
6089;@RES 5,E
6090opcode_CB_AB:
6091	bic z80de,z80de,#1<<21
6092	fetch 8
6093;@RES 5,H
6094opcode_CB_AC:
6095	bic z80hl,z80hl,#1<<29
6096	fetch 8
6097;@RES 5,L
6098opcode_CB_AD:
6099	bic z80hl,z80hl,#1<<21
6100	fetch 8
6101;@RES 5,(HL)
6102opcode_CB_AE:
6103	opRESmemHL 5
6104;@RES 5,A
6105opcode_CB_AF:
6106	bic z80a,z80a,#1<<29
6107	fetch 8
6108
6109;@RES 6,B
6110opcode_CB_B0:
6111	bic z80bc,z80bc,#1<<30
6112	fetch 8
6113;@RES 6,C
6114opcode_CB_B1:
6115	bic z80bc,z80bc,#1<<22
6116	fetch 8
6117;@RES 6,D
6118opcode_CB_B2:
6119	bic z80de,z80de,#1<<30
6120	fetch 8
6121;@RES 6,E
6122opcode_CB_B3:
6123	bic z80de,z80de,#1<<22
6124	fetch 8
6125;@RES 6,H
6126opcode_CB_B4:
6127	bic z80hl,z80hl,#1<<30
6128	fetch 8
6129;@RES 6,L
6130opcode_CB_B5:
6131	bic z80hl,z80hl,#1<<22
6132	fetch 8
6133;@RES 6,(HL)
6134opcode_CB_B6:
6135	opRESmemHL 6
6136;@RES 6,A
6137opcode_CB_B7:
6138	bic z80a,z80a,#1<<30
6139	fetch 8
6140
6141;@RES 7,B
6142opcode_CB_B8:
6143	bic z80bc,z80bc,#1<<31
6144	fetch 8
6145;@RES 7,C
6146opcode_CB_B9:
6147	bic z80bc,z80bc,#1<<23
6148	fetch 8
6149;@RES 7,D
6150opcode_CB_BA:
6151	bic z80de,z80de,#1<<31
6152	fetch 8
6153;@RES 7,E
6154opcode_CB_BB:
6155	bic z80de,z80de,#1<<23
6156	fetch 8
6157;@RES 7,H
6158opcode_CB_BC:
6159	bic z80hl,z80hl,#1<<31
6160	fetch 8
6161;@RES 7,L
6162opcode_CB_BD:
6163	bic z80hl,z80hl,#1<<23
6164	fetch 8
6165;@RES 7,(HL)
6166opcode_CB_BE:
6167	opRESmemHL 7
6168;@RES 7,A
6169opcode_CB_BF:
6170	bic z80a,z80a,#1<<31
6171	fetch 8
6172
6173;@SET 0,B
6174opcode_CB_C0:
6175	orr z80bc,z80bc,#1<<24
6176	fetch 8
6177;@SET 0,C
6178opcode_CB_C1:
6179	orr z80bc,z80bc,#1<<16
6180	fetch 8
6181;@SET 0,D
6182opcode_CB_C2:
6183	orr z80de,z80de,#1<<24
6184	fetch 8
6185;@SET 0,E
6186opcode_CB_C3:
6187	orr z80de,z80de,#1<<16
6188	fetch 8
6189;@SET 0,H
6190opcode_CB_C4:
6191	orr z80hl,z80hl,#1<<24
6192	fetch 8
6193;@SET 0,L
6194opcode_CB_C5:
6195	orr z80hl,z80hl,#1<<16
6196	fetch 8
6197;@SET 0,(HL)
6198opcode_CB_C6:
6199	opSETmemHL 0
6200;@SET 0,A
6201opcode_CB_C7:
6202	orr z80a,z80a,#1<<24
6203	fetch 8
6204
6205;@SET 1,B
6206opcode_CB_C8:
6207	orr z80bc,z80bc,#1<<25
6208	fetch 8
6209;@SET 1,C
6210opcode_CB_C9:
6211	orr z80bc,z80bc,#1<<17
6212	fetch 8
6213;@SET 1,D
6214opcode_CB_CA:
6215	orr z80de,z80de,#1<<25
6216	fetch 8
6217;@SET 1,E
6218opcode_CB_CB:
6219	orr z80de,z80de,#1<<17
6220	fetch 8
6221;@SET 1,H
6222opcode_CB_CC:
6223	orr z80hl,z80hl,#1<<25
6224	fetch 8
6225;@SET 1,L
6226opcode_CB_CD:
6227	orr z80hl,z80hl,#1<<17
6228	fetch 8
6229;@SET 1,(HL)
6230opcode_CB_CE:
6231	opSETmemHL 1
6232;@SET 1,A
6233opcode_CB_CF:
6234	orr z80a,z80a,#1<<25
6235	fetch 8
6236
6237;@SET 2,B
6238opcode_CB_D0:
6239	orr z80bc,z80bc,#1<<26
6240	fetch 8
6241;@SET 2,C
6242opcode_CB_D1:
6243	orr z80bc,z80bc,#1<<18
6244	fetch 8
6245;@SET 2,D
6246opcode_CB_D2:
6247	orr z80de,z80de,#1<<26
6248	fetch 8
6249;@SET 2,E
6250opcode_CB_D3:
6251	orr z80de,z80de,#1<<18
6252	fetch 8
6253;@SET 2,H
6254opcode_CB_D4:
6255	orr z80hl,z80hl,#1<<26
6256	fetch 8
6257;@SET 2,L
6258opcode_CB_D5:
6259	orr z80hl,z80hl,#1<<18
6260	fetch 8
6261;@SET 2,(HL)
6262opcode_CB_D6:
6263	opSETmemHL 2
6264;@SET 2,A
6265opcode_CB_D7:
6266	orr z80a,z80a,#1<<26
6267	fetch 8
6268
6269;@SET 3,B
6270opcode_CB_D8:
6271	orr z80bc,z80bc,#1<<27
6272	fetch 8
6273;@SET 3,C
6274opcode_CB_D9:
6275	orr z80bc,z80bc,#1<<19
6276	fetch 8
6277;@SET 3,D
6278opcode_CB_DA:
6279	orr z80de,z80de,#1<<27
6280	fetch 8
6281;@SET 3,E
6282opcode_CB_DB:
6283	orr z80de,z80de,#1<<19
6284	fetch 8
6285;@SET 3,H
6286opcode_CB_DC:
6287	orr z80hl,z80hl,#1<<27
6288	fetch 8
6289;@SET 3,L
6290opcode_CB_DD:
6291	orr z80hl,z80hl,#1<<19
6292	fetch 8
6293;@SET 3,(HL)
6294opcode_CB_DE:
6295	opSETmemHL 3
6296;@SET 3,A
6297opcode_CB_DF:
6298	orr z80a,z80a,#1<<27
6299	fetch 8
6300
6301;@SET 4,B
6302opcode_CB_E0:
6303	orr z80bc,z80bc,#1<<28
6304	fetch 8
6305;@SET 4,C
6306opcode_CB_E1:
6307	orr z80bc,z80bc,#1<<20
6308	fetch 8
6309;@SET 4,D
6310opcode_CB_E2:
6311	orr z80de,z80de,#1<<28
6312	fetch 8
6313;@SET 4,E
6314opcode_CB_E3:
6315	orr z80de,z80de,#1<<20
6316	fetch 8
6317;@SET 4,H
6318opcode_CB_E4:
6319	orr z80hl,z80hl,#1<<28
6320	fetch 8
6321;@SET 4,L
6322opcode_CB_E5:
6323	orr z80hl,z80hl,#1<<20
6324	fetch 8
6325;@SET 4,(HL)
6326opcode_CB_E6:
6327	opSETmemHL 4
6328;@SET 4,A
6329opcode_CB_E7:
6330	orr z80a,z80a,#1<<28
6331	fetch 8
6332
6333;@SET 5,B
6334opcode_CB_E8:
6335	orr z80bc,z80bc,#1<<29
6336	fetch 8
6337;@SET 5,C
6338opcode_CB_E9:
6339	orr z80bc,z80bc,#1<<21
6340	fetch 8
6341;@SET 5,D
6342opcode_CB_EA:
6343	orr z80de,z80de,#1<<29
6344	fetch 8
6345;@SET 5,E
6346opcode_CB_EB:
6347	orr z80de,z80de,#1<<21
6348	fetch 8
6349;@SET 5,H
6350opcode_CB_EC:
6351	orr z80hl,z80hl,#1<<29
6352	fetch 8
6353;@SET 5,L
6354opcode_CB_ED:
6355	orr z80hl,z80hl,#1<<21
6356	fetch 8
6357;@SET 5,(HL)
6358opcode_CB_EE:
6359	opSETmemHL 5
6360;@SET 5,A
6361opcode_CB_EF:
6362	orr z80a,z80a,#1<<29
6363	fetch 8
6364
6365;@SET 6,B
6366opcode_CB_F0:
6367	orr z80bc,z80bc,#1<<30
6368	fetch 8
6369;@SET 6,C
6370opcode_CB_F1:
6371	orr z80bc,z80bc,#1<<22
6372	fetch 8
6373;@SET 6,D
6374opcode_CB_F2:
6375	orr z80de,z80de,#1<<30
6376	fetch 8
6377;@SET 6,E
6378opcode_CB_F3:
6379	orr z80de,z80de,#1<<22
6380	fetch 8
6381;@SET 6,H
6382opcode_CB_F4:
6383	orr z80hl,z80hl,#1<<30
6384	fetch 8
6385;@SET 6,L
6386opcode_CB_F5:
6387	orr z80hl,z80hl,#1<<22
6388	fetch 8
6389;@SET 6,(HL)
6390opcode_CB_F6:
6391	opSETmemHL 6
6392;@SET 6,A
6393opcode_CB_F7:
6394	orr z80a,z80a,#1<<30
6395	fetch 8
6396
6397;@SET 7,B
6398opcode_CB_F8:
6399	orr z80bc,z80bc,#1<<31
6400	fetch 8
6401;@SET 7,C
6402opcode_CB_F9:
6403	orr z80bc,z80bc,#1<<23
6404	fetch 8
6405;@SET 7,D
6406opcode_CB_FA:
6407	orr z80de,z80de,#1<<31
6408	fetch 8
6409;@SET 7,E
6410opcode_CB_FB:
6411	orr z80de,z80de,#1<<23
6412	fetch 8
6413;@SET 7,H
6414opcode_CB_FC:
6415	orr z80hl,z80hl,#1<<31
6416	fetch 8
6417;@SET 7,L
6418opcode_CB_FD:
6419	orr z80hl,z80hl,#1<<23
6420	fetch 8
6421;@SET 7,(HL)
6422opcode_CB_FE:
6423	opSETmemHL 7
6424;@SET 7,A
6425opcode_CB_FF:
6426	orr z80a,z80a,#1<<31
6427	fetch 8
6428
6429
6430
6431;@##################################
6432;@##################################
6433;@###  opcodes DD  #########################
6434;@##################################
6435;@##################################
6436;@Because the DD opcodes are not a complete range from 00-FF I have
6437;@created this sub routine that will catch any undocumented ops
6438;@halt the emulator and mov the current instruction to r0
6439;@at a later stage I may change to display a text message on the screen
6440opcode_DD_NF:
6441	eatcycles 4
6442	ldr pc,[opcodes,r0, lsl #2]
6443;@	mov r2,#0x10*4
6444;@	cmp r2,z80xx
6445;@	bne opcode_FD_NF
6446;@	mov r0,#0xDD00
6447;@	orr r0,r0,r1
6448;@	b end_loop
6449;@opcode_FD_NF:
6450;@	mov r0,#0xFD00
6451;@	orr r0,r0,r1
6452;@	b end_loop
6453opcode_DD_NF2:
6454	mov r0,#0xDD0000
6455	orr r0,r0,#0xCB00
6456	orr r0,r0,r1
6457	b end_loop
6458
6459;@ADD IX,BC
6460opcode_DD_09:
6461	ldr r0,[z80xx]
6462	opADD16 r0 z80bc
6463	str r0,[z80xx]
6464	fetch 15
6465;@ADD IX,DE
6466opcode_DD_19:
6467	ldr r0,[z80xx]
6468	opADD16 r0 z80de
6469	str r0,[z80xx]
6470	fetch 15
6471;@LD IX,NN
6472opcode_DD_21:
6473	ldrb r0,[z80pc],#1
6474	ldrb r1,[z80pc],#1
6475	orr r0,r0,r1, lsl #8
6476	strh r0,[z80xx,#2]
6477	fetch 14
6478;@LD (NN),IX
6479opcode_DD_22:
6480	ldrb r0,[z80pc],#1
6481	ldrb r1,[z80pc],#1
6482	orr r1,r0,r1, lsl #8
6483	ldrh r0,[z80xx,#2]
6484	writemem16
6485	fetch 20
6486;@INC IX
6487opcode_DD_23:
6488	ldr r0,[z80xx]
6489	add r0,r0,#1<<16
6490	str r0,[z80xx]
6491	fetch 10
6492;@INC I  (IX)
6493opcode_DD_24:
6494	ldr r0,[z80xx]
6495	opINC8H r0
6496	str r0,[z80xx]
6497	fetch 8
6498;@DEC I  (IX)
6499opcode_DD_25:
6500	ldr r0,[z80xx]
6501	opDEC8H r0
6502	str r0,[z80xx]
6503	fetch 8
6504;@LD I,N  (IX)
6505opcode_DD_26:
6506	ldrb r0,[z80pc],#1
6507	strb r0,[z80xx,#3]
6508	fetch 11
6509;@ADD IX,IX
6510opcode_DD_29:
6511	ldr r0,[z80xx]
6512	opADD16_2 r0
6513	str r0,[z80xx]
6514	fetch 15
6515;@LD IX,(NN)
6516opcode_DD_2A:
6517	ldrb r0,[z80pc],#1
6518	ldrb r1,[z80pc],#1
6519	orr r0,r0,r1, lsl #8
6520	stmfd sp!,{z80xx}
6521	readmem16
6522	ldmfd sp!,{z80xx}
6523	strh r0,[z80xx,#2]
6524	fetch 20
6525;@DEC IX
6526opcode_DD_2B:
6527	ldr r0,[z80xx]
6528	sub r0,r0,#1<<16
6529	str r0,[z80xx]
6530	fetch 10
6531;@INC X  (IX)
6532opcode_DD_2C:
6533	ldr r0,[z80xx]
6534	opINC8L r0
6535	str r0,[z80xx]
6536	fetch 8
6537;@DEC X  (IX)
6538opcode_DD_2D:
6539	ldr r0,[z80xx]
6540	opDEC8L r0
6541	str r0,[z80xx]
6542	fetch 8
6543;@LD X,N  (IX)
6544opcode_DD_2E:
6545	ldrb r0,[z80pc],#1
6546	strb r0,[z80xx,#2]
6547	fetch 11
6548;@INC (IX+N)
6549opcode_DD_34:
6550	ldrsb r0,[z80pc],#1
6551	ldr r1,[z80xx]
6552	add r0,r0,r1, lsr #16
6553	stmfd sp!,{r0}	;@ save addr
6554	readmem8
6555	opINC8b
6556	ldmfd sp!,{r1}	;@ restore addr into r1
6557	writemem8
6558	fetch 23
6559;@DEC (IX+N)
6560opcode_DD_35:
6561	ldrsb r0,[z80pc],#1
6562	ldr r1,[z80xx]
6563	add r0,r0,r1, lsr #16
6564	stmfd sp!,{r0}	;@ save addr
6565	readmem8
6566	opDEC8b
6567	ldmfd sp!,{r1}	;@ restore addr into r1
6568	writemem8
6569	fetch 23
6570;@LD (IX+N),N
6571opcode_DD_36:
6572	ldrsb r2,[z80pc],#1
6573	ldrb r0,[z80pc],#1
6574	ldr r1,[z80xx]
6575	add r1,r2,r1, lsr #16
6576	writemem8
6577	fetch 19
6578;@ADD IX,SP
6579opcode_DD_39:
6580	ldr r0,[z80xx]
6581.if FAST_Z80SP
6582	ldr r2,[cpucontext,#z80sp_base]
6583	sub r2,z80sp,r2
6584	opADD16s r0 r2 16
6585.else
6586	opADD16s r0 z80sp 16
6587.endif
6588	str r0,[z80xx]
6589	fetch 15
6590;@LD B,I ( IX )
6591opcode_DD_44:
6592	ldrb r0,[z80xx,#3]
6593	and z80bc,z80bc,#0xFF<<16
6594	orr z80bc,z80bc,r0, lsl #24
6595	fetch 8
6596;@LD B,X ( IX )
6597opcode_DD_45:
6598	ldrb r0,[z80xx,#2]
6599	and z80bc,z80bc,#0xFF<<16
6600	orr z80bc,z80bc,r0, lsl #24
6601	fetch 8
6602;@LD B,(IX,N)
6603opcode_DD_46:
6604	ldrsb r0,[z80pc],#1
6605	ldr r1,[z80xx]
6606	add r0,r0,r1, lsr #16
6607	readmem8
6608	and z80bc,z80bc,#0xFF<<16
6609	orr z80bc,z80bc,r0, lsl #24
6610	fetch 19
6611;@LD C,I  (IX)
6612opcode_DD_4C:
6613	ldrb r0,[z80xx,#3]
6614	and z80bc,z80bc,#0xFF<<24
6615	orr z80bc,z80bc,r0, lsl #16
6616	fetch 8
6617;@LD C,X  (IX)
6618opcode_DD_4D:
6619	ldrb r0,[z80xx,#2]
6620	and z80bc,z80bc,#0xFF<<24
6621	orr z80bc,z80bc,r0, lsl #16
6622	fetch 8
6623;@LD C,(IX,N)
6624opcode_DD_4E:
6625	ldrsb r0,[z80pc],#1
6626	ldr r1,[z80xx]
6627	add r0,r0,r1, lsr #16
6628	readmem8
6629	and z80bc,z80bc,#0xFF<<24
6630	orr z80bc,z80bc,r0, lsl #16
6631	fetch 19
6632
6633;@LD D,I  (IX)
6634opcode_DD_54:
6635	ldrb r0,[z80xx,#3]
6636	and z80de,z80de,#0xFF<<16
6637	orr z80de,z80de,r0, lsl #24
6638	fetch 8
6639;@LD D,X  (IX)
6640opcode_DD_55:
6641	ldrb r0,[z80xx,#2]
6642	and z80de,z80de,#0xFF<<16
6643	orr z80de,z80de,r0, lsl #24
6644	fetch 8
6645;@LD D,(IX,N)
6646opcode_DD_56:
6647	ldrsb r0,[z80pc],#1
6648	ldr r1,[z80xx]
6649	add r0,r0,r1, lsr #16
6650	readmem8
6651	and z80de,z80de,#0xFF<<16
6652	orr z80de,z80de,r0, lsl #24
6653	fetch 19
6654;@LD E,I  (IX)
6655opcode_DD_5C:
6656	ldrb r0,[z80xx,#3]
6657	and z80de,z80de,#0xFF<<24
6658	orr z80de,z80de,r0, lsl #16
6659	fetch 8
6660;@LD E,X  (IX)
6661opcode_DD_5D:
6662	ldrb r0,[z80xx,#2]
6663	and z80de,z80de,#0xFF<<24
6664	orr z80de,z80de,r0, lsl #16
6665	fetch 8
6666;@LD E,(IX,N)
6667opcode_DD_5E:
6668	ldrsb r0,[z80pc],#1
6669	ldr r1,[z80xx]
6670	add r0,r0,r1, lsr #16
6671	readmem8
6672	and z80de,z80de,#0xFF<<24
6673	orr z80de,z80de,r0, lsl #16
6674	fetch 19
6675;@LD I,B  (IX)
6676opcode_DD_60:
6677	mov r0,z80bc,lsr#24
6678	strb r0,[z80xx,#3]
6679	fetch 8
6680;@LD I,C  (IX)
6681opcode_DD_61:
6682	mov r0,z80bc,lsr#16
6683	strb r0,[z80xx,#3]
6684	fetch 8
6685;@LD I,D  (IX)
6686opcode_DD_62:
6687	mov r0,z80de,lsr#24
6688	strb r0,[z80xx,#3]
6689	fetch 8
6690;@LD I,E  (IX)
6691opcode_DD_63:
6692	mov r0,z80de,lsr#16
6693	strb r0,[z80xx,#3]
6694	fetch 8
6695;@LD I,I  (IX)
6696opcode_DD_64:
6697	fetch 8
6698;@LD I,X  (IX)
6699opcode_DD_65:
6700	ldrb r0,[z80xx,#2]
6701	strb r0,[z80xx,#3]
6702	fetch 8
6703;@LD H,(IX,N)
6704opcode_DD_66:
6705	ldrsb r0,[z80pc],#1
6706	ldr r1,[z80xx]
6707	add r0,r0,r1, lsr #16
6708	readmem8
6709	and z80hl,z80hl,#0xFF<<16
6710	orr z80hl,z80hl,r0, lsl #24
6711	fetch 19
6712;@LD I,A  (IX)
6713opcode_DD_67:
6714	mov r0,z80a,lsr#24
6715	strb r0,[z80xx,#3]
6716	fetch 8
6717;@LD X,B  (IX)
6718opcode_DD_68:
6719	mov r0,z80bc,lsr#24
6720	strb r0,[z80xx,#2]
6721	fetch 8
6722;@LD X,C  (IX)
6723opcode_DD_69:
6724	mov r0,z80bc,lsr#16
6725	strb r0,[z80xx,#2]
6726	fetch 8
6727;@LD X,D  (IX)
6728opcode_DD_6A:
6729	mov r0,z80de,lsr#24
6730	strb r0,[z80xx,#2]
6731	fetch 8
6732;@LD X,E  (IX)
6733opcode_DD_6B:
6734	mov r0,z80de,lsr#16
6735	strb r0,[z80xx,#2]
6736	fetch 8
6737;@LD X,I  (IX)
6738opcode_DD_6C:
6739	ldrb r0,[z80xx,#3]
6740	strb r0,[z80xx,#2]
6741	fetch 8
6742;@LD X,X  (IX)
6743opcode_DD_6D:
6744	fetch 8
6745;@LD L,(IX,N)
6746opcode_DD_6E:
6747	ldrsb r0,[z80pc],#1
6748	ldr r1,[z80xx]
6749	add r0,r0,r1, lsr #16
6750	readmem8
6751	and z80hl,z80hl,#0xFF<<24
6752	orr z80hl,z80hl,r0, lsl #16
6753	fetch 19
6754;@LD X,A  (IX)
6755opcode_DD_6F:
6756	mov r0,z80a,lsr#24
6757	strb r0,[z80xx,#2]
6758	fetch 8
6759
6760;@LD (IX,N),B
6761opcode_DD_70:
6762	ldrsb r0,[z80pc],#1
6763	ldr r1,[z80xx]
6764	add r1,r0,r1, lsr #16
6765	mov r0,z80bc, lsr #24
6766	writemem8
6767	fetch 19
6768;@LD (IX,N),C
6769opcode_DD_71:
6770	ldrsb r0,[z80pc],#1
6771	ldr r1,[z80xx]
6772	add r1,r0,r1, lsr #16
6773	mov r0,z80bc, lsr #16
6774	and r0,r0,#0xFF
6775	writemem8
6776	fetch 19
6777;@LD (IX,N),D
6778opcode_DD_72:
6779	ldrsb r0,[z80pc],#1
6780	ldr r1,[z80xx]
6781	add r1,r0,r1, lsr #16
6782	mov r0,z80de, lsr #24
6783	writemem8
6784	fetch 19
6785;@LD (IX,N),E
6786opcode_DD_73:
6787	ldrsb r0,[z80pc],#1
6788	ldr r1,[z80xx]
6789	add r1,r0,r1, lsr #16
6790	mov r0,z80de, lsr #16
6791	and r0,r0,#0xFF
6792	writemem8
6793	fetch 19
6794;@LD (IX,N),H
6795opcode_DD_74:
6796	ldrsb r0,[z80pc],#1
6797	ldr r1,[z80xx]
6798	add r1,r0,r1, lsr #16
6799	mov r0,z80hl, lsr #24
6800	writemem8
6801	fetch 19
6802;@LD (IX,N),L
6803opcode_DD_75:
6804	ldrsb r0,[z80pc],#1
6805	ldr r1,[z80xx]
6806	add r1,r0,r1, lsr #16
6807	mov r0,z80hl, lsr #16
6808	and r0,r0,#0xFF
6809	writemem8
6810	fetch 19
6811;@LD (IX,N),A
6812opcode_DD_77:
6813	ldrsb r0,[z80pc],#1
6814	ldr r1,[z80xx]
6815	add r1,r0,r1, lsr #16
6816	mov r0,z80a, lsr #24
6817	writemem8
6818	fetch 19
6819
6820;@LD A,I  from (IX)
6821opcode_DD_7C:
6822	ldrb r0,[z80xx,#3]
6823	mov z80a,r0, lsl #24
6824	fetch 8
6825;@LD A,X  from (IX)
6826opcode_DD_7D:
6827	ldrb r0,[z80xx,#2]
6828	mov z80a,r0, lsl #24
6829	fetch 8
6830;@LD A,(IX,N)
6831opcode_DD_7E:
6832	ldrsb r0,[z80pc],#1
6833	ldr r1,[z80xx]
6834	add r0,r0,r1, lsr #16
6835	readmem8
6836	mov z80a,r0, lsl #24
6837	fetch 19
6838
6839;@ADD A,I  ( IX)
6840opcode_DD_84:
6841	ldrb r0,[z80xx,#3]
6842	opADDb
6843	fetch 8
6844;@ADD A,X  ( IX)
6845opcode_DD_85:
6846	ldrb r0,[z80xx,#2]
6847	opADDb
6848	fetch 8
6849;@ADD A,(IX+N)
6850opcode_DD_86:
6851	ldrsb r0,[z80pc],#1
6852	ldr r1,[z80xx]
6853	add r0,r0,r1, lsr #16
6854	readmem8
6855	opADDb
6856	fetch 19
6857
6858;@ADC A,I  (IX)
6859opcode_DD_8C:
6860	ldrb r0,[z80xx,#3]
6861	opADCb
6862	fetch 8
6863;@ADC A,X  (IX)
6864opcode_DD_8D:
6865	ldrb r0,[z80xx,#2]
6866	opADCb
6867	fetch 8
6868;@ADC A,(IX+N)
6869opcode_DD_8E:
6870	ldrsb r0,[z80pc],#1
6871	ldr r1,[z80xx]
6872	add r0,r0,r1, lsr #16
6873	readmem8
6874	opADCb
6875	fetch 19
6876
6877;@SUB A,I  (IX)
6878opcode_DD_94:
6879	ldrb r0,[z80xx,#3]
6880	opSUBb
6881	fetch 8
6882;@SUB A,X  (IX)
6883opcode_DD_95:
6884	ldrb r0,[z80xx,#2]
6885	opSUBb
6886	fetch 8
6887;@SUB A,(IX+N)
6888opcode_DD_96:
6889	ldrsb r0,[z80pc],#1
6890	ldr r1,[z80xx]
6891	add r0,r0,r1, lsr #16
6892	readmem8
6893	opSUBb
6894	fetch 19
6895
6896;@SBC A,I  (IX)
6897opcode_DD_9C:
6898	ldrb r0,[z80xx,#3]
6899	opSBCb
6900	fetch 8
6901;@SBC A,X  (IX)
6902opcode_DD_9D:
6903	ldrb r0,[z80xx,#2]
6904	opSBCb
6905	fetch 8
6906;@SBC A,(IX+N)
6907opcode_DD_9E:
6908	ldrsb r0,[z80pc],#1
6909	ldr r1,[z80xx]
6910	add r0,r0,r1, lsr #16
6911	readmem8
6912	opSBCb
6913	fetch 19
6914
6915;@AND I  (IX)
6916opcode_DD_A4:
6917	ldrb r0,[z80xx,#3]
6918	opANDb
6919	fetch 8
6920;@AND X  (IX)
6921opcode_DD_A5:
6922	ldrb r0,[z80xx,#2]
6923	opANDb
6924	fetch 8
6925;@AND (IX+N)
6926opcode_DD_A6:
6927	ldrsb r0,[z80pc],#1
6928	ldr r1,[z80xx]
6929	add r0,r0,r1, lsr #16
6930	readmem8
6931	opANDb
6932	fetch 19
6933
6934;@XOR I  (IX)
6935opcode_DD_AC:
6936	ldrb r0,[z80xx,#3]
6937	opXORb
6938	fetch 8
6939;@XOR X  (IX)
6940opcode_DD_AD:
6941	ldrb r0,[z80xx,#2]
6942	opXORb
6943	fetch 8
6944;@XOR (IX+N)
6945opcode_DD_AE:
6946	ldrsb r0,[z80pc],#1
6947	ldr r1,[z80xx]
6948	add r0,r0,r1, lsr #16
6949	readmem8
6950	opXORb
6951	fetch 19
6952
6953;@OR I  (IX)
6954opcode_DD_B4:
6955	ldrb r0,[z80xx,#3]
6956	opORb
6957	fetch 8
6958;@OR X  (IX)
6959opcode_DD_B5:
6960	ldrb r0,[z80xx,#2]
6961	opORb
6962	fetch 8
6963;@OR (IX+N)
6964opcode_DD_B6:
6965	ldrsb r0,[z80pc],#1
6966	ldr r1,[z80xx]
6967	add r0,r0,r1, lsr #16
6968	readmem8
6969	opORb
6970	fetch 19
6971
6972;@CP I  (IX)
6973opcode_DD_BC:
6974	ldrb r0,[z80xx,#3]
6975	opCPb
6976	fetch 8
6977;@CP X  (IX)
6978opcode_DD_BD:
6979	ldrb r0,[z80xx,#2]
6980	opCPb
6981	fetch 8
6982;@CP (IX+N)
6983opcode_DD_BE:
6984	ldrsb r0,[z80pc],#1
6985	ldr r1,[z80xx]
6986	add r0,r0,r1, lsr #16
6987	readmem8
6988	opCPb
6989	fetch 19
6990
6991
6992opcodes_DD_CB_LOCAL: .word opcodes_DD_CB
6993opcode_DD_CB:
6994;@Looks up the opcode on the opcodes_DD_CB table and then
6995;@moves the PC to the location of the subroutine
6996	ldrsb r0,[z80pc],#1
6997	ldr r1,[z80xx]
6998	add r0,r0,r1, lsr #16
6999
7000	ldrb r1,[z80pc],#1
7001	ldr pc,[pc,r1, lsl #2]
7002		.word 0x00
7003opcodes_DD_CB:
7004		.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
7005		.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
7006		.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
7007		.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
7008		.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
7009		.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
7010		.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
7011		.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
7012		.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
7013		.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
7014		.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
7015		.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
7016		.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
7017		.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
7018		.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
7019		.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
7020		.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
7021		.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
7022		.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
7023		.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
7024		.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
7025		.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
7026		.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
7027		.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
7028		.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
7029		.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
7030		.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
7031		.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
7032		.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
7033		.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
7034		.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
7035		.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
7036
7037;@RLC (IX+N)
7038opcode_DD_CB_06:
7039	stmfd sp!,{r0}		;@ save addr
7040	readmem8
7041	opRLCb
7042	ldmfd sp!,{r1}		;@ restore addr into r1
7043	writemem8
7044	fetch 23
7045;@RRC (IX+N)
7046opcode_DD_CB_0E:
7047	stmfd sp!,{r0}		;@ save addr
7048	readmem8
7049	opRRCb
7050	ldmfd sp!,{r1}		;@ restore addr into r1
7051	writemem8
7052	fetch 23
7053;@RL (IX+N)
7054opcode_DD_CB_16:
7055	stmfd sp!,{r0}		;@ save addr
7056	readmem8
7057	opRLb
7058	ldmfd sp!,{r1}		;@ restore addr into r1
7059	writemem8
7060	fetch 23
7061;@RR (IX+N)
7062opcode_DD_CB_1E:
7063	stmfd sp!,{r0}		;@ save addr
7064	readmem8
7065	opRRb
7066	ldmfd sp!,{r1}		;@ restore addr into r1
7067	writemem8
7068	fetch 23
7069
7070;@SLA (IX+N)
7071opcode_DD_CB_26:
7072	stmfd sp!,{r0}		;@ save addr
7073	readmem8
7074	opSLAb
7075	ldmfd sp!,{r1}		;@ restore addr into r1
7076	writemem8
7077	fetch 23
7078;@SRA (IX+N)
7079opcode_DD_CB_2E:
7080	stmfd sp!,{r0}		;@ save addr
7081	readmem8
7082	opSRAb
7083	ldmfd sp!,{r1}		;@ restore addr into r1
7084	writemem8
7085	fetch 23
7086;@SLL (IX+N)
7087opcode_DD_CB_36:
7088	stmfd sp!,{r0}		;@ save addr
7089	readmem8
7090	opSLLb
7091	ldmfd sp!,{r1}		;@ restore addr into r1
7092	writemem8
7093	fetch 23
7094;@SRL (IX+N)
7095opcode_DD_CB_3E:
7096	stmfd sp!,{r0}		;@ save addr
7097	readmem8
7098	opSRLb
7099	ldmfd sp!,{r1}		;@ restore addr into r1
7100	writemem8
7101	fetch 23
7102
7103;@BIT 0,(IX+N)
7104opcode_DD_CB_46:
7105	readmem8
7106	opBITb 0
7107	fetch 20
7108;@BIT 1,(IX+N)
7109opcode_DD_CB_4E:
7110	readmem8
7111	opBITb 1
7112	fetch 20
7113;@BIT 2,(IX+N)
7114opcode_DD_CB_56:
7115	readmem8
7116	opBITb 2
7117	fetch 20
7118;@BIT 3,(IX+N)
7119opcode_DD_CB_5E:
7120	readmem8
7121	opBITb 3
7122	fetch 20
7123;@BIT 4,(IX+N)
7124opcode_DD_CB_66:
7125	readmem8
7126	opBITb 4
7127	fetch 20
7128;@BIT 5,(IX+N)
7129opcode_DD_CB_6E:
7130	readmem8
7131	opBITb 5
7132	fetch 20
7133;@BIT 6,(IX+N)
7134opcode_DD_CB_76:
7135	readmem8
7136	opBITb 6
7137	fetch 20
7138;@BIT 7,(IX+N)
7139opcode_DD_CB_7E:
7140	readmem8
7141	opBIT7b
7142	fetch 20
7143;@RES 0,(IX+N)
7144opcode_DD_CB_86:
7145	opRESmem 0
7146;@RES 1,(IX+N)
7147opcode_DD_CB_8E:
7148	opRESmem 1
7149;@RES 2,(IX+N)
7150opcode_DD_CB_96:
7151	opRESmem 2
7152;@RES 3,(IX+N)
7153opcode_DD_CB_9E:
7154	opRESmem 3
7155;@RES 4,(IX+N)
7156opcode_DD_CB_A6:
7157	opRESmem 4
7158;@RES 5,(IX+N)
7159opcode_DD_CB_AE:
7160	opRESmem 5
7161;@RES 6,(IX+N)
7162opcode_DD_CB_B6:
7163	opRESmem 6
7164;@RES 7,(IX+N)
7165opcode_DD_CB_BE:
7166	opRESmem 7
7167
7168;@SET 0,(IX+N)
7169opcode_DD_CB_C6:
7170	opSETmem 0
7171;@SET 1,(IX+N)
7172opcode_DD_CB_CE:
7173	opSETmem 1
7174;@SET 2,(IX+N)
7175opcode_DD_CB_D6:
7176	opSETmem 2
7177;@SET 3,(IX+N)
7178opcode_DD_CB_DE:
7179	opSETmem 3
7180;@SET 4,(IX+N)
7181opcode_DD_CB_E6:
7182	opSETmem 4
7183;@SET 5,(IX+N)
7184opcode_DD_CB_EE:
7185	opSETmem 5
7186;@SET 6,(IX+N)
7187opcode_DD_CB_F6:
7188	opSETmem 6
7189;@SET 7,(IX+N)
7190opcode_DD_CB_FE:
7191	opSETmem 7
7192
7193
7194
7195;@POP IX
7196opcode_DD_E1:
7197.if FAST_Z80SP
7198	ldrb r0,[z80sp],#1
7199	ldrb r1,[z80sp],#1
7200	orr r0,r0,r1, lsl #8
7201.else
7202	mov r0,z80sp
7203	stmfd sp!,{z80xx}
7204	readmem16
7205	ldmfd sp!,{z80xx}
7206	add z80sp,z80sp,#2
7207.endif
7208	strh r0,[z80xx,#2]
7209	fetch 14
7210;@EX (SP),IX
7211opcode_DD_E3:
7212.if FAST_Z80SP
7213	ldrb r0,[z80sp]
7214	ldrb r1,[z80sp,#1]
7215	orr r2,r0,r1, lsl #8
7216	ldrh r1,[z80xx,#2]
7217	mov r0,r1, lsr #8
7218	strb r0,[z80sp,#1]
7219	strb r1,[z80sp]
7220	strh r2,[z80xx,#2]
7221.else
7222	mov r0,z80sp
7223	stmfd sp!,{z80xx}
7224	readmem16
7225	ldmfd sp!,{z80xx}
7226	mov r2,r0
7227	ldrh r0,[z80xx,#2]
7228	strh r2,[z80xx,#2]
7229	mov r1,z80sp
7230	writemem16
7231.endif
7232	fetch 23
7233;@PUSH IX
7234opcode_DD_E5:
7235	ldr r0,[z80xx]
7236	opPUSHreg r0
7237	fetch 15
7238;@JP (IX)
7239opcode_DD_E9:
7240	ldrh r0,[z80xx,#2]
7241	rebasepc
7242	fetch 8
7243;@LD SP,IX
7244opcode_DD_F9:
7245.if FAST_Z80SP
7246	ldrh r0,[z80xx,#2]
7247	rebasesp
7248	;@mov z80sp,r0
7249.else
7250	ldrh z80sp,[z80xx,#2]
7251.endif
7252	fetch 10
7253
7254;@##################################
7255;@##################################
7256;@###  opcodes ED  #########################
7257;@##################################
7258;@##################################
7259
7260opcode_ED_NF:
7261	fetch 8
7262;@	ldrb r0,[z80pc],#1
7263;@	ldr pc,[opcodes,r0, lsl #2]
7264;@	mov r0,#0xED00
7265;@	orr r0,r0,r1
7266;@	b end_loop
7267
7268;@IN B,(C)
7269opcode_ED_40:
7270	opIN_C
7271	and z80bc,z80bc,#0xFF<<16
7272	orr z80bc,z80bc,r0, lsl #24
7273	sub r1,opcodes,#0x100
7274	ldrb r0,[r1,r0]
7275	and z80f,z80f,#1<<CFlag
7276	orr z80f,z80f,r0
7277	fetch 12
7278;@OUT (C),B
7279opcode_ED_41:
7280	mov r1,z80bc, lsr #24
7281	opOUT_C
7282	fetch 12
7283
7284;@SBC HL,BC
7285opcode_ED_42:
7286	opSBC16 z80bc
7287
7288;@LD (NN),BC
7289opcode_ED_43:
7290	ldrb r0,[z80pc],#1
7291	ldrb r1,[z80pc],#1
7292	orr r1,r0,r1, lsl #8
7293	mov r0,z80bc, lsr #16
7294	writemem16
7295	fetch 20
7296;@NEG
7297opcode_ED_44:
7298	rsbs z80a,z80a,#0
7299	mrs z80f,cpsr
7300	mov z80f,z80f,lsr#28					;@S,Z,V&C
7301	eor z80f,z80f,#(1<<CFlag)|(1<<NFlag)	;@invert C and set n.
7302	tst z80a,#0x0F000000					;@H, correct
7303	orrne z80f,z80f,#1<<HFlag
7304	fetch 8
7305
7306;@RETN, moved to ED_4D
7307;@opcode_ED_45:
7308
7309;@IM 0
7310opcode_ED_46:
7311	strb z80a,[cpucontext,#z80im]			;@zero IM
7312	fetch 8
7313;@LD I,A
7314opcode_ED_47:
7315	str z80a,[cpucontext,#z80i]
7316	fetch 9
7317;@IN C,(C)
7318opcode_ED_48:
7319	opIN_C
7320	and z80bc,z80bc,#0xFF<<24
7321	orr z80bc,z80bc,r0, lsl #16
7322	sub r1,opcodes,#0x100
7323	ldrb r0,[r1,r0]
7324	and z80f,z80f,#1<<CFlag
7325	orr z80f,z80f,r0
7326	fetch 12
7327;@OUT (C),C
7328opcode_ED_49:
7329	mov r0,z80bc, lsr #16
7330	and r1,r0,#0xFF
7331	opOUT
7332	fetch 12
7333;@ADC HL,BC
7334opcode_ED_4A:
7335	opADC16 z80bc
7336;@LD BC,(NN)
7337opcode_ED_4B:
7338	ldrb r0,[z80pc],#1
7339	ldrb r1,[z80pc],#1
7340	orr r0,r0,r1, lsl #8
7341	readmem16
7342	mov z80bc,r0, lsl #16
7343	fetch 20
7344
7345;@RETN
7346opcode_ED_45:
7347;@RETI
7348opcode_ED_4D:
7349	ldrb r0,[cpucontext,#z80if]
7350	tst r0,#Z80_IF2
7351	orrne r0,r0,#Z80_IF1
7352	biceq r0,r0,#Z80_IF1
7353	strb r0,[cpucontext,#z80if]
7354.if FAST_Z80SP
7355	ldrb r0,[z80sp],#1
7356	ldrb r1,[z80sp],#1
7357	orr r0,r0,r1, lsl #8
7358.else
7359	mov r0,z80sp
7360	readmem16
7361	add z80sp,z80sp,#2
7362.endif
7363	rebasepc
7364	fetch 14
7365
7366;@LD R,A
7367opcode_ED_4F:
7368	mov r0,z80a,lsr#24
7369	strb r0,[cpucontext,#z80r]
7370	fetch 9
7371
7372;@IN D,(C)
7373opcode_ED_50:
7374	opIN_C
7375	and z80de,z80de,#0xFF<<16
7376	orr z80de,z80de,r0, lsl #24
7377	sub r1,opcodes,#0x100
7378	ldrb r0,[r1,r0]
7379	and z80f,z80f,#1<<CFlag
7380	orr z80f,z80f,r0
7381	fetch 12
7382;@OUT (C),D
7383opcode_ED_51:
7384	mov r1,z80de, lsr #24
7385	opOUT_C
7386	fetch 12
7387;@SBC HL,DE
7388opcode_ED_52:
7389	opSBC16 z80de
7390;@LD (NN),DE
7391opcode_ED_53:
7392	ldrb r0,[z80pc],#1
7393	ldrb r1,[z80pc],#1
7394	orr r1,r0,r1, lsl #8
7395	mov r0,z80de, lsr #16
7396	writemem16
7397	fetch 20
7398;@IM 1
7399opcode_ED_56:
7400	mov r0,#1
7401	strb r0,[cpucontext,#z80im]
7402	fetch 8
7403;@LD A,I
7404opcode_ED_57:
7405	ldr z80a,[cpucontext,#z80i]
7406	tst z80a,#0xFF000000
7407	and z80f,z80f,#(1<<CFlag)
7408	orreq z80f,z80f,#(1<<ZFlag)
7409	orrmi z80f,z80f,#(1<<SFlag)
7410	ldrb r0,[cpucontext,#z80if]
7411	tst r0,#Z80_IF2
7412	orrne z80f,z80f,#(1<<VFlag)
7413	fetch 9
7414;@IN E,(C)
7415opcode_ED_58:
7416	opIN_C
7417	and z80de,z80de,#0xFF<<24
7418	orr z80de,z80de,r0, lsl #16
7419	sub r1,opcodes,#0x100
7420	ldrb r0,[r1,r0]
7421	and z80f,z80f,#1<<CFlag
7422	orr z80f,z80f,r0
7423	fetch 12
7424;@OUT (C),E
7425opcode_ED_59:
7426	mov r1,z80de, lsr #16
7427	and r1,r1,#0xFF
7428	opOUT_C
7429	fetch 12
7430;@ADC HL,DE
7431opcode_ED_5A:
7432	opADC16 z80de
7433;@LD DE,(NN)
7434opcode_ED_5B:
7435	ldrb r0,[z80pc],#1
7436	ldrb r1,[z80pc],#1
7437	orr r0,r0,r1, lsl #8
7438	readmem16
7439	mov z80de,r0, lsl #16
7440	fetch 20
7441;@IM 2
7442opcode_ED_5E:
7443	mov r0,#2
7444	strb r0,[cpucontext,#z80im]
7445	fetch 8
7446;@LD A,R
7447opcode_ED_5F:
7448	ldrb r0,[cpucontext,#z80r]
7449	and r0,r0,#0x80
7450	rsb r1,z80_icount,#0
7451	and r1,r1,#0x7F
7452	orr r0,r0,r1
7453	movs z80a,r0, lsl #24
7454	and z80f,z80f,#1<<CFlag
7455	orrmi z80f,z80f,#(1<<SFlag)
7456	orreq z80f,z80f,#(1<<ZFlag)
7457	ldrb r0,[cpucontext,#z80if]
7458	tst r0,#Z80_IF2
7459	orrne z80f,z80f,#(1<<VFlag)
7460	fetch 9
7461;@IN H,(C)
7462opcode_ED_60:
7463	opIN_C
7464	and z80hl,z80hl,#0xFF<<16
7465	orr z80hl,z80hl,r0, lsl #24
7466	sub r1,opcodes,#0x100
7467	ldrb r0,[r1,r0]
7468	and z80f,z80f,#1<<CFlag
7469	orr z80f,z80f,r0
7470	fetch 12
7471;@OUT (C),H
7472opcode_ED_61:
7473	mov r1,z80hl, lsr #24
7474	opOUT_C
7475	fetch 12
7476;@SBC HL,HL
7477opcode_ED_62:
7478	opSBC16HL
7479;@RRD
7480opcode_ED_67:
7481	readmem8HL
7482	mov r1,r0,ror#4
7483	orr r0,r1,z80a,lsr#20
7484	bic z80a,z80a,#0x0F000000
7485	orr z80a,z80a,r1,lsr#4
7486	writemem8HL
7487	sub r1,opcodes,#0x100
7488	ldrb r0,[r1,z80a, lsr #24]
7489	and z80f,z80f,#1<<CFlag
7490	orr z80f,z80f,r0
7491	fetch 18
7492;@IN L,(C)
7493opcode_ED_68:
7494	opIN_C
7495	and z80hl,z80hl,#0xFF<<24
7496	orr z80hl,z80hl,r0, lsl #16
7497	and z80f,z80f,#1<<CFlag
7498	sub r1,opcodes,#0x100
7499	ldrb r0,[r1,r0]
7500	orr z80f,z80f,r0
7501	fetch 12
7502;@OUT (C),L
7503opcode_ED_69:
7504	mov r1,z80hl, lsr #16
7505	and r1,r1,#0xFF
7506	opOUT_C
7507	fetch 12
7508;@ADC HL,HL
7509opcode_ED_6A:
7510	opADC16HL
7511;@RLD
7512opcode_ED_6F:
7513	readmem8HL
7514	orr r0,r0,z80a,lsl#4
7515	mov r0,r0,ror#28
7516	and z80a,z80a,#0xF0000000
7517	orr z80a,z80a,r0,lsl#16
7518	and z80a,z80a,#0xFF000000
7519	writemem8HL
7520	sub r1,opcodes,#0x100
7521	ldrb r0,[r1,z80a, lsr #24]
7522	and z80f,z80f,#1<<CFlag
7523	orr z80f,z80f,r0
7524	fetch 18
7525;@IN F,(C)
7526opcode_ED_70:
7527	opIN_C
7528	and z80f,z80f,#1<<CFlag
7529	sub r1,opcodes,#0x100
7530	ldrb r0,[r1,r0]
7531	orr z80f,z80f,r0
7532	fetch 12
7533;@OUT (C),0
7534opcode_ED_71:
7535	mov r1,#0
7536	opOUT_C
7537	fetch 12
7538
7539;@SBC HL,SP
7540opcode_ED_72:
7541.if FAST_Z80SP
7542	ldr r0,[cpucontext,#z80sp_base]
7543	sub r0,z80sp,r0
7544	mov r0, r0, lsl #16
7545.else
7546	mov r0,z80sp,lsl#16
7547.endif
7548	opSBC16 r0
7549;@LD (NN),SP
7550opcode_ED_73:
7551	ldrb r0,[z80pc],#1
7552	ldrb r1,[z80pc],#1
7553	orr r1,r0,r1, lsl #8
7554.if FAST_Z80SP
7555	ldr r0,[cpucontext,#z80sp_base]
7556	sub r0,z80sp,r0
7557.else
7558	mov r0,z80sp
7559.endif
7560	writemem16
7561	fetch 16
7562;@IN A,(C)
7563opcode_ED_78:
7564	opIN_C
7565	mov z80a,r0, lsl #24
7566	and z80f,z80f,#1<<CFlag
7567	sub r1,opcodes,#0x100
7568	ldrb r0,[r1,r0]
7569	orr z80f,z80f,r0
7570	fetch 12
7571;@OUT (C),A
7572opcode_ED_79:
7573	mov r1,z80a, lsr #24
7574	opOUT_C
7575	fetch 12
7576;@ADC HL,SP
7577opcode_ED_7A:
7578.if FAST_Z80SP
7579	ldr r0,[cpucontext,#z80sp_base]
7580	sub r0,z80sp,r0
7581	mov r0, r0, lsl #16
7582.else
7583	mov r0,z80sp,lsl#16
7584.endif
7585	opADC16 r0
7586;@LD SP,(NN)
7587opcode_ED_7B:
7588	ldrb r0,[z80pc],#1
7589	ldrb r1,[z80pc],#1
7590	orr r0,r0,r1, lsl #8
7591	readmem16
7592.if FAST_Z80SP
7593	rebasesp
7594.else
7595	mov z80sp,r0
7596.endif
7597	fetch 20
7598;@LDI
7599opcode_ED_A0:
7600	copymem8HL_DE
7601	add z80hl,z80hl,#1<<16
7602	add z80de,z80de,#1<<16
7603	subs z80bc,z80bc,#1<<16
7604	bic z80f,z80f,#(1<<VFlag)|(1<<NFlag)|(1<<HFlag)
7605	orrne z80f,z80f,#1<<VFlag
7606	fetch 16
7607;@CPI
7608opcode_ED_A1:
7609	readmem8HL
7610	add z80hl,z80hl,#0x00010000
7611	mov r1,z80a,lsl#4
7612	cmp z80a,r0,lsl#24
7613	and z80f,z80f,#1<<CFlag
7614	orr z80f,z80f,#1<<NFlag
7615	orrmi z80f,z80f,#1<<SFlag
7616	orreq z80f,z80f,#1<<ZFlag
7617	cmp r1,r0,lsl#28
7618	orrcc z80f,z80f,#1<<HFlag
7619	subs z80bc,z80bc,#0x00010000
7620	orrne z80f,z80f,#1<<VFlag
7621	fetch 16
7622;@INI
7623opcode_ED_A2:
7624	opIN_C
7625	and z80f,r0,#0x80
7626	mov z80f,z80f,lsr#2						;@NFlag set by bit 7
7627;@	mov r1,z80bc,lsl#8
7628;@	add r1,r1,#0x01000000
7629;@	adds r1,r1,r0,lsl#24
7630;@	orrcs z80f,z80f,#(1<<CFlag)|(1<<HFlag)	;@ CF & HF set if (HL) + ((C+1) & 0xFF) > 0xFF
7631	writemem8HL
7632	add z80hl,z80hl,#1<<16
7633	sub z80bc,z80bc,#1<<24
7634	tst z80bc,#0xFF<<24
7635	orrmi z80f,z80f,#1<<SFlag
7636	orreq z80f,z80f,#1<<ZFlag
7637	fetch 16
7638
7639;@OUTI
7640opcode_ED_A3:
7641	readmem8HL
7642	add z80hl,z80hl,#1<<16
7643	and z80f,r0,#0x80
7644	mov z80f,z80f,lsr#2						;@NFlag set by bit 7
7645	mov r1,z80hl,lsl#8
7646	adds r1,r1,r0,lsl#24
7647	orrcs z80f,z80f,#(1<<CFlag)|(1<<HFlag)	;@ CF & HF set if (HL)+L > 0xFF
7648	sub z80bc,z80bc,#1<<24
7649	tst z80bc,#0xFF<<24
7650	orrmi z80f,z80f,#1<<SFlag
7651	orreq z80f,z80f,#1<<ZFlag
7652	mov r1,r0
7653	opOUT_C
7654	fetch 16
7655
7656;@LDD
7657opcode_ED_A8:
7658	copymem8HL_DE
7659	sub z80hl,z80hl,#1<<16
7660	sub z80de,z80de,#1<<16
7661	subs z80bc,z80bc,#1<<16
7662	bic z80f,z80f,#(1<<VFlag)|(1<<NFlag)|(1<<HFlag)
7663	orrne z80f,z80f,#1<<VFlag
7664	fetch 16
7665
7666;@CPD
7667opcode_ED_A9:
7668	readmem8HL
7669	sub z80hl,z80hl,#1<<16
7670	mov r1,z80a,lsl#4
7671	cmp z80a,r0,lsl#24
7672	and z80f,z80f,#1<<CFlag
7673	orr z80f,z80f,#1<<NFlag
7674	orrmi z80f,z80f,#1<<SFlag
7675	orreq z80f,z80f,#1<<ZFlag
7676	cmp r1,r0,lsl#28
7677	orrcc z80f,z80f,#1<<HFlag
7678	subs z80bc,z80bc,#0x00010000
7679	orrne z80f,z80f,#1<<VFlag
7680	fetch 16
7681
7682;@IND
7683opcode_ED_AA:
7684	opIN_C
7685	and z80f,r0,#0x80
7686	mov z80f,z80f,lsr#2						;@NFlag set by bit 7
7687;@	mov r1,z80bc,lsl#8
7688;@	sub r1,r1,#0x01000000
7689;@	adds r1,r1,r0,lsl#24
7690;@	orrcs z80f,z80f,#(1<<CFlag)|(1<<HFlag)	;@ CF & HF set if (HL) + ((C-1) & 0xFF) > 0xFF
7691	writemem8HL
7692	sub z80hl,z80hl,#1<<16
7693	sub z80bc,z80bc,#1<<24
7694	tst z80bc,#0xFF<<24
7695	orrmi z80f,z80f,#1<<SFlag
7696	orreq z80f,z80f,#1<<ZFlag
7697	fetch 16
7698
7699;@OUTD
7700opcode_ED_AB:
7701	readmem8HL
7702	sub z80hl,z80hl,#1<<16
7703	and z80f,r0,#0x80
7704	mov z80f,z80f,lsr#2						;@NFlag set by bit 7
7705	mov r1,z80hl,lsl#8
7706	adds r1,r1,r0,lsl#24
7707	orrcs z80f,z80f,#(1<<CFlag)|(1<<HFlag)	;@ CF & HF set if r0+HL > 0xFF
7708	sub z80bc,z80bc,#1<<24
7709	tst z80bc,#0xFF<<24
7710	orrmi z80f,z80f,#1<<SFlag
7711	orreq z80f,z80f,#1<<ZFlag
7712	mov r1,r0
7713	opOUT_C
7714	fetch 16
7715;@LDIR
7716opcode_ED_B0:
7717	copymem8HL_DE
7718	add z80hl,z80hl,#1<<16
7719	add z80de,z80de,#1<<16
7720	subs z80bc,z80bc,#1<<16
7721	bic z80f,z80f,#(1<<VFlag)|(1<<NFlag)|(1<<HFlag)
7722	orrne z80f,z80f,#1<<VFlag
7723	subne z80pc,z80pc,#2
7724	subne z80_icount,z80_icount,#5
7725	fetch 16
7726
7727;@CPIR
7728opcode_ED_B1:
7729	readmem8HL
7730	add z80hl,z80hl,#1<<16
7731	mov r1,z80a,lsl#4
7732	cmp z80a,r0,lsl#24
7733	and z80f,z80f,#1<<CFlag
7734	orr z80f,z80f,#1<<NFlag
7735	orrmi z80f,z80f,#1<<SFlag
7736	orreq z80f,z80f,#1<<ZFlag
7737	cmp r1,r0,lsl#28
7738	orrcc z80f,z80f,#1<<HFlag
7739	subs z80bc,z80bc,#1<<16
7740	bne opcode_ED_B1_decpc
7741	fetch 16
7742opcode_ED_B1_decpc:
7743	orr z80f,z80f,#1<<VFlag
7744	tst z80f,#1<<ZFlag
7745	subeq z80pc,z80pc,#2
7746	subeq z80_icount,z80_icount,#5
7747	fetch 16
7748;@INIR
7749opcode_ED_B2:
7750	opIN_C
7751	and z80f,r0,#0x80
7752	mov z80f,z80f,lsr#2						;@NFlag set by bit 7
7753;@	mov r1,z80bc,lsl#8
7754;@	add r1,r1,#0x01000000
7755;@	adds r1,r1,r0,lsl#24
7756;@	orrcs z80f,z80f,#(1<<CFlag)|(1<<HFlag)	;@ CF & HF set if (HL) + ((C+1) & 0xFF) > 0xFF
7757	writemem8HL
7758	add z80hl,z80hl,#1<<16
7759	sub z80bc,z80bc,#1<<24
7760	tst z80bc,#0xFF<<24
7761	orrmi z80f,z80f,#1<<SFlag
7762	orreq z80f,z80f,#1<<ZFlag
7763	subne z80pc,z80pc,#2
7764	subne z80_icount,z80_icount,#5
7765	fetch 16
7766;@OTIR
7767opcode_ED_B3:
7768	readmem8HL
7769	add z80hl,z80hl,#1<<16
7770	and z80f,r0,#0x80
7771	mov z80f,z80f,lsr#2						;@NFlag set by bit 7
7772	mov r1,z80hl,lsl#8
7773	adds r1,r1,r0,lsl#24
7774	orrcs z80f,z80f,#(1<<CFlag)|(1<<HFlag)	;@ CF & HF set if r0+HL > 0xFF
7775	sub z80bc,z80bc,#1<<24
7776	tst z80bc,#0xFF<<24
7777	orrmi z80f,z80f,#1<<SFlag
7778	orreq z80f,z80f,#1<<ZFlag
7779	subne z80pc,z80pc,#2
7780	subne z80_icount,z80_icount,#5
7781	mov r1,r0
7782	opOUT_C
7783	fetch 16
7784;@LDDR
7785opcode_ED_B8:
7786	copymem8HL_DE
7787	sub z80hl,z80hl,#1<<16
7788	sub z80de,z80de,#1<<16
7789	subs z80bc,z80bc,#1<<16
7790	bic z80f,z80f,#(1<<VFlag)|(1<<NFlag)|(1<<HFlag)
7791	orrne z80f,z80f,#1<<VFlag
7792	subne z80pc,z80pc,#2
7793	subne z80_icount,z80_icount,#5
7794	fetch 16
7795
7796;@CPDR
7797opcode_ED_B9:
7798	readmem8HL
7799	sub z80hl,z80hl,#1<<16
7800	mov r1,z80a,lsl#4
7801	cmp z80a,r0,lsl#24
7802	and z80f,z80f,#1<<CFlag
7803	orr z80f,z80f,#1<<NFlag
7804	orrmi z80f,z80f,#1<<SFlag
7805	orreq z80f,z80f,#1<<ZFlag
7806	cmp r1,r0,lsl#28
7807	orrcc z80f,z80f,#1<<HFlag
7808	subs z80bc,z80bc,#1<<16
7809	bne opcode_ED_B9_decpc
7810	fetch 16
7811opcode_ED_B9_decpc:
7812	orr z80f,z80f,#1<<VFlag
7813	tst z80f,#1<<ZFlag
7814	subeq z80pc,z80pc,#2
7815	subeq z80_icount,z80_icount,#5
7816	fetch 16
7817;@INDR
7818opcode_ED_BA:
7819	opIN_C
7820	and z80f,r0,#0x80
7821	mov z80f,z80f,lsr#2						;@NFlag set by bit 7
7822;@	mov r1,z80bc,lsl#8
7823;@	sub r1,r1,#0x01000000
7824;@	adds r1,r1,r0,lsl#24
7825;@	orrcs z80f,z80f,#(1<<CFlag)|(1<<HFlag)	;@ CF & HF set if (HL) + ((C-1) & 0xFF) > 0xFF
7826	writemem8HL
7827	sub z80hl,z80hl,#1<<16
7828	sub z80bc,z80bc,#1<<24
7829	tst z80bc,#0xFF<<24
7830	orrmi z80f,z80f,#1<<SFlag
7831	orreq z80f,z80f,#1<<ZFlag
7832	subne z80pc,z80pc,#2
7833	subne z80_icount,z80_icount,#5
7834	fetch 16
7835;@OTDR
7836opcode_ED_BB:
7837	readmem8HL
7838	sub z80hl,z80hl,#1<<16
7839	and z80f,r0,#0x80
7840	mov z80f,z80f,lsr#2						;@NFlag set by bit 7
7841	mov r1,z80hl,lsl#8
7842	adds r1,r1,r0,lsl#24
7843	orrcs z80f,z80f,#(1<<CFlag)|(1<<HFlag)	;@ CF & HF set if r0+HL > 0xFF
7844	sub z80bc,z80bc,#1<<24
7845	tst z80bc,#0xFF<<24
7846	orrmi z80f,z80f,#1<<SFlag
7847	orreq z80f,z80f,#1<<ZFlag
7848	subne z80pc,z80pc,#2
7849	subne z80_icount,z80_icount,#5
7850	mov r1,r0
7851	opOUT_C
7852	fetch 16
7853;@##################################
7854;@##################################
7855;@###  opcodes FD  #########################
7856;@##################################
7857;@##################################
7858;@Since DD and FD opcodes are all the same apart from the address
7859;@register they use.  When a FD intruction the program runs the code
7860;@from the DD location but the address of the IY reg is passed instead
7861;@of IX
7862
7863end_loop:
7864     b end_loop
7865
7866
7867
7868