1;@      .DATA
2	.text
3	.align 4
4
5;@ Reesy's Z80 Emulator Version 0.001
6
7;@ (c) Copyright 2004 Reesy, All rights reserved
8;@ DrZ80 is free for non-commercial use.
9
10;@ For commercial use, separate licencing terms must be obtained.
11
12      .global DrZ80Run
13      .global DrZ80Ver
14
15	  .equiv INTERRUPT_MODE, 		0		;@0 = Use internal int handler, 1 = Use Mames int handler
16	  .equiv FAST_Z80SP,			1		;@0 = Use mem functions for stack pointer, 1 = Use direct mem pointer
17	  .equiv GNGEO_OPTIM,                   1		;@0 = Use mem handler and rebase pc/sp, 1 = Use optim for gngeo
18
19.if INTERRUPT_MODE
20	  .extern Interrupt
21.endif
22
23DrZ80Ver: .long 0x0001
24
25;@---------------------------------------
26
27.macro fetch cycs
28	subs z80_icount,z80_icount,#\cycs
29	ldrplb r0,[z80pc],#1
30	ldrpl pc,[opcodes,r0, lsl #2]
31	bmi z80_execute_end
32.endm
33
34.macro eatcycles cycs
35	sub z80_icount,z80_icount,#\cycs
36.endm
37
38.if GNGEO_OPTIM
39.macro readmem8
40	ldr r1,[cpucontext,#z80pc_base]
41	ldrb r0,[r1,r0]
42.endm
43
44.macro readmem8HL
45	ldr r1,[cpucontext,#z80pc_base]
46	ldrb r0,[r1,z80hl, lsr #16]
47.endm
48
49.macro readmem16
50	ldr r1,[cpucontext,#z80pc_base]
51	ldrb r2,[r0,r1]!
52	ldrb r0,[r0, #1]
53	orr r0,r2, r0, lsl #8
54.endm
55
56.macro writemem8
57	ldr r2,[cpucontext,#z80pc_base]
58	strb r0,[r2,r1]
59.endm
60				;@ TODO
61@.macro writemem16
62@	ldr r2,[cpucontext,#z80pc_base]
63@	strb r1,[r0,r2]!
64@	mov r1, r1, lsr #8
65@	strb r1,[r0,#1]
66@.endm
67.macro writemem16
68	stmfd sp!,{r3,r12}
69	mov lr,pc
70	ldr pc,[cpucontext,#z80_write16]		;@ r0=data r1=addr
71	ldmfd sp!,{r3,r12}
72.endm
73
74.else
75.macro readmem8
76	stmfd sp!,{r3,r12}
77	mov lr,pc
78	ldr pc,[cpucontext,#z80_read8]			;@ r0 = addr - data returned in r0
79	ldmfd sp!,{r3,r12}
80.endm
81
82.macro readmem8HL
83	mov r0,z80hl, lsr #16
84	readmem8
85.endm
86
87.macro readmem16
88	stmfd sp!,{r3,r12}
89	mov lr,pc
90	ldr pc,[cpucontext,#z80_read16]
91	ldmfd sp!,{r3,r12}
92.endm
93
94.macro writemem8
95	stmfd sp!,{r3,r12}
96	mov lr,pc
97	ldr pc,[cpucontext,#z80_write8]			;@ r0=data r1=addr
98	ldmfd sp!,{r3,r12}
99.endm
100
101.macro writemem16
102	stmfd sp!,{r3,r12}
103	mov lr,pc
104	ldr pc,[cpucontext,#z80_write16]		;@ r0=data r1=addr
105	ldmfd sp!,{r3,r12}
106.endm
107
108.endif
109
110
111.macro writemem8DE
112	mov r1,z80de, lsr #16
113	writemem8
114.endm
115
116.macro writemem8HL
117	mov r1,z80hl, lsr #16
118	writemem8
119.endm
120
121.macro copymem8HL_DE
122	mov r0,z80hl, lsr #16
123	stmfd sp!,{r3,r12}
124	mov lr,pc
125	ldr pc,[cpucontext,#z80_read8]			;@ r0 = addr - data returned in r0
126	mov r1,z80de, lsr #16
127	mov lr,pc
128	ldr pc,[cpucontext,#z80_write8]			;@ r0=data r1=addr
129	ldmfd sp!,{r3,r12}
130.endm
131;@---------------------------------------
132.if GNGEO_OPTIM
133.macro rebasepc
134	ldr r1,[cpucontext,#z80pc_base]
135	add z80pc,r0,r1
136.endm
137.else
138.macro rebasepc
139	stmfd sp!,{r3,r12}
140	mov lr,pc
141	ldr pc,[cpucontext,#z80_rebasePC]		;@ r0=new pc - external function sets z80pc_base and returns new z80pc in r0
142	ldmfd sp!,{r3,r12}
143	mov z80pc,r0
144.endm
145.endif
146
147.if GNGEO_OPTIM
148.macro rebasesp
149	ldr r1,[cpucontext,#z80sp_base]
150	add z80sp,r0,r1
151.endm
152.else
153.macro rebasesp
154	stmfd sp!,{r3,r12}
155	mov lr,pc
156	ldr pc,[cpucontext,#z80_rebaseSP]		;@ external function must rebase sp
157	ldmfd sp!,{r3,r12}
158	mov z80sp,r0
159.endm
160.endif
161;@----------------------------------------------------------------------------
162
163.macro opADC
164	movs z80f,z80f,lsr#2					;@ get C
165	subcs r0,r0,#0x100
166	eor z80f,r0,z80a,lsr#24					;@ prepare for check of half carry
167	adcs z80a,z80a,r0,ror#8
168	mrs r0,cpsr								;@ S,Z,V&C
169	eor z80f,z80f,z80a,lsr#24
170	and z80f,z80f,#1<<HFlag					;@ H, correct
171	orr z80f,z80f,r0,lsr#28
172.endm
173
174.macro opADCA
175	movs z80f,z80f,lsr#2					;@ get C
176	orrcs z80a,z80a,#0x00800000
177	adds z80a,z80a,z80a
178	mrs z80f,cpsr							;@ S,Z,V&C
179	mov z80f,z80f,lsr#28
180	tst z80a,#0x10000000					;@ H, correct
181	orrne z80f,z80f,#1<<HFlag
182	fetch 4
183.endm
184
185.macro opADCH reg
186	mov r0,\reg,lsr#24
187	opADC
188	fetch 4
189.endm
190
191.macro opADCL reg
192	movs z80f,z80f,lsr#2					;@ get C
193	adc r0,\reg,\reg,lsr#15
194	orrcs z80a,z80a,#0x00800000
195	mov r1,z80a,lsl#4						;@ Prepare for check of half carry
196	adds z80a,z80a,r0,lsl#23
197	mrs z80f,cpsr							;@ S,Z,V&C
198	mov z80f,z80f,lsr#28
199	cmn r1,r0,lsl#27
200	orrcs z80f,z80f,#1<<HFlag				;@ H, correct
201	fetch 4
202.endm
203
204.macro opADCb
205	opADC
206.endm
207;@---------------------------------------
208
209.macro opADD reg shift
210	mov r1,z80a,lsl#4						;@ Prepare for check of half carry
211	adds z80a,z80a,\reg,lsl#\shift
212	mrs z80f,cpsr							;@ S,Z,V&C
213	mov z80f,z80f,lsr#28
214	cmn r1,\reg,lsl#\shift+4
215	orrcs z80f,z80f,#1<<HFlag
216.endm
217
218.macro opADDA
219	adds z80a,z80a,z80a
220	mrs z80f,cpsr							;@ S,Z,V&C
221	mov z80f,z80f,lsr#28
222	tst z80a,#0x10000000					;@ H, correct
223	orrne z80f,z80f,#1<<HFlag
224	fetch 4
225.endm
226
227.macro opADDH reg
228	and r0,\reg,#0xFF000000
229	opADD r0 0
230	fetch 4
231.endm
232
233.macro opADDL reg
234	opADD \reg 8
235	fetch 4
236.endm
237
238.macro opADDb
239	opADD r0 24
240.endm
241;@---------------------------------------
242
243.macro opADC16 reg
244	movs z80f,z80f,lsr#2					;@ get C
245	adc r0,z80a,\reg,lsr#15
246	orrcs z80hl,z80hl,#0x00008000
247	mov r1,z80hl,lsl#4
248	adds z80hl,z80hl,r0,lsl#15
249	mrs z80f,cpsr							;@ S, Z, V & C
250	mov z80f,z80f,lsr#28
251	cmn r1,r0,lsl#19
252	orrcs z80f,z80f,#1<<HFlag
253	fetch 15
254.endm
255
256.macro opADC16HL
257	movs z80f,z80f,lsr#2					;@ get C
258	orrcs z80hl,z80hl,#0x00008000
259	adds z80hl,z80hl,z80hl
260	mrs z80f,cpsr							;@ S, Z, V & C
261	mov z80f,z80f,lsr#28
262	tst z80hl,#0x10000000					;@ H, correct.
263	orrne z80f,z80f,#1<<HFlag
264	fetch 15
265.endm
266
267.macro opADD16 reg1 reg2
268	mov r1,\reg1,lsl#4						;@ Prepare for check of half carry
269	adds \reg1,\reg1,\reg2
270	bic z80f,z80f,#(1<<CFlag)|(1<<HFlag)|(1<<NFlag)
271	orrcs z80f,z80f,#1<<CFlag
272	cmn r1,\reg2,lsl#4
273	orrcs z80f,z80f,#1<<HFlag
274.endm
275
276.macro opADD16s reg1 reg2 shift
277	mov r1,\reg1,lsl#4						;@ Prepare for check of half carry
278	adds \reg1,\reg1,\reg2,lsl#\shift
279	bic z80f,z80f,#(1<<CFlag)|(1<<HFlag)|(1<<NFlag)
280	orrcs z80f,z80f,#1<<CFlag
281	cmn r1,\reg2,lsl#4+\shift
282	orrcs z80f,z80f,#1<<HFlag
283.endm
284
285.macro opADD16_2 reg
286	adds \reg,\reg,\reg
287	bic z80f,z80f,#(1<<CFlag)|(1<<HFlag)|(1<<NFlag)
288	orrcs z80f,z80f,#1<<CFlag
289	tst \reg,#0x10000000					;@ H, correct.
290	orrne z80f,z80f,#1<<HFlag
291.endm
292;@---------------------------------------
293
294.macro opAND reg shift
295	and z80a,z80a,\reg,lsl#\shift
296	sub r0,opcodes,#0x100
297	ldrb z80f,[r0,z80a, lsr #24]
298	orr z80f,z80f,#1<<HFlag
299.endm
300
301.macro opANDA
302	sub r0,opcodes,#0x100
303	ldrb z80f,[r0,z80a, lsr #24]
304	orr z80f,z80f,#1<<HFlag
305	fetch 4
306.endm
307
308.macro opANDH reg
309	opAND \reg 0
310	fetch 4
311.endm
312
313.macro opANDL reg
314	opAND \reg 8
315	fetch 4
316.endm
317
318.macro opANDb
319	opAND r0 24
320.endm
321;@---------------------------------------
322
323.macro opBITH reg bit
324	and z80f,z80f,#1<<CFlag
325	tst \reg,#1<<(24+\bit)
326	orreq z80f,z80f,#(1<<HFlag)|(1<<ZFlag)|(1<<VFlag)
327	orrne z80f,z80f,#(1<<HFlag)
328	fetch 8
329.endm
330
331.macro opBIT7H reg
332	and z80f,z80f,#1<<CFlag
333	tst \reg,#1<<(24+7)
334	orreq z80f,z80f,#(1<<HFlag)|(1<<ZFlag)|(1<<VFlag)
335	orrne z80f,z80f,#(1<<HFlag)|(1<<SFlag)
336	fetch 8
337.endm
338
339.macro opBITL reg bit
340	and z80f,z80f,#1<<CFlag
341	tst \reg,#1<<(16+\bit)
342	orreq z80f,z80f,#(1<<HFlag)|(1<<ZFlag)|(1<<VFlag)
343	orrne z80f,z80f,#(1<<HFlag)
344	fetch 8
345.endm
346
347.macro opBIT7L reg
348	and z80f,z80f,#1<<CFlag
349	tst \reg,#1<<(16+7)
350	orreq z80f,z80f,#(1<<HFlag)|(1<<ZFlag)|(1<<VFlag)
351	orrne z80f,z80f,#(1<<HFlag)|(1<<SFlag)
352	fetch 8
353.endm
354
355.macro opBITb bit
356	and z80f,z80f,#1<<CFlag
357	tst r0,#1<<\bit
358	orreq z80f,z80f,#(1<<HFlag)|(1<<ZFlag)|(1<<VFlag)
359	orrne z80f,z80f,#(1<<HFlag)
360.endm
361
362.macro opBIT7b
363	and z80f,z80f,#1<<CFlag
364	tst r0,#1<<7
365	orreq z80f,z80f,#(1<<HFlag)|(1<<ZFlag)|(1<<VFlag)
366	orrne z80f,z80f,#(1<<HFlag)|(1<<SFlag)
367.endm
368;@---------------------------------------
369
370.macro opCP reg shift
371	mov r1,z80a,lsl#4						;@ prepare for check of half carry
372	cmp z80a,\reg,lsl#\shift
373	mrs z80f,cpsr
374	mov z80f,z80f,lsr#28					;@ S,Z,V&C
375	eor z80f,z80f,#(1<<CFlag)|(1<<NFlag)	;@ invert C and set n
376	cmp r1,\reg,lsl#\shift+4
377	orrcc z80f,z80f,#1<<HFlag
378.endm
379
380.macro opCPA
381	mov z80f,#(1<<ZFlag)|(1<<NFlag)			;@ set Z & n
382	fetch 4
383.endm
384
385.macro opCPH reg
386	and r0,\reg,#0xFF000000
387	opCP r0 0
388	fetch 4
389.endm
390
391.macro opCPL reg
392	opCP \reg 8
393	fetch 4
394.endm
395
396.macro opCPb
397	opCP r0 24
398.endm
399;@---------------------------------------
400
401.macro opDEC8 reg							;@for A and memory
402	and z80f,z80f,#1<<CFlag					;@save carry
403	orr z80f,z80f,#1<<NFlag					;@set n
404	tst \reg,#0x0f000000
405	orreq z80f,z80f,#1<<HFlag
406	subs \reg,\reg,#0x01000000
407	orrmi z80f,z80f,#1<<SFlag
408	orrvs z80f,z80f,#1<<VFlag
409	orreq z80f,z80f,#1<<ZFlag
410.endm
411
412.macro opDEC8H reg							;@for B, D & H
413	and z80f,z80f,#1<<CFlag					;@save carry
414	orr z80f,z80f,#1<<NFlag					;@set n
415	tst \reg,#0x0f000000
416	orreq z80f,z80f,#1<<HFlag
417	subs \reg,\reg,#0x01000000
418	orrmi z80f,z80f,#1<<SFlag
419	orrvs z80f,z80f,#1<<VFlag
420	tst \reg,#0xff000000					;@Z
421	orreq z80f,z80f,#1<<ZFlag
422.endm
423
424.macro opDEC8L reg							;@for C, E & L
425	mov \reg,\reg,ror#24
426	opDEC8H \reg
427	mov \reg,\reg,ror#8
428.endm
429
430.macro opDEC8b								;@for memory
431	mov r0,r0,lsl#24
432	opDEC8 r0
433	mov r0,r0,lsr#24
434.endm
435;@---------------------------------------
436
437.macro opIN
438	stmfd sp!,{r3,r12}
439	mov lr,pc
440	ldr pc,[cpucontext,#z80_in]				;@ r0=port - data returned in r0
441	ldmfd sp!,{r3,r12}
442.endm
443
444.macro opIN_C
445	mov r0,z80bc, lsr #16
446	opIN
447.endm
448;@---------------------------------------
449
450.macro opINC8 reg							;@for A and memory
451	and z80f,z80f,#1<<CFlag					;@save carry, clear n
452	adds \reg,\reg,#0x01000000
453	orrmi z80f,z80f,#1<<SFlag
454	orrvs z80f,z80f,#1<<VFlag
455	orrcs z80f,z80f,#1<<ZFlag				;@cs when going from 0xFF to 0x00
456	tst \reg,#0x0f000000
457	orreq z80f,z80f,#1<<HFlag
458.endm
459
460.macro opINC8H reg							;@for B, D & H
461	opINC8 \reg
462.endm
463
464.macro opINC8L reg							;@for C, E & L
465	mov \reg,\reg,ror#24
466	opINC8 \reg
467	mov \reg,\reg,ror#8
468.endm
469
470.macro opINC8b								;@for memory
471	mov r0,r0,lsl#24
472	opINC8 r0
473	mov r0,r0,lsr#24
474.endm
475;@---------------------------------------
476
477.macro opOR reg shift
478	orr z80a,z80a,\reg,lsl#\shift
479	sub r0,opcodes,#0x100
480	ldrb z80f,[r0,z80a, lsr #24]
481.endm
482
483.macro opORA
484	sub r0,opcodes,#0x100
485	ldrb z80f,[r0,z80a, lsr #24]
486	fetch 4
487.endm
488
489.macro opORH reg
490	and r0,\reg,#0xFF000000
491	opOR r0 0
492	fetch 4
493.endm
494
495.macro opORL reg
496	opOR \reg 8
497	fetch 4
498.endm
499
500.macro opORb
501	opOR r0 24
502.endm
503;@---------------------------------------
504
505.macro opOUT
506	stmfd sp!,{r3,r12}
507	mov lr,pc
508	ldr pc,[cpucontext,#z80_out]			;@ r0=port r1=data
509	ldmfd sp!,{r3,r12}
510.endm
511
512.macro opOUT_C
513	mov r0,z80bc, lsr #16
514	opOUT
515.endm
516;@---------------------------------------
517
518.macro opPOP
519.if FAST_Z80SP
520	ldrb r0,[z80sp],#1
521	ldrb r1,[z80sp],#1
522	orr r0,r0,r1, lsl #8
523.else
524	mov r0,z80sp
525	readmem16
526	add z80sp,z80sp,#2
527.endif
528.endm
529
530.macro opPOPreg reg
531	opPOP
532	mov \reg,r0, lsl #16
533	fetch 10
534.endm
535;@---------------------------------------
536
537.macro opPUSHreg reg
538.if FAST_Z80SP
539	mov r1,\reg, lsr #24
540	strb r1,[z80sp,#-1]!
541	mov r1,\reg, lsr #16
542	strb r1,[z80sp,#-1]!
543.else
544	mov r0,\reg,lsr #16
545	sub z80sp,z80sp,#2
546	mov r1,z80sp
547	writemem16
548.endif
549.endm
550;@---------------------------------------
551
552.macro opRESmemHL bit
553	mov r0,z80hl, lsr #16
554	stmfd sp!,{r3,r12}
555	mov lr,pc
556	ldr pc,[cpucontext,#z80_read8]			;@ r0 = addr - data returned in r0
557	bic r0,r0,#1<<\bit
558	mov r1,z80hl, lsr #16
559	mov lr,pc
560	ldr pc,[cpucontext,#z80_write8]			;@ r0=data r1=addr
561	ldmfd sp!,{r3,r12}
562	fetch 15
563.endm
564;@---------------------------------------
565
566.macro opRESmem bit
567	stmfd sp!,{r3,r12}
568	stmfd sp!,{r0}							;@ save addr as well
569	mov lr,pc
570	ldr pc,[cpucontext,#z80_read8] 			;@ r0=addr - data returned in r0
571	bic r0,r0,#1<<\bit
572	ldmfd sp!,{r1}							;@ restore addr into r1
573	mov lr,pc
574	ldr pc,[cpucontext,#z80_write8]			;@ r0=data r1=addr
575	ldmfd sp!,{r3,r12}
576	fetch 23
577.endm
578;@---------------------------------------
579
580.macro opRL reg1 reg2 shift
581	movs \reg1,\reg2,lsl#\shift
582	tst z80f,#1<<CFlag						;@doesn't affect ARM carry, as long as the imidiate value is < 0x100. Watch out!
583	orrne \reg1,\reg1,#0x01000000
584;@	and r2,z80f,#1<<CFlag
585;@	orr $x,$x,r2,lsl#23
586	sub r1,opcodes,#0x100
587	ldrb z80f,[r1,\reg1,lsr#24]				;@get PZS
588	orrcs z80f,z80f,#1<<CFlag
589.endm
590
591.macro opRLA
592	opRL z80a z80a 1
593	fetch 8
594.endm
595
596.macro opRLH reg
597	and r0,\reg,#0xFF000000					;@mask high to r0
598	adds \reg,\reg,r0
599	tst z80f,#1<<CFlag						;@doesn't affect ARM carry, as long as the imidiate value is < 0x100. Watch out!
600	orrne \reg,\reg,#0x01000000
601	sub r1,opcodes,#0x100
602	ldrb z80f,[r1,\reg,lsr#24]				;@get PZS
603	orrcs z80f,z80f,#1<<CFlag
604	fetch 8
605.endm
606
607.macro opRLL reg
608	opRL r0 \reg 9
609	and \reg,\reg,#0xFF000000				;@mask out high
610	orr \reg,\reg,r0,lsr#8
611	fetch 8
612.endm
613
614.macro opRLb
615	opRL r0 r0 25
616	mov r0,r0,lsr#24
617.endm
618;@---------------------------------------
619
620.macro opRLC reg1 reg2 shift
621	movs \reg1,\reg2,lsl#\shift
622	orrcs \reg1,\reg1,#0x01000000
623	sub r1,opcodes,#0x100
624	ldrb z80f,[r1,\reg1,lsr#24]
625	orrcs z80f,z80f,#1<<CFlag
626.endm
627
628.macro opRLCA
629	opRLC z80a z80a 1
630	fetch 8
631.endm
632
633.macro opRLCH reg
634	and r0,\reg,#0xFF000000					;@mask high to r0
635	adds \reg,\reg,r0
636	orrcs \reg,\reg,#0x01000000
637	sub r1,opcodes,#0x100
638	ldrb z80f,[r1,\reg,lsr#24]
639	orrcs z80f,z80f,#1<<CFlag
640	fetch 8
641.endm
642
643.macro opRLCL reg
644	opRLC r0 \reg 9
645	and \reg,\reg,#0xFF000000				;@mask out high
646	orr \reg,\reg,r0,lsr#8
647	fetch 8
648.endm
649
650.macro opRLCb
651	opRLC r0 r0 25
652	mov r0,r0,lsr#24
653.endm
654;@---------------------------------------
655
656.macro opRR reg1 reg2 shift
657	movs \reg1,\reg2,lsr#\shift
658	tst z80f,#1<<CFlag						;@doesn't affect ARM carry, as long as the imidiate value is < 0x100. Watch out!
659	orrne \reg1,\reg1,#0x00000080
660;@	and r2,z80_f,#PSR_C
661;@	orr \reg1,\reg1,r2,lsl#6
662	sub r1,opcodes,#0x100
663	ldrb z80f,[r1,\reg1]
664	orrcs z80f,z80f,#1<<CFlag
665.endm
666
667.macro opRRA
668	orr z80a,z80a,z80f,lsr#1				;@get C
669	movs z80a,z80a,ror#25
670	mov z80a,z80a,lsl#24
671	sub r1,opcodes,#0x100
672	ldrb z80f,[r1,z80a,lsr#24]
673	orrcs z80f,z80f,#1<<CFlag
674	fetch 8
675.endm
676
677.macro opRRH reg
678	orr r0,\reg,z80f,lsr#1					;@get C
679	movs r0,r0,ror#25
680	and \reg,\reg,#0x00FF0000				;@mask out low
681	orr \reg,\reg,r0,lsl#24
682	sub r1,opcodes,#0x100
683	ldrb z80f,[r1,\reg,lsr#24]
684	orrcs z80f,z80f,#1<<CFlag
685	fetch 8
686.endm
687
688.macro opRRL reg
689	and r0,\reg,#0x00FF0000					;@mask out low to r0
690	opRR r0 r0 17
691	and \reg,\reg,#0xFF000000				;@mask out high
692	orr \reg,\reg,r0,lsl#16
693	fetch 8
694.endm
695
696.macro opRRb
697	opRR r0 r0 1
698.endm
699;@---------------------------------------
700
701.macro opRRC reg1 reg2 shift
702	movs \reg1,\reg2,lsr#\shift
703	orrcs \reg1,\reg1,#0x00000080
704	sub r1,opcodes,#0x100
705	ldrb z80f,[r1,\reg1]
706	orrcs z80f,z80f,#1<<CFlag
707.endm
708
709.macro opRRCA
710	opRRC z80a z80a 25
711	mov z80a,z80a,lsl#24
712	fetch 8
713.endm
714
715.macro opRRCH reg
716	opRRC r0 \reg 25
717	and \reg,\reg,#0x00FF0000				;@mask out low
718	orr \reg,\reg,r0,lsl#24
719	fetch 8
720.endm
721
722.macro opRRCL reg
723	and r0,\reg,#0x00FF0000					;@mask low to r0
724	opRRC r0 r0 17
725	and \reg,\reg,#0xFF000000				;@mask out high
726	orr \reg,\reg,r0,lsl#16
727	fetch 8
728.endm
729
730.macro opRRCb
731	opRRC r0 r0 1
732.endm
733;@---------------------------------------
734
735.macro opRST addr
736	ldr r0,[cpucontext,#z80pc_base]
737	sub r0,z80pc,r0
738.if FAST_Z80SP
739	mov r1,r0, lsr #8
740	strb r1,[z80sp,#-1]!
741	strb r0,[z80sp,#-1]!
742.else
743	sub z80sp,z80sp,#2
744	mov r1,z80sp
745	writemem16
746.endif
747	mov r0,#\addr
748	rebasepc
749	fetch 11
750.endm
751;@---------------------------------------
752
753.macro opSBC
754	eor z80f,z80f,#1<<CFlag					;@ invert C
755	movs z80f,z80f,lsr#2					;@ get C
756	subcc r0,r0,#0x100
757	eor z80f,r0,z80a,lsr#24					;@ prepare for check of H
758	sbcs z80a,z80a,r0,ror#8
759	mrs r0,cpsr
760	eor z80f,z80f,z80a,lsr#24
761	and z80f,z80f,#1<<HFlag					;@ H, correct
762	orr z80f,z80f,r0,lsr#28					;@ S,Z,V&C
763	eor z80f,z80f,#(1<<CFlag)|(1<<NFlag)	;@ invert C and set n.
764.endm
765
766.macro opSBCA
767	movs z80f,z80f,lsr#2					;@ get C
768	movcc z80a,#0x00000000
769	movcs z80a,#0xFF000000
770	movcc z80f,#(1<<NFlag)|(1<<ZFlag)
771	movcs z80f,#(1<<NFlag)|(1<<SFlag)|(1<<CFlag)|(1<<HFlag)
772	fetch 4
773.endm
774
775.macro opSBCH reg
776	mov r0,\reg,lsr#24
777	opSBC
778	fetch 4
779.endm
780
781.macro opSBCL reg
782	mov r0,\reg,lsl#8
783	eor z80f,z80f,#1<<CFlag					;@ invert C
784	movs z80f,z80f,lsr#2					;@ get C
785	sbccc r0,r0,#0xFF000000
786	mov r1,z80a,lsl#4						;@ prepare for check of H
787	sbcs z80a,z80a,r0
788	mrs z80f,cpsr
789	mov z80f,z80f,lsr#28					;@ S,Z,V&C
790	eor z80f,z80f,#(1<<CFlag)|(1<<NFlag)	;@ invert C and set n.
791	cmp r1,r0,lsl#4
792	orrcc z80f,z80f,#1<<HFlag				;@ H, correct
793	fetch 4
794.endm
795
796.macro opSBCb
797	opSBC
798.endm
799;@---------------------------------------
800
801.macro opSBC16 reg
802	eor z80f,z80f,#1<<CFlag					;@ invert C
803	movs z80f,z80f,lsr#2					;@ get C
804	sbc r1,r1,r1							;@ set r1 to -1 or 0.
805	orr r0,\reg,r1,lsr#16
806	mov r1,z80hl,lsl#4						;@ prepare for check of H
807	sbcs z80hl,z80hl,r0
808	mrs z80f,cpsr
809	mov z80f,z80f,lsr#28					;@ S,Z,V&C
810	eor z80f,z80f,#(1<<CFlag)|(1<<NFlag)	;@ invert C and set n.
811	cmp r1,r0,lsl#4
812	orrcc z80f,z80f,#1<<HFlag				;@ H, correct
813	fetch 15
814.endm
815
816.macro opSBC16HL
817	movs z80f,z80f,lsr#2					;@ get C
818	mov z80hl,#0x00000000
819	subcs z80hl,z80hl,#0x00010000
820	movcc z80f,#(1<<NFlag)|(1<<ZFlag)
821	movcs z80f,#(1<<NFlag)|(1<<SFlag)|(1<<CFlag)|(1<<HFlag)
822	fetch 15
823.endm
824;@---------------------------------------
825
826.macro opSETmemHL bit
827	mov r0,z80hl, lsr #16
828	stmfd sp!,{r3,r12}
829	mov lr,pc
830	ldr pc,[cpucontext,#z80_read8]			;@ r0 = addr - data returned in r0
831	orr r0,r0,#1<<\bit
832	mov r1,z80hl, lsr #16
833	mov lr,pc
834	ldr pc,[cpucontext,#z80_write8]			;@ r0=data r1=addr
835	ldmfd sp!,{r3,r12}
836	fetch 15
837.endm
838;@---------------------------------------
839
840.macro opSETmem bit
841	stmfd sp!,{r3,r12}
842	stmfd sp!,{r0}	;@ save addr as well
843	mov lr,pc
844	ldr pc,[cpucontext,#z80_read8]			;@ r0=addr - data returned in r0
845	orr r0,r0,#1<<\bit
846	ldmfd sp!,{r1}	;@ restore addr into r1
847	mov lr,pc
848	ldr pc,[cpucontext,#z80_write8]			;@ r0=data r1=addr
849	ldmfd sp!,{r3,r12}
850	fetch 23
851.endm
852;@---------------------------------------
853
854.macro opSLA reg1 reg2 shift
855	movs \reg1,\reg2,lsl#\shift
856	sub r1,opcodes,#0x100
857	ldrb z80f,[r1,\reg1,lsr#24]
858	orrcs z80f,z80f,#1<<CFlag
859.endm
860
861.macro opSLAA
862	opSLA z80a z80a 1
863	fetch 8
864.endm
865
866.macro opSLAH reg
867	and r0,\reg,#0xFF000000					;@mask high to r0
868	adds \reg,\reg,r0
869	sub r1,opcodes,#0x100
870	ldrb z80f,[r1,\reg,lsr#24]
871	orrcs z80f,z80f,#1<<CFlag
872	fetch 8
873.endm
874
875.macro opSLAL reg
876	opSLA r0 \reg 9
877	and \reg,\reg,#0xFF000000				;@mask out high
878	orr \reg,\reg,r0,lsr#8
879	fetch 8
880.endm
881
882.macro opSLAb
883	opSLA r0 r0 25
884	mov r0,r0,lsr#24
885.endm
886;@---------------------------------------
887
888.macro opSLL reg1 reg2 shift
889	movs \reg1,\reg2,lsl#\shift
890	orr \reg1,\reg1,#0x01000000
891	sub r1,opcodes,#0x100
892	ldrb z80f,[r1,\reg1,lsr#24]
893	orrcs z80f,z80f,#1<<CFlag
894.endm
895
896.macro opSLLA
897	opSLL z80a z80a 1
898	fetch 8
899.endm
900
901.macro opSLLH reg
902	and r0,\reg,#0xFF000000					;@mask high to r0
903	adds \reg,\reg,r0
904	orr \reg,\reg,#0x01000000
905	sub r1,opcodes,#0x100
906	ldrb z80f,[r1,\reg,lsr#24]
907	orrcs z80f,z80f,#1<<CFlag
908	fetch 8
909.endm
910
911.macro opSLLL reg
912	opSLL r0 \reg 9
913	and \reg,\reg,#0xFF000000				;@mask out high
914	orr \reg,\reg,r0,lsr#8
915	fetch 8
916.endm
917
918.macro opSLLb
919	opSLL r0 r0 25
920	mov r0,r0,lsr#24
921.endm
922;@---------------------------------------
923
924.macro opSRA reg1 reg2
925	movs \reg1,\reg2,asr#25
926	and \reg1,\reg1,#0xFF
927	sub r1,opcodes,#0x100
928	ldrb z80f,[r1,\reg1]
929	orrcs z80f,z80f,#1<<CFlag
930.endm
931
932.macro opSRAA
933	movs r0,z80a,asr#25
934	mov z80a,r0,lsl#24
935	sub r1,opcodes,#0x100
936	ldrb z80f,[r1,z80a,lsr#24]
937	orrcs z80f,z80f,#1<<CFlag
938	fetch 8
939.endm
940
941.macro opSRAH reg
942	movs r0,\reg,asr#25
943	and \reg,\reg,#0x00FF0000				;@mask out low
944	orr \reg,\reg,r0,lsl#24
945	sub r1,opcodes,#0x100
946	ldrb z80f,[r1,\reg,lsr#24]
947	orrcs z80f,z80f,#1<<CFlag
948	fetch 8
949.endm
950
951.macro opSRAL reg
952	mov r0,\reg,lsl#8
953	opSRA r0 r0
954	and \reg,\reg,#0xFF000000				;@mask out high
955	orr \reg,\reg,r0,lsl#16
956	fetch 8
957.endm
958
959.macro opSRAb
960	mov r0,r0,lsl#24
961	opSRA r0 r0
962.endm
963;@---------------------------------------
964
965.macro opSRL reg1 reg2 shift
966	movs \reg1,\reg2,lsr#\shift
967	sub r1,opcodes,#0x100
968	ldrb z80f,[r1,\reg1]
969	orrcs z80f,z80f,#1<<CFlag
970.endm
971
972.macro opSRLA
973	opSRL z80a z80a 25
974	mov z80a,z80a,lsl#24
975	fetch 8
976.endm
977
978.macro opSRLH reg
979	opSRL r0 \reg 25
980	and \reg,\reg,#0x00FF0000				;@mask out low
981	orr \reg,\reg,r0,lsl#24
982	fetch 8
983.endm
984
985.macro opSRLL reg
986	mov r0,\reg,lsl#8
987	opSRL r0 r0 25
988	and \reg,\reg,#0xFF000000				;@mask out high
989	orr \reg,\reg,r0,lsl#16
990	fetch 8
991.endm
992
993.macro opSRLb
994	opSRL r0 r0 1
995.endm
996;@---------------------------------------
997
998.macro opSUB reg shift
999	mov r1,z80a,lsl#4 						;@ Prepare for check of half carry
1000	subs z80a,z80a,\reg,lsl#\shift
1001	mrs z80f,cpsr
1002	mov z80f,z80f,lsr#28					;@ S,Z,V&C
1003	eor z80f,z80f,#(1<<CFlag)|(1<<NFlag)	;@ invert C and set n
1004	cmp r1,\reg,lsl#\shift+4
1005	orrcc z80f,z80f,#1<<HFlag
1006.endm
1007
1008.macro opSUBA
1009	mov z80a,#0
1010	mov z80f,#(1<<ZFlag)|(1<<NFlag)			;@ set Z & n
1011	fetch 4
1012.endm
1013
1014.macro opSUBH reg
1015	and r0,\reg,#0xFF000000
1016	opSUB r0 0
1017	fetch 4
1018.endm
1019
1020.macro opSUBL reg
1021	opSUB \reg 8
1022	fetch 4
1023.endm
1024
1025.macro opSUBb
1026	opSUB r0 24
1027.endm
1028;@---------------------------------------
1029
1030.macro opXOR reg shift
1031	eor z80a,z80a,\reg,lsl#\shift
1032	sub r0,opcodes,#0x100
1033	ldrb z80f,[r0,z80a, lsr #24]
1034.endm
1035
1036.macro opXORA
1037	mov z80a,#0
1038	mov z80f,#(1<<ZFlag)|(1<<VFlag)
1039	fetch 4
1040.endm
1041
1042.macro opXORH reg
1043	and r0,\reg,#0xFF000000
1044	opXOR r0 0
1045	fetch 4
1046.endm
1047
1048.macro opXORL reg
1049	opXOR \reg 8
1050	fetch 4
1051.endm
1052
1053.macro opXORb
1054	opXOR r0 24
1055.endm
1056;@---------------------------------------
1057
1058
1059;@ --------------------------- Defines ----------------------------
1060;@ Make sure that regs/pointers for z80pc to z80sp match up!
1061
1062	opcodes .req r3
1063	z80_icount .req r4
1064	cpucontext .req r5
1065	z80pc .req r6
1066	z80a .req r7
1067	z80f .req r8
1068	z80bc .req r9
1069	z80de .req r10
1070	z80hl .req r11
1071	z80sp .req r12
1072	z80xx .req lr
1073
1074	.equ z80pc_pointer,           0                  ;@  0
1075	.equ z80a_pointer,            z80pc_pointer+4    ;@  4
1076	.equ z80f_pointer,            z80a_pointer+4     ;@  8
1077	.equ z80bc_pointer,           z80f_pointer+4     ;@
1078	.equ z80de_pointer,           z80bc_pointer+4
1079	.equ z80hl_pointer,           z80de_pointer+4
1080	.equ z80sp_pointer,           z80hl_pointer+4
1081	.equ z80pc_base,              z80sp_pointer+4
1082	.equ z80sp_base,              z80pc_base+4
1083	.equ z80ix,                   z80sp_base+4
1084	.equ z80iy,                   z80ix+4
1085	.equ z80i,                    z80iy+4
1086	.equ z80a2,                   z80i+4
1087	.equ z80f2,                   z80a2+4
1088	.equ z80bc2,                  z80f2+4
1089	.equ z80de2,                  z80bc2+4
1090	.equ z80hl2,                  z80de2+4
1091	.equ z80irq,                  z80hl2+4
1092	.equ z80if,                   z80irq+1
1093	.equ z80im,                   z80if+1
1094	.equ z80r,                    z80im+1
1095	.equ z80irqvector,            z80r+1
1096	.equ z80irqcallback,          z80irqvector+4
1097	.equ z80_write8,              z80irqcallback+4
1098	.equ z80_write16,             z80_write8+4
1099	.equ z80_in,                  z80_write16+4
1100	.equ z80_out,                 z80_in+4
1101	.equ z80_read8,               z80_out+4
1102	.equ z80_read16,              z80_read8+4
1103	.equ z80_rebaseSP,            z80_read16+4
1104	.equ z80_rebasePC,            z80_rebaseSP+4
1105
1106	.equ VFlag, 0
1107	.equ CFlag, 1
1108	.equ ZFlag, 2
1109	.equ SFlag, 3
1110	.equ HFlag, 4
1111	.equ NFlag, 5
1112	.equ Flag3, 6
1113	.equ Flag5, 7
1114
1115	.equ Z80_CFlag, 0
1116	.equ Z80_NFlag, 1
1117	.equ Z80_VFlag, 2
1118	.equ Z80_Flag3, 3
1119	.equ Z80_HFlag, 4
1120	.equ Z80_Flag5, 5
1121	.equ Z80_ZFlag, 6
1122	.equ Z80_SFlag, 7
1123
1124	.equ Z80_IF1, 1<<0
1125	.equ Z80_IF2, 1<<1
1126	.equ Z80_HALT, 1<<2
1127
1128;@ --------------------------- Framework --------------------------
1129
1130DrZ80Run:
1131	;@ r0 = pointer to cpu context
1132	;@ r1 = ISTATES to execute
1133	;@#########################################
1134	stmdb sp!,{r4-r12,lr}					;@ save registers on stack
1135	mov cpucontext,r0						;@ setup main memory pointer
1136	mov z80_icount,r1						;@ setup number of Tstates to execute
1137	ldmia cpucontext,{z80pc-z80sp}			;@ load Z80 registers
1138
1139
1140	ldr opcodes,MAIN_opcodes_POINTER2
1141
1142.if INTERRUPT_MODE == 0
1143	;@ check ints
1144	bl DoInterrupt  ;@ done in mame now
1145.endif
1146
1147	ldrb r0,[z80pc],#1    ;@ get first op code
1148	ldr pc,[opcodes,r0, lsl #2]  ;@ execute op code
1149
1150MAIN_opcodes_POINTER2: .word MAIN_opcodes
1151
1152
1153z80_execute_end:
1154	;@ save registers in CPU context
1155	stmia cpucontext,{z80pc-z80sp}			;@ save Z80 registers
1156	ldmia sp!,{r4-r12,pc}					;@ restore registers from stack and return to C code
1157
1158.if INTERRUPT_MODE
1159Interrupt_local: .word Interrupt
1160.endif
1161
1162DoInterrupt:
1163.if INTERRUPT_MODE
1164	;@ Don't do own int handler, call mames instead
1165
1166	;@ save everything back into DrZ80 context
1167	stmia cpucontext,{z80pc-z80sp}			;@ save Z80 registers
1168	stmfd sp!,{r3,r4,r5,lr}					;@ save rest of regs on stack
1169	mov lr,pc
1170	ldr pc,Interrupt_local
1171	ldmfd sp!,{r3,r4,r5,lr}					;@ load regs from stack
1172	;@ reload regs from DrZ80 context
1173	ldmia cpucontext,{z80pc-z80sp}			;@ load Z80 registers
1174	mov pc,lr ;@ return
1175.else
1176	ldrb r0,[cpucontext,#z80irq]
1177	tst r0,r0
1178	moveq pc,lr
1179
1180	tst r0,#2
1181	bne DoInterrupt_NMI
1182
1183	ldrb r0,[cpucontext,#z80if]
1184	tst r0,#Z80_IF1
1185	moveq pc,lr ;@ exit if int disabled
1186
1187	stmfd sp!,{lr}
1188
1189	tst r0,#Z80_HALT ;@ check halt
1190	addne z80pc,z80pc,#1
1191
1192	;@ clear halt and int flags
1193	eor r0,r0,r0
1194	strb r0,[cpucontext,#z80if]
1195
1196	;@ now check int mode
1197	ldrb r0,[cpucontext,#z80im]
1198	and r0,r0,#3
1199	ldr pc,[pc,r0,lsl#2]
1200	.word 0
1201	.word DoInterrupt_mode0
1202	.word DoInterrupt_mode1
1203	.word DoInterrupt_mode2
1204	.word DoInterrupt_mode1
1205
1206DoInterrupt_NMI:
1207	stmfd sp!,{lr}
1208
1209	bic r0,r0,#2
1210	strb r0,[cpucontext,#z80irq]
1211
1212	ldrb r0,[cpucontext,#z80if]
1213	tst r0,#Z80_HALT ;@ check halt
1214	addne z80pc,z80pc,#1
1215
1216	;@ clear halt & iff1
1217	bic r0,r0,#Z80_IF1|Z80_HALT
1218	strb r0,[cpucontext,#z80if]
1219
1220	ldr r0,[cpucontext,#z80pc_base]
1221	sub r0,z80pc,r0
1222.if FAST_Z80SP
1223	mov r1,r0, lsr #8
1224	strb r1,[z80sp,#-1]!
1225	strb r0,[z80sp,#-1]!
1226.else
1227	sub z80sp,z80sp,#2
1228	mov r1,z80sp
1229	writemem16
1230	ldr r2,[cpucontext, #z80irqvector]
1231.endif
1232	;@ jump to vector
1233	mov r0,#0x66
1234	rebasepc
1235
1236	b DoInterrupt_end
1237
1238DoInterrupt_mode0:
1239	;@ get 3 byte vector
1240	ldr r2,[cpucontext, #z80irqvector]
1241	and r1,r2,#0xFF0000
1242	cmp r1,#0xCD0000  ;@ call
1243	bne 1f
1244	;@ ########
1245	;@ # call
1246	;@ ########
1247	;@ save current pc on stack
1248	ldr r0,[cpucontext,#z80pc_base]
1249	sub r0,z80pc,r0
1250.if FAST_Z80SP
1251	mov r1,r0, lsr #8
1252	strb r1,[z80sp,#-1]!
1253	strb r0,[z80sp,#-1]!
1254.else
1255	sub z80sp,z80sp,#2
1256	mov r1,z80sp
1257	writemem16
1258	ldr r2,[cpucontext, #z80irqvector]
1259.endif
1260	;@ jump to vector
1261	mov r2,r2,lsl#16
1262	mov r0,r2,lsr#16
1263	;@ rebase new pc
1264	rebasepc
1265
1266	b DoInterrupt_end
1267
12681:
1269	cmp r1,#0xC30000  ;@ jump
1270	bne DoInterrupt_mode1    ;@ rst
1271	;@ #######
1272	;@ # jump
1273	;@ #######
1274	;@ jump to vector
1275	mov r2,r2,lsl#16
1276	mov r0,r2,lsr#16
1277	;@ rebase new pc
1278	rebasepc
1279
1280	b DoInterrupt_end
1281
1282DoInterrupt_mode1:
1283	ldr r0,[cpucontext,#z80pc_base]
1284	sub r0,z80pc,r0
1285.if FAST_Z80SP
1286	mov r1,r0, lsr #8
1287	strb r1,[z80sp,#-1]!
1288	strb r0,[z80sp,#-1]!
1289.else
1290	sub z80sp,z80sp,#2
1291	mov r1,z80sp
1292	writemem16
1293.endif
1294	mov r0,#0x38
1295	rebasepc
1296
1297	b DoInterrupt_end
1298
1299DoInterrupt_mode2:
1300	;@ push pc on stack
1301	ldr r0,[cpucontext,#z80pc_base]
1302	sub r0,z80pc,r0
1303.if FAST_Z80SP
1304	mov r1,r0, lsr #8
1305	strb r1,[z80sp,#-1]!
1306	strb r0,[z80sp,#-1]!
1307.else
1308	sub z80sp,z80sp,#2
1309	mov r1,z80sp
1310	writemem16
1311.endif
1312
1313	;@ get 1 byte vector address
1314	ldrb r0,[cpucontext, #z80irqvector]
1315	ldr r1,[cpucontext, #z80i]
1316	orr r0,r0,r1,lsr#16
1317
1318	;@ read new pc from vector address
1319	stmfd sp!,{r3,r12}
1320	mov lr,pc
1321	ldr pc,[cpucontext,#z80_read16]
1322
1323	;@ rebase new pc
1324	mov lr,pc
1325	ldr pc,[cpucontext,#z80_rebasePC] ;@ r0=new pc - external function sets z80pc_base and returns new z80pc in r0
1326	ldmfd sp!,{r3,r12}
1327	mov z80pc,r0
1328
1329DoInterrupt_end:
1330	;@ interupt accepted so callback irq interface
1331	ldr r0,[cpucontext, #z80irqcallback]
1332	tst r0,r0
1333	ldmeqfd sp!,{pc}
1334	stmfd sp!,{r3,r12}
1335	mov lr,pc
1336	mov pc,r0    ;@ call callback function
1337	ldmfd sp!,{r3,r12}
1338	ldmfd sp!,{pc} ;@ return
1339
1340.endif
1341
1342DAATable: .hword  (0x00<<8)|(1<<ZFlag)|(1<<VFlag)
1343         .hword  (0x01<<8)
1344         .hword  (0x02<<8)
1345         .hword  (0x03<<8)               |(1<<VFlag)
1346         .hword  (0x04<<8)
1347         .hword  (0x05<<8)               |(1<<VFlag)
1348         .hword  (0x06<<8)               |(1<<VFlag)
1349         .hword  (0x07<<8)
1350         .hword  (0x08<<8)
1351         .hword  (0x09<<8)            |(1<<VFlag)
1352         .hword  (0x10<<8)         |(1<<HFlag)
1353         .hword  (0x11<<8)         |(1<<HFlag)   |(1<<VFlag)
1354         .hword  (0x12<<8)         |(1<<HFlag)   |(1<<VFlag)
1355         .hword  (0x13<<8)         |(1<<HFlag)
1356         .hword  (0x14<<8)         |(1<<HFlag)   |(1<<VFlag)
1357         .hword  (0x15<<8)         |(1<<HFlag)
1358         .hword  (0x10<<8)
1359         .hword  (0x11<<8)               |(1<<VFlag)
1360         .hword  (0x12<<8)               |(1<<VFlag)
1361         .hword  (0x13<<8)
1362         .hword  (0x14<<8)               |(1<<VFlag)
1363         .hword  (0x15<<8)
1364         .hword  (0x16<<8)
1365         .hword  (0x17<<8)               |(1<<VFlag)
1366         .hword  (0x18<<8)            |(1<<VFlag)
1367         .hword  (0x19<<8)
1368         .hword  (0x20<<8)      |(1<<HFlag)
1369         .hword  (0x21<<8)      |(1<<HFlag)   |(1<<VFlag)
1370         .hword  (0x22<<8)      |(1<<HFlag)   |(1<<VFlag)
1371         .hword  (0x23<<8)      |(1<<HFlag)
1372         .hword  (0x24<<8)      |(1<<HFlag)   |(1<<VFlag)
1373         .hword  (0x25<<8)      |(1<<HFlag)
1374         .hword  (0x20<<8)
1375         .hword  (0x21<<8)            |(1<<VFlag)
1376         .hword  (0x22<<8)            |(1<<VFlag)
1377         .hword  (0x23<<8)
1378         .hword  (0x24<<8)            |(1<<VFlag)
1379         .hword  (0x25<<8)
1380         .hword  (0x26<<8)
1381         .hword  (0x27<<8)            |(1<<VFlag)
1382         .hword  (0x28<<8)         |(1<<VFlag)
1383         .hword  (0x29<<8)
1384         .hword  (0x30<<8)      |(1<<HFlag)   |(1<<VFlag)
1385         .hword  (0x31<<8)      |(1<<HFlag)
1386         .hword  (0x32<<8)      |(1<<HFlag)
1387         .hword  (0x33<<8)      |(1<<HFlag)   |(1<<VFlag)
1388         .hword  (0x34<<8)      |(1<<HFlag)
1389         .hword  (0x35<<8)      |(1<<HFlag)   |(1<<VFlag)
1390         .hword  (0x30<<8)            |(1<<VFlag)
1391         .hword  (0x31<<8)
1392         .hword  (0x32<<8)
1393         .hword  (0x33<<8)            |(1<<VFlag)
1394         .hword  (0x34<<8)
1395         .hword  (0x35<<8)            |(1<<VFlag)
1396         .hword  (0x36<<8)            |(1<<VFlag)
1397         .hword  (0x37<<8)
1398         .hword  (0x38<<8)
1399         .hword  (0x39<<8)         |(1<<VFlag)
1400         .hword  (0x40<<8)         |(1<<HFlag)
1401         .hword  (0x41<<8)         |(1<<HFlag)   |(1<<VFlag)
1402         .hword  (0x42<<8)         |(1<<HFlag)   |(1<<VFlag)
1403         .hword  (0x43<<8)         |(1<<HFlag)
1404         .hword  (0x44<<8)         |(1<<HFlag)   |(1<<VFlag)
1405         .hword  (0x45<<8)         |(1<<HFlag)
1406         .hword  (0x40<<8)
1407         .hword  (0x41<<8)               |(1<<VFlag)
1408         .hword  (0x42<<8)               |(1<<VFlag)
1409         .hword  (0x43<<8)
1410         .hword  (0x44<<8)               |(1<<VFlag)
1411         .hword  (0x45<<8)
1412         .hword  (0x46<<8)
1413         .hword  (0x47<<8)               |(1<<VFlag)
1414         .hword  (0x48<<8)            |(1<<VFlag)
1415         .hword  (0x49<<8)
1416         .hword  (0x50<<8)         |(1<<HFlag)   |(1<<VFlag)
1417         .hword  (0x51<<8)         |(1<<HFlag)
1418         .hword  (0x52<<8)         |(1<<HFlag)
1419         .hword  (0x53<<8)         |(1<<HFlag)   |(1<<VFlag)
1420         .hword  (0x54<<8)         |(1<<HFlag)
1421         .hword  (0x55<<8)         |(1<<HFlag)   |(1<<VFlag)
1422         .hword  (0x50<<8)               |(1<<VFlag)
1423         .hword  (0x51<<8)
1424         .hword  (0x52<<8)
1425         .hword  (0x53<<8)               |(1<<VFlag)
1426         .hword  (0x54<<8)
1427         .hword  (0x55<<8)               |(1<<VFlag)
1428         .hword  (0x56<<8)               |(1<<VFlag)
1429         .hword  (0x57<<8)
1430         .hword  (0x58<<8)
1431         .hword  (0x59<<8)            |(1<<VFlag)
1432         .hword  (0x60<<8)      |(1<<HFlag)   |(1<<VFlag)
1433         .hword  (0x61<<8)      |(1<<HFlag)
1434         .hword  (0x62<<8)      |(1<<HFlag)
1435         .hword  (0x63<<8)      |(1<<HFlag)   |(1<<VFlag)
1436         .hword  (0x64<<8)      |(1<<HFlag)
1437         .hword  (0x65<<8)      |(1<<HFlag)   |(1<<VFlag)
1438         .hword  (0x60<<8)            |(1<<VFlag)
1439         .hword  (0x61<<8)
1440         .hword  (0x62<<8)
1441         .hword  (0x63<<8)            |(1<<VFlag)
1442         .hword  (0x64<<8)
1443         .hword  (0x65<<8)            |(1<<VFlag)
1444         .hword  (0x66<<8)            |(1<<VFlag)
1445         .hword  (0x67<<8)
1446         .hword  (0x68<<8)
1447         .hword  (0x69<<8)         |(1<<VFlag)
1448         .hword  (0x70<<8)      |(1<<HFlag)
1449         .hword  (0x71<<8)      |(1<<HFlag)   |(1<<VFlag)
1450         .hword  (0x72<<8)      |(1<<HFlag)   |(1<<VFlag)
1451         .hword  (0x73<<8)      |(1<<HFlag)
1452         .hword  (0x74<<8)      |(1<<HFlag)   |(1<<VFlag)
1453         .hword  (0x75<<8)      |(1<<HFlag)
1454         .hword  (0x70<<8)
1455         .hword  (0x71<<8)            |(1<<VFlag)
1456         .hword  (0x72<<8)            |(1<<VFlag)
1457         .hword  (0x73<<8)
1458         .hword  (0x74<<8)            |(1<<VFlag)
1459         .hword  (0x75<<8)
1460         .hword  (0x76<<8)
1461         .hword  (0x77<<8)            |(1<<VFlag)
1462         .hword  (0x78<<8)         |(1<<VFlag)
1463         .hword  (0x79<<8)
1464         .hword  (0x80<<8)|(1<<SFlag)      |(1<<HFlag)
1465         .hword  (0x81<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)
1466         .hword  (0x82<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)
1467         .hword  (0x83<<8)|(1<<SFlag)      |(1<<HFlag)
1468         .hword  (0x84<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)
1469         .hword  (0x85<<8)|(1<<SFlag)      |(1<<HFlag)
1470         .hword  (0x80<<8)|(1<<SFlag)
1471         .hword  (0x81<<8)|(1<<SFlag)            |(1<<VFlag)
1472         .hword  (0x82<<8)|(1<<SFlag)            |(1<<VFlag)
1473         .hword  (0x83<<8)|(1<<SFlag)
1474         .hword  (0x84<<8)|(1<<SFlag)            |(1<<VFlag)
1475         .hword  (0x85<<8)|(1<<SFlag)
1476         .hword  (0x86<<8)|(1<<SFlag)
1477         .hword  (0x87<<8)|(1<<SFlag)            |(1<<VFlag)
1478         .hword  (0x88<<8)|(1<<SFlag)         |(1<<VFlag)
1479         .hword  (0x89<<8)|(1<<SFlag)
1480         .hword  (0x90<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)
1481         .hword  (0x91<<8)|(1<<SFlag)      |(1<<HFlag)
1482         .hword  (0x92<<8)|(1<<SFlag)      |(1<<HFlag)
1483         .hword  (0x93<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)
1484         .hword  (0x94<<8)|(1<<SFlag)      |(1<<HFlag)
1485         .hword  (0x95<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)
1486         .hword  (0x90<<8)|(1<<SFlag)            |(1<<VFlag)
1487         .hword  (0x91<<8)|(1<<SFlag)
1488         .hword  (0x92<<8)|(1<<SFlag)
1489         .hword  (0x93<<8)|(1<<SFlag)            |(1<<VFlag)
1490         .hword  (0x94<<8)|(1<<SFlag)
1491         .hword  (0x95<<8)|(1<<SFlag)            |(1<<VFlag)
1492         .hword  (0x96<<8)|(1<<SFlag)            |(1<<VFlag)
1493         .hword  (0x97<<8)|(1<<SFlag)
1494         .hword  (0x98<<8)|(1<<SFlag)
1495         .hword  (0x99<<8)|(1<<SFlag)         |(1<<VFlag)
1496         .hword  (0x00<<8)   |(1<<ZFlag)   |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1497         .hword  (0x01<<8)         |(1<<HFlag)         |(1<<CFlag)
1498         .hword  (0x02<<8)         |(1<<HFlag)         |(1<<CFlag)
1499         .hword  (0x03<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1500         .hword  (0x04<<8)         |(1<<HFlag)         |(1<<CFlag)
1501         .hword  (0x05<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1502         .hword  (0x00<<8)   |(1<<ZFlag)         |(1<<VFlag)   |(1<<CFlag)
1503         .hword  (0x01<<8)                     |(1<<CFlag)
1504         .hword  (0x02<<8)                     |(1<<CFlag)
1505         .hword  (0x03<<8)               |(1<<VFlag)   |(1<<CFlag)
1506         .hword  (0x04<<8)                     |(1<<CFlag)
1507         .hword  (0x05<<8)               |(1<<VFlag)   |(1<<CFlag)
1508         .hword  (0x06<<8)               |(1<<VFlag)   |(1<<CFlag)
1509         .hword  (0x07<<8)                     |(1<<CFlag)
1510         .hword  (0x08<<8)                  |(1<<CFlag)
1511         .hword  (0x09<<8)            |(1<<VFlag)   |(1<<CFlag)
1512         .hword  (0x10<<8)         |(1<<HFlag)         |(1<<CFlag)
1513         .hword  (0x11<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1514         .hword  (0x12<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1515         .hword  (0x13<<8)         |(1<<HFlag)         |(1<<CFlag)
1516         .hword  (0x14<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1517         .hword  (0x15<<8)         |(1<<HFlag)         |(1<<CFlag)
1518         .hword  (0x10<<8)                     |(1<<CFlag)
1519         .hword  (0x11<<8)               |(1<<VFlag)   |(1<<CFlag)
1520         .hword  (0x12<<8)               |(1<<VFlag)   |(1<<CFlag)
1521         .hword  (0x13<<8)                     |(1<<CFlag)
1522         .hword  (0x14<<8)               |(1<<VFlag)   |(1<<CFlag)
1523         .hword  (0x15<<8)                     |(1<<CFlag)
1524         .hword  (0x16<<8)                     |(1<<CFlag)
1525         .hword  (0x17<<8)               |(1<<VFlag)   |(1<<CFlag)
1526         .hword  (0x18<<8)            |(1<<VFlag)   |(1<<CFlag)
1527         .hword  (0x19<<8)                  |(1<<CFlag)
1528         .hword  (0x20<<8)      |(1<<HFlag)         |(1<<CFlag)
1529         .hword  (0x21<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1530         .hword  (0x22<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1531         .hword  (0x23<<8)      |(1<<HFlag)         |(1<<CFlag)
1532         .hword  (0x24<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1533         .hword  (0x25<<8)      |(1<<HFlag)         |(1<<CFlag)
1534         .hword  (0x20<<8)                  |(1<<CFlag)
1535         .hword  (0x21<<8)            |(1<<VFlag)   |(1<<CFlag)
1536         .hword  (0x22<<8)            |(1<<VFlag)   |(1<<CFlag)
1537         .hword  (0x23<<8)                  |(1<<CFlag)
1538         .hword  (0x24<<8)            |(1<<VFlag)   |(1<<CFlag)
1539         .hword  (0x25<<8)                  |(1<<CFlag)
1540         .hword  (0x26<<8)                  |(1<<CFlag)
1541         .hword  (0x27<<8)            |(1<<VFlag)   |(1<<CFlag)
1542         .hword  (0x28<<8)         |(1<<VFlag)   |(1<<CFlag)
1543         .hword  (0x29<<8)               |(1<<CFlag)
1544         .hword  (0x30<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1545         .hword  (0x31<<8)      |(1<<HFlag)         |(1<<CFlag)
1546         .hword  (0x32<<8)      |(1<<HFlag)         |(1<<CFlag)
1547         .hword  (0x33<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1548         .hword  (0x34<<8)      |(1<<HFlag)         |(1<<CFlag)
1549         .hword  (0x35<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1550         .hword  (0x30<<8)            |(1<<VFlag)   |(1<<CFlag)
1551         .hword  (0x31<<8)                  |(1<<CFlag)
1552         .hword  (0x32<<8)                  |(1<<CFlag)
1553         .hword  (0x33<<8)            |(1<<VFlag)   |(1<<CFlag)
1554         .hword  (0x34<<8)                  |(1<<CFlag)
1555         .hword  (0x35<<8)            |(1<<VFlag)   |(1<<CFlag)
1556         .hword  (0x36<<8)            |(1<<VFlag)   |(1<<CFlag)
1557         .hword  (0x37<<8)                  |(1<<CFlag)
1558         .hword  (0x38<<8)               |(1<<CFlag)
1559         .hword  (0x39<<8)         |(1<<VFlag)   |(1<<CFlag)
1560         .hword  (0x40<<8)         |(1<<HFlag)         |(1<<CFlag)
1561         .hword  (0x41<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1562         .hword  (0x42<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1563         .hword  (0x43<<8)         |(1<<HFlag)         |(1<<CFlag)
1564         .hword  (0x44<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1565         .hword  (0x45<<8)         |(1<<HFlag)         |(1<<CFlag)
1566         .hword  (0x40<<8)                     |(1<<CFlag)
1567         .hword  (0x41<<8)               |(1<<VFlag)   |(1<<CFlag)
1568         .hword  (0x42<<8)               |(1<<VFlag)   |(1<<CFlag)
1569         .hword  (0x43<<8)                     |(1<<CFlag)
1570         .hword  (0x44<<8)               |(1<<VFlag)   |(1<<CFlag)
1571         .hword  (0x45<<8)                     |(1<<CFlag)
1572         .hword  (0x46<<8)                     |(1<<CFlag)
1573         .hword  (0x47<<8)               |(1<<VFlag)   |(1<<CFlag)
1574         .hword  (0x48<<8)            |(1<<VFlag)   |(1<<CFlag)
1575         .hword  (0x49<<8)                  |(1<<CFlag)
1576         .hword  (0x50<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1577         .hword  (0x51<<8)         |(1<<HFlag)         |(1<<CFlag)
1578         .hword  (0x52<<8)         |(1<<HFlag)         |(1<<CFlag)
1579         .hword  (0x53<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1580         .hword  (0x54<<8)         |(1<<HFlag)         |(1<<CFlag)
1581         .hword  (0x55<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1582         .hword  (0x50<<8)               |(1<<VFlag)   |(1<<CFlag)
1583         .hword  (0x51<<8)                     |(1<<CFlag)
1584         .hword  (0x52<<8)                     |(1<<CFlag)
1585         .hword  (0x53<<8)               |(1<<VFlag)   |(1<<CFlag)
1586         .hword  (0x54<<8)                     |(1<<CFlag)
1587         .hword  (0x55<<8)               |(1<<VFlag)   |(1<<CFlag)
1588         .hword  (0x56<<8)               |(1<<VFlag)   |(1<<CFlag)
1589         .hword  (0x57<<8)                     |(1<<CFlag)
1590         .hword  (0x58<<8)                  |(1<<CFlag)
1591         .hword  (0x59<<8)            |(1<<VFlag)   |(1<<CFlag)
1592         .hword  (0x60<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1593         .hword  (0x61<<8)      |(1<<HFlag)         |(1<<CFlag)
1594         .hword  (0x62<<8)      |(1<<HFlag)         |(1<<CFlag)
1595         .hword  (0x63<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1596         .hword  (0x64<<8)      |(1<<HFlag)         |(1<<CFlag)
1597         .hword  (0x65<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1598         .hword  (0x60<<8)            |(1<<VFlag)   |(1<<CFlag)
1599         .hword  (0x61<<8)                  |(1<<CFlag)
1600         .hword  (0x62<<8)                  |(1<<CFlag)
1601         .hword  (0x63<<8)            |(1<<VFlag)   |(1<<CFlag)
1602         .hword  (0x64<<8)                  |(1<<CFlag)
1603         .hword  (0x65<<8)            |(1<<VFlag)   |(1<<CFlag)
1604         .hword  (0x66<<8)            |(1<<VFlag)   |(1<<CFlag)
1605         .hword  (0x67<<8)                  |(1<<CFlag)
1606         .hword  (0x68<<8)               |(1<<CFlag)
1607         .hword  (0x69<<8)         |(1<<VFlag)   |(1<<CFlag)
1608         .hword  (0x70<<8)      |(1<<HFlag)         |(1<<CFlag)
1609         .hword  (0x71<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1610         .hword  (0x72<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1611         .hword  (0x73<<8)      |(1<<HFlag)         |(1<<CFlag)
1612         .hword  (0x74<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1613         .hword  (0x75<<8)      |(1<<HFlag)         |(1<<CFlag)
1614         .hword  (0x70<<8)                  |(1<<CFlag)
1615         .hword  (0x71<<8)            |(1<<VFlag)   |(1<<CFlag)
1616         .hword  (0x72<<8)            |(1<<VFlag)   |(1<<CFlag)
1617         .hword  (0x73<<8)                  |(1<<CFlag)
1618         .hword  (0x74<<8)            |(1<<VFlag)   |(1<<CFlag)
1619         .hword  (0x75<<8)                  |(1<<CFlag)
1620         .hword  (0x76<<8)                  |(1<<CFlag)
1621         .hword  (0x77<<8)            |(1<<VFlag)   |(1<<CFlag)
1622         .hword  (0x78<<8)         |(1<<VFlag)   |(1<<CFlag)
1623         .hword  (0x79<<8)               |(1<<CFlag)
1624         .hword  (0x80<<8)|(1<<SFlag)      |(1<<HFlag)         |(1<<CFlag)
1625         .hword  (0x81<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1626         .hword  (0x82<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1627         .hword  (0x83<<8)|(1<<SFlag)      |(1<<HFlag)         |(1<<CFlag)
1628         .hword  (0x84<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1629         .hword  (0x85<<8)|(1<<SFlag)      |(1<<HFlag)         |(1<<CFlag)
1630         .hword  (0x80<<8)|(1<<SFlag)                  |(1<<CFlag)
1631         .hword  (0x81<<8)|(1<<SFlag)            |(1<<VFlag)   |(1<<CFlag)
1632         .hword  (0x82<<8)|(1<<SFlag)            |(1<<VFlag)   |(1<<CFlag)
1633         .hword  (0x83<<8)|(1<<SFlag)                  |(1<<CFlag)
1634         .hword  (0x84<<8)|(1<<SFlag)            |(1<<VFlag)   |(1<<CFlag)
1635         .hword  (0x85<<8)|(1<<SFlag)                  |(1<<CFlag)
1636         .hword  (0x86<<8)|(1<<SFlag)                  |(1<<CFlag)
1637         .hword  (0x87<<8)|(1<<SFlag)            |(1<<VFlag)   |(1<<CFlag)
1638         .hword  (0x88<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)
1639         .hword  (0x89<<8)|(1<<SFlag)               |(1<<CFlag)
1640         .hword  (0x90<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1641         .hword  (0x91<<8)|(1<<SFlag)      |(1<<HFlag)         |(1<<CFlag)
1642         .hword  (0x92<<8)|(1<<SFlag)      |(1<<HFlag)         |(1<<CFlag)
1643         .hword  (0x93<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1644         .hword  (0x94<<8)|(1<<SFlag)      |(1<<HFlag)         |(1<<CFlag)
1645         .hword  (0x95<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1646         .hword  (0x90<<8)|(1<<SFlag)            |(1<<VFlag)   |(1<<CFlag)
1647         .hword  (0x91<<8)|(1<<SFlag)                  |(1<<CFlag)
1648         .hword  (0x92<<8)|(1<<SFlag)                  |(1<<CFlag)
1649         .hword  (0x93<<8)|(1<<SFlag)            |(1<<VFlag)   |(1<<CFlag)
1650         .hword  (0x94<<8)|(1<<SFlag)                  |(1<<CFlag)
1651         .hword  (0x95<<8)|(1<<SFlag)            |(1<<VFlag)   |(1<<CFlag)
1652         .hword  (0x96<<8)|(1<<SFlag)            |(1<<VFlag)   |(1<<CFlag)
1653         .hword  (0x97<<8)|(1<<SFlag)                  |(1<<CFlag)
1654         .hword  (0x98<<8)|(1<<SFlag)               |(1<<CFlag)
1655         .hword  (0x99<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)
1656         .hword  (0xA0<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1657         .hword  (0xA1<<8)|(1<<SFlag)   |(1<<HFlag)         |(1<<CFlag)
1658         .hword  (0xA2<<8)|(1<<SFlag)   |(1<<HFlag)         |(1<<CFlag)
1659         .hword  (0xA3<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1660         .hword  (0xA4<<8)|(1<<SFlag)   |(1<<HFlag)         |(1<<CFlag)
1661         .hword  (0xA5<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1662         .hword  (0xA0<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)
1663         .hword  (0xA1<<8)|(1<<SFlag)               |(1<<CFlag)
1664         .hword  (0xA2<<8)|(1<<SFlag)               |(1<<CFlag)
1665         .hword  (0xA3<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)
1666         .hword  (0xA4<<8)|(1<<SFlag)               |(1<<CFlag)
1667         .hword  (0xA5<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)
1668         .hword  (0xA6<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)
1669         .hword  (0xA7<<8)|(1<<SFlag)               |(1<<CFlag)
1670         .hword  (0xA8<<8)|(1<<SFlag)            |(1<<CFlag)
1671         .hword  (0xA9<<8)|(1<<SFlag)      |(1<<VFlag)   |(1<<CFlag)
1672         .hword  (0xB0<<8)|(1<<SFlag)   |(1<<HFlag)         |(1<<CFlag)
1673         .hword  (0xB1<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1674         .hword  (0xB2<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1675         .hword  (0xB3<<8)|(1<<SFlag)   |(1<<HFlag)         |(1<<CFlag)
1676         .hword  (0xB4<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1677         .hword  (0xB5<<8)|(1<<SFlag)   |(1<<HFlag)         |(1<<CFlag)
1678         .hword  (0xB0<<8)|(1<<SFlag)               |(1<<CFlag)
1679         .hword  (0xB1<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)
1680         .hword  (0xB2<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)
1681         .hword  (0xB3<<8)|(1<<SFlag)               |(1<<CFlag)
1682         .hword  (0xB4<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)
1683         .hword  (0xB5<<8)|(1<<SFlag)               |(1<<CFlag)
1684         .hword  (0xB6<<8)|(1<<SFlag)               |(1<<CFlag)
1685         .hword  (0xB7<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)
1686         .hword  (0xB8<<8)|(1<<SFlag)      |(1<<VFlag)   |(1<<CFlag)
1687         .hword  (0xB9<<8)|(1<<SFlag)            |(1<<CFlag)
1688         .hword  (0xC0<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1689         .hword  (0xC1<<8)|(1<<SFlag)      |(1<<HFlag)         |(1<<CFlag)
1690         .hword  (0xC2<<8)|(1<<SFlag)      |(1<<HFlag)         |(1<<CFlag)
1691         .hword  (0xC3<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1692         .hword  (0xC4<<8)|(1<<SFlag)      |(1<<HFlag)         |(1<<CFlag)
1693         .hword  (0xC5<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1694         .hword  (0xC0<<8)|(1<<SFlag)            |(1<<VFlag)   |(1<<CFlag)
1695         .hword  (0xC1<<8)|(1<<SFlag)                  |(1<<CFlag)
1696         .hword  (0xC2<<8)|(1<<SFlag)                  |(1<<CFlag)
1697         .hword  (0xC3<<8)|(1<<SFlag)            |(1<<VFlag)   |(1<<CFlag)
1698         .hword  (0xC4<<8)|(1<<SFlag)                  |(1<<CFlag)
1699         .hword  (0xC5<<8)|(1<<SFlag)            |(1<<VFlag)   |(1<<CFlag)
1700         .hword  (0xC6<<8)|(1<<SFlag)            |(1<<VFlag)   |(1<<CFlag)
1701         .hword  (0xC7<<8)|(1<<SFlag)                  |(1<<CFlag)
1702         .hword  (0xC8<<8)|(1<<SFlag)               |(1<<CFlag)
1703         .hword  (0xC9<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)
1704         .hword  (0xD0<<8)|(1<<SFlag)      |(1<<HFlag)         |(1<<CFlag)
1705         .hword  (0xD1<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1706         .hword  (0xD2<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1707         .hword  (0xD3<<8)|(1<<SFlag)      |(1<<HFlag)         |(1<<CFlag)
1708         .hword  (0xD4<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1709         .hword  (0xD5<<8)|(1<<SFlag)      |(1<<HFlag)         |(1<<CFlag)
1710         .hword  (0xD0<<8)|(1<<SFlag)                  |(1<<CFlag)
1711         .hword  (0xD1<<8)|(1<<SFlag)            |(1<<VFlag)   |(1<<CFlag)
1712         .hword  (0xD2<<8)|(1<<SFlag)            |(1<<VFlag)   |(1<<CFlag)
1713         .hword  (0xD3<<8)|(1<<SFlag)                  |(1<<CFlag)
1714         .hword  (0xD4<<8)|(1<<SFlag)            |(1<<VFlag)   |(1<<CFlag)
1715         .hword  (0xD5<<8)|(1<<SFlag)                  |(1<<CFlag)
1716         .hword  (0xD6<<8)|(1<<SFlag)                  |(1<<CFlag)
1717         .hword  (0xD7<<8)|(1<<SFlag)            |(1<<VFlag)   |(1<<CFlag)
1718         .hword  (0xD8<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)
1719         .hword  (0xD9<<8)|(1<<SFlag)               |(1<<CFlag)
1720         .hword  (0xE0<<8)|(1<<SFlag)   |(1<<HFlag)         |(1<<CFlag)
1721         .hword  (0xE1<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1722         .hword  (0xE2<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1723         .hword  (0xE3<<8)|(1<<SFlag)   |(1<<HFlag)         |(1<<CFlag)
1724         .hword  (0xE4<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1725         .hword  (0xE5<<8)|(1<<SFlag)   |(1<<HFlag)         |(1<<CFlag)
1726         .hword  (0xE0<<8)|(1<<SFlag)               |(1<<CFlag)
1727         .hword  (0xE1<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)
1728         .hword  (0xE2<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)
1729         .hword  (0xE3<<8)|(1<<SFlag)               |(1<<CFlag)
1730         .hword  (0xE4<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)
1731         .hword  (0xE5<<8)|(1<<SFlag)               |(1<<CFlag)
1732         .hword  (0xE6<<8)|(1<<SFlag)               |(1<<CFlag)
1733         .hword  (0xE7<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)
1734         .hword  (0xE8<<8)|(1<<SFlag)      |(1<<VFlag)   |(1<<CFlag)
1735         .hword  (0xE9<<8)|(1<<SFlag)            |(1<<CFlag)
1736         .hword  (0xF0<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1737         .hword  (0xF1<<8)|(1<<SFlag)   |(1<<HFlag)         |(1<<CFlag)
1738         .hword  (0xF2<<8)|(1<<SFlag)   |(1<<HFlag)         |(1<<CFlag)
1739         .hword  (0xF3<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1740         .hword  (0xF4<<8)|(1<<SFlag)   |(1<<HFlag)         |(1<<CFlag)
1741         .hword  (0xF5<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1742         .hword  (0xF0<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)
1743         .hword  (0xF1<<8)|(1<<SFlag)               |(1<<CFlag)
1744         .hword  (0xF2<<8)|(1<<SFlag)               |(1<<CFlag)
1745         .hword  (0xF3<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)
1746         .hword  (0xF4<<8)|(1<<SFlag)               |(1<<CFlag)
1747         .hword  (0xF5<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)
1748         .hword  (0xF6<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)
1749         .hword  (0xF7<<8)|(1<<SFlag)               |(1<<CFlag)
1750         .hword  (0xF8<<8)|(1<<SFlag)            |(1<<CFlag)
1751         .hword  (0xF9<<8)|(1<<SFlag)      |(1<<VFlag)   |(1<<CFlag)
1752         .hword  (0x00<<8)   |(1<<ZFlag)   |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1753         .hword  (0x01<<8)         |(1<<HFlag)         |(1<<CFlag)
1754         .hword  (0x02<<8)         |(1<<HFlag)         |(1<<CFlag)
1755         .hword  (0x03<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1756         .hword  (0x04<<8)         |(1<<HFlag)         |(1<<CFlag)
1757         .hword  (0x05<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1758         .hword  (0x00<<8)   |(1<<ZFlag)         |(1<<VFlag)   |(1<<CFlag)
1759         .hword  (0x01<<8)                     |(1<<CFlag)
1760         .hword  (0x02<<8)                     |(1<<CFlag)
1761         .hword  (0x03<<8)               |(1<<VFlag)   |(1<<CFlag)
1762         .hword  (0x04<<8)                     |(1<<CFlag)
1763         .hword  (0x05<<8)               |(1<<VFlag)   |(1<<CFlag)
1764         .hword  (0x06<<8)               |(1<<VFlag)   |(1<<CFlag)
1765         .hword  (0x07<<8)                     |(1<<CFlag)
1766         .hword  (0x08<<8)                  |(1<<CFlag)
1767         .hword  (0x09<<8)            |(1<<VFlag)   |(1<<CFlag)
1768         .hword  (0x10<<8)         |(1<<HFlag)         |(1<<CFlag)
1769         .hword  (0x11<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1770         .hword  (0x12<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1771         .hword  (0x13<<8)         |(1<<HFlag)         |(1<<CFlag)
1772         .hword  (0x14<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1773         .hword  (0x15<<8)         |(1<<HFlag)         |(1<<CFlag)
1774         .hword  (0x10<<8)                     |(1<<CFlag)
1775         .hword  (0x11<<8)               |(1<<VFlag)   |(1<<CFlag)
1776         .hword  (0x12<<8)               |(1<<VFlag)   |(1<<CFlag)
1777         .hword  (0x13<<8)                     |(1<<CFlag)
1778         .hword  (0x14<<8)               |(1<<VFlag)   |(1<<CFlag)
1779         .hword  (0x15<<8)                     |(1<<CFlag)
1780         .hword  (0x16<<8)                     |(1<<CFlag)
1781         .hword  (0x17<<8)               |(1<<VFlag)   |(1<<CFlag)
1782         .hword  (0x18<<8)            |(1<<VFlag)   |(1<<CFlag)
1783         .hword  (0x19<<8)                  |(1<<CFlag)
1784         .hword  (0x20<<8)      |(1<<HFlag)         |(1<<CFlag)
1785         .hword  (0x21<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1786         .hword  (0x22<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1787         .hword  (0x23<<8)      |(1<<HFlag)         |(1<<CFlag)
1788         .hword  (0x24<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1789         .hword  (0x25<<8)      |(1<<HFlag)         |(1<<CFlag)
1790         .hword  (0x20<<8)                  |(1<<CFlag)
1791         .hword  (0x21<<8)            |(1<<VFlag)   |(1<<CFlag)
1792         .hword  (0x22<<8)            |(1<<VFlag)   |(1<<CFlag)
1793         .hword  (0x23<<8)                  |(1<<CFlag)
1794         .hword  (0x24<<8)            |(1<<VFlag)   |(1<<CFlag)
1795         .hword  (0x25<<8)                  |(1<<CFlag)
1796         .hword  (0x26<<8)                  |(1<<CFlag)
1797         .hword  (0x27<<8)            |(1<<VFlag)   |(1<<CFlag)
1798         .hword  (0x28<<8)         |(1<<VFlag)   |(1<<CFlag)
1799         .hword  (0x29<<8)               |(1<<CFlag)
1800         .hword  (0x30<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1801         .hword  (0x31<<8)      |(1<<HFlag)         |(1<<CFlag)
1802         .hword  (0x32<<8)      |(1<<HFlag)         |(1<<CFlag)
1803         .hword  (0x33<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1804         .hword  (0x34<<8)      |(1<<HFlag)         |(1<<CFlag)
1805         .hword  (0x35<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1806         .hword  (0x30<<8)            |(1<<VFlag)   |(1<<CFlag)
1807         .hword  (0x31<<8)                  |(1<<CFlag)
1808         .hword  (0x32<<8)                  |(1<<CFlag)
1809         .hword  (0x33<<8)            |(1<<VFlag)   |(1<<CFlag)
1810         .hword  (0x34<<8)                  |(1<<CFlag)
1811         .hword  (0x35<<8)            |(1<<VFlag)   |(1<<CFlag)
1812         .hword  (0x36<<8)            |(1<<VFlag)   |(1<<CFlag)
1813         .hword  (0x37<<8)                  |(1<<CFlag)
1814         .hword  (0x38<<8)               |(1<<CFlag)
1815         .hword  (0x39<<8)         |(1<<VFlag)   |(1<<CFlag)
1816         .hword  (0x40<<8)         |(1<<HFlag)         |(1<<CFlag)
1817         .hword  (0x41<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1818         .hword  (0x42<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1819         .hword  (0x43<<8)         |(1<<HFlag)         |(1<<CFlag)
1820         .hword  (0x44<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1821         .hword  (0x45<<8)         |(1<<HFlag)         |(1<<CFlag)
1822         .hword  (0x40<<8)                     |(1<<CFlag)
1823         .hword  (0x41<<8)               |(1<<VFlag)   |(1<<CFlag)
1824         .hword  (0x42<<8)               |(1<<VFlag)   |(1<<CFlag)
1825         .hword  (0x43<<8)                     |(1<<CFlag)
1826         .hword  (0x44<<8)               |(1<<VFlag)   |(1<<CFlag)
1827         .hword  (0x45<<8)                     |(1<<CFlag)
1828         .hword  (0x46<<8)                     |(1<<CFlag)
1829         .hword  (0x47<<8)               |(1<<VFlag)   |(1<<CFlag)
1830         .hword  (0x48<<8)            |(1<<VFlag)   |(1<<CFlag)
1831         .hword  (0x49<<8)                  |(1<<CFlag)
1832         .hword  (0x50<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1833         .hword  (0x51<<8)         |(1<<HFlag)         |(1<<CFlag)
1834         .hword  (0x52<<8)         |(1<<HFlag)         |(1<<CFlag)
1835         .hword  (0x53<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1836         .hword  (0x54<<8)         |(1<<HFlag)         |(1<<CFlag)
1837         .hword  (0x55<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1838         .hword  (0x50<<8)               |(1<<VFlag)   |(1<<CFlag)
1839         .hword  (0x51<<8)                     |(1<<CFlag)
1840         .hword  (0x52<<8)                     |(1<<CFlag)
1841         .hword  (0x53<<8)               |(1<<VFlag)   |(1<<CFlag)
1842         .hword  (0x54<<8)                     |(1<<CFlag)
1843         .hword  (0x55<<8)               |(1<<VFlag)   |(1<<CFlag)
1844         .hword  (0x56<<8)               |(1<<VFlag)   |(1<<CFlag)
1845         .hword  (0x57<<8)                     |(1<<CFlag)
1846         .hword  (0x58<<8)                  |(1<<CFlag)
1847         .hword  (0x59<<8)            |(1<<VFlag)   |(1<<CFlag)
1848         .hword  (0x60<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1849         .hword  (0x61<<8)      |(1<<HFlag)         |(1<<CFlag)
1850         .hword  (0x62<<8)      |(1<<HFlag)         |(1<<CFlag)
1851         .hword  (0x63<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1852         .hword  (0x64<<8)      |(1<<HFlag)         |(1<<CFlag)
1853         .hword  (0x65<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
1854         .hword  (0x06<<8)               |(1<<VFlag)
1855         .hword  (0x07<<8)
1856         .hword  (0x08<<8)
1857         .hword  (0x09<<8)            |(1<<VFlag)
1858         .hword  (0x0A<<8)            |(1<<VFlag)
1859         .hword  (0x0B<<8)
1860         .hword  (0x0C<<8)            |(1<<VFlag)
1861         .hword  (0x0D<<8)
1862         .hword  (0x0E<<8)
1863         .hword  (0x0F<<8)            |(1<<VFlag)
1864         .hword  (0x10<<8)         |(1<<HFlag)
1865         .hword  (0x11<<8)         |(1<<HFlag)   |(1<<VFlag)
1866         .hword  (0x12<<8)         |(1<<HFlag)   |(1<<VFlag)
1867         .hword  (0x13<<8)         |(1<<HFlag)
1868         .hword  (0x14<<8)         |(1<<HFlag)   |(1<<VFlag)
1869         .hword  (0x15<<8)         |(1<<HFlag)
1870         .hword  (0x16<<8)
1871         .hword  (0x17<<8)               |(1<<VFlag)
1872         .hword  (0x18<<8)            |(1<<VFlag)
1873         .hword  (0x19<<8)
1874         .hword  (0x1A<<8)
1875         .hword  (0x1B<<8)            |(1<<VFlag)
1876         .hword  (0x1C<<8)
1877         .hword  (0x1D<<8)            |(1<<VFlag)
1878         .hword  (0x1E<<8)            |(1<<VFlag)
1879         .hword  (0x1F<<8)
1880         .hword  (0x20<<8)      |(1<<HFlag)
1881         .hword  (0x21<<8)      |(1<<HFlag)   |(1<<VFlag)
1882         .hword  (0x22<<8)      |(1<<HFlag)   |(1<<VFlag)
1883         .hword  (0x23<<8)      |(1<<HFlag)
1884         .hword  (0x24<<8)      |(1<<HFlag)   |(1<<VFlag)
1885         .hword  (0x25<<8)      |(1<<HFlag)
1886         .hword  (0x26<<8)
1887         .hword  (0x27<<8)            |(1<<VFlag)
1888         .hword  (0x28<<8)         |(1<<VFlag)
1889         .hword  (0x29<<8)
1890         .hword  (0x2A<<8)
1891         .hword  (0x2B<<8)         |(1<<VFlag)
1892         .hword  (0x2C<<8)
1893         .hword  (0x2D<<8)         |(1<<VFlag)
1894         .hword  (0x2E<<8)         |(1<<VFlag)
1895         .hword  (0x2F<<8)
1896         .hword  (0x30<<8)      |(1<<HFlag)   |(1<<VFlag)
1897         .hword  (0x31<<8)      |(1<<HFlag)
1898         .hword  (0x32<<8)      |(1<<HFlag)
1899         .hword  (0x33<<8)      |(1<<HFlag)   |(1<<VFlag)
1900         .hword  (0x34<<8)      |(1<<HFlag)
1901         .hword  (0x35<<8)      |(1<<HFlag)   |(1<<VFlag)
1902         .hword  (0x36<<8)            |(1<<VFlag)
1903         .hword  (0x37<<8)
1904         .hword  (0x38<<8)
1905         .hword  (0x39<<8)         |(1<<VFlag)
1906         .hword  (0x3A<<8)         |(1<<VFlag)
1907         .hword  (0x3B<<8)
1908         .hword  (0x3C<<8)         |(1<<VFlag)
1909         .hword  (0x3D<<8)
1910         .hword  (0x3E<<8)
1911         .hword  (0x3F<<8)         |(1<<VFlag)
1912         .hword  (0x40<<8)         |(1<<HFlag)
1913         .hword  (0x41<<8)         |(1<<HFlag)   |(1<<VFlag)
1914         .hword  (0x42<<8)         |(1<<HFlag)   |(1<<VFlag)
1915         .hword  (0x43<<8)         |(1<<HFlag)
1916         .hword  (0x44<<8)         |(1<<HFlag)   |(1<<VFlag)
1917         .hword  (0x45<<8)         |(1<<HFlag)
1918         .hword  (0x46<<8)
1919         .hword  (0x47<<8)               |(1<<VFlag)
1920         .hword  (0x48<<8)            |(1<<VFlag)
1921         .hword  (0x49<<8)
1922         .hword  (0x4A<<8)
1923         .hword  (0x4B<<8)            |(1<<VFlag)
1924         .hword  (0x4C<<8)
1925         .hword  (0x4D<<8)            |(1<<VFlag)
1926         .hword  (0x4E<<8)            |(1<<VFlag)
1927         .hword  (0x4F<<8)
1928         .hword  (0x50<<8)         |(1<<HFlag)   |(1<<VFlag)
1929         .hword  (0x51<<8)         |(1<<HFlag)
1930         .hword  (0x52<<8)         |(1<<HFlag)
1931         .hword  (0x53<<8)         |(1<<HFlag)   |(1<<VFlag)
1932         .hword  (0x54<<8)         |(1<<HFlag)
1933         .hword  (0x55<<8)         |(1<<HFlag)   |(1<<VFlag)
1934         .hword  (0x56<<8)               |(1<<VFlag)
1935         .hword  (0x57<<8)
1936         .hword  (0x58<<8)
1937         .hword  (0x59<<8)            |(1<<VFlag)
1938         .hword  (0x5A<<8)            |(1<<VFlag)
1939         .hword  (0x5B<<8)
1940         .hword  (0x5C<<8)            |(1<<VFlag)
1941         .hword  (0x5D<<8)
1942         .hword  (0x5E<<8)
1943         .hword  (0x5F<<8)            |(1<<VFlag)
1944         .hword  (0x60<<8)      |(1<<HFlag)   |(1<<VFlag)
1945         .hword  (0x61<<8)      |(1<<HFlag)
1946         .hword  (0x62<<8)      |(1<<HFlag)
1947         .hword  (0x63<<8)      |(1<<HFlag)   |(1<<VFlag)
1948         .hword  (0x64<<8)      |(1<<HFlag)
1949         .hword  (0x65<<8)      |(1<<HFlag)   |(1<<VFlag)
1950         .hword  (0x66<<8)            |(1<<VFlag)
1951         .hword  (0x67<<8)
1952         .hword  (0x68<<8)
1953         .hword  (0x69<<8)         |(1<<VFlag)
1954         .hword  (0x6A<<8)         |(1<<VFlag)
1955         .hword  (0x6B<<8)
1956         .hword  (0x6C<<8)         |(1<<VFlag)
1957         .hword  (0x6D<<8)
1958         .hword  (0x6E<<8)
1959         .hword  (0x6F<<8)         |(1<<VFlag)
1960         .hword  (0x70<<8)      |(1<<HFlag)
1961         .hword  (0x71<<8)      |(1<<HFlag)   |(1<<VFlag)
1962         .hword  (0x72<<8)      |(1<<HFlag)   |(1<<VFlag)
1963         .hword  (0x73<<8)      |(1<<HFlag)
1964         .hword  (0x74<<8)      |(1<<HFlag)   |(1<<VFlag)
1965         .hword  (0x75<<8)      |(1<<HFlag)
1966         .hword  (0x76<<8)
1967         .hword  (0x77<<8)            |(1<<VFlag)
1968         .hword  (0x78<<8)         |(1<<VFlag)
1969         .hword  (0x79<<8)
1970         .hword  (0x7A<<8)
1971         .hword  (0x7B<<8)         |(1<<VFlag)
1972         .hword  (0x7C<<8)
1973         .hword  (0x7D<<8)         |(1<<VFlag)
1974         .hword  (0x7E<<8)         |(1<<VFlag)
1975         .hword  (0x7F<<8)
1976         .hword  (0x80<<8)|(1<<SFlag)      |(1<<HFlag)
1977         .hword  (0x81<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)
1978         .hword  (0x82<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)
1979         .hword  (0x83<<8)|(1<<SFlag)      |(1<<HFlag)
1980         .hword  (0x84<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)
1981         .hword  (0x85<<8)|(1<<SFlag)      |(1<<HFlag)
1982         .hword  (0x86<<8)|(1<<SFlag)
1983         .hword  (0x87<<8)|(1<<SFlag)            |(1<<VFlag)
1984         .hword  (0x88<<8)|(1<<SFlag)         |(1<<VFlag)
1985         .hword  (0x89<<8)|(1<<SFlag)
1986         .hword  (0x8A<<8)|(1<<SFlag)
1987         .hword  (0x8B<<8)|(1<<SFlag)         |(1<<VFlag)
1988         .hword  (0x8C<<8)|(1<<SFlag)
1989         .hword  (0x8D<<8)|(1<<SFlag)         |(1<<VFlag)
1990         .hword  (0x8E<<8)|(1<<SFlag)         |(1<<VFlag)
1991         .hword  (0x8F<<8)|(1<<SFlag)
1992         .hword  (0x90<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)
1993         .hword  (0x91<<8)|(1<<SFlag)      |(1<<HFlag)
1994         .hword  (0x92<<8)|(1<<SFlag)      |(1<<HFlag)
1995         .hword  (0x93<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)
1996         .hword  (0x94<<8)|(1<<SFlag)      |(1<<HFlag)
1997         .hword  (0x95<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)
1998         .hword  (0x96<<8)|(1<<SFlag)            |(1<<VFlag)
1999         .hword  (0x97<<8)|(1<<SFlag)
2000         .hword  (0x98<<8)|(1<<SFlag)
2001         .hword  (0x99<<8)|(1<<SFlag)         |(1<<VFlag)
2002         .hword  (0x9A<<8)|(1<<SFlag)         |(1<<VFlag)
2003         .hword  (0x9B<<8)|(1<<SFlag)
2004         .hword  (0x9C<<8)|(1<<SFlag)         |(1<<VFlag)
2005         .hword  (0x9D<<8)|(1<<SFlag)
2006         .hword  (0x9E<<8)|(1<<SFlag)
2007         .hword  (0x9F<<8)|(1<<SFlag)         |(1<<VFlag)
2008         .hword  (0x00<<8)   |(1<<ZFlag)   |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2009         .hword  (0x01<<8)         |(1<<HFlag)         |(1<<CFlag)
2010         .hword  (0x02<<8)         |(1<<HFlag)         |(1<<CFlag)
2011         .hword  (0x03<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2012         .hword  (0x04<<8)         |(1<<HFlag)         |(1<<CFlag)
2013         .hword  (0x05<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2014         .hword  (0x06<<8)               |(1<<VFlag)   |(1<<CFlag)
2015         .hword  (0x07<<8)                     |(1<<CFlag)
2016         .hword  (0x08<<8)                  |(1<<CFlag)
2017         .hword  (0x09<<8)            |(1<<VFlag)   |(1<<CFlag)
2018         .hword  (0x0A<<8)            |(1<<VFlag)   |(1<<CFlag)
2019         .hword  (0x0B<<8)                  |(1<<CFlag)
2020         .hword  (0x0C<<8)            |(1<<VFlag)   |(1<<CFlag)
2021         .hword  (0x0D<<8)                  |(1<<CFlag)
2022         .hword  (0x0E<<8)                  |(1<<CFlag)
2023         .hword  (0x0F<<8)            |(1<<VFlag)   |(1<<CFlag)
2024         .hword  (0x10<<8)         |(1<<HFlag)         |(1<<CFlag)
2025         .hword  (0x11<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2026         .hword  (0x12<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2027         .hword  (0x13<<8)         |(1<<HFlag)         |(1<<CFlag)
2028         .hword  (0x14<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2029         .hword  (0x15<<8)         |(1<<HFlag)         |(1<<CFlag)
2030         .hword  (0x16<<8)                     |(1<<CFlag)
2031         .hword  (0x17<<8)               |(1<<VFlag)   |(1<<CFlag)
2032         .hword  (0x18<<8)            |(1<<VFlag)   |(1<<CFlag)
2033         .hword  (0x19<<8)                  |(1<<CFlag)
2034         .hword  (0x1A<<8)                  |(1<<CFlag)
2035         .hword  (0x1B<<8)            |(1<<VFlag)   |(1<<CFlag)
2036         .hword  (0x1C<<8)                  |(1<<CFlag)
2037         .hword  (0x1D<<8)            |(1<<VFlag)   |(1<<CFlag)
2038         .hword  (0x1E<<8)            |(1<<VFlag)   |(1<<CFlag)
2039         .hword  (0x1F<<8)                  |(1<<CFlag)
2040         .hword  (0x20<<8)      |(1<<HFlag)         |(1<<CFlag)
2041         .hword  (0x21<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2042         .hword  (0x22<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2043         .hword  (0x23<<8)      |(1<<HFlag)         |(1<<CFlag)
2044         .hword  (0x24<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2045         .hword  (0x25<<8)      |(1<<HFlag)         |(1<<CFlag)
2046         .hword  (0x26<<8)                  |(1<<CFlag)
2047         .hword  (0x27<<8)            |(1<<VFlag)   |(1<<CFlag)
2048         .hword  (0x28<<8)         |(1<<VFlag)   |(1<<CFlag)
2049         .hword  (0x29<<8)               |(1<<CFlag)
2050         .hword  (0x2A<<8)               |(1<<CFlag)
2051         .hword  (0x2B<<8)         |(1<<VFlag)   |(1<<CFlag)
2052         .hword  (0x2C<<8)               |(1<<CFlag)
2053         .hword  (0x2D<<8)         |(1<<VFlag)   |(1<<CFlag)
2054         .hword  (0x2E<<8)         |(1<<VFlag)   |(1<<CFlag)
2055         .hword  (0x2F<<8)               |(1<<CFlag)
2056         .hword  (0x30<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2057         .hword  (0x31<<8)      |(1<<HFlag)         |(1<<CFlag)
2058         .hword  (0x32<<8)      |(1<<HFlag)         |(1<<CFlag)
2059         .hword  (0x33<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2060         .hword  (0x34<<8)      |(1<<HFlag)         |(1<<CFlag)
2061         .hword  (0x35<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2062         .hword  (0x36<<8)            |(1<<VFlag)   |(1<<CFlag)
2063         .hword  (0x37<<8)                  |(1<<CFlag)
2064         .hword  (0x38<<8)               |(1<<CFlag)
2065         .hword  (0x39<<8)         |(1<<VFlag)   |(1<<CFlag)
2066         .hword  (0x3A<<8)         |(1<<VFlag)   |(1<<CFlag)
2067         .hword  (0x3B<<8)               |(1<<CFlag)
2068         .hword  (0x3C<<8)         |(1<<VFlag)   |(1<<CFlag)
2069         .hword  (0x3D<<8)               |(1<<CFlag)
2070         .hword  (0x3E<<8)               |(1<<CFlag)
2071         .hword  (0x3F<<8)         |(1<<VFlag)   |(1<<CFlag)
2072         .hword  (0x40<<8)         |(1<<HFlag)         |(1<<CFlag)
2073         .hword  (0x41<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2074         .hword  (0x42<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2075         .hword  (0x43<<8)         |(1<<HFlag)         |(1<<CFlag)
2076         .hword  (0x44<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2077         .hword  (0x45<<8)         |(1<<HFlag)         |(1<<CFlag)
2078         .hword  (0x46<<8)                     |(1<<CFlag)
2079         .hword  (0x47<<8)               |(1<<VFlag)   |(1<<CFlag)
2080         .hword  (0x48<<8)            |(1<<VFlag)   |(1<<CFlag)
2081         .hword  (0x49<<8)                  |(1<<CFlag)
2082         .hword  (0x4A<<8)                  |(1<<CFlag)
2083         .hword  (0x4B<<8)            |(1<<VFlag)   |(1<<CFlag)
2084         .hword  (0x4C<<8)                  |(1<<CFlag)
2085         .hword  (0x4D<<8)            |(1<<VFlag)   |(1<<CFlag)
2086         .hword  (0x4E<<8)            |(1<<VFlag)   |(1<<CFlag)
2087         .hword  (0x4F<<8)                  |(1<<CFlag)
2088         .hword  (0x50<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2089         .hword  (0x51<<8)         |(1<<HFlag)         |(1<<CFlag)
2090         .hword  (0x52<<8)         |(1<<HFlag)         |(1<<CFlag)
2091         .hword  (0x53<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2092         .hword  (0x54<<8)         |(1<<HFlag)         |(1<<CFlag)
2093         .hword  (0x55<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2094         .hword  (0x56<<8)               |(1<<VFlag)   |(1<<CFlag)
2095         .hword  (0x57<<8)                     |(1<<CFlag)
2096         .hword  (0x58<<8)                  |(1<<CFlag)
2097         .hword  (0x59<<8)            |(1<<VFlag)   |(1<<CFlag)
2098         .hword  (0x5A<<8)            |(1<<VFlag)   |(1<<CFlag)
2099         .hword  (0x5B<<8)                  |(1<<CFlag)
2100         .hword  (0x5C<<8)            |(1<<VFlag)   |(1<<CFlag)
2101         .hword  (0x5D<<8)                  |(1<<CFlag)
2102         .hword  (0x5E<<8)                  |(1<<CFlag)
2103         .hword  (0x5F<<8)            |(1<<VFlag)   |(1<<CFlag)
2104         .hword  (0x60<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2105         .hword  (0x61<<8)      |(1<<HFlag)         |(1<<CFlag)
2106         .hword  (0x62<<8)      |(1<<HFlag)         |(1<<CFlag)
2107         .hword  (0x63<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2108         .hword  (0x64<<8)      |(1<<HFlag)         |(1<<CFlag)
2109         .hword  (0x65<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2110         .hword  (0x66<<8)            |(1<<VFlag)   |(1<<CFlag)
2111         .hword  (0x67<<8)                  |(1<<CFlag)
2112         .hword  (0x68<<8)               |(1<<CFlag)
2113         .hword  (0x69<<8)         |(1<<VFlag)   |(1<<CFlag)
2114         .hword  (0x6A<<8)         |(1<<VFlag)   |(1<<CFlag)
2115         .hword  (0x6B<<8)               |(1<<CFlag)
2116         .hword  (0x6C<<8)         |(1<<VFlag)   |(1<<CFlag)
2117         .hword  (0x6D<<8)               |(1<<CFlag)
2118         .hword  (0x6E<<8)               |(1<<CFlag)
2119         .hword  (0x6F<<8)         |(1<<VFlag)   |(1<<CFlag)
2120         .hword  (0x70<<8)      |(1<<HFlag)         |(1<<CFlag)
2121         .hword  (0x71<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2122         .hword  (0x72<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2123         .hword  (0x73<<8)      |(1<<HFlag)         |(1<<CFlag)
2124         .hword  (0x74<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2125         .hword  (0x75<<8)      |(1<<HFlag)         |(1<<CFlag)
2126         .hword  (0x76<<8)                  |(1<<CFlag)
2127         .hword  (0x77<<8)            |(1<<VFlag)   |(1<<CFlag)
2128         .hword  (0x78<<8)         |(1<<VFlag)   |(1<<CFlag)
2129         .hword  (0x79<<8)               |(1<<CFlag)
2130         .hword  (0x7A<<8)               |(1<<CFlag)
2131         .hword  (0x7B<<8)         |(1<<VFlag)   |(1<<CFlag)
2132         .hword  (0x7C<<8)               |(1<<CFlag)
2133         .hword  (0x7D<<8)         |(1<<VFlag)   |(1<<CFlag)
2134         .hword  (0x7E<<8)         |(1<<VFlag)   |(1<<CFlag)
2135         .hword  (0x7F<<8)               |(1<<CFlag)
2136         .hword  (0x80<<8)|(1<<SFlag)      |(1<<HFlag)         |(1<<CFlag)
2137         .hword  (0x81<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2138         .hword  (0x82<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2139         .hword  (0x83<<8)|(1<<SFlag)      |(1<<HFlag)         |(1<<CFlag)
2140         .hword  (0x84<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2141         .hword  (0x85<<8)|(1<<SFlag)      |(1<<HFlag)         |(1<<CFlag)
2142         .hword  (0x86<<8)|(1<<SFlag)                  |(1<<CFlag)
2143         .hword  (0x87<<8)|(1<<SFlag)            |(1<<VFlag)   |(1<<CFlag)
2144         .hword  (0x88<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)
2145         .hword  (0x89<<8)|(1<<SFlag)               |(1<<CFlag)
2146         .hword  (0x8A<<8)|(1<<SFlag)               |(1<<CFlag)
2147         .hword  (0x8B<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)
2148         .hword  (0x8C<<8)|(1<<SFlag)               |(1<<CFlag)
2149         .hword  (0x8D<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)
2150         .hword  (0x8E<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)
2151         .hword  (0x8F<<8)|(1<<SFlag)               |(1<<CFlag)
2152         .hword  (0x90<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2153         .hword  (0x91<<8)|(1<<SFlag)      |(1<<HFlag)         |(1<<CFlag)
2154         .hword  (0x92<<8)|(1<<SFlag)      |(1<<HFlag)         |(1<<CFlag)
2155         .hword  (0x93<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2156         .hword  (0x94<<8)|(1<<SFlag)      |(1<<HFlag)         |(1<<CFlag)
2157         .hword  (0x95<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2158         .hword  (0x96<<8)|(1<<SFlag)            |(1<<VFlag)   |(1<<CFlag)
2159         .hword  (0x97<<8)|(1<<SFlag)                  |(1<<CFlag)
2160         .hword  (0x98<<8)|(1<<SFlag)               |(1<<CFlag)
2161         .hword  (0x99<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)
2162         .hword  (0x9A<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)
2163         .hword  (0x9B<<8)|(1<<SFlag)               |(1<<CFlag)
2164         .hword  (0x9C<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)
2165         .hword  (0x9D<<8)|(1<<SFlag)               |(1<<CFlag)
2166         .hword  (0x9E<<8)|(1<<SFlag)               |(1<<CFlag)
2167         .hword  (0x9F<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)
2168         .hword  (0xA0<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2169         .hword  (0xA1<<8)|(1<<SFlag)   |(1<<HFlag)         |(1<<CFlag)
2170         .hword  (0xA2<<8)|(1<<SFlag)   |(1<<HFlag)         |(1<<CFlag)
2171         .hword  (0xA3<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2172         .hword  (0xA4<<8)|(1<<SFlag)   |(1<<HFlag)         |(1<<CFlag)
2173         .hword  (0xA5<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2174         .hword  (0xA6<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)
2175         .hword  (0xA7<<8)|(1<<SFlag)               |(1<<CFlag)
2176         .hword  (0xA8<<8)|(1<<SFlag)            |(1<<CFlag)
2177         .hword  (0xA9<<8)|(1<<SFlag)      |(1<<VFlag)   |(1<<CFlag)
2178         .hword  (0xAA<<8)|(1<<SFlag)      |(1<<VFlag)   |(1<<CFlag)
2179         .hword  (0xAB<<8)|(1<<SFlag)            |(1<<CFlag)
2180         .hword  (0xAC<<8)|(1<<SFlag)      |(1<<VFlag)   |(1<<CFlag)
2181         .hword  (0xAD<<8)|(1<<SFlag)            |(1<<CFlag)
2182         .hword  (0xAE<<8)|(1<<SFlag)            |(1<<CFlag)
2183         .hword  (0xAF<<8)|(1<<SFlag)      |(1<<VFlag)   |(1<<CFlag)
2184         .hword  (0xB0<<8)|(1<<SFlag)   |(1<<HFlag)         |(1<<CFlag)
2185         .hword  (0xB1<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2186         .hword  (0xB2<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2187         .hword  (0xB3<<8)|(1<<SFlag)   |(1<<HFlag)         |(1<<CFlag)
2188         .hword  (0xB4<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2189         .hword  (0xB5<<8)|(1<<SFlag)   |(1<<HFlag)         |(1<<CFlag)
2190         .hword  (0xB6<<8)|(1<<SFlag)               |(1<<CFlag)
2191         .hword  (0xB7<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)
2192         .hword  (0xB8<<8)|(1<<SFlag)      |(1<<VFlag)   |(1<<CFlag)
2193         .hword  (0xB9<<8)|(1<<SFlag)            |(1<<CFlag)
2194         .hword  (0xBA<<8)|(1<<SFlag)            |(1<<CFlag)
2195         .hword  (0xBB<<8)|(1<<SFlag)      |(1<<VFlag)   |(1<<CFlag)
2196         .hword  (0xBC<<8)|(1<<SFlag)            |(1<<CFlag)
2197         .hword  (0xBD<<8)|(1<<SFlag)      |(1<<VFlag)   |(1<<CFlag)
2198         .hword  (0xBE<<8)|(1<<SFlag)      |(1<<VFlag)   |(1<<CFlag)
2199         .hword  (0xBF<<8)|(1<<SFlag)            |(1<<CFlag)
2200         .hword  (0xC0<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2201         .hword  (0xC1<<8)|(1<<SFlag)      |(1<<HFlag)         |(1<<CFlag)
2202         .hword  (0xC2<<8)|(1<<SFlag)      |(1<<HFlag)         |(1<<CFlag)
2203         .hword  (0xC3<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2204         .hword  (0xC4<<8)|(1<<SFlag)      |(1<<HFlag)         |(1<<CFlag)
2205         .hword  (0xC5<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2206         .hword  (0xC6<<8)|(1<<SFlag)            |(1<<VFlag)   |(1<<CFlag)
2207         .hword  (0xC7<<8)|(1<<SFlag)                  |(1<<CFlag)
2208         .hword  (0xC8<<8)|(1<<SFlag)               |(1<<CFlag)
2209         .hword  (0xC9<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)
2210         .hword  (0xCA<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)
2211         .hword  (0xCB<<8)|(1<<SFlag)               |(1<<CFlag)
2212         .hword  (0xCC<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)
2213         .hword  (0xCD<<8)|(1<<SFlag)               |(1<<CFlag)
2214         .hword  (0xCE<<8)|(1<<SFlag)               |(1<<CFlag)
2215         .hword  (0xCF<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)
2216         .hword  (0xD0<<8)|(1<<SFlag)      |(1<<HFlag)         |(1<<CFlag)
2217         .hword  (0xD1<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2218         .hword  (0xD2<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2219         .hword  (0xD3<<8)|(1<<SFlag)      |(1<<HFlag)         |(1<<CFlag)
2220         .hword  (0xD4<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2221         .hword  (0xD5<<8)|(1<<SFlag)      |(1<<HFlag)         |(1<<CFlag)
2222         .hword  (0xD6<<8)|(1<<SFlag)                  |(1<<CFlag)
2223         .hword  (0xD7<<8)|(1<<SFlag)            |(1<<VFlag)   |(1<<CFlag)
2224         .hword  (0xD8<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)
2225         .hword  (0xD9<<8)|(1<<SFlag)               |(1<<CFlag)
2226         .hword  (0xDA<<8)|(1<<SFlag)               |(1<<CFlag)
2227         .hword  (0xDB<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)
2228         .hword  (0xDC<<8)|(1<<SFlag)               |(1<<CFlag)
2229         .hword  (0xDD<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)
2230         .hword  (0xDE<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)
2231         .hword  (0xDF<<8)|(1<<SFlag)               |(1<<CFlag)
2232         .hword  (0xE0<<8)|(1<<SFlag)   |(1<<HFlag)         |(1<<CFlag)
2233         .hword  (0xE1<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2234         .hword  (0xE2<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2235         .hword  (0xE3<<8)|(1<<SFlag)   |(1<<HFlag)         |(1<<CFlag)
2236         .hword  (0xE4<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2237         .hword  (0xE5<<8)|(1<<SFlag)   |(1<<HFlag)         |(1<<CFlag)
2238         .hword  (0xE6<<8)|(1<<SFlag)               |(1<<CFlag)
2239         .hword  (0xE7<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)
2240         .hword  (0xE8<<8)|(1<<SFlag)      |(1<<VFlag)   |(1<<CFlag)
2241         .hword  (0xE9<<8)|(1<<SFlag)            |(1<<CFlag)
2242         .hword  (0xEA<<8)|(1<<SFlag)            |(1<<CFlag)
2243         .hword  (0xEB<<8)|(1<<SFlag)      |(1<<VFlag)   |(1<<CFlag)
2244         .hword  (0xEC<<8)|(1<<SFlag)            |(1<<CFlag)
2245         .hword  (0xED<<8)|(1<<SFlag)      |(1<<VFlag)   |(1<<CFlag)
2246         .hword  (0xEE<<8)|(1<<SFlag)      |(1<<VFlag)   |(1<<CFlag)
2247         .hword  (0xEF<<8)|(1<<SFlag)            |(1<<CFlag)
2248         .hword  (0xF0<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2249         .hword  (0xF1<<8)|(1<<SFlag)   |(1<<HFlag)         |(1<<CFlag)
2250         .hword  (0xF2<<8)|(1<<SFlag)   |(1<<HFlag)         |(1<<CFlag)
2251         .hword  (0xF3<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2252         .hword  (0xF4<<8)|(1<<SFlag)   |(1<<HFlag)         |(1<<CFlag)
2253         .hword  (0xF5<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2254         .hword  (0xF6<<8)|(1<<SFlag)         |(1<<VFlag)   |(1<<CFlag)
2255         .hword  (0xF7<<8)|(1<<SFlag)               |(1<<CFlag)
2256         .hword  (0xF8<<8)|(1<<SFlag)            |(1<<CFlag)
2257         .hword  (0xF9<<8)|(1<<SFlag)      |(1<<VFlag)   |(1<<CFlag)
2258         .hword  (0xFA<<8)|(1<<SFlag)      |(1<<VFlag)   |(1<<CFlag)
2259         .hword  (0xFB<<8)|(1<<SFlag)            |(1<<CFlag)
2260         .hword  (0xFC<<8)|(1<<SFlag)      |(1<<VFlag)   |(1<<CFlag)
2261         .hword  (0xFD<<8)|(1<<SFlag)            |(1<<CFlag)
2262         .hword  (0xFE<<8)|(1<<SFlag)            |(1<<CFlag)
2263         .hword  (0xFF<<8)|(1<<SFlag)      |(1<<VFlag)   |(1<<CFlag)
2264         .hword  (0x00<<8)   |(1<<ZFlag)   |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2265         .hword  (0x01<<8)         |(1<<HFlag)         |(1<<CFlag)
2266         .hword  (0x02<<8)         |(1<<HFlag)         |(1<<CFlag)
2267         .hword  (0x03<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2268         .hword  (0x04<<8)         |(1<<HFlag)         |(1<<CFlag)
2269         .hword  (0x05<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2270         .hword  (0x06<<8)               |(1<<VFlag)   |(1<<CFlag)
2271         .hword  (0x07<<8)                     |(1<<CFlag)
2272         .hword  (0x08<<8)                  |(1<<CFlag)
2273         .hword  (0x09<<8)            |(1<<VFlag)   |(1<<CFlag)
2274         .hword  (0x0A<<8)            |(1<<VFlag)   |(1<<CFlag)
2275         .hword  (0x0B<<8)                  |(1<<CFlag)
2276         .hword  (0x0C<<8)            |(1<<VFlag)   |(1<<CFlag)
2277         .hword  (0x0D<<8)                  |(1<<CFlag)
2278         .hword  (0x0E<<8)                  |(1<<CFlag)
2279         .hword  (0x0F<<8)            |(1<<VFlag)   |(1<<CFlag)
2280         .hword  (0x10<<8)         |(1<<HFlag)         |(1<<CFlag)
2281         .hword  (0x11<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2282         .hword  (0x12<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2283         .hword  (0x13<<8)         |(1<<HFlag)         |(1<<CFlag)
2284         .hword  (0x14<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2285         .hword  (0x15<<8)         |(1<<HFlag)         |(1<<CFlag)
2286         .hword  (0x16<<8)                     |(1<<CFlag)
2287         .hword  (0x17<<8)               |(1<<VFlag)   |(1<<CFlag)
2288         .hword  (0x18<<8)            |(1<<VFlag)   |(1<<CFlag)
2289         .hword  (0x19<<8)                  |(1<<CFlag)
2290         .hword  (0x1A<<8)                  |(1<<CFlag)
2291         .hword  (0x1B<<8)            |(1<<VFlag)   |(1<<CFlag)
2292         .hword  (0x1C<<8)                  |(1<<CFlag)
2293         .hword  (0x1D<<8)            |(1<<VFlag)   |(1<<CFlag)
2294         .hword  (0x1E<<8)            |(1<<VFlag)   |(1<<CFlag)
2295         .hword  (0x1F<<8)                  |(1<<CFlag)
2296         .hword  (0x20<<8)      |(1<<HFlag)         |(1<<CFlag)
2297         .hword  (0x21<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2298         .hword  (0x22<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2299         .hword  (0x23<<8)      |(1<<HFlag)         |(1<<CFlag)
2300         .hword  (0x24<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2301         .hword  (0x25<<8)      |(1<<HFlag)         |(1<<CFlag)
2302         .hword  (0x26<<8)                  |(1<<CFlag)
2303         .hword  (0x27<<8)            |(1<<VFlag)   |(1<<CFlag)
2304         .hword  (0x28<<8)         |(1<<VFlag)   |(1<<CFlag)
2305         .hword  (0x29<<8)               |(1<<CFlag)
2306         .hword  (0x2A<<8)               |(1<<CFlag)
2307         .hword  (0x2B<<8)         |(1<<VFlag)   |(1<<CFlag)
2308         .hword  (0x2C<<8)               |(1<<CFlag)
2309         .hword  (0x2D<<8)         |(1<<VFlag)   |(1<<CFlag)
2310         .hword  (0x2E<<8)         |(1<<VFlag)   |(1<<CFlag)
2311         .hword  (0x2F<<8)               |(1<<CFlag)
2312         .hword  (0x30<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2313         .hword  (0x31<<8)      |(1<<HFlag)         |(1<<CFlag)
2314         .hword  (0x32<<8)      |(1<<HFlag)         |(1<<CFlag)
2315         .hword  (0x33<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2316         .hword  (0x34<<8)      |(1<<HFlag)         |(1<<CFlag)
2317         .hword  (0x35<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2318         .hword  (0x36<<8)            |(1<<VFlag)   |(1<<CFlag)
2319         .hword  (0x37<<8)                  |(1<<CFlag)
2320         .hword  (0x38<<8)               |(1<<CFlag)
2321         .hword  (0x39<<8)         |(1<<VFlag)   |(1<<CFlag)
2322         .hword  (0x3A<<8)         |(1<<VFlag)   |(1<<CFlag)
2323         .hword  (0x3B<<8)               |(1<<CFlag)
2324         .hword  (0x3C<<8)         |(1<<VFlag)   |(1<<CFlag)
2325         .hword  (0x3D<<8)               |(1<<CFlag)
2326         .hword  (0x3E<<8)               |(1<<CFlag)
2327         .hword  (0x3F<<8)         |(1<<VFlag)   |(1<<CFlag)
2328         .hword  (0x40<<8)         |(1<<HFlag)         |(1<<CFlag)
2329         .hword  (0x41<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2330         .hword  (0x42<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2331         .hword  (0x43<<8)         |(1<<HFlag)         |(1<<CFlag)
2332         .hword  (0x44<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2333         .hword  (0x45<<8)         |(1<<HFlag)         |(1<<CFlag)
2334         .hword  (0x46<<8)                     |(1<<CFlag)
2335         .hword  (0x47<<8)               |(1<<VFlag)   |(1<<CFlag)
2336         .hword  (0x48<<8)            |(1<<VFlag)   |(1<<CFlag)
2337         .hword  (0x49<<8)                  |(1<<CFlag)
2338         .hword  (0x4A<<8)                  |(1<<CFlag)
2339         .hword  (0x4B<<8)            |(1<<VFlag)   |(1<<CFlag)
2340         .hword  (0x4C<<8)                  |(1<<CFlag)
2341         .hword  (0x4D<<8)            |(1<<VFlag)   |(1<<CFlag)
2342         .hword  (0x4E<<8)            |(1<<VFlag)   |(1<<CFlag)
2343         .hword  (0x4F<<8)                  |(1<<CFlag)
2344         .hword  (0x50<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2345         .hword  (0x51<<8)         |(1<<HFlag)         |(1<<CFlag)
2346         .hword  (0x52<<8)         |(1<<HFlag)         |(1<<CFlag)
2347         .hword  (0x53<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2348         .hword  (0x54<<8)         |(1<<HFlag)         |(1<<CFlag)
2349         .hword  (0x55<<8)         |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2350         .hword  (0x56<<8)               |(1<<VFlag)   |(1<<CFlag)
2351         .hword  (0x57<<8)                     |(1<<CFlag)
2352         .hword  (0x58<<8)                  |(1<<CFlag)
2353         .hword  (0x59<<8)            |(1<<VFlag)   |(1<<CFlag)
2354         .hword  (0x5A<<8)            |(1<<VFlag)   |(1<<CFlag)
2355         .hword  (0x5B<<8)                  |(1<<CFlag)
2356         .hword  (0x5C<<8)            |(1<<VFlag)   |(1<<CFlag)
2357         .hword  (0x5D<<8)                  |(1<<CFlag)
2358         .hword  (0x5E<<8)                  |(1<<CFlag)
2359         .hword  (0x5F<<8)            |(1<<VFlag)   |(1<<CFlag)
2360         .hword  (0x60<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2361         .hword  (0x61<<8)      |(1<<HFlag)         |(1<<CFlag)
2362         .hword  (0x62<<8)      |(1<<HFlag)         |(1<<CFlag)
2363         .hword  (0x63<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2364         .hword  (0x64<<8)      |(1<<HFlag)         |(1<<CFlag)
2365         .hword  (0x65<<8)      |(1<<HFlag)   |(1<<VFlag)   |(1<<CFlag)
2366         .hword  (0x00<<8)   |(1<<ZFlag)         |(1<<VFlag)|(1<<NFlag)
2367         .hword  (0x01<<8)                  |(1<<NFlag)
2368         .hword  (0x02<<8)                  |(1<<NFlag)
2369         .hword  (0x03<<8)               |(1<<VFlag)|(1<<NFlag)
2370         .hword  (0x04<<8)                  |(1<<NFlag)
2371         .hword  (0x05<<8)               |(1<<VFlag)|(1<<NFlag)
2372         .hword  (0x06<<8)               |(1<<VFlag)|(1<<NFlag)
2373         .hword  (0x07<<8)                  |(1<<NFlag)
2374         .hword  (0x08<<8)               |(1<<NFlag)
2375         .hword  (0x09<<8)            |(1<<VFlag)|(1<<NFlag)
2376         .hword  (0x04<<8)                  |(1<<NFlag)
2377         .hword  (0x05<<8)               |(1<<VFlag)|(1<<NFlag)
2378         .hword  (0x06<<8)               |(1<<VFlag)|(1<<NFlag)
2379         .hword  (0x07<<8)                  |(1<<NFlag)
2380         .hword  (0x08<<8)               |(1<<NFlag)
2381         .hword  (0x09<<8)            |(1<<VFlag)|(1<<NFlag)
2382         .hword  (0x10<<8)                  |(1<<NFlag)
2383         .hword  (0x11<<8)               |(1<<VFlag)|(1<<NFlag)
2384         .hword  (0x12<<8)               |(1<<VFlag)|(1<<NFlag)
2385         .hword  (0x13<<8)                  |(1<<NFlag)
2386         .hword  (0x14<<8)               |(1<<VFlag)|(1<<NFlag)
2387         .hword  (0x15<<8)                  |(1<<NFlag)
2388         .hword  (0x16<<8)                  |(1<<NFlag)
2389         .hword  (0x17<<8)               |(1<<VFlag)|(1<<NFlag)
2390         .hword  (0x18<<8)            |(1<<VFlag)|(1<<NFlag)
2391         .hword  (0x19<<8)               |(1<<NFlag)
2392         .hword  (0x14<<8)               |(1<<VFlag)|(1<<NFlag)
2393         .hword  (0x15<<8)                  |(1<<NFlag)
2394         .hword  (0x16<<8)                  |(1<<NFlag)
2395         .hword  (0x17<<8)               |(1<<VFlag)|(1<<NFlag)
2396         .hword  (0x18<<8)            |(1<<VFlag)|(1<<NFlag)
2397         .hword  (0x19<<8)               |(1<<NFlag)
2398         .hword  (0x20<<8)               |(1<<NFlag)
2399         .hword  (0x21<<8)            |(1<<VFlag)|(1<<NFlag)
2400         .hword  (0x22<<8)            |(1<<VFlag)|(1<<NFlag)
2401         .hword  (0x23<<8)               |(1<<NFlag)
2402         .hword  (0x24<<8)            |(1<<VFlag)|(1<<NFlag)
2403         .hword  (0x25<<8)               |(1<<NFlag)
2404         .hword  (0x26<<8)               |(1<<NFlag)
2405         .hword  (0x27<<8)            |(1<<VFlag)|(1<<NFlag)
2406         .hword  (0x28<<8)         |(1<<VFlag)|(1<<NFlag)
2407         .hword  (0x29<<8)            |(1<<NFlag)
2408         .hword  (0x24<<8)            |(1<<VFlag)|(1<<NFlag)
2409         .hword  (0x25<<8)               |(1<<NFlag)
2410         .hword  (0x26<<8)               |(1<<NFlag)
2411         .hword  (0x27<<8)            |(1<<VFlag)|(1<<NFlag)
2412         .hword  (0x28<<8)         |(1<<VFlag)|(1<<NFlag)
2413         .hword  (0x29<<8)            |(1<<NFlag)
2414         .hword  (0x30<<8)            |(1<<VFlag)|(1<<NFlag)
2415         .hword  (0x31<<8)               |(1<<NFlag)
2416         .hword  (0x32<<8)               |(1<<NFlag)
2417         .hword  (0x33<<8)            |(1<<VFlag)|(1<<NFlag)
2418         .hword  (0x34<<8)               |(1<<NFlag)
2419         .hword  (0x35<<8)            |(1<<VFlag)|(1<<NFlag)
2420         .hword  (0x36<<8)            |(1<<VFlag)|(1<<NFlag)
2421         .hword  (0x37<<8)               |(1<<NFlag)
2422         .hword  (0x38<<8)            |(1<<NFlag)
2423         .hword  (0x39<<8)         |(1<<VFlag)|(1<<NFlag)
2424         .hword  (0x34<<8)               |(1<<NFlag)
2425         .hword  (0x35<<8)            |(1<<VFlag)|(1<<NFlag)
2426         .hword  (0x36<<8)            |(1<<VFlag)|(1<<NFlag)
2427         .hword  (0x37<<8)               |(1<<NFlag)
2428         .hword  (0x38<<8)            |(1<<NFlag)
2429         .hword  (0x39<<8)         |(1<<VFlag)|(1<<NFlag)
2430         .hword  (0x40<<8)                  |(1<<NFlag)
2431         .hword  (0x41<<8)               |(1<<VFlag)|(1<<NFlag)
2432         .hword  (0x42<<8)               |(1<<VFlag)|(1<<NFlag)
2433         .hword  (0x43<<8)                  |(1<<NFlag)
2434         .hword  (0x44<<8)               |(1<<VFlag)|(1<<NFlag)
2435         .hword  (0x45<<8)                  |(1<<NFlag)
2436         .hword  (0x46<<8)                  |(1<<NFlag)
2437         .hword  (0x47<<8)               |(1<<VFlag)|(1<<NFlag)
2438         .hword  (0x48<<8)            |(1<<VFlag)|(1<<NFlag)
2439         .hword  (0x49<<8)               |(1<<NFlag)
2440         .hword  (0x44<<8)               |(1<<VFlag)|(1<<NFlag)
2441         .hword  (0x45<<8)                  |(1<<NFlag)
2442         .hword  (0x46<<8)                  |(1<<NFlag)
2443         .hword  (0x47<<8)               |(1<<VFlag)|(1<<NFlag)
2444         .hword  (0x48<<8)            |(1<<VFlag)|(1<<NFlag)
2445         .hword  (0x49<<8)               |(1<<NFlag)
2446         .hword  (0x50<<8)               |(1<<VFlag)|(1<<NFlag)
2447         .hword  (0x51<<8)                  |(1<<NFlag)
2448         .hword  (0x52<<8)                  |(1<<NFlag)
2449         .hword  (0x53<<8)               |(1<<VFlag)|(1<<NFlag)
2450         .hword  (0x54<<8)                  |(1<<NFlag)
2451         .hword  (0x55<<8)               |(1<<VFlag)|(1<<NFlag)
2452         .hword  (0x56<<8)               |(1<<VFlag)|(1<<NFlag)
2453         .hword  (0x57<<8)                  |(1<<NFlag)
2454         .hword  (0x58<<8)               |(1<<NFlag)
2455         .hword  (0x59<<8)            |(1<<VFlag)|(1<<NFlag)
2456         .hword  (0x54<<8)                  |(1<<NFlag)
2457         .hword  (0x55<<8)               |(1<<VFlag)|(1<<NFlag)
2458         .hword  (0x56<<8)               |(1<<VFlag)|(1<<NFlag)
2459         .hword  (0x57<<8)                  |(1<<NFlag)
2460         .hword  (0x58<<8)               |(1<<NFlag)
2461         .hword  (0x59<<8)            |(1<<VFlag)|(1<<NFlag)
2462         .hword  (0x60<<8)            |(1<<VFlag)|(1<<NFlag)
2463         .hword  (0x61<<8)               |(1<<NFlag)
2464         .hword  (0x62<<8)               |(1<<NFlag)
2465         .hword  (0x63<<8)            |(1<<VFlag)|(1<<NFlag)
2466         .hword  (0x64<<8)               |(1<<NFlag)
2467         .hword  (0x65<<8)            |(1<<VFlag)|(1<<NFlag)
2468         .hword  (0x66<<8)            |(1<<VFlag)|(1<<NFlag)
2469         .hword  (0x67<<8)               |(1<<NFlag)
2470         .hword  (0x68<<8)            |(1<<NFlag)
2471         .hword  (0x69<<8)         |(1<<VFlag)|(1<<NFlag)
2472         .hword  (0x64<<8)               |(1<<NFlag)
2473         .hword  (0x65<<8)            |(1<<VFlag)|(1<<NFlag)
2474         .hword  (0x66<<8)            |(1<<VFlag)|(1<<NFlag)
2475         .hword  (0x67<<8)               |(1<<NFlag)
2476         .hword  (0x68<<8)            |(1<<NFlag)
2477         .hword  (0x69<<8)         |(1<<VFlag)|(1<<NFlag)
2478         .hword  (0x70<<8)               |(1<<NFlag)
2479         .hword  (0x71<<8)            |(1<<VFlag)|(1<<NFlag)
2480         .hword  (0x72<<8)            |(1<<VFlag)|(1<<NFlag)
2481         .hword  (0x73<<8)               |(1<<NFlag)
2482         .hword  (0x74<<8)            |(1<<VFlag)|(1<<NFlag)
2483         .hword  (0x75<<8)               |(1<<NFlag)
2484         .hword  (0x76<<8)               |(1<<NFlag)
2485         .hword  (0x77<<8)            |(1<<VFlag)|(1<<NFlag)
2486         .hword  (0x78<<8)         |(1<<VFlag)|(1<<NFlag)
2487         .hword  (0x79<<8)            |(1<<NFlag)
2488         .hword  (0x74<<8)            |(1<<VFlag)|(1<<NFlag)
2489         .hword  (0x75<<8)               |(1<<NFlag)
2490         .hword  (0x76<<8)               |(1<<NFlag)
2491         .hword  (0x77<<8)            |(1<<VFlag)|(1<<NFlag)
2492         .hword  (0x78<<8)         |(1<<VFlag)|(1<<NFlag)
2493         .hword  (0x79<<8)            |(1<<NFlag)
2494         .hword  (0x80<<8)|(1<<SFlag)               |(1<<NFlag)
2495         .hword  (0x81<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)
2496         .hword  (0x82<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)
2497         .hword  (0x83<<8)|(1<<SFlag)               |(1<<NFlag)
2498         .hword  (0x84<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)
2499         .hword  (0x85<<8)|(1<<SFlag)               |(1<<NFlag)
2500         .hword  (0x86<<8)|(1<<SFlag)               |(1<<NFlag)
2501         .hword  (0x87<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)
2502         .hword  (0x88<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)
2503         .hword  (0x89<<8)|(1<<SFlag)            |(1<<NFlag)
2504         .hword  (0x84<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)
2505         .hword  (0x85<<8)|(1<<SFlag)               |(1<<NFlag)
2506         .hword  (0x86<<8)|(1<<SFlag)               |(1<<NFlag)
2507         .hword  (0x87<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)
2508         .hword  (0x88<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)
2509         .hword  (0x89<<8)|(1<<SFlag)            |(1<<NFlag)
2510         .hword  (0x90<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)
2511         .hword  (0x91<<8)|(1<<SFlag)               |(1<<NFlag)
2512         .hword  (0x92<<8)|(1<<SFlag)               |(1<<NFlag)
2513         .hword  (0x93<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)
2514         .hword  (0x94<<8)|(1<<SFlag)               |(1<<NFlag)
2515         .hword  (0x95<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)
2516         .hword  (0x96<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)
2517         .hword  (0x97<<8)|(1<<SFlag)               |(1<<NFlag)
2518         .hword  (0x98<<8)|(1<<SFlag)            |(1<<NFlag)
2519         .hword  (0x99<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)
2520         .hword  (0x34<<8)               |(1<<NFlag)|(1<<CFlag)
2521         .hword  (0x35<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2522         .hword  (0x36<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2523         .hword  (0x37<<8)               |(1<<NFlag)|(1<<CFlag)
2524         .hword  (0x38<<8)            |(1<<NFlag)|(1<<CFlag)
2525         .hword  (0x39<<8)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2526         .hword  (0x40<<8)                  |(1<<NFlag)|(1<<CFlag)
2527         .hword  (0x41<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2528         .hword  (0x42<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2529         .hword  (0x43<<8)                  |(1<<NFlag)|(1<<CFlag)
2530         .hword  (0x44<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2531         .hword  (0x45<<8)                  |(1<<NFlag)|(1<<CFlag)
2532         .hword  (0x46<<8)                  |(1<<NFlag)|(1<<CFlag)
2533         .hword  (0x47<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2534         .hword  (0x48<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2535         .hword  (0x49<<8)               |(1<<NFlag)|(1<<CFlag)
2536         .hword  (0x44<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2537         .hword  (0x45<<8)                  |(1<<NFlag)|(1<<CFlag)
2538         .hword  (0x46<<8)                  |(1<<NFlag)|(1<<CFlag)
2539         .hword  (0x47<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2540         .hword  (0x48<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2541         .hword  (0x49<<8)               |(1<<NFlag)|(1<<CFlag)
2542         .hword  (0x50<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2543         .hword  (0x51<<8)                  |(1<<NFlag)|(1<<CFlag)
2544         .hword  (0x52<<8)                  |(1<<NFlag)|(1<<CFlag)
2545         .hword  (0x53<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2546         .hword  (0x54<<8)                  |(1<<NFlag)|(1<<CFlag)
2547         .hword  (0x55<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2548         .hword  (0x56<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2549         .hword  (0x57<<8)                  |(1<<NFlag)|(1<<CFlag)
2550         .hword  (0x58<<8)               |(1<<NFlag)|(1<<CFlag)
2551         .hword  (0x59<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2552         .hword  (0x54<<8)                  |(1<<NFlag)|(1<<CFlag)
2553         .hword  (0x55<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2554         .hword  (0x56<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2555         .hword  (0x57<<8)                  |(1<<NFlag)|(1<<CFlag)
2556         .hword  (0x58<<8)               |(1<<NFlag)|(1<<CFlag)
2557         .hword  (0x59<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2558         .hword  (0x60<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2559         .hword  (0x61<<8)               |(1<<NFlag)|(1<<CFlag)
2560         .hword  (0x62<<8)               |(1<<NFlag)|(1<<CFlag)
2561         .hword  (0x63<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2562         .hword  (0x64<<8)               |(1<<NFlag)|(1<<CFlag)
2563         .hword  (0x65<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2564         .hword  (0x66<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2565         .hword  (0x67<<8)               |(1<<NFlag)|(1<<CFlag)
2566         .hword  (0x68<<8)            |(1<<NFlag)|(1<<CFlag)
2567         .hword  (0x69<<8)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2568         .hword  (0x64<<8)               |(1<<NFlag)|(1<<CFlag)
2569         .hword  (0x65<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2570         .hword  (0x66<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2571         .hword  (0x67<<8)               |(1<<NFlag)|(1<<CFlag)
2572         .hword  (0x68<<8)            |(1<<NFlag)|(1<<CFlag)
2573         .hword  (0x69<<8)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2574         .hword  (0x70<<8)               |(1<<NFlag)|(1<<CFlag)
2575         .hword  (0x71<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2576         .hword  (0x72<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2577         .hword  (0x73<<8)               |(1<<NFlag)|(1<<CFlag)
2578         .hword  (0x74<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2579         .hword  (0x75<<8)               |(1<<NFlag)|(1<<CFlag)
2580         .hword  (0x76<<8)               |(1<<NFlag)|(1<<CFlag)
2581         .hword  (0x77<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2582         .hword  (0x78<<8)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2583         .hword  (0x79<<8)            |(1<<NFlag)|(1<<CFlag)
2584         .hword  (0x74<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2585         .hword  (0x75<<8)               |(1<<NFlag)|(1<<CFlag)
2586         .hword  (0x76<<8)               |(1<<NFlag)|(1<<CFlag)
2587         .hword  (0x77<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2588         .hword  (0x78<<8)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2589         .hword  (0x79<<8)            |(1<<NFlag)|(1<<CFlag)
2590         .hword  (0x80<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
2591         .hword  (0x81<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2592         .hword  (0x82<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2593         .hword  (0x83<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
2594         .hword  (0x84<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2595         .hword  (0x85<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
2596         .hword  (0x86<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
2597         .hword  (0x87<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2598         .hword  (0x88<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2599         .hword  (0x89<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
2600         .hword  (0x84<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2601         .hword  (0x85<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
2602         .hword  (0x86<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
2603         .hword  (0x87<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2604         .hword  (0x88<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2605         .hword  (0x89<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
2606         .hword  (0x90<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2607         .hword  (0x91<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
2608         .hword  (0x92<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
2609         .hword  (0x93<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2610         .hword  (0x94<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
2611         .hword  (0x95<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2612         .hword  (0x96<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2613         .hword  (0x97<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
2614         .hword  (0x98<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
2615         .hword  (0x99<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2616         .hword  (0x94<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
2617         .hword  (0x95<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2618         .hword  (0x96<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2619         .hword  (0x97<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
2620         .hword  (0x98<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
2621         .hword  (0x99<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2622         .hword  (0xA0<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2623         .hword  (0xA1<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
2624         .hword  (0xA2<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
2625         .hword  (0xA3<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2626         .hword  (0xA4<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
2627         .hword  (0xA5<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2628         .hword  (0xA6<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2629         .hword  (0xA7<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
2630         .hword  (0xA8<<8)|(1<<SFlag)         |(1<<NFlag)|(1<<CFlag)
2631         .hword  (0xA9<<8)|(1<<SFlag)      |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2632         .hword  (0xA4<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
2633         .hword  (0xA5<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2634         .hword  (0xA6<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2635         .hword  (0xA7<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
2636         .hword  (0xA8<<8)|(1<<SFlag)         |(1<<NFlag)|(1<<CFlag)
2637         .hword  (0xA9<<8)|(1<<SFlag)      |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2638         .hword  (0xB0<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
2639         .hword  (0xB1<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2640         .hword  (0xB2<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2641         .hword  (0xB3<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
2642         .hword  (0xB4<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2643         .hword  (0xB5<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
2644         .hword  (0xB6<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
2645         .hword  (0xB7<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2646         .hword  (0xB8<<8)|(1<<SFlag)      |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2647         .hword  (0xB9<<8)|(1<<SFlag)         |(1<<NFlag)|(1<<CFlag)
2648         .hword  (0xB4<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2649         .hword  (0xB5<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
2650         .hword  (0xB6<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
2651         .hword  (0xB7<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2652         .hword  (0xB8<<8)|(1<<SFlag)      |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2653         .hword  (0xB9<<8)|(1<<SFlag)         |(1<<NFlag)|(1<<CFlag)
2654         .hword  (0xC0<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2655         .hword  (0xC1<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
2656         .hword  (0xC2<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
2657         .hword  (0xC3<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2658         .hword  (0xC4<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
2659         .hword  (0xC5<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2660         .hword  (0xC6<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2661         .hword  (0xC7<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
2662         .hword  (0xC8<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
2663         .hword  (0xC9<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2664         .hword  (0xC4<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
2665         .hword  (0xC5<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2666         .hword  (0xC6<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2667         .hword  (0xC7<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
2668         .hword  (0xC8<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
2669         .hword  (0xC9<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2670         .hword  (0xD0<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
2671         .hword  (0xD1<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2672         .hword  (0xD2<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2673         .hword  (0xD3<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
2674         .hword  (0xD4<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2675         .hword  (0xD5<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
2676         .hword  (0xD6<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
2677         .hword  (0xD7<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2678         .hword  (0xD8<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2679         .hword  (0xD9<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
2680         .hword  (0xD4<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2681         .hword  (0xD5<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
2682         .hword  (0xD6<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
2683         .hword  (0xD7<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2684         .hword  (0xD8<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2685         .hword  (0xD9<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
2686         .hword  (0xE0<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
2687         .hword  (0xE1<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2688         .hword  (0xE2<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2689         .hword  (0xE3<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
2690         .hword  (0xE4<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2691         .hword  (0xE5<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
2692         .hword  (0xE6<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
2693         .hword  (0xE7<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2694         .hword  (0xE8<<8)|(1<<SFlag)      |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2695         .hword  (0xE9<<8)|(1<<SFlag)         |(1<<NFlag)|(1<<CFlag)
2696         .hword  (0xE4<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2697         .hword  (0xE5<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
2698         .hword  (0xE6<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
2699         .hword  (0xE7<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2700         .hword  (0xE8<<8)|(1<<SFlag)      |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2701         .hword  (0xE9<<8)|(1<<SFlag)         |(1<<NFlag)|(1<<CFlag)
2702         .hword  (0xF0<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2703         .hword  (0xF1<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
2704         .hword  (0xF2<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
2705         .hword  (0xF3<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2706         .hword  (0xF4<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
2707         .hword  (0xF5<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2708         .hword  (0xF6<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2709         .hword  (0xF7<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
2710         .hword  (0xF8<<8)|(1<<SFlag)         |(1<<NFlag)|(1<<CFlag)
2711         .hword  (0xF9<<8)|(1<<SFlag)      |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2712         .hword  (0xF4<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
2713         .hword  (0xF5<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2714         .hword  (0xF6<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2715         .hword  (0xF7<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
2716         .hword  (0xF8<<8)|(1<<SFlag)         |(1<<NFlag)|(1<<CFlag)
2717         .hword  (0xF9<<8)|(1<<SFlag)      |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2718         .hword  (0x00<<8)   |(1<<ZFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2719         .hword  (0x01<<8)                  |(1<<NFlag)|(1<<CFlag)
2720         .hword  (0x02<<8)                  |(1<<NFlag)|(1<<CFlag)
2721         .hword  (0x03<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2722         .hword  (0x04<<8)                  |(1<<NFlag)|(1<<CFlag)
2723         .hword  (0x05<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2724         .hword  (0x06<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2725         .hword  (0x07<<8)                  |(1<<NFlag)|(1<<CFlag)
2726         .hword  (0x08<<8)               |(1<<NFlag)|(1<<CFlag)
2727         .hword  (0x09<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2728         .hword  (0x04<<8)                  |(1<<NFlag)|(1<<CFlag)
2729         .hword  (0x05<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2730         .hword  (0x06<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2731         .hword  (0x07<<8)                  |(1<<NFlag)|(1<<CFlag)
2732         .hword  (0x08<<8)               |(1<<NFlag)|(1<<CFlag)
2733         .hword  (0x09<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2734         .hword  (0x10<<8)                  |(1<<NFlag)|(1<<CFlag)
2735         .hword  (0x11<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2736         .hword  (0x12<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2737         .hword  (0x13<<8)                  |(1<<NFlag)|(1<<CFlag)
2738         .hword  (0x14<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2739         .hword  (0x15<<8)                  |(1<<NFlag)|(1<<CFlag)
2740         .hword  (0x16<<8)                  |(1<<NFlag)|(1<<CFlag)
2741         .hword  (0x17<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2742         .hword  (0x18<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2743         .hword  (0x19<<8)               |(1<<NFlag)|(1<<CFlag)
2744         .hword  (0x14<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2745         .hword  (0x15<<8)                  |(1<<NFlag)|(1<<CFlag)
2746         .hword  (0x16<<8)                  |(1<<NFlag)|(1<<CFlag)
2747         .hword  (0x17<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2748         .hword  (0x18<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2749         .hword  (0x19<<8)               |(1<<NFlag)|(1<<CFlag)
2750         .hword  (0x20<<8)               |(1<<NFlag)|(1<<CFlag)
2751         .hword  (0x21<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2752         .hword  (0x22<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2753         .hword  (0x23<<8)               |(1<<NFlag)|(1<<CFlag)
2754         .hword  (0x24<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2755         .hword  (0x25<<8)               |(1<<NFlag)|(1<<CFlag)
2756         .hword  (0x26<<8)               |(1<<NFlag)|(1<<CFlag)
2757         .hword  (0x27<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2758         .hword  (0x28<<8)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2759         .hword  (0x29<<8)            |(1<<NFlag)|(1<<CFlag)
2760         .hword  (0x24<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2761         .hword  (0x25<<8)               |(1<<NFlag)|(1<<CFlag)
2762         .hword  (0x26<<8)               |(1<<NFlag)|(1<<CFlag)
2763         .hword  (0x27<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2764         .hword  (0x28<<8)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2765         .hword  (0x29<<8)            |(1<<NFlag)|(1<<CFlag)
2766         .hword  (0x30<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2767         .hword  (0x31<<8)               |(1<<NFlag)|(1<<CFlag)
2768         .hword  (0x32<<8)               |(1<<NFlag)|(1<<CFlag)
2769         .hword  (0x33<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2770         .hword  (0x34<<8)               |(1<<NFlag)|(1<<CFlag)
2771         .hword  (0x35<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2772         .hword  (0x36<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2773         .hword  (0x37<<8)               |(1<<NFlag)|(1<<CFlag)
2774         .hword  (0x38<<8)            |(1<<NFlag)|(1<<CFlag)
2775         .hword  (0x39<<8)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2776         .hword  (0x34<<8)               |(1<<NFlag)|(1<<CFlag)
2777         .hword  (0x35<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2778         .hword  (0x36<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2779         .hword  (0x37<<8)               |(1<<NFlag)|(1<<CFlag)
2780         .hword  (0x38<<8)            |(1<<NFlag)|(1<<CFlag)
2781         .hword  (0x39<<8)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2782         .hword  (0x40<<8)                  |(1<<NFlag)|(1<<CFlag)
2783         .hword  (0x41<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2784         .hword  (0x42<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2785         .hword  (0x43<<8)                  |(1<<NFlag)|(1<<CFlag)
2786         .hword  (0x44<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2787         .hword  (0x45<<8)                  |(1<<NFlag)|(1<<CFlag)
2788         .hword  (0x46<<8)                  |(1<<NFlag)|(1<<CFlag)
2789         .hword  (0x47<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2790         .hword  (0x48<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2791         .hword  (0x49<<8)               |(1<<NFlag)|(1<<CFlag)
2792         .hword  (0x44<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2793         .hword  (0x45<<8)                  |(1<<NFlag)|(1<<CFlag)
2794         .hword  (0x46<<8)                  |(1<<NFlag)|(1<<CFlag)
2795         .hword  (0x47<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2796         .hword  (0x48<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2797         .hword  (0x49<<8)               |(1<<NFlag)|(1<<CFlag)
2798         .hword  (0x50<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2799         .hword  (0x51<<8)                  |(1<<NFlag)|(1<<CFlag)
2800         .hword  (0x52<<8)                  |(1<<NFlag)|(1<<CFlag)
2801         .hword  (0x53<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2802         .hword  (0x54<<8)                  |(1<<NFlag)|(1<<CFlag)
2803         .hword  (0x55<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2804         .hword  (0x56<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2805         .hword  (0x57<<8)                  |(1<<NFlag)|(1<<CFlag)
2806         .hword  (0x58<<8)               |(1<<NFlag)|(1<<CFlag)
2807         .hword  (0x59<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2808         .hword  (0x54<<8)                  |(1<<NFlag)|(1<<CFlag)
2809         .hword  (0x55<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2810         .hword  (0x56<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2811         .hword  (0x57<<8)                  |(1<<NFlag)|(1<<CFlag)
2812         .hword  (0x58<<8)               |(1<<NFlag)|(1<<CFlag)
2813         .hword  (0x59<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2814         .hword  (0x60<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2815         .hword  (0x61<<8)               |(1<<NFlag)|(1<<CFlag)
2816         .hword  (0x62<<8)               |(1<<NFlag)|(1<<CFlag)
2817         .hword  (0x63<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2818         .hword  (0x64<<8)               |(1<<NFlag)|(1<<CFlag)
2819         .hword  (0x65<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2820         .hword  (0x66<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2821         .hword  (0x67<<8)               |(1<<NFlag)|(1<<CFlag)
2822         .hword  (0x68<<8)            |(1<<NFlag)|(1<<CFlag)
2823         .hword  (0x69<<8)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2824         .hword  (0x64<<8)               |(1<<NFlag)|(1<<CFlag)
2825         .hword  (0x65<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2826         .hword  (0x66<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2827         .hword  (0x67<<8)               |(1<<NFlag)|(1<<CFlag)
2828         .hword  (0x68<<8)            |(1<<NFlag)|(1<<CFlag)
2829         .hword  (0x69<<8)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2830         .hword  (0x70<<8)               |(1<<NFlag)|(1<<CFlag)
2831         .hword  (0x71<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2832         .hword  (0x72<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2833         .hword  (0x73<<8)               |(1<<NFlag)|(1<<CFlag)
2834         .hword  (0x74<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2835         .hword  (0x75<<8)               |(1<<NFlag)|(1<<CFlag)
2836         .hword  (0x76<<8)               |(1<<NFlag)|(1<<CFlag)
2837         .hword  (0x77<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2838         .hword  (0x78<<8)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2839         .hword  (0x79<<8)            |(1<<NFlag)|(1<<CFlag)
2840         .hword  (0x74<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2841         .hword  (0x75<<8)               |(1<<NFlag)|(1<<CFlag)
2842         .hword  (0x76<<8)               |(1<<NFlag)|(1<<CFlag)
2843         .hword  (0x77<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2844         .hword  (0x78<<8)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2845         .hword  (0x79<<8)            |(1<<NFlag)|(1<<CFlag)
2846         .hword  (0x80<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
2847         .hword  (0x81<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2848         .hword  (0x82<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2849         .hword  (0x83<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
2850         .hword  (0x84<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2851         .hword  (0x85<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
2852         .hword  (0x86<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
2853         .hword  (0x87<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2854         .hword  (0x88<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2855         .hword  (0x89<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
2856         .hword  (0x84<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2857         .hword  (0x85<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
2858         .hword  (0x86<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
2859         .hword  (0x87<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2860         .hword  (0x88<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2861         .hword  (0x89<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
2862         .hword  (0x90<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2863         .hword  (0x91<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
2864         .hword  (0x92<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
2865         .hword  (0x93<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2866         .hword  (0x94<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
2867         .hword  (0x95<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2868         .hword  (0x96<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2869         .hword  (0x97<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
2870         .hword  (0x98<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
2871         .hword  (0x99<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2872         .hword  (0x94<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
2873         .hword  (0x95<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2874         .hword  (0x96<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2875         .hword  (0x97<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
2876         .hword  (0x98<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
2877         .hword  (0x99<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
2878         .hword  (0xFA<<8)|(1<<SFlag)   |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)
2879         .hword  (0xFB<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<NFlag)
2880         .hword  (0xFC<<8)|(1<<SFlag)   |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)
2881         .hword  (0xFD<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<NFlag)
2882         .hword  (0xFE<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<NFlag)
2883         .hword  (0xFF<<8)|(1<<SFlag)   |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)
2884         .hword  (0x00<<8)   |(1<<ZFlag)         |(1<<VFlag)|(1<<NFlag)
2885         .hword  (0x01<<8)                  |(1<<NFlag)
2886         .hword  (0x02<<8)                  |(1<<NFlag)
2887         .hword  (0x03<<8)               |(1<<VFlag)|(1<<NFlag)
2888         .hword  (0x04<<8)                  |(1<<NFlag)
2889         .hword  (0x05<<8)               |(1<<VFlag)|(1<<NFlag)
2890         .hword  (0x06<<8)               |(1<<VFlag)|(1<<NFlag)
2891         .hword  (0x07<<8)                  |(1<<NFlag)
2892         .hword  (0x08<<8)               |(1<<NFlag)
2893         .hword  (0x09<<8)            |(1<<VFlag)|(1<<NFlag)
2894         .hword  (0x0A<<8)         |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)
2895         .hword  (0x0B<<8)         |(1<<HFlag)   |(1<<NFlag)
2896         .hword  (0x0C<<8)         |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)
2897         .hword  (0x0D<<8)         |(1<<HFlag)   |(1<<NFlag)
2898         .hword  (0x0E<<8)         |(1<<HFlag)   |(1<<NFlag)
2899         .hword  (0x0F<<8)         |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)
2900         .hword  (0x10<<8)                  |(1<<NFlag)
2901         .hword  (0x11<<8)               |(1<<VFlag)|(1<<NFlag)
2902         .hword  (0x12<<8)               |(1<<VFlag)|(1<<NFlag)
2903         .hword  (0x13<<8)                  |(1<<NFlag)
2904         .hword  (0x14<<8)               |(1<<VFlag)|(1<<NFlag)
2905         .hword  (0x15<<8)                  |(1<<NFlag)
2906         .hword  (0x16<<8)                  |(1<<NFlag)
2907         .hword  (0x17<<8)               |(1<<VFlag)|(1<<NFlag)
2908         .hword  (0x18<<8)            |(1<<VFlag)|(1<<NFlag)
2909         .hword  (0x19<<8)               |(1<<NFlag)
2910         .hword  (0x1A<<8)         |(1<<HFlag)   |(1<<NFlag)
2911         .hword  (0x1B<<8)         |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)
2912         .hword  (0x1C<<8)         |(1<<HFlag)   |(1<<NFlag)
2913         .hword  (0x1D<<8)         |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)
2914         .hword  (0x1E<<8)         |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)
2915         .hword  (0x1F<<8)         |(1<<HFlag)   |(1<<NFlag)
2916         .hword  (0x20<<8)               |(1<<NFlag)
2917         .hword  (0x21<<8)            |(1<<VFlag)|(1<<NFlag)
2918         .hword  (0x22<<8)            |(1<<VFlag)|(1<<NFlag)
2919         .hword  (0x23<<8)               |(1<<NFlag)
2920         .hword  (0x24<<8)            |(1<<VFlag)|(1<<NFlag)
2921         .hword  (0x25<<8)               |(1<<NFlag)
2922         .hword  (0x26<<8)               |(1<<NFlag)
2923         .hword  (0x27<<8)            |(1<<VFlag)|(1<<NFlag)
2924         .hword  (0x28<<8)         |(1<<VFlag)|(1<<NFlag)
2925         .hword  (0x29<<8)            |(1<<NFlag)
2926         .hword  (0x2A<<8)      |(1<<HFlag)   |(1<<NFlag)
2927         .hword  (0x2B<<8)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)
2928         .hword  (0x2C<<8)      |(1<<HFlag)   |(1<<NFlag)
2929         .hword  (0x2D<<8)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)
2930         .hword  (0x2E<<8)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)
2931         .hword  (0x2F<<8)      |(1<<HFlag)   |(1<<NFlag)
2932         .hword  (0x30<<8)            |(1<<VFlag)|(1<<NFlag)
2933         .hword  (0x31<<8)               |(1<<NFlag)
2934         .hword  (0x32<<8)               |(1<<NFlag)
2935         .hword  (0x33<<8)            |(1<<VFlag)|(1<<NFlag)
2936         .hword  (0x34<<8)               |(1<<NFlag)
2937         .hword  (0x35<<8)            |(1<<VFlag)|(1<<NFlag)
2938         .hword  (0x36<<8)            |(1<<VFlag)|(1<<NFlag)
2939         .hword  (0x37<<8)               |(1<<NFlag)
2940         .hword  (0x38<<8)            |(1<<NFlag)
2941         .hword  (0x39<<8)         |(1<<VFlag)|(1<<NFlag)
2942         .hword  (0x3A<<8)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)
2943         .hword  (0x3B<<8)      |(1<<HFlag)   |(1<<NFlag)
2944         .hword  (0x3C<<8)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)
2945         .hword  (0x3D<<8)      |(1<<HFlag)   |(1<<NFlag)
2946         .hword  (0x3E<<8)      |(1<<HFlag)   |(1<<NFlag)
2947         .hword  (0x3F<<8)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)
2948         .hword  (0x40<<8)                  |(1<<NFlag)
2949         .hword  (0x41<<8)               |(1<<VFlag)|(1<<NFlag)
2950         .hword  (0x42<<8)               |(1<<VFlag)|(1<<NFlag)
2951         .hword  (0x43<<8)                  |(1<<NFlag)
2952         .hword  (0x44<<8)               |(1<<VFlag)|(1<<NFlag)
2953         .hword  (0x45<<8)                  |(1<<NFlag)
2954         .hword  (0x46<<8)                  |(1<<NFlag)
2955         .hword  (0x47<<8)               |(1<<VFlag)|(1<<NFlag)
2956         .hword  (0x48<<8)            |(1<<VFlag)|(1<<NFlag)
2957         .hword  (0x49<<8)               |(1<<NFlag)
2958         .hword  (0x4A<<8)         |(1<<HFlag)   |(1<<NFlag)
2959         .hword  (0x4B<<8)         |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)
2960         .hword  (0x4C<<8)         |(1<<HFlag)   |(1<<NFlag)
2961         .hword  (0x4D<<8)         |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)
2962         .hword  (0x4E<<8)         |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)
2963         .hword  (0x4F<<8)         |(1<<HFlag)   |(1<<NFlag)
2964         .hword  (0x50<<8)               |(1<<VFlag)|(1<<NFlag)
2965         .hword  (0x51<<8)                  |(1<<NFlag)
2966         .hword  (0x52<<8)                  |(1<<NFlag)
2967         .hword  (0x53<<8)               |(1<<VFlag)|(1<<NFlag)
2968         .hword  (0x54<<8)                  |(1<<NFlag)
2969         .hword  (0x55<<8)               |(1<<VFlag)|(1<<NFlag)
2970         .hword  (0x56<<8)               |(1<<VFlag)|(1<<NFlag)
2971         .hword  (0x57<<8)                  |(1<<NFlag)
2972         .hword  (0x58<<8)               |(1<<NFlag)
2973         .hword  (0x59<<8)            |(1<<VFlag)|(1<<NFlag)
2974         .hword  (0x5A<<8)         |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)
2975         .hword  (0x5B<<8)         |(1<<HFlag)   |(1<<NFlag)
2976         .hword  (0x5C<<8)         |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)
2977         .hword  (0x5D<<8)         |(1<<HFlag)   |(1<<NFlag)
2978         .hword  (0x5E<<8)         |(1<<HFlag)   |(1<<NFlag)
2979         .hword  (0x5F<<8)         |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)
2980         .hword  (0x60<<8)            |(1<<VFlag)|(1<<NFlag)
2981         .hword  (0x61<<8)               |(1<<NFlag)
2982         .hword  (0x62<<8)               |(1<<NFlag)
2983         .hword  (0x63<<8)            |(1<<VFlag)|(1<<NFlag)
2984         .hword  (0x64<<8)               |(1<<NFlag)
2985         .hword  (0x65<<8)            |(1<<VFlag)|(1<<NFlag)
2986         .hword  (0x66<<8)            |(1<<VFlag)|(1<<NFlag)
2987         .hword  (0x67<<8)               |(1<<NFlag)
2988         .hword  (0x68<<8)            |(1<<NFlag)
2989         .hword  (0x69<<8)         |(1<<VFlag)|(1<<NFlag)
2990         .hword  (0x6A<<8)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)
2991         .hword  (0x6B<<8)      |(1<<HFlag)   |(1<<NFlag)
2992         .hword  (0x6C<<8)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)
2993         .hword  (0x6D<<8)      |(1<<HFlag)   |(1<<NFlag)
2994         .hword  (0x6E<<8)      |(1<<HFlag)   |(1<<NFlag)
2995         .hword  (0x6F<<8)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)
2996         .hword  (0x70<<8)               |(1<<NFlag)
2997         .hword  (0x71<<8)            |(1<<VFlag)|(1<<NFlag)
2998         .hword  (0x72<<8)            |(1<<VFlag)|(1<<NFlag)
2999         .hword  (0x73<<8)               |(1<<NFlag)
3000         .hword  (0x74<<8)            |(1<<VFlag)|(1<<NFlag)
3001         .hword  (0x75<<8)               |(1<<NFlag)
3002         .hword  (0x76<<8)               |(1<<NFlag)
3003         .hword  (0x77<<8)            |(1<<VFlag)|(1<<NFlag)
3004         .hword  (0x78<<8)         |(1<<VFlag)|(1<<NFlag)
3005         .hword  (0x79<<8)            |(1<<NFlag)
3006         .hword  (0x7A<<8)      |(1<<HFlag)   |(1<<NFlag)
3007         .hword  (0x7B<<8)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)
3008         .hword  (0x7C<<8)      |(1<<HFlag)   |(1<<NFlag)
3009         .hword  (0x7D<<8)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)
3010         .hword  (0x7E<<8)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)
3011         .hword  (0x7F<<8)      |(1<<HFlag)   |(1<<NFlag)
3012         .hword  (0x80<<8)|(1<<SFlag)               |(1<<NFlag)
3013         .hword  (0x81<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)
3014         .hword  (0x82<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)
3015         .hword  (0x83<<8)|(1<<SFlag)               |(1<<NFlag)
3016         .hword  (0x84<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)
3017         .hword  (0x85<<8)|(1<<SFlag)               |(1<<NFlag)
3018         .hword  (0x86<<8)|(1<<SFlag)               |(1<<NFlag)
3019         .hword  (0x87<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)
3020         .hword  (0x88<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)
3021         .hword  (0x89<<8)|(1<<SFlag)            |(1<<NFlag)
3022         .hword  (0x8A<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<NFlag)
3023         .hword  (0x8B<<8)|(1<<SFlag)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)
3024         .hword  (0x8C<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<NFlag)
3025         .hword  (0x8D<<8)|(1<<SFlag)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)
3026         .hword  (0x8E<<8)|(1<<SFlag)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)
3027         .hword  (0x8F<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<NFlag)
3028         .hword  (0x90<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)
3029         .hword  (0x91<<8)|(1<<SFlag)               |(1<<NFlag)
3030         .hword  (0x92<<8)|(1<<SFlag)               |(1<<NFlag)
3031         .hword  (0x93<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)
3032         .hword  (0x34<<8)               |(1<<NFlag)|(1<<CFlag)
3033         .hword  (0x35<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3034         .hword  (0x36<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3035         .hword  (0x37<<8)               |(1<<NFlag)|(1<<CFlag)
3036         .hword  (0x38<<8)            |(1<<NFlag)|(1<<CFlag)
3037         .hword  (0x39<<8)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3038         .hword  (0x3A<<8)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3039         .hword  (0x3B<<8)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3040         .hword  (0x3C<<8)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3041         .hword  (0x3D<<8)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3042         .hword  (0x3E<<8)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3043         .hword  (0x3F<<8)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3044         .hword  (0x40<<8)                  |(1<<NFlag)|(1<<CFlag)
3045         .hword  (0x41<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3046         .hword  (0x42<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3047         .hword  (0x43<<8)                  |(1<<NFlag)|(1<<CFlag)
3048         .hword  (0x44<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3049         .hword  (0x45<<8)                  |(1<<NFlag)|(1<<CFlag)
3050         .hword  (0x46<<8)                  |(1<<NFlag)|(1<<CFlag)
3051         .hword  (0x47<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3052         .hword  (0x48<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3053         .hword  (0x49<<8)               |(1<<NFlag)|(1<<CFlag)
3054         .hword  (0x4A<<8)         |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3055         .hword  (0x4B<<8)         |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3056         .hword  (0x4C<<8)         |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3057         .hword  (0x4D<<8)         |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3058         .hword  (0x4E<<8)         |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3059         .hword  (0x4F<<8)         |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3060         .hword  (0x50<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3061         .hword  (0x51<<8)                  |(1<<NFlag)|(1<<CFlag)
3062         .hword  (0x52<<8)                  |(1<<NFlag)|(1<<CFlag)
3063         .hword  (0x53<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3064         .hword  (0x54<<8)                  |(1<<NFlag)|(1<<CFlag)
3065         .hword  (0x55<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3066         .hword  (0x56<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3067         .hword  (0x57<<8)                  |(1<<NFlag)|(1<<CFlag)
3068         .hword  (0x58<<8)               |(1<<NFlag)|(1<<CFlag)
3069         .hword  (0x59<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3070         .hword  (0x5A<<8)         |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3071         .hword  (0x5B<<8)         |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3072         .hword  (0x5C<<8)         |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3073         .hword  (0x5D<<8)         |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3074         .hword  (0x5E<<8)         |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3075         .hword  (0x5F<<8)         |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3076         .hword  (0x60<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3077         .hword  (0x61<<8)               |(1<<NFlag)|(1<<CFlag)
3078         .hword  (0x62<<8)               |(1<<NFlag)|(1<<CFlag)
3079         .hword  (0x63<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3080         .hword  (0x64<<8)               |(1<<NFlag)|(1<<CFlag)
3081         .hword  (0x65<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3082         .hword  (0x66<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3083         .hword  (0x67<<8)               |(1<<NFlag)|(1<<CFlag)
3084         .hword  (0x68<<8)            |(1<<NFlag)|(1<<CFlag)
3085         .hword  (0x69<<8)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3086         .hword  (0x6A<<8)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3087         .hword  (0x6B<<8)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3088         .hword  (0x6C<<8)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3089         .hword  (0x6D<<8)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3090         .hword  (0x6E<<8)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3091         .hword  (0x6F<<8)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3092         .hword  (0x70<<8)               |(1<<NFlag)|(1<<CFlag)
3093         .hword  (0x71<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3094         .hword  (0x72<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3095         .hword  (0x73<<8)               |(1<<NFlag)|(1<<CFlag)
3096         .hword  (0x74<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3097         .hword  (0x75<<8)               |(1<<NFlag)|(1<<CFlag)
3098         .hword  (0x76<<8)               |(1<<NFlag)|(1<<CFlag)
3099         .hword  (0x77<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3100         .hword  (0x78<<8)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3101         .hword  (0x79<<8)            |(1<<NFlag)|(1<<CFlag)
3102         .hword  (0x7A<<8)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3103         .hword  (0x7B<<8)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3104         .hword  (0x7C<<8)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3105         .hword  (0x7D<<8)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3106         .hword  (0x7E<<8)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3107         .hword  (0x7F<<8)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3108         .hword  (0x80<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
3109         .hword  (0x81<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3110         .hword  (0x82<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3111         .hword  (0x83<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
3112         .hword  (0x84<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3113         .hword  (0x85<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
3114         .hword  (0x86<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
3115         .hword  (0x87<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3116         .hword  (0x88<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3117         .hword  (0x89<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
3118         .hword  (0x8A<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3119         .hword  (0x8B<<8)|(1<<SFlag)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3120         .hword  (0x8C<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3121         .hword  (0x8D<<8)|(1<<SFlag)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3122         .hword  (0x8E<<8)|(1<<SFlag)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3123         .hword  (0x8F<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3124         .hword  (0x90<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3125         .hword  (0x91<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
3126         .hword  (0x92<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
3127         .hword  (0x93<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3128         .hword  (0x94<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
3129         .hword  (0x95<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3130         .hword  (0x96<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3131         .hword  (0x97<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
3132         .hword  (0x98<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
3133         .hword  (0x99<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3134         .hword  (0x9A<<8)|(1<<SFlag)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3135         .hword  (0x9B<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3136         .hword  (0x9C<<8)|(1<<SFlag)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3137         .hword  (0x9D<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3138         .hword  (0x9E<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3139         .hword  (0x9F<<8)|(1<<SFlag)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3140         .hword  (0xA0<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3141         .hword  (0xA1<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
3142         .hword  (0xA2<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
3143         .hword  (0xA3<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3144         .hword  (0xA4<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
3145         .hword  (0xA5<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3146         .hword  (0xA6<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3147         .hword  (0xA7<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
3148         .hword  (0xA8<<8)|(1<<SFlag)         |(1<<NFlag)|(1<<CFlag)
3149         .hword  (0xA9<<8)|(1<<SFlag)      |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3150         .hword  (0xAA<<8)|(1<<SFlag)   |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3151         .hword  (0xAB<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3152         .hword  (0xAC<<8)|(1<<SFlag)   |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3153         .hword  (0xAD<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3154         .hword  (0xAE<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3155         .hword  (0xAF<<8)|(1<<SFlag)   |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3156         .hword  (0xB0<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
3157         .hword  (0xB1<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3158         .hword  (0xB2<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3159         .hword  (0xB3<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
3160         .hword  (0xB4<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3161         .hword  (0xB5<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
3162         .hword  (0xB6<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
3163         .hword  (0xB7<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3164         .hword  (0xB8<<8)|(1<<SFlag)      |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3165         .hword  (0xB9<<8)|(1<<SFlag)         |(1<<NFlag)|(1<<CFlag)
3166         .hword  (0xBA<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3167         .hword  (0xBB<<8)|(1<<SFlag)   |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3168         .hword  (0xBC<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3169         .hword  (0xBD<<8)|(1<<SFlag)   |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3170         .hword  (0xBE<<8)|(1<<SFlag)   |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3171         .hword  (0xBF<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3172         .hword  (0xC0<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3173         .hword  (0xC1<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
3174         .hword  (0xC2<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
3175         .hword  (0xC3<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3176         .hword  (0xC4<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
3177         .hword  (0xC5<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3178         .hword  (0xC6<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3179         .hword  (0xC7<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
3180         .hword  (0xC8<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
3181         .hword  (0xC9<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3182         .hword  (0xCA<<8)|(1<<SFlag)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3183         .hword  (0xCB<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3184         .hword  (0xCC<<8)|(1<<SFlag)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3185         .hword  (0xCD<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3186         .hword  (0xCE<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3187         .hword  (0xCF<<8)|(1<<SFlag)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3188         .hword  (0xD0<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
3189         .hword  (0xD1<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3190         .hword  (0xD2<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3191         .hword  (0xD3<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
3192         .hword  (0xD4<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3193         .hword  (0xD5<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
3194         .hword  (0xD6<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
3195         .hword  (0xD7<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3196         .hword  (0xD8<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3197         .hword  (0xD9<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
3198         .hword  (0xDA<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3199         .hword  (0xDB<<8)|(1<<SFlag)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3200         .hword  (0xDC<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3201         .hword  (0xDD<<8)|(1<<SFlag)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3202         .hword  (0xDE<<8)|(1<<SFlag)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3203         .hword  (0xDF<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3204         .hword  (0xE0<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
3205         .hword  (0xE1<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3206         .hword  (0xE2<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3207         .hword  (0xE3<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
3208         .hword  (0xE4<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3209         .hword  (0xE5<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
3210         .hword  (0xE6<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
3211         .hword  (0xE7<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3212         .hword  (0xE8<<8)|(1<<SFlag)      |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3213         .hword  (0xE9<<8)|(1<<SFlag)         |(1<<NFlag)|(1<<CFlag)
3214         .hword  (0xEA<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3215         .hword  (0xEB<<8)|(1<<SFlag)   |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3216         .hword  (0xEC<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3217         .hword  (0xED<<8)|(1<<SFlag)   |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3218         .hword  (0xEE<<8)|(1<<SFlag)   |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3219         .hword  (0xEF<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3220         .hword  (0xF0<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3221         .hword  (0xF1<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
3222         .hword  (0xF2<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
3223         .hword  (0xF3<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3224         .hword  (0xF4<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
3225         .hword  (0xF5<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3226         .hword  (0xF6<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3227         .hword  (0xF7<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
3228         .hword  (0xF8<<8)|(1<<SFlag)         |(1<<NFlag)|(1<<CFlag)
3229         .hword  (0xF9<<8)|(1<<SFlag)      |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3230         .hword  (0xFA<<8)|(1<<SFlag)   |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3231         .hword  (0xFB<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3232         .hword  (0xFC<<8)|(1<<SFlag)   |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3233         .hword  (0xFD<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3234         .hword  (0xFE<<8)|(1<<SFlag)   |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3235         .hword  (0xFF<<8)|(1<<SFlag)   |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3236         .hword  (0x00<<8)   |(1<<ZFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3237         .hword  (0x01<<8)                  |(1<<NFlag)|(1<<CFlag)
3238         .hword  (0x02<<8)                  |(1<<NFlag)|(1<<CFlag)
3239         .hword  (0x03<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3240         .hword  (0x04<<8)                  |(1<<NFlag)|(1<<CFlag)
3241         .hword  (0x05<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3242         .hword  (0x06<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3243         .hword  (0x07<<8)                  |(1<<NFlag)|(1<<CFlag)
3244         .hword  (0x08<<8)               |(1<<NFlag)|(1<<CFlag)
3245         .hword  (0x09<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3246         .hword  (0x0A<<8)         |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3247         .hword  (0x0B<<8)         |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3248         .hword  (0x0C<<8)         |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3249         .hword  (0x0D<<8)         |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3250         .hword  (0x0E<<8)         |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3251         .hword  (0x0F<<8)         |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3252         .hword  (0x10<<8)                  |(1<<NFlag)|(1<<CFlag)
3253         .hword  (0x11<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3254         .hword  (0x12<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3255         .hword  (0x13<<8)                  |(1<<NFlag)|(1<<CFlag)
3256         .hword  (0x14<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3257         .hword  (0x15<<8)                  |(1<<NFlag)|(1<<CFlag)
3258         .hword  (0x16<<8)                  |(1<<NFlag)|(1<<CFlag)
3259         .hword  (0x17<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3260         .hword  (0x18<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3261         .hword  (0x19<<8)               |(1<<NFlag)|(1<<CFlag)
3262         .hword  (0x1A<<8)         |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3263         .hword  (0x1B<<8)         |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3264         .hword  (0x1C<<8)         |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3265         .hword  (0x1D<<8)         |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3266         .hword  (0x1E<<8)         |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3267         .hword  (0x1F<<8)         |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3268         .hword  (0x20<<8)               |(1<<NFlag)|(1<<CFlag)
3269         .hword  (0x21<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3270         .hword  (0x22<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3271         .hword  (0x23<<8)               |(1<<NFlag)|(1<<CFlag)
3272         .hword  (0x24<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3273         .hword  (0x25<<8)               |(1<<NFlag)|(1<<CFlag)
3274         .hword  (0x26<<8)               |(1<<NFlag)|(1<<CFlag)
3275         .hword  (0x27<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3276         .hword  (0x28<<8)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3277         .hword  (0x29<<8)            |(1<<NFlag)|(1<<CFlag)
3278         .hword  (0x2A<<8)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3279         .hword  (0x2B<<8)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3280         .hword  (0x2C<<8)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3281         .hword  (0x2D<<8)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3282         .hword  (0x2E<<8)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3283         .hword  (0x2F<<8)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3284         .hword  (0x30<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3285         .hword  (0x31<<8)               |(1<<NFlag)|(1<<CFlag)
3286         .hword  (0x32<<8)               |(1<<NFlag)|(1<<CFlag)
3287         .hword  (0x33<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3288         .hword  (0x34<<8)               |(1<<NFlag)|(1<<CFlag)
3289         .hword  (0x35<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3290         .hword  (0x36<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3291         .hword  (0x37<<8)               |(1<<NFlag)|(1<<CFlag)
3292         .hword  (0x38<<8)            |(1<<NFlag)|(1<<CFlag)
3293         .hword  (0x39<<8)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3294         .hword  (0x3A<<8)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3295         .hword  (0x3B<<8)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3296         .hword  (0x3C<<8)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3297         .hword  (0x3D<<8)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3298         .hword  (0x3E<<8)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3299         .hword  (0x3F<<8)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3300         .hword  (0x40<<8)                  |(1<<NFlag)|(1<<CFlag)
3301         .hword  (0x41<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3302         .hword  (0x42<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3303         .hword  (0x43<<8)                  |(1<<NFlag)|(1<<CFlag)
3304         .hword  (0x44<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3305         .hword  (0x45<<8)                  |(1<<NFlag)|(1<<CFlag)
3306         .hword  (0x46<<8)                  |(1<<NFlag)|(1<<CFlag)
3307         .hword  (0x47<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3308         .hword  (0x48<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3309         .hword  (0x49<<8)               |(1<<NFlag)|(1<<CFlag)
3310         .hword  (0x4A<<8)         |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3311         .hword  (0x4B<<8)         |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3312         .hword  (0x4C<<8)         |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3313         .hword  (0x4D<<8)         |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3314         .hword  (0x4E<<8)         |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3315         .hword  (0x4F<<8)         |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3316         .hword  (0x50<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3317         .hword  (0x51<<8)                  |(1<<NFlag)|(1<<CFlag)
3318         .hword  (0x52<<8)                  |(1<<NFlag)|(1<<CFlag)
3319         .hword  (0x53<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3320         .hword  (0x54<<8)                  |(1<<NFlag)|(1<<CFlag)
3321         .hword  (0x55<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3322         .hword  (0x56<<8)               |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3323         .hword  (0x57<<8)                  |(1<<NFlag)|(1<<CFlag)
3324         .hword  (0x58<<8)               |(1<<NFlag)|(1<<CFlag)
3325         .hword  (0x59<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3326         .hword  (0x5A<<8)         |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3327         .hword  (0x5B<<8)         |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3328         .hword  (0x5C<<8)         |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3329         .hword  (0x5D<<8)         |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3330         .hword  (0x5E<<8)         |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3331         .hword  (0x5F<<8)         |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3332         .hword  (0x60<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3333         .hword  (0x61<<8)               |(1<<NFlag)|(1<<CFlag)
3334         .hword  (0x62<<8)               |(1<<NFlag)|(1<<CFlag)
3335         .hword  (0x63<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3336         .hword  (0x64<<8)               |(1<<NFlag)|(1<<CFlag)
3337         .hword  (0x65<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3338         .hword  (0x66<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3339         .hword  (0x67<<8)               |(1<<NFlag)|(1<<CFlag)
3340         .hword  (0x68<<8)            |(1<<NFlag)|(1<<CFlag)
3341         .hword  (0x69<<8)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3342         .hword  (0x6A<<8)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3343         .hword  (0x6B<<8)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3344         .hword  (0x6C<<8)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3345         .hword  (0x6D<<8)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3346         .hword  (0x6E<<8)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3347         .hword  (0x6F<<8)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3348         .hword  (0x70<<8)               |(1<<NFlag)|(1<<CFlag)
3349         .hword  (0x71<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3350         .hword  (0x72<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3351         .hword  (0x73<<8)               |(1<<NFlag)|(1<<CFlag)
3352         .hword  (0x74<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3353         .hword  (0x75<<8)               |(1<<NFlag)|(1<<CFlag)
3354         .hword  (0x76<<8)               |(1<<NFlag)|(1<<CFlag)
3355         .hword  (0x77<<8)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3356         .hword  (0x78<<8)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3357         .hword  (0x79<<8)            |(1<<NFlag)|(1<<CFlag)
3358         .hword  (0x7A<<8)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3359         .hword  (0x7B<<8)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3360         .hword  (0x7C<<8)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3361         .hword  (0x7D<<8)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3362         .hword  (0x7E<<8)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3363         .hword  (0x7F<<8)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3364         .hword  (0x80<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
3365         .hword  (0x81<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3366         .hword  (0x82<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3367         .hword  (0x83<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
3368         .hword  (0x84<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3369         .hword  (0x85<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
3370         .hword  (0x86<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
3371         .hword  (0x87<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3372         .hword  (0x88<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3373         .hword  (0x89<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
3374         .hword  (0x8A<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3375         .hword  (0x8B<<8)|(1<<SFlag)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3376         .hword  (0x8C<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3377         .hword  (0x8D<<8)|(1<<SFlag)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3378         .hword  (0x8E<<8)|(1<<SFlag)      |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3379         .hword  (0x8F<<8)|(1<<SFlag)      |(1<<HFlag)   |(1<<NFlag)|(1<<CFlag)
3380         .hword  (0x90<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3381         .hword  (0x91<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
3382         .hword  (0x92<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
3383         .hword  (0x93<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3384         .hword  (0x94<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
3385         .hword  (0x95<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3386         .hword  (0x96<<8)|(1<<SFlag)            |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3387         .hword  (0x97<<8)|(1<<SFlag)               |(1<<NFlag)|(1<<CFlag)
3388         .hword  (0x98<<8)|(1<<SFlag)            |(1<<NFlag)|(1<<CFlag)
3389         .hword  (0x99<<8)|(1<<SFlag)         |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)
3390
3391AF_Z80:  .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 0
3392         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 1
3393         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 2
3394         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 3
3395         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 4
3396         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 5
3397         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 6
3398         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 7
3399         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 8
3400         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 9
3401         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 10
3402         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 11
3403         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 12
3404         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 13
3405         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 14
3406         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 15
3407         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 16
3408         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 17
3409         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 18
3410         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 19
3411         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 20
3412         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 21
3413         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 22
3414         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 23
3415         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 24
3416         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 25
3417         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 26
3418         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 27
3419         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 28
3420         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 29
3421         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 30
3422         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 31
3423         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 32
3424         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 33
3425         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 34
3426         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 35
3427         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 36
3428         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 37
3429         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 38
3430         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 39
3431         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 40
3432         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 41
3433         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 42
3434         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 43
3435         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 44
3436         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 45
3437         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 46
3438         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 47
3439         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 48
3440         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 49
3441         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 50
3442         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 51
3443         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 52
3444         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 53
3445         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 54
3446         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 55
3447         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 56
3448         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 57
3449         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 58
3450         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 59
3451         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 60
3452         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 61
3453         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 62
3454         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 63
3455         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 64
3456         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 65
3457         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 66
3458         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 67
3459         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 68
3460         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 69
3461         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 70
3462         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 71
3463         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 72
3464         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 73
3465         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 74
3466         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 75
3467         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 76
3468         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 77
3469         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 78
3470         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 79
3471         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 80
3472         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 81
3473         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 82
3474         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 83
3475         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 84
3476         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 85
3477         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 86
3478         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 87
3479         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 88
3480         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 89
3481         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 90
3482         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 91
3483         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 92
3484         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 93
3485         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 94
3486         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 95
3487         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 96
3488         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 97
3489         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 98
3490         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 99
3491         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 100
3492         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 101
3493         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 102
3494         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 103
3495         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 104
3496         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 105
3497         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 106
3498         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 107
3499         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 108
3500         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 109
3501         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 110
3502         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 111
3503         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 112
3504         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 113
3505         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 114
3506         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 115
3507         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 116
3508         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 117
3509         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 118
3510         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 119
3511         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 120
3512         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 121
3513         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 122
3514         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 123
3515         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 124
3516         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 125
3517         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 126
3518         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 127
3519         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 128
3520         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 129
3521         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 130
3522         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 131
3523         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 132
3524         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 133
3525         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 134
3526         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 135
3527         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 136
3528         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 137
3529         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 138
3530         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 139
3531         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 140
3532         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 141
3533         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 142
3534         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 143
3535         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 144
3536         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 145
3537         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 146
3538         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 147
3539         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 148
3540         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 149
3541         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 150
3542         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 151
3543         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 152
3544         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 153
3545         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 154
3546         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 155
3547         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 156
3548         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 157
3549         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 158
3550         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 159
3551         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 160
3552         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 161
3553         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 162
3554         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 163
3555         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 164
3556         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 165
3557         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 166
3558         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 167
3559         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 168
3560         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 169
3561         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 170
3562         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 171
3563         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 172
3564         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 173
3565         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 174
3566         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 175
3567         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 176
3568         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 177
3569         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 178
3570         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 179
3571         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 180
3572         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 181
3573         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 182
3574         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 183
3575         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 184
3576         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 185
3577         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 186
3578         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 187
3579         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 188
3580         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 189
3581         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 190
3582         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 191
3583         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 192
3584         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 193
3585         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 194
3586         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 195
3587         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 196
3588         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 197
3589         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 198
3590         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 199
3591         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 200
3592         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 201
3593         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 202
3594         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 203
3595         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 204
3596         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 205
3597         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 206
3598         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 207
3599         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 208
3600         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 209
3601         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 210
3602         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 211
3603         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 212
3604         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 213
3605         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 214
3606         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 215
3607         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 216
3608         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 217
3609         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 218
3610         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 219
3611         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 220
3612         .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 221
3613         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 222
3614         .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 223
3615         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 224
3616         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 225
3617         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 226
3618         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 227
3619         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 228
3620         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 229
3621         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 230
3622         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 231
3623         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 232
3624         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 233
3625         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 234
3626         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 235
3627         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 236
3628         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 237
3629         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 238
3630         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 239
3631         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 240
3632         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 241
3633         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 242
3634         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 243
3635         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 244
3636         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 245
3637         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 246
3638         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 247
3639         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 248
3640         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 249
3641         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 250
3642         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 251
3643         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 252
3644         .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 253
3645         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 254
3646         .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 255
3647
3648AF_ARM:  .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 0
3649         .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 1
3650         .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 2
3651         .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 3
3652         .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 4
3653         .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 5
3654         .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 6
3655         .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 7
3656         .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 8
3657         .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 9
3658         .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 10
3659         .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 11
3660         .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 12
3661         .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 13
3662         .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 14
3663         .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 15
3664         .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 16
3665         .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 17
3666         .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 18
3667         .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 19
3668         .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 20
3669         .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 21
3670         .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 22
3671         .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 23
3672         .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 24
3673         .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 25
3674         .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 26
3675         .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 27
3676         .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 28
3677         .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 29
3678         .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 30
3679         .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 31
3680         .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 32
3681         .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 33
3682         .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 34
3683         .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 35
3684         .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 36
3685         .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 37
3686         .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 38
3687         .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 39
3688         .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 40
3689         .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 41
3690         .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 42
3691         .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 43
3692         .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 44
3693         .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 45
3694         .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 46
3695         .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 47
3696         .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 48
3697         .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 49
3698         .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 50
3699         .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 51
3700         .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 52
3701         .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 53
3702         .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 54
3703         .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 55
3704         .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 56
3705         .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 57
3706         .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 58
3707         .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 59
3708         .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 60
3709         .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 61
3710         .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 62
3711         .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag)  ;@ 63
3712         .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 64
3713         .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 65
3714         .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 66
3715         .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 67
3716         .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 68
3717         .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 69
3718         .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 70
3719         .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 71
3720         .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 72
3721         .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 73
3722         .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 74
3723         .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 75
3724         .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 76
3725         .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 77
3726         .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 78
3727         .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 79
3728         .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 80
3729         .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 81
3730         .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 82
3731         .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 83
3732         .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 84
3733         .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 85
3734         .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 86
3735         .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 87
3736         .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 88
3737         .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 89
3738         .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 90
3739         .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 91
3740         .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 92
3741         .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 93
3742         .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 94
3743         .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 95
3744         .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 96
3745         .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 97
3746         .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 98
3747         .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 99
3748         .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 100
3749         .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 101
3750         .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 102
3751         .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 103
3752         .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 104
3753         .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 105
3754         .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 106
3755         .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 107
3756         .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 108
3757         .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 109
3758         .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 110
3759         .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 111
3760         .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 112
3761         .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 113
3762         .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 114
3763         .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 115
3764         .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 116
3765         .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 117
3766         .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 118
3767         .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 119
3768         .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 120
3769         .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 121
3770         .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 122
3771         .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 123
3772         .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 124
3773         .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 125
3774         .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 126
3775         .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag)  ;@ 127
3776         .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 128
3777         .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 129
3778         .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 130
3779         .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 131
3780         .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 132
3781         .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 133
3782         .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 134
3783         .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 135
3784         .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 136
3785         .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 137
3786         .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 138
3787         .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 139
3788         .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 140
3789         .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 141
3790         .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 142
3791         .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 143
3792         .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 144
3793         .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 145
3794         .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 146
3795         .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 147
3796         .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 148
3797         .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 149
3798         .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 150
3799         .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 151
3800         .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 152
3801         .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 153
3802         .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 154
3803         .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 155
3804         .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 156
3805         .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 157
3806         .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 158
3807         .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 159
3808         .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 160
3809         .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 161
3810         .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 162
3811         .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 163
3812         .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 164
3813         .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 165
3814         .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 166
3815         .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 167
3816         .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 168
3817         .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 169
3818         .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 170
3819         .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 171
3820         .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 172
3821         .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 173
3822         .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 174
3823         .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 175
3824         .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 176
3825         .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 177
3826         .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 178
3827         .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 179
3828         .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 180
3829         .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 181
3830         .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 182
3831         .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 183
3832         .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 184
3833         .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 185
3834         .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 186
3835         .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 187
3836         .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 188
3837         .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 189
3838         .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 190
3839         .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag)  ;@ 191
3840         .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 192
3841         .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 193
3842         .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 194
3843         .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 195
3844         .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 196
3845         .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 197
3846         .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 198
3847         .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 199
3848         .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 200
3849         .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 201
3850         .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 202
3851         .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 203
3852         .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 204
3853         .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 205
3854         .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 206
3855         .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 207
3856         .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 208
3857         .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 209
3858         .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 210
3859         .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 211
3860         .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 212
3861         .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 213
3862         .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 214
3863         .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 215
3864         .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 216
3865         .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 217
3866         .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 218
3867         .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 219
3868         .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 220
3869         .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 221
3870         .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 222
3871         .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 223
3872         .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 224
3873         .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 225
3874         .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 226
3875         .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 227
3876         .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 228
3877         .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 229
3878         .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 230
3879         .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 231
3880         .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 232
3881         .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 233
3882         .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 234
3883         .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 235
3884         .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 236
3885         .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 237
3886         .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 238
3887         .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 239
3888         .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 240
3889         .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 241
3890         .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 242
3891         .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 243
3892         .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 244
3893         .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 245
3894         .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 246
3895         .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 247
3896         .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 248
3897         .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 249
3898         .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 250
3899         .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 251
3900         .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 252
3901         .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 253
3902         .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 254
3903         .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag)  ;@ 255
3904
3905PZSTable_data: .byte (1<<ZFlag)|(1<<VFlag),0,0,(1<<VFlag),0,(1<<VFlag),(1<<VFlag),0
3906	.byte  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  0,(1<<VFlag),(1<<VFlag),0,(1<<VFlag),0,0,(1<<VFlag),(1<<VFlag),0,0,(1<<VFlag),0,(1<<VFlag),(1<<VFlag),0
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<<VFlag),0,0,(1<<VFlag),0,(1<<VFlag),(1<<VFlag),0,0,(1<<VFlag),(1<<VFlag),0,(1<<VFlag),0,0,(1<<VFlag)
3912	.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)
3913	.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
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<<VFlag),(1<<SFlag),(1<<SFlag),(1<<SFlag)|(1<<VFlag)
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<<SFlag)|(1<<VFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)
3920	.byte  (1<<SFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)
3921	.byte  (1<<SFlag)|(1<<VFlag),(1<<SFlag),(1<<SFlag),(1<<SFlag)|(1<<VFlag)
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<<SFlag)|(1<<VFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)
3925	.byte  (1<<SFlag)|(1<<VFlag),(1<<SFlag),(1<<SFlag),(1<<SFlag)|(1<<VFlag)
3926	.byte  (1<<SFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)
3927	.byte  (1<<SFlag)|(1<<VFlag),(1<<SFlag),(1<<SFlag),(1<<SFlag)|(1<<VFlag)
3928	.byte  (1<<SFlag)|(1<<VFlag),(1<<SFlag),(1<<SFlag),(1<<SFlag)|(1<<VFlag)
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<<SFlag)|(1<<VFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)
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<<VFlag),(1<<SFlag),(1<<SFlag),(1<<SFlag)|(1<<VFlag)
3936	.byte  (1<<SFlag)|(1<<VFlag),(1<<SFlag),(1<<SFlag),(1<<SFlag)|(1<<VFlag)
3937	.byte  (1<<SFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)
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<<VFlag),(1<<SFlag),(1<<SFlag),(1<<SFlag)|(1<<VFlag)
3941	.byte  (1<<SFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)
3942	.byte  (1<<SFlag)|(1<<VFlag),(1<<SFlag),(1<<SFlag),(1<<SFlag)|(1<<VFlag)
3943	.byte  (1<<SFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)
3944	.byte  (1<<SFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)
3945	.byte  (1<<SFlag)|(1<<VFlag),(1<<SFlag),(1<<SFlag),(1<<SFlag)|(1<<VFlag)
3946MAIN_opcodes:
3947	.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
3948	.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
3949	.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
3950	.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
3951	.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
3952	.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
3953	.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
3954	.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
3955	.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
3956	.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
3957	.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
3958	.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
3959	.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
3960	.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
3961	.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
3962	.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
3963	.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
3964	.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
3965	.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
3966	.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
3967	.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
3968	.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
3969	.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
3970	.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
3971	.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
3972	.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
3973	.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
3974	.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
3975	.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
3976	.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
3977	.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
3978	.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
3979
3980EI_DUMMY_opcodes:
3981	.word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@0
3982	.word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@0
3983	.word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@1
3984	.word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@1
3985	.word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@2
3986	.word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@2
3987	.word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@3
3988	.word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@3
3989	.word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@4
3990	.word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@4
3991	.word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@5
3992	.word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@5
3993	.word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@6
3994	.word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@6
3995	.word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@7
3996	.word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@7
3997	.word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@8
3998	.word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@8
3999	.word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@9
4000	.word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@9
4001	.word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@A
4002	.word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@A
4003	.word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@B
4004	.word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@B
4005	.word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@C
4006	.word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@C
4007	.word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@D
4008	.word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@D
4009	.word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@E
4010	.word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@E
4011	.word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@F
4012	.word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@F
4013
4014;@NOP
4015opcode_0_0:
4016;@LD B,B
4017opcode_4_0:
4018;@LD C,C
4019opcode_4_9:
4020;@LD D,D
4021opcode_5_2:
4022;@LD E,E
4023opcode_5_B:
4024;@LD H,H
4025opcode_6_4:
4026;@LD L,L
4027opcode_6_D:
4028;@LD A,A
4029opcode_7_F:
4030	fetch 4
4031;@LD BC,NN
4032opcode_0_1:
4033	ldrb r0,[z80pc],#1
4034	ldrb r1,[z80pc],#1
4035	orr r0,r0,r1, lsl #8
4036	mov z80bc,r0, lsl #16
4037	fetch 10
4038;@LD (BC),A
4039opcode_0_2:
4040	mov r0,z80a, lsr #24
4041	mov r1,z80bc, lsr #16
4042	writemem8
4043	fetch 7
4044;@INC BC
4045opcode_0_3:
4046	add z80bc,z80bc,#1<<16
4047	fetch 6
4048;@INC B
4049opcode_0_4:
4050	opINC8H z80bc
4051	fetch 4
4052;@DEC B
4053opcode_0_5:
4054	opDEC8H z80bc
4055	fetch 4
4056;@LD B,N
4057opcode_0_6:
4058	ldrb r1,[z80pc],#1
4059	and z80bc,z80bc,#0xFF<<16
4060	orr z80bc,z80bc,r1, lsl #24
4061	fetch 7
4062;@RLCA
4063opcode_0_7:
4064	bic z80f,z80f,#(1<<NFlag)|(1<<HFlag)|(1<<CFlag)
4065	movs z80a,z80a, lsl #1
4066	orrcs z80a,z80a,#1<<24
4067	orrcs z80f,z80f,#1<<CFlag
4068	fetch 4
4069;@EX AF,AF'
4070opcode_0_8:
4071	add r1,cpucontext,#z80a2
4072	swp z80a,z80a,[r1]
4073	add r1,cpucontext,#z80f2
4074	swp z80f,z80f,[r1]
4075	fetch 4
4076;@ADD HL,BC
4077opcode_0_9:
4078	opADD16 z80hl z80bc
4079	fetch 11
4080;@LD A,(BC)
4081opcode_0_A:
4082	mov r0,z80bc, lsr #16
4083	readmem8
4084	mov z80a,r0, lsl #24
4085	fetch 7
4086;@DEC BC
4087opcode_0_B:
4088	sub z80bc,z80bc,#1<<16
4089	fetch 6
4090;@INC C
4091opcode_0_C:
4092	opINC8L z80bc
4093	fetch 4
4094;@DEC C
4095opcode_0_D:
4096	opDEC8L z80bc
4097	fetch 4
4098;@LD C,N
4099opcode_0_E:
4100	ldrb r1,[z80pc],#1
4101	and z80bc,z80bc,#0xFF<<24
4102	orr z80bc,z80bc,r1, lsl #16
4103	fetch 7
4104;@RRCA
4105opcode_0_F:
4106	bic z80f,z80f,#(1<<NFlag)|(1<<HFlag)|(1<<CFlag)
4107	movs z80a,z80a, lsr #25
4108	orrcs z80a,z80a,#1<<7
4109	orrcs z80f,z80f,#1<<CFlag
4110	mov z80a,z80a, lsl #24
4111	fetch 4
4112;@DJNZ $+2
4113opcode_1_0:
4114	sub z80bc,z80bc,#1<<24
4115	tst z80bc,#0xFF<<24
4116	ldrsb r1,[z80pc],#1
4117	addne z80pc,z80pc,r1
4118	subne z80_icount,z80_icount,#5
4119	fetch 8
4120
4121;@LD DE,NN
4122opcode_1_1:
4123	ldrb r0,[z80pc],#1
4124	ldrb r1,[z80pc],#1
4125	orr r0,r0,r1, lsl #8
4126	mov z80de,r0, lsl #16
4127	fetch 10
4128;@LD (DE),A
4129opcode_1_2:
4130	mov r0,z80a, lsr #24
4131	writemem8DE
4132	fetch 7
4133;@INC DE
4134opcode_1_3:
4135	add z80de,z80de,#1<<16
4136	fetch 6
4137;@INC D
4138opcode_1_4:
4139	opINC8H z80de
4140	fetch 4
4141;@DEC D
4142opcode_1_5:
4143	opDEC8H z80de
4144	fetch 4
4145;@LD D,N
4146opcode_1_6:
4147	ldrb r1,[z80pc],#1
4148	and z80de,z80de,#0xFF<<16
4149	orr z80de,z80de,r1, lsl #24
4150	fetch 7
4151;@RLA
4152opcode_1_7:
4153	tst z80f,#1<<CFlag
4154	orrne z80a,z80a,#1<<23
4155	bic z80f,z80f,#(1<<NFlag)|(1<<HFlag)|(1<<CFlag)
4156	movs z80a,z80a, lsl #1
4157	orrcs z80f,z80f,#1<<CFlag
4158	fetch 4
4159;@JR $+2
4160opcode_1_8:
4161	ldrsb r1,[z80pc],#1
4162	add z80pc,z80pc,r1
4163	fetch 12
4164;@ADD HL,DE
4165opcode_1_9:
4166	opADD16 z80hl z80de
4167	fetch 11
4168;@LD A,(DE)
4169opcode_1_A:
4170	mov r0,z80de, lsr #16
4171	readmem8
4172	mov z80a,r0, lsl #24
4173	fetch 7
4174;@DEC DE
4175opcode_1_B:
4176	sub z80de,z80de,#1<<16
4177	fetch 6
4178;@INC E
4179opcode_1_C:
4180	opINC8L z80de
4181	fetch 4
4182;@DEC E
4183opcode_1_D:
4184	opDEC8L z80de
4185	fetch 4
4186;@LD E,N
4187opcode_1_E:
4188	ldrb r0,[z80pc],#1
4189	and z80de,z80de,#0xFF<<24
4190	orr z80de,z80de,r0, lsl #16
4191	fetch 7
4192;@RRA
4193opcode_1_F:
4194	orr z80a,z80a,z80f,lsr#1		;@get C
4195	bic z80f,z80f,#(1<<NFlag)|(1<<HFlag)|(1<<CFlag)
4196	movs z80a,z80a,ror#25
4197	orrcs z80f,z80f,#1<<CFlag
4198	mov z80a,z80a,lsl#24
4199	fetch 4
4200;@JR NZ,$+2
4201opcode_2_0:
4202	tst z80f,#1<<ZFlag
4203	beq opcode_1_8
4204	add z80pc,z80pc,#1
4205	fetch 7
4206;@LD HL,NN
4207opcode_2_1:
4208	ldrb r0,[z80pc],#1
4209	ldrb r1,[z80pc],#1
4210	orr r0,r0,r1, lsl #8
4211	mov z80hl,r0, lsl #16
4212	fetch 10
4213;@LD (NN),HL
4214opcode_ED_63:
4215	eatcycles 4
4216;@LD (NN),HL
4217opcode_2_2:
4218	ldrb r0,[z80pc],#1
4219	ldrb r1,[z80pc],#1
4220	orr r1,r0,r1, lsl #8
4221	mov r0,z80hl, lsr #16
4222	writemem16
4223	fetch 16
4224;@INC HL
4225opcode_2_3:
4226	add z80hl,z80hl,#1<<16
4227	fetch 6
4228;@INC H
4229opcode_2_4:
4230	opINC8H z80hl
4231	fetch 4
4232;@DEC H
4233opcode_2_5:
4234	opDEC8H z80hl
4235	fetch 4
4236;@LD H,N
4237opcode_2_6:
4238	ldrb r1,[z80pc],#1
4239	and z80hl,z80hl,#0xFF<<16
4240	orr z80hl,z80hl,r1, lsl #24
4241	fetch 7
4242DAATABLE_LOCAL: .word DAATable
4243;@DAA
4244opcode_2_7:
4245	mov r1,z80a, lsr #23
4246	tst z80f,#1<<CFlag
4247	orrne r1,r1,#512
4248	tst z80f,#1<<HFlag
4249	orrne r1,r1,#1024
4250	tst z80f,#1<<NFlag
4251	orrne r1,r1,#2048
4252	ldr r2,DAATABLE_LOCAL
4253	ldrh r1,[r2,r1]
4254	and z80f,r1,#0xFF
4255	and r2,r1,#0xFF<<8
4256	mov z80a,r2, lsl #16
4257	fetch 4
4258;@JR Z,$+2
4259opcode_2_8:
4260	tst z80f,#1<<ZFlag
4261	bne opcode_1_8
4262	add z80pc,z80pc,#1
4263	fetch 7
4264;@ADD HL,HL
4265opcode_2_9:
4266	opADD16_2 z80hl
4267	fetch 11
4268;@LD HL,(NN)
4269opcode_ED_6B:
4270	eatcycles 4
4271;@LD HL,(NN)
4272opcode_2_A:
4273	ldrb r0,[z80pc],#1
4274	ldrb r1,[z80pc],#1
4275	orr r0,r0,r1, lsl #8
4276	readmem16
4277	mov z80hl,r0, lsl #16
4278	fetch 16
4279;@DEC HL
4280opcode_2_B:
4281	sub z80hl,z80hl,#1<<16
4282	fetch 6
4283;@INC L
4284opcode_2_C:
4285	opINC8L z80hl
4286	fetch 4
4287;@DEC L
4288opcode_2_D:
4289	opDEC8L z80hl
4290	fetch 4
4291;@LD L,N
4292opcode_2_E:
4293	ldrb r0,[z80pc],#1
4294	and z80hl,z80hl,#0xFF<<24
4295	orr z80hl,z80hl,r0, lsl #16
4296	fetch 7
4297;@CPL
4298opcode_2_F:
4299	eor z80a,z80a,#0xFF<<24
4300	orr z80f,z80f,#(1<<NFlag)|(1<<HFlag)
4301	fetch 4
4302;@JR NC,$+2
4303opcode_3_0:
4304	tst z80f,#1<<CFlag
4305	beq opcode_1_8
4306	add z80pc,z80pc,#1
4307	fetch 7
4308;@LD SP,NN
4309opcode_3_1:
4310	ldrb r0,[z80pc],#1
4311	ldrb r1,[z80pc],#1
4312
4313.if FAST_Z80SP
4314	orr r0,r0,r1, lsl #8
4315	rebasesp
4316	;@mov z80sp,r0
4317.else
4318	orr z80sp,r0,r1, lsl #8
4319.endif
4320	fetch 10
4321;@LD (NN),A
4322opcode_3_2:
4323	ldrb r0,[z80pc],#1
4324	ldrb r1,[z80pc],#1
4325	orr r1,r0,r1, lsl #8
4326	mov r0,z80a, lsr #24
4327	writemem8
4328	fetch 13
4329;@INC SP
4330opcode_3_3:
4331	add z80sp,z80sp,#1
4332	fetch 6
4333;@INC (HL)
4334opcode_3_4:
4335	readmem8HL
4336	opINC8b
4337	writemem8HL
4338	fetch 11
4339;@DEC (HL)
4340opcode_3_5:
4341	readmem8HL
4342	opDEC8b
4343	writemem8HL
4344	fetch 11
4345;@LD (HL),N
4346opcode_3_6:
4347	ldrb r0,[z80pc],#1
4348	writemem8HL
4349	fetch 10
4350;@SCF
4351opcode_3_7:
4352	bic z80f,z80f,#(1<<NFlag)|(1<<HFlag)
4353	orr z80f,z80f,#1<<CFlag
4354	fetch 4
4355;@JR C,$+2
4356opcode_3_8:
4357	tst z80f,#1<<CFlag
4358	bne opcode_1_8
4359	add z80pc,z80pc,#1
4360	fetch 8
4361;@ADD HL,SP
4362opcode_3_9:
4363.if FAST_Z80SP
4364	ldr r0,[cpucontext,#z80sp_base]
4365	sub r0,z80sp,r0
4366	opADD16s z80hl r0 16
4367.else
4368	opADD16s z80hl z80sp 16
4369.endif
4370	fetch 11
4371;@LD A,(NN)
4372opcode_3_A:
4373	ldrb r0,[z80pc],#1
4374	ldrb r1,[z80pc],#1
4375	orr r0,r0,r1, lsl #8
4376	readmem8
4377	mov z80a,r0, lsl #24
4378	fetch 11
4379;@DEC SP
4380opcode_3_B:
4381	sub z80sp,z80sp,#1
4382	fetch 6
4383;@INC A
4384opcode_3_C:
4385	opINC8 z80a
4386	fetch 4
4387;@DEC A
4388opcode_3_D:
4389	opDEC8 z80a
4390	fetch 4
4391;@LD A,N
4392opcode_3_E:
4393	ldrb r0,[z80pc],#1
4394	mov z80a,r0, lsl #24
4395	fetch 7
4396;@CCF
4397opcode_3_F:
4398	bic z80f,z80f,#(1<<NFlag)|(1<<HFlag)
4399	tst z80f,#1<<CFlag
4400	orrne z80f,z80f,#1<<HFlag
4401	eor z80f,z80f,#1<<CFlag
4402	fetch 4
4403
4404;@LD B,C
4405opcode_4_1:
4406	and z80bc,z80bc,#0x00FF0000
4407	orr z80bc,z80bc,z80bc,lsl#8
4408	fetch 4
4409;@LD B,D
4410opcode_4_2:
4411	and z80bc,z80bc,#0x00FF0000
4412	and r0,z80de,#0xFF000000
4413	orr z80bc,z80bc,r0
4414	fetch 4
4415;@LD B,E
4416opcode_4_3:
4417	and z80bc,z80bc,#0x00FF0000
4418	orr z80bc,z80bc,z80de,lsl#8
4419	fetch 4
4420;@LD B,H
4421opcode_4_4:
4422	and z80bc,z80bc,#0x00FF0000
4423	and r0,z80hl,#0xFF000000
4424	orr z80bc,z80bc,r0
4425	fetch 4
4426;@LD B,L
4427opcode_4_5:
4428	and z80bc,z80bc,#0x00FF0000
4429	orr z80bc,z80bc,z80hl,lsl#8
4430	fetch 4
4431;@LD B,(HL)
4432opcode_4_6:
4433	readmem8HL
4434	and z80bc,z80bc,#0x00FF0000
4435	orr z80bc,z80bc,r0,lsl#24
4436	fetch 7
4437;@LD B,A
4438opcode_4_7:
4439	and z80bc,z80bc,#0x00FF0000
4440	orr z80bc,z80bc,z80a
4441	fetch 4
4442;@LD C,B
4443opcode_4_8:
4444	and z80bc,z80bc,#0xFF000000
4445	orr z80bc,z80bc,z80bc,lsr#8
4446	fetch 4
4447;@LD C,D
4448opcode_4_A:
4449	and z80bc,z80bc,#0xFF000000
4450	and r0,z80de,#0xFF000000
4451	orr z80bc,z80bc,r0,lsr#8
4452	fetch 4
4453;@LD C,E
4454opcode_4_B:
4455	and z80bc,z80bc,#0xFF000000
4456	and r0,z80de,#0x00FF0000
4457	orr z80bc,z80bc,r0
4458	fetch 4
4459;@LD C,H
4460opcode_4_C:
4461	and z80bc,z80bc,#0xFF000000
4462	and r0,z80hl,#0xFF000000
4463	orr z80bc,z80bc,r0,lsr#8
4464	fetch 4
4465;@LD C,L
4466opcode_4_D:
4467	and z80bc,z80bc,#0xFF000000
4468	and r0,z80hl,#0x00FF0000
4469	orr z80bc,z80bc,r0
4470	fetch 4
4471;@LD C,(HL)
4472opcode_4_E:
4473	readmem8HL
4474	and z80bc,z80bc,#0xFF000000
4475	orr z80bc,z80bc,r0,lsl#16
4476	fetch 7
4477;@LD C,A
4478opcode_4_F:
4479	and z80bc,z80bc,#0xFF000000
4480	orr z80bc,z80bc,z80a,lsr#8
4481	fetch 4
4482;@LD D,B
4483opcode_5_0:
4484	and z80de,z80de,#0x00FF0000
4485	and r0,z80bc,#0xFF000000
4486	orr z80de,z80de,r0
4487	fetch 4
4488;@LD D,C
4489opcode_5_1:
4490	and z80de,z80de,#0x00FF0000
4491	orr z80de,z80de,z80bc,lsl#8
4492	fetch 4
4493;@LD D,E
4494opcode_5_3:
4495	and z80de,z80de,#0x00FF0000
4496	orr z80de,z80de,z80de,lsl#8
4497	fetch 4
4498;@LD D,H
4499opcode_5_4:
4500	and z80de,z80de,#0x00FF0000
4501	and r0,z80hl,#0xFF000000
4502	orr z80de,z80de,r0
4503	fetch 4
4504;@LD D,L
4505opcode_5_5:
4506	and z80de,z80de,#0x00FF0000
4507	orr z80de,z80de,z80hl,lsl#8
4508	fetch 4
4509;@LD D,(HL)
4510opcode_5_6:
4511	readmem8HL
4512	and z80de,z80de,#0x00FF0000
4513	orr z80de,z80de,r0,lsl#24
4514	fetch 7
4515;@LD D,A
4516opcode_5_7:
4517	and z80de,z80de,#0x00FF0000
4518	orr z80de,z80de,z80a
4519	fetch 4
4520;@LD E,B
4521opcode_5_8:
4522	and z80de,z80de,#0xFF000000
4523	and r0,z80bc,#0xFF000000
4524	orr z80de,z80de,r0,lsr#8
4525	fetch 4
4526;@LD E,C
4527opcode_5_9:
4528	and z80de,z80de,#0xFF000000
4529	and r0,z80bc,#0x00FF0000
4530	orr z80de,z80de,r0
4531	fetch 4
4532;@LD E,D
4533opcode_5_A:
4534	and z80de,z80de,#0xFF000000
4535	orr z80de,z80de,z80de,lsr#8
4536	fetch 4
4537;@LD E,H
4538opcode_5_C:
4539	and z80de,z80de,#0xFF000000
4540	and r0,z80hl,#0xFF000000
4541	orr z80de,z80de,r0,lsr#8
4542	fetch 4
4543;@LD E,L
4544opcode_5_D:
4545	and z80de,z80de,#0xFF000000
4546	and r0,z80hl,#0x00FF0000
4547	orr z80de,z80de,r0
4548	fetch 4
4549;@LD E,(HL)
4550opcode_5_E:
4551	readmem8HL
4552	and z80de,z80de,#0xFF000000
4553	orr z80de,z80de,r0,lsl#16
4554	fetch 7
4555;@LD E,A
4556opcode_5_F:
4557	and z80de,z80de,#0xFF000000
4558	orr z80de,z80de,z80a,lsr#8
4559	fetch 4
4560
4561;@LD H,B
4562opcode_6_0:
4563	and z80hl,z80hl,#0x00FF0000
4564	and r0,z80bc,#0xFF000000
4565	orr z80hl,z80hl,r0
4566	fetch 4
4567;@LD H,C
4568opcode_6_1:
4569	and z80hl,z80hl,#0x00FF0000
4570	orr z80hl,z80hl,z80bc,lsl#8
4571	fetch 4
4572;@LD H,D
4573opcode_6_2:
4574	and z80hl,z80hl,#0x00FF0000
4575	and r0,z80de,#0xFF000000
4576	orr z80hl,z80hl,r0
4577	fetch 4
4578;@LD H,E
4579opcode_6_3:
4580	and z80hl,z80hl,#0x00FF0000
4581	orr z80hl,z80hl,z80de,lsl#8
4582	fetch 4
4583;@LD H,L
4584opcode_6_5:
4585	and z80hl,z80hl,#0x00FF0000
4586	orr z80hl,z80hl,z80hl,lsl#8
4587	fetch 4
4588;@LD H,(HL)
4589opcode_6_6:
4590	readmem8HL
4591	and z80hl,z80hl,#0x00FF0000
4592	orr z80hl,z80hl,r0,lsl#24
4593	fetch 7
4594;@LD H,A
4595opcode_6_7:
4596	and z80hl,z80hl,#0x00FF0000
4597	orr z80hl,z80hl,z80a
4598	fetch 4
4599
4600;@LD L,B
4601opcode_6_8:
4602	and z80hl,z80hl,#0xFF000000
4603	and r0,z80bc,#0xFF000000
4604	orr z80hl,z80hl,r0,lsr#8
4605	fetch 4
4606;@LD L,C
4607opcode_6_9:
4608	and z80hl,z80hl,#0xFF000000
4609	and r0,z80bc,#0x00FF0000
4610	orr z80hl,z80hl,r0
4611	fetch 4
4612;@LD L,D
4613opcode_6_A:
4614	and z80hl,z80hl,#0xFF000000
4615	and r0,z80de,#0xFF000000
4616	orr z80hl,z80hl,r0,lsr#8
4617	fetch 4
4618;@LD L,E
4619opcode_6_B:
4620	and z80hl,z80hl,#0xFF000000
4621	and r0,z80de,#0x00FF0000
4622	orr z80hl,z80hl,r0
4623	fetch 4
4624;@LD L,H
4625opcode_6_C:
4626	and z80hl,z80hl,#0xFF000000
4627	orr z80hl,z80hl,z80hl,lsr#8
4628	fetch 4
4629;@LD L,(HL)
4630opcode_6_E:
4631	readmem8HL
4632	and z80hl,z80hl,#0xFF000000
4633	orr z80hl,z80hl,r0,lsl#16
4634	fetch 7
4635;@LD L,A
4636opcode_6_F:
4637	and z80hl,z80hl,#0xFF000000
4638	orr z80hl,z80hl,z80a,lsr#8
4639	fetch 4
4640
4641;@LD (HL),B
4642opcode_7_0:
4643	mov r0,z80bc,lsr#24
4644	writemem8HL
4645	fetch 7
4646;@LD (HL),C
4647opcode_7_1:
4648	mov r0,z80bc,lsr#16
4649	and r0,r0,#0xFF
4650	writemem8HL
4651	fetch 7
4652;@LD (HL),D
4653opcode_7_2:
4654	mov r0,z80de,lsr#24
4655	writemem8HL
4656	fetch 7
4657;@LD (HL),E
4658opcode_7_3:
4659	mov r0,z80de,lsr#16
4660	and r0,r0,#0xFF
4661	writemem8HL
4662	fetch 7
4663;@LD (HL),H
4664opcode_7_4:
4665	mov r0,z80hl,lsr#24
4666	writemem8HL
4667	fetch 7
4668;@LD (HL),L
4669opcode_7_5:
4670	mov r1,z80hl,lsr#16
4671	and r0,r1,#0xFF
4672	writemem8
4673	fetch 7
4674;@HALT
4675opcode_7_6:
4676	sub z80pc,z80pc,#1
4677	ldrb r0,[cpucontext,#z80if]
4678	orr r0,r0,#Z80_HALT
4679	strb r0,[cpucontext,#z80if]
4680	and z80_icount,z80_icount,#3
4681	eatcycles 4
4682	b z80_execute_end
4683;@LD (HL),A
4684opcode_7_7:
4685	mov r0,z80a,lsr#24
4686	writemem8HL
4687	fetch 7
4688
4689;@LD A,B
4690opcode_7_8:
4691	and z80a,z80bc,#0xFF000000
4692	fetch 4
4693;@LD A,C
4694opcode_7_9:
4695	mov z80a,z80bc,lsl#8
4696	fetch 4
4697;@LD A,D
4698opcode_7_A:
4699	and z80a,z80de,#0xFF000000
4700	fetch 4
4701;@LD A,E
4702opcode_7_B:
4703	mov z80a,z80de,lsl#8
4704	fetch 4
4705;@LD A,H
4706opcode_7_C:
4707	and z80a,z80hl,#0xFF000000
4708	fetch 4
4709;@LD A,L
4710opcode_7_D:
4711	mov z80a,z80hl,lsl#8
4712	fetch 4
4713;@LD A,(HL)
4714opcode_7_E:
4715	readmem8HL
4716	mov z80a,r0,lsl#24
4717	fetch 7
4718
4719;@ADD A,B
4720opcode_8_0:
4721	opADDH z80bc
4722;@ADD A,C
4723opcode_8_1:
4724	opADDL z80bc
4725;@ADD A,D
4726opcode_8_2:
4727	opADDH z80de
4728;@ADD A,E
4729opcode_8_3:
4730	opADDL z80de
4731;@ADD A,H
4732opcode_8_4:
4733	opADDH z80hl
4734;@ADD A,L
4735opcode_8_5:
4736	opADDL z80hl
4737;@ADD A,(HL)
4738opcode_8_6:
4739	readmem8HL
4740	opADDb
4741	fetch 7
4742;@ADD A,A
4743opcode_8_7:
4744	opADDA
4745
4746;@ADC A,B
4747opcode_8_8:
4748	opADCH z80bc
4749;@ADC A,C
4750opcode_8_9:
4751	opADCL z80bc
4752;@ADC A,D
4753opcode_8_A:
4754	opADCH z80de
4755;@ADC A,E
4756opcode_8_B:
4757	opADCL z80de
4758;@ADC A,H
4759opcode_8_C:
4760	opADCH z80hl
4761;@ADC A,L
4762opcode_8_D:
4763	opADCL z80hl
4764;@ADC A,(HL)
4765opcode_8_E:
4766	readmem8HL
4767	opADCb
4768	fetch 7
4769;@ADC A,A
4770opcode_8_F:
4771	opADCA
4772
4773;@SUB B
4774opcode_9_0:
4775	opSUBH z80bc
4776;@SUB C
4777opcode_9_1:
4778	opSUBL z80bc
4779;@SUB D
4780opcode_9_2:
4781	opSUBH z80de
4782;@SUB E
4783opcode_9_3:
4784	opSUBL z80de
4785;@SUB H
4786opcode_9_4:
4787	opSUBH z80hl
4788;@SUB L
4789opcode_9_5:
4790	opSUBL z80hl
4791;@SUB (HL)
4792opcode_9_6:
4793	readmem8HL
4794	opSUBb
4795	fetch 7
4796;@SUB A
4797opcode_9_7:
4798	opSUBA
4799
4800;@SBC B
4801opcode_9_8:
4802	opSBCH z80bc
4803;@SBC C
4804opcode_9_9:
4805	opSBCL z80bc
4806;@SBC D
4807opcode_9_A:
4808	opSBCH z80de
4809;@SBC E
4810opcode_9_B:
4811	opSBCL z80de
4812;@SBC H
4813opcode_9_C:
4814	opSBCH z80hl
4815;@SBC L
4816opcode_9_D:
4817	opSBCL z80hl
4818;@SBC (HL)
4819opcode_9_E:
4820	readmem8HL
4821	opSBCb
4822	fetch 7
4823;@SBC A
4824opcode_9_F:
4825	opSBCA
4826
4827;@AND B
4828opcode_A_0:
4829	opANDH z80bc
4830;@AND C
4831opcode_A_1:
4832	opANDL z80bc
4833;@AND D
4834opcode_A_2:
4835	opANDH z80de
4836;@AND E
4837opcode_A_3:
4838	opANDL z80de
4839;@AND H
4840opcode_A_4:
4841	opANDH z80hl
4842;@AND L
4843opcode_A_5:
4844	opANDL z80hl
4845;@AND (HL)
4846opcode_A_6:
4847	readmem8HL
4848	opANDb
4849	fetch 7
4850;@AND A
4851opcode_A_7:
4852	opANDA
4853
4854;@XOR B
4855opcode_A_8:
4856	opXORH z80bc
4857;@XOR C
4858opcode_A_9:
4859	opXORL z80bc
4860;@XOR D
4861opcode_A_A:
4862	opXORH z80de
4863;@XOR E
4864opcode_A_B:
4865	opXORL z80de
4866;@XOR H
4867opcode_A_C:
4868	opXORH z80hl
4869;@XOR L
4870opcode_A_D:
4871	opXORL z80hl
4872;@XOR (HL)
4873opcode_A_E:
4874	readmem8HL
4875	opXORb
4876	fetch 7
4877;@XOR A
4878opcode_A_F:
4879	opXORA
4880
4881;@OR B
4882opcode_B_0:
4883	opORH z80bc
4884;@OR C
4885opcode_B_1:
4886	opORL z80bc
4887;@OR D
4888opcode_B_2:
4889	opORH z80de
4890;@OR E
4891opcode_B_3:
4892	opORL z80de
4893;@OR H
4894opcode_B_4:
4895	opORH z80hl
4896;@OR L
4897opcode_B_5:
4898	opORL z80hl
4899;@OR (HL)
4900opcode_B_6:
4901	readmem8HL
4902	opORb
4903	fetch 7
4904;@OR A
4905opcode_B_7:
4906	opORA
4907
4908;@CP B
4909opcode_B_8:
4910	opCPH z80bc
4911;@CP C
4912opcode_B_9:
4913	opCPL z80bc
4914;@CP D
4915opcode_B_A:
4916	opCPH z80de
4917;@CP E
4918opcode_B_B:
4919	opCPL z80de
4920;@CP H
4921opcode_B_C:
4922	opCPH z80hl
4923;@CP L
4924opcode_B_D:
4925	opCPL z80hl
4926;@CP (HL)
4927opcode_B_E:
4928	readmem8HL
4929	opCPb
4930	fetch 7
4931;@CP A
4932opcode_B_F:
4933	opCPA
4934
4935;@RET NZ
4936opcode_C_0:
4937	tst z80f,#1<<ZFlag
4938	beq opcode_C_9		;@unconditional RET
4939	fetch 5
4940
4941;@POP BC
4942opcode_C_1:
4943	opPOPreg z80bc
4944
4945;@JP NZ,$+3
4946opcode_C_2:
4947	tst z80f,#1<<ZFlag
4948	beq opcode_C_3		;@unconditional JP
4949	add z80pc,z80pc,#2
4950	fetch 10
4951;@JP $+3
4952opcode_C_3:
4953	ldrb r0,[z80pc],#1
4954	ldrb r1,[z80pc],#1
4955	orr r0,r0,r1, lsl #8
4956	rebasepc
4957	fetch 10
4958;@CALL NZ,NN
4959opcode_C_4:
4960	tst z80f,#1<<ZFlag
4961	beq opcode_C_D		;@unconditional CALL
4962	add z80pc,z80pc,#2
4963	fetch 10
4964
4965;@PUSH BC
4966opcode_C_5:
4967	opPUSHreg z80bc
4968	fetch 11
4969;@ADD A,N
4970opcode_C_6:
4971	ldrb r0,[z80pc],#1
4972	opADDb
4973	fetch 7
4974;@RST 0
4975opcode_C_7:
4976	opRST 0x00
4977
4978;@RET Z
4979opcode_C_8:
4980	tst z80f,#1<<ZFlag
4981	bne opcode_C_9		;@unconditional RET
4982	fetch 5
4983;@RET
4984opcode_C_9:
4985.if FAST_Z80SP
4986	ldrb r0,[z80sp],#1
4987	ldrb r1,[z80sp],#1
4988	orr r0,r0,r1, lsl #8
4989.else
4990	mov r0,z80sp
4991	readmem16
4992	add z80sp,z80sp,#2
4993.endif
4994	rebasepc
4995	fetch 10
4996;@JP Z,$+3
4997opcode_C_A:
4998	tst z80f,#1<<ZFlag
4999	bne opcode_C_3  ;@unconditional JP
5000	add z80pc,z80pc,#2
5001	fetch 10
5002
5003;@This reads this opcodes_CB lookup table to find the location of
5004;@the CB sub for the intruction and then branches to that location
5005opcode_C_B:
5006	ldrb r0,[z80pc],#1
5007	ldr pc,[pc,r0, lsl #2]
5008opcodes_CB:	.word 0x00000000
5009			.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
5010			.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
5011			.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
5012			.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
5013			.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
5014			.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
5015			.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
5016			.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
5017			.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
5018			.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
5019			.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
5020			.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
5021			.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
5022			.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
5023			.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
5024			.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
5025			.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
5026			.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
5027			.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
5028			.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
5029			.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
5030			.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
5031			.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
5032			.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
5033			.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
5034			.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
5035			.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
5036			.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
5037			.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
5038			.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
5039			.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
5040			.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
5041
5042;@CALL Z,NN
5043opcode_C_C:
5044	tst z80f,#1<<ZFlag
5045	bne opcode_C_D		;@unconditional CALL
5046	add z80pc,z80pc,#2
5047	fetch 10
5048;@CALL NN
5049opcode_C_D:
5050	ldrb r1,[z80pc],#1
5051	ldrb r2,[z80pc],#1
5052	ldr r0,[cpucontext,#z80pc_base]
5053	sub z80pc,z80pc,r0
5054.if FAST_Z80SP
5055	mov r0,z80pc, lsr #8
5056	strb r0,[z80sp,#-1]!
5057	strb z80pc,[z80sp,#-1]!
5058	orr r0,r1,r2, lsl #8
5059.else
5060	mov r0,z80pc
5061	orr z80pc,r1,r2, lsl #8
5062	sub z80sp,z80sp,#2
5063	mov r1,z80sp
5064	writemem16
5065	mov r0,z80pc
5066.endif
5067	rebasepc
5068	fetch 17
5069;@ADC A,N
5070opcode_C_E:
5071	ldrb r0,[z80pc],#1
5072	opADCb
5073	fetch 7
5074;@RST 8H
5075opcode_C_F:
5076	opRST 0x08
5077
5078;@RET NC
5079opcode_D_0:
5080	tst z80f,#1<<CFlag
5081	beq opcode_C_9		;@unconditional RET
5082	fetch 5
5083;@POP DE
5084opcode_D_1:
5085	opPOPreg z80de
5086
5087;@JP NC, $+3
5088opcode_D_2 :
5089	tst z80f,#1<<CFlag
5090	beq opcode_C_3		;@unconditional JP
5091	add z80pc,z80pc,#2
5092	fetch 10
5093;@OUT (N),A
5094opcode_D_3:
5095	ldrb r0,[z80pc],#1
5096	orr r0,r0,z80a,lsr#16
5097	mov r1,z80a, lsr #24
5098	opOUT
5099	fetch 11
5100;@CALL NC,NN
5101opcode_D_4:
5102	tst z80f,#1<<CFlag
5103	beq opcode_C_D		;@unconditional CALL
5104	add z80pc,z80pc,#2
5105	fetch 10
5106;@PUSH DE
5107opcode_D_5:
5108	opPUSHreg z80de
5109	fetch 11
5110;@SUB N
5111opcode_D_6:
5112	ldrb r0,[z80pc],#1
5113	opSUBb
5114	fetch 7
5115
5116;@RST 10H
5117opcode_D_7:
5118	opRST 0x10
5119
5120;@RET C
5121opcode_D_8:
5122	tst z80f,#1<<CFlag
5123	bne opcode_C_9		;@unconditional RET
5124	fetch 5
5125;@EXX
5126opcode_D_9:
5127	add r1,cpucontext,#z80bc2
5128	swp z80bc,z80bc,[r1]
5129	add r1,cpucontext,#z80de2
5130	swp z80de,z80de,[r1]
5131	add r1,cpucontext,#z80hl2
5132	swp z80hl,z80hl,[r1]
5133	fetch 4
5134;@JP C,$+3
5135opcode_D_A:
5136	tst z80f,#1<<CFlag
5137	bne opcode_C_3		;@unconditional JP
5138	add z80pc,z80pc,#2
5139	fetch 10
5140;@IN A,(N)
5141opcode_D_B:
5142	ldrb r0,[z80pc],#1
5143	orr r0,r0,z80a,lsr#16
5144	opIN
5145	mov z80a,r0, lsl #24	;@ r0 = data read
5146	fetch 11
5147;@CALL C,NN
5148opcode_D_C:
5149	tst z80f,#1<<CFlag
5150	bne opcode_C_D		;@unconditional CALL
5151	add z80pc,z80pc,#2
5152	fetch 10
5153
5154;@opcodes_DD
5155opcode_D_D:
5156	add z80xx,cpucontext,#z80ix
5157	b opcode_D_D_F_D
5158opcode_F_D:
5159	add z80xx,cpucontext,#z80iy
5160opcode_D_D_F_D:
5161	ldrb r0,[z80pc],#1
5162	ldr pc,[pc,r0, lsl #2]
5163opcodes_DD:	.word 0x00000000
5164			.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
5165			.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
5166			.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
5167			.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
5168			.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
5169			.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
5170			.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
5171			.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
5172			.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
5173			.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
5174			.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
5175			.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
5176			.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
5177			.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
5178			.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
5179			.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
5180			.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
5181			.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
5182			.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
5183			.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
5184			.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
5185			.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
5186			.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
5187			.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
5188			.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
5189			.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
5190			.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
5191			.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
5192			.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
5193			.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
5194			.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
5195			.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
5196
5197;@SBC A,N
5198opcode_D_E:
5199	ldrb r0,[z80pc],#1
5200	opSBCb
5201	fetch 7
5202;@RST 18H
5203opcode_D_F:
5204	opRST 0x18
5205
5206;@RET PO
5207opcode_E_0:
5208	tst z80f,#1<<VFlag
5209	beq opcode_C_9		;@unconditional RET
5210	fetch 5
5211;@POP HL
5212opcode_E_1:
5213	opPOPreg z80hl
5214
5215;@JP PO,$+3
5216opcode_E_2:
5217	tst z80f,#1<<VFlag
5218	beq opcode_C_3		;@unconditional JP
5219	add z80pc,z80pc,#2
5220	fetch 10
5221;@EX (SP),HL
5222opcode_E_3:
5223.if FAST_Z80SP
5224	ldrb r0,[z80sp]
5225	ldrb r1,[z80sp,#1]
5226	orr r0,r0,r1, lsl #8
5227	mov r1,z80hl, lsr #24
5228	strb r1,[z80sp,#1]
5229	mov r1,z80hl, lsr #16
5230	strb r1,[z80sp]
5231	mov z80hl,r0, lsl #16
5232.else
5233	mov r0,z80sp
5234	readmem16
5235	mov r1,r0
5236	mov r0,z80hl,lsr#16
5237	mov z80hl,r1,lsl#16
5238	mov r1,z80sp
5239	writemem16
5240.endif
5241	fetch 19
5242;@CALL PO,NN
5243opcode_E_4:
5244	tst z80f,#1<<VFlag
5245	beq opcode_C_D		;@unconditional CALL
5246	add z80pc,z80pc,#2
5247	fetch 10
5248;@PUSH HL
5249opcode_E_5:
5250	opPUSHreg z80hl
5251	fetch 11
5252;@AND N
5253opcode_E_6:
5254	ldrb r0,[z80pc],#1
5255	opANDb
5256	fetch 7
5257;@RST 20H
5258opcode_E_7:
5259	opRST 0x20
5260
5261;@RET PE
5262opcode_E_8:
5263	tst z80f,#1<<VFlag
5264	bne opcode_C_9		;@unconditional RET
5265	fetch 5
5266;@JP (HL)
5267opcode_E_9:
5268	mov r0,z80hl, lsr #16
5269	rebasepc
5270	fetch 4
5271;@JP PE,$+3
5272opcode_E_A:
5273	tst z80f,#1<<VFlag
5274	bne opcode_C_3		;@unconditional JP
5275	add z80pc,z80pc,#2
5276	fetch 10
5277;@EX DE,HL
5278opcode_E_B:
5279	mov r1,z80de
5280	mov z80de,z80hl
5281	mov z80hl,r1
5282	fetch 4
5283;@CALL PE,NN
5284opcode_E_C:
5285	tst z80f,#1<<VFlag
5286	bne opcode_C_D		;@unconditional CALL
5287	add z80pc,z80pc,#2
5288	fetch 10
5289
5290;@This should be caught at start
5291opcode_E_D:
5292	ldrb r1,[z80pc],#1
5293	ldr pc,[pc,r1, lsl #2]
5294opcodes_ED:	.word 0x00000000
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_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF
5301			.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
5302			.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
5303			.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
5304			.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
5305			.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
5306			.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
5307			.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
5308			.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
5309			.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
5310			.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
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_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF
5313			.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
5314			.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
5315			.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
5316			.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
5317			.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
5318			.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
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			.word opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF
5325			.word opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF
5326			.word opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF
5327
5328;@XOR N
5329opcode_E_E:
5330	ldrb r0,[z80pc],#1
5331	opXORb
5332	fetch 7
5333;@RST 28H
5334opcode_E_F:
5335	opRST 0x28
5336
5337;@RET P
5338opcode_F_0:
5339	tst z80f,#1<<SFlag
5340	beq opcode_C_9		;@unconditional RET
5341	fetch 5
5342;@POP AF
5343opcode_F_1:
5344.if FAST_Z80SP
5345	ldrb z80f,[z80sp],#1
5346	sub r0,opcodes,#0x200
5347	ldrb z80f,[r0,z80f]
5348	ldrb z80a,[z80sp],#1
5349	mov z80a,z80a, lsl #24
5350.else
5351	mov r0,z80sp
5352	readmem16
5353	add z80sp,z80sp,#2
5354	and z80a,r0,#0xFF00
5355	mov z80a,z80a,lsl#16
5356	and z80f,r0,#0xFF
5357	sub r0,opcodes,#0x200
5358	ldrb z80f,[r0,z80f]
5359.endif
5360	fetch 10
5361;@JP P,$+3
5362opcode_F_2:
5363	tst z80f,#1<<SFlag
5364	beq opcode_C_3		;@unconditional JP
5365	add z80pc,z80pc,#2
5366	fetch 10
5367;@DI
5368opcode_F_3:
5369	ldrb r1,[cpucontext,#z80if]
5370	bic r1,r1,#(Z80_IF1)|(Z80_IF2)
5371	strb r1,[cpucontext,#z80if]
5372	fetch 4
5373;@CALL P,NN
5374opcode_F_4:
5375	tst z80f,#1<<SFlag
5376	beq opcode_C_D		;@unconditional CALL
5377	add z80pc,z80pc,#2
5378	fetch 10
5379;@PUSH AF
5380opcode_F_5:
5381.if FAST_Z80SP
5382	mov r1,z80a, lsr #24
5383	strb r1,[z80sp,#-1]!
5384	sub r0,opcodes,#0x300
5385	ldrb r1,[r0,z80f]
5386	strb r1,[z80sp,#-1]!
5387.else
5388	sub r0,opcodes,#0x300
5389	ldrb r0,[r0,z80f]
5390	orr r0,r0,z80a,lsr#16
5391	sub z80sp,z80sp,#2
5392	mov r1,z80sp
5393	writemem16
5394.endif
5395	fetch 11
5396;@OR N
5397opcode_F_6:
5398	ldrb r0,[z80pc],#1
5399	opORb
5400	fetch 7
5401;@RST 30H
5402opcode_F_7:
5403	opRST 0x30
5404
5405;@RET M
5406opcode_F_8:
5407	tst z80f,#1<<SFlag
5408	bne opcode_C_9		;@unconditional RET
5409	fetch 5
5410;@LD SP,HL
5411opcode_F_9:
5412.if FAST_Z80SP
5413	mov r0,z80hl, lsr #16
5414	rebasesp
5415	;@mov z80sp,r0
5416.else
5417	mov z80sp,z80hl, lsr #16
5418.endif
5419	fetch 4
5420;@JP M,$+3
5421opcode_F_A:
5422	tst z80f,#1<<SFlag
5423	bne opcode_C_3		;@unconditional JP
5424	add z80pc,z80pc,#2
5425	fetch 10
5426MAIN_opcodes_POINTER: .word MAIN_opcodes
5427EI_DUMMY_opcodes_POINTER: .word EI_DUMMY_opcodes
5428;@EI
5429opcode_F_B:
5430	ldrb r1,[cpucontext,#z80if]
5431	tst r1,#Z80_IF1
5432	bne ei_return_exit
5433
5434	orr r1,r1,#(Z80_IF1)|(Z80_IF2)
5435	strb r1,[cpucontext,#z80if]
5436
5437	mov r2,opcodes
5438	ldr opcodes,EI_DUMMY_opcodes_POINTER
5439	ldr pc,[r2,r0, lsl #2]
5440
5441ei_return:
5442	;@point that program returns from EI to check interupts
5443	;@an interupt can not be taken directly after a EI opcode
5444	;@ reset z80pc and opcode pointer
5445	sub z80pc,z80pc,#1
5446	ldr opcodes,MAIN_opcodes_POINTER
5447	;@ check ints
5448	bl DoInterrupt
5449	;@ continue
5450ei_return_exit:
5451	fetch 4
5452
5453;@CALL M,NN
5454opcode_F_C:
5455	tst z80f,#1<<SFlag
5456	bne opcode_C_D		;@unconditional CALL
5457	add z80pc,z80pc,#2
5458	fetch 10
5459
5460;@SHOULD BE CAUGHT AT START - FD SECTION
5461
5462;@CP N
5463opcode_F_E:
5464	ldrb r0,[z80pc],#1
5465	opCPb
5466	fetch 7
5467;@RST 38H
5468opcode_F_F:
5469	opRST 0x38
5470
5471
5472;@##################################
5473;@##################################
5474;@###  opcodes CB  #########################
5475;@##################################
5476;@##################################
5477
5478
5479;@RLC B
5480opcode_CB_00:
5481	opRLCH z80bc
5482;@RLC C
5483opcode_CB_01:
5484	opRLCL z80bc
5485;@RLC D
5486opcode_CB_02:
5487	opRLCH z80de
5488;@RLC E
5489opcode_CB_03:
5490	opRLCL z80de
5491;@RLC H
5492opcode_CB_04:
5493	opRLCH z80hl
5494;@RLC L
5495opcode_CB_05:
5496	opRLCL z80hl
5497;@RLC (HL)
5498opcode_CB_06:
5499	readmem8HL
5500	opRLCb
5501	writemem8HL
5502	fetch 15
5503;@RLC A
5504opcode_CB_07:
5505	opRLCA
5506
5507;@RRC B
5508opcode_CB_08:
5509	opRRCH z80bc
5510;@RRC C
5511opcode_CB_09:
5512	opRRCL z80bc
5513;@RRC D
5514opcode_CB_0A:
5515	opRRCH z80de
5516;@RRC E
5517opcode_CB_0B:
5518	opRRCL z80de
5519;@RRC H
5520opcode_CB_0C:
5521	opRRCH z80hl
5522;@RRC L
5523opcode_CB_0D:
5524	opRRCL z80hl
5525;@RRC (HL)
5526opcode_CB_0E :
5527	readmem8HL
5528	opRRCb
5529	writemem8HL
5530	fetch 15
5531;@RRC A
5532opcode_CB_0F:
5533	opRRCA
5534
5535;@RL B
5536opcode_CB_10:
5537	opRLH z80bc
5538;@RL C
5539opcode_CB_11:
5540	opRLL z80bc
5541;@RL D
5542opcode_CB_12:
5543	opRLH z80de
5544;@RL E
5545opcode_CB_13:
5546	opRLL z80de
5547;@RL H
5548opcode_CB_14:
5549	opRLH z80hl
5550;@RL L
5551opcode_CB_15:
5552	opRLL z80hl
5553;@RL (HL)
5554opcode_CB_16:
5555	readmem8HL
5556	opRLb
5557	writemem8HL
5558	fetch 15
5559;@RL A
5560opcode_CB_17:
5561	opRLA
5562
5563;@RR B
5564opcode_CB_18:
5565	opRRH z80bc
5566;@RR C
5567opcode_CB_19:
5568	opRRL z80bc
5569;@RR D
5570opcode_CB_1A:
5571	opRRH z80de
5572;@RR E
5573opcode_CB_1B:
5574	opRRL z80de
5575;@RR H
5576opcode_CB_1C:
5577	opRRH z80hl
5578;@RR L
5579opcode_CB_1D:
5580	opRRL z80hl
5581;@RR (HL)
5582opcode_CB_1E:
5583	readmem8HL
5584	opRRb
5585	writemem8HL
5586	fetch 15
5587;@RR A
5588opcode_CB_1F:
5589	opRRA
5590
5591;@SLA B
5592opcode_CB_20:
5593	opSLAH z80bc
5594;@SLA C
5595opcode_CB_21:
5596	opSLAL z80bc
5597;@SLA D
5598opcode_CB_22:
5599	opSLAH z80de
5600;@SLA E
5601opcode_CB_23:
5602	opSLAL z80de
5603;@SLA H
5604opcode_CB_24:
5605	opSLAH z80hl
5606;@SLA L
5607opcode_CB_25:
5608	opSLAL z80hl
5609;@SLA (HL)
5610opcode_CB_26:
5611	readmem8HL
5612	opSLAb
5613	writemem8HL
5614	fetch 15
5615;@SLA A
5616opcode_CB_27:
5617	opSLAA
5618
5619;@SRA B
5620opcode_CB_28:
5621	opSRAH z80bc
5622;@SRA C
5623opcode_CB_29:
5624	opSRAL z80bc
5625;@SRA D
5626opcode_CB_2A:
5627	opSRAH z80de
5628;@SRA E
5629opcode_CB_2B:
5630	opSRAL z80de
5631;@SRA H
5632opcode_CB_2C:
5633	opSRAH z80hl
5634;@SRA L
5635opcode_CB_2D:
5636	opSRAL z80hl
5637;@SRA (HL)
5638opcode_CB_2E:
5639	readmem8HL
5640	opSRAb
5641	writemem8HL
5642	fetch 15
5643;@SRA A
5644opcode_CB_2F:
5645	opSRAA
5646
5647;@SLL B
5648opcode_CB_30:
5649	opSLLH z80bc
5650;@SLL C
5651opcode_CB_31:
5652	opSLLL z80bc
5653;@SLL D
5654opcode_CB_32:
5655	opSLLH z80de
5656;@SLL E
5657opcode_CB_33:
5658	opSLLL z80de
5659;@SLL H
5660opcode_CB_34:
5661	opSLLH z80hl
5662;@SLL L
5663opcode_CB_35:
5664	opSLLL z80hl
5665;@SLL (HL)
5666opcode_CB_36:
5667	readmem8HL
5668	opSLLb
5669	writemem8HL
5670	fetch 15
5671;@SLL A
5672opcode_CB_37:
5673	opSLLA
5674
5675;@SRL B
5676opcode_CB_38:
5677	opSRLH z80bc
5678;@SRL C
5679opcode_CB_39:
5680	opSRLL z80bc
5681;@SRL D
5682opcode_CB_3A:
5683	opSRLH z80de
5684;@SRL E
5685opcode_CB_3B:
5686	opSRLL z80de
5687;@SRL H
5688opcode_CB_3C:
5689	opSRLH z80hl
5690;@SRL L
5691opcode_CB_3D:
5692	opSRLL z80hl
5693;@SRL (HL)
5694opcode_CB_3E:
5695	readmem8HL
5696	opSRLb
5697	writemem8HL
5698	fetch 15
5699;@SRL A
5700opcode_CB_3F:
5701	opSRLA
5702
5703
5704;@BIT 0,B
5705opcode_CB_40:
5706	opBITH z80bc 0
5707;@BIT 0,C
5708opcode_CB_41:
5709	opBITL z80bc 0
5710;@BIT 0,D
5711opcode_CB_42:
5712	opBITH z80de 0
5713;@BIT 0,E
5714opcode_CB_43:
5715	opBITL z80de 0
5716;@BIT 0,H
5717opcode_CB_44:
5718	opBITH z80hl 0
5719;@BIT 0,L
5720opcode_CB_45:
5721	opBITL z80hl 0
5722;@BIT 0,(HL)
5723opcode_CB_46:
5724	readmem8HL
5725	opBITb 0
5726	fetch 12
5727;@BIT 0,A
5728opcode_CB_47:
5729	opBITH z80a 0
5730
5731;@BIT 1,B
5732opcode_CB_48:
5733	opBITH z80bc 1
5734;@BIT 1,C
5735opcode_CB_49:
5736	opBITL z80bc 1
5737;@BIT 1,D
5738opcode_CB_4A:
5739	opBITH z80de 1
5740;@BIT 1,E
5741opcode_CB_4B:
5742	opBITL z80de 1
5743;@BIT 1,H
5744opcode_CB_4C:
5745	opBITH z80hl 1
5746;@BIT 1,L
5747opcode_CB_4D:
5748	opBITL z80hl 1
5749;@BIT 1,(HL)
5750opcode_CB_4E:
5751	readmem8HL
5752	opBITb 1
5753	fetch 12
5754;@BIT 1,A
5755opcode_CB_4F:
5756	opBITH z80a 1
5757
5758;@BIT 2,B
5759opcode_CB_50:
5760	opBITH z80bc 2
5761;@BIT 2,C
5762opcode_CB_51:
5763	opBITL z80bc 2
5764;@BIT 2,D
5765opcode_CB_52:
5766	opBITH z80de 2
5767;@BIT 2,E
5768opcode_CB_53:
5769	opBITL z80de 2
5770;@BIT 2,H
5771opcode_CB_54:
5772	opBITH z80hl 2
5773;@BIT 2,L
5774opcode_CB_55:
5775	opBITL z80hl 2
5776;@BIT 2,(HL)
5777opcode_CB_56:
5778	readmem8HL
5779	opBITb 2
5780	fetch 12
5781;@BIT 2,A
5782opcode_CB_57:
5783	opBITH z80a 2
5784
5785;@BIT 3,B
5786opcode_CB_58:
5787	opBITH z80bc 3
5788;@BIT 3,C
5789opcode_CB_59:
5790	opBITL z80bc 3
5791;@BIT 3,D
5792opcode_CB_5A:
5793	opBITH z80de 3
5794;@BIT 3,E
5795opcode_CB_5B:
5796	opBITL z80de 3
5797;@BIT 3,H
5798opcode_CB_5C:
5799	opBITH z80hl 3
5800;@BIT 3,L
5801opcode_CB_5D:
5802	opBITL z80hl 3
5803;@BIT 3,(HL)
5804opcode_CB_5E:
5805	readmem8HL
5806	opBITb 3
5807	fetch 12
5808;@BIT 3,A
5809opcode_CB_5F:
5810	opBITH z80a 3
5811
5812;@BIT 4,B
5813opcode_CB_60:
5814	opBITH z80bc 4
5815;@BIT 4,C
5816opcode_CB_61:
5817	opBITL z80bc 4
5818;@BIT 4,D
5819opcode_CB_62:
5820	opBITH z80de 4
5821;@BIT 4,E
5822opcode_CB_63:
5823	opBITL z80de 4
5824;@BIT 4,H
5825opcode_CB_64:
5826	opBITH z80hl 4
5827;@BIT 4,L
5828opcode_CB_65:
5829	opBITL z80hl 4
5830;@BIT 4,(HL)
5831opcode_CB_66:
5832	readmem8HL
5833	opBITb 4
5834	fetch 12
5835;@BIT 4,A
5836opcode_CB_67:
5837	opBITH z80a 4
5838
5839;@BIT 5,B
5840opcode_CB_68:
5841	opBITH z80bc 5
5842;@BIT 5,C
5843opcode_CB_69:
5844	opBITL z80bc 5
5845;@BIT 5,D
5846opcode_CB_6A:
5847	opBITH z80de 5
5848;@BIT 5,E
5849opcode_CB_6B:
5850	opBITL z80de 5
5851;@BIT 5,H
5852opcode_CB_6C:
5853	opBITH z80hl 5
5854;@BIT 5,L
5855opcode_CB_6D:
5856	opBITL z80hl 5
5857;@BIT 5,(HL)
5858opcode_CB_6E:
5859	readmem8HL
5860	opBITb 5
5861	fetch 12
5862;@BIT 5,A
5863opcode_CB_6F:
5864	opBITH z80a 5
5865
5866;@BIT 6,B
5867opcode_CB_70:
5868	opBITH z80bc 6
5869;@BIT 6,C
5870opcode_CB_71:
5871	opBITL z80bc 6
5872;@BIT 6,D
5873opcode_CB_72:
5874	opBITH z80de 6
5875;@BIT 6,E
5876opcode_CB_73:
5877	opBITL z80de 6
5878;@BIT 6,H
5879opcode_CB_74:
5880	opBITH z80hl 6
5881;@BIT 6,L
5882opcode_CB_75:
5883	opBITL z80hl 6
5884;@BIT 6,(HL)
5885opcode_CB_76:
5886	readmem8HL
5887	opBITb 6
5888	fetch 12
5889;@BIT 6,A
5890opcode_CB_77:
5891	opBITH z80a 6
5892
5893;@BIT 7,B
5894opcode_CB_78:
5895	opBIT7H z80bc
5896;@BIT 7,C
5897opcode_CB_79:
5898	opBIT7L z80bc
5899;@BIT 7,D
5900opcode_CB_7A:
5901	opBIT7H z80de
5902;@BIT 7,E
5903opcode_CB_7B:
5904	opBIT7L z80de
5905;@BIT 7,H
5906opcode_CB_7C:
5907	opBIT7H z80hl
5908;@BIT 7,L
5909opcode_CB_7D:
5910	opBIT7L z80hl
5911;@BIT 7,(HL)
5912opcode_CB_7E:
5913	readmem8HL
5914	opBIT7b
5915	fetch 12
5916;@BIT 7,A
5917opcode_CB_7F:
5918	opBIT7H z80a
5919
5920;@RES 0,B
5921opcode_CB_80:
5922	bic z80bc,z80bc,#1<<24
5923	fetch 8
5924;@RES 0,C
5925opcode_CB_81:
5926	bic z80bc,z80bc,#1<<16
5927	fetch 8
5928;@RES 0,D
5929opcode_CB_82:
5930	bic z80de,z80de,#1<<24
5931	fetch 8
5932;@RES 0,E
5933opcode_CB_83:
5934	bic z80de,z80de,#1<<16
5935	fetch 8
5936;@RES 0,H
5937opcode_CB_84:
5938	bic z80hl,z80hl,#1<<24
5939	fetch 8
5940;@RES 0,L
5941opcode_CB_85:
5942	bic z80hl,z80hl,#1<<16
5943	fetch 8
5944;@RES 0,(HL)
5945opcode_CB_86:
5946	opRESmemHL 0
5947;@RES 0,A
5948opcode_CB_87:
5949	bic z80a,z80a,#1<<24
5950	fetch 8
5951
5952;@RES 1,B
5953opcode_CB_88:
5954	bic z80bc,z80bc,#1<<25
5955	fetch 8
5956;@RES 1,C
5957opcode_CB_89:
5958	bic z80bc,z80bc,#1<<17
5959	fetch 8
5960;@RES 1,D
5961opcode_CB_8A:
5962	bic z80de,z80de,#1<<25
5963	fetch 8
5964;@RES 1,E
5965opcode_CB_8B:
5966	bic z80de,z80de,#1<<17
5967	fetch 8
5968;@RES 1,H
5969opcode_CB_8C:
5970	bic z80hl,z80hl,#1<<25
5971	fetch 8
5972;@RES 1,L
5973opcode_CB_8D:
5974	bic z80hl,z80hl,#1<<17
5975	fetch 8
5976;@RES 1,(HL)
5977opcode_CB_8E:
5978	opRESmemHL 1
5979;@RES 1,A
5980opcode_CB_8F:
5981	bic z80a,z80a,#1<<25
5982	fetch 8
5983
5984;@RES 2,B
5985opcode_CB_90:
5986	bic z80bc,z80bc,#1<<26
5987	fetch 8
5988;@RES 2,C
5989opcode_CB_91:
5990	bic z80bc,z80bc,#1<<18
5991	fetch 8
5992;@RES 2,D
5993opcode_CB_92:
5994	bic z80de,z80de,#1<<26
5995	fetch 8
5996;@RES 2,E
5997opcode_CB_93:
5998	bic z80de,z80de,#1<<18
5999	fetch 8
6000;@RES 2,H
6001opcode_CB_94:
6002	bic z80hl,z80hl,#1<<26
6003	fetch 8
6004;@RES 2,L
6005opcode_CB_95:
6006	bic z80hl,z80hl,#1<<18
6007	fetch 8
6008;@RES 2,(HL)
6009opcode_CB_96:
6010	opRESmemHL 2
6011;@RES 2,A
6012opcode_CB_97:
6013	bic z80a,z80a,#1<<26
6014	fetch 8
6015
6016;@RES 3,B
6017opcode_CB_98:
6018	bic z80bc,z80bc,#1<<27
6019	fetch 8
6020;@RES 3,C
6021opcode_CB_99:
6022	bic z80bc,z80bc,#1<<19
6023	fetch 8
6024;@RES 3,D
6025opcode_CB_9A:
6026	bic z80de,z80de,#1<<27
6027	fetch 8
6028;@RES 3,E
6029opcode_CB_9B:
6030	bic z80de,z80de,#1<<19
6031	fetch 8
6032;@RES 3,H
6033opcode_CB_9C:
6034	bic z80hl,z80hl,#1<<27
6035	fetch 8
6036;@RES 3,L
6037opcode_CB_9D:
6038	bic z80hl,z80hl,#1<<19
6039	fetch 8
6040;@RES 3,(HL)
6041opcode_CB_9E:
6042	opRESmemHL 3
6043;@RES 3,A
6044opcode_CB_9F:
6045	bic z80a,z80a,#1<<27
6046	fetch 8
6047
6048;@RES 4,B
6049opcode_CB_A0:
6050	bic z80bc,z80bc,#1<<28
6051	fetch 8
6052;@RES 4,C
6053opcode_CB_A1:
6054	bic z80bc,z80bc,#1<<20
6055	fetch 8
6056;@RES 4,D
6057opcode_CB_A2:
6058	bic z80de,z80de,#1<<28
6059	fetch 8
6060;@RES 4,E
6061opcode_CB_A3:
6062	bic z80de,z80de,#1<<20
6063	fetch 8
6064;@RES 4,H
6065opcode_CB_A4:
6066	bic z80hl,z80hl,#1<<28
6067	fetch 8
6068;@RES 4,L
6069opcode_CB_A5:
6070	bic z80hl,z80hl,#1<<20
6071	fetch 8
6072;@RES 4,(HL)
6073opcode_CB_A6:
6074	opRESmemHL 4
6075;@RES 4,A
6076opcode_CB_A7:
6077	bic z80a,z80a,#1<<28
6078	fetch 8
6079
6080;@RES 5,B
6081opcode_CB_A8:
6082	bic z80bc,z80bc,#1<<29
6083	fetch 8
6084;@RES 5,C
6085opcode_CB_A9:
6086	bic z80bc,z80bc,#1<<21
6087	fetch 8
6088;@RES 5,D
6089opcode_CB_AA:
6090	bic z80de,z80de,#1<<29
6091	fetch 8
6092;@RES 5,E
6093opcode_CB_AB:
6094	bic z80de,z80de,#1<<21
6095	fetch 8
6096;@RES 5,H
6097opcode_CB_AC:
6098	bic z80hl,z80hl,#1<<29
6099	fetch 8
6100;@RES 5,L
6101opcode_CB_AD:
6102	bic z80hl,z80hl,#1<<21
6103	fetch 8
6104;@RES 5,(HL)
6105opcode_CB_AE:
6106	opRESmemHL 5
6107;@RES 5,A
6108opcode_CB_AF:
6109	bic z80a,z80a,#1<<29
6110	fetch 8
6111
6112;@RES 6,B
6113opcode_CB_B0:
6114	bic z80bc,z80bc,#1<<30
6115	fetch 8
6116;@RES 6,C
6117opcode_CB_B1:
6118	bic z80bc,z80bc,#1<<22
6119	fetch 8
6120;@RES 6,D
6121opcode_CB_B2:
6122	bic z80de,z80de,#1<<30
6123	fetch 8
6124;@RES 6,E
6125opcode_CB_B3:
6126	bic z80de,z80de,#1<<22
6127	fetch 8
6128;@RES 6,H
6129opcode_CB_B4:
6130	bic z80hl,z80hl,#1<<30
6131	fetch 8
6132;@RES 6,L
6133opcode_CB_B5:
6134	bic z80hl,z80hl,#1<<22
6135	fetch 8
6136;@RES 6,(HL)
6137opcode_CB_B6:
6138	opRESmemHL 6
6139;@RES 6,A
6140opcode_CB_B7:
6141	bic z80a,z80a,#1<<30
6142	fetch 8
6143
6144;@RES 7,B
6145opcode_CB_B8:
6146	bic z80bc,z80bc,#1<<31
6147	fetch 8
6148;@RES 7,C
6149opcode_CB_B9:
6150	bic z80bc,z80bc,#1<<23
6151	fetch 8
6152;@RES 7,D
6153opcode_CB_BA:
6154	bic z80de,z80de,#1<<31
6155	fetch 8
6156;@RES 7,E
6157opcode_CB_BB:
6158	bic z80de,z80de,#1<<23
6159	fetch 8
6160;@RES 7,H
6161opcode_CB_BC:
6162	bic z80hl,z80hl,#1<<31
6163	fetch 8
6164;@RES 7,L
6165opcode_CB_BD:
6166	bic z80hl,z80hl,#1<<23
6167	fetch 8
6168;@RES 7,(HL)
6169opcode_CB_BE:
6170	opRESmemHL 7
6171;@RES 7,A
6172opcode_CB_BF:
6173	bic z80a,z80a,#1<<31
6174	fetch 8
6175
6176;@SET 0,B
6177opcode_CB_C0:
6178	orr z80bc,z80bc,#1<<24
6179	fetch 8
6180;@SET 0,C
6181opcode_CB_C1:
6182	orr z80bc,z80bc,#1<<16
6183	fetch 8
6184;@SET 0,D
6185opcode_CB_C2:
6186	orr z80de,z80de,#1<<24
6187	fetch 8
6188;@SET 0,E
6189opcode_CB_C3:
6190	orr z80de,z80de,#1<<16
6191	fetch 8
6192;@SET 0,H
6193opcode_CB_C4:
6194	orr z80hl,z80hl,#1<<24
6195	fetch 8
6196;@SET 0,L
6197opcode_CB_C5:
6198	orr z80hl,z80hl,#1<<16
6199	fetch 8
6200;@SET 0,(HL)
6201opcode_CB_C6:
6202	opSETmemHL 0
6203;@SET 0,A
6204opcode_CB_C7:
6205	orr z80a,z80a,#1<<24
6206	fetch 8
6207
6208;@SET 1,B
6209opcode_CB_C8:
6210	orr z80bc,z80bc,#1<<25
6211	fetch 8
6212;@SET 1,C
6213opcode_CB_C9:
6214	orr z80bc,z80bc,#1<<17
6215	fetch 8
6216;@SET 1,D
6217opcode_CB_CA:
6218	orr z80de,z80de,#1<<25
6219	fetch 8
6220;@SET 1,E
6221opcode_CB_CB:
6222	orr z80de,z80de,#1<<17
6223	fetch 8
6224;@SET 1,H
6225opcode_CB_CC:
6226	orr z80hl,z80hl,#1<<25
6227	fetch 8
6228;@SET 1,L
6229opcode_CB_CD:
6230	orr z80hl,z80hl,#1<<17
6231	fetch 8
6232;@SET 1,(HL)
6233opcode_CB_CE:
6234	opSETmemHL 1
6235;@SET 1,A
6236opcode_CB_CF:
6237	orr z80a,z80a,#1<<25
6238	fetch 8
6239
6240;@SET 2,B
6241opcode_CB_D0:
6242	orr z80bc,z80bc,#1<<26
6243	fetch 8
6244;@SET 2,C
6245opcode_CB_D1:
6246	orr z80bc,z80bc,#1<<18
6247	fetch 8
6248;@SET 2,D
6249opcode_CB_D2:
6250	orr z80de,z80de,#1<<26
6251	fetch 8
6252;@SET 2,E
6253opcode_CB_D3:
6254	orr z80de,z80de,#1<<18
6255	fetch 8
6256;@SET 2,H
6257opcode_CB_D4:
6258	orr z80hl,z80hl,#1<<26
6259	fetch 8
6260;@SET 2,L
6261opcode_CB_D5:
6262	orr z80hl,z80hl,#1<<18
6263	fetch 8
6264;@SET 2,(HL)
6265opcode_CB_D6:
6266	opSETmemHL 2
6267;@SET 2,A
6268opcode_CB_D7:
6269	orr z80a,z80a,#1<<26
6270	fetch 8
6271
6272;@SET 3,B
6273opcode_CB_D8:
6274	orr z80bc,z80bc,#1<<27
6275	fetch 8
6276;@SET 3,C
6277opcode_CB_D9:
6278	orr z80bc,z80bc,#1<<19
6279	fetch 8
6280;@SET 3,D
6281opcode_CB_DA:
6282	orr z80de,z80de,#1<<27
6283	fetch 8
6284;@SET 3,E
6285opcode_CB_DB:
6286	orr z80de,z80de,#1<<19
6287	fetch 8
6288;@SET 3,H
6289opcode_CB_DC:
6290	orr z80hl,z80hl,#1<<27
6291	fetch 8
6292;@SET 3,L
6293opcode_CB_DD:
6294	orr z80hl,z80hl,#1<<19
6295	fetch 8
6296;@SET 3,(HL)
6297opcode_CB_DE:
6298	opSETmemHL 3
6299;@SET 3,A
6300opcode_CB_DF:
6301	orr z80a,z80a,#1<<27
6302	fetch 8
6303
6304;@SET 4,B
6305opcode_CB_E0:
6306	orr z80bc,z80bc,#1<<28
6307	fetch 8
6308;@SET 4,C
6309opcode_CB_E1:
6310	orr z80bc,z80bc,#1<<20
6311	fetch 8
6312;@SET 4,D
6313opcode_CB_E2:
6314	orr z80de,z80de,#1<<28
6315	fetch 8
6316;@SET 4,E
6317opcode_CB_E3:
6318	orr z80de,z80de,#1<<20
6319	fetch 8
6320;@SET 4,H
6321opcode_CB_E4:
6322	orr z80hl,z80hl,#1<<28
6323	fetch 8
6324;@SET 4,L
6325opcode_CB_E5:
6326	orr z80hl,z80hl,#1<<20
6327	fetch 8
6328;@SET 4,(HL)
6329opcode_CB_E6:
6330	opSETmemHL 4
6331;@SET 4,A
6332opcode_CB_E7:
6333	orr z80a,z80a,#1<<28
6334	fetch 8
6335
6336;@SET 5,B
6337opcode_CB_E8:
6338	orr z80bc,z80bc,#1<<29
6339	fetch 8
6340;@SET 5,C
6341opcode_CB_E9:
6342	orr z80bc,z80bc,#1<<21
6343	fetch 8
6344;@SET 5,D
6345opcode_CB_EA:
6346	orr z80de,z80de,#1<<29
6347	fetch 8
6348;@SET 5,E
6349opcode_CB_EB:
6350	orr z80de,z80de,#1<<21
6351	fetch 8
6352;@SET 5,H
6353opcode_CB_EC:
6354	orr z80hl,z80hl,#1<<29
6355	fetch 8
6356;@SET 5,L
6357opcode_CB_ED:
6358	orr z80hl,z80hl,#1<<21
6359	fetch 8
6360;@SET 5,(HL)
6361opcode_CB_EE:
6362	opSETmemHL 5
6363;@SET 5,A
6364opcode_CB_EF:
6365	orr z80a,z80a,#1<<29
6366	fetch 8
6367
6368;@SET 6,B
6369opcode_CB_F0:
6370	orr z80bc,z80bc,#1<<30
6371	fetch 8
6372;@SET 6,C
6373opcode_CB_F1:
6374	orr z80bc,z80bc,#1<<22
6375	fetch 8
6376;@SET 6,D
6377opcode_CB_F2:
6378	orr z80de,z80de,#1<<30
6379	fetch 8
6380;@SET 6,E
6381opcode_CB_F3:
6382	orr z80de,z80de,#1<<22
6383	fetch 8
6384;@SET 6,H
6385opcode_CB_F4:
6386	orr z80hl,z80hl,#1<<30
6387	fetch 8
6388;@SET 6,L
6389opcode_CB_F5:
6390	orr z80hl,z80hl,#1<<22
6391	fetch 8
6392;@SET 6,(HL)
6393opcode_CB_F6:
6394	opSETmemHL 6
6395;@SET 6,A
6396opcode_CB_F7:
6397	orr z80a,z80a,#1<<30
6398	fetch 8
6399
6400;@SET 7,B
6401opcode_CB_F8:
6402	orr z80bc,z80bc,#1<<31
6403	fetch 8
6404;@SET 7,C
6405opcode_CB_F9:
6406	orr z80bc,z80bc,#1<<23
6407	fetch 8
6408;@SET 7,D
6409opcode_CB_FA:
6410	orr z80de,z80de,#1<<31
6411	fetch 8
6412;@SET 7,E
6413opcode_CB_FB:
6414	orr z80de,z80de,#1<<23
6415	fetch 8
6416;@SET 7,H
6417opcode_CB_FC:
6418	orr z80hl,z80hl,#1<<31
6419	fetch 8
6420;@SET 7,L
6421opcode_CB_FD:
6422	orr z80hl,z80hl,#1<<23
6423	fetch 8
6424;@SET 7,(HL)
6425opcode_CB_FE:
6426	opSETmemHL 7
6427;@SET 7,A
6428opcode_CB_FF:
6429	orr z80a,z80a,#1<<31
6430	fetch 8
6431
6432
6433
6434;@##################################
6435;@##################################
6436;@###  opcodes DD  #########################
6437;@##################################
6438;@##################################
6439;@Because the DD opcodes are not a complete range from 00-FF I have
6440;@created this sub routine that will catch any undocumented ops
6441;@halt the emulator and mov the current instruction to r0
6442;@at a later stage I may change to display a text message on the screen
6443opcode_DD_NF:
6444	eatcycles 4
6445	ldr pc,[opcodes,r0, lsl #2]
6446;@	mov r2,#0x10*4
6447;@	cmp r2,z80xx
6448;@	bne opcode_FD_NF
6449;@	mov r0,#0xDD00
6450;@	orr r0,r0,r1
6451;@	b end_loop
6452;@opcode_FD_NF:
6453;@	mov r0,#0xFD00
6454;@	orr r0,r0,r1
6455;@	b end_loop
6456opcode_DD_NF2:
6457	mov r0,#0xDD0000
6458	orr r0,r0,#0xCB00
6459	orr r0,r0,r1
6460	b end_loop
6461
6462;@ADD IX,BC
6463opcode_DD_09:
6464	ldr r0,[z80xx]
6465	opADD16 r0 z80bc
6466	str r0,[z80xx]
6467	fetch 15
6468;@ADD IX,DE
6469opcode_DD_19:
6470	ldr r0,[z80xx]
6471	opADD16 r0 z80de
6472	str r0,[z80xx]
6473	fetch 15
6474;@LD IX,NN
6475opcode_DD_21:
6476	ldrb r0,[z80pc],#1
6477	ldrb r1,[z80pc],#1
6478	orr r0,r0,r1, lsl #8
6479	strh r0,[z80xx,#2]
6480	fetch 14
6481;@LD (NN),IX
6482opcode_DD_22:
6483	ldrb r0,[z80pc],#1
6484	ldrb r1,[z80pc],#1
6485	orr r1,r0,r1, lsl #8
6486	ldrh r0,[z80xx,#2]
6487	writemem16
6488	fetch 20
6489;@INC IX
6490opcode_DD_23:
6491	ldr r0,[z80xx]
6492	add r0,r0,#1<<16
6493	str r0,[z80xx]
6494	fetch 10
6495;@INC I  (IX)
6496opcode_DD_24:
6497	ldr r0,[z80xx]
6498	opINC8H r0
6499	str r0,[z80xx]
6500	fetch 8
6501;@DEC I  (IX)
6502opcode_DD_25:
6503	ldr r0,[z80xx]
6504	opDEC8H r0
6505	str r0,[z80xx]
6506	fetch 8
6507;@LD I,N  (IX)
6508opcode_DD_26:
6509	ldrb r0,[z80pc],#1
6510	strb r0,[z80xx,#3]
6511	fetch 11
6512;@ADD IX,IX
6513opcode_DD_29:
6514	ldr r0,[z80xx]
6515	opADD16_2 r0
6516	str r0,[z80xx]
6517	fetch 15
6518;@LD IX,(NN)
6519opcode_DD_2A:
6520	ldrb r0,[z80pc],#1
6521	ldrb r1,[z80pc],#1
6522	orr r0,r0,r1, lsl #8
6523	stmfd sp!,{z80xx}
6524	readmem16
6525	ldmfd sp!,{z80xx}
6526	strh r0,[z80xx,#2]
6527	fetch 20
6528;@DEC IX
6529opcode_DD_2B:
6530	ldr r0,[z80xx]
6531	sub r0,r0,#1<<16
6532	str r0,[z80xx]
6533	fetch 10
6534;@INC X  (IX)
6535opcode_DD_2C:
6536	ldr r0,[z80xx]
6537	opINC8L r0
6538	str r0,[z80xx]
6539	fetch 8
6540;@DEC X  (IX)
6541opcode_DD_2D:
6542	ldr r0,[z80xx]
6543	opDEC8L r0
6544	str r0,[z80xx]
6545	fetch 8
6546;@LD X,N  (IX)
6547opcode_DD_2E:
6548	ldrb r0,[z80pc],#1
6549	strb r0,[z80xx,#2]
6550	fetch 11
6551;@INC (IX+N)
6552opcode_DD_34:
6553	ldrsb r0,[z80pc],#1
6554	ldr r1,[z80xx]
6555	add r0,r0,r1, lsr #16
6556	stmfd sp!,{r0}	;@ save addr
6557	readmem8
6558	opINC8b
6559	ldmfd sp!,{r1}	;@ restore addr into r1
6560	writemem8
6561	fetch 23
6562;@DEC (IX+N)
6563opcode_DD_35:
6564	ldrsb r0,[z80pc],#1
6565	ldr r1,[z80xx]
6566	add r0,r0,r1, lsr #16
6567	stmfd sp!,{r0}	;@ save addr
6568	readmem8
6569	opDEC8b
6570	ldmfd sp!,{r1}	;@ restore addr into r1
6571	writemem8
6572	fetch 23
6573;@LD (IX+N),N
6574opcode_DD_36:
6575	ldrsb r2,[z80pc],#1
6576	ldrb r0,[z80pc],#1
6577	ldr r1,[z80xx]
6578	add r1,r2,r1, lsr #16
6579	writemem8
6580	fetch 19
6581;@ADD IX,SP
6582opcode_DD_39:
6583	ldr r0,[z80xx]
6584.if FAST_Z80SP
6585	ldr r2,[cpucontext,#z80sp_base]
6586	sub r2,z80sp,r2
6587	opADD16s r0 r2 16
6588.else
6589	opADD16s r0 z80sp 16
6590.endif
6591	str r0,[z80xx]
6592	fetch 15
6593;@LD B,I ( IX )
6594opcode_DD_44:
6595	ldrb r0,[z80xx,#3]
6596	and z80bc,z80bc,#0xFF<<16
6597	orr z80bc,z80bc,r0, lsl #24
6598	fetch 8
6599;@LD B,X ( IX )
6600opcode_DD_45:
6601	ldrb r0,[z80xx,#2]
6602	and z80bc,z80bc,#0xFF<<16
6603	orr z80bc,z80bc,r0, lsl #24
6604	fetch 8
6605;@LD B,(IX,N)
6606opcode_DD_46:
6607	ldrsb r0,[z80pc],#1
6608	ldr r1,[z80xx]
6609	add r0,r0,r1, lsr #16
6610	readmem8
6611	and z80bc,z80bc,#0xFF<<16
6612	orr z80bc,z80bc,r0, lsl #24
6613	fetch 19
6614;@LD C,I  (IX)
6615opcode_DD_4C:
6616	ldrb r0,[z80xx,#3]
6617	and z80bc,z80bc,#0xFF<<24
6618	orr z80bc,z80bc,r0, lsl #16
6619	fetch 8
6620;@LD C,X  (IX)
6621opcode_DD_4D:
6622	ldrb r0,[z80xx,#2]
6623	and z80bc,z80bc,#0xFF<<24
6624	orr z80bc,z80bc,r0, lsl #16
6625	fetch 8
6626;@LD C,(IX,N)
6627opcode_DD_4E:
6628	ldrsb r0,[z80pc],#1
6629	ldr r1,[z80xx]
6630	add r0,r0,r1, lsr #16
6631	readmem8
6632	and z80bc,z80bc,#0xFF<<24
6633	orr z80bc,z80bc,r0, lsl #16
6634	fetch 19
6635
6636;@LD D,I  (IX)
6637opcode_DD_54:
6638	ldrb r0,[z80xx,#3]
6639	and z80de,z80de,#0xFF<<16
6640	orr z80de,z80de,r0, lsl #24
6641	fetch 8
6642;@LD D,X  (IX)
6643opcode_DD_55:
6644	ldrb r0,[z80xx,#2]
6645	and z80de,z80de,#0xFF<<16
6646	orr z80de,z80de,r0, lsl #24
6647	fetch 8
6648;@LD D,(IX,N)
6649opcode_DD_56:
6650	ldrsb r0,[z80pc],#1
6651	ldr r1,[z80xx]
6652	add r0,r0,r1, lsr #16
6653	readmem8
6654	and z80de,z80de,#0xFF<<16
6655	orr z80de,z80de,r0, lsl #24
6656	fetch 19
6657;@LD E,I  (IX)
6658opcode_DD_5C:
6659	ldrb r0,[z80xx,#3]
6660	and z80de,z80de,#0xFF<<24
6661	orr z80de,z80de,r0, lsl #16
6662	fetch 8
6663;@LD E,X  (IX)
6664opcode_DD_5D:
6665	ldrb r0,[z80xx,#2]
6666	and z80de,z80de,#0xFF<<24
6667	orr z80de,z80de,r0, lsl #16
6668	fetch 8
6669;@LD E,(IX,N)
6670opcode_DD_5E:
6671	ldrsb r0,[z80pc],#1
6672	ldr r1,[z80xx]
6673	add r0,r0,r1, lsr #16
6674	readmem8
6675	and z80de,z80de,#0xFF<<24
6676	orr z80de,z80de,r0, lsl #16
6677	fetch 19
6678;@LD I,B  (IX)
6679opcode_DD_60:
6680	mov r0,z80bc,lsr#24
6681	strb r0,[z80xx,#3]
6682	fetch 8
6683;@LD I,C  (IX)
6684opcode_DD_61:
6685	mov r0,z80bc,lsr#16
6686	strb r0,[z80xx,#3]
6687	fetch 8
6688;@LD I,D  (IX)
6689opcode_DD_62:
6690	mov r0,z80de,lsr#24
6691	strb r0,[z80xx,#3]
6692	fetch 8
6693;@LD I,E  (IX)
6694opcode_DD_63:
6695	mov r0,z80de,lsr#16
6696	strb r0,[z80xx,#3]
6697	fetch 8
6698;@LD I,I  (IX)
6699opcode_DD_64:
6700	fetch 8
6701;@LD I,X  (IX)
6702opcode_DD_65:
6703	ldrb r0,[z80xx,#2]
6704	strb r0,[z80xx,#3]
6705	fetch 8
6706;@LD H,(IX,N)
6707opcode_DD_66:
6708	ldrsb r0,[z80pc],#1
6709	ldr r1,[z80xx]
6710	add r0,r0,r1, lsr #16
6711	readmem8
6712	and z80hl,z80hl,#0xFF<<16
6713	orr z80hl,z80hl,r0, lsl #24
6714	fetch 19
6715;@LD I,A  (IX)
6716opcode_DD_67:
6717	mov r0,z80a,lsr#24
6718	strb r0,[z80xx,#3]
6719	fetch 8
6720;@LD X,B  (IX)
6721opcode_DD_68:
6722	mov r0,z80bc,lsr#24
6723	strb r0,[z80xx,#2]
6724	fetch 8
6725;@LD X,C  (IX)
6726opcode_DD_69:
6727	mov r0,z80bc,lsr#16
6728	strb r0,[z80xx,#2]
6729	fetch 8
6730;@LD X,D  (IX)
6731opcode_DD_6A:
6732	mov r0,z80de,lsr#24
6733	strb r0,[z80xx,#2]
6734	fetch 8
6735;@LD X,E  (IX)
6736opcode_DD_6B:
6737	mov r0,z80de,lsr#16
6738	strb r0,[z80xx,#2]
6739	fetch 8
6740;@LD X,I  (IX)
6741opcode_DD_6C:
6742	ldrb r0,[z80xx,#3]
6743	strb r0,[z80xx,#2]
6744	fetch 8
6745;@LD X,X  (IX)
6746opcode_DD_6D:
6747	fetch 8
6748;@LD L,(IX,N)
6749opcode_DD_6E:
6750	ldrsb r0,[z80pc],#1
6751	ldr r1,[z80xx]
6752	add r0,r0,r1, lsr #16
6753	readmem8
6754	and z80hl,z80hl,#0xFF<<24
6755	orr z80hl,z80hl,r0, lsl #16
6756	fetch 19
6757;@LD X,A  (IX)
6758opcode_DD_6F:
6759	mov r0,z80a,lsr#24
6760	strb r0,[z80xx,#2]
6761	fetch 8
6762
6763;@LD (IX,N),B
6764opcode_DD_70:
6765	ldrsb r0,[z80pc],#1
6766	ldr r1,[z80xx]
6767	add r1,r0,r1, lsr #16
6768	mov r0,z80bc, lsr #24
6769	writemem8
6770	fetch 19
6771;@LD (IX,N),C
6772opcode_DD_71:
6773	ldrsb r0,[z80pc],#1
6774	ldr r1,[z80xx]
6775	add r1,r0,r1, lsr #16
6776	mov r0,z80bc, lsr #16
6777	and r0,r0,#0xFF
6778	writemem8
6779	fetch 19
6780;@LD (IX,N),D
6781opcode_DD_72:
6782	ldrsb r0,[z80pc],#1
6783	ldr r1,[z80xx]
6784	add r1,r0,r1, lsr #16
6785	mov r0,z80de, lsr #24
6786	writemem8
6787	fetch 19
6788;@LD (IX,N),E
6789opcode_DD_73:
6790	ldrsb r0,[z80pc],#1
6791	ldr r1,[z80xx]
6792	add r1,r0,r1, lsr #16
6793	mov r0,z80de, lsr #16
6794	and r0,r0,#0xFF
6795	writemem8
6796	fetch 19
6797;@LD (IX,N),H
6798opcode_DD_74:
6799	ldrsb r0,[z80pc],#1
6800	ldr r1,[z80xx]
6801	add r1,r0,r1, lsr #16
6802	mov r0,z80hl, lsr #24
6803	writemem8
6804	fetch 19
6805;@LD (IX,N),L
6806opcode_DD_75:
6807	ldrsb r0,[z80pc],#1
6808	ldr r1,[z80xx]
6809	add r1,r0,r1, lsr #16
6810	mov r0,z80hl, lsr #16
6811	and r0,r0,#0xFF
6812	writemem8
6813	fetch 19
6814;@LD (IX,N),A
6815opcode_DD_77:
6816	ldrsb r0,[z80pc],#1
6817	ldr r1,[z80xx]
6818	add r1,r0,r1, lsr #16
6819	mov r0,z80a, lsr #24
6820	writemem8
6821	fetch 19
6822
6823;@LD A,I  from (IX)
6824opcode_DD_7C:
6825	ldrb r0,[z80xx,#3]
6826	mov z80a,r0, lsl #24
6827	fetch 8
6828;@LD A,X  from (IX)
6829opcode_DD_7D:
6830	ldrb r0,[z80xx,#2]
6831	mov z80a,r0, lsl #24
6832	fetch 8
6833;@LD A,(IX,N)
6834opcode_DD_7E:
6835	ldrsb r0,[z80pc],#1
6836	ldr r1,[z80xx]
6837	add r0,r0,r1, lsr #16
6838	readmem8
6839	mov z80a,r0, lsl #24
6840	fetch 19
6841
6842;@ADD A,I  ( IX)
6843opcode_DD_84:
6844	ldrb r0,[z80xx,#3]
6845	opADDb
6846	fetch 8
6847;@ADD A,X  ( IX)
6848opcode_DD_85:
6849	ldrb r0,[z80xx,#2]
6850	opADDb
6851	fetch 8
6852;@ADD A,(IX+N)
6853opcode_DD_86:
6854	ldrsb r0,[z80pc],#1
6855	ldr r1,[z80xx]
6856	add r0,r0,r1, lsr #16
6857	readmem8
6858	opADDb
6859	fetch 19
6860
6861;@ADC A,I  (IX)
6862opcode_DD_8C:
6863	ldrb r0,[z80xx,#3]
6864	opADCb
6865	fetch 8
6866;@ADC A,X  (IX)
6867opcode_DD_8D:
6868	ldrb r0,[z80xx,#2]
6869	opADCb
6870	fetch 8
6871;@ADC A,(IX+N)
6872opcode_DD_8E:
6873	ldrsb r0,[z80pc],#1
6874	ldr r1,[z80xx]
6875	add r0,r0,r1, lsr #16
6876	readmem8
6877	opADCb
6878	fetch 19
6879
6880;@SUB A,I  (IX)
6881opcode_DD_94:
6882	ldrb r0,[z80xx,#3]
6883	opSUBb
6884	fetch 8
6885;@SUB A,X  (IX)
6886opcode_DD_95:
6887	ldrb r0,[z80xx,#2]
6888	opSUBb
6889	fetch 8
6890;@SUB A,(IX+N)
6891opcode_DD_96:
6892	ldrsb r0,[z80pc],#1
6893	ldr r1,[z80xx]
6894	add r0,r0,r1, lsr #16
6895	readmem8
6896	opSUBb
6897	fetch 19
6898
6899;@SBC A,I  (IX)
6900opcode_DD_9C:
6901	ldrb r0,[z80xx,#3]
6902	opSBCb
6903	fetch 8
6904;@SBC A,X  (IX)
6905opcode_DD_9D:
6906	ldrb r0,[z80xx,#2]
6907	opSBCb
6908	fetch 8
6909;@SBC A,(IX+N)
6910opcode_DD_9E:
6911	ldrsb r0,[z80pc],#1
6912	ldr r1,[z80xx]
6913	add r0,r0,r1, lsr #16
6914	readmem8
6915	opSBCb
6916	fetch 19
6917
6918;@AND I  (IX)
6919opcode_DD_A4:
6920	ldrb r0,[z80xx,#3]
6921	opANDb
6922	fetch 8
6923;@AND X  (IX)
6924opcode_DD_A5:
6925	ldrb r0,[z80xx,#2]
6926	opANDb
6927	fetch 8
6928;@AND (IX+N)
6929opcode_DD_A6:
6930	ldrsb r0,[z80pc],#1
6931	ldr r1,[z80xx]
6932	add r0,r0,r1, lsr #16
6933	readmem8
6934	opANDb
6935	fetch 19
6936
6937;@XOR I  (IX)
6938opcode_DD_AC:
6939	ldrb r0,[z80xx,#3]
6940	opXORb
6941	fetch 8
6942;@XOR X  (IX)
6943opcode_DD_AD:
6944	ldrb r0,[z80xx,#2]
6945	opXORb
6946	fetch 8
6947;@XOR (IX+N)
6948opcode_DD_AE:
6949	ldrsb r0,[z80pc],#1
6950	ldr r1,[z80xx]
6951	add r0,r0,r1, lsr #16
6952	readmem8
6953	opXORb
6954	fetch 19
6955
6956;@OR I  (IX)
6957opcode_DD_B4:
6958	ldrb r0,[z80xx,#3]
6959	opORb
6960	fetch 8
6961;@OR X  (IX)
6962opcode_DD_B5:
6963	ldrb r0,[z80xx,#2]
6964	opORb
6965	fetch 8
6966;@OR (IX+N)
6967opcode_DD_B6:
6968	ldrsb r0,[z80pc],#1
6969	ldr r1,[z80xx]
6970	add r0,r0,r1, lsr #16
6971	readmem8
6972	opORb
6973	fetch 19
6974
6975;@CP I  (IX)
6976opcode_DD_BC:
6977	ldrb r0,[z80xx,#3]
6978	opCPb
6979	fetch 8
6980;@CP X  (IX)
6981opcode_DD_BD:
6982	ldrb r0,[z80xx,#2]
6983	opCPb
6984	fetch 8
6985;@CP (IX+N)
6986opcode_DD_BE:
6987	ldrsb r0,[z80pc],#1
6988	ldr r1,[z80xx]
6989	add r0,r0,r1, lsr #16
6990	readmem8
6991	opCPb
6992	fetch 19
6993
6994
6995opcodes_DD_CB_LOCAL: .word opcodes_DD_CB
6996opcode_DD_CB:
6997;@Looks up the opcode on the opcodes_DD_CB table and then
6998;@moves the PC to the location of the subroutine
6999	ldrsb r0,[z80pc],#1
7000	ldr r1,[z80xx]
7001	add r0,r0,r1, lsr #16
7002
7003	ldrb r1,[z80pc],#1
7004	ldr pc,[pc,r1, lsl #2]
7005		.word 0x00
7006opcodes_DD_CB:
7007		.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
7008		.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
7009		.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
7010		.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
7011		.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
7012		.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
7013		.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
7014		.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
7015		.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
7016		.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
7017		.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
7018		.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
7019		.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
7020		.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
7021		.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
7022		.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
7023		.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
7024		.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
7025		.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
7026		.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
7027		.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
7028		.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
7029		.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
7030		.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
7031		.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
7032		.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
7033		.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
7034		.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
7035		.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
7036		.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
7037		.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
7038		.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
7039
7040;@RLC (IX+N)
7041opcode_DD_CB_06:
7042	stmfd sp!,{r0}		;@ save addr
7043	readmem8
7044	opRLCb
7045	ldmfd sp!,{r1}		;@ restore addr into r1
7046	writemem8
7047	fetch 23
7048;@RRC (IX+N)
7049opcode_DD_CB_0E:
7050	stmfd sp!,{r0}		;@ save addr
7051	readmem8
7052	opRRCb
7053	ldmfd sp!,{r1}		;@ restore addr into r1
7054	writemem8
7055	fetch 23
7056;@RL (IX+N)
7057opcode_DD_CB_16:
7058	stmfd sp!,{r0}		;@ save addr
7059	readmem8
7060	opRLb
7061	ldmfd sp!,{r1}		;@ restore addr into r1
7062	writemem8
7063	fetch 23
7064;@RR (IX+N)
7065opcode_DD_CB_1E:
7066	stmfd sp!,{r0}		;@ save addr
7067	readmem8
7068	opRRb
7069	ldmfd sp!,{r1}		;@ restore addr into r1
7070	writemem8
7071	fetch 23
7072
7073;@SLA (IX+N)
7074opcode_DD_CB_26:
7075	stmfd sp!,{r0}		;@ save addr
7076	readmem8
7077	opSLAb
7078	ldmfd sp!,{r1}		;@ restore addr into r1
7079	writemem8
7080	fetch 23
7081;@SRA (IX+N)
7082opcode_DD_CB_2E:
7083	stmfd sp!,{r0}		;@ save addr
7084	readmem8
7085	opSRAb
7086	ldmfd sp!,{r1}		;@ restore addr into r1
7087	writemem8
7088	fetch 23
7089;@SLL (IX+N)
7090opcode_DD_CB_36:
7091	stmfd sp!,{r0}		;@ save addr
7092	readmem8
7093	opSLLb
7094	ldmfd sp!,{r1}		;@ restore addr into r1
7095	writemem8
7096	fetch 23
7097;@SRL (IX+N)
7098opcode_DD_CB_3E:
7099	stmfd sp!,{r0}		;@ save addr
7100	readmem8
7101	opSRLb
7102	ldmfd sp!,{r1}		;@ restore addr into r1
7103	writemem8
7104	fetch 23
7105
7106;@BIT 0,(IX+N)
7107opcode_DD_CB_46:
7108	readmem8
7109	opBITb 0
7110	fetch 20
7111;@BIT 1,(IX+N)
7112opcode_DD_CB_4E:
7113	readmem8
7114	opBITb 1
7115	fetch 20
7116;@BIT 2,(IX+N)
7117opcode_DD_CB_56:
7118	readmem8
7119	opBITb 2
7120	fetch 20
7121;@BIT 3,(IX+N)
7122opcode_DD_CB_5E:
7123	readmem8
7124	opBITb 3
7125	fetch 20
7126;@BIT 4,(IX+N)
7127opcode_DD_CB_66:
7128	readmem8
7129	opBITb 4
7130	fetch 20
7131;@BIT 5,(IX+N)
7132opcode_DD_CB_6E:
7133	readmem8
7134	opBITb 5
7135	fetch 20
7136;@BIT 6,(IX+N)
7137opcode_DD_CB_76:
7138	readmem8
7139	opBITb 6
7140	fetch 20
7141;@BIT 7,(IX+N)
7142opcode_DD_CB_7E:
7143	readmem8
7144	opBIT7b
7145	fetch 20
7146;@RES 0,(IX+N)
7147opcode_DD_CB_86:
7148	opRESmem 0
7149;@RES 1,(IX+N)
7150opcode_DD_CB_8E:
7151	opRESmem 1
7152;@RES 2,(IX+N)
7153opcode_DD_CB_96:
7154	opRESmem 2
7155;@RES 3,(IX+N)
7156opcode_DD_CB_9E:
7157	opRESmem 3
7158;@RES 4,(IX+N)
7159opcode_DD_CB_A6:
7160	opRESmem 4
7161;@RES 5,(IX+N)
7162opcode_DD_CB_AE:
7163	opRESmem 5
7164;@RES 6,(IX+N)
7165opcode_DD_CB_B6:
7166	opRESmem 6
7167;@RES 7,(IX+N)
7168opcode_DD_CB_BE:
7169	opRESmem 7
7170
7171;@SET 0,(IX+N)
7172opcode_DD_CB_C6:
7173	opSETmem 0
7174;@SET 1,(IX+N)
7175opcode_DD_CB_CE:
7176	opSETmem 1
7177;@SET 2,(IX+N)
7178opcode_DD_CB_D6:
7179	opSETmem 2
7180;@SET 3,(IX+N)
7181opcode_DD_CB_DE:
7182	opSETmem 3
7183;@SET 4,(IX+N)
7184opcode_DD_CB_E6:
7185	opSETmem 4
7186;@SET 5,(IX+N)
7187opcode_DD_CB_EE:
7188	opSETmem 5
7189;@SET 6,(IX+N)
7190opcode_DD_CB_F6:
7191	opSETmem 6
7192;@SET 7,(IX+N)
7193opcode_DD_CB_FE:
7194	opSETmem 7
7195
7196
7197
7198;@POP IX
7199opcode_DD_E1:
7200.if FAST_Z80SP
7201	ldrb r0,[z80sp],#1
7202	ldrb r1,[z80sp],#1
7203	orr r0,r0,r1, lsl #8
7204.else
7205	mov r0,z80sp
7206	stmfd sp!,{z80xx}
7207	readmem16
7208	ldmfd sp!,{z80xx}
7209	add z80sp,z80sp,#2
7210.endif
7211	strh r0,[z80xx,#2]
7212	fetch 14
7213;@EX (SP),IX
7214opcode_DD_E3:
7215.if FAST_Z80SP
7216	ldrb r0,[z80sp]
7217	ldrb r1,[z80sp,#1]
7218	orr r2,r0,r1, lsl #8
7219	ldrh r1,[z80xx,#2]
7220	mov r0,r1, lsr #8
7221	strb r0,[z80sp,#1]
7222	strb r1,[z80sp]
7223	strh r2,[z80xx,#2]
7224.else
7225	mov r0,z80sp
7226	stmfd sp!,{z80xx}
7227	readmem16
7228	ldmfd sp!,{z80xx}
7229	mov r2,r0
7230	ldrh r0,[z80xx,#2]
7231	strh r2,[z80xx,#2]
7232	mov r1,z80sp
7233	writemem16
7234.endif
7235	fetch 23
7236;@PUSH IX
7237opcode_DD_E5:
7238	ldr r0,[z80xx]
7239	opPUSHreg r0
7240	fetch 15
7241;@JP (IX)
7242opcode_DD_E9:
7243	ldrh r0,[z80xx,#2]
7244	rebasepc
7245	fetch 8
7246;@LD SP,IX
7247opcode_DD_F9:
7248.if FAST_Z80SP
7249	ldrh r0,[z80xx,#2]
7250	rebasesp
7251	;@mov z80sp,r0
7252.else
7253	ldrh z80sp,[z80xx,#2]
7254.endif
7255	fetch 10
7256
7257;@##################################
7258;@##################################
7259;@###  opcodes ED  #########################
7260;@##################################
7261;@##################################
7262
7263opcode_ED_NF:
7264	fetch 8
7265;@	ldrb r0,[z80pc],#1
7266;@	ldr pc,[opcodes,r0, lsl #2]
7267;@	mov r0,#0xED00
7268;@	orr r0,r0,r1
7269;@	b end_loop
7270
7271;@IN B,(C)
7272opcode_ED_40:
7273	opIN_C
7274	and z80bc,z80bc,#0xFF<<16
7275	orr z80bc,z80bc,r0, lsl #24
7276	sub r1,opcodes,#0x100
7277	ldrb r0,[r1,r0]
7278	and z80f,z80f,#1<<CFlag
7279	orr z80f,z80f,r0
7280	fetch 12
7281;@OUT (C),B
7282opcode_ED_41:
7283	mov r1,z80bc, lsr #24
7284	opOUT_C
7285	fetch 12
7286
7287;@SBC HL,BC
7288opcode_ED_42:
7289	opSBC16 z80bc
7290
7291;@LD (NN),BC
7292opcode_ED_43:
7293	ldrb r0,[z80pc],#1
7294	ldrb r1,[z80pc],#1
7295	orr r1,r0,r1, lsl #8
7296	mov r0,z80bc, lsr #16
7297	writemem16
7298	fetch 20
7299;@NEG
7300opcode_ED_44:
7301	rsbs z80a,z80a,#0
7302	mrs z80f,cpsr
7303	mov z80f,z80f,lsr#28					;@S,Z,V&C
7304	eor z80f,z80f,#(1<<CFlag)|(1<<NFlag)	;@invert C and set n.
7305	tst z80a,#0x0F000000					;@H, correct
7306	orrne z80f,z80f,#1<<HFlag
7307	fetch 8
7308
7309;@RETN, moved to ED_4D
7310;@opcode_ED_45:
7311
7312;@IM 0
7313opcode_ED_46:
7314	strb z80a,[cpucontext,#z80im]			;@zero IM
7315	fetch 8
7316;@LD I,A
7317opcode_ED_47:
7318	str z80a,[cpucontext,#z80i]
7319	fetch 9
7320;@IN C,(C)
7321opcode_ED_48:
7322	opIN_C
7323	and z80bc,z80bc,#0xFF<<24
7324	orr z80bc,z80bc,r0, lsl #16
7325	sub r1,opcodes,#0x100
7326	ldrb r0,[r1,r0]
7327	and z80f,z80f,#1<<CFlag
7328	orr z80f,z80f,r0
7329	fetch 12
7330;@OUT (C),C
7331opcode_ED_49:
7332	mov r0,z80bc, lsr #16
7333	and r1,r0,#0xFF
7334	opOUT
7335	fetch 12
7336;@ADC HL,BC
7337opcode_ED_4A:
7338	opADC16 z80bc
7339;@LD BC,(NN)
7340opcode_ED_4B:
7341	ldrb r0,[z80pc],#1
7342	ldrb r1,[z80pc],#1
7343	orr r0,r0,r1, lsl #8
7344	readmem16
7345	mov z80bc,r0, lsl #16
7346	fetch 20
7347
7348;@RETN
7349opcode_ED_45:
7350;@RETI
7351opcode_ED_4D:
7352	ldrb r0,[cpucontext,#z80if]
7353	tst r0,#Z80_IF2
7354	orrne r0,r0,#Z80_IF1
7355	biceq r0,r0,#Z80_IF1
7356	strb r0,[cpucontext,#z80if]
7357.if FAST_Z80SP
7358	ldrb r0,[z80sp],#1
7359	ldrb r1,[z80sp],#1
7360	orr r0,r0,r1, lsl #8
7361.else
7362	mov r0,z80sp
7363	readmem16
7364	add z80sp,z80sp,#2
7365.endif
7366	rebasepc
7367	fetch 14
7368
7369;@LD R,A
7370opcode_ED_4F:
7371	mov r0,z80a,lsr#24
7372	strb r0,[cpucontext,#z80r]
7373	fetch 9
7374
7375;@IN D,(C)
7376opcode_ED_50:
7377	opIN_C
7378	and z80de,z80de,#0xFF<<16
7379	orr z80de,z80de,r0, lsl #24
7380	sub r1,opcodes,#0x100
7381	ldrb r0,[r1,r0]
7382	and z80f,z80f,#1<<CFlag
7383	orr z80f,z80f,r0
7384	fetch 12
7385;@OUT (C),D
7386opcode_ED_51:
7387	mov r1,z80de, lsr #24
7388	opOUT_C
7389	fetch 12
7390;@SBC HL,DE
7391opcode_ED_52:
7392	opSBC16 z80de
7393;@LD (NN),DE
7394opcode_ED_53:
7395	ldrb r0,[z80pc],#1
7396	ldrb r1,[z80pc],#1
7397	orr r1,r0,r1, lsl #8
7398	mov r0,z80de, lsr #16
7399	writemem16
7400	fetch 20
7401;@IM 1
7402opcode_ED_56:
7403	mov r0,#1
7404	strb r0,[cpucontext,#z80im]
7405	fetch 8
7406;@LD A,I
7407opcode_ED_57:
7408	ldr z80a,[cpucontext,#z80i]
7409	tst z80a,#0xFF000000
7410	and z80f,z80f,#(1<<CFlag)
7411	orreq z80f,z80f,#(1<<ZFlag)
7412	orrmi z80f,z80f,#(1<<SFlag)
7413	ldrb r0,[cpucontext,#z80if]
7414	tst r0,#Z80_IF2
7415	orrne z80f,z80f,#(1<<VFlag)
7416	fetch 9
7417;@IN E,(C)
7418opcode_ED_58:
7419	opIN_C
7420	and z80de,z80de,#0xFF<<24
7421	orr z80de,z80de,r0, lsl #16
7422	sub r1,opcodes,#0x100
7423	ldrb r0,[r1,r0]
7424	and z80f,z80f,#1<<CFlag
7425	orr z80f,z80f,r0
7426	fetch 12
7427;@OUT (C),E
7428opcode_ED_59:
7429	mov r1,z80de, lsr #16
7430	and r1,r1,#0xFF
7431	opOUT_C
7432	fetch 12
7433;@ADC HL,DE
7434opcode_ED_5A:
7435	opADC16 z80de
7436;@LD DE,(NN)
7437opcode_ED_5B:
7438	ldrb r0,[z80pc],#1
7439	ldrb r1,[z80pc],#1
7440	orr r0,r0,r1, lsl #8
7441	readmem16
7442	mov z80de,r0, lsl #16
7443	fetch 20
7444;@IM 2
7445opcode_ED_5E:
7446	mov r0,#2
7447	strb r0,[cpucontext,#z80im]
7448	fetch 8
7449;@LD A,R
7450opcode_ED_5F:
7451	ldrb r0,[cpucontext,#z80r]
7452	and r0,r0,#0x80
7453	rsb r1,z80_icount,#0
7454	and r1,r1,#0x7F
7455	orr r0,r0,r1
7456	movs z80a,r0, lsl #24
7457	and z80f,z80f,#1<<CFlag
7458	orrmi z80f,z80f,#(1<<SFlag)
7459	orreq z80f,z80f,#(1<<ZFlag)
7460	ldrb r0,[cpucontext,#z80if]
7461	tst r0,#Z80_IF2
7462	orrne z80f,z80f,#(1<<VFlag)
7463	fetch 9
7464;@IN H,(C)
7465opcode_ED_60:
7466	opIN_C
7467	and z80hl,z80hl,#0xFF<<16
7468	orr z80hl,z80hl,r0, lsl #24
7469	sub r1,opcodes,#0x100
7470	ldrb r0,[r1,r0]
7471	and z80f,z80f,#1<<CFlag
7472	orr z80f,z80f,r0
7473	fetch 12
7474;@OUT (C),H
7475opcode_ED_61:
7476	mov r1,z80hl, lsr #24
7477	opOUT_C
7478	fetch 12
7479;@SBC HL,HL
7480opcode_ED_62:
7481	opSBC16HL
7482;@RRD
7483opcode_ED_67:
7484	readmem8HL
7485	mov r1,r0,ror#4
7486	orr r0,r1,z80a,lsr#20
7487	bic z80a,z80a,#0x0F000000
7488	orr z80a,z80a,r1,lsr#4
7489	writemem8HL
7490	sub r1,opcodes,#0x100
7491	ldrb r0,[r1,z80a, lsr #24]
7492	and z80f,z80f,#1<<CFlag
7493	orr z80f,z80f,r0
7494	fetch 18
7495;@IN L,(C)
7496opcode_ED_68:
7497	opIN_C
7498	and z80hl,z80hl,#0xFF<<24
7499	orr z80hl,z80hl,r0, lsl #16
7500	and z80f,z80f,#1<<CFlag
7501	sub r1,opcodes,#0x100
7502	ldrb r0,[r1,r0]
7503	orr z80f,z80f,r0
7504	fetch 12
7505;@OUT (C),L
7506opcode_ED_69:
7507	mov r1,z80hl, lsr #16
7508	and r1,r1,#0xFF
7509	opOUT_C
7510	fetch 12
7511;@ADC HL,HL
7512opcode_ED_6A:
7513	opADC16HL
7514;@RLD
7515opcode_ED_6F:
7516	readmem8HL
7517	orr r0,r0,z80a,lsl#4
7518	mov r0,r0,ror#28
7519	and z80a,z80a,#0xF0000000
7520	orr z80a,z80a,r0,lsl#16
7521	and z80a,z80a,#0xFF000000
7522	writemem8HL
7523	sub r1,opcodes,#0x100
7524	ldrb r0,[r1,z80a, lsr #24]
7525	and z80f,z80f,#1<<CFlag
7526	orr z80f,z80f,r0
7527	fetch 18
7528;@IN F,(C)
7529opcode_ED_70:
7530	opIN_C
7531	and z80f,z80f,#1<<CFlag
7532	sub r1,opcodes,#0x100
7533	ldrb r0,[r1,r0]
7534	orr z80f,z80f,r0
7535	fetch 12
7536;@OUT (C),0
7537opcode_ED_71:
7538	mov r1,#0
7539	opOUT_C
7540	fetch 12
7541
7542;@SBC HL,SP
7543opcode_ED_72:
7544.if FAST_Z80SP
7545	ldr r0,[cpucontext,#z80sp_base]
7546	sub r0,z80sp,r0
7547	mov r0, r0, lsl #16
7548.else
7549	mov r0,z80sp,lsl#16
7550.endif
7551	opSBC16 r0
7552;@LD (NN),SP
7553opcode_ED_73:
7554	ldrb r0,[z80pc],#1
7555	ldrb r1,[z80pc],#1
7556	orr r1,r0,r1, lsl #8
7557.if FAST_Z80SP
7558	ldr r0,[cpucontext,#z80sp_base]
7559	sub r0,z80sp,r0
7560.else
7561	mov r0,z80sp
7562.endif
7563	writemem16
7564	fetch 16
7565;@IN A,(C)
7566opcode_ED_78:
7567	opIN_C
7568	mov z80a,r0, lsl #24
7569	and z80f,z80f,#1<<CFlag
7570	sub r1,opcodes,#0x100
7571	ldrb r0,[r1,r0]
7572	orr z80f,z80f,r0
7573	fetch 12
7574;@OUT (C),A
7575opcode_ED_79:
7576	mov r1,z80a, lsr #24
7577	opOUT_C
7578	fetch 12
7579;@ADC HL,SP
7580opcode_ED_7A:
7581.if FAST_Z80SP
7582	ldr r0,[cpucontext,#z80sp_base]
7583	sub r0,z80sp,r0
7584	mov r0, r0, lsl #16
7585.else
7586	mov r0,z80sp,lsl#16
7587.endif
7588	opADC16 r0
7589;@LD SP,(NN)
7590opcode_ED_7B:
7591	ldrb r0,[z80pc],#1
7592	ldrb r1,[z80pc],#1
7593	orr r0,r0,r1, lsl #8
7594	readmem16
7595.if FAST_Z80SP
7596	rebasesp
7597.else
7598	mov z80sp,r0
7599.endif
7600	fetch 20
7601;@LDI
7602opcode_ED_A0:
7603	copymem8HL_DE
7604	add z80hl,z80hl,#1<<16
7605	add z80de,z80de,#1<<16
7606	subs z80bc,z80bc,#1<<16
7607	bic z80f,z80f,#(1<<VFlag)|(1<<NFlag)|(1<<HFlag)
7608	orrne z80f,z80f,#1<<VFlag
7609	fetch 16
7610;@CPI
7611opcode_ED_A1:
7612	readmem8HL
7613	add z80hl,z80hl,#0x00010000
7614	mov r1,z80a,lsl#4
7615	cmp z80a,r0,lsl#24
7616	and z80f,z80f,#1<<CFlag
7617	orr z80f,z80f,#1<<NFlag
7618	orrmi z80f,z80f,#1<<SFlag
7619	orreq z80f,z80f,#1<<ZFlag
7620	cmp r1,r0,lsl#28
7621	orrcc z80f,z80f,#1<<HFlag
7622	subs z80bc,z80bc,#0x00010000
7623	orrne z80f,z80f,#1<<VFlag
7624	fetch 16
7625;@INI
7626opcode_ED_A2:
7627	opIN_C
7628	and z80f,r0,#0x80
7629	mov z80f,z80f,lsr#2						;@NFlag set by bit 7
7630;@	mov r1,z80bc,lsl#8
7631;@	add r1,r1,#0x01000000
7632;@	adds r1,r1,r0,lsl#24
7633;@	orrcs z80f,z80f,#(1<<CFlag)|(1<<HFlag)	;@ CF & HF set if (HL) + ((C+1) & 0xFF) > 0xFF
7634	writemem8HL
7635	add z80hl,z80hl,#1<<16
7636	sub z80bc,z80bc,#1<<24
7637	tst z80bc,#0xFF<<24
7638	orrmi z80f,z80f,#1<<SFlag
7639	orreq z80f,z80f,#1<<ZFlag
7640	fetch 16
7641
7642;@OUTI
7643opcode_ED_A3:
7644	readmem8HL
7645	add z80hl,z80hl,#1<<16
7646	and z80f,r0,#0x80
7647	mov z80f,z80f,lsr#2						;@NFlag set by bit 7
7648	mov r1,z80hl,lsl#8
7649	adds r1,r1,r0,lsl#24
7650	orrcs z80f,z80f,#(1<<CFlag)|(1<<HFlag)	;@ CF & HF set if (HL)+L > 0xFF
7651	sub z80bc,z80bc,#1<<24
7652	tst z80bc,#0xFF<<24
7653	orrmi z80f,z80f,#1<<SFlag
7654	orreq z80f,z80f,#1<<ZFlag
7655	mov r1,r0
7656	opOUT_C
7657	fetch 16
7658
7659;@LDD
7660opcode_ED_A8:
7661	copymem8HL_DE
7662	sub z80hl,z80hl,#1<<16
7663	sub z80de,z80de,#1<<16
7664	subs z80bc,z80bc,#1<<16
7665	bic z80f,z80f,#(1<<VFlag)|(1<<NFlag)|(1<<HFlag)
7666	orrne z80f,z80f,#1<<VFlag
7667	fetch 16
7668
7669;@CPD
7670opcode_ED_A9:
7671	readmem8HL
7672	sub z80hl,z80hl,#1<<16
7673	mov r1,z80a,lsl#4
7674	cmp z80a,r0,lsl#24
7675	and z80f,z80f,#1<<CFlag
7676	orr z80f,z80f,#1<<NFlag
7677	orrmi z80f,z80f,#1<<SFlag
7678	orreq z80f,z80f,#1<<ZFlag
7679	cmp r1,r0,lsl#28
7680	orrcc z80f,z80f,#1<<HFlag
7681	subs z80bc,z80bc,#0x00010000
7682	orrne z80f,z80f,#1<<VFlag
7683	fetch 16
7684
7685;@IND
7686opcode_ED_AA:
7687	opIN_C
7688	and z80f,r0,#0x80
7689	mov z80f,z80f,lsr#2						;@NFlag set by bit 7
7690;@	mov r1,z80bc,lsl#8
7691;@	sub r1,r1,#0x01000000
7692;@	adds r1,r1,r0,lsl#24
7693;@	orrcs z80f,z80f,#(1<<CFlag)|(1<<HFlag)	;@ CF & HF set if (HL) + ((C-1) & 0xFF) > 0xFF
7694	writemem8HL
7695	sub z80hl,z80hl,#1<<16
7696	sub z80bc,z80bc,#1<<24
7697	tst z80bc,#0xFF<<24
7698	orrmi z80f,z80f,#1<<SFlag
7699	orreq z80f,z80f,#1<<ZFlag
7700	fetch 16
7701
7702;@OUTD
7703opcode_ED_AB:
7704	readmem8HL
7705	sub z80hl,z80hl,#1<<16
7706	and z80f,r0,#0x80
7707	mov z80f,z80f,lsr#2						;@NFlag set by bit 7
7708	mov r1,z80hl,lsl#8
7709	adds r1,r1,r0,lsl#24
7710	orrcs z80f,z80f,#(1<<CFlag)|(1<<HFlag)	;@ CF & HF set if r0+HL > 0xFF
7711	sub z80bc,z80bc,#1<<24
7712	tst z80bc,#0xFF<<24
7713	orrmi z80f,z80f,#1<<SFlag
7714	orreq z80f,z80f,#1<<ZFlag
7715	mov r1,r0
7716	opOUT_C
7717	fetch 16
7718;@LDIR
7719opcode_ED_B0:
7720	copymem8HL_DE
7721	add z80hl,z80hl,#1<<16
7722	add z80de,z80de,#1<<16
7723	subs z80bc,z80bc,#1<<16
7724	bic z80f,z80f,#(1<<VFlag)|(1<<NFlag)|(1<<HFlag)
7725	orrne z80f,z80f,#1<<VFlag
7726	subne z80pc,z80pc,#2
7727	subne z80_icount,z80_icount,#5
7728	fetch 16
7729
7730;@CPIR
7731opcode_ED_B1:
7732	readmem8HL
7733	add z80hl,z80hl,#1<<16
7734	mov r1,z80a,lsl#4
7735	cmp z80a,r0,lsl#24
7736	and z80f,z80f,#1<<CFlag
7737	orr z80f,z80f,#1<<NFlag
7738	orrmi z80f,z80f,#1<<SFlag
7739	orreq z80f,z80f,#1<<ZFlag
7740	cmp r1,r0,lsl#28
7741	orrcc z80f,z80f,#1<<HFlag
7742	subs z80bc,z80bc,#1<<16
7743	bne opcode_ED_B1_decpc
7744	fetch 16
7745opcode_ED_B1_decpc:
7746	orr z80f,z80f,#1<<VFlag
7747	tst z80f,#1<<ZFlag
7748	subeq z80pc,z80pc,#2
7749	subeq z80_icount,z80_icount,#5
7750	fetch 16
7751;@INIR
7752opcode_ED_B2:
7753	opIN_C
7754	and z80f,r0,#0x80
7755	mov z80f,z80f,lsr#2						;@NFlag set by bit 7
7756;@	mov r1,z80bc,lsl#8
7757;@	add r1,r1,#0x01000000
7758;@	adds r1,r1,r0,lsl#24
7759;@	orrcs z80f,z80f,#(1<<CFlag)|(1<<HFlag)	;@ CF & HF set if (HL) + ((C+1) & 0xFF) > 0xFF
7760	writemem8HL
7761	add z80hl,z80hl,#1<<16
7762	sub z80bc,z80bc,#1<<24
7763	tst z80bc,#0xFF<<24
7764	orrmi z80f,z80f,#1<<SFlag
7765	orreq z80f,z80f,#1<<ZFlag
7766	subne z80pc,z80pc,#2
7767	subne z80_icount,z80_icount,#5
7768	fetch 16
7769;@OTIR
7770opcode_ED_B3:
7771	readmem8HL
7772	add z80hl,z80hl,#1<<16
7773	and z80f,r0,#0x80
7774	mov z80f,z80f,lsr#2						;@NFlag set by bit 7
7775	mov r1,z80hl,lsl#8
7776	adds r1,r1,r0,lsl#24
7777	orrcs z80f,z80f,#(1<<CFlag)|(1<<HFlag)	;@ CF & HF set if r0+HL > 0xFF
7778	sub z80bc,z80bc,#1<<24
7779	tst z80bc,#0xFF<<24
7780	orrmi z80f,z80f,#1<<SFlag
7781	orreq z80f,z80f,#1<<ZFlag
7782	subne z80pc,z80pc,#2
7783	subne z80_icount,z80_icount,#5
7784	mov r1,r0
7785	opOUT_C
7786	fetch 16
7787;@LDDR
7788opcode_ED_B8:
7789	copymem8HL_DE
7790	sub z80hl,z80hl,#1<<16
7791	sub z80de,z80de,#1<<16
7792	subs z80bc,z80bc,#1<<16
7793	bic z80f,z80f,#(1<<VFlag)|(1<<NFlag)|(1<<HFlag)
7794	orrne z80f,z80f,#1<<VFlag
7795	subne z80pc,z80pc,#2
7796	subne z80_icount,z80_icount,#5
7797	fetch 16
7798
7799;@CPDR
7800opcode_ED_B9:
7801	readmem8HL
7802	sub z80hl,z80hl,#1<<16
7803	mov r1,z80a,lsl#4
7804	cmp z80a,r0,lsl#24
7805	and z80f,z80f,#1<<CFlag
7806	orr z80f,z80f,#1<<NFlag
7807	orrmi z80f,z80f,#1<<SFlag
7808	orreq z80f,z80f,#1<<ZFlag
7809	cmp r1,r0,lsl#28
7810	orrcc z80f,z80f,#1<<HFlag
7811	subs z80bc,z80bc,#1<<16
7812	bne opcode_ED_B9_decpc
7813	fetch 16
7814opcode_ED_B9_decpc:
7815	orr z80f,z80f,#1<<VFlag
7816	tst z80f,#1<<ZFlag
7817	subeq z80pc,z80pc,#2
7818	subeq z80_icount,z80_icount,#5
7819	fetch 16
7820;@INDR
7821opcode_ED_BA:
7822	opIN_C
7823	and z80f,r0,#0x80
7824	mov z80f,z80f,lsr#2						;@NFlag set by bit 7
7825;@	mov r1,z80bc,lsl#8
7826;@	sub r1,r1,#0x01000000
7827;@	adds r1,r1,r0,lsl#24
7828;@	orrcs z80f,z80f,#(1<<CFlag)|(1<<HFlag)	;@ CF & HF set if (HL) + ((C-1) & 0xFF) > 0xFF
7829	writemem8HL
7830	sub z80hl,z80hl,#1<<16
7831	sub z80bc,z80bc,#1<<24
7832	tst z80bc,#0xFF<<24
7833	orrmi z80f,z80f,#1<<SFlag
7834	orreq z80f,z80f,#1<<ZFlag
7835	subne z80pc,z80pc,#2
7836	subne z80_icount,z80_icount,#5
7837	fetch 16
7838;@OTDR
7839opcode_ED_BB:
7840	readmem8HL
7841	sub z80hl,z80hl,#1<<16
7842	and z80f,r0,#0x80
7843	mov z80f,z80f,lsr#2						;@NFlag set by bit 7
7844	mov r1,z80hl,lsl#8
7845	adds r1,r1,r0,lsl#24
7846	orrcs z80f,z80f,#(1<<CFlag)|(1<<HFlag)	;@ CF & HF set if r0+HL > 0xFF
7847	sub z80bc,z80bc,#1<<24
7848	tst z80bc,#0xFF<<24
7849	orrmi z80f,z80f,#1<<SFlag
7850	orreq z80f,z80f,#1<<ZFlag
7851	subne z80pc,z80pc,#2
7852	subne z80_icount,z80_icount,#5
7853	mov r1,r0
7854	opOUT_C
7855	fetch 16
7856;@##################################
7857;@##################################
7858;@###  opcodes FD  #########################
7859;@##################################
7860;@##################################
7861;@Since DD and FD opcodes are all the same apart from the address
7862;@register they use.  When a FD intruction the program runs the code
7863;@from the DD location but the address of the IY reg is passed instead
7864;@of IX
7865
7866end_loop:
7867     b end_loop
7868
7869
7870
7871