--- /dev/null
+;@ Reesy's Z80 Emulator Version 0.001\r
+\r
+;@ (c) Copyright 2004 Reesy, All rights reserved\r
+;@ DrZ80 is free for non-commercial use.\r
+\r
+;@ For commercial use, separate licencing terms must be obtained.\r
+\r
+ .data\r
+ .align 4\r
+\r
+ .global DrZ80Run\r
+ .global DrZ80Ver\r
+\r
+ .equiv INTERRUPT_MODE, 0 ;@0 = Use internal int handler, 1 = Use Mames int handler\r
+ .equiv FAST_Z80SP, 1 ;@0 = Use mem functions for stack pointer, 1 = Use direct mem pointer\r
+ .equiv UPDATE_CONTEXT, 0\r
+ .equiv DRZ80_FOR_PICODRIVE, 1\r
+\r
+.if INTERRUPT_MODE\r
+ .extern Interrupt\r
+.endif\r
+\r
+.if DRZ80_FOR_PICODRIVE\r
+ .extern YM2612Read_\r
+ .extern YM2612Read_940\r
+ .extern PicoRead8\r
+ .extern Pico\r
+ .extern z80_write\r
+.endif\r
+\r
+DrZ80Ver: .long 0x0001\r
+\r
+;@ --------------------------- Defines ----------------------------\r
+;@ Make sure that regs/pointers for z80pc to z80sp match up!\r
+\r
+ opcodes .req r3\r
+ z80_icount .req r4\r
+ cpucontext .req r5\r
+ z80pc .req r6\r
+ z80a .req r7\r
+ z80f .req r8\r
+ z80bc .req r9\r
+ z80de .req r10\r
+ z80hl .req r11\r
+ z80sp .req r12 \r
+ z80xx .req lr\r
+\r
+ .equ z80pc_pointer, 0 ;@ 0\r
+ .equ z80a_pointer, z80pc_pointer+4 ;@ 4\r
+ .equ z80f_pointer, z80a_pointer+4 ;@ 8\r
+ .equ z80bc_pointer, z80f_pointer+4 ;@ \r
+ .equ z80de_pointer, z80bc_pointer+4\r
+ .equ z80hl_pointer, z80de_pointer+4\r
+ .equ z80sp_pointer, z80hl_pointer+4\r
+ .equ z80pc_base, z80sp_pointer+4\r
+ .equ z80sp_base, z80pc_base+4\r
+ .equ z80ix, z80sp_base+4\r
+ .equ z80iy, z80ix+4\r
+ .equ z80i, z80iy+4\r
+ .equ z80a2, z80i+4\r
+ .equ z80f2, z80a2+4\r
+ .equ z80bc2, z80f2+4\r
+ .equ z80de2, z80bc2+4\r
+ .equ z80hl2, z80de2+4\r
+ .equ cycles_pointer, z80hl2+4 \r
+ .equ previouspc, cycles_pointer+4 \r
+ .equ z80irq, previouspc+4\r
+ .equ z80if, z80irq+1\r
+ .equ z80im, z80if+1\r
+ .equ z80r, z80im+1\r
+ .equ z80irqvector, z80r+1\r
+ .equ z80irqcallback, z80irqvector+4\r
+ .equ z80_write8, z80irqcallback+4\r
+ .equ z80_write16, z80_write8+4\r
+ .equ z80_in, z80_write16+4\r
+ .equ z80_out, z80_in+4\r
+ .equ z80_read8, z80_out+4\r
+ .equ z80_read16, z80_read8+4\r
+ .equ z80_rebaseSP, z80_read16+4\r
+ .equ z80_rebasePC, z80_rebaseSP+4\r
+\r
+ .equ VFlag, 0\r
+ .equ CFlag, 1\r
+ .equ ZFlag, 2\r
+ .equ SFlag, 3\r
+ .equ HFlag, 4\r
+ .equ NFlag, 5\r
+ .equ Flag3, 6\r
+ .equ Flag5, 7\r
+\r
+ .equ Z80_CFlag, 0\r
+ .equ Z80_NFlag, 1\r
+ .equ Z80_VFlag, 2\r
+ .equ Z80_Flag3, 3\r
+ .equ Z80_HFlag, 4\r
+ .equ Z80_Flag5, 5\r
+ .equ Z80_ZFlag, 6\r
+ .equ Z80_SFlag, 7\r
+\r
+ .equ Z80_IF1, 1<<0\r
+ .equ Z80_IF2, 1<<1\r
+ .equ Z80_HALT, 1<<2\r
+\r
+;@---------------------------------------\r
+\r
+.text\r
+\r
+.if DRZ80_FOR_PICODRIVE\r
+.include "port_config.s"\r
+\r
+.macro YM2612Read_and_ret8\r
+ stmfd sp!,{r3,r12,lr}\r
+.if EXTERNAL_YM2612\r
+ ldr r1,=PicoOpt\r
+ ldr r1,[r1]\r
+ tst r1,#0x200\r
+ bne 10f\r
+ bl YM2612Read_\r
+ ldmfd sp!,{r3,r12,pc}\r
+10:\r
+ bl YM2612Read_940\r
+.else\r
+ bl YM2612Read_\r
+.endif\r
+ ldmfd sp!,{r3,r12,pc}\r
+.endm\r
+\r
+.macro YM2612Read_and_ret16\r
+ stmfd sp!,{r3,r12,lr}\r
+.if EXTERNAL_YM2612\r
+ ldr r0,=PicoOpt\r
+ ldr r0,[r0]\r
+ tst r0,#0x200\r
+ bne 10f\r
+ bl YM2612Read_\r
+ orr r0,r0,r0,lsl #8\r
+ ldmfd sp!,{r3,r12,pc}\r
+10:\r
+ bl YM2612Read_940\r
+ orr r0,r0,r0,lsl #8\r
+.else\r
+ bl YM2612Read_\r
+ orr r0,r0,r0,lsl #8\r
+.endif\r
+ ldmfd sp!,{r3,r12,pc}\r
+.endm\r
+\r
+pico_z80_read8: @ addr\r
+ cmp r0,#0x2000 @ Z80 RAM\r
+ ldrlt r1,[cpucontext,#z80sp_base]\r
+ ldrltb r0,[r1,r0]\r
+ bxlt lr\r
+\r
+ cmp r0,#0x8000 @ 68k bank\r
+ blt 1f\r
+ ldr r2,=(Pico+0x22212)\r
+ ldrh r1,[r2]\r
+ bic r0,r0,#0x3f8000\r
+ orr r0,r0,r1,lsl #15\r
+ ldr r1,[r2,#-0xe] @ ROM size\r
+ cmp r0,r1\r
+ ldrlt r1,[r2,#-0x12] @ ROM\r
+ eorlt r0,r0,#1 @ our ROM is byteswapped\r
+ ldrltb r0,[r1,r0]\r
+ bxlt lr\r
+ stmfd sp!,{r3,r12,lr}\r
+ bl PicoRead8\r
+ ldmfd sp!,{r3,r12,pc}\r
+1:\r
+ mov r1,r0,lsr #13\r
+ cmp r1,#2 @ YM2612 (0x4000-0x5fff)\r
+ bne 0f\r
+ and r0,r0,#3\r
+ YM2612Read_and_ret8\r
+0:\r
+ cmp r0,#0x4000\r
+ movge r0,#0xff\r
+ bxge lr\r
+ ldr r1,[cpucontext,#z80sp_base]\r
+ bic r0,r0,#0x0fe000 @ Z80 RAM (mirror)\r
+ ldrb r0,[r1,r0]\r
+ bx lr\r
+\r
+pico_z80_read16: @ addr\r
+ cmp r0,#0x2000 @ Z80 RAM\r
+ bge 2f\r
+ ldr r1,[cpucontext,#z80sp_base]\r
+ ldrb r0,[r1,r0]!\r
+ ldrb r1,[r1,#1]\r
+ orr r0,r0,r1,lsl #8\r
+ bx lr\r
+\r
+2:\r
+ cmp r0,#0x8000 @ 68k bank\r
+ blt 1f\r
+ ldr r2,=(Pico+0x22212)\r
+ ldrh r1,[r2]\r
+ bic r0,r0,#0x1f8000\r
+ orr r0,r0,r1,lsl #15\r
+ ldr r1,[r2,#-0xe] @ ROM size\r
+ cmp r0,r1\r
+ ldr r1,[r2,#-0x12] @ ROM\r
+ tst r0,#1\r
+ eor r0,r0,#1\r
+ ldrb r0,[r1,r0]!\r
+ ldreqb r1,[r1,#-1]\r
+ ldrneb r1,[r1,#3] @ this is due to byteswapped ROM\r
+ orr r0,r0,r1,lsl #8\r
+ bx lr\r
+3:\r
+ stmfd sp!,{r3-r5,r12,lr}\r
+ mov r4,r0\r
+ bl PicoRead8\r
+ mov r5,r0\r
+ add r0,r4,#1\r
+ bl PicoRead8\r
+ orr r0,r5,r0,lsl #8\r
+ ldmfd sp!,{r3-r5,r12,pc}\r
+1:\r
+ mov r1,r0,lsr #13\r
+ cmp r1,#2 @ YM2612 (0x4000-0x5fff)\r
+ bne 0f\r
+ and r0,r0,#3\r
+ YM2612Read_and_ret16\r
+0:\r
+ cmp r0,#0x4000\r
+ movge r0,#0xff\r
+ bxge lr\r
+ ldr r1,[cpucontext,#z80sp_base]\r
+ bic r0,r0,#0x0fe000 @ Z80 RAM (mirror)\r
+ ldrb r0,[r1,r0]!\r
+ ldrb r1,[r1,#1]\r
+ orr r0,r0,r1,lsl #8\r
+ bx lr\r
+\r
+pico_z80_write8: @ data, addr\r
+ cmp r1,#0x4000\r
+ bge 1f\r
+ ldr r2,[cpucontext,#z80sp_base]\r
+ bic r1,r1,#0x0fe000 @ Z80 RAM\r
+ strb r0,[r2,r1]\r
+ bx lr\r
+1:\r
+ stmfd sp!,{r3,r12,lr}\r
+ bl z80_write\r
+ ldmfd sp!,{r3,r12,pc}\r
+\r
+pico_z80_write16: @ data, addr\r
+ cmp r1,#0x4000\r
+ bge 1f\r
+ ldr r2,[cpucontext,#z80sp_base]\r
+ bic r1,r1,#0x0fe000 @ Z80 RAM\r
+ strb r0,[r2,r1]!\r
+ mov r0,r0,lsr #8\r
+ strb r0,[r2,#1]\r
+ bx lr\r
+1:\r
+ stmfd sp!,{r3-r5,r12,lr}\r
+ mov r4,r0\r
+ mov r5,r1\r
+ bl z80_write\r
+ mov r0,r4,lsr #8\r
+ add r1,r5,#1\r
+ bl z80_write\r
+ ldmfd sp!,{r3-r5,r12,pc}\r
+\r
+ .pool\r
+.endif\r
+\r
+.macro fetch cycs\r
+ subs z80_icount,z80_icount,#\cycs\r
+.if UPDATE_CONTEXT\r
+ str z80pc,[cpucontext,#z80pc_pointer]\r
+ str z80_icount,[cpucontext,#cycles_pointer]\r
+ ldr r1,[cpucontext,#z80pc_base]\r
+ sub r2,z80pc,r1\r
+ str r2,[cpucontext,#previouspc]\r
+.endif\r
+ ldrplb r0,[z80pc],#1\r
+ ldrpl pc,[opcodes,r0, lsl #2]\r
+ bmi z80_execute_end\r
+.endm\r
+\r
+.macro eatcycles cycs\r
+ sub z80_icount,z80_icount,#\cycs\r
+.if UPDATE_CONTEXT\r
+ str z80_icount,[cpucontext,#cycles_pointer]\r
+.endif\r
+.endm\r
+\r
+.macro readmem8\r
+.if UPDATE_CONTEXT\r
+ str z80pc,[cpucontext,#z80pc_pointer]\r
+.endif\r
+.if DRZ80_FOR_PICODRIVE\r
+ bl pico_z80_read8\r
+.else\r
+ stmfd sp!,{r3,r12}\r
+ mov lr,pc\r
+ ldr pc,[cpucontext,#z80_read8] ;@ r0 = addr - data returned in r0\r
+ ldmfd sp!,{r3,r12}\r
+.endif\r
+.endm\r
+\r
+.macro readmem8HL\r
+ mov r0,z80hl, lsr #16\r
+ readmem8\r
+.endm\r
+\r
+.macro readmem16\r
+.if UPDATE_CONTEXT\r
+ str z80pc,[cpucontext,#z80pc_pointer]\r
+.endif\r
+.if DRZ80_FOR_PICODRIVE\r
+ bl pico_z80_read16\r
+.else\r
+ stmfd sp!,{r3,r12}\r
+ mov lr,pc\r
+ ldr pc,[cpucontext,#z80_read16]\r
+ ldmfd sp!,{r3,r12}\r
+.endif\r
+.endm\r
+\r
+.macro writemem8\r
+.if UPDATE_CONTEXT\r
+ str z80pc,[cpucontext,#z80pc_pointer]\r
+.endif\r
+.if DRZ80_FOR_PICODRIVE\r
+ bl pico_z80_write8\r
+.else\r
+ stmfd sp!,{r3,r12}\r
+ mov lr,pc\r
+ ldr pc,[cpucontext,#z80_write8] ;@ r0=data r1=addr\r
+ ldmfd sp!,{r3,r12}\r
+.endif\r
+.endm\r
+\r
+.macro writemem8DE\r
+ mov r1,z80de, lsr #16\r
+ writemem8\r
+.endm\r
+\r
+.macro writemem8HL\r
+ mov r1,z80hl, lsr #16\r
+ writemem8\r
+.endm\r
+\r
+.macro writemem16\r
+.if UPDATE_CONTEXT\r
+ str z80pc,[cpucontext,#z80pc_pointer]\r
+.endif\r
+.if DRZ80_FOR_PICODRIVE\r
+ bl pico_z80_write16\r
+.else\r
+ stmfd sp!,{r3,r12}\r
+ mov lr,pc\r
+ ldr pc,[cpucontext,#z80_write16] ;@ r0=data r1=addr\r
+ ldmfd sp!,{r3,r12}\r
+.endif\r
+.endm\r
+\r
+.macro copymem8HL_DE\r
+.if UPDATE_CONTEXT\r
+ str z80pc,[cpucontext,#z80pc_pointer]\r
+.endif\r
+ mov r0,z80hl, lsr #16\r
+.if DRZ80_FOR_PICODRIVE\r
+ bl pico_z80_read8\r
+.else\r
+ stmfd sp!,{r3,r12}\r
+ mov lr,pc\r
+ ldr pc,[cpucontext,#z80_read8] ;@ r0 = addr - data returned in r0\r
+.endif\r
+.if UPDATE_CONTEXT\r
+ str z80pc,[cpucontext,#z80pc_pointer]\r
+.endif\r
+ mov r1,z80de, lsr #16\r
+.if DRZ80_FOR_PICODRIVE\r
+ bl pico_z80_write8\r
+.else\r
+ mov lr,pc\r
+ ldr pc,[cpucontext,#z80_write8] ;@ r0=data r1=addr\r
+ ldmfd sp!,{r3,r12}\r
+.endif\r
+.endm\r
+;@---------------------------------------\r
+\r
+.macro rebasepc\r
+.if UPDATE_CONTEXT\r
+ str z80pc,[cpucontext,#z80pc_pointer]\r
+.endif\r
+.if DRZ80_FOR_PICODRIVE\r
+ bic r0,r0,#0xfe000\r
+ ldr r1,[cpucontext,#z80pc_base]\r
+ add z80pc,r1,r0\r
+.else\r
+ stmfd sp!,{r3,r12}\r
+ mov lr,pc\r
+ ldr pc,[cpucontext,#z80_rebasePC] ;@ r0=new pc - external function sets z80pc_base and returns new z80pc in r0\r
+ ldmfd sp!,{r3,r12}\r
+ mov z80pc,r0\r
+.endif\r
+.endm\r
+\r
+.macro rebasesp\r
+.if UPDATE_CONTEXT\r
+ str z80pc,[cpucontext,#z80pc_pointer]\r
+.endif\r
+.if DRZ80_FOR_PICODRIVE\r
+ bic r0,r0,#0xfe000\r
+ ldr r1,[cpucontext,#z80sp_base]\r
+ add r0,r1,r0\r
+.else\r
+ stmfd sp!,{r3,r12}\r
+ mov lr,pc\r
+ ldr pc,[cpucontext,#z80_rebaseSP] ;@ external function must rebase sp\r
+ ldmfd sp!,{r3,r12}\r
+.endif\r
+.endm\r
+;@----------------------------------------------------------------------------\r
+\r
+.macro opADC\r
+ movs z80f,z80f,lsr#2 ;@ get C\r
+ subcs r0,r0,#0x100\r
+ eor z80f,r0,z80a,lsr#24 ;@ prepare for check of half carry\r
+ adcs z80a,z80a,r0,ror#8\r
+ mrs r0,cpsr ;@ S,Z,V&C\r
+ eor z80f,z80f,z80a,lsr#24\r
+ and z80f,z80f,#1<<HFlag ;@ H, correct\r
+ orr z80f,z80f,r0,lsr#28\r
+.endm\r
+\r
+.macro opADCA\r
+ movs z80f,z80f,lsr#2 ;@ get C\r
+ orrcs z80a,z80a,#0x00800000\r
+ adds z80a,z80a,z80a\r
+ mrs z80f,cpsr ;@ S,Z,V&C\r
+ mov z80f,z80f,lsr#28\r
+ tst z80a,#0x10000000 ;@ H, correct\r
+ orrne z80f,z80f,#1<<HFlag\r
+ fetch 4\r
+.endm\r
+\r
+.macro opADCH reg\r
+ mov r0,\reg,lsr#24\r
+ opADC\r
+ fetch 4\r
+.endm\r
+\r
+.macro opADCL reg\r
+ movs z80f,z80f,lsr#2 ;@ get C\r
+ adc r0,\reg,\reg,lsr#15\r
+ orrcs z80a,z80a,#0x00800000\r
+ mov r1,z80a,lsl#4 ;@ Prepare for check of half carry\r
+ adds z80a,z80a,r0,lsl#23\r
+ mrs z80f,cpsr ;@ S,Z,V&C\r
+ mov z80f,z80f,lsr#28\r
+ cmn r1,r0,lsl#27\r
+ orrcs z80f,z80f,#1<<HFlag ;@ H, correct\r
+ fetch 4\r
+.endm\r
+\r
+.macro opADCb\r
+ opADC\r
+.endm\r
+;@---------------------------------------\r
+\r
+.macro opADD reg shift\r
+ mov r1,z80a,lsl#4 ;@ Prepare for check of half carry\r
+ adds z80a,z80a,\reg,lsl#\shift\r
+ mrs z80f,cpsr ;@ S,Z,V&C\r
+ mov z80f,z80f,lsr#28\r
+ cmn r1,\reg,lsl#\shift+4\r
+ orrcs z80f,z80f,#1<<HFlag\r
+.endm\r
+\r
+.macro opADDA\r
+ adds z80a,z80a,z80a\r
+ mrs z80f,cpsr ;@ S,Z,V&C\r
+ mov z80f,z80f,lsr#28\r
+ tst z80a,#0x10000000 ;@ H, correct\r
+ orrne z80f,z80f,#1<<HFlag\r
+ fetch 4\r
+.endm\r
+\r
+.macro opADDH reg\r
+ and r0,\reg,#0xFF000000\r
+ opADD r0 0\r
+ fetch 4\r
+.endm\r
+\r
+.macro opADDL reg\r
+ opADD \reg 8\r
+ fetch 4\r
+.endm\r
+\r
+.macro opADDb \r
+ opADD r0 24\r
+.endm\r
+;@---------------------------------------\r
+\r
+.macro opADC16 reg\r
+ movs z80f,z80f,lsr#2 ;@ get C\r
+ adc r0,z80a,\reg,lsr#15\r
+ orrcs z80hl,z80hl,#0x00008000\r
+ mov r1,z80hl,lsl#4\r
+ adds z80hl,z80hl,r0,lsl#15\r
+ mrs z80f,cpsr ;@ S, Z, V & C\r
+ mov z80f,z80f,lsr#28\r
+ cmn r1,r0,lsl#19\r
+ orrcs z80f,z80f,#1<<HFlag\r
+ fetch 15\r
+.endm\r
+\r
+.macro opADC16HL\r
+ movs z80f,z80f,lsr#2 ;@ get C\r
+ orrcs z80hl,z80hl,#0x00008000\r
+ adds z80hl,z80hl,z80hl\r
+ mrs z80f,cpsr ;@ S, Z, V & C\r
+ mov z80f,z80f,lsr#28\r
+ tst z80hl,#0x10000000 ;@ H, correct.\r
+ orrne z80f,z80f,#1<<HFlag\r
+ fetch 15\r
+.endm\r
+\r
+.macro opADD16 reg1 reg2\r
+ mov r1,\reg1,lsl#4 ;@ Prepare for check of half carry\r
+ adds \reg1,\reg1,\reg2\r
+ bic z80f,z80f,#(1<<CFlag)|(1<<HFlag)|(1<<NFlag)\r
+ orrcs z80f,z80f,#1<<CFlag\r
+ cmn r1,\reg2,lsl#4\r
+ orrcs z80f,z80f,#1<<HFlag\r
+.endm\r
+\r
+.macro opADD16s reg1 reg2 shift\r
+ mov r1,\reg1,lsl#4 ;@ Prepare for check of half carry\r
+ adds \reg1,\reg1,\reg2,lsl#\shift\r
+ bic z80f,z80f,#(1<<CFlag)|(1<<HFlag)|(1<<NFlag)\r
+ orrcs z80f,z80f,#1<<CFlag\r
+ cmn r1,\reg2,lsl#4+\shift\r
+ orrcs z80f,z80f,#1<<HFlag\r
+.endm\r
+\r
+.macro opADD16_2 reg\r
+ adds \reg,\reg,\reg\r
+ bic z80f,z80f,#(1<<CFlag)|(1<<HFlag)|(1<<NFlag)\r
+ orrcs z80f,z80f,#1<<CFlag\r
+ tst \reg,#0x10000000 ;@ H, correct.\r
+ orrne z80f,z80f,#1<<HFlag\r
+.endm\r
+;@---------------------------------------\r
+\r
+.macro opAND reg shift\r
+ and z80a,z80a,\reg,lsl#\shift\r
+ sub r0,opcodes,#0x100\r
+ ldrb z80f,[r0,z80a, lsr #24]\r
+ orr z80f,z80f,#1<<HFlag\r
+.endm\r
+\r
+.macro opANDA\r
+ sub r0,opcodes,#0x100\r
+ ldrb z80f,[r0,z80a, lsr #24]\r
+ orr z80f,z80f,#1<<HFlag\r
+ fetch 4\r
+.endm\r
+\r
+.macro opANDH reg\r
+ opAND \reg 0\r
+ fetch 4\r
+.endm\r
+\r
+.macro opANDL reg\r
+ opAND \reg 8\r
+ fetch 4\r
+.endm\r
+\r
+.macro opANDb\r
+ opAND r0 24\r
+.endm\r
+;@---------------------------------------\r
+\r
+.macro opBITH reg bit\r
+ and z80f,z80f,#1<<CFlag\r
+ tst \reg,#1<<(24+\bit)\r
+ orreq z80f,z80f,#(1<<HFlag)|(1<<ZFlag)|(1<<VFlag)\r
+ orrne z80f,z80f,#(1<<HFlag)\r
+ fetch 8\r
+.endm\r
+\r
+.macro opBIT7H reg\r
+ and z80f,z80f,#1<<CFlag\r
+ tst \reg,#1<<(24+7)\r
+ orreq z80f,z80f,#(1<<HFlag)|(1<<ZFlag)|(1<<VFlag)\r
+ orrne z80f,z80f,#(1<<HFlag)|(1<<SFlag)\r
+ fetch 8\r
+.endm\r
+\r
+.macro opBITL reg bit\r
+ and z80f,z80f,#1<<CFlag\r
+ tst \reg,#1<<(16+\bit)\r
+ orreq z80f,z80f,#(1<<HFlag)|(1<<ZFlag)|(1<<VFlag)\r
+ orrne z80f,z80f,#(1<<HFlag)\r
+ fetch 8\r
+.endm\r
+\r
+.macro opBIT7L reg\r
+ and z80f,z80f,#1<<CFlag\r
+ tst \reg,#1<<(16+7)\r
+ orreq z80f,z80f,#(1<<HFlag)|(1<<ZFlag)|(1<<VFlag)\r
+ orrne z80f,z80f,#(1<<HFlag)|(1<<SFlag)\r
+ fetch 8\r
+.endm\r
+\r
+.macro opBITb bit\r
+ and z80f,z80f,#1<<CFlag\r
+ tst r0,#1<<\bit\r
+ orreq z80f,z80f,#(1<<HFlag)|(1<<ZFlag)|(1<<VFlag)\r
+ orrne z80f,z80f,#(1<<HFlag)\r
+.endm\r
+\r
+.macro opBIT7b\r
+ and z80f,z80f,#1<<CFlag\r
+ tst r0,#1<<7\r
+ orreq z80f,z80f,#(1<<HFlag)|(1<<ZFlag)|(1<<VFlag)\r
+ orrne z80f,z80f,#(1<<HFlag)|(1<<SFlag)\r
+.endm\r
+;@---------------------------------------\r
+\r
+.macro opCP reg shift\r
+ mov r1,z80a,lsl#4 ;@ prepare for check of half carry\r
+ cmp z80a,\reg,lsl#\shift\r
+ mrs z80f,cpsr\r
+ mov z80f,z80f,lsr#28 ;@ S,Z,V&C\r
+ eor z80f,z80f,#(1<<CFlag)|(1<<NFlag) ;@ invert C and set n\r
+ cmp r1,\reg,lsl#\shift+4\r
+ orrcc z80f,z80f,#1<<HFlag\r
+.endm\r
+\r
+.macro opCPA\r
+ mov z80f,#(1<<ZFlag)|(1<<NFlag) ;@ set Z & n\r
+ fetch 4\r
+.endm\r
+\r
+.macro opCPH reg\r
+ and r0,\reg,#0xFF000000\r
+ opCP r0 0\r
+ fetch 4\r
+.endm\r
+\r
+.macro opCPL reg\r
+ opCP \reg 8\r
+ fetch 4\r
+.endm\r
+\r
+.macro opCPb\r
+ opCP r0 24\r
+.endm\r
+;@---------------------------------------\r
+\r
+.macro opDEC8 reg ;@for A and memory\r
+ and z80f,z80f,#1<<CFlag ;@save carry\r
+ orr z80f,z80f,#1<<NFlag ;@set n\r
+ tst \reg,#0x0f000000\r
+ orreq z80f,z80f,#1<<HFlag\r
+ subs \reg,\reg,#0x01000000\r
+ orrmi z80f,z80f,#1<<SFlag\r
+ orrvs z80f,z80f,#1<<VFlag\r
+ orreq z80f,z80f,#1<<ZFlag\r
+.endm\r
+\r
+.macro opDEC8H reg ;@for B, D & H\r
+ and z80f,z80f,#1<<CFlag ;@save carry\r
+ orr z80f,z80f,#1<<NFlag ;@set n\r
+ tst \reg,#0x0f000000\r
+ orreq z80f,z80f,#1<<HFlag\r
+ subs \reg,\reg,#0x01000000\r
+ orrmi z80f,z80f,#1<<SFlag\r
+ orrvs z80f,z80f,#1<<VFlag\r
+ tst \reg,#0xff000000 ;@Z\r
+ orreq z80f,z80f,#1<<ZFlag\r
+.endm\r
+\r
+.macro opDEC8L reg ;@for C, E & L\r
+ mov \reg,\reg,ror#24\r
+ opDEC8H \reg\r
+ mov \reg,\reg,ror#8\r
+.endm\r
+\r
+.macro opDEC8b ;@for memory\r
+ mov r0,r0,lsl#24\r
+ opDEC8 r0\r
+ mov r0,r0,lsr#24\r
+.endm\r
+;@---------------------------------------\r
+\r
+.macro opIN\r
+ stmfd sp!,{r3,r12}\r
+ mov lr,pc\r
+ ldr pc,[cpucontext,#z80_in] ;@ r0=port - data returned in r0\r
+ ldmfd sp!,{r3,r12}\r
+.endm\r
+\r
+.macro opIN_C\r
+ mov r0,z80bc, lsr #16\r
+ opIN\r
+.endm\r
+;@---------------------------------------\r
+\r
+.macro opINC8 reg ;@for A and memory\r
+ and z80f,z80f,#1<<CFlag ;@save carry, clear n\r
+ adds \reg,\reg,#0x01000000\r
+ orrmi z80f,z80f,#1<<SFlag\r
+ orrvs z80f,z80f,#1<<VFlag\r
+ orrcs z80f,z80f,#1<<ZFlag ;@cs when going from 0xFF to 0x00\r
+ tst \reg,#0x0f000000\r
+ orreq z80f,z80f,#1<<HFlag\r
+.endm\r
+\r
+.macro opINC8H reg ;@for B, D & H\r
+ opINC8 \reg\r
+.endm\r
+\r
+.macro opINC8L reg ;@for C, E & L\r
+ mov \reg,\reg,ror#24\r
+ opINC8 \reg\r
+ mov \reg,\reg,ror#8\r
+.endm\r
+\r
+.macro opINC8b ;@for memory\r
+ mov r0,r0,lsl#24\r
+ opINC8 r0\r
+ mov r0,r0,lsr#24\r
+.endm\r
+;@---------------------------------------\r
+\r
+.macro opOR reg shift\r
+ orr z80a,z80a,\reg,lsl#\shift\r
+ sub r0,opcodes,#0x100\r
+ ldrb z80f,[r0,z80a, lsr #24]\r
+.endm\r
+\r
+.macro opORA\r
+ sub r0,opcodes,#0x100\r
+ ldrb z80f,[r0,z80a, lsr #24]\r
+ fetch 4\r
+.endm\r
+\r
+.macro opORH reg\r
+ and r0,\reg,#0xFF000000\r
+ opOR r0 0\r
+ fetch 4\r
+.endm\r
+\r
+.macro opORL reg\r
+ opOR \reg 8\r
+ fetch 4\r
+.endm\r
+\r
+.macro opORb\r
+ opOR r0 24\r
+.endm\r
+;@---------------------------------------\r
+\r
+.macro opOUT\r
+ stmfd sp!,{r3,r12}\r
+ mov lr,pc\r
+ ldr pc,[cpucontext,#z80_out] ;@ r0=port r1=data\r
+ ldmfd sp!,{r3,r12}\r
+.endm\r
+\r
+.macro opOUT_C\r
+ mov r0,z80bc, lsr #16\r
+ opOUT\r
+.endm\r
+;@---------------------------------------\r
+\r
+.macro opPOP\r
+.if FAST_Z80SP\r
+.if DRZ80_FOR_PICODRIVE\r
+ @ notaz: try to protect against stack overflows, which tend to happen in Picodrive because of poor timing\r
+ ldr r2,[cpucontext,#z80sp_base]\r
+ ldrb r0,[z80sp],#1\r
+ add r2,r2,#0x2000\r
+ cmp z80sp,r2\r
+@ subge z80sp,z80sp,#0x2000 @ unstable?\r
+ ldrb r1,[z80sp],#1\r
+ cmp z80sp,r2\r
+@ subge z80sp,z80sp,#0x2000\r
+ orr r0,r0,r1, lsl #8\r
+.else\r
+ ldrb r0,[z80sp],#1\r
+ ldrb r1,[z80sp],#1\r
+ orr r0,r0,r1, lsl #8\r
+.endif\r
+.else\r
+ mov r0,z80sp\r
+ readmem16\r
+ add z80sp,z80sp,#2\r
+.endif\r
+.endm\r
+\r
+.macro opPOPreg reg\r
+ opPOP\r
+ mov \reg,r0, lsl #16\r
+ fetch 10\r
+.endm\r
+;@---------------------------------------\r
+\r
+.macro opPUSHareg reg @ reg > r1\r
+.if FAST_Z80SP\r
+.if DRZ80_FOR_PICODRIVE\r
+ @ notaz: try to protect against stack overflows, which tend to happen in Picodrive because of poor timing\r
+ ldr r0,[cpucontext,#z80sp_base]\r
+ cmp z80sp,r0\r
+ addle z80sp,z80sp,#0x2000\r
+ mov r1,\reg, lsr #8\r
+ strb r1,[z80sp,#-1]!\r
+ cmp z80sp,r0\r
+ addle z80sp,z80sp,#0x2000\r
+ strb \reg,[z80sp,#-1]!\r
+.else\r
+ mov r1,\reg, lsr #8\r
+ strb r1,[z80sp,#-1]!\r
+ strb \reg,[z80sp,#-1]!\r
+.endif\r
+.else\r
+ mov r0,\reg\r
+ sub z80sp,z80sp,#2\r
+ mov r1,z80sp\r
+ writemem16\r
+.endif\r
+.endm\r
+\r
+.macro opPUSHreg reg\r
+.if FAST_Z80SP\r
+.if DRZ80_FOR_PICODRIVE\r
+ ldr r0,[cpucontext,#z80sp_base]\r
+ cmp z80sp,r0\r
+ addle z80sp,z80sp,#0x2000\r
+ mov r1,\reg, lsr #24\r
+ strb r1,[z80sp,#-1]!\r
+ cmp z80sp,r0\r
+ addle z80sp,z80sp,#0x2000\r
+ mov r1,\reg, lsr #16\r
+ strb r1,[z80sp,#-1]!\r
+.else\r
+ mov r1,\reg, lsr #24\r
+ strb r1,[z80sp,#-1]!\r
+ mov r1,\reg, lsr #16\r
+ strb r1,[z80sp,#-1]!\r
+.endif\r
+.else\r
+ mov r0,\reg,lsr #16\r
+ sub z80sp,z80sp,#2\r
+ mov r1,z80sp\r
+ writemem16\r
+.endif\r
+.endm\r
+;@---------------------------------------\r
+\r
+.macro opRESmemHL bit\r
+.if DRZ80_FOR_PICODRIVE\r
+ mov r0,z80hl, lsr #16\r
+ bl pico_z80_read8\r
+ bic r0,r0,#1<<\bit\r
+ mov r1,z80hl, lsr #16\r
+ bl pico_z80_write8\r
+.else\r
+ mov r0,z80hl, lsr #16\r
+ stmfd sp!,{r3,r12}\r
+ mov lr,pc\r
+ ldr pc,[cpucontext,#z80_read8] ;@ r0 = addr - data returned in r0\r
+ bic r0,r0,#1<<\bit\r
+ mov r1,z80hl, lsr #16\r
+ mov lr,pc\r
+ ldr pc,[cpucontext,#z80_write8] ;@ r0=data r1=addr\r
+ ldmfd sp!,{r3,r12}\r
+.endif\r
+ fetch 15\r
+.endm\r
+;@---------------------------------------\r
+\r
+.macro opRESmem bit\r
+.if DRZ80_FOR_PICODRIVE\r
+ stmfd sp!,{r0} ;@ save addr as well\r
+ bl pico_z80_read8\r
+ bic r0,r0,#1<<\bit\r
+ ldmfd sp!,{r1} ;@ restore addr into r1\r
+ bl pico_z80_write8\r
+.else\r
+ stmfd sp!,{r3,r12}\r
+ stmfd sp!,{r0} ;@ save addr as well\r
+ mov lr,pc\r
+ ldr pc,[cpucontext,#z80_read8] ;@ r0=addr - data returned in r0\r
+ bic r0,r0,#1<<\bit\r
+ ldmfd sp!,{r1} ;@ restore addr into r1\r
+ mov lr,pc\r
+ ldr pc,[cpucontext,#z80_write8] ;@ r0=data r1=addr\r
+ ldmfd sp!,{r3,r12}\r
+.endif\r
+ fetch 23\r
+.endm\r
+;@---------------------------------------\r
+\r
+.macro opRL reg1 reg2 shift\r
+ movs \reg1,\reg2,lsl \shift\r
+ tst z80f,#1<<CFlag ;@doesn't affect ARM carry, as long as the imidiate value is < 0x100. Watch out!\r
+ orrne \reg1,\reg1,#0x01000000\r
+;@ and r2,z80f,#1<<CFlag\r
+;@ orr $x,$x,r2,lsl#23\r
+ sub r1,opcodes,#0x100\r
+ ldrb z80f,[r1,\reg1,lsr#24] ;@get PZS\r
+ orrcs z80f,z80f,#1<<CFlag\r
+.endm\r
+\r
+.macro opRLA\r
+ opRL z80a, z80a, #1\r
+ fetch 8\r
+.endm\r
+\r
+.macro opRLH reg\r
+ and r0,\reg,#0xFF000000 ;@mask high to r0\r
+ adds \reg,\reg,r0\r
+ tst z80f,#1<<CFlag ;@doesn't affect ARM carry, as long as the imidiate value is < 0x100. Watch out!\r
+ orrne \reg,\reg,#0x01000000\r
+ sub r1,opcodes,#0x100\r
+ ldrb z80f,[r1,\reg,lsr#24] ;@get PZS\r
+ orrcs z80f,z80f,#1<<CFlag\r
+ fetch 8\r
+.endm\r
+\r
+.macro opRLL reg\r
+ opRL r0, \reg, #9\r
+ and \reg,\reg,#0xFF000000 ;@mask out high\r
+ orr \reg,\reg,r0,lsr#8\r
+ fetch 8\r
+.endm\r
+\r
+.macro opRLb\r
+ opRL r0, r0, #25\r
+ mov r0,r0,lsr#24\r
+.endm\r
+;@---------------------------------------\r
+\r
+.macro opRLC reg1 reg2 shift\r
+ movs \reg1,\reg2,lsl#\shift\r
+ orrcs \reg1,\reg1,#0x01000000\r
+ sub r1,opcodes,#0x100\r
+ ldrb z80f,[r1,\reg1,lsr#24]\r
+ orrcs z80f,z80f,#1<<CFlag\r
+.endm\r
+\r
+.macro opRLCA\r
+ opRLC z80a, z80a, 1\r
+ fetch 8\r
+.endm\r
+\r
+.macro opRLCH reg\r
+ and r0,\reg,#0xFF000000 ;@mask high to r0\r
+ adds \reg,\reg,r0\r
+ orrcs \reg,\reg,#0x01000000\r
+ sub r1,opcodes,#0x100\r
+ ldrb z80f,[r1,\reg,lsr#24]\r
+ orrcs z80f,z80f,#1<<CFlag\r
+ fetch 8\r
+.endm\r
+\r
+.macro opRLCL reg\r
+ opRLC r0, \reg, 9\r
+ and \reg,\reg,#0xFF000000 ;@mask out high\r
+ orr \reg,\reg,r0,lsr#8\r
+ fetch 8\r
+.endm\r
+\r
+.macro opRLCb\r
+ opRLC r0, r0, 25\r
+ mov r0,r0,lsr#24\r
+.endm\r
+;@---------------------------------------\r
+\r
+.macro opRR reg1 reg2 shift\r
+ movs \reg1,\reg2,lsr#\shift\r
+ tst z80f,#1<<CFlag ;@doesn't affect ARM carry, as long as the imidiate value is < 0x100. Watch out!\r
+ orrne \reg1,\reg1,#0x00000080\r
+;@ and r2,z80_f,#PSR_C\r
+;@ orr \reg1,\reg1,r2,lsl#6\r
+ sub r1,opcodes,#0x100\r
+ ldrb z80f,[r1,\reg1]\r
+ orrcs z80f,z80f,#1<<CFlag\r
+.endm\r
+\r
+.macro opRRA\r
+ orr z80a,z80a,z80f,lsr#1 ;@get C\r
+ movs z80a,z80a,ror#25\r
+ mov z80a,z80a,lsl#24\r
+ sub r1,opcodes,#0x100\r
+ ldrb z80f,[r1,z80a,lsr#24]\r
+ orrcs z80f,z80f,#1<<CFlag\r
+ fetch 8\r
+.endm\r
+\r
+.macro opRRH reg\r
+ orr r0,\reg,z80f,lsr#1 ;@get C\r
+ movs r0,r0,ror#25\r
+ and \reg,\reg,#0x00FF0000 ;@mask out low\r
+ orr \reg,\reg,r0,lsl#24\r
+ sub r1,opcodes,#0x100\r
+ ldrb z80f,[r1,\reg,lsr#24]\r
+ orrcs z80f,z80f,#1<<CFlag\r
+ fetch 8\r
+.endm\r
+\r
+.macro opRRL reg\r
+ and r0,\reg,#0x00FF0000 ;@mask out low to r0\r
+ opRR r0 r0 17\r
+ and \reg,\reg,#0xFF000000 ;@mask out high\r
+ orr \reg,\reg,r0,lsl#16\r
+ fetch 8\r
+.endm\r
+\r
+.macro opRRb\r
+ opRR r0 r0 1\r
+.endm\r
+;@---------------------------------------\r
+\r
+.macro opRRC reg1 reg2 shift\r
+ movs \reg1,\reg2,lsr#\shift\r
+ orrcs \reg1,\reg1,#0x00000080\r
+ sub r1,opcodes,#0x100\r
+ ldrb z80f,[r1,\reg1]\r
+ orrcs z80f,z80f,#1<<CFlag\r
+.endm\r
+\r
+.macro opRRCA\r
+ opRRC z80a, z80a, 25\r
+ mov z80a,z80a,lsl#24\r
+ fetch 8\r
+.endm\r
+\r
+.macro opRRCH reg\r
+ opRRC r0, \reg, 25\r
+ and \reg,\reg,#0x00FF0000 ;@mask out low\r
+ orr \reg,\reg,r0,lsl#24\r
+ fetch 8\r
+.endm\r
+\r
+.macro opRRCL reg\r
+ and r0,\reg,#0x00FF0000 ;@mask low to r0\r
+ opRRC r0, r0, 17\r
+ and \reg,\reg,#0xFF000000 ;@mask out high\r
+ orr \reg,\reg,r0,lsl#16\r
+ fetch 8\r
+.endm\r
+\r
+.macro opRRCb\r
+ opRRC r0, r0, 1\r
+.endm\r
+;@---------------------------------------\r
+\r
+.macro opRST addr\r
+ ldr r0,[cpucontext,#z80pc_base]\r
+ sub r2,z80pc,r0\r
+ opPUSHareg r2\r
+ mov r0,#\addr\r
+ rebasepc\r
+ fetch 11\r
+.endm\r
+;@---------------------------------------\r
+\r
+.macro opSBC\r
+ eor z80f,z80f,#1<<CFlag ;@ invert C\r
+ movs z80f,z80f,lsr#2 ;@ get C\r
+ subcc r0,r0,#0x100\r
+ eor z80f,r0,z80a,lsr#24 ;@ prepare for check of H\r
+ sbcs z80a,z80a,r0,ror#8\r
+ mrs r0,cpsr\r
+ eor z80f,z80f,z80a,lsr#24\r
+ and z80f,z80f,#1<<HFlag ;@ H, correct\r
+ orr z80f,z80f,r0,lsr#28 ;@ S,Z,V&C\r
+ eor z80f,z80f,#(1<<CFlag)|(1<<NFlag) ;@ invert C and set n.\r
+.endm\r
+\r
+.macro opSBCA\r
+ movs z80f,z80f,lsr#2 ;@ get C\r
+ movcc z80a,#0x00000000\r
+ movcs z80a,#0xFF000000\r
+ movcc z80f,#(1<<NFlag)|(1<<ZFlag)\r
+ movcs z80f,#(1<<NFlag)|(1<<SFlag)|(1<<CFlag)|(1<<HFlag)\r
+ fetch 4\r
+.endm\r
+\r
+.macro opSBCH reg\r
+ mov r0,\reg,lsr#24\r
+ opSBC\r
+ fetch 4\r
+.endm\r
+\r
+.macro opSBCL reg\r
+ mov r0,\reg,lsl#8\r
+ eor z80f,z80f,#1<<CFlag ;@ invert C\r
+ movs z80f,z80f,lsr#2 ;@ get C\r
+ sbccc r0,r0,#0xFF000000\r
+ mov r1,z80a,lsl#4 ;@ prepare for check of H\r
+ sbcs z80a,z80a,r0\r
+ mrs z80f,cpsr\r
+ mov z80f,z80f,lsr#28 ;@ S,Z,V&C\r
+ eor z80f,z80f,#(1<<CFlag)|(1<<NFlag) ;@ invert C and set n.\r
+ cmp r1,r0,lsl#4\r
+ orrcc z80f,z80f,#1<<HFlag ;@ H, correct\r
+ fetch 4\r
+.endm\r
+\r
+.macro opSBCb\r
+ opSBC\r
+.endm\r
+;@---------------------------------------\r
+\r
+.macro opSBC16 reg\r
+ eor z80f,z80f,#1<<CFlag ;@ invert C\r
+ movs z80f,z80f,lsr#2 ;@ get C\r
+ sbc r1,r1,r1 ;@ set r1 to -1 or 0.\r
+ orr r0,\reg,r1,lsr#16\r
+ mov r1,z80hl,lsl#4 ;@ prepare for check of H\r
+ sbcs z80hl,z80hl,r0\r
+ mrs z80f,cpsr\r
+ mov z80f,z80f,lsr#28 ;@ S,Z,V&C\r
+ eor z80f,z80f,#(1<<CFlag)|(1<<NFlag) ;@ invert C and set n.\r
+ cmp r1,r0,lsl#4\r
+ orrcc z80f,z80f,#1<<HFlag ;@ H, correct\r
+ fetch 15\r
+.endm\r
+\r
+.macro opSBC16HL\r
+ movs z80f,z80f,lsr#2 ;@ get C\r
+ mov z80hl,#0x00000000\r
+ subcs z80hl,z80hl,#0x00010000\r
+ movcc z80f,#(1<<NFlag)|(1<<ZFlag)\r
+ movcs z80f,#(1<<NFlag)|(1<<SFlag)|(1<<CFlag)|(1<<HFlag)\r
+ fetch 15\r
+.endm\r
+;@---------------------------------------\r
+\r
+.macro opSETmemHL bit\r
+.if DRZ80_FOR_PICODRIVE\r
+ mov r0,z80hl, lsr #16\r
+ bl pico_z80_read8\r
+ orr r0,r0,#1<<\bit\r
+ mov r1,z80hl, lsr #16\r
+ bl pico_z80_write8\r
+.else\r
+ mov r0,z80hl, lsr #16\r
+ stmfd sp!,{r3,r12}\r
+ mov lr,pc\r
+ ldr pc,[cpucontext,#z80_read8] ;@ r0 = addr - data returned in r0\r
+ orr r0,r0,#1<<\bit\r
+ mov r1,z80hl, lsr #16\r
+ mov lr,pc\r
+ ldr pc,[cpucontext,#z80_write8] ;@ r0=data r1=addr\r
+ ldmfd sp!,{r3,r12}\r
+.endif\r
+ fetch 15\r
+.endm\r
+;@---------------------------------------\r
+\r
+.macro opSETmem bit\r
+.if DRZ80_FOR_PICODRIVE\r
+ stmfd sp!,{r0} ;@ save addr as well\r
+ bl pico_z80_read8\r
+ orr r0,r0,#1<<\bit\r
+ ldmfd sp!,{r1} ;@ restore addr into r1\r
+ bl pico_z80_write8\r
+.else\r
+ stmfd sp!,{r3,r12}\r
+ stmfd sp!,{r0} ;@ save addr as well\r
+ mov lr,pc\r
+ ldr pc,[cpucontext,#z80_read8] ;@ r0=addr - data returned in r0\r
+ orr r0,r0,#1<<\bit\r
+ ldmfd sp!,{r1} ;@ restore addr into r1\r
+ mov lr,pc\r
+ ldr pc,[cpucontext,#z80_write8] ;@ r0=data r1=addr\r
+ ldmfd sp!,{r3,r12}\r
+.endif\r
+ fetch 23\r
+.endm\r
+;@---------------------------------------\r
+\r
+.macro opSLA reg1 reg2 shift\r
+ movs \reg1,\reg2,lsl#\shift\r
+ sub r1,opcodes,#0x100\r
+ ldrb z80f,[r1,\reg1,lsr#24]\r
+ orrcs z80f,z80f,#1<<CFlag\r
+.endm\r
+\r
+.macro opSLAA\r
+ opSLA z80a, z80a, 1\r
+ fetch 8\r
+.endm\r
+\r
+.macro opSLAH reg\r
+ and r0,\reg,#0xFF000000 ;@mask high to r0\r
+ adds \reg,\reg,r0\r
+ sub r1,opcodes,#0x100\r
+ ldrb z80f,[r1,\reg,lsr#24]\r
+ orrcs z80f,z80f,#1<<CFlag\r
+ fetch 8\r
+.endm\r
+\r
+.macro opSLAL reg\r
+ opSLA r0, \reg, 9\r
+ and \reg,\reg,#0xFF000000 ;@mask out high\r
+ orr \reg,\reg,r0,lsr#8\r
+ fetch 8\r
+.endm\r
+\r
+.macro opSLAb\r
+ opSLA r0, r0, 25\r
+ mov r0,r0,lsr#24\r
+.endm\r
+;@---------------------------------------\r
+\r
+.macro opSLL reg1 reg2 shift\r
+ movs \reg1,\reg2,lsl#\shift\r
+ orr \reg1,\reg1,#0x01000000\r
+ sub r1,opcodes,#0x100\r
+ ldrb z80f,[r1,\reg1,lsr#24]\r
+ orrcs z80f,z80f,#1<<CFlag\r
+.endm\r
+\r
+.macro opSLLA\r
+ opSLL z80a, z80a, 1\r
+ fetch 8\r
+.endm\r
+\r
+.macro opSLLH reg\r
+ and r0,\reg,#0xFF000000 ;@mask high to r0\r
+ adds \reg,\reg,r0\r
+ orr \reg,\reg,#0x01000000\r
+ sub r1,opcodes,#0x100\r
+ ldrb z80f,[r1,\reg,lsr#24]\r
+ orrcs z80f,z80f,#1<<CFlag\r
+ fetch 8\r
+.endm\r
+\r
+.macro opSLLL reg\r
+ opSLL r0, \reg, 9\r
+ and \reg,\reg,#0xFF000000 ;@mask out high\r
+ orr \reg,\reg,r0,lsr#8\r
+ fetch 8\r
+.endm\r
+\r
+.macro opSLLb\r
+ opSLL r0, r0, 25\r
+ mov r0,r0,lsr#24\r
+.endm\r
+;@---------------------------------------\r
+\r
+.macro opSRA reg1 reg2\r
+ movs \reg1,\reg2,asr#25\r
+ and \reg1,\reg1,#0xFF\r
+ sub r1,opcodes,#0x100\r
+ ldrb z80f,[r1,\reg1]\r
+ orrcs z80f,z80f,#1<<CFlag\r
+.endm\r
+\r
+.macro opSRAA\r
+ movs r0,z80a,asr#25\r
+ mov z80a,r0,lsl#24\r
+ sub r1,opcodes,#0x100\r
+ ldrb z80f,[r1,z80a,lsr#24]\r
+ orrcs z80f,z80f,#1<<CFlag\r
+ fetch 8\r
+.endm\r
+\r
+.macro opSRAH reg\r
+ movs r0,\reg,asr#25\r
+ and \reg,\reg,#0x00FF0000 ;@mask out low\r
+ orr \reg,\reg,r0,lsl#24\r
+ sub r1,opcodes,#0x100\r
+ ldrb z80f,[r1,\reg,lsr#24]\r
+ orrcs z80f,z80f,#1<<CFlag\r
+ fetch 8\r
+.endm\r
+\r
+.macro opSRAL reg\r
+ mov r0,\reg,lsl#8\r
+ opSRA r0, r0\r
+ and \reg,\reg,#0xFF000000 ;@mask out high\r
+ orr \reg,\reg,r0,lsl#16\r
+ fetch 8\r
+.endm\r
+\r
+.macro opSRAb\r
+ mov r0,r0,lsl#24\r
+ opSRA r0, r0\r
+.endm\r
+;@---------------------------------------\r
+\r
+.macro opSRL reg1 reg2 shift\r
+ movs \reg1,\reg2,lsr#\shift\r
+ sub r1,opcodes,#0x100\r
+ ldrb z80f,[r1,\reg1]\r
+ orrcs z80f,z80f,#1<<CFlag\r
+.endm\r
+\r
+.macro opSRLA\r
+ opSRL z80a, z80a, 25\r
+ mov z80a,z80a,lsl#24\r
+ fetch 8\r
+.endm\r
+\r
+.macro opSRLH reg\r
+ opSRL r0, \reg, 25\r
+ and \reg,\reg,#0x00FF0000 ;@mask out low\r
+ orr \reg,\reg,r0,lsl#24\r
+ fetch 8\r
+.endm\r
+\r
+.macro opSRLL reg\r
+ mov r0,\reg,lsl#8\r
+ opSRL r0, r0, 25\r
+ and \reg,\reg,#0xFF000000 ;@mask out high\r
+ orr \reg,\reg,r0,lsl#16\r
+ fetch 8\r
+.endm\r
+\r
+.macro opSRLb\r
+ opSRL r0, r0, 1\r
+.endm\r
+;@---------------------------------------\r
+\r
+.macro opSUB reg shift\r
+ mov r1,z80a,lsl#4 ;@ Prepare for check of half carry\r
+ subs z80a,z80a,\reg,lsl#\shift\r
+ mrs z80f,cpsr\r
+ mov z80f,z80f,lsr#28 ;@ S,Z,V&C\r
+ eor z80f,z80f,#(1<<CFlag)|(1<<NFlag) ;@ invert C and set n\r
+ cmp r1,\reg,lsl#\shift+4\r
+ orrcc z80f,z80f,#1<<HFlag\r
+.endm\r
+\r
+.macro opSUBA\r
+ mov z80a,#0\r
+ mov z80f,#(1<<ZFlag)|(1<<NFlag) ;@ set Z & n\r
+ fetch 4\r
+.endm\r
+\r
+.macro opSUBH reg\r
+ and r0,\reg,#0xFF000000\r
+ opSUB r0, 0\r
+ fetch 4\r
+.endm\r
+\r
+.macro opSUBL reg\r
+ opSUB \reg, 8\r
+ fetch 4\r
+.endm\r
+\r
+.macro opSUBb\r
+ opSUB r0, 24\r
+.endm\r
+;@---------------------------------------\r
+\r
+.macro opXOR reg shift\r
+ eor z80a,z80a,\reg,lsl#\shift\r
+ sub r0,opcodes,#0x100\r
+ ldrb z80f,[r0,z80a, lsr #24]\r
+.endm\r
+\r
+.macro opXORA\r
+ mov z80a,#0\r
+ mov z80f,#(1<<ZFlag)|(1<<VFlag)\r
+ fetch 4\r
+.endm\r
+\r
+.macro opXORH reg\r
+ and r0,\reg,#0xFF000000\r
+ opXOR r0, 0\r
+ fetch 4\r
+.endm\r
+\r
+.macro opXORL reg\r
+ opXOR \reg, 8\r
+ fetch 4\r
+.endm\r
+\r
+.macro opXORb\r
+ opXOR r0, 24\r
+.endm\r
+;@---------------------------------------\r
+\r
+\r
+;@ --------------------------- Framework --------------------------\r
+ \r
+.text\r
+\r
+DrZ80Run:\r
+ ;@ r0 = pointer to cpu context\r
+ ;@ r1 = ISTATES to execute \r
+ ;@######################################### \r
+ stmdb sp!,{r4-r12,lr} ;@ save registers on stack\r
+ mov cpucontext,r0 ;@ setup main memory pointer\r
+ mov z80_icount,r1 ;@ setup number of Tstates to execute\r
+\r
+.if INTERRUPT_MODE == 0\r
+ ldrh r0,[cpucontext,#z80irq] @ 0x4C\r
+.endif\r
+ ldmia cpucontext,{z80pc-z80sp} ;@ load Z80 registers\r
+\r
+.if INTERRUPT_MODE == 0\r
+ ;@ check ints\r
+ tst r0,#1\r
+ movnes r0,r0,lsr #8\r
+ blne DoInterrupt\r
+.endif\r
+\r
+ ldrb r0,[z80pc],#1 ;@ get first op code\r
+ ldr opcodes,MAIN_opcodes_POINTER2\r
+ ldr pc,[opcodes,r0, lsl #2] ;@ execute op code\r
+\r
+MAIN_opcodes_POINTER2: .word MAIN_opcodes\r
+\r
+\r
+z80_execute_end:\r
+ ;@ save registers in CPU context\r
+ stmia cpucontext,{z80pc-z80sp} ;@ save Z80 registers\r
+ mov r0,z80_icount\r
+ ldmia sp!,{r4-r12,pc} ;@ restore registers from stack and return to C code\r
+\r
+.if INTERRUPT_MODE\r
+Interrupt_local: .word Interrupt\r
+.endif\r
+\r
+DoInterrupt:\r
+.if INTERRUPT_MODE\r
+ ;@ Don't do own int handler, call mames instead\r
+\r
+ ;@ save everything back into DrZ80 context\r
+ stmia cpucontext,{z80pc-z80sp} ;@ save Z80 registers\r
+ stmfd sp!,{r3,r4,r5,lr} ;@ save rest of regs on stack\r
+ mov lr,pc\r
+ ldr pc,Interrupt_local\r
+ ldmfd sp!,{r3,r4,r5,lr} ;@ load regs from stack\r
+ ;@ reload regs from DrZ80 context\r
+ ldmia cpucontext,{z80pc-z80sp} ;@ load Z80 registers\r
+ mov pc,lr ;@ return\r
+.else\r
+ stmfd sp!,{lr}\r
+\r
+ tst r0,#4 ;@ check halt\r
+ addne z80pc,z80pc,#1\r
+\r
+ ldrb r1,[cpucontext,#z80im]\r
+\r
+ ;@ clear halt and int flags\r
+ eor r0,r0,r0\r
+ strb r0,[cpucontext,#z80if]\r
+\r
+ ;@ now check int mode\r
+ tst r1,#1\r
+ bne DoInterrupt_mode1\r
+ tst r1,#2\r
+ bne DoInterrupt_mode2\r
+ b DoInterrupt_mode0\r
+\r
+DoInterrupt_mode0:\r
+ ;@ get 3 byte vector\r
+ ldr r2,[cpucontext, #z80irqvector]\r
+ and r1,r2,#0xFF0000\r
+ cmp r1,#0xCD0000 ;@ call\r
+ bne 1f\r
+ ;@ ########\r
+ ;@ # call\r
+ ;@ ########\r
+ ;@ save current pc on stack\r
+ ldr r0,[cpucontext,#z80pc_base]\r
+ sub r0,z80pc,r0\r
+.if FAST_Z80SP\r
+ mov r1,r0, lsr #8\r
+ strb r1,[z80sp,#-1]!\r
+ strb r0,[z80sp,#-1]!\r
+.else\r
+ sub z80sp,z80sp,#2\r
+ mov r1,z80sp\r
+ writemem16\r
+ ldr r2,[cpucontext, #z80irqvector]\r
+.endif\r
+ ;@ jump to vector\r
+ mov r2,r2,lsl#16\r
+ mov r0,r2,lsr#16\r
+ ;@ rebase new pc\r
+ rebasepc\r
+\r
+ b DoInterrupt_end\r
+\r
+1:\r
+ cmp r1,#0xC30000 ;@ jump\r
+ bne DoInterrupt_mode1 ;@ rst\r
+ ;@ #######\r
+ ;@ # jump\r
+ ;@ #######\r
+ ;@ jump to vector\r
+ mov r2,r2,lsl#16\r
+ mov r0,r2,lsr#16\r
+ ;@ rebase new pc\r
+ rebasepc\r
+\r
+ b DoInterrupt_end\r
+\r
+DoInterrupt_mode1:\r
+ ldr r0,[cpucontext,#z80pc_base]\r
+ sub r2,z80pc,r0\r
+ opPUSHareg r2\r
+ mov r0,#0x38\r
+ rebasepc\r
+\r
+ b DoInterrupt_end\r
+\r
+DoInterrupt_mode2:\r
+ ;@ push pc on stack\r
+ ldr r0,[cpucontext,#z80pc_base]\r
+ sub r2,z80pc,r0\r
+ opPUSHareg r2\r
+\r
+ ;@ get 1 byte vector address\r
+ ldrb r0,[cpucontext, #z80irqvector]\r
+ ldr r1,[cpucontext, #z80i]\r
+ orr r0,r0,r1,lsr#16\r
+\r
+ ;@ read new pc from vector address\r
+.if DRZ80_FOR_PICODRIVE\r
+ bl pico_z80_read16\r
+ bic r0,r0,#0xfe000\r
+ ldr r1,[cpucontext,#z80pc_base]\r
+ add z80pc,r1,r0\r
+.if UPDATE_CONTEXT\r
+ str z80pc,[cpucontext,#z80pc_pointer]\r
+.endif\r
+.else\r
+ stmfd sp!,{r3,r12}\r
+ mov lr,pc\r
+ ldr pc,[cpucontext,#z80_read16]\r
+\r
+ ;@ rebase new pc\r
+.if UPDATE_CONTEXT\r
+ str z80pc,[cpucontext,#z80pc_pointer]\r
+.endif\r
+ mov lr,pc\r
+ ldr pc,[cpucontext,#z80_rebasePC] ;@ r0=new pc - external function sets z80pc_base and returns new z80pc in r0\r
+ ldmfd sp!,{r3,r12}\r
+ mov z80pc,r0 \r
+.endif\r
+\r
+DoInterrupt_end:\r
+ ;@ interupt accepted so callback irq interface\r
+ ldr r0,[cpucontext, #z80irqcallback]\r
+ tst r0,r0\r
+ ldmeqfd sp!,{pc}\r
+ stmfd sp!,{r3,r12}\r
+ mov lr,pc\r
+ mov pc,r0 ;@ call callback function\r
+ ldmfd sp!,{r3,r12}\r
+ ldmfd sp!,{pc} ;@ return\r
+\r
+.endif\r
+\r
+.data\r
+.align 4\r
+\r
+DAATable: .hword (0x00<<8)|(1<<ZFlag)|(1<<VFlag)\r
+ .hword (0x01<<8) \r
+ .hword (0x02<<8) \r
+ .hword (0x03<<8) |(1<<VFlag)\r
+ .hword (0x04<<8) \r
+ .hword (0x05<<8) |(1<<VFlag)\r
+ .hword (0x06<<8) |(1<<VFlag)\r
+ .hword (0x07<<8) \r
+ .hword (0x08<<8) \r
+ .hword (0x09<<8) |(1<<VFlag)\r
+ .hword (0x10<<8) |(1<<HFlag) \r
+ .hword (0x11<<8) |(1<<HFlag) |(1<<VFlag)\r
+ .hword (0x12<<8) |(1<<HFlag) |(1<<VFlag)\r
+ .hword (0x13<<8) |(1<<HFlag) \r
+ .hword (0x14<<8) |(1<<HFlag) |(1<<VFlag)\r
+ .hword (0x15<<8) |(1<<HFlag) \r
+ .hword (0x10<<8) \r
+ .hword (0x11<<8) |(1<<VFlag)\r
+ .hword (0x12<<8) |(1<<VFlag)\r
+ .hword (0x13<<8) \r
+ .hword (0x14<<8) |(1<<VFlag)\r
+ .hword (0x15<<8) \r
+ .hword (0x16<<8) \r
+ .hword (0x17<<8) |(1<<VFlag)\r
+ .hword (0x18<<8) |(1<<VFlag)\r
+ .hword (0x19<<8) \r
+ .hword (0x20<<8) |(1<<HFlag) \r
+ .hword (0x21<<8) |(1<<HFlag) |(1<<VFlag)\r
+ .hword (0x22<<8) |(1<<HFlag) |(1<<VFlag)\r
+ .hword (0x23<<8) |(1<<HFlag) \r
+ .hword (0x24<<8) |(1<<HFlag) |(1<<VFlag)\r
+ .hword (0x25<<8) |(1<<HFlag) \r
+ .hword (0x20<<8) \r
+ .hword (0x21<<8) |(1<<VFlag)\r
+ .hword (0x22<<8) |(1<<VFlag)\r
+ .hword (0x23<<8) \r
+ .hword (0x24<<8) |(1<<VFlag)\r
+ .hword (0x25<<8) \r
+ .hword (0x26<<8) \r
+ .hword (0x27<<8) |(1<<VFlag)\r
+ .hword (0x28<<8) |(1<<VFlag)\r
+ .hword (0x29<<8) \r
+ .hword (0x30<<8) |(1<<HFlag) |(1<<VFlag)\r
+ .hword (0x31<<8) |(1<<HFlag) \r
+ .hword (0x32<<8) |(1<<HFlag) \r
+ .hword (0x33<<8) |(1<<HFlag) |(1<<VFlag)\r
+ .hword (0x34<<8) |(1<<HFlag) \r
+ .hword (0x35<<8) |(1<<HFlag) |(1<<VFlag)\r
+ .hword (0x30<<8) |(1<<VFlag)\r
+ .hword (0x31<<8) \r
+ .hword (0x32<<8) \r
+ .hword (0x33<<8) |(1<<VFlag)\r
+ .hword (0x34<<8) \r
+ .hword (0x35<<8) |(1<<VFlag)\r
+ .hword (0x36<<8) |(1<<VFlag)\r
+ .hword (0x37<<8) \r
+ .hword (0x38<<8) \r
+ .hword (0x39<<8) |(1<<VFlag)\r
+ .hword (0x40<<8) |(1<<HFlag) \r
+ .hword (0x41<<8) |(1<<HFlag) |(1<<VFlag)\r
+ .hword (0x42<<8) |(1<<HFlag) |(1<<VFlag)\r
+ .hword (0x43<<8) |(1<<HFlag) \r
+ .hword (0x44<<8) |(1<<HFlag) |(1<<VFlag)\r
+ .hword (0x45<<8) |(1<<HFlag) \r
+ .hword (0x40<<8) \r
+ .hword (0x41<<8) |(1<<VFlag)\r
+ .hword (0x42<<8) |(1<<VFlag)\r
+ .hword (0x43<<8) \r
+ .hword (0x44<<8) |(1<<VFlag)\r
+ .hword (0x45<<8) \r
+ .hword (0x46<<8) \r
+ .hword (0x47<<8) |(1<<VFlag)\r
+ .hword (0x48<<8) |(1<<VFlag)\r
+ .hword (0x49<<8) \r
+ .hword (0x50<<8) |(1<<HFlag) |(1<<VFlag)\r
+ .hword (0x51<<8) |(1<<HFlag) \r
+ .hword (0x52<<8) |(1<<HFlag) \r
+ .hword (0x53<<8) |(1<<HFlag) |(1<<VFlag)\r
+ .hword (0x54<<8) |(1<<HFlag) \r
+ .hword (0x55<<8) |(1<<HFlag) |(1<<VFlag)\r
+ .hword (0x50<<8) |(1<<VFlag)\r
+ .hword (0x51<<8) \r
+ .hword (0x52<<8) \r
+ .hword (0x53<<8) |(1<<VFlag)\r
+ .hword (0x54<<8) \r
+ .hword (0x55<<8) |(1<<VFlag)\r
+ .hword (0x56<<8) |(1<<VFlag)\r
+ .hword (0x57<<8) \r
+ .hword (0x58<<8) \r
+ .hword (0x59<<8) |(1<<VFlag)\r
+ .hword (0x60<<8) |(1<<HFlag) |(1<<VFlag)\r
+ .hword (0x61<<8) |(1<<HFlag) \r
+ .hword (0x62<<8) |(1<<HFlag) \r
+ .hword (0x63<<8) |(1<<HFlag) |(1<<VFlag)\r
+ .hword (0x64<<8) |(1<<HFlag) \r
+ .hword (0x65<<8) |(1<<HFlag) |(1<<VFlag)\r
+ .hword (0x60<<8) |(1<<VFlag)\r
+ .hword (0x61<<8) \r
+ .hword (0x62<<8) \r
+ .hword (0x63<<8) |(1<<VFlag)\r
+ .hword (0x64<<8) \r
+ .hword (0x65<<8) |(1<<VFlag)\r
+ .hword (0x66<<8) |(1<<VFlag)\r
+ .hword (0x67<<8) \r
+ .hword (0x68<<8) \r
+ .hword (0x69<<8) |(1<<VFlag)\r
+ .hword (0x70<<8) |(1<<HFlag) \r
+ .hword (0x71<<8) |(1<<HFlag) |(1<<VFlag)\r
+ .hword (0x72<<8) |(1<<HFlag) |(1<<VFlag)\r
+ .hword (0x73<<8) |(1<<HFlag) \r
+ .hword (0x74<<8) |(1<<HFlag) |(1<<VFlag)\r
+ .hword (0x75<<8) |(1<<HFlag) \r
+ .hword (0x70<<8) \r
+ .hword (0x71<<8) |(1<<VFlag)\r
+ .hword (0x72<<8) |(1<<VFlag)\r
+ .hword (0x73<<8) \r
+ .hword (0x74<<8) |(1<<VFlag)\r
+ .hword (0x75<<8) \r
+ .hword (0x76<<8) \r
+ .hword (0x77<<8) |(1<<VFlag)\r
+ .hword (0x78<<8) |(1<<VFlag)\r
+ .hword (0x79<<8) \r
+ .hword (0x80<<8)|(1<<SFlag) |(1<<HFlag) \r
+ .hword (0x81<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag)\r
+ .hword (0x82<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag)\r
+ .hword (0x83<<8)|(1<<SFlag) |(1<<HFlag) \r
+ .hword (0x84<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag)\r
+ .hword (0x85<<8)|(1<<SFlag) |(1<<HFlag) \r
+ .hword (0x80<<8)|(1<<SFlag) \r
+ .hword (0x81<<8)|(1<<SFlag) |(1<<VFlag)\r
+ .hword (0x82<<8)|(1<<SFlag) |(1<<VFlag)\r
+ .hword (0x83<<8)|(1<<SFlag) \r
+ .hword (0x84<<8)|(1<<SFlag) |(1<<VFlag)\r
+ .hword (0x85<<8)|(1<<SFlag) \r
+ .hword (0x86<<8)|(1<<SFlag) \r
+ .hword (0x87<<8)|(1<<SFlag) |(1<<VFlag)\r
+ .hword (0x88<<8)|(1<<SFlag) |(1<<VFlag)\r
+ .hword (0x89<<8)|(1<<SFlag) \r
+ .hword (0x90<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag)\r
+ .hword (0x91<<8)|(1<<SFlag) |(1<<HFlag) \r
+ .hword (0x92<<8)|(1<<SFlag) |(1<<HFlag) \r
+ .hword (0x93<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag)\r
+ .hword (0x94<<8)|(1<<SFlag) |(1<<HFlag) \r
+ .hword (0x95<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag)\r
+ .hword (0x90<<8)|(1<<SFlag) |(1<<VFlag)\r
+ .hword (0x91<<8)|(1<<SFlag) \r
+ .hword (0x92<<8)|(1<<SFlag) \r
+ .hword (0x93<<8)|(1<<SFlag) |(1<<VFlag)\r
+ .hword (0x94<<8)|(1<<SFlag) \r
+ .hword (0x95<<8)|(1<<SFlag) |(1<<VFlag)\r
+ .hword (0x96<<8)|(1<<SFlag) |(1<<VFlag)\r
+ .hword (0x97<<8)|(1<<SFlag) \r
+ .hword (0x98<<8)|(1<<SFlag) \r
+ .hword (0x99<<8)|(1<<SFlag) |(1<<VFlag)\r
+ .hword (0x00<<8) |(1<<ZFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x01<<8) |(1<<HFlag) |(1<<CFlag)\r
+ .hword (0x02<<8) |(1<<HFlag) |(1<<CFlag)\r
+ .hword (0x03<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x04<<8) |(1<<HFlag) |(1<<CFlag)\r
+ .hword (0x05<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x00<<8) |(1<<ZFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x01<<8) |(1<<CFlag)\r
+ .hword (0x02<<8) |(1<<CFlag)\r
+ .hword (0x03<<8) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x04<<8) |(1<<CFlag)\r
+ .hword (0x05<<8) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x06<<8) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x07<<8) |(1<<CFlag)\r
+ .hword (0x08<<8) |(1<<CFlag)\r
+ .hword (0x09<<8) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x10<<8) |(1<<HFlag) |(1<<CFlag)\r
+ .hword (0x11<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x12<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x13<<8) |(1<<HFlag) |(1<<CFlag)\r
+ .hword (0x14<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x15<<8) |(1<<HFlag) |(1<<CFlag)\r
+ .hword (0x10<<8) |(1<<CFlag)\r
+ .hword (0x11<<8) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x12<<8) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x13<<8) |(1<<CFlag)\r
+ .hword (0x14<<8) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x15<<8) |(1<<CFlag)\r
+ .hword (0x16<<8) |(1<<CFlag)\r
+ .hword (0x17<<8) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x18<<8) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x19<<8) |(1<<CFlag)\r
+ .hword (0x20<<8) |(1<<HFlag) |(1<<CFlag)\r
+ .hword (0x21<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x22<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x23<<8) |(1<<HFlag) |(1<<CFlag)\r
+ .hword (0x24<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x25<<8) |(1<<HFlag) |(1<<CFlag)\r
+ .hword (0x20<<8) |(1<<CFlag)\r
+ .hword (0x21<<8) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x22<<8) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x23<<8) |(1<<CFlag)\r
+ .hword (0x24<<8) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x25<<8) |(1<<CFlag)\r
+ .hword (0x26<<8) |(1<<CFlag)\r
+ .hword (0x27<<8) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x28<<8) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x29<<8) |(1<<CFlag)\r
+ .hword (0x30<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x31<<8) |(1<<HFlag) |(1<<CFlag)\r
+ .hword (0x32<<8) |(1<<HFlag) |(1<<CFlag)\r
+ .hword (0x33<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x34<<8) |(1<<HFlag) |(1<<CFlag)\r
+ .hword (0x35<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x30<<8) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x31<<8) |(1<<CFlag)\r
+ .hword (0x32<<8) |(1<<CFlag)\r
+ .hword (0x33<<8) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x34<<8) |(1<<CFlag)\r
+ .hword (0x35<<8) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x36<<8) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x37<<8) |(1<<CFlag)\r
+ .hword (0x38<<8) |(1<<CFlag)\r
+ .hword (0x39<<8) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x40<<8) |(1<<HFlag) |(1<<CFlag)\r
+ .hword (0x41<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x42<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x43<<8) |(1<<HFlag) |(1<<CFlag)\r
+ .hword (0x44<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x45<<8) |(1<<HFlag) |(1<<CFlag)\r
+ .hword (0x40<<8) |(1<<CFlag)\r
+ .hword (0x41<<8) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x42<<8) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x43<<8) |(1<<CFlag)\r
+ .hword (0x44<<8) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x45<<8) |(1<<CFlag)\r
+ .hword (0x46<<8) |(1<<CFlag)\r
+ .hword (0x47<<8) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x48<<8) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x49<<8) |(1<<CFlag)\r
+ .hword (0x50<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x51<<8) |(1<<HFlag) |(1<<CFlag)\r
+ .hword (0x52<<8) |(1<<HFlag) |(1<<CFlag)\r
+ .hword (0x53<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x54<<8) |(1<<HFlag) |(1<<CFlag)\r
+ .hword (0x55<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x50<<8) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x51<<8) |(1<<CFlag)\r
+ .hword (0x52<<8) |(1<<CFlag)\r
+ .hword (0x53<<8) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x54<<8) |(1<<CFlag)\r
+ .hword (0x55<<8) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x56<<8) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x57<<8) |(1<<CFlag)\r
+ .hword (0x58<<8) |(1<<CFlag)\r
+ .hword (0x59<<8) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x60<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x61<<8) |(1<<HFlag) |(1<<CFlag)\r
+ .hword (0x62<<8) |(1<<HFlag) |(1<<CFlag)\r
+ .hword (0x63<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x64<<8) |(1<<HFlag) |(1<<CFlag)\r
+ .hword (0x65<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x60<<8) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x61<<8) |(1<<CFlag)\r
+ .hword (0x62<<8) |(1<<CFlag)\r
+ .hword (0x63<<8) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x64<<8) |(1<<CFlag)\r
+ .hword (0x65<<8) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x66<<8) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x67<<8) |(1<<CFlag)\r
+ .hword (0x68<<8) |(1<<CFlag)\r
+ .hword (0x69<<8) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x70<<8) |(1<<HFlag) |(1<<CFlag)\r
+ .hword (0x71<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x72<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x73<<8) |(1<<HFlag) |(1<<CFlag)\r
+ .hword (0x74<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x75<<8) |(1<<HFlag) |(1<<CFlag)\r
+ .hword (0x70<<8) |(1<<CFlag)\r
+ .hword (0x71<<8) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x72<<8) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x73<<8) |(1<<CFlag)\r
+ .hword (0x74<<8) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x75<<8) |(1<<CFlag)\r
+ .hword (0x76<<8) |(1<<CFlag)\r
+ .hword (0x77<<8) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x78<<8) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x79<<8) |(1<<CFlag)\r
+ .hword (0x80<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
+ .hword (0x81<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x82<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x83<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
+ .hword (0x84<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x85<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
+ .hword (0x80<<8)|(1<<SFlag) |(1<<CFlag)\r
+ .hword (0x81<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x82<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x83<<8)|(1<<SFlag) |(1<<CFlag)\r
+ .hword (0x84<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x85<<8)|(1<<SFlag) |(1<<CFlag)\r
+ .hword (0x86<<8)|(1<<SFlag) |(1<<CFlag)\r
+ .hword (0x87<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x88<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x89<<8)|(1<<SFlag) |(1<<CFlag)\r
+ .hword (0x90<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x91<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
+ .hword (0x92<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
+ .hword (0x93<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x94<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
+ .hword (0x95<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x90<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x91<<8)|(1<<SFlag) |(1<<CFlag)\r
+ .hword (0x92<<8)|(1<<SFlag) |(1<<CFlag)\r
+ .hword (0x93<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x94<<8)|(1<<SFlag) |(1<<CFlag)\r
+ .hword (0x95<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x96<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x97<<8)|(1<<SFlag) |(1<<CFlag)\r
+ .hword (0x98<<8)|(1<<SFlag) |(1<<CFlag)\r
+ .hword (0x99<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0xA0<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0xA1<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
+ .hword (0xA2<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
+ .hword (0xA3<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0xA4<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
+ .hword (0xA5<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0xA0<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0xA1<<8)|(1<<SFlag) |(1<<CFlag)\r
+ .hword (0xA2<<8)|(1<<SFlag) |(1<<CFlag)\r
+ .hword (0xA3<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0xA4<<8)|(1<<SFlag) |(1<<CFlag)\r
+ .hword (0xA5<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0xA6<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0xA7<<8)|(1<<SFlag) |(1<<CFlag)\r
+ .hword (0xA8<<8)|(1<<SFlag) |(1<<CFlag)\r
+ .hword (0xA9<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0xB0<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
+ .hword (0xB1<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0xB2<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0xB3<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
+ .hword (0xB4<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0xB5<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
+ .hword (0xB0<<8)|(1<<SFlag) |(1<<CFlag)\r
+ .hword (0xB1<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0xB2<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0xB3<<8)|(1<<SFlag) |(1<<CFlag)\r
+ .hword (0xB4<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0xB5<<8)|(1<<SFlag) |(1<<CFlag)\r
+ .hword (0xB6<<8)|(1<<SFlag) |(1<<CFlag)\r
+ .hword (0xB7<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0xB8<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0xB9<<8)|(1<<SFlag) |(1<<CFlag)\r
+ .hword (0xC0<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0xC1<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
+ .hword (0xC2<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
+ .hword (0xC3<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0xC4<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
+ .hword (0xC5<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0xC0<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0xC1<<8)|(1<<SFlag) |(1<<CFlag)\r
+ .hword (0xC2<<8)|(1<<SFlag) |(1<<CFlag)\r
+ .hword (0xC3<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0xC4<<8)|(1<<SFlag) |(1<<CFlag)\r
+ .hword (0xC5<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0xC6<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0xC7<<8)|(1<<SFlag) |(1<<CFlag)\r
+ .hword (0xC8<<8)|(1<<SFlag) |(1<<CFlag)\r
+ .hword (0xC9<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0xD0<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
+ .hword (0xD1<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0xD2<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0xD3<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
+ .hword (0xD4<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0xD5<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
+ .hword (0xD0<<8)|(1<<SFlag) |(1<<CFlag)\r
+ .hword (0xD1<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0xD2<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0xD3<<8)|(1<<SFlag) |(1<<CFlag)\r
+ .hword (0xD4<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0xD5<<8)|(1<<SFlag) |(1<<CFlag)\r
+ .hword (0xD6<<8)|(1<<SFlag) |(1<<CFlag)\r
+ .hword (0xD7<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0xD8<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0xD9<<8)|(1<<SFlag) |(1<<CFlag)\r
+ .hword (0xE0<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
+ .hword (0xE1<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0xE2<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0xE3<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
+ .hword (0xE4<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0xE5<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
+ .hword (0xE0<<8)|(1<<SFlag) |(1<<CFlag)\r
+ .hword (0xE1<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0xE2<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0xE3<<8)|(1<<SFlag) |(1<<CFlag)\r
+ .hword (0xE4<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0xE5<<8)|(1<<SFlag) |(1<<CFlag)\r
+ .hword (0xE6<<8)|(1<<SFlag) |(1<<CFlag)\r
+ .hword (0xE7<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0xE8<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0xE9<<8)|(1<<SFlag) |(1<<CFlag)\r
+ .hword (0xF0<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0xF1<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
+ .hword (0xF2<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
+ .hword (0xF3<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0xF4<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
+ .hword (0xF5<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0xF0<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0xF1<<8)|(1<<SFlag) |(1<<CFlag)\r
+ .hword (0xF2<<8)|(1<<SFlag) |(1<<CFlag)\r
+ .hword (0xF3<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0xF4<<8)|(1<<SFlag) |(1<<CFlag)\r
+ .hword (0xF5<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0xF6<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0xF7<<8)|(1<<SFlag) |(1<<CFlag)\r
+ .hword (0xF8<<8)|(1<<SFlag) |(1<<CFlag)\r
+ .hword (0xF9<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x00<<8) |(1<<ZFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x01<<8) |(1<<HFlag) |(1<<CFlag)\r
+ .hword (0x02<<8) |(1<<HFlag) |(1<<CFlag)\r
+ .hword (0x03<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x04<<8) |(1<<HFlag) |(1<<CFlag)\r
+ .hword (0x05<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x00<<8) |(1<<ZFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x01<<8) |(1<<CFlag)\r
+ .hword (0x02<<8) |(1<<CFlag)\r
+ .hword (0x03<<8) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x04<<8) |(1<<CFlag)\r
+ .hword (0x05<<8) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x06<<8) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x07<<8) |(1<<CFlag)\r
+ .hword (0x08<<8) |(1<<CFlag)\r
+ .hword (0x09<<8) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x10<<8) |(1<<HFlag) |(1<<CFlag)\r
+ .hword (0x11<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x12<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x13<<8) |(1<<HFlag) |(1<<CFlag)\r
+ .hword (0x14<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x15<<8) |(1<<HFlag) |(1<<CFlag)\r
+ .hword (0x10<<8) |(1<<CFlag)\r
+ .hword (0x11<<8) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x12<<8) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x13<<8) |(1<<CFlag)\r
+ .hword (0x14<<8) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x15<<8) |(1<<CFlag)\r
+ .hword (0x16<<8) |(1<<CFlag)\r
+ .hword (0x17<<8) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x18<<8) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x19<<8) |(1<<CFlag)\r
+ .hword (0x20<<8) |(1<<HFlag) |(1<<CFlag)\r
+ .hword (0x21<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x22<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x23<<8) |(1<<HFlag) |(1<<CFlag)\r
+ .hword (0x24<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x25<<8) |(1<<HFlag) |(1<<CFlag)\r
+ .hword (0x20<<8) |(1<<CFlag)\r
+ .hword (0x21<<8) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x22<<8) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x23<<8) |(1<<CFlag)\r
+ .hword (0x24<<8) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x25<<8) |(1<<CFlag)\r
+ .hword (0x26<<8) |(1<<CFlag)\r
+ .hword (0x27<<8) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x28<<8) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x29<<8) |(1<<CFlag)\r
+ .hword (0x30<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x31<<8) |(1<<HFlag) |(1<<CFlag)\r
+ .hword (0x32<<8) |(1<<HFlag) |(1<<CFlag)\r
+ .hword (0x33<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x34<<8) |(1<<HFlag) |(1<<CFlag)\r
+ .hword (0x35<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x30<<8) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x31<<8) |(1<<CFlag)\r
+ .hword (0x32<<8) |(1<<CFlag)\r
+ .hword (0x33<<8) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x34<<8) |(1<<CFlag)\r
+ .hword (0x35<<8) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x36<<8) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x37<<8) |(1<<CFlag)\r
+ .hword (0x38<<8) |(1<<CFlag)\r
+ .hword (0x39<<8) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x40<<8) |(1<<HFlag) |(1<<CFlag)\r
+ .hword (0x41<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x42<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x43<<8) |(1<<HFlag) |(1<<CFlag)\r
+ .hword (0x44<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x45<<8) |(1<<HFlag) |(1<<CFlag)\r
+ .hword (0x40<<8) |(1<<CFlag)\r
+ .hword (0x41<<8) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x42<<8) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x43<<8) |(1<<CFlag)\r
+ .hword (0x44<<8) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x45<<8) |(1<<CFlag)\r
+ .hword (0x46<<8) |(1<<CFlag)\r
+ .hword (0x47<<8) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x48<<8) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x49<<8) |(1<<CFlag)\r
+ .hword (0x50<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x51<<8) |(1<<HFlag) |(1<<CFlag)\r
+ .hword (0x52<<8) |(1<<HFlag) |(1<<CFlag)\r
+ .hword (0x53<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x54<<8) |(1<<HFlag) |(1<<CFlag)\r
+ .hword (0x55<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x50<<8) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x51<<8) |(1<<CFlag)\r
+ .hword (0x52<<8) |(1<<CFlag)\r
+ .hword (0x53<<8) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x54<<8) |(1<<CFlag)\r
+ .hword (0x55<<8) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x56<<8) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x57<<8) |(1<<CFlag)\r
+ .hword (0x58<<8) |(1<<CFlag)\r
+ .hword (0x59<<8) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x60<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x61<<8) |(1<<HFlag) |(1<<CFlag)\r
+ .hword (0x62<<8) |(1<<HFlag) |(1<<CFlag)\r
+ .hword (0x63<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x64<<8) |(1<<HFlag) |(1<<CFlag)\r
+ .hword (0x65<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x06<<8) |(1<<VFlag)\r
+ .hword (0x07<<8) \r
+ .hword (0x08<<8) \r
+ .hword (0x09<<8) |(1<<VFlag)\r
+ .hword (0x0A<<8) |(1<<VFlag)\r
+ .hword (0x0B<<8) \r
+ .hword (0x0C<<8) |(1<<VFlag)\r
+ .hword (0x0D<<8) \r
+ .hword (0x0E<<8) \r
+ .hword (0x0F<<8) |(1<<VFlag)\r
+ .hword (0x10<<8) |(1<<HFlag) \r
+ .hword (0x11<<8) |(1<<HFlag) |(1<<VFlag)\r
+ .hword (0x12<<8) |(1<<HFlag) |(1<<VFlag)\r
+ .hword (0x13<<8) |(1<<HFlag) \r
+ .hword (0x14<<8) |(1<<HFlag) |(1<<VFlag)\r
+ .hword (0x15<<8) |(1<<HFlag) \r
+ .hword (0x16<<8) \r
+ .hword (0x17<<8) |(1<<VFlag)\r
+ .hword (0x18<<8) |(1<<VFlag)\r
+ .hword (0x19<<8) \r
+ .hword (0x1A<<8) \r
+ .hword (0x1B<<8) |(1<<VFlag)\r
+ .hword (0x1C<<8) \r
+ .hword (0x1D<<8) |(1<<VFlag)\r
+ .hword (0x1E<<8) |(1<<VFlag)\r
+ .hword (0x1F<<8) \r
+ .hword (0x20<<8) |(1<<HFlag) \r
+ .hword (0x21<<8) |(1<<HFlag) |(1<<VFlag)\r
+ .hword (0x22<<8) |(1<<HFlag) |(1<<VFlag)\r
+ .hword (0x23<<8) |(1<<HFlag) \r
+ .hword (0x24<<8) |(1<<HFlag) |(1<<VFlag)\r
+ .hword (0x25<<8) |(1<<HFlag) \r
+ .hword (0x26<<8) \r
+ .hword (0x27<<8) |(1<<VFlag)\r
+ .hword (0x28<<8) |(1<<VFlag)\r
+ .hword (0x29<<8) \r
+ .hword (0x2A<<8) \r
+ .hword (0x2B<<8) |(1<<VFlag)\r
+ .hword (0x2C<<8) \r
+ .hword (0x2D<<8) |(1<<VFlag)\r
+ .hword (0x2E<<8) |(1<<VFlag)\r
+ .hword (0x2F<<8) \r
+ .hword (0x30<<8) |(1<<HFlag) |(1<<VFlag)\r
+ .hword (0x31<<8) |(1<<HFlag) \r
+ .hword (0x32<<8) |(1<<HFlag) \r
+ .hword (0x33<<8) |(1<<HFlag) |(1<<VFlag)\r
+ .hword (0x34<<8) |(1<<HFlag) \r
+ .hword (0x35<<8) |(1<<HFlag) |(1<<VFlag)\r
+ .hword (0x36<<8) |(1<<VFlag)\r
+ .hword (0x37<<8) \r
+ .hword (0x38<<8) \r
+ .hword (0x39<<8) |(1<<VFlag)\r
+ .hword (0x3A<<8) |(1<<VFlag)\r
+ .hword (0x3B<<8) \r
+ .hword (0x3C<<8) |(1<<VFlag)\r
+ .hword (0x3D<<8) \r
+ .hword (0x3E<<8) \r
+ .hword (0x3F<<8) |(1<<VFlag)\r
+ .hword (0x40<<8) |(1<<HFlag) \r
+ .hword (0x41<<8) |(1<<HFlag) |(1<<VFlag)\r
+ .hword (0x42<<8) |(1<<HFlag) |(1<<VFlag)\r
+ .hword (0x43<<8) |(1<<HFlag) \r
+ .hword (0x44<<8) |(1<<HFlag) |(1<<VFlag)\r
+ .hword (0x45<<8) |(1<<HFlag) \r
+ .hword (0x46<<8) \r
+ .hword (0x47<<8) |(1<<VFlag)\r
+ .hword (0x48<<8) |(1<<VFlag)\r
+ .hword (0x49<<8) \r
+ .hword (0x4A<<8) \r
+ .hword (0x4B<<8) |(1<<VFlag)\r
+ .hword (0x4C<<8) \r
+ .hword (0x4D<<8) |(1<<VFlag)\r
+ .hword (0x4E<<8) |(1<<VFlag)\r
+ .hword (0x4F<<8) \r
+ .hword (0x50<<8) |(1<<HFlag) |(1<<VFlag)\r
+ .hword (0x51<<8) |(1<<HFlag) \r
+ .hword (0x52<<8) |(1<<HFlag) \r
+ .hword (0x53<<8) |(1<<HFlag) |(1<<VFlag)\r
+ .hword (0x54<<8) |(1<<HFlag) \r
+ .hword (0x55<<8) |(1<<HFlag) |(1<<VFlag)\r
+ .hword (0x56<<8) |(1<<VFlag)\r
+ .hword (0x57<<8) \r
+ .hword (0x58<<8) \r
+ .hword (0x59<<8) |(1<<VFlag)\r
+ .hword (0x5A<<8) |(1<<VFlag)\r
+ .hword (0x5B<<8) \r
+ .hword (0x5C<<8) |(1<<VFlag)\r
+ .hword (0x5D<<8) \r
+ .hword (0x5E<<8) \r
+ .hword (0x5F<<8) |(1<<VFlag)\r
+ .hword (0x60<<8) |(1<<HFlag) |(1<<VFlag)\r
+ .hword (0x61<<8) |(1<<HFlag) \r
+ .hword (0x62<<8) |(1<<HFlag) \r
+ .hword (0x63<<8) |(1<<HFlag) |(1<<VFlag)\r
+ .hword (0x64<<8) |(1<<HFlag) \r
+ .hword (0x65<<8) |(1<<HFlag) |(1<<VFlag)\r
+ .hword (0x66<<8) |(1<<VFlag)\r
+ .hword (0x67<<8) \r
+ .hword (0x68<<8) \r
+ .hword (0x69<<8) |(1<<VFlag)\r
+ .hword (0x6A<<8) |(1<<VFlag)\r
+ .hword (0x6B<<8) \r
+ .hword (0x6C<<8) |(1<<VFlag)\r
+ .hword (0x6D<<8) \r
+ .hword (0x6E<<8) \r
+ .hword (0x6F<<8) |(1<<VFlag)\r
+ .hword (0x70<<8) |(1<<HFlag) \r
+ .hword (0x71<<8) |(1<<HFlag) |(1<<VFlag)\r
+ .hword (0x72<<8) |(1<<HFlag) |(1<<VFlag)\r
+ .hword (0x73<<8) |(1<<HFlag) \r
+ .hword (0x74<<8) |(1<<HFlag) |(1<<VFlag)\r
+ .hword (0x75<<8) |(1<<HFlag) \r
+ .hword (0x76<<8) \r
+ .hword (0x77<<8) |(1<<VFlag)\r
+ .hword (0x78<<8) |(1<<VFlag)\r
+ .hword (0x79<<8) \r
+ .hword (0x7A<<8) \r
+ .hword (0x7B<<8) |(1<<VFlag)\r
+ .hword (0x7C<<8) \r
+ .hword (0x7D<<8) |(1<<VFlag)\r
+ .hword (0x7E<<8) |(1<<VFlag)\r
+ .hword (0x7F<<8) \r
+ .hword (0x80<<8)|(1<<SFlag) |(1<<HFlag) \r
+ .hword (0x81<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag)\r
+ .hword (0x82<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag)\r
+ .hword (0x83<<8)|(1<<SFlag) |(1<<HFlag) \r
+ .hword (0x84<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag)\r
+ .hword (0x85<<8)|(1<<SFlag) |(1<<HFlag) \r
+ .hword (0x86<<8)|(1<<SFlag) \r
+ .hword (0x87<<8)|(1<<SFlag) |(1<<VFlag)\r
+ .hword (0x88<<8)|(1<<SFlag) |(1<<VFlag)\r
+ .hword (0x89<<8)|(1<<SFlag) \r
+ .hword (0x8A<<8)|(1<<SFlag) \r
+ .hword (0x8B<<8)|(1<<SFlag) |(1<<VFlag)\r
+ .hword (0x8C<<8)|(1<<SFlag) \r
+ .hword (0x8D<<8)|(1<<SFlag) |(1<<VFlag)\r
+ .hword (0x8E<<8)|(1<<SFlag) |(1<<VFlag)\r
+ .hword (0x8F<<8)|(1<<SFlag) \r
+ .hword (0x90<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag)\r
+ .hword (0x91<<8)|(1<<SFlag) |(1<<HFlag) \r
+ .hword (0x92<<8)|(1<<SFlag) |(1<<HFlag) \r
+ .hword (0x93<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag)\r
+ .hword (0x94<<8)|(1<<SFlag) |(1<<HFlag) \r
+ .hword (0x95<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag)\r
+ .hword (0x96<<8)|(1<<SFlag) |(1<<VFlag)\r
+ .hword (0x97<<8)|(1<<SFlag) \r
+ .hword (0x98<<8)|(1<<SFlag) \r
+ .hword (0x99<<8)|(1<<SFlag) |(1<<VFlag)\r
+ .hword (0x9A<<8)|(1<<SFlag) |(1<<VFlag)\r
+ .hword (0x9B<<8)|(1<<SFlag) \r
+ .hword (0x9C<<8)|(1<<SFlag) |(1<<VFlag)\r
+ .hword (0x9D<<8)|(1<<SFlag) \r
+ .hword (0x9E<<8)|(1<<SFlag) \r
+ .hword (0x9F<<8)|(1<<SFlag) |(1<<VFlag)\r
+ .hword (0x00<<8) |(1<<ZFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x01<<8) |(1<<HFlag) |(1<<CFlag)\r
+ .hword (0x02<<8) |(1<<HFlag) |(1<<CFlag)\r
+ .hword (0x03<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x04<<8) |(1<<HFlag) |(1<<CFlag)\r
+ .hword (0x05<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x06<<8) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x07<<8) |(1<<CFlag)\r
+ .hword (0x08<<8) |(1<<CFlag)\r
+ .hword (0x09<<8) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x0A<<8) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x0B<<8) |(1<<CFlag)\r
+ .hword (0x0C<<8) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x0D<<8) |(1<<CFlag)\r
+ .hword (0x0E<<8) |(1<<CFlag)\r
+ .hword (0x0F<<8) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x10<<8) |(1<<HFlag) |(1<<CFlag)\r
+ .hword (0x11<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x12<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x13<<8) |(1<<HFlag) |(1<<CFlag)\r
+ .hword (0x14<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x15<<8) |(1<<HFlag) |(1<<CFlag)\r
+ .hword (0x16<<8) |(1<<CFlag)\r
+ .hword (0x17<<8) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x18<<8) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x19<<8) |(1<<CFlag)\r
+ .hword (0x1A<<8) |(1<<CFlag)\r
+ .hword (0x1B<<8) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x1C<<8) |(1<<CFlag)\r
+ .hword (0x1D<<8) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x1E<<8) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x1F<<8) |(1<<CFlag)\r
+ .hword (0x20<<8) |(1<<HFlag) |(1<<CFlag)\r
+ .hword (0x21<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x22<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x23<<8) |(1<<HFlag) |(1<<CFlag)\r
+ .hword (0x24<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x25<<8) |(1<<HFlag) |(1<<CFlag)\r
+ .hword (0x26<<8) |(1<<CFlag)\r
+ .hword (0x27<<8) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x28<<8) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x29<<8) |(1<<CFlag)\r
+ .hword (0x2A<<8) |(1<<CFlag)\r
+ .hword (0x2B<<8) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x2C<<8) |(1<<CFlag)\r
+ .hword (0x2D<<8) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x2E<<8) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x2F<<8) |(1<<CFlag)\r
+ .hword (0x30<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x31<<8) |(1<<HFlag) |(1<<CFlag)\r
+ .hword (0x32<<8) |(1<<HFlag) |(1<<CFlag)\r
+ .hword (0x33<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x34<<8) |(1<<HFlag) |(1<<CFlag)\r
+ .hword (0x35<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x36<<8) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x37<<8) |(1<<CFlag)\r
+ .hword (0x38<<8) |(1<<CFlag)\r
+ .hword (0x39<<8) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x3A<<8) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x3B<<8) |(1<<CFlag)\r
+ .hword (0x3C<<8) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x3D<<8) |(1<<CFlag)\r
+ .hword (0x3E<<8) |(1<<CFlag)\r
+ .hword (0x3F<<8) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x40<<8) |(1<<HFlag) |(1<<CFlag)\r
+ .hword (0x41<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x42<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x43<<8) |(1<<HFlag) |(1<<CFlag)\r
+ .hword (0x44<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x45<<8) |(1<<HFlag) |(1<<CFlag)\r
+ .hword (0x46<<8) |(1<<CFlag)\r
+ .hword (0x47<<8) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x48<<8) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x49<<8) |(1<<CFlag)\r
+ .hword (0x4A<<8) |(1<<CFlag)\r
+ .hword (0x4B<<8) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x4C<<8) |(1<<CFlag)\r
+ .hword (0x4D<<8) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x4E<<8) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x4F<<8) |(1<<CFlag)\r
+ .hword (0x50<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x51<<8) |(1<<HFlag) |(1<<CFlag)\r
+ .hword (0x52<<8) |(1<<HFlag) |(1<<CFlag)\r
+ .hword (0x53<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x54<<8) |(1<<HFlag) |(1<<CFlag)\r
+ .hword (0x55<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x56<<8) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x57<<8) |(1<<CFlag)\r
+ .hword (0x58<<8) |(1<<CFlag)\r
+ .hword (0x59<<8) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x5A<<8) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x5B<<8) |(1<<CFlag)\r
+ .hword (0x5C<<8) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x5D<<8) |(1<<CFlag)\r
+ .hword (0x5E<<8) |(1<<CFlag)\r
+ .hword (0x5F<<8) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x60<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x61<<8) |(1<<HFlag) |(1<<CFlag)\r
+ .hword (0x62<<8) |(1<<HFlag) |(1<<CFlag)\r
+ .hword (0x63<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x64<<8) |(1<<HFlag) |(1<<CFlag)\r
+ .hword (0x65<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x66<<8) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x67<<8) |(1<<CFlag)\r
+ .hword (0x68<<8) |(1<<CFlag)\r
+ .hword (0x69<<8) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x6A<<8) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x6B<<8) |(1<<CFlag)\r
+ .hword (0x6C<<8) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x6D<<8) |(1<<CFlag)\r
+ .hword (0x6E<<8) |(1<<CFlag)\r
+ .hword (0x6F<<8) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x70<<8) |(1<<HFlag) |(1<<CFlag)\r
+ .hword (0x71<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x72<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x73<<8) |(1<<HFlag) |(1<<CFlag)\r
+ .hword (0x74<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x75<<8) |(1<<HFlag) |(1<<CFlag)\r
+ .hword (0x76<<8) |(1<<CFlag)\r
+ .hword (0x77<<8) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x78<<8) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x79<<8) |(1<<CFlag)\r
+ .hword (0x7A<<8) |(1<<CFlag)\r
+ .hword (0x7B<<8) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x7C<<8) |(1<<CFlag)\r
+ .hword (0x7D<<8) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x7E<<8) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x7F<<8) |(1<<CFlag)\r
+ .hword (0x80<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
+ .hword (0x81<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x82<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x83<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
+ .hword (0x84<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x85<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
+ .hword (0x86<<8)|(1<<SFlag) |(1<<CFlag)\r
+ .hword (0x87<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x88<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x89<<8)|(1<<SFlag) |(1<<CFlag)\r
+ .hword (0x8A<<8)|(1<<SFlag) |(1<<CFlag)\r
+ .hword (0x8B<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x8C<<8)|(1<<SFlag) |(1<<CFlag)\r
+ .hword (0x8D<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x8E<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x8F<<8)|(1<<SFlag) |(1<<CFlag)\r
+ .hword (0x90<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x91<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
+ .hword (0x92<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
+ .hword (0x93<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x94<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
+ .hword (0x95<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x96<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x97<<8)|(1<<SFlag) |(1<<CFlag)\r
+ .hword (0x98<<8)|(1<<SFlag) |(1<<CFlag)\r
+ .hword (0x99<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x9A<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x9B<<8)|(1<<SFlag) |(1<<CFlag)\r
+ .hword (0x9C<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x9D<<8)|(1<<SFlag) |(1<<CFlag)\r
+ .hword (0x9E<<8)|(1<<SFlag) |(1<<CFlag)\r
+ .hword (0x9F<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0xA0<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0xA1<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
+ .hword (0xA2<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
+ .hword (0xA3<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0xA4<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
+ .hword (0xA5<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0xA6<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0xA7<<8)|(1<<SFlag) |(1<<CFlag)\r
+ .hword (0xA8<<8)|(1<<SFlag) |(1<<CFlag)\r
+ .hword (0xA9<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0xAA<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0xAB<<8)|(1<<SFlag) |(1<<CFlag)\r
+ .hword (0xAC<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0xAD<<8)|(1<<SFlag) |(1<<CFlag)\r
+ .hword (0xAE<<8)|(1<<SFlag) |(1<<CFlag)\r
+ .hword (0xAF<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0xB0<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
+ .hword (0xB1<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0xB2<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0xB3<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
+ .hword (0xB4<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0xB5<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
+ .hword (0xB6<<8)|(1<<SFlag) |(1<<CFlag)\r
+ .hword (0xB7<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0xB8<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0xB9<<8)|(1<<SFlag) |(1<<CFlag)\r
+ .hword (0xBA<<8)|(1<<SFlag) |(1<<CFlag)\r
+ .hword (0xBB<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0xBC<<8)|(1<<SFlag) |(1<<CFlag)\r
+ .hword (0xBD<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0xBE<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0xBF<<8)|(1<<SFlag) |(1<<CFlag)\r
+ .hword (0xC0<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0xC1<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
+ .hword (0xC2<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
+ .hword (0xC3<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0xC4<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
+ .hword (0xC5<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0xC6<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0xC7<<8)|(1<<SFlag) |(1<<CFlag)\r
+ .hword (0xC8<<8)|(1<<SFlag) |(1<<CFlag)\r
+ .hword (0xC9<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0xCA<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0xCB<<8)|(1<<SFlag) |(1<<CFlag)\r
+ .hword (0xCC<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0xCD<<8)|(1<<SFlag) |(1<<CFlag)\r
+ .hword (0xCE<<8)|(1<<SFlag) |(1<<CFlag)\r
+ .hword (0xCF<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0xD0<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
+ .hword (0xD1<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0xD2<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0xD3<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
+ .hword (0xD4<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0xD5<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
+ .hword (0xD6<<8)|(1<<SFlag) |(1<<CFlag)\r
+ .hword (0xD7<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0xD8<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0xD9<<8)|(1<<SFlag) |(1<<CFlag)\r
+ .hword (0xDA<<8)|(1<<SFlag) |(1<<CFlag)\r
+ .hword (0xDB<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0xDC<<8)|(1<<SFlag) |(1<<CFlag)\r
+ .hword (0xDD<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0xDE<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0xDF<<8)|(1<<SFlag) |(1<<CFlag)\r
+ .hword (0xE0<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
+ .hword (0xE1<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0xE2<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0xE3<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
+ .hword (0xE4<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0xE5<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
+ .hword (0xE6<<8)|(1<<SFlag) |(1<<CFlag)\r
+ .hword (0xE7<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0xE8<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0xE9<<8)|(1<<SFlag) |(1<<CFlag)\r
+ .hword (0xEA<<8)|(1<<SFlag) |(1<<CFlag)\r
+ .hword (0xEB<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0xEC<<8)|(1<<SFlag) |(1<<CFlag)\r
+ .hword (0xED<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0xEE<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0xEF<<8)|(1<<SFlag) |(1<<CFlag)\r
+ .hword (0xF0<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0xF1<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
+ .hword (0xF2<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
+ .hword (0xF3<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0xF4<<8)|(1<<SFlag) |(1<<HFlag) |(1<<CFlag)\r
+ .hword (0xF5<<8)|(1<<SFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0xF6<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0xF7<<8)|(1<<SFlag) |(1<<CFlag)\r
+ .hword (0xF8<<8)|(1<<SFlag) |(1<<CFlag)\r
+ .hword (0xF9<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0xFA<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0xFB<<8)|(1<<SFlag) |(1<<CFlag)\r
+ .hword (0xFC<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0xFD<<8)|(1<<SFlag) |(1<<CFlag)\r
+ .hword (0xFE<<8)|(1<<SFlag) |(1<<CFlag)\r
+ .hword (0xFF<<8)|(1<<SFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x00<<8) |(1<<ZFlag) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x01<<8) |(1<<HFlag) |(1<<CFlag)\r
+ .hword (0x02<<8) |(1<<HFlag) |(1<<CFlag)\r
+ .hword (0x03<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x04<<8) |(1<<HFlag) |(1<<CFlag)\r
+ .hword (0x05<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x06<<8) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x07<<8) |(1<<CFlag)\r
+ .hword (0x08<<8) |(1<<CFlag)\r
+ .hword (0x09<<8) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x0A<<8) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x0B<<8) |(1<<CFlag)\r
+ .hword (0x0C<<8) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x0D<<8) |(1<<CFlag)\r
+ .hword (0x0E<<8) |(1<<CFlag)\r
+ .hword (0x0F<<8) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x10<<8) |(1<<HFlag) |(1<<CFlag)\r
+ .hword (0x11<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x12<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x13<<8) |(1<<HFlag) |(1<<CFlag)\r
+ .hword (0x14<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x15<<8) |(1<<HFlag) |(1<<CFlag)\r
+ .hword (0x16<<8) |(1<<CFlag)\r
+ .hword (0x17<<8) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x18<<8) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x19<<8) |(1<<CFlag)\r
+ .hword (0x1A<<8) |(1<<CFlag)\r
+ .hword (0x1B<<8) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x1C<<8) |(1<<CFlag)\r
+ .hword (0x1D<<8) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x1E<<8) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x1F<<8) |(1<<CFlag)\r
+ .hword (0x20<<8) |(1<<HFlag) |(1<<CFlag)\r
+ .hword (0x21<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x22<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x23<<8) |(1<<HFlag) |(1<<CFlag)\r
+ .hword (0x24<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x25<<8) |(1<<HFlag) |(1<<CFlag)\r
+ .hword (0x26<<8) |(1<<CFlag)\r
+ .hword (0x27<<8) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x28<<8) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x29<<8) |(1<<CFlag)\r
+ .hword (0x2A<<8) |(1<<CFlag)\r
+ .hword (0x2B<<8) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x2C<<8) |(1<<CFlag)\r
+ .hword (0x2D<<8) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x2E<<8) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x2F<<8) |(1<<CFlag)\r
+ .hword (0x30<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x31<<8) |(1<<HFlag) |(1<<CFlag)\r
+ .hword (0x32<<8) |(1<<HFlag) |(1<<CFlag)\r
+ .hword (0x33<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x34<<8) |(1<<HFlag) |(1<<CFlag)\r
+ .hword (0x35<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x36<<8) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x37<<8) |(1<<CFlag)\r
+ .hword (0x38<<8) |(1<<CFlag)\r
+ .hword (0x39<<8) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x3A<<8) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x3B<<8) |(1<<CFlag)\r
+ .hword (0x3C<<8) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x3D<<8) |(1<<CFlag)\r
+ .hword (0x3E<<8) |(1<<CFlag)\r
+ .hword (0x3F<<8) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x40<<8) |(1<<HFlag) |(1<<CFlag)\r
+ .hword (0x41<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x42<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x43<<8) |(1<<HFlag) |(1<<CFlag)\r
+ .hword (0x44<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x45<<8) |(1<<HFlag) |(1<<CFlag)\r
+ .hword (0x46<<8) |(1<<CFlag)\r
+ .hword (0x47<<8) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x48<<8) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x49<<8) |(1<<CFlag)\r
+ .hword (0x4A<<8) |(1<<CFlag)\r
+ .hword (0x4B<<8) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x4C<<8) |(1<<CFlag)\r
+ .hword (0x4D<<8) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x4E<<8) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x4F<<8) |(1<<CFlag)\r
+ .hword (0x50<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x51<<8) |(1<<HFlag) |(1<<CFlag)\r
+ .hword (0x52<<8) |(1<<HFlag) |(1<<CFlag)\r
+ .hword (0x53<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x54<<8) |(1<<HFlag) |(1<<CFlag)\r
+ .hword (0x55<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x56<<8) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x57<<8) |(1<<CFlag)\r
+ .hword (0x58<<8) |(1<<CFlag)\r
+ .hword (0x59<<8) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x5A<<8) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x5B<<8) |(1<<CFlag)\r
+ .hword (0x5C<<8) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x5D<<8) |(1<<CFlag)\r
+ .hword (0x5E<<8) |(1<<CFlag)\r
+ .hword (0x5F<<8) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x60<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x61<<8) |(1<<HFlag) |(1<<CFlag)\r
+ .hword (0x62<<8) |(1<<HFlag) |(1<<CFlag)\r
+ .hword (0x63<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x64<<8) |(1<<HFlag) |(1<<CFlag)\r
+ .hword (0x65<<8) |(1<<HFlag) |(1<<VFlag) |(1<<CFlag)\r
+ .hword (0x00<<8) |(1<<ZFlag) |(1<<VFlag)|(1<<NFlag) \r
+ .hword (0x01<<8) |(1<<NFlag) \r
+ .hword (0x02<<8) |(1<<NFlag) \r
+ .hword (0x03<<8) |(1<<VFlag)|(1<<NFlag) \r
+ .hword (0x04<<8) |(1<<NFlag) \r
+ .hword (0x05<<8) |(1<<VFlag)|(1<<NFlag) \r
+ .hword (0x06<<8) |(1<<VFlag)|(1<<NFlag) \r
+ .hword (0x07<<8) |(1<<NFlag) \r
+ .hword (0x08<<8) |(1<<NFlag) \r
+ .hword (0x09<<8) |(1<<VFlag)|(1<<NFlag) \r
+ .hword (0x04<<8) |(1<<NFlag) \r
+ .hword (0x05<<8) |(1<<VFlag)|(1<<NFlag) \r
+ .hword (0x06<<8) |(1<<VFlag)|(1<<NFlag) \r
+ .hword (0x07<<8) |(1<<NFlag) \r
+ .hword (0x08<<8) |(1<<NFlag) \r
+ .hword (0x09<<8) |(1<<VFlag)|(1<<NFlag) \r
+ .hword (0x10<<8) |(1<<NFlag) \r
+ .hword (0x11<<8) |(1<<VFlag)|(1<<NFlag) \r
+ .hword (0x12<<8) |(1<<VFlag)|(1<<NFlag) \r
+ .hword (0x13<<8) |(1<<NFlag) \r
+ .hword (0x14<<8) |(1<<VFlag)|(1<<NFlag) \r
+ .hword (0x15<<8) |(1<<NFlag) \r
+ .hword (0x16<<8) |(1<<NFlag) \r
+ .hword (0x17<<8) |(1<<VFlag)|(1<<NFlag) \r
+ .hword (0x18<<8) |(1<<VFlag)|(1<<NFlag) \r
+ .hword (0x19<<8) |(1<<NFlag) \r
+ .hword (0x14<<8) |(1<<VFlag)|(1<<NFlag) \r
+ .hword (0x15<<8) |(1<<NFlag) \r
+ .hword (0x16<<8) |(1<<NFlag) \r
+ .hword (0x17<<8) |(1<<VFlag)|(1<<NFlag) \r
+ .hword (0x18<<8) |(1<<VFlag)|(1<<NFlag) \r
+ .hword (0x19<<8) |(1<<NFlag) \r
+ .hword (0x20<<8) |(1<<NFlag) \r
+ .hword (0x21<<8) |(1<<VFlag)|(1<<NFlag) \r
+ .hword (0x22<<8) |(1<<VFlag)|(1<<NFlag) \r
+ .hword (0x23<<8) |(1<<NFlag) \r
+ .hword (0x24<<8) |(1<<VFlag)|(1<<NFlag) \r
+ .hword (0x25<<8) |(1<<NFlag) \r
+ .hword (0x26<<8) |(1<<NFlag) \r
+ .hword (0x27<<8) |(1<<VFlag)|(1<<NFlag) \r
+ .hword (0x28<<8) |(1<<VFlag)|(1<<NFlag) \r
+ .hword (0x29<<8) |(1<<NFlag) \r
+ .hword (0x24<<8) |(1<<VFlag)|(1<<NFlag) \r
+ .hword (0x25<<8) |(1<<NFlag) \r
+ .hword (0x26<<8) |(1<<NFlag) \r
+ .hword (0x27<<8) |(1<<VFlag)|(1<<NFlag) \r
+ .hword (0x28<<8) |(1<<VFlag)|(1<<NFlag) \r
+ .hword (0x29<<8) |(1<<NFlag) \r
+ .hword (0x30<<8) |(1<<VFlag)|(1<<NFlag) \r
+ .hword (0x31<<8) |(1<<NFlag) \r
+ .hword (0x32<<8) |(1<<NFlag) \r
+ .hword (0x33<<8) |(1<<VFlag)|(1<<NFlag) \r
+ .hword (0x34<<8) |(1<<NFlag) \r
+ .hword (0x35<<8) |(1<<VFlag)|(1<<NFlag) \r
+ .hword (0x36<<8) |(1<<VFlag)|(1<<NFlag) \r
+ .hword (0x37<<8) |(1<<NFlag) \r
+ .hword (0x38<<8) |(1<<NFlag) \r
+ .hword (0x39<<8) |(1<<VFlag)|(1<<NFlag) \r
+ .hword (0x34<<8) |(1<<NFlag) \r
+ .hword (0x35<<8) |(1<<VFlag)|(1<<NFlag) \r
+ .hword (0x36<<8) |(1<<VFlag)|(1<<NFlag) \r
+ .hword (0x37<<8) |(1<<NFlag) \r
+ .hword (0x38<<8) |(1<<NFlag) \r
+ .hword (0x39<<8) |(1<<VFlag)|(1<<NFlag) \r
+ .hword (0x40<<8) |(1<<NFlag) \r
+ .hword (0x41<<8) |(1<<VFlag)|(1<<NFlag) \r
+ .hword (0x42<<8) |(1<<VFlag)|(1<<NFlag) \r
+ .hword (0x43<<8) |(1<<NFlag) \r
+ .hword (0x44<<8) |(1<<VFlag)|(1<<NFlag) \r
+ .hword (0x45<<8) |(1<<NFlag) \r
+ .hword (0x46<<8) |(1<<NFlag) \r
+ .hword (0x47<<8) |(1<<VFlag)|(1<<NFlag) \r
+ .hword (0x48<<8) |(1<<VFlag)|(1<<NFlag) \r
+ .hword (0x49<<8) |(1<<NFlag) \r
+ .hword (0x44<<8) |(1<<VFlag)|(1<<NFlag) \r
+ .hword (0x45<<8) |(1<<NFlag) \r
+ .hword (0x46<<8) |(1<<NFlag) \r
+ .hword (0x47<<8) |(1<<VFlag)|(1<<NFlag) \r
+ .hword (0x48<<8) |(1<<VFlag)|(1<<NFlag) \r
+ .hword (0x49<<8) |(1<<NFlag) \r
+ .hword (0x50<<8) |(1<<VFlag)|(1<<NFlag) \r
+ .hword (0x51<<8) |(1<<NFlag) \r
+ .hword (0x52<<8) |(1<<NFlag) \r
+ .hword (0x53<<8) |(1<<VFlag)|(1<<NFlag) \r
+ .hword (0x54<<8) |(1<<NFlag) \r
+ .hword (0x55<<8) |(1<<VFlag)|(1<<NFlag) \r
+ .hword (0x56<<8) |(1<<VFlag)|(1<<NFlag) \r
+ .hword (0x57<<8) |(1<<NFlag) \r
+ .hword (0x58<<8) |(1<<NFlag) \r
+ .hword (0x59<<8) |(1<<VFlag)|(1<<NFlag) \r
+ .hword (0x54<<8) |(1<<NFlag) \r
+ .hword (0x55<<8) |(1<<VFlag)|(1<<NFlag) \r
+ .hword (0x56<<8) |(1<<VFlag)|(1<<NFlag) \r
+ .hword (0x57<<8) |(1<<NFlag) \r
+ .hword (0x58<<8) |(1<<NFlag) \r
+ .hword (0x59<<8) |(1<<VFlag)|(1<<NFlag) \r
+ .hword (0x60<<8) |(1<<VFlag)|(1<<NFlag) \r
+ .hword (0x61<<8) |(1<<NFlag) \r
+ .hword (0x62<<8) |(1<<NFlag) \r
+ .hword (0x63<<8) |(1<<VFlag)|(1<<NFlag) \r
+ .hword (0x64<<8) |(1<<NFlag) \r
+ .hword (0x65<<8) |(1<<VFlag)|(1<<NFlag) \r
+ .hword (0x66<<8) |(1<<VFlag)|(1<<NFlag) \r
+ .hword (0x67<<8) |(1<<NFlag) \r
+ .hword (0x68<<8) |(1<<NFlag) \r
+ .hword (0x69<<8) |(1<<VFlag)|(1<<NFlag) \r
+ .hword (0x64<<8) |(1<<NFlag) \r
+ .hword (0x65<<8) |(1<<VFlag)|(1<<NFlag) \r
+ .hword (0x66<<8) |(1<<VFlag)|(1<<NFlag) \r
+ .hword (0x67<<8) |(1<<NFlag) \r
+ .hword (0x68<<8) |(1<<NFlag) \r
+ .hword (0x69<<8) |(1<<VFlag)|(1<<NFlag) \r
+ .hword (0x70<<8) |(1<<NFlag) \r
+ .hword (0x71<<8) |(1<<VFlag)|(1<<NFlag) \r
+ .hword (0x72<<8) |(1<<VFlag)|(1<<NFlag) \r
+ .hword (0x73<<8) |(1<<NFlag) \r
+ .hword (0x74<<8) |(1<<VFlag)|(1<<NFlag) \r
+ .hword (0x75<<8) |(1<<NFlag) \r
+ .hword (0x76<<8) |(1<<NFlag) \r
+ .hword (0x77<<8) |(1<<VFlag)|(1<<NFlag) \r
+ .hword (0x78<<8) |(1<<VFlag)|(1<<NFlag) \r
+ .hword (0x79<<8) |(1<<NFlag) \r
+ .hword (0x74<<8) |(1<<VFlag)|(1<<NFlag) \r
+ .hword (0x75<<8) |(1<<NFlag) \r
+ .hword (0x76<<8) |(1<<NFlag) \r
+ .hword (0x77<<8) |(1<<VFlag)|(1<<NFlag) \r
+ .hword (0x78<<8) |(1<<VFlag)|(1<<NFlag) \r
+ .hword (0x79<<8) |(1<<NFlag) \r
+ .hword (0x80<<8)|(1<<SFlag) |(1<<NFlag) \r
+ .hword (0x81<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag) \r
+ .hword (0x82<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag) \r
+ .hword (0x83<<8)|(1<<SFlag) |(1<<NFlag) \r
+ .hword (0x84<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag) \r
+ .hword (0x85<<8)|(1<<SFlag) |(1<<NFlag) \r
+ .hword (0x86<<8)|(1<<SFlag) |(1<<NFlag) \r
+ .hword (0x87<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag) \r
+ .hword (0x88<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag) \r
+ .hword (0x89<<8)|(1<<SFlag) |(1<<NFlag) \r
+ .hword (0x84<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag) \r
+ .hword (0x85<<8)|(1<<SFlag) |(1<<NFlag) \r
+ .hword (0x86<<8)|(1<<SFlag) |(1<<NFlag) \r
+ .hword (0x87<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag) \r
+ .hword (0x88<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag) \r
+ .hword (0x89<<8)|(1<<SFlag) |(1<<NFlag) \r
+ .hword (0x90<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag) \r
+ .hword (0x91<<8)|(1<<SFlag) |(1<<NFlag) \r
+ .hword (0x92<<8)|(1<<SFlag) |(1<<NFlag) \r
+ .hword (0x93<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag) \r
+ .hword (0x94<<8)|(1<<SFlag) |(1<<NFlag) \r
+ .hword (0x95<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag) \r
+ .hword (0x96<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag) \r
+ .hword (0x97<<8)|(1<<SFlag) |(1<<NFlag) \r
+ .hword (0x98<<8)|(1<<SFlag) |(1<<NFlag) \r
+ .hword (0x99<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag) \r
+ .hword (0x34<<8) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x35<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x36<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x37<<8) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x38<<8) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x39<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x40<<8) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x41<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x42<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x43<<8) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x44<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x45<<8) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x46<<8) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x47<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x48<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x49<<8) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x44<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x45<<8) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x46<<8) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x47<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x48<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x49<<8) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x50<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x51<<8) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x52<<8) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x53<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x54<<8) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x55<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x56<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x57<<8) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x58<<8) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x59<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x54<<8) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x55<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x56<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x57<<8) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x58<<8) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x59<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x60<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x61<<8) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x62<<8) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x63<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x64<<8) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x65<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x66<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x67<<8) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x68<<8) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x69<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x64<<8) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x65<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x66<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x67<<8) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x68<<8) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x69<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x70<<8) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x71<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x72<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x73<<8) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x74<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x75<<8) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x76<<8) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x77<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x78<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x79<<8) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x74<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x75<<8) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x76<<8) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x77<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x78<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x79<<8) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x80<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x81<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x82<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x83<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x84<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x85<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x86<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x87<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x88<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x89<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x84<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x85<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x86<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x87<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x88<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x89<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x90<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x91<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x92<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x93<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x94<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x95<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x96<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x97<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x98<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x99<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x94<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x95<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x96<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x97<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x98<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x99<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xA0<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xA1<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xA2<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xA3<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xA4<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xA5<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xA6<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xA7<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xA8<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xA9<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xA4<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xA5<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xA6<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xA7<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xA8<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xA9<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xB0<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xB1<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xB2<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xB3<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xB4<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xB5<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xB6<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xB7<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xB8<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xB9<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xB4<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xB5<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xB6<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xB7<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xB8<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xB9<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xC0<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xC1<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xC2<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xC3<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xC4<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xC5<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xC6<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xC7<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xC8<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xC9<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xC4<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xC5<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xC6<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xC7<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xC8<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xC9<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xD0<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xD1<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xD2<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xD3<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xD4<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xD5<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xD6<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xD7<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xD8<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xD9<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xD4<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xD5<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xD6<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xD7<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xD8<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xD9<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xE0<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xE1<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xE2<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xE3<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xE4<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xE5<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xE6<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xE7<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xE8<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xE9<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xE4<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xE5<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xE6<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xE7<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xE8<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xE9<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xF0<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xF1<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xF2<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xF3<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xF4<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xF5<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xF6<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xF7<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xF8<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xF9<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xF4<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xF5<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xF6<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xF7<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xF8<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xF9<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x00<<8) |(1<<ZFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x01<<8) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x02<<8) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x03<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x04<<8) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x05<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x06<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x07<<8) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x08<<8) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x09<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x04<<8) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x05<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x06<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x07<<8) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x08<<8) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x09<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x10<<8) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x11<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x12<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x13<<8) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x14<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x15<<8) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x16<<8) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x17<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x18<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x19<<8) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x14<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x15<<8) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x16<<8) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x17<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x18<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x19<<8) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x20<<8) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x21<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x22<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x23<<8) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x24<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x25<<8) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x26<<8) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x27<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x28<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x29<<8) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x24<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x25<<8) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x26<<8) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x27<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x28<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x29<<8) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x30<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x31<<8) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x32<<8) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x33<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x34<<8) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x35<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x36<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x37<<8) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x38<<8) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x39<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x34<<8) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x35<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x36<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x37<<8) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x38<<8) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x39<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x40<<8) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x41<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x42<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x43<<8) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x44<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x45<<8) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x46<<8) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x47<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x48<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x49<<8) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x44<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x45<<8) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x46<<8) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x47<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x48<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x49<<8) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x50<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x51<<8) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x52<<8) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x53<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x54<<8) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x55<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x56<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x57<<8) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x58<<8) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x59<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x54<<8) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x55<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x56<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x57<<8) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x58<<8) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x59<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x60<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x61<<8) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x62<<8) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x63<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x64<<8) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x65<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x66<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x67<<8) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x68<<8) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x69<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x64<<8) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x65<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x66<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x67<<8) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x68<<8) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x69<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x70<<8) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x71<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x72<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x73<<8) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x74<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x75<<8) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x76<<8) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x77<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x78<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x79<<8) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x74<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x75<<8) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x76<<8) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x77<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x78<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x79<<8) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x80<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x81<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x82<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x83<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x84<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x85<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x86<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x87<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x88<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x89<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x84<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x85<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x86<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x87<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x88<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x89<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x90<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x91<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x92<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x93<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x94<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x95<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x96<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x97<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x98<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x99<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x94<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x95<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x96<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x97<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x98<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x99<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xFA<<8)|(1<<SFlag) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag) \r
+ .hword (0xFB<<8)|(1<<SFlag) |(1<<HFlag) |(1<<NFlag) \r
+ .hword (0xFC<<8)|(1<<SFlag) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag) \r
+ .hword (0xFD<<8)|(1<<SFlag) |(1<<HFlag) |(1<<NFlag) \r
+ .hword (0xFE<<8)|(1<<SFlag) |(1<<HFlag) |(1<<NFlag) \r
+ .hword (0xFF<<8)|(1<<SFlag) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag) \r
+ .hword (0x00<<8) |(1<<ZFlag) |(1<<VFlag)|(1<<NFlag) \r
+ .hword (0x01<<8) |(1<<NFlag) \r
+ .hword (0x02<<8) |(1<<NFlag) \r
+ .hword (0x03<<8) |(1<<VFlag)|(1<<NFlag) \r
+ .hword (0x04<<8) |(1<<NFlag) \r
+ .hword (0x05<<8) |(1<<VFlag)|(1<<NFlag) \r
+ .hword (0x06<<8) |(1<<VFlag)|(1<<NFlag) \r
+ .hword (0x07<<8) |(1<<NFlag) \r
+ .hword (0x08<<8) |(1<<NFlag) \r
+ .hword (0x09<<8) |(1<<VFlag)|(1<<NFlag) \r
+ .hword (0x0A<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag) \r
+ .hword (0x0B<<8) |(1<<HFlag) |(1<<NFlag) \r
+ .hword (0x0C<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag) \r
+ .hword (0x0D<<8) |(1<<HFlag) |(1<<NFlag) \r
+ .hword (0x0E<<8) |(1<<HFlag) |(1<<NFlag) \r
+ .hword (0x0F<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag) \r
+ .hword (0x10<<8) |(1<<NFlag) \r
+ .hword (0x11<<8) |(1<<VFlag)|(1<<NFlag) \r
+ .hword (0x12<<8) |(1<<VFlag)|(1<<NFlag) \r
+ .hword (0x13<<8) |(1<<NFlag) \r
+ .hword (0x14<<8) |(1<<VFlag)|(1<<NFlag) \r
+ .hword (0x15<<8) |(1<<NFlag) \r
+ .hword (0x16<<8) |(1<<NFlag) \r
+ .hword (0x17<<8) |(1<<VFlag)|(1<<NFlag) \r
+ .hword (0x18<<8) |(1<<VFlag)|(1<<NFlag) \r
+ .hword (0x19<<8) |(1<<NFlag) \r
+ .hword (0x1A<<8) |(1<<HFlag) |(1<<NFlag) \r
+ .hword (0x1B<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag) \r
+ .hword (0x1C<<8) |(1<<HFlag) |(1<<NFlag) \r
+ .hword (0x1D<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag) \r
+ .hword (0x1E<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag) \r
+ .hword (0x1F<<8) |(1<<HFlag) |(1<<NFlag) \r
+ .hword (0x20<<8) |(1<<NFlag) \r
+ .hword (0x21<<8) |(1<<VFlag)|(1<<NFlag) \r
+ .hword (0x22<<8) |(1<<VFlag)|(1<<NFlag) \r
+ .hword (0x23<<8) |(1<<NFlag) \r
+ .hword (0x24<<8) |(1<<VFlag)|(1<<NFlag) \r
+ .hword (0x25<<8) |(1<<NFlag) \r
+ .hword (0x26<<8) |(1<<NFlag) \r
+ .hword (0x27<<8) |(1<<VFlag)|(1<<NFlag) \r
+ .hword (0x28<<8) |(1<<VFlag)|(1<<NFlag) \r
+ .hword (0x29<<8) |(1<<NFlag) \r
+ .hword (0x2A<<8) |(1<<HFlag) |(1<<NFlag) \r
+ .hword (0x2B<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag) \r
+ .hword (0x2C<<8) |(1<<HFlag) |(1<<NFlag) \r
+ .hword (0x2D<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag) \r
+ .hword (0x2E<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag) \r
+ .hword (0x2F<<8) |(1<<HFlag) |(1<<NFlag) \r
+ .hword (0x30<<8) |(1<<VFlag)|(1<<NFlag) \r
+ .hword (0x31<<8) |(1<<NFlag) \r
+ .hword (0x32<<8) |(1<<NFlag) \r
+ .hword (0x33<<8) |(1<<VFlag)|(1<<NFlag) \r
+ .hword (0x34<<8) |(1<<NFlag) \r
+ .hword (0x35<<8) |(1<<VFlag)|(1<<NFlag) \r
+ .hword (0x36<<8) |(1<<VFlag)|(1<<NFlag) \r
+ .hword (0x37<<8) |(1<<NFlag) \r
+ .hword (0x38<<8) |(1<<NFlag) \r
+ .hword (0x39<<8) |(1<<VFlag)|(1<<NFlag) \r
+ .hword (0x3A<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag) \r
+ .hword (0x3B<<8) |(1<<HFlag) |(1<<NFlag) \r
+ .hword (0x3C<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag) \r
+ .hword (0x3D<<8) |(1<<HFlag) |(1<<NFlag) \r
+ .hword (0x3E<<8) |(1<<HFlag) |(1<<NFlag) \r
+ .hword (0x3F<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag) \r
+ .hword (0x40<<8) |(1<<NFlag) \r
+ .hword (0x41<<8) |(1<<VFlag)|(1<<NFlag) \r
+ .hword (0x42<<8) |(1<<VFlag)|(1<<NFlag) \r
+ .hword (0x43<<8) |(1<<NFlag) \r
+ .hword (0x44<<8) |(1<<VFlag)|(1<<NFlag) \r
+ .hword (0x45<<8) |(1<<NFlag) \r
+ .hword (0x46<<8) |(1<<NFlag) \r
+ .hword (0x47<<8) |(1<<VFlag)|(1<<NFlag) \r
+ .hword (0x48<<8) |(1<<VFlag)|(1<<NFlag) \r
+ .hword (0x49<<8) |(1<<NFlag) \r
+ .hword (0x4A<<8) |(1<<HFlag) |(1<<NFlag) \r
+ .hword (0x4B<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag) \r
+ .hword (0x4C<<8) |(1<<HFlag) |(1<<NFlag) \r
+ .hword (0x4D<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag) \r
+ .hword (0x4E<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag) \r
+ .hword (0x4F<<8) |(1<<HFlag) |(1<<NFlag) \r
+ .hword (0x50<<8) |(1<<VFlag)|(1<<NFlag) \r
+ .hword (0x51<<8) |(1<<NFlag) \r
+ .hword (0x52<<8) |(1<<NFlag) \r
+ .hword (0x53<<8) |(1<<VFlag)|(1<<NFlag) \r
+ .hword (0x54<<8) |(1<<NFlag) \r
+ .hword (0x55<<8) |(1<<VFlag)|(1<<NFlag) \r
+ .hword (0x56<<8) |(1<<VFlag)|(1<<NFlag) \r
+ .hword (0x57<<8) |(1<<NFlag) \r
+ .hword (0x58<<8) |(1<<NFlag) \r
+ .hword (0x59<<8) |(1<<VFlag)|(1<<NFlag) \r
+ .hword (0x5A<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag) \r
+ .hword (0x5B<<8) |(1<<HFlag) |(1<<NFlag) \r
+ .hword (0x5C<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag) \r
+ .hword (0x5D<<8) |(1<<HFlag) |(1<<NFlag) \r
+ .hword (0x5E<<8) |(1<<HFlag) |(1<<NFlag) \r
+ .hword (0x5F<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag) \r
+ .hword (0x60<<8) |(1<<VFlag)|(1<<NFlag) \r
+ .hword (0x61<<8) |(1<<NFlag) \r
+ .hword (0x62<<8) |(1<<NFlag) \r
+ .hword (0x63<<8) |(1<<VFlag)|(1<<NFlag) \r
+ .hword (0x64<<8) |(1<<NFlag) \r
+ .hword (0x65<<8) |(1<<VFlag)|(1<<NFlag) \r
+ .hword (0x66<<8) |(1<<VFlag)|(1<<NFlag) \r
+ .hword (0x67<<8) |(1<<NFlag) \r
+ .hword (0x68<<8) |(1<<NFlag) \r
+ .hword (0x69<<8) |(1<<VFlag)|(1<<NFlag) \r
+ .hword (0x6A<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag) \r
+ .hword (0x6B<<8) |(1<<HFlag) |(1<<NFlag) \r
+ .hword (0x6C<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag) \r
+ .hword (0x6D<<8) |(1<<HFlag) |(1<<NFlag) \r
+ .hword (0x6E<<8) |(1<<HFlag) |(1<<NFlag) \r
+ .hword (0x6F<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag) \r
+ .hword (0x70<<8) |(1<<NFlag) \r
+ .hword (0x71<<8) |(1<<VFlag)|(1<<NFlag) \r
+ .hword (0x72<<8) |(1<<VFlag)|(1<<NFlag) \r
+ .hword (0x73<<8) |(1<<NFlag) \r
+ .hword (0x74<<8) |(1<<VFlag)|(1<<NFlag) \r
+ .hword (0x75<<8) |(1<<NFlag) \r
+ .hword (0x76<<8) |(1<<NFlag) \r
+ .hword (0x77<<8) |(1<<VFlag)|(1<<NFlag) \r
+ .hword (0x78<<8) |(1<<VFlag)|(1<<NFlag) \r
+ .hword (0x79<<8) |(1<<NFlag) \r
+ .hword (0x7A<<8) |(1<<HFlag) |(1<<NFlag) \r
+ .hword (0x7B<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag) \r
+ .hword (0x7C<<8) |(1<<HFlag) |(1<<NFlag) \r
+ .hword (0x7D<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag) \r
+ .hword (0x7E<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag) \r
+ .hword (0x7F<<8) |(1<<HFlag) |(1<<NFlag) \r
+ .hword (0x80<<8)|(1<<SFlag) |(1<<NFlag) \r
+ .hword (0x81<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag) \r
+ .hword (0x82<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag) \r
+ .hword (0x83<<8)|(1<<SFlag) |(1<<NFlag) \r
+ .hword (0x84<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag) \r
+ .hword (0x85<<8)|(1<<SFlag) |(1<<NFlag) \r
+ .hword (0x86<<8)|(1<<SFlag) |(1<<NFlag) \r
+ .hword (0x87<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag) \r
+ .hword (0x88<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag) \r
+ .hword (0x89<<8)|(1<<SFlag) |(1<<NFlag) \r
+ .hword (0x8A<<8)|(1<<SFlag) |(1<<HFlag) |(1<<NFlag) \r
+ .hword (0x8B<<8)|(1<<SFlag) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag) \r
+ .hword (0x8C<<8)|(1<<SFlag) |(1<<HFlag) |(1<<NFlag) \r
+ .hword (0x8D<<8)|(1<<SFlag) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag) \r
+ .hword (0x8E<<8)|(1<<SFlag) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag) \r
+ .hword (0x8F<<8)|(1<<SFlag) |(1<<HFlag) |(1<<NFlag) \r
+ .hword (0x90<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag) \r
+ .hword (0x91<<8)|(1<<SFlag) |(1<<NFlag) \r
+ .hword (0x92<<8)|(1<<SFlag) |(1<<NFlag) \r
+ .hword (0x93<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag) \r
+ .hword (0x34<<8) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x35<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x36<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x37<<8) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x38<<8) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x39<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x3A<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x3B<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x3C<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x3D<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x3E<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x3F<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x40<<8) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x41<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x42<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x43<<8) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x44<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x45<<8) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x46<<8) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x47<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x48<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x49<<8) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x4A<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x4B<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x4C<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x4D<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x4E<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x4F<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x50<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x51<<8) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x52<<8) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x53<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x54<<8) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x55<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x56<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x57<<8) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x58<<8) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x59<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x5A<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x5B<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x5C<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x5D<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x5E<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x5F<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x60<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x61<<8) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x62<<8) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x63<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x64<<8) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x65<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x66<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x67<<8) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x68<<8) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x69<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x6A<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x6B<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x6C<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x6D<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x6E<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x6F<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x70<<8) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x71<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x72<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x73<<8) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x74<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x75<<8) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x76<<8) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x77<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x78<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x79<<8) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x7A<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x7B<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x7C<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x7D<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x7E<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x7F<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x80<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x81<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x82<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x83<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x84<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x85<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x86<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x87<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x88<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x89<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x8A<<8)|(1<<SFlag) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x8B<<8)|(1<<SFlag) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x8C<<8)|(1<<SFlag) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x8D<<8)|(1<<SFlag) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x8E<<8)|(1<<SFlag) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x8F<<8)|(1<<SFlag) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x90<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x91<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x92<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x93<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x94<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x95<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x96<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x97<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x98<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x99<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x9A<<8)|(1<<SFlag) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x9B<<8)|(1<<SFlag) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x9C<<8)|(1<<SFlag) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x9D<<8)|(1<<SFlag) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x9E<<8)|(1<<SFlag) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x9F<<8)|(1<<SFlag) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xA0<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xA1<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xA2<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xA3<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xA4<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xA5<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xA6<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xA7<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xA8<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xA9<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xAA<<8)|(1<<SFlag) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xAB<<8)|(1<<SFlag) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xAC<<8)|(1<<SFlag) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xAD<<8)|(1<<SFlag) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xAE<<8)|(1<<SFlag) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xAF<<8)|(1<<SFlag) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xB0<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xB1<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xB2<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xB3<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xB4<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xB5<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xB6<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xB7<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xB8<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xB9<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xBA<<8)|(1<<SFlag) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xBB<<8)|(1<<SFlag) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xBC<<8)|(1<<SFlag) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xBD<<8)|(1<<SFlag) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xBE<<8)|(1<<SFlag) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xBF<<8)|(1<<SFlag) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xC0<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xC1<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xC2<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xC3<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xC4<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xC5<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xC6<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xC7<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xC8<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xC9<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xCA<<8)|(1<<SFlag) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xCB<<8)|(1<<SFlag) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xCC<<8)|(1<<SFlag) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xCD<<8)|(1<<SFlag) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xCE<<8)|(1<<SFlag) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xCF<<8)|(1<<SFlag) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xD0<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xD1<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xD2<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xD3<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xD4<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xD5<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xD6<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xD7<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xD8<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xD9<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xDA<<8)|(1<<SFlag) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xDB<<8)|(1<<SFlag) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xDC<<8)|(1<<SFlag) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xDD<<8)|(1<<SFlag) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xDE<<8)|(1<<SFlag) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xDF<<8)|(1<<SFlag) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xE0<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xE1<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xE2<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xE3<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xE4<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xE5<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xE6<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xE7<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xE8<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xE9<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xEA<<8)|(1<<SFlag) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xEB<<8)|(1<<SFlag) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xEC<<8)|(1<<SFlag) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xED<<8)|(1<<SFlag) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xEE<<8)|(1<<SFlag) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xEF<<8)|(1<<SFlag) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xF0<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xF1<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xF2<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xF3<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xF4<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xF5<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xF6<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xF7<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xF8<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xF9<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xFA<<8)|(1<<SFlag) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xFB<<8)|(1<<SFlag) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xFC<<8)|(1<<SFlag) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xFD<<8)|(1<<SFlag) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xFE<<8)|(1<<SFlag) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0xFF<<8)|(1<<SFlag) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x00<<8) |(1<<ZFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x01<<8) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x02<<8) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x03<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x04<<8) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x05<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x06<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x07<<8) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x08<<8) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x09<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x0A<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x0B<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x0C<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x0D<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x0E<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x0F<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x10<<8) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x11<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x12<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x13<<8) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x14<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x15<<8) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x16<<8) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x17<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x18<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x19<<8) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x1A<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x1B<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x1C<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x1D<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x1E<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x1F<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x20<<8) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x21<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x22<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x23<<8) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x24<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x25<<8) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x26<<8) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x27<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x28<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x29<<8) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x2A<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x2B<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x2C<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x2D<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x2E<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x2F<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x30<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x31<<8) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x32<<8) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x33<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x34<<8) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x35<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x36<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x37<<8) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x38<<8) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x39<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x3A<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x3B<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x3C<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x3D<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x3E<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x3F<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x40<<8) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x41<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x42<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x43<<8) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x44<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x45<<8) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x46<<8) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x47<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x48<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x49<<8) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x4A<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x4B<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x4C<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x4D<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x4E<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x4F<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x50<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x51<<8) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x52<<8) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x53<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x54<<8) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x55<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x56<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x57<<8) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x58<<8) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x59<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x5A<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x5B<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x5C<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x5D<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x5E<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x5F<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x60<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x61<<8) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x62<<8) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x63<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x64<<8) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x65<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x66<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x67<<8) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x68<<8) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x69<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x6A<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x6B<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x6C<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x6D<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x6E<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x6F<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x70<<8) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x71<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x72<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x73<<8) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x74<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x75<<8) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x76<<8) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x77<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x78<<8) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x79<<8) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x7A<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x7B<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x7C<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x7D<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x7E<<8) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x7F<<8) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x80<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x81<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x82<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x83<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x84<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x85<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x86<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x87<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x88<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x89<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x8A<<8)|(1<<SFlag) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x8B<<8)|(1<<SFlag) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x8C<<8)|(1<<SFlag) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x8D<<8)|(1<<SFlag) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x8E<<8)|(1<<SFlag) |(1<<HFlag)|(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x8F<<8)|(1<<SFlag) |(1<<HFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x90<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x91<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x92<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x93<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x94<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x95<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x96<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x97<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x98<<8)|(1<<SFlag) |(1<<NFlag)|(1<<CFlag)\r
+ .hword (0x99<<8)|(1<<SFlag) |(1<<VFlag)|(1<<NFlag)|(1<<CFlag)\r
+ \r
+.align 4\r
+\r
+AF_Z80: .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 0\r
+ .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 1\r
+ .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 2\r
+ .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 3\r
+ .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 4\r
+ .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 5\r
+ .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 6\r
+ .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 7\r
+ .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 8\r
+ .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 9\r
+ .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 10\r
+ .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 11\r
+ .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 12\r
+ .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 13\r
+ .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 14\r
+ .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 15\r
+ .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 16\r
+ .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 17\r
+ .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 18\r
+ .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 19\r
+ .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 20\r
+ .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 21\r
+ .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 22\r
+ .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 23\r
+ .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 24\r
+ .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 25\r
+ .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 26\r
+ .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 27\r
+ .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 28\r
+ .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 29\r
+ .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 30\r
+ .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 31\r
+ .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 32\r
+ .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 33\r
+ .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 34\r
+ .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 35\r
+ .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 36\r
+ .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 37\r
+ .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 38\r
+ .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 39\r
+ .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 40\r
+ .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 41\r
+ .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 42\r
+ .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 43\r
+ .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 44\r
+ .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 45\r
+ .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 46\r
+ .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 47\r
+ .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 48\r
+ .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 49\r
+ .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 50\r
+ .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 51\r
+ .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 52\r
+ .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 53\r
+ .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 54\r
+ .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 55\r
+ .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 56\r
+ .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 57\r
+ .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 58\r
+ .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 59\r
+ .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 60\r
+ .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 61\r
+ .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 62\r
+ .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 63\r
+ .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 64\r
+ .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 65\r
+ .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 66\r
+ .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 67\r
+ .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 68\r
+ .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 69\r
+ .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 70\r
+ .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 71\r
+ .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 72\r
+ .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 73\r
+ .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 74\r
+ .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 75\r
+ .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 76\r
+ .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 77\r
+ .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 78\r
+ .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 79\r
+ .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 80\r
+ .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 81\r
+ .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 82\r
+ .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 83\r
+ .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 84\r
+ .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 85\r
+ .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 86\r
+ .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 87\r
+ .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 88\r
+ .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 89\r
+ .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 90\r
+ .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 91\r
+ .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 92\r
+ .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 93\r
+ .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 94\r
+ .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 95\r
+ .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 96\r
+ .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 97\r
+ .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 98\r
+ .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 99\r
+ .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 100\r
+ .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 101\r
+ .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 102\r
+ .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 103\r
+ .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 104\r
+ .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 105\r
+ .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 106\r
+ .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 107\r
+ .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 108\r
+ .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 109\r
+ .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 110\r
+ .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 111\r
+ .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 112\r
+ .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 113\r
+ .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 114\r
+ .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 115\r
+ .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 116\r
+ .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 117\r
+ .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 118\r
+ .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 119\r
+ .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 120\r
+ .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 121\r
+ .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 122\r
+ .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 123\r
+ .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 124\r
+ .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 125\r
+ .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 126\r
+ .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 127\r
+ .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 128\r
+ .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 129\r
+ .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 130\r
+ .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 131\r
+ .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 132\r
+ .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 133\r
+ .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 134\r
+ .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 135\r
+ .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 136\r
+ .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 137\r
+ .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 138\r
+ .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 139\r
+ .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 140\r
+ .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 141\r
+ .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 142\r
+ .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 143\r
+ .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 144\r
+ .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 145\r
+ .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 146\r
+ .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 147\r
+ .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 148\r
+ .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 149\r
+ .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 150\r
+ .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 151\r
+ .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 152\r
+ .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 153\r
+ .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 154\r
+ .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 155\r
+ .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 156\r
+ .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 157\r
+ .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 158\r
+ .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 159\r
+ .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 160\r
+ .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 161\r
+ .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 162\r
+ .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 163\r
+ .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 164\r
+ .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 165\r
+ .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 166\r
+ .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 167\r
+ .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 168\r
+ .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 169\r
+ .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 170\r
+ .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 171\r
+ .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 172\r
+ .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 173\r
+ .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 174\r
+ .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 175\r
+ .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 176\r
+ .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 177\r
+ .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 178\r
+ .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 179\r
+ .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 180\r
+ .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 181\r
+ .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 182\r
+ .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 183\r
+ .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 184\r
+ .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 185\r
+ .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 186\r
+ .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 187\r
+ .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 188\r
+ .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 189\r
+ .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 190\r
+ .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 191\r
+ .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 192\r
+ .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 193\r
+ .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 194\r
+ .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 195\r
+ .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 196\r
+ .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 197\r
+ .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 198\r
+ .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 199\r
+ .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 200\r
+ .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 201\r
+ .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 202\r
+ .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 203\r
+ .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 204\r
+ .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 205\r
+ .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 206\r
+ .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 207\r
+ .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 208\r
+ .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 209\r
+ .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 210\r
+ .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 211\r
+ .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 212\r
+ .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 213\r
+ .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 214\r
+ .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 215\r
+ .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 216\r
+ .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 217\r
+ .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 218\r
+ .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 219\r
+ .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 220\r
+ .byte (0<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 221\r
+ .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 222\r
+ .byte (1<<Z80_CFlag)|(0<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 223\r
+ .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 224\r
+ .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 225\r
+ .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 226\r
+ .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 227\r
+ .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 228\r
+ .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 229\r
+ .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 230\r
+ .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 231\r
+ .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 232\r
+ .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 233\r
+ .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 234\r
+ .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 235\r
+ .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 236\r
+ .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 237\r
+ .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 238\r
+ .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(0<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 239\r
+ .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 240\r
+ .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 241\r
+ .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 242\r
+ .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 243\r
+ .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 244\r
+ .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 245\r
+ .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 246\r
+ .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(0<<Z80_SFlag) ;@ 247\r
+ .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 248\r
+ .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 249\r
+ .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 250\r
+ .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(0<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 251\r
+ .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 252\r
+ .byte (0<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 253\r
+ .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(0<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 254\r
+ .byte (1<<Z80_CFlag)|(1<<Z80_NFlag)|(1<<Z80_VFlag)|(1<<Z80_HFlag)|(1<<Z80_ZFlag)|(1<<Z80_SFlag) ;@ 255\r
+\r
+.align 4\r
+\r
+AF_ARM: .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 0\r
+ .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 1\r
+ .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 2\r
+ .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 3\r
+ .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 4\r
+ .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 5\r
+ .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 6\r
+ .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 7\r
+ .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 8\r
+ .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 9\r
+ .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 10\r
+ .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 11\r
+ .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 12\r
+ .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 13\r
+ .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 14\r
+ .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 15\r
+ .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 16\r
+ .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 17\r
+ .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 18\r
+ .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 19\r
+ .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 20\r
+ .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 21\r
+ .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 22\r
+ .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 23\r
+ .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 24\r
+ .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 25\r
+ .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 26\r
+ .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 27\r
+ .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 28\r
+ .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 29\r
+ .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 30\r
+ .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 31\r
+ .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 32\r
+ .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 33\r
+ .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 34\r
+ .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 35\r
+ .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 36\r
+ .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 37\r
+ .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 38\r
+ .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 39\r
+ .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 40\r
+ .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 41\r
+ .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 42\r
+ .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 43\r
+ .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 44\r
+ .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 45\r
+ .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 46\r
+ .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 47\r
+ .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 48\r
+ .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 49\r
+ .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 50\r
+ .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 51\r
+ .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 52\r
+ .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 53\r
+ .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 54\r
+ .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 55\r
+ .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 56\r
+ .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 57\r
+ .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 58\r
+ .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 59\r
+ .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 60\r
+ .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 61\r
+ .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 62\r
+ .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(0<<SFlag) ;@ 63\r
+ .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 64\r
+ .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 65\r
+ .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 66\r
+ .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 67\r
+ .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 68\r
+ .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 69\r
+ .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 70\r
+ .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 71\r
+ .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 72\r
+ .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 73\r
+ .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 74\r
+ .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 75\r
+ .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 76\r
+ .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 77\r
+ .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 78\r
+ .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 79\r
+ .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 80\r
+ .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 81\r
+ .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 82\r
+ .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 83\r
+ .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 84\r
+ .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 85\r
+ .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 86\r
+ .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 87\r
+ .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 88\r
+ .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 89\r
+ .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 90\r
+ .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 91\r
+ .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 92\r
+ .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 93\r
+ .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 94\r
+ .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 95\r
+ .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 96\r
+ .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 97\r
+ .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 98\r
+ .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 99\r
+ .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 100\r
+ .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 101\r
+ .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 102\r
+ .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 103\r
+ .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 104\r
+ .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 105\r
+ .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 106\r
+ .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 107\r
+ .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 108\r
+ .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 109\r
+ .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 110\r
+ .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 111\r
+ .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 112\r
+ .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 113\r
+ .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 114\r
+ .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 115\r
+ .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 116\r
+ .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 117\r
+ .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 118\r
+ .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 119\r
+ .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 120\r
+ .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 121\r
+ .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 122\r
+ .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 123\r
+ .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 124\r
+ .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 125\r
+ .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 126\r
+ .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(0<<SFlag) ;@ 127\r
+ .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 128\r
+ .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 129\r
+ .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 130\r
+ .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 131\r
+ .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 132\r
+ .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 133\r
+ .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 134\r
+ .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 135\r
+ .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 136\r
+ .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 137\r
+ .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 138\r
+ .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 139\r
+ .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 140\r
+ .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 141\r
+ .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 142\r
+ .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 143\r
+ .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 144\r
+ .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 145\r
+ .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 146\r
+ .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 147\r
+ .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 148\r
+ .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 149\r
+ .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 150\r
+ .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 151\r
+ .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 152\r
+ .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 153\r
+ .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 154\r
+ .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 155\r
+ .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 156\r
+ .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 157\r
+ .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 158\r
+ .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 159\r
+ .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 160\r
+ .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 161\r
+ .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 162\r
+ .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 163\r
+ .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 164\r
+ .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 165\r
+ .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 166\r
+ .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 167\r
+ .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 168\r
+ .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 169\r
+ .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 170\r
+ .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 171\r
+ .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 172\r
+ .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 173\r
+ .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 174\r
+ .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 175\r
+ .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 176\r
+ .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 177\r
+ .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 178\r
+ .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 179\r
+ .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 180\r
+ .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 181\r
+ .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 182\r
+ .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 183\r
+ .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 184\r
+ .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 185\r
+ .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 186\r
+ .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 187\r
+ .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 188\r
+ .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 189\r
+ .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 190\r
+ .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(0<<ZFlag)|(1<<SFlag) ;@ 191\r
+ .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 192\r
+ .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 193\r
+ .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 194\r
+ .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 195\r
+ .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 196\r
+ .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 197\r
+ .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 198\r
+ .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 199\r
+ .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 200\r
+ .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 201\r
+ .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 202\r
+ .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 203\r
+ .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 204\r
+ .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 205\r
+ .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 206\r
+ .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 207\r
+ .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 208\r
+ .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 209\r
+ .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 210\r
+ .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 211\r
+ .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 212\r
+ .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 213\r
+ .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 214\r
+ .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 215\r
+ .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 216\r
+ .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 217\r
+ .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 218\r
+ .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 219\r
+ .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 220\r
+ .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 221\r
+ .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 222\r
+ .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 223\r
+ .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 224\r
+ .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 225\r
+ .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 226\r
+ .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 227\r
+ .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 228\r
+ .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 229\r
+ .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 230\r
+ .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 231\r
+ .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 232\r
+ .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 233\r
+ .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 234\r
+ .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 235\r
+ .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 236\r
+ .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 237\r
+ .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 238\r
+ .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(0<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 239\r
+ .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 240\r
+ .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 241\r
+ .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 242\r
+ .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 243\r
+ .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 244\r
+ .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 245\r
+ .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 246\r
+ .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 247\r
+ .byte (0<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 248\r
+ .byte (1<<CFlag)|(0<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 249\r
+ .byte (0<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 250\r
+ .byte (1<<CFlag)|(1<<NFlag)|(0<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 251\r
+ .byte (0<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 252\r
+ .byte (1<<CFlag)|(0<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 253\r
+ .byte (0<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 254\r
+ .byte (1<<CFlag)|(1<<NFlag)|(1<<VFlag)|(1<<HFlag)|(1<<ZFlag)|(1<<SFlag) ;@ 255\r
+\r
+.align 4\r
+\r
+PZSTable_data: .byte (1<<ZFlag)|(1<<VFlag),0,0,(1<<VFlag),0,(1<<VFlag),(1<<VFlag),0\r
+ .byte 0,(1<<VFlag),(1<<VFlag),0,(1<<VFlag),0,0,(1<<VFlag)\r
+ .byte 0,(1<<VFlag),(1<<VFlag),0,(1<<VFlag),0,0,(1<<VFlag),(1<<VFlag),0,0,(1<<VFlag),0,(1<<VFlag),(1<<VFlag),0\r
+ .byte 0,(1<<VFlag),(1<<VFlag),0,(1<<VFlag),0,0,(1<<VFlag),(1<<VFlag),0,0,(1<<VFlag),0,(1<<VFlag),(1<<VFlag),0\r
+ .byte (1<<VFlag),0,0,(1<<VFlag),0,(1<<VFlag),(1<<VFlag),0,0,(1<<VFlag),(1<<VFlag),0,(1<<VFlag),0,0,(1<<VFlag)\r
+ .byte 0,(1<<VFlag),(1<<VFlag),0,(1<<VFlag),0,0,(1<<VFlag),(1<<VFlag),0,0,(1<<VFlag),0,(1<<VFlag),(1<<VFlag),0\r
+ .byte (1<<VFlag),0,0,(1<<VFlag),0,(1<<VFlag),(1<<VFlag),0,0,(1<<VFlag),(1<<VFlag),0,(1<<VFlag),0,0,(1<<VFlag)\r
+ .byte (1<<VFlag),0,0,(1<<VFlag),0,(1<<VFlag),(1<<VFlag),0,0,(1<<VFlag),(1<<VFlag),0,(1<<VFlag),0,0,(1<<VFlag)\r
+ .byte 0,(1<<VFlag),(1<<VFlag),0,(1<<VFlag),0,0,(1<<VFlag),(1<<VFlag),0,0,(1<<VFlag),0,(1<<VFlag),(1<<VFlag),0\r
+ .byte (1<<SFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)\r
+ .byte (1<<SFlag)|(1<<VFlag),(1<<SFlag),(1<<SFlag),(1<<SFlag)|(1<<VFlag)\r
+ .byte (1<<SFlag)|(1<<VFlag),(1<<SFlag),(1<<SFlag),(1<<SFlag)|(1<<VFlag)\r
+ .byte (1<<SFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)\r
+ .byte (1<<SFlag)|(1<<VFlag),(1<<SFlag),(1<<SFlag),(1<<SFlag)|(1<<VFlag)\r
+ .byte (1<<SFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)\r
+ .byte (1<<SFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)\r
+ .byte (1<<SFlag)|(1<<VFlag),(1<<SFlag),(1<<SFlag),(1<<SFlag)|(1<<VFlag)\r
+ .byte (1<<SFlag)|(1<<VFlag),(1<<SFlag),(1<<SFlag),(1<<SFlag)|(1<<VFlag)\r
+ .byte (1<<SFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)\r
+ .byte (1<<SFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)\r
+ .byte (1<<SFlag)|(1<<VFlag),(1<<SFlag),(1<<SFlag),(1<<SFlag)|(1<<VFlag)\r
+ .byte (1<<SFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)\r
+ .byte (1<<SFlag)|(1<<VFlag),(1<<SFlag),(1<<SFlag),(1<<SFlag)|(1<<VFlag)\r
+ .byte (1<<SFlag)|(1<<VFlag),(1<<SFlag),(1<<SFlag),(1<<SFlag)|(1<<VFlag)\r
+ .byte (1<<SFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)\r
+ .byte (1<<SFlag)|(1<<VFlag),(1<<SFlag),(1<<SFlag),(1<<SFlag)|(1<<VFlag)\r
+ .byte (1<<SFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)\r
+ .byte (1<<SFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)\r
+ .byte (1<<SFlag)|(1<<VFlag),(1<<SFlag),(1<<SFlag),(1<<SFlag)|(1<<VFlag)\r
+ .byte (1<<SFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)\r
+ .byte (1<<SFlag)|(1<<VFlag),(1<<SFlag),(1<<SFlag),(1<<SFlag)|(1<<VFlag)\r
+ .byte (1<<SFlag)|(1<<VFlag),(1<<SFlag),(1<<SFlag),(1<<SFlag)|(1<<VFlag)\r
+ .byte (1<<SFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)\r
+ .byte (1<<SFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)\r
+ .byte (1<<SFlag)|(1<<VFlag),(1<<SFlag),(1<<SFlag),(1<<SFlag)|(1<<VFlag)\r
+ .byte (1<<SFlag)|(1<<VFlag),(1<<SFlag),(1<<SFlag),(1<<SFlag)|(1<<VFlag)\r
+ .byte (1<<SFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)\r
+ .byte (1<<SFlag)|(1<<VFlag),(1<<SFlag),(1<<SFlag),(1<<SFlag)|(1<<VFlag)\r
+ .byte (1<<SFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)\r
+ .byte (1<<SFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)|(1<<VFlag),(1<<SFlag)\r
+ .byte (1<<SFlag)|(1<<VFlag),(1<<SFlag),(1<<SFlag),(1<<SFlag)|(1<<VFlag) \r
+\r
+.align 4\r
+\r
+MAIN_opcodes: \r
+ .word opcode_0_0,opcode_0_1,opcode_0_2,opcode_0_3,opcode_0_4,opcode_0_5,opcode_0_6,opcode_0_7\r
+ .word opcode_0_8,opcode_0_9,opcode_0_A,opcode_0_B,opcode_0_C,opcode_0_D,opcode_0_E,opcode_0_F\r
+ .word opcode_1_0,opcode_1_1,opcode_1_2,opcode_1_3,opcode_1_4,opcode_1_5,opcode_1_6,opcode_1_7\r
+ .word opcode_1_8,opcode_1_9,opcode_1_A,opcode_1_B,opcode_1_C,opcode_1_D,opcode_1_E,opcode_1_F\r
+ .word opcode_2_0,opcode_2_1,opcode_2_2,opcode_2_3,opcode_2_4,opcode_2_5,opcode_2_6,opcode_2_7\r
+ .word opcode_2_8,opcode_2_9,opcode_2_A,opcode_2_B,opcode_2_C,opcode_2_D,opcode_2_E,opcode_2_F\r
+ .word opcode_3_0,opcode_3_1,opcode_3_2,opcode_3_3,opcode_3_4,opcode_3_5,opcode_3_6,opcode_3_7\r
+ .word opcode_3_8,opcode_3_9,opcode_3_A,opcode_3_B,opcode_3_C,opcode_3_D,opcode_3_E,opcode_3_F\r
+ .word opcode_4_0,opcode_4_1,opcode_4_2,opcode_4_3,opcode_4_4,opcode_4_5,opcode_4_6,opcode_4_7\r
+ .word opcode_4_8,opcode_4_9,opcode_4_A,opcode_4_B,opcode_4_C,opcode_4_D,opcode_4_E,opcode_4_F\r
+ .word opcode_5_0,opcode_5_1,opcode_5_2,opcode_5_3,opcode_5_4,opcode_5_5,opcode_5_6,opcode_5_7\r
+ .word opcode_5_8,opcode_5_9,opcode_5_A,opcode_5_B,opcode_5_C,opcode_5_D,opcode_5_E,opcode_5_F\r
+ .word opcode_6_0,opcode_6_1,opcode_6_2,opcode_6_3,opcode_6_4,opcode_6_5,opcode_6_6,opcode_6_7\r
+ .word opcode_6_8,opcode_6_9,opcode_6_A,opcode_6_B,opcode_6_C,opcode_6_D,opcode_6_E,opcode_6_F\r
+ .word opcode_7_0,opcode_7_1,opcode_7_2,opcode_7_3,opcode_7_4,opcode_7_5,opcode_7_6,opcode_7_7\r
+ .word opcode_7_8,opcode_7_9,opcode_7_A,opcode_7_B,opcode_7_C,opcode_7_D,opcode_7_E,opcode_7_F\r
+ .word opcode_8_0,opcode_8_1,opcode_8_2,opcode_8_3,opcode_8_4,opcode_8_5,opcode_8_6,opcode_8_7\r
+ .word opcode_8_8,opcode_8_9,opcode_8_A,opcode_8_B,opcode_8_C,opcode_8_D,opcode_8_E,opcode_8_F\r
+ .word opcode_9_0,opcode_9_1,opcode_9_2,opcode_9_3,opcode_9_4,opcode_9_5,opcode_9_6,opcode_9_7\r
+ .word opcode_9_8,opcode_9_9,opcode_9_A,opcode_9_B,opcode_9_C,opcode_9_D,opcode_9_E,opcode_9_F\r
+ .word opcode_A_0,opcode_A_1,opcode_A_2,opcode_A_3,opcode_A_4,opcode_A_5,opcode_A_6,opcode_A_7\r
+ .word opcode_A_8,opcode_A_9,opcode_A_A,opcode_A_B,opcode_A_C,opcode_A_D,opcode_A_E,opcode_A_F\r
+ .word opcode_B_0,opcode_B_1,opcode_B_2,opcode_B_3,opcode_B_4,opcode_B_5,opcode_B_6,opcode_B_7\r
+ .word opcode_B_8,opcode_B_9,opcode_B_A,opcode_B_B,opcode_B_C,opcode_B_D,opcode_B_E,opcode_B_F\r
+ .word opcode_C_0,opcode_C_1,opcode_C_2,opcode_C_3,opcode_C_4,opcode_C_5,opcode_C_6,opcode_C_7\r
+ .word opcode_C_8,opcode_C_9,opcode_C_A,opcode_C_B,opcode_C_C,opcode_C_D,opcode_C_E,opcode_C_F\r
+ .word opcode_D_0,opcode_D_1,opcode_D_2,opcode_D_3,opcode_D_4,opcode_D_5,opcode_D_6,opcode_D_7\r
+ .word opcode_D_8,opcode_D_9,opcode_D_A,opcode_D_B,opcode_D_C,opcode_D_D,opcode_D_E,opcode_D_F\r
+ .word opcode_E_0,opcode_E_1,opcode_E_2,opcode_E_3,opcode_E_4,opcode_E_5,opcode_E_6,opcode_E_7\r
+ .word opcode_E_8,opcode_E_9,opcode_E_A,opcode_E_B,opcode_E_C,opcode_E_D,opcode_E_E,opcode_E_F\r
+ .word opcode_F_0,opcode_F_1,opcode_F_2,opcode_F_3,opcode_F_4,opcode_F_5,opcode_F_6,opcode_F_7\r
+ .word opcode_F_8,opcode_F_9,opcode_F_A,opcode_F_B,opcode_F_C,opcode_F_D,opcode_F_E,opcode_F_F\r
+\r
+.align 4\r
+\r
+EI_DUMMY_opcodes:\r
+ .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@0\r
+ .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@0\r
+ .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@1\r
+ .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@1\r
+ .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@2\r
+ .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@2\r
+ .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@3\r
+ .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@3\r
+ .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@4\r
+ .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@4\r
+ .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@5\r
+ .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@5\r
+ .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@6\r
+ .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@6\r
+ .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@7\r
+ .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@7\r
+ .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@8\r
+ .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@8\r
+ .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@9\r
+ .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@9\r
+ .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@A\r
+ .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@A\r
+ .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@B\r
+ .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@B\r
+ .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@C\r
+ .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@C\r
+ .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@D\r
+ .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@D\r
+ .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@E\r
+ .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@E\r
+ .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@F\r
+ .word ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return,ei_return ;@F\r
+\r
+.text\r
+.align 4\r
+\r
+;@NOP\r
+opcode_0_0:\r
+;@LD B,B\r
+opcode_4_0:\r
+;@LD C,C\r
+opcode_4_9:\r
+;@LD D,D\r
+opcode_5_2:\r
+;@LD E,E\r
+opcode_5_B:\r
+;@LD H,H\r
+opcode_6_4:\r
+;@LD L,L\r
+opcode_6_D:\r
+;@LD A,A\r
+opcode_7_F:\r
+ fetch 4\r
+;@LD BC,NN\r
+opcode_0_1:\r
+ ldrb r0,[z80pc],#1\r
+ ldrb r1,[z80pc],#1\r
+ orr r0,r0,r1, lsl #8\r
+ mov z80bc,r0, lsl #16\r
+ fetch 10\r
+;@LD (BC),A\r
+opcode_0_2:\r
+ mov r0,z80a, lsr #24\r
+ mov r1,z80bc, lsr #16\r
+ writemem8\r
+ fetch 7\r
+;@INC BC\r
+opcode_0_3:\r
+ add z80bc,z80bc,#1<<16\r
+ fetch 6\r
+;@INC B\r
+opcode_0_4:\r
+ opINC8H z80bc\r
+ fetch 4\r
+;@DEC B\r
+opcode_0_5:\r
+ opDEC8H z80bc\r
+ fetch 4\r
+;@LD B,N\r
+opcode_0_6:\r
+ ldrb r1,[z80pc],#1\r
+ and z80bc,z80bc,#0xFF<<16\r
+ orr z80bc,z80bc,r1, lsl #24\r
+ fetch 7\r
+;@RLCA\r
+opcode_0_7:\r
+ bic z80f,z80f,#(1<<NFlag)|(1<<HFlag)|(1<<CFlag)\r
+ movs z80a,z80a, lsl #1\r
+ orrcs z80a,z80a,#1<<24\r
+ orrcs z80f,z80f,#1<<CFlag\r
+ fetch 4\r
+;@EX AF,AF'\r
+opcode_0_8:\r
+ add r1,cpucontext,#z80a2\r
+ swp z80a,z80a,[r1]\r
+ add r1,cpucontext,#z80f2\r
+ swp z80f,z80f,[r1]\r
+ fetch 4\r
+;@ADD HL,BC\r
+opcode_0_9:\r
+ opADD16 z80hl z80bc\r
+ fetch 11\r
+;@LD A,(BC)\r
+opcode_0_A:\r
+ mov r0,z80bc, lsr #16\r
+ readmem8\r
+ mov z80a,r0, lsl #24\r
+ fetch 7\r
+;@DEC BC\r
+opcode_0_B:\r
+ sub z80bc,z80bc,#1<<16\r
+ fetch 6\r
+;@INC C\r
+opcode_0_C:\r
+ opINC8L z80bc\r
+ fetch 4\r
+;@DEC C\r
+opcode_0_D:\r
+ opDEC8L z80bc\r
+ fetch 4\r
+;@LD C,N\r
+opcode_0_E:\r
+ ldrb r1,[z80pc],#1\r
+ and z80bc,z80bc,#0xFF<<24\r
+ orr z80bc,z80bc,r1, lsl #16\r
+ fetch 7\r
+;@RRCA\r
+opcode_0_F:\r
+ bic z80f,z80f,#(1<<NFlag)|(1<<HFlag)|(1<<CFlag)\r
+ movs z80a,z80a, lsr #25\r
+ orrcs z80a,z80a,#1<<7\r
+ orrcs z80f,z80f,#1<<CFlag\r
+ mov z80a,z80a, lsl #24\r
+ fetch 4\r
+;@DJNZ $+2\r
+opcode_1_0:\r
+ sub z80bc,z80bc,#1<<24\r
+ tst z80bc,#0xFF<<24\r
+ ldrsb r1,[z80pc],#1\r
+ addne z80pc,z80pc,r1\r
+ subne z80_icount,z80_icount,#5\r
+ fetch 8\r
+\r
+;@LD DE,NN\r
+opcode_1_1:\r
+ ldrb r0,[z80pc],#1\r
+ ldrb r1,[z80pc],#1\r
+ orr r0,r0,r1, lsl #8\r
+ mov z80de,r0, lsl #16\r
+ fetch 10\r
+;@LD (DE),A\r
+opcode_1_2:\r
+ mov r0,z80a, lsr #24\r
+ writemem8DE\r
+ fetch 7\r
+;@INC DE\r
+opcode_1_3:\r
+ add z80de,z80de,#1<<16\r
+ fetch 6\r
+;@INC D\r
+opcode_1_4:\r
+ opINC8H z80de\r
+ fetch 4\r
+;@DEC D\r
+opcode_1_5:\r
+ opDEC8H z80de\r
+ fetch 4\r
+;@LD D,N\r
+opcode_1_6:\r
+ ldrb r1,[z80pc],#1\r
+ and z80de,z80de,#0xFF<<16\r
+ orr z80de,z80de,r1, lsl #24\r
+ fetch 7\r
+;@RLA\r
+opcode_1_7:\r
+ tst z80f,#1<<CFlag\r
+ orrne z80a,z80a,#1<<23\r
+ bic z80f,z80f,#(1<<NFlag)|(1<<HFlag)|(1<<CFlag)\r
+ movs z80a,z80a, lsl #1\r
+ orrcs z80f,z80f,#1<<CFlag\r
+ fetch 4\r
+;@JR $+2\r
+opcode_1_8:\r
+ ldrsb r1,[z80pc],#1\r
+ add z80pc,z80pc,r1\r
+ fetch 12\r
+;@ADD HL,DE\r
+opcode_1_9:\r
+ opADD16 z80hl z80de\r
+ fetch 11\r
+;@LD A,(DE)\r
+opcode_1_A:\r
+ mov r0,z80de, lsr #16\r
+ readmem8\r
+ mov z80a,r0, lsl #24\r
+ fetch 7\r
+;@DEC DE\r
+opcode_1_B:\r
+ sub z80de,z80de,#1<<16\r
+ fetch 6\r
+;@INC E\r
+opcode_1_C:\r
+ opINC8L z80de\r
+ fetch 4\r
+;@DEC E\r
+opcode_1_D:\r
+ opDEC8L z80de\r
+ fetch 4\r
+;@LD E,N\r
+opcode_1_E:\r
+ ldrb r0,[z80pc],#1\r
+ and z80de,z80de,#0xFF<<24\r
+ orr z80de,z80de,r0, lsl #16\r
+ fetch 7\r
+;@RRA\r
+opcode_1_F:\r
+ orr z80a,z80a,z80f,lsr#1 ;@get C\r
+ bic z80f,z80f,#(1<<NFlag)|(1<<HFlag)|(1<<CFlag)\r
+ movs z80a,z80a,ror#25\r
+ orrcs z80f,z80f,#1<<CFlag\r
+ mov z80a,z80a,lsl#24\r
+ fetch 4\r
+;@JR NZ,$+2\r
+opcode_2_0:\r
+ tst z80f,#1<<ZFlag\r
+ beq opcode_1_8\r
+ add z80pc,z80pc,#1\r
+ fetch 7\r
+;@LD HL,NN\r
+opcode_2_1:\r
+ ldrb r0,[z80pc],#1\r
+ ldrb r1,[z80pc],#1\r
+ orr r0,r0,r1, lsl #8\r
+ mov z80hl,r0, lsl #16\r
+ fetch 10\r
+;@LD (NN),HL\r
+opcode_ED_63:\r
+ eatcycles 4\r
+;@LD (NN),HL\r
+opcode_2_2:\r
+ ldrb r0,[z80pc],#1\r
+ ldrb r1,[z80pc],#1\r
+ orr r1,r0,r1, lsl #8\r
+ mov r0,z80hl, lsr #16\r
+ writemem16\r
+ fetch 16\r
+;@INC HL\r
+opcode_2_3:\r
+ add z80hl,z80hl,#1<<16\r
+ fetch 6\r
+;@INC H\r
+opcode_2_4:\r
+ opINC8H z80hl\r
+ fetch 4\r
+;@DEC H\r
+opcode_2_5:\r
+ opDEC8H z80hl\r
+ fetch 4\r
+;@LD H,N\r
+opcode_2_6:\r
+ ldrb r1,[z80pc],#1\r
+ and z80hl,z80hl,#0xFF<<16\r
+ orr z80hl,z80hl,r1, lsl #24\r
+ fetch 7\r
+DAATABLE_LOCAL: .word DAATable\r
+;@DAA\r
+opcode_2_7:\r
+ mov r1,z80a, lsr #24\r
+ tst z80f,#1<<CFlag\r
+ orrne r1,r1,#256\r
+ tst z80f,#1<<HFlag\r
+ orrne r1,r1,#512\r
+ tst z80f,#1<<NFlag\r
+ orrne r1,r1,#1024\r
+ ldr r2,DAATABLE_LOCAL\r
+ add r2,r2,r1, lsl #1\r
+ ldrh r1,[r2]\r
+ and z80f,r1,#0xFF\r
+ and r2,r1,#0xFF<<8\r
+ mov z80a,r2, lsl #16\r
+ fetch 4\r
+;@JR Z,$+2\r
+opcode_2_8:\r
+ tst z80f,#1<<ZFlag\r
+ bne opcode_1_8\r
+ add z80pc,z80pc,#1\r
+ fetch 7\r
+;@ADD HL,HL\r
+opcode_2_9:\r
+ opADD16_2 z80hl\r
+ fetch 11\r
+;@LD HL,(NN)\r
+opcode_ED_6B:\r
+ eatcycles 4\r
+;@LD HL,(NN)\r
+opcode_2_A:\r
+ ldrb r0,[z80pc],#1\r
+ ldrb r1,[z80pc],#1\r
+ orr r0,r0,r1, lsl #8\r
+ readmem16\r
+ mov z80hl,r0, lsl #16\r
+ fetch 16\r
+;@DEC HL\r
+opcode_2_B:\r
+ sub z80hl,z80hl,#1<<16\r
+ fetch 6\r
+;@INC L\r
+opcode_2_C:\r
+ opINC8L z80hl\r
+ fetch 4\r
+;@DEC L\r
+opcode_2_D:\r
+ opDEC8L z80hl\r
+ fetch 4\r
+;@LD L,N\r
+opcode_2_E:\r
+ ldrb r0,[z80pc],#1\r
+ and z80hl,z80hl,#0xFF<<24\r
+ orr z80hl,z80hl,r0, lsl #16\r
+ fetch 7\r
+;@CPL\r
+opcode_2_F:\r
+ eor z80a,z80a,#0xFF<<24\r
+ orr z80f,z80f,#(1<<NFlag)|(1<<HFlag)\r
+ fetch 4\r
+;@JR NC,$+2\r
+opcode_3_0:\r
+ tst z80f,#1<<CFlag\r
+ beq opcode_1_8\r
+ add z80pc,z80pc,#1\r
+ fetch 7\r
+;@LD SP,NN\r
+opcode_3_1:\r
+ ldrb r0,[z80pc],#1\r
+ ldrb r1,[z80pc],#1\r
+\r
+.if FAST_Z80SP\r
+ orr r0,r0,r1, lsl #8\r
+ rebasesp\r
+ mov z80sp,r0\r
+.else\r
+ orr z80sp,r0,r1, lsl #8\r
+.endif\r
+ fetch 10\r
+;@LD (NN),A\r
+opcode_3_2:\r
+ ldrb r0,[z80pc],#1\r
+ ldrb r1,[z80pc],#1\r
+ orr r1,r0,r1, lsl #8\r
+ mov r0,z80a, lsr #24\r
+ writemem8\r
+ fetch 13\r
+;@INC SP\r
+opcode_3_3:\r
+ add z80sp,z80sp,#1\r
+ fetch 6\r
+;@INC (HL)\r
+opcode_3_4:\r
+ readmem8HL\r
+ opINC8b\r
+ writemem8HL\r
+ fetch 11\r
+;@DEC (HL)\r
+opcode_3_5:\r
+ readmem8HL\r
+ opDEC8b\r
+ writemem8HL\r
+ fetch 11\r
+;@LD (HL),N\r
+opcode_3_6:\r
+ ldrb r0,[z80pc],#1\r
+ writemem8HL\r
+ fetch 10\r
+;@SCF\r
+opcode_3_7:\r
+ bic z80f,z80f,#(1<<NFlag)|(1<<HFlag)\r
+ orr z80f,z80f,#1<<CFlag\r
+ fetch 4\r
+;@JR C,$+2\r
+opcode_3_8:\r
+ tst z80f,#1<<CFlag\r
+ bne opcode_1_8\r
+ add z80pc,z80pc,#1\r
+ fetch 8\r
+;@ADD HL,SP\r
+opcode_3_9:\r
+.if FAST_Z80SP\r
+ ldr r0,[cpucontext,#z80sp_base]\r
+ sub r0,z80sp,r0\r
+ opADD16s z80hl r0 16\r
+.else\r
+ opADD16s z80hl z80sp 16\r
+.endif\r
+ fetch 11\r
+;@LD A,(NN)\r
+opcode_3_A:\r
+ ldrb r0,[z80pc],#1\r
+ ldrb r1,[z80pc],#1\r
+ orr r0,r0,r1, lsl #8\r
+ readmem8\r
+ mov z80a,r0, lsl #24\r
+ fetch 11\r
+;@DEC SP\r
+opcode_3_B:\r
+ sub z80sp,z80sp,#1\r
+ fetch 6\r
+;@INC A\r
+opcode_3_C:\r
+ opINC8 z80a\r
+ fetch 4\r
+;@DEC A\r
+opcode_3_D:\r
+ opDEC8 z80a\r
+ fetch 4\r
+;@LD A,N\r
+opcode_3_E:\r
+ ldrb r0,[z80pc],#1\r
+ mov z80a,r0, lsl #24\r
+ fetch 7\r
+;@CCF\r
+opcode_3_F:\r
+ bic z80f,z80f,#(1<<NFlag)|(1<<HFlag)\r
+ tst z80f,#1<<CFlag\r
+ orrne z80f,z80f,#1<<HFlag\r
+ eor z80f,z80f,#1<<CFlag\r
+ fetch 4\r
+\r
+;@LD B,C\r
+opcode_4_1:\r
+ and z80bc,z80bc,#0xFF<<16\r
+ orr z80bc,z80bc,z80bc, lsl #8\r
+ fetch 4\r
+;@LD B,D\r
+opcode_4_2:\r
+ and z80bc,z80bc,#0xFF<<16\r
+ and r1,z80de,#0xFF<<24\r
+ orr z80bc,z80bc,r1\r
+ fetch 4\r
+;@LD B,E\r
+opcode_4_3:\r
+ and z80bc,z80bc,#0xFF<<16\r
+ and r1,z80de,#0xFF<<16\r
+ orr z80bc,z80bc,r1, lsl #8\r
+ fetch 4\r
+;@LD B,H\r
+opcode_4_4:\r
+ and z80bc,z80bc,#0xFF<<16\r
+ and r1,z80hl,#0xFF<<24\r
+ orr z80bc,z80bc,r1\r
+ fetch 4\r
+;@LD B,L\r
+opcode_4_5:\r
+ and z80bc,z80bc,#0xFF<<16\r
+ and r1,z80hl,#0xFF<<16\r
+ orr z80bc,z80bc,r1, lsl #8\r
+ fetch 4\r
+;@LD B,(HL)\r
+opcode_4_6:\r
+ readmem8HL\r
+ and z80bc,z80bc,#0xFF<<16\r
+ orr z80bc,z80bc,r0, lsl #24\r
+ fetch 7\r
+;@LD B,A\r
+opcode_4_7:\r
+ and z80bc,z80bc,#0xFF<<16\r
+ orr z80bc,z80bc,z80a\r
+ fetch 4\r
+;@LD C,B\r
+opcode_4_8:\r
+ and z80bc,z80bc,#0xFF<<24\r
+ orr z80bc,z80bc,z80bc, lsr #8\r
+ fetch 4\r
+;@LD C,D\r
+opcode_4_A:\r
+ and z80bc,z80bc,#0xFF<<24\r
+ and r1,z80de,#0xFF<<24\r
+ orr z80bc,z80bc,r1, lsr #8\r
+ fetch 4\r
+;@LD C,E\r
+opcode_4_B:\r
+ and z80bc,z80bc,#0xFF<<24\r
+ and r1,z80de,#0xFF<<16\r
+ orr z80bc,z80bc,r1 \r
+ fetch 4\r
+;@LD C,H\r
+opcode_4_C:\r
+ and z80bc,z80bc,#0xFF<<24\r
+ and r1,z80hl,#0xFF<<24\r
+ orr z80bc,z80bc,r1, lsr #8\r
+ fetch 4\r
+;@LD C,L\r
+opcode_4_D:\r
+ and z80bc,z80bc,#0xFF<<24\r
+ and r1,z80hl,#0xFF<<16\r
+ orr z80bc,z80bc,r1 \r
+ fetch 4\r
+;@LD C,(HL)\r
+opcode_4_E:\r
+ readmem8HL\r
+ and z80bc,z80bc,#0xFF<<24\r
+ orr z80bc,z80bc,r0, lsl #16\r
+ fetch 7\r
+;@LD C,A\r
+opcode_4_F:\r
+ and z80bc,z80bc,#0xFF<<24\r
+ orr z80bc,z80bc,z80a, lsr #8\r
+ fetch 4\r
+;@LD D,B\r
+opcode_5_0:\r
+ and z80de,z80de,#0xFF<<16\r
+ and r1,z80bc,#0xFF<<24\r
+ orr z80de,z80de,r1\r
+ fetch 4\r
+;@LD D,C\r
+opcode_5_1:\r
+ and z80de,z80de,#0xFF<<16\r
+ orr z80de,z80de,z80bc, lsl #8\r
+ fetch 4\r
+;@LD D,E\r
+opcode_5_3:\r
+ and z80de,z80de,#0xFF<<16\r
+ orr z80de,z80de,z80de, lsl #8\r
+ fetch 4\r
+;@LD D,H\r
+opcode_5_4:\r
+ and z80de,z80de,#0xFF<<16\r
+ and r1,z80hl,#0xFF<<24\r
+ orr z80de,z80de,r1\r
+ fetch 4\r
+;@LD D,L\r
+opcode_5_5:\r
+ and z80de,z80de,#0xFF<<16\r
+ orr z80de,z80de,z80hl, lsl #8\r
+ fetch 4\r
+;@LD D,(HL)\r
+opcode_5_6:\r
+ readmem8HL\r
+ and z80de,z80de,#0xFF<<16\r
+ orr z80de,z80de,r0, lsl #24\r
+ fetch 7\r
+;@LD D,A\r
+opcode_5_7:\r
+ and z80de,z80de,#0xFF<<16\r
+ orr z80de,z80de,z80a\r
+ fetch 4\r
+;@LD E,B\r
+opcode_5_8:\r
+ and z80de,z80de,#0xFF<<24\r
+ and r1,z80bc,#0xFF<<24\r
+ orr z80de,z80de,r1, lsr #8\r
+ fetch 4\r
+;@LD E,C\r
+opcode_5_9:\r
+ and z80de,z80de,#0xFF<<24\r
+ and r1,z80bc,#0xFF<<16\r
+ orr z80de,z80de,r1 \r
+ fetch 4\r
+;@LD E,D\r
+opcode_5_A:\r
+ and z80de,z80de,#0xFF<<24\r
+ orr z80de,z80de,z80de, lsr #8\r
+ fetch 4\r
+;@LD E,H\r
+opcode_5_C:\r
+ and z80de,z80de,#0xFF<<24\r
+ and r1,z80hl,#0xFF<<24\r
+ orr z80de,z80de,r1, lsr #8\r
+ fetch 4\r
+;@LD E,L\r
+opcode_5_D:\r
+ and z80de,z80de,#0xFF<<24\r
+ and r1,z80hl,#0xFF<<16\r
+ orr z80de,z80de,r1 \r
+ fetch 4\r
+;@LD E,(HL)\r
+opcode_5_E:\r
+ readmem8HL\r
+ and z80de,z80de,#0xFF<<24\r
+ orr z80de,z80de,r0, lsl #16\r
+ fetch 7\r
+;@LD E,A\r
+opcode_5_F:\r
+ and z80de,z80de,#0xFF<<24\r
+ orr z80de,z80de,z80a, lsr #8\r
+ fetch 4\r
+\r
+;@LD H,B\r
+opcode_6_0:\r
+ and z80hl,z80hl,#0xFF<<16\r
+ and r1,z80bc,#0xFF<<24\r
+ orr z80hl,z80hl,r1\r
+ fetch 4\r
+;@LD H,C\r
+opcode_6_1:\r
+ and z80hl,z80hl,#0xFF<<16\r
+ orr z80hl,z80hl,z80bc, lsl #8\r
+ fetch 4\r
+;@LD H,D\r
+opcode_6_2:\r
+ and z80hl,z80hl,#0xFF<<16\r
+ and r1,z80de,#0xFF<<24\r
+ orr z80hl,z80hl,r1\r
+ fetch 4\r
+;@LD H,E\r
+opcode_6_3:\r
+ and z80hl,z80hl,#0xFF<<16\r
+ orr z80hl,z80hl,z80de, lsl #8\r
+ fetch 4\r
+;@LD H,L\r
+opcode_6_5:\r
+ and z80hl,z80hl,#0xFF<<16\r
+ orr z80hl,z80hl,z80hl, lsl #8\r
+ fetch 4\r
+;@LD H,(HL)\r
+opcode_6_6:\r
+ readmem8HL\r
+ and z80hl,z80hl,#0xFF<<16\r
+ orr z80hl,z80hl,r0, lsl #24\r
+ fetch 7\r
+;@LD H,A\r
+opcode_6_7:\r
+ and z80hl,z80hl,#0xFF<<16\r
+ orr z80hl,z80hl,z80a\r
+ fetch 4\r
+\r
+;@LD L,B\r
+opcode_6_8:\r
+ and z80hl,z80hl,#0xFF<<24\r
+ and r1,z80bc,#0xFF<<24\r
+ orr z80hl,z80hl,r1, lsr #8\r
+ fetch 4\r
+;@LD L,C\r
+opcode_6_9:\r
+ and z80hl,z80hl,#0xFF<<24\r
+ and r1,z80bc,#0xFF<<16\r
+ orr z80hl,z80hl,r1\r
+ fetch 4\r
+;@LD L,D\r
+opcode_6_A:\r
+ and z80hl,z80hl,#0xFF<<24\r
+ and r1,z80de,#0xFF<<24\r
+ orr z80hl,z80hl,r1, lsr #8\r
+ fetch 4\r
+;@LD L,E\r
+opcode_6_B:\r
+ and z80hl,z80hl,#0xFF<<24\r
+ and r1,z80de,#0xFF<<16\r
+ orr z80hl,z80hl,r1\r
+ fetch 4\r
+;@LD L,H\r
+opcode_6_C:\r
+ and z80hl,z80hl,#0xFF<<24\r
+ orr z80hl,z80hl,z80hl, lsr #8\r
+ fetch 4\r
+;@LD L,(HL)\r
+opcode_6_E:\r
+ readmem8HL\r
+ and z80hl,z80hl,#0xFF<<24\r
+ orr z80hl,z80hl,r0, lsl #16\r
+ fetch 7\r
+;@LD L,A\r
+opcode_6_F:\r
+ and z80hl,z80hl,#0xFF<<24\r
+ orr z80hl,z80hl,z80a, lsr #8\r
+ fetch 4\r
+\r
+;@LD (HL),B\r
+opcode_7_0:\r
+ mov r0,z80bc, lsr #24\r
+ writemem8HL\r
+ fetch 7\r
+;@LD (HL),C\r
+opcode_7_1:\r
+ mov r0,z80bc, lsr #16\r
+ and r0,r0,#0xFF\r
+ writemem8HL\r
+ fetch 7\r
+;@LD (HL),D\r
+opcode_7_2:\r
+ mov r0,z80de, lsr #24\r
+ writemem8HL\r
+ fetch 7\r
+;@LD (HL),E\r
+opcode_7_3:\r
+ mov r0,z80de, lsr #16\r
+ and r0,r0,#0xFF\r
+ writemem8HL\r
+ fetch 7\r
+;@LD (HL),H\r
+opcode_7_4:\r
+ mov r0,z80hl, lsr #24\r
+ writemem8HL\r
+ fetch 7\r
+;@LD (HL),L\r
+opcode_7_5:\r
+ mov r1,z80hl, lsr #16\r
+ and r0,r1,#0xFF\r
+ writemem8\r
+ fetch 7\r
+;@HALT\r
+opcode_7_6:\r
+ sub z80pc,z80pc,#1\r
+ ldrb r0,[cpucontext,#z80if]\r
+ orr r0,r0,#Z80_HALT\r
+ strb r0,[cpucontext,#z80if]\r
+ b z80_execute_end\r
+;@LD (HL),A\r
+opcode_7_7:\r
+ mov r0,z80a, lsr #24\r
+ writemem8HL\r
+ fetch 7\r
+\r
+;@LD A,B\r
+opcode_7_8:\r
+ and z80a,z80bc,#0xFF<<24\r
+ fetch 4\r
+;@LD A,C\r
+opcode_7_9:\r
+ mov z80a,z80bc, lsl #8\r
+ fetch 4\r
+;@LD A,D\r
+opcode_7_A:\r
+ and z80a,z80de,#0xFF<<24\r
+ fetch 4\r
+;@LD A,E\r
+opcode_7_B:\r
+ mov z80a,z80de, lsl #8\r
+ fetch 4\r
+;@LD A,H\r
+opcode_7_C:\r
+ and z80a,z80hl,#0xFF<<24\r
+ fetch 4\r
+;@LD A,L\r
+opcode_7_D:\r
+ mov z80a,z80hl, lsl #8\r
+ fetch 4\r
+;@LD A,(HL)\r
+opcode_7_E:\r
+ readmem8HL\r
+ mov z80a,r0, lsl #24\r
+ fetch 7\r
+\r
+;@ADD A,B\r
+opcode_8_0:\r
+ opADDH z80bc\r
+;@ADD A,C\r
+opcode_8_1:\r
+ opADDL z80bc\r
+;@ADD A,D\r
+opcode_8_2:\r
+ opADDH z80de\r
+;@ADD A,E\r
+opcode_8_3:\r
+ opADDL z80de\r
+;@ADD A,H\r
+opcode_8_4:\r
+ opADDH z80hl\r
+;@ADD A,L\r
+opcode_8_5:\r
+ opADDL z80hl\r
+;@ADD A,(HL)\r
+opcode_8_6:\r
+ readmem8HL\r
+ opADDb\r
+ fetch 7\r
+;@ADD A,A\r
+opcode_8_7:\r
+ opADDA\r
+\r
+;@ADC A,B\r
+opcode_8_8:\r
+ opADCH z80bc\r
+;@ADC A,C\r
+opcode_8_9:\r
+ opADCL z80bc\r
+;@ADC A,D\r
+opcode_8_A:\r
+ opADCH z80de\r
+;@ADC A,E\r
+opcode_8_B:\r
+ opADCL z80de\r
+;@ADC A,H\r
+opcode_8_C:\r
+ opADCH z80hl\r
+;@ADC A,L\r
+opcode_8_D:\r
+ opADCL z80hl\r
+;@ADC A,(HL)\r
+opcode_8_E:\r
+ readmem8HL\r
+ opADCb\r
+ fetch 7\r
+;@ADC A,A\r
+opcode_8_F:\r
+ opADCA\r
+\r
+;@SUB B\r
+opcode_9_0:\r
+ opSUBH z80bc\r
+;@SUB C\r
+opcode_9_1:\r
+ opSUBL z80bc\r
+;@SUB D\r
+opcode_9_2:\r
+ opSUBH z80de\r
+;@SUB E\r
+opcode_9_3:\r
+ opSUBL z80de\r
+;@SUB H\r
+opcode_9_4:\r
+ opSUBH z80hl\r
+;@SUB L\r
+opcode_9_5:\r
+ opSUBL z80hl\r
+;@SUB (HL)\r
+opcode_9_6:\r
+ readmem8HL\r
+ opSUBb\r
+ fetch 7\r
+;@SUB A\r
+opcode_9_7:\r
+ opSUBA\r
+\r
+;@SBC B \r
+opcode_9_8:\r
+ opSBCH z80bc\r
+;@SBC C\r
+opcode_9_9:\r
+ opSBCL z80bc\r
+;@SBC D\r
+opcode_9_A:\r
+ opSBCH z80de\r
+;@SBC E\r
+opcode_9_B:\r
+ opSBCL z80de\r
+;@SBC H\r
+opcode_9_C:\r
+ opSBCH z80hl\r
+;@SBC L\r
+opcode_9_D:\r
+ opSBCL z80hl\r
+;@SBC (HL)\r
+opcode_9_E:\r
+ readmem8HL\r
+ opSBCb\r
+ fetch 7\r
+;@SBC A\r
+opcode_9_F:\r
+ opSBCA\r
+\r
+;@AND B\r
+opcode_A_0:\r
+ opANDH z80bc\r
+;@AND C\r
+opcode_A_1:\r
+ opANDL z80bc\r
+;@AND D\r
+opcode_A_2:\r
+ opANDH z80de\r
+;@AND E\r
+opcode_A_3:\r
+ opANDL z80de\r
+;@AND H\r
+opcode_A_4:\r
+ opANDH z80hl\r
+;@AND L\r
+opcode_A_5:\r
+ opANDL z80hl\r
+;@AND (HL)\r
+opcode_A_6:\r
+ readmem8HL\r
+ opANDb\r
+ fetch 7\r
+;@AND A\r
+opcode_A_7:\r
+ opANDA\r
+\r
+;@XOR B\r
+opcode_A_8:\r
+ opXORH z80bc\r
+;@XOR C\r
+opcode_A_9:\r
+ opXORL z80bc\r
+;@XOR D\r
+opcode_A_A:\r
+ opXORH z80de\r
+;@XOR E\r
+opcode_A_B:\r
+ opXORL z80de\r
+;@XOR H\r
+opcode_A_C:\r
+ opXORH z80hl\r
+;@XOR L\r
+opcode_A_D:\r
+ opXORL z80hl\r
+;@XOR (HL)\r
+opcode_A_E:\r
+ readmem8HL\r
+ opXORb\r
+ fetch 7\r
+;@XOR A\r
+opcode_A_F:\r
+ opXORA\r
+\r
+;@OR B\r
+opcode_B_0:\r
+ opORH z80bc\r
+;@OR C\r
+opcode_B_1:\r
+ opORL z80bc\r
+;@OR D\r
+opcode_B_2:\r
+ opORH z80de\r
+;@OR E\r
+opcode_B_3:\r
+ opORL z80de\r
+;@OR H\r
+opcode_B_4:\r
+ opORH z80hl\r
+;@OR L\r
+opcode_B_5:\r
+ opORL z80hl\r
+;@OR (HL)\r
+opcode_B_6:\r
+ readmem8HL\r
+ opORb\r
+ fetch 7\r
+;@OR A\r
+opcode_B_7:\r
+ opORA\r
+\r
+;@CP B\r
+opcode_B_8:\r
+ opCPH z80bc\r
+;@CP C\r
+opcode_B_9:\r
+ opCPL z80bc\r
+;@CP D\r
+opcode_B_A:\r
+ opCPH z80de\r
+;@CP E\r
+opcode_B_B:\r
+ opCPL z80de\r
+;@CP H\r
+opcode_B_C:\r
+ opCPH z80hl\r
+;@CP L\r
+opcode_B_D:\r
+ opCPL z80hl\r
+;@CP (HL)\r
+opcode_B_E:\r
+ readmem8HL\r
+ opCPb\r
+ fetch 7\r
+;@CP A\r
+opcode_B_F:\r
+ opCPA\r
+\r
+;@RET NZ\r
+opcode_C_0:\r
+ tst z80f,#1<<ZFlag\r
+ beq opcode_C_9 ;@unconditional RET\r
+ fetch 5\r
+\r
+;@POP BC\r
+opcode_C_1:\r
+ opPOPreg z80bc\r
+\r
+;@JP NZ,$+3\r
+opcode_C_2:\r
+ tst z80f,#1<<ZFlag\r
+ beq opcode_C_3 ;@unconditional JP\r
+ add z80pc,z80pc,#2\r
+ fetch 10\r
+;@JP $+3\r
+opcode_C_3:\r
+ ldrb r0,[z80pc],#1\r
+ ldrb r1,[z80pc],#1\r
+ orr r0,r0,r1, lsl #8\r
+ rebasepc\r
+ fetch 10\r
+;@CALL NZ,NN\r
+opcode_C_4:\r
+ tst z80f,#1<<ZFlag\r
+ beq opcode_C_D ;@unconditional CALL\r
+ add z80pc,z80pc,#2\r
+ fetch 10\r
+\r
+;@PUSH BC\r
+opcode_C_5:\r
+ opPUSHreg z80bc\r
+ fetch 11\r
+;@ADD A,N\r
+opcode_C_6:\r
+ ldrb r0,[z80pc],#1\r
+ opADDb\r
+ fetch 7\r
+;@RST 0\r
+opcode_C_7:\r
+ opRST 0x00\r
+\r
+;@RET Z\r
+opcode_C_8:\r
+ tst z80f,#1<<ZFlag\r
+ bne opcode_C_9 ;@unconditional RET\r
+ fetch 5\r
+;@RET\r
+opcode_C_9:\r
+ opPOP\r
+ rebasepc\r
+ fetch 10\r
+;@JP Z,$+3\r
+opcode_C_A:\r
+ tst z80f,#1<<ZFlag\r
+ bne opcode_C_3 ;@unconditional JP\r
+ add z80pc,z80pc,#2\r
+ fetch 10\r
+\r
+;@This reads this opcodes_CB lookup table to find the location of\r
+;@the CB sub for the intruction and then branches to that location\r
+opcode_C_B:\r
+ ldrb r0,[z80pc],#1\r
+ ldr pc,[pc,r0, lsl #2]\r
+opcodes_CB: .word 0x00000000\r
+ .word opcode_CB_00,opcode_CB_01,opcode_CB_02,opcode_CB_03,opcode_CB_04,opcode_CB_05,opcode_CB_06,opcode_CB_07\r
+ .word opcode_CB_08,opcode_CB_09,opcode_CB_0A,opcode_CB_0B,opcode_CB_0C,opcode_CB_0D,opcode_CB_0E,opcode_CB_0F\r
+ .word opcode_CB_10,opcode_CB_11,opcode_CB_12,opcode_CB_13,opcode_CB_14,opcode_CB_15,opcode_CB_16,opcode_CB_17\r
+ .word opcode_CB_18,opcode_CB_19,opcode_CB_1A,opcode_CB_1B,opcode_CB_1C,opcode_CB_1D,opcode_CB_1E,opcode_CB_1F\r
+ .word opcode_CB_20,opcode_CB_21,opcode_CB_22,opcode_CB_23,opcode_CB_24,opcode_CB_25,opcode_CB_26,opcode_CB_27\r
+ .word opcode_CB_28,opcode_CB_29,opcode_CB_2A,opcode_CB_2B,opcode_CB_2C,opcode_CB_2D,opcode_CB_2E,opcode_CB_2F\r
+ .word opcode_CB_30,opcode_CB_31,opcode_CB_32,opcode_CB_33,opcode_CB_34,opcode_CB_35,opcode_CB_36,opcode_CB_37\r
+ .word opcode_CB_38,opcode_CB_39,opcode_CB_3A,opcode_CB_3B,opcode_CB_3C,opcode_CB_3D,opcode_CB_3E,opcode_CB_3F\r
+ .word opcode_CB_40,opcode_CB_41,opcode_CB_42,opcode_CB_43,opcode_CB_44,opcode_CB_45,opcode_CB_46,opcode_CB_47\r
+ .word opcode_CB_48,opcode_CB_49,opcode_CB_4A,opcode_CB_4B,opcode_CB_4C,opcode_CB_4D,opcode_CB_4E,opcode_CB_4F\r
+ .word opcode_CB_50,opcode_CB_51,opcode_CB_52,opcode_CB_53,opcode_CB_54,opcode_CB_55,opcode_CB_56,opcode_CB_57\r
+ .word opcode_CB_58,opcode_CB_59,opcode_CB_5A,opcode_CB_5B,opcode_CB_5C,opcode_CB_5D,opcode_CB_5E,opcode_CB_5F\r
+ .word opcode_CB_60,opcode_CB_61,opcode_CB_62,opcode_CB_63,opcode_CB_64,opcode_CB_65,opcode_CB_66,opcode_CB_67\r
+ .word opcode_CB_68,opcode_CB_69,opcode_CB_6A,opcode_CB_6B,opcode_CB_6C,opcode_CB_6D,opcode_CB_6E,opcode_CB_6F\r
+ .word opcode_CB_70,opcode_CB_71,opcode_CB_72,opcode_CB_73,opcode_CB_74,opcode_CB_75,opcode_CB_76,opcode_CB_77\r
+ .word opcode_CB_78,opcode_CB_79,opcode_CB_7A,opcode_CB_7B,opcode_CB_7C,opcode_CB_7D,opcode_CB_7E,opcode_CB_7F\r
+ .word opcode_CB_80,opcode_CB_81,opcode_CB_82,opcode_CB_83,opcode_CB_84,opcode_CB_85,opcode_CB_86,opcode_CB_87\r
+ .word opcode_CB_88,opcode_CB_89,opcode_CB_8A,opcode_CB_8B,opcode_CB_8C,opcode_CB_8D,opcode_CB_8E,opcode_CB_8F\r
+ .word opcode_CB_90,opcode_CB_91,opcode_CB_92,opcode_CB_93,opcode_CB_94,opcode_CB_95,opcode_CB_96,opcode_CB_97\r
+ .word opcode_CB_98,opcode_CB_99,opcode_CB_9A,opcode_CB_9B,opcode_CB_9C,opcode_CB_9D,opcode_CB_9E,opcode_CB_9F\r
+ .word opcode_CB_A0,opcode_CB_A1,opcode_CB_A2,opcode_CB_A3,opcode_CB_A4,opcode_CB_A5,opcode_CB_A6,opcode_CB_A7\r
+ .word opcode_CB_A8,opcode_CB_A9,opcode_CB_AA,opcode_CB_AB,opcode_CB_AC,opcode_CB_AD,opcode_CB_AE,opcode_CB_AF\r
+ .word opcode_CB_B0,opcode_CB_B1,opcode_CB_B2,opcode_CB_B3,opcode_CB_B4,opcode_CB_B5,opcode_CB_B6,opcode_CB_B7\r
+ .word opcode_CB_B8,opcode_CB_B9,opcode_CB_BA,opcode_CB_BB,opcode_CB_BC,opcode_CB_BD,opcode_CB_BE,opcode_CB_BF\r
+ .word opcode_CB_C0,opcode_CB_C1,opcode_CB_C2,opcode_CB_C3,opcode_CB_C4,opcode_CB_C5,opcode_CB_C6,opcode_CB_C7\r
+ .word opcode_CB_C8,opcode_CB_C9,opcode_CB_CA,opcode_CB_CB,opcode_CB_CC,opcode_CB_CD,opcode_CB_CE,opcode_CB_CF\r
+ .word opcode_CB_D0,opcode_CB_D1,opcode_CB_D2,opcode_CB_D3,opcode_CB_D4,opcode_CB_D5,opcode_CB_D6,opcode_CB_D7\r
+ .word opcode_CB_D8,opcode_CB_D9,opcode_CB_DA,opcode_CB_DB,opcode_CB_DC,opcode_CB_DD,opcode_CB_DE,opcode_CB_DF\r
+ .word opcode_CB_E0,opcode_CB_E1,opcode_CB_E2,opcode_CB_E3,opcode_CB_E4,opcode_CB_E5,opcode_CB_E6,opcode_CB_E7\r
+ .word opcode_CB_E8,opcode_CB_E9,opcode_CB_EA,opcode_CB_EB,opcode_CB_EC,opcode_CB_ED,opcode_CB_EE,opcode_CB_EF\r
+ .word opcode_CB_F0,opcode_CB_F1,opcode_CB_F2,opcode_CB_F3,opcode_CB_F4,opcode_CB_F5,opcode_CB_F6,opcode_CB_F7\r
+ .word opcode_CB_F8,opcode_CB_F9,opcode_CB_FA,opcode_CB_FB,opcode_CB_FC,opcode_CB_FD,opcode_CB_FE,opcode_CB_FF\r
+\r
+;@CALL Z,NN\r
+opcode_C_C:\r
+ tst z80f,#1<<ZFlag\r
+ bne opcode_C_D ;@unconditional CALL\r
+ add z80pc,z80pc,#2\r
+ fetch 10\r
+;@CALL NN\r
+opcode_C_D:\r
+ ldrb r0,[z80pc],#1\r
+ ldrb r1,[z80pc],#1\r
+ ldr r2,[cpucontext,#z80pc_base]\r
+ sub r2,z80pc,r2\r
+ orr z80pc,r0,r1, lsl #8\r
+ opPUSHareg r2\r
+ mov r0,z80pc\r
+ rebasepc\r
+ fetch 17\r
+;@ADC A,N\r
+opcode_C_E:\r
+ ldrb r0,[z80pc],#1\r
+ opADCb\r
+ fetch 7\r
+;@RST 8H\r
+opcode_C_F:\r
+ opRST 0x08\r
+\r
+;@RET NC\r
+opcode_D_0:\r
+ tst z80f,#1<<CFlag\r
+ beq opcode_C_9 ;@unconditional RET\r
+ fetch 5\r
+;@POP DE\r
+opcode_D_1:\r
+ opPOPreg z80de\r
+\r
+;@JP NC, $+3\r
+opcode_D_2 :\r
+ tst z80f,#1<<CFlag\r
+ beq opcode_C_3 ;@unconditional JP\r
+ add z80pc,z80pc,#2\r
+ fetch 10\r
+;@OUT (N),A\r
+opcode_D_3:\r
+ ldrb r0,[z80pc],#1\r
+ orr r0,r0,z80a,lsr#16\r
+ mov r1,z80a, lsr #24\r
+ opOUT\r
+ fetch 11\r
+;@CALL NC,NN\r
+opcode_D_4:\r
+ tst z80f,#1<<CFlag\r
+ beq opcode_C_D ;@unconditional CALL\r
+ add z80pc,z80pc,#2\r
+ fetch 10\r
+;@PUSH DE\r
+opcode_D_5:\r
+ opPUSHreg z80de\r
+ fetch 11\r
+;@SUB N\r
+opcode_D_6:\r
+ ldrb r0,[z80pc],#1\r
+ opSUBb\r
+ fetch 7\r
+\r
+;@RST 10H\r
+opcode_D_7:\r
+ opRST 0x10\r
+\r
+;@RET C\r
+opcode_D_8:\r
+ tst z80f,#1<<CFlag\r
+ bne opcode_C_9 ;@unconditional RET\r
+ fetch 5\r
+;@EXX\r
+opcode_D_9:\r
+ add r1,cpucontext,#z80bc2\r
+ swp z80bc,z80bc,[r1]\r
+ add r1,cpucontext,#z80de2\r
+ swp z80de,z80de,[r1]\r
+ add r1,cpucontext,#z80hl2\r
+ swp z80hl,z80hl,[r1]\r
+ fetch 4\r
+;@JP C,$+3\r
+opcode_D_A:\r
+ tst z80f,#1<<CFlag\r
+ bne opcode_C_3 ;@unconditional JP\r
+ add z80pc,z80pc,#2\r
+ fetch 10\r
+;@IN A,(N)\r
+opcode_D_B:\r
+ ldrb r0,[z80pc],#1\r
+ orr r0,r0,z80a,lsr#16\r
+ opIN\r
+ mov z80a,r0, lsl #24 ;@ r0 = data read\r
+ fetch 11\r
+;@CALL C,NN\r
+opcode_D_C:\r
+ tst z80f,#1<<CFlag\r
+ bne opcode_C_D ;@unconditional CALL\r
+ add z80pc,z80pc,#2\r
+ fetch 10\r
+\r
+;@opcodes_DD\r
+opcode_D_D:\r
+ add z80xx,cpucontext,#z80ix\r
+ b opcode_D_D_F_D\r
+opcode_F_D:\r
+ add z80xx,cpucontext,#z80iy\r
+opcode_D_D_F_D:\r
+ ldrb r0,[z80pc],#1\r
+ ldr pc,[pc,r0, lsl #2]\r
+opcodes_DD: .word 0x00000000\r
+ .word opcode_0_0, opcode_0_1, opcode_0_2, opcode_0_3, opcode_0_4, opcode_0_5, opcode_0_6, opcode_0_7\r
+ .word opcode_0_8, opcode_DD_09,opcode_0_A, opcode_0_B, opcode_0_C, opcode_0_D, opcode_0_E, opcode_0_F\r
+ .word opcode_1_0, opcode_1_1, opcode_1_2, opcode_1_3, opcode_1_4, opcode_1_5, opcode_1_6, opcode_1_7\r
+ .word opcode_1_8, opcode_DD_19,opcode_1_A, opcode_1_B, opcode_1_C, opcode_1_D, opcode_1_E, opcode_1_F\r
+ .word opcode_2_0, opcode_DD_21,opcode_DD_22,opcode_DD_23,opcode_DD_24,opcode_DD_25,opcode_DD_26,opcode_2_7\r
+ .word opcode_2_8, opcode_DD_29,opcode_DD_2A,opcode_DD_2B,opcode_DD_2C,opcode_DD_2D,opcode_DD_2E,opcode_2_F\r
+ .word opcode_3_0, opcode_3_1, opcode_3_2, opcode_3_3, opcode_DD_34,opcode_DD_35,opcode_DD_36,opcode_3_7\r
+ .word opcode_3_8, opcode_DD_39,opcode_3_A, opcode_3_B, opcode_3_C, opcode_3_D, opcode_3_E, opcode_3_F\r
+ .word opcode_4_0, opcode_4_1, opcode_4_2, opcode_4_3, opcode_DD_44,opcode_DD_45,opcode_DD_46,opcode_4_7\r
+ .word opcode_4_8, opcode_4_9, opcode_4_A, opcode_4_B, opcode_DD_4C,opcode_DD_4D,opcode_DD_4E,opcode_4_F\r
+ .word opcode_5_0, opcode_5_1, opcode_5_2, opcode_5_3, opcode_DD_54,opcode_DD_55,opcode_DD_56,opcode_5_7\r
+ .word opcode_5_8, opcode_5_9, opcode_5_A, opcode_5_B, opcode_DD_5C,opcode_DD_5D,opcode_DD_5E,opcode_5_F\r
+ .word opcode_DD_60,opcode_DD_61,opcode_DD_62,opcode_DD_63,opcode_DD_64,opcode_DD_65,opcode_DD_66,opcode_DD_67\r
+ .word opcode_DD_68,opcode_DD_69,opcode_DD_6A,opcode_DD_6B,opcode_DD_6C,opcode_DD_6D,opcode_DD_6E,opcode_DD_6F\r
+ .word opcode_DD_70,opcode_DD_71,opcode_DD_72,opcode_DD_73,opcode_DD_74,opcode_DD_75,opcode_7_6, opcode_DD_77\r
+ .word opcode_7_8, opcode_7_9, opcode_7_A, opcode_7_B, opcode_DD_7C,opcode_DD_7D,opcode_DD_7E,opcode_7_F\r
+ .word opcode_8_0, opcode_8_1, opcode_8_2, opcode_8_3, opcode_DD_84,opcode_DD_85,opcode_DD_86,opcode_8_7\r
+ .word opcode_8_8, opcode_8_9, opcode_8_A, opcode_8_B, opcode_DD_8C,opcode_DD_8D,opcode_DD_8E,opcode_8_F\r
+ .word opcode_9_0, opcode_9_1, opcode_9_2, opcode_9_3, opcode_DD_94,opcode_DD_95,opcode_DD_96,opcode_9_7\r
+ .word opcode_9_8, opcode_9_9, opcode_9_A, opcode_9_B, opcode_DD_9C,opcode_DD_9D,opcode_DD_9E,opcode_9_F\r
+ .word opcode_A_0, opcode_A_1, opcode_A_2, opcode_A_3, opcode_DD_A4,opcode_DD_A5,opcode_DD_A6,opcode_A_7\r
+ .word opcode_A_8, opcode_A_9, opcode_A_A, opcode_A_B, opcode_DD_AC,opcode_DD_AD,opcode_DD_AE,opcode_A_F\r
+ .word opcode_B_0, opcode_B_1, opcode_B_2, opcode_B_3, opcode_DD_B4,opcode_DD_B5,opcode_DD_B6,opcode_B_7\r
+ .word opcode_B_8, opcode_B_9, opcode_B_A, opcode_B_B, opcode_DD_BC,opcode_DD_BD,opcode_DD_BE,opcode_B_F\r
+ .word opcode_C_0, opcode_C_1, opcode_C_2, opcode_C_3, opcode_C_4, opcode_C_5, opcode_C_6, opcode_C_7\r
+ .word opcode_C_8, opcode_C_9, opcode_C_A, opcode_DD_CB,opcode_C_C, opcode_C_D, opcode_C_E, opcode_C_F\r
+ .word opcode_D_0, opcode_D_1, opcode_D_2, opcode_D_3, opcode_D_4, opcode_D_5, opcode_D_6, opcode_D_7\r
+ .word opcode_D_8, opcode_D_9, opcode_D_A, opcode_D_B, opcode_D_C, opcode_D_D, opcode_D_E, opcode_D_F\r
+ .word opcode_E_0, opcode_DD_E1,opcode_E_2, opcode_DD_E3,opcode_E_4, opcode_DD_E5,opcode_E_6, opcode_E_7\r
+ .word opcode_E_8, opcode_DD_E9,opcode_E_A, opcode_E_B, opcode_E_C, opcode_E_D, opcode_E_E, opcode_E_F\r
+ .word opcode_F_0, opcode_F_1, opcode_F_2, opcode_F_3, opcode_F_4, opcode_F_5, opcode_F_6, opcode_F_7\r
+ .word opcode_F_8, opcode_DD_F9,opcode_F_A, opcode_F_B, opcode_F_C, opcode_F_D, opcode_F_E, opcode_F_F\r
+\r
+;@SBC A,N\r
+opcode_D_E:\r
+ ldrb r0,[z80pc],#1\r
+ opSBCb\r
+ fetch 7\r
+;@RST 18H\r
+opcode_D_F:\r
+ opRST 0x18\r
+\r
+;@RET PO\r
+opcode_E_0:\r
+ tst z80f,#1<<VFlag\r
+ beq opcode_C_9 ;@unconditional RET\r
+ fetch 5\r
+;@POP HL\r
+opcode_E_1:\r
+ opPOPreg z80hl\r
+\r
+;@JP PO,$+3\r
+opcode_E_2:\r
+ tst z80f,#1<<VFlag\r
+ beq opcode_C_3 ;@unconditional JP\r
+ add z80pc,z80pc,#2\r
+ fetch 10\r
+;@EX (SP),HL\r
+opcode_E_3:\r
+.if FAST_Z80SP\r
+ ldrb r0,[z80sp]\r
+ ldrb r1,[z80sp,#1]\r
+ orr r0,r0,r1, lsl #8\r
+ mov r1,z80hl, lsr #24\r
+ strb r1,[z80sp,#1]\r
+ mov r1,z80hl, lsr #16\r
+ strb r1,[z80sp]\r
+ mov z80hl,r0, lsl #16\r
+.else\r
+ mov r0,z80sp\r
+ readmem16\r
+ mov r1,r0\r
+ mov r0,z80hl,lsr#16\r
+ mov z80hl,r1,lsl#16\r
+ mov r1,z80sp\r
+ writemem16\r
+.endif\r
+ fetch 19\r
+;@CALL PO,NN\r
+opcode_E_4:\r
+ tst z80f,#1<<VFlag\r
+ beq opcode_C_D ;@unconditional CALL\r
+ add z80pc,z80pc,#2\r
+ fetch 10\r
+;@PUSH HL\r
+opcode_E_5:\r
+ opPUSHreg z80hl\r
+ fetch 11\r
+;@AND N\r
+opcode_E_6:\r
+ ldrb r0,[z80pc],#1\r
+ opANDb\r
+ fetch 7\r
+;@RST 20H\r
+opcode_E_7:\r
+ opRST 0x20\r
+\r
+;@RET PE\r
+opcode_E_8:\r
+ tst z80f,#1<<VFlag\r
+ bne opcode_C_9 ;@unconditional RET\r
+ fetch 5\r
+;@JP (HL)\r
+opcode_E_9:\r
+ mov r0,z80hl, lsr #16\r
+ rebasepc\r
+ fetch 4\r
+;@JP PE,$+3\r
+opcode_E_A:\r
+ tst z80f,#1<<VFlag\r
+ bne opcode_C_3 ;@unconditional JP\r
+ add z80pc,z80pc,#2\r
+ fetch 10\r
+;@EX DE,HL\r
+opcode_E_B:\r
+ mov r1,z80de\r
+ mov z80de,z80hl\r
+ mov z80hl,r1\r
+ fetch 4\r
+;@CALL PE,NN\r
+opcode_E_C:\r
+ tst z80f,#1<<VFlag\r
+ bne opcode_C_D ;@unconditional CALL\r
+ add z80pc,z80pc,#2\r
+ fetch 10\r
+\r
+;@This should be caught at start\r
+opcode_E_D:\r
+ ldrb r1,[z80pc],#1\r
+ ldr pc,[pc,r1, lsl #2]\r
+opcodes_ED: .word 0x00000000\r
+ .word opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF\r
+ .word opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF\r
+ .word opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF\r
+ .word opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF\r
+ .word opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF\r
+ .word opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF\r
+ .word opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF\r
+ .word opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF\r
+ .word opcode_ED_40,opcode_ED_41,opcode_ED_42,opcode_ED_43,opcode_ED_44,opcode_ED_45,opcode_ED_46,opcode_ED_47\r
+ .word opcode_ED_48,opcode_ED_49,opcode_ED_4A,opcode_ED_4B,opcode_ED_44,opcode_ED_4D,opcode_ED_46,opcode_ED_4F\r
+ .word opcode_ED_50,opcode_ED_51,opcode_ED_52,opcode_ED_53,opcode_ED_44,opcode_ED_45,opcode_ED_56,opcode_ED_57\r
+ .word opcode_ED_58,opcode_ED_59,opcode_ED_5A,opcode_ED_5B,opcode_ED_44,opcode_ED_45,opcode_ED_5E,opcode_ED_5F\r
+ .word opcode_ED_60,opcode_ED_61,opcode_ED_62,opcode_ED_63,opcode_ED_44,opcode_ED_45,opcode_ED_46,opcode_ED_67\r
+ .word opcode_ED_68,opcode_ED_69,opcode_ED_6A,opcode_ED_6B,opcode_ED_44,opcode_ED_45,opcode_ED_46,opcode_ED_6F\r
+ .word opcode_ED_70,opcode_ED_71,opcode_ED_72,opcode_ED_73,opcode_ED_44,opcode_ED_45,opcode_ED_56,opcode_ED_NF\r
+ .word opcode_ED_78,opcode_ED_79,opcode_ED_7A,opcode_ED_7B,opcode_ED_44,opcode_ED_45,opcode_ED_5E,opcode_ED_NF\r
+ .word opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF\r
+ .word opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF\r
+ .word opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF\r
+ .word opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF\r
+ .word opcode_ED_A0,opcode_ED_A1,opcode_ED_A2,opcode_ED_A3,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF\r
+ .word opcode_ED_A8,opcode_ED_A9,opcode_ED_AA,opcode_ED_AB,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF\r
+ .word opcode_ED_B0,opcode_ED_B1,opcode_ED_B2,opcode_ED_B3,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF\r
+ .word opcode_ED_B8,opcode_ED_B9,opcode_ED_BA,opcode_ED_BB,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF\r
+ .word opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF\r
+ .word opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF\r
+ .word opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF\r
+ .word opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF\r
+ .word opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF\r
+ .word opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF\r
+ .word opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF\r
+ .word opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF,opcode_ED_NF\r
+\r
+;@XOR N\r
+opcode_E_E:\r
+ ldrb r0,[z80pc],#1\r
+ opXORb\r
+ fetch 7\r
+;@RST 28H\r
+opcode_E_F:\r
+ opRST 0x28\r
+\r
+;@RET P\r
+opcode_F_0:\r
+ tst z80f,#1<<SFlag\r
+ beq opcode_C_9 ;@unconditional RET\r
+ fetch 5\r
+;@POP AF\r
+opcode_F_1:\r
+.if FAST_Z80SP\r
+ ldrb z80f,[z80sp],#1\r
+ sub r0,opcodes,#0x200\r
+ ldrb z80f,[r0,z80f]\r
+ ldrb z80a,[z80sp],#1\r
+ mov z80a,z80a, lsl #24\r
+.else\r
+ mov r0,z80sp\r
+ readmem16\r
+ add z80sp,z80sp,#2\r
+ and z80a,r0,#0xFF00\r
+ mov z80a,z80a,lsl#16\r
+ and z80f,r0,#0xFF\r
+ sub r0,opcodes,#0x200\r
+ ldrb z80f,[r0,z80f]\r
+.endif\r
+ fetch 10\r
+;@JP P,$+3\r
+opcode_F_2:\r
+ tst z80f,#1<<SFlag\r
+ beq opcode_C_3 ;@unconditional JP\r
+ add z80pc,z80pc,#2\r
+ fetch 10\r
+;@DI\r
+opcode_F_3:\r
+ ldrb r1,[cpucontext,#z80if]\r
+ bic r1,r1,#(Z80_IF1)|(Z80_IF2)\r
+ strb r1,[cpucontext,#z80if]\r
+ fetch 4\r
+;@CALL P,NN\r
+opcode_F_4:\r
+ tst z80f,#1<<SFlag\r
+ beq opcode_C_D ;@unconditional CALL\r
+ add z80pc,z80pc,#2\r
+ fetch 10\r
+;@PUSH AF\r
+opcode_F_5:\r
+ sub r0,opcodes,#0x300\r
+ ldrb r0,[r0,z80f]\r
+ orr r2,r0,z80a,lsr#16\r
+ opPUSHareg r2\r
+ fetch 11\r
+;@OR N\r
+opcode_F_6:\r
+ ldrb r0,[z80pc],#1\r
+ opORb\r
+ fetch 7\r
+;@RST 30H\r
+opcode_F_7:\r
+ opRST 0x30\r
+\r
+;@RET M\r
+opcode_F_8:\r
+ tst z80f,#1<<SFlag\r
+ bne opcode_C_9 ;@unconditional RET\r
+ fetch 5\r
+;@LD SP,HL\r
+opcode_F_9:\r
+.if FAST_Z80SP\r
+ mov r0,z80hl, lsr #16\r
+ rebasesp\r
+ mov z80sp,r0\r
+.else\r
+ mov z80sp,z80hl, lsr #16\r
+.endif\r
+ fetch 4\r
+;@JP M,$+3\r
+opcode_F_A:\r
+ tst z80f,#1<<SFlag\r
+ bne opcode_C_3 ;@unconditional JP\r
+ add z80pc,z80pc,#2\r
+ fetch 10\r
+MAIN_opcodes_POINTER: .word MAIN_opcodes\r
+EI_DUMMY_opcodes_POINTER: .word EI_DUMMY_opcodes\r
+;@EI\r
+opcode_F_B:\r
+ ldrb r1,[cpucontext,#z80if]\r
+ tst r1,#Z80_IF1\r
+ bne ei_return_exit\r
+\r
+ orr r1,r1,#(Z80_IF1)|(Z80_IF2)\r
+ strb r1,[cpucontext,#z80if]\r
+\r
+ mov r2,opcodes\r
+ ldr opcodes,EI_DUMMY_opcodes_POINTER\r
+ ldr pc,[r2,r0, lsl #2]\r
+\r
+ei_return:\r
+ ;@point that program returns from EI to check interupts\r
+ ;@an interupt can not be taken directly after a EI opcode\r
+ ;@ reset z80pc and opcode pointer\r
+ ldrh r0,[cpucontext,#z80irq] @ 0x4C\r
+ sub z80pc,z80pc,#1\r
+ ldr opcodes,MAIN_opcodes_POINTER\r
+ ;@ check ints\r
+ tst r0,#1\r
+ movnes r0,r0,lsr #8\r
+ blne DoInterrupt\r
+ ;@ continue\r
+ei_return_exit:\r
+ fetch 4\r
+\r
+;@CALL M,NN\r
+opcode_F_C:\r
+ tst z80f,#1<<SFlag\r
+ bne opcode_C_D ;@unconditional CALL\r
+ add z80pc,z80pc,#2\r
+ fetch 10\r
+\r
+;@SHOULD BE CAUGHT AT START - FD SECTION\r
+\r
+;@CP N\r
+opcode_F_E:\r
+ ldrb r0,[z80pc],#1\r
+ opCPb\r
+ fetch 7\r
+;@RST 38H\r
+opcode_F_F:\r
+ opRST 0x38\r
+\r
+\r
+;@##################################\r
+;@##################################\r
+;@### opcodes CB #########################\r
+;@##################################\r
+;@##################################\r
+\r
+\r
+;@RLC B\r
+opcode_CB_00:\r
+ opRLCH z80bc\r
+;@RLC C\r
+opcode_CB_01:\r
+ opRLCL z80bc\r
+;@RLC D\r
+opcode_CB_02:\r
+ opRLCH z80de\r
+;@RLC E\r
+opcode_CB_03:\r
+ opRLCL z80de\r
+;@RLC H\r
+opcode_CB_04:\r
+ opRLCH z80hl\r
+;@RLC L\r
+opcode_CB_05:\r
+ opRLCL z80hl\r
+;@RLC (HL)\r
+opcode_CB_06:\r
+ readmem8HL\r
+ opRLCb\r
+ writemem8HL\r
+ fetch 15\r
+;@RLC A\r
+opcode_CB_07:\r
+ opRLCA\r
+\r
+;@RRC B\r
+opcode_CB_08:\r
+ opRRCH z80bc\r
+;@RRC C\r
+opcode_CB_09:\r
+ opRRCL z80bc\r
+;@RRC D\r
+opcode_CB_0A:\r
+ opRRCH z80de\r
+;@RRC E\r
+opcode_CB_0B:\r
+ opRRCL z80de\r
+;@RRC H\r
+opcode_CB_0C:\r
+ opRRCH z80hl\r
+;@RRC L\r
+opcode_CB_0D:\r
+ opRRCL z80hl\r
+;@RRC (HL)\r
+opcode_CB_0E :\r
+ readmem8HL\r
+ opRRCb\r
+ writemem8HL\r
+ fetch 15\r
+;@RRC A\r
+opcode_CB_0F:\r
+ opRRCA\r
+\r
+;@RL B\r
+opcode_CB_10:\r
+ opRLH z80bc\r
+;@RL C\r
+opcode_CB_11:\r
+ opRLL z80bc\r
+;@RL D\r
+opcode_CB_12:\r
+ opRLH z80de\r
+;@RL E\r
+opcode_CB_13:\r
+ opRLL z80de\r
+;@RL H\r
+opcode_CB_14:\r
+ opRLH z80hl\r
+;@RL L\r
+opcode_CB_15:\r
+ opRLL z80hl\r
+;@RL (HL)\r
+opcode_CB_16:\r
+ readmem8HL\r
+ opRLb\r
+ writemem8HL\r
+ fetch 15\r
+;@RL A\r
+opcode_CB_17:\r
+ opRLA\r
+\r
+;@RR B \r
+opcode_CB_18:\r
+ opRRH z80bc\r
+;@RR C\r
+opcode_CB_19:\r
+ opRRL z80bc\r
+;@RR D\r
+opcode_CB_1A:\r
+ opRRH z80de\r
+;@RR E\r
+opcode_CB_1B:\r
+ opRRL z80de\r
+;@RR H\r
+opcode_CB_1C:\r
+ opRRH z80hl\r
+;@RR L\r
+opcode_CB_1D:\r
+ opRRL z80hl\r
+;@RR (HL)\r
+opcode_CB_1E:\r
+ readmem8HL\r
+ opRRb\r
+ writemem8HL\r
+ fetch 15\r
+;@RR A\r
+opcode_CB_1F:\r
+ opRRA\r
+\r
+;@SLA B\r
+opcode_CB_20:\r
+ opSLAH z80bc\r
+;@SLA C\r
+opcode_CB_21:\r
+ opSLAL z80bc\r
+;@SLA D\r
+opcode_CB_22:\r
+ opSLAH z80de\r
+;@SLA E\r
+opcode_CB_23:\r
+ opSLAL z80de\r
+;@SLA H\r
+opcode_CB_24:\r
+ opSLAH z80hl\r
+;@SLA L\r
+opcode_CB_25:\r
+ opSLAL z80hl\r
+;@SLA (HL)\r
+opcode_CB_26:\r
+ readmem8HL\r
+ opSLAb\r
+ writemem8HL\r
+ fetch 15\r
+;@SLA A\r
+opcode_CB_27:\r
+ opSLAA\r
+\r
+;@SRA B\r
+opcode_CB_28:\r
+ opSRAH z80bc\r
+;@SRA C\r
+opcode_CB_29:\r
+ opSRAL z80bc\r
+;@SRA D\r
+opcode_CB_2A:\r
+ opSRAH z80de\r
+;@SRA E\r
+opcode_CB_2B:\r
+ opSRAL z80de\r
+;@SRA H\r
+opcode_CB_2C:\r
+ opSRAH z80hl\r
+;@SRA L\r
+opcode_CB_2D:\r
+ opSRAL z80hl\r
+;@SRA (HL)\r
+opcode_CB_2E:\r
+ readmem8HL\r
+ opSRAb\r
+ writemem8HL\r
+ fetch 15\r
+;@SRA A\r
+opcode_CB_2F:\r
+ opSRAA\r
+\r
+;@SLL B\r
+opcode_CB_30:\r
+ opSLLH z80bc\r
+;@SLL C\r
+opcode_CB_31:\r
+ opSLLL z80bc\r
+;@SLL D\r
+opcode_CB_32:\r
+ opSLLH z80de\r
+;@SLL E\r
+opcode_CB_33:\r
+ opSLLL z80de\r
+;@SLL H\r
+opcode_CB_34:\r
+ opSLLH z80hl\r
+;@SLL L\r
+opcode_CB_35:\r
+ opSLLL z80hl\r
+;@SLL (HL)\r
+opcode_CB_36:\r
+ readmem8HL\r
+ opSLLb\r
+ writemem8HL\r
+ fetch 15\r
+;@SLL A\r
+opcode_CB_37:\r
+ opSLLA\r
+\r
+;@SRL B\r
+opcode_CB_38:\r
+ opSRLH z80bc\r
+;@SRL C\r
+opcode_CB_39:\r
+ opSRLL z80bc\r
+;@SRL D\r
+opcode_CB_3A:\r
+ opSRLH z80de\r
+;@SRL E\r
+opcode_CB_3B:\r
+ opSRLL z80de\r
+;@SRL H\r
+opcode_CB_3C:\r
+ opSRLH z80hl\r
+;@SRL L\r
+opcode_CB_3D:\r
+ opSRLL z80hl\r
+;@SRL (HL)\r
+opcode_CB_3E:\r
+ readmem8HL\r
+ opSRLb\r
+ writemem8HL\r
+ fetch 15\r
+;@SRL A\r
+opcode_CB_3F:\r
+ opSRLA\r
+\r
+\r
+;@BIT 0,B\r
+opcode_CB_40:\r
+ opBITH z80bc 0\r
+;@BIT 0,C\r
+opcode_CB_41:\r
+ opBITL z80bc 0\r
+;@BIT 0,D\r
+opcode_CB_42:\r
+ opBITH z80de 0\r
+;@BIT 0,E\r
+opcode_CB_43:\r
+ opBITL z80de 0\r
+;@BIT 0,H\r
+opcode_CB_44:\r
+ opBITH z80hl 0\r
+;@BIT 0,L\r
+opcode_CB_45:\r
+ opBITL z80hl 0\r
+;@BIT 0,(HL)\r
+opcode_CB_46:\r
+ readmem8HL\r
+ opBITb 0\r
+ fetch 12\r
+;@BIT 0,A\r
+opcode_CB_47:\r
+ opBITH z80a 0\r
+\r
+;@BIT 1,B\r
+opcode_CB_48:\r
+ opBITH z80bc 1\r
+;@BIT 1,C\r
+opcode_CB_49:\r
+ opBITL z80bc 1\r
+;@BIT 1,D\r
+opcode_CB_4A:\r
+ opBITH z80de 1\r
+;@BIT 1,E\r
+opcode_CB_4B:\r
+ opBITL z80de 1\r
+;@BIT 1,H\r
+opcode_CB_4C:\r
+ opBITH z80hl 1\r
+;@BIT 1,L\r
+opcode_CB_4D:\r
+ opBITL z80hl 1\r
+;@BIT 1,(HL)\r
+opcode_CB_4E:\r
+ readmem8HL\r
+ opBITb 1\r
+ fetch 12\r
+;@BIT 1,A\r
+opcode_CB_4F:\r
+ opBITH z80a 1\r
+\r
+;@BIT 2,B\r
+opcode_CB_50:\r
+ opBITH z80bc 2\r
+;@BIT 2,C\r
+opcode_CB_51:\r
+ opBITL z80bc 2\r
+;@BIT 2,D\r
+opcode_CB_52:\r
+ opBITH z80de 2\r
+;@BIT 2,E\r
+opcode_CB_53:\r
+ opBITL z80de 2\r
+;@BIT 2,H\r
+opcode_CB_54:\r
+ opBITH z80hl 2\r
+;@BIT 2,L\r
+opcode_CB_55:\r
+ opBITL z80hl 2\r
+;@BIT 2,(HL)\r
+opcode_CB_56:\r
+ readmem8HL\r
+ opBITb 2\r
+ fetch 12\r
+;@BIT 2,A\r
+opcode_CB_57:\r
+ opBITH z80a 2\r
+\r
+;@BIT 3,B\r
+opcode_CB_58:\r
+ opBITH z80bc 3\r
+;@BIT 3,C\r
+opcode_CB_59:\r
+ opBITL z80bc 3\r
+;@BIT 3,D\r
+opcode_CB_5A:\r
+ opBITH z80de 3\r
+;@BIT 3,E\r
+opcode_CB_5B:\r
+ opBITL z80de 3\r
+;@BIT 3,H\r
+opcode_CB_5C:\r
+ opBITH z80hl 3\r
+;@BIT 3,L\r
+opcode_CB_5D:\r
+ opBITL z80hl 3\r
+;@BIT 3,(HL)\r
+opcode_CB_5E:\r
+ readmem8HL\r
+ opBITb 3\r
+ fetch 12\r
+;@BIT 3,A\r
+opcode_CB_5F:\r
+ opBITH z80a 3\r
+\r
+;@BIT 4,B\r
+opcode_CB_60:\r
+ opBITH z80bc 4\r
+;@BIT 4,C\r
+opcode_CB_61:\r
+ opBITL z80bc 4\r
+;@BIT 4,D\r
+opcode_CB_62:\r
+ opBITH z80de 4\r
+;@BIT 4,E\r
+opcode_CB_63:\r
+ opBITL z80de 4\r
+;@BIT 4,H\r
+opcode_CB_64:\r
+ opBITH z80hl 4\r
+;@BIT 4,L\r
+opcode_CB_65:\r
+ opBITL z80hl 4\r
+;@BIT 4,(HL)\r
+opcode_CB_66:\r
+ readmem8HL\r
+ opBITb 4\r
+ fetch 12\r
+;@BIT 4,A\r
+opcode_CB_67:\r
+ opBITH z80a 4\r
+\r
+;@BIT 5,B\r
+opcode_CB_68:\r
+ opBITH z80bc 5\r
+;@BIT 5,C\r
+opcode_CB_69:\r
+ opBITL z80bc 5\r
+;@BIT 5,D\r
+opcode_CB_6A:\r
+ opBITH z80de 5\r
+;@BIT 5,E\r
+opcode_CB_6B:\r
+ opBITL z80de 5\r
+;@BIT 5,H\r
+opcode_CB_6C:\r
+ opBITH z80hl 5\r
+;@BIT 5,L\r
+opcode_CB_6D:\r
+ opBITL z80hl 5\r
+;@BIT 5,(HL)\r
+opcode_CB_6E:\r
+ readmem8HL\r
+ opBITb 5\r
+ fetch 12\r
+;@BIT 5,A\r
+opcode_CB_6F:\r
+ opBITH z80a 5\r
+\r
+;@BIT 6,B\r
+opcode_CB_70:\r
+ opBITH z80bc 6\r
+;@BIT 6,C\r
+opcode_CB_71:\r
+ opBITL z80bc 6\r
+;@BIT 6,D\r
+opcode_CB_72:\r
+ opBITH z80de 6\r
+;@BIT 6,E\r
+opcode_CB_73:\r
+ opBITL z80de 6\r
+;@BIT 6,H\r
+opcode_CB_74:\r
+ opBITH z80hl 6\r
+;@BIT 6,L\r
+opcode_CB_75:\r
+ opBITL z80hl 6\r
+;@BIT 6,(HL)\r
+opcode_CB_76:\r
+ readmem8HL\r
+ opBITb 6\r
+ fetch 12\r
+;@BIT 6,A\r
+opcode_CB_77:\r
+ opBITH z80a 6\r
+\r
+;@BIT 7,B\r
+opcode_CB_78:\r
+ opBIT7H z80bc\r
+;@BIT 7,C\r
+opcode_CB_79:\r
+ opBIT7L z80bc\r
+;@BIT 7,D\r
+opcode_CB_7A:\r
+ opBIT7H z80de\r
+;@BIT 7,E\r
+opcode_CB_7B:\r
+ opBIT7L z80de\r
+;@BIT 7,H\r
+opcode_CB_7C:\r
+ opBIT7H z80hl\r
+;@BIT 7,L\r
+opcode_CB_7D:\r
+ opBIT7L z80hl\r
+;@BIT 7,(HL)\r
+opcode_CB_7E:\r
+ readmem8HL\r
+ opBIT7b\r
+ fetch 12\r
+;@BIT 7,A\r
+opcode_CB_7F:\r
+ opBIT7H z80a\r
+\r
+;@RES 0,B\r
+opcode_CB_80:\r
+ bic z80bc,z80bc,#1<<24\r
+ fetch 8\r
+;@RES 0,C\r
+opcode_CB_81:\r
+ bic z80bc,z80bc,#1<<16\r
+ fetch 8\r
+;@RES 0,D\r
+opcode_CB_82:\r
+ bic z80de,z80de,#1<<24\r
+ fetch 8\r
+;@RES 0,E\r
+opcode_CB_83:\r
+ bic z80de,z80de,#1<<16\r
+ fetch 8\r
+;@RES 0,H\r
+opcode_CB_84:\r
+ bic z80hl,z80hl,#1<<24\r
+ fetch 8\r
+;@RES 0,L\r
+opcode_CB_85:\r
+ bic z80hl,z80hl,#1<<16\r
+ fetch 8\r
+;@RES 0,(HL)\r
+opcode_CB_86:\r
+ opRESmemHL 0\r
+;@RES 0,A\r
+opcode_CB_87:\r
+ bic z80a,z80a,#1<<24\r
+ fetch 8\r
+\r
+;@RES 1,B\r
+opcode_CB_88:\r
+ bic z80bc,z80bc,#1<<25\r
+ fetch 8\r
+;@RES 1,C\r
+opcode_CB_89:\r
+ bic z80bc,z80bc,#1<<17\r
+ fetch 8\r
+;@RES 1,D\r
+opcode_CB_8A:\r
+ bic z80de,z80de,#1<<25\r
+ fetch 8\r
+;@RES 1,E\r
+opcode_CB_8B:\r
+ bic z80de,z80de,#1<<17\r
+ fetch 8\r
+;@RES 1,H\r
+opcode_CB_8C:\r
+ bic z80hl,z80hl,#1<<25\r
+ fetch 8\r
+;@RES 1,L\r
+opcode_CB_8D:\r
+ bic z80hl,z80hl,#1<<17\r
+ fetch 8\r
+;@RES 1,(HL)\r
+opcode_CB_8E:\r
+ opRESmemHL 1\r
+;@RES 1,A\r
+opcode_CB_8F:\r
+ bic z80a,z80a,#1<<25\r
+ fetch 8\r
+\r
+;@RES 2,B\r
+opcode_CB_90:\r
+ bic z80bc,z80bc,#1<<26\r
+ fetch 8\r
+;@RES 2,C\r
+opcode_CB_91:\r
+ bic z80bc,z80bc,#1<<18\r
+ fetch 8\r
+;@RES 2,D\r
+opcode_CB_92:\r
+ bic z80de,z80de,#1<<26\r
+ fetch 8\r
+;@RES 2,E\r
+opcode_CB_93:\r
+ bic z80de,z80de,#1<<18\r
+ fetch 8\r
+;@RES 2,H\r
+opcode_CB_94:\r
+ bic z80hl,z80hl,#1<<26\r
+ fetch 8\r
+;@RES 2,L\r
+opcode_CB_95:\r
+ bic z80hl,z80hl,#1<<18\r
+ fetch 8\r
+;@RES 2,(HL)\r
+opcode_CB_96:\r
+ opRESmemHL 2\r
+;@RES 2,A\r
+opcode_CB_97:\r
+ bic z80a,z80a,#1<<26\r
+ fetch 8\r
+\r
+;@RES 3,B\r
+opcode_CB_98:\r
+ bic z80bc,z80bc,#1<<27\r
+ fetch 8\r
+;@RES 3,C\r
+opcode_CB_99:\r
+ bic z80bc,z80bc,#1<<19\r
+ fetch 8\r
+;@RES 3,D\r
+opcode_CB_9A:\r
+ bic z80de,z80de,#1<<27\r
+ fetch 8\r
+;@RES 3,E\r
+opcode_CB_9B:\r
+ bic z80de,z80de,#1<<19\r
+ fetch 8\r
+;@RES 3,H\r
+opcode_CB_9C:\r
+ bic z80hl,z80hl,#1<<27\r
+ fetch 8\r
+;@RES 3,L\r
+opcode_CB_9D:\r
+ bic z80hl,z80hl,#1<<19\r
+ fetch 8\r
+;@RES 3,(HL)\r
+opcode_CB_9E:\r
+ opRESmemHL 3\r
+;@RES 3,A\r
+opcode_CB_9F:\r
+ bic z80a,z80a,#1<<27\r
+ fetch 8\r
+\r
+;@RES 4,B\r
+opcode_CB_A0:\r
+ bic z80bc,z80bc,#1<<28\r
+ fetch 8\r
+;@RES 4,C\r
+opcode_CB_A1:\r
+ bic z80bc,z80bc,#1<<20\r
+ fetch 8\r
+;@RES 4,D\r
+opcode_CB_A2:\r
+ bic z80de,z80de,#1<<28\r
+ fetch 8\r
+;@RES 4,E\r
+opcode_CB_A3:\r
+ bic z80de,z80de,#1<<20\r
+ fetch 8\r
+;@RES 4,H\r
+opcode_CB_A4:\r
+ bic z80hl,z80hl,#1<<28\r
+ fetch 8\r
+;@RES 4,L\r
+opcode_CB_A5:\r
+ bic z80hl,z80hl,#1<<20\r
+ fetch 8\r
+;@RES 4,(HL)\r
+opcode_CB_A6:\r
+ opRESmemHL 4\r
+;@RES 4,A\r
+opcode_CB_A7:\r
+ bic z80a,z80a,#1<<28\r
+ fetch 8\r
+\r
+;@RES 5,B\r
+opcode_CB_A8:\r
+ bic z80bc,z80bc,#1<<29\r
+ fetch 8\r
+;@RES 5,C\r
+opcode_CB_A9:\r
+ bic z80bc,z80bc,#1<<21\r
+ fetch 8\r
+;@RES 5,D\r
+opcode_CB_AA:\r
+ bic z80de,z80de,#1<<29\r
+ fetch 8\r
+;@RES 5,E\r
+opcode_CB_AB:\r
+ bic z80de,z80de,#1<<21\r
+ fetch 8\r
+;@RES 5,H\r
+opcode_CB_AC:\r
+ bic z80hl,z80hl,#1<<29\r
+ fetch 8\r
+;@RES 5,L\r
+opcode_CB_AD:\r
+ bic z80hl,z80hl,#1<<21\r
+ fetch 8\r
+;@RES 5,(HL)\r
+opcode_CB_AE:\r
+ opRESmemHL 5\r
+;@RES 5,A\r
+opcode_CB_AF:\r
+ bic z80a,z80a,#1<<29\r
+ fetch 8\r
+\r
+;@RES 6,B\r
+opcode_CB_B0:\r
+ bic z80bc,z80bc,#1<<30\r
+ fetch 8\r
+;@RES 6,C\r
+opcode_CB_B1:\r
+ bic z80bc,z80bc,#1<<22\r
+ fetch 8\r
+;@RES 6,D\r
+opcode_CB_B2:\r
+ bic z80de,z80de,#1<<30\r
+ fetch 8\r
+;@RES 6,E\r
+opcode_CB_B3:\r
+ bic z80de,z80de,#1<<22\r
+ fetch 8\r
+;@RES 6,H\r
+opcode_CB_B4:\r
+ bic z80hl,z80hl,#1<<30\r
+ fetch 8\r
+;@RES 6,L\r
+opcode_CB_B5:\r
+ bic z80hl,z80hl,#1<<22\r
+ fetch 8\r
+;@RES 6,(HL)\r
+opcode_CB_B6:\r
+ opRESmemHL 6\r
+;@RES 6,A\r
+opcode_CB_B7:\r
+ bic z80a,z80a,#1<<30\r
+ fetch 8\r
+\r
+;@RES 7,B\r
+opcode_CB_B8:\r
+ bic z80bc,z80bc,#1<<31\r
+ fetch 8\r
+;@RES 7,C\r
+opcode_CB_B9:\r
+ bic z80bc,z80bc,#1<<23\r
+ fetch 8\r
+;@RES 7,D\r
+opcode_CB_BA:\r
+ bic z80de,z80de,#1<<31\r
+ fetch 8\r
+;@RES 7,E\r
+opcode_CB_BB:\r
+ bic z80de,z80de,#1<<23\r
+ fetch 8\r
+;@RES 7,H\r
+opcode_CB_BC:\r
+ bic z80hl,z80hl,#1<<31\r
+ fetch 8\r
+;@RES 7,L\r
+opcode_CB_BD:\r
+ bic z80hl,z80hl,#1<<23\r
+ fetch 8\r
+;@RES 7,(HL)\r
+opcode_CB_BE:\r
+ opRESmemHL 7\r
+;@RES 7,A\r
+opcode_CB_BF:\r
+ bic z80a,z80a,#1<<31\r
+ fetch 8\r
+\r
+;@SET 0,B\r
+opcode_CB_C0:\r
+ orr z80bc,z80bc,#1<<24\r
+ fetch 8\r
+;@SET 0,C\r
+opcode_CB_C1:\r
+ orr z80bc,z80bc,#1<<16\r
+ fetch 8\r
+;@SET 0,D\r
+opcode_CB_C2:\r
+ orr z80de,z80de,#1<<24\r
+ fetch 8\r
+;@SET 0,E\r
+opcode_CB_C3:\r
+ orr z80de,z80de,#1<<16\r
+ fetch 8\r
+;@SET 0,H\r
+opcode_CB_C4:\r
+ orr z80hl,z80hl,#1<<24\r
+ fetch 8\r
+;@SET 0,L\r
+opcode_CB_C5:\r
+ orr z80hl,z80hl,#1<<16\r
+ fetch 8\r
+;@SET 0,(HL)\r
+opcode_CB_C6:\r
+ opSETmemHL 0\r
+;@SET 0,A\r
+opcode_CB_C7:\r
+ orr z80a,z80a,#1<<24\r
+ fetch 8\r
+\r
+;@SET 1,B\r
+opcode_CB_C8:\r
+ orr z80bc,z80bc,#1<<25\r
+ fetch 8\r
+;@SET 1,C\r
+opcode_CB_C9:\r
+ orr z80bc,z80bc,#1<<17\r
+ fetch 8\r
+;@SET 1,D\r
+opcode_CB_CA:\r
+ orr z80de,z80de,#1<<25\r
+ fetch 8\r
+;@SET 1,E\r
+opcode_CB_CB:\r
+ orr z80de,z80de,#1<<17\r
+ fetch 8\r
+;@SET 1,H\r
+opcode_CB_CC:\r
+ orr z80hl,z80hl,#1<<25\r
+ fetch 8\r
+;@SET 1,L\r
+opcode_CB_CD:\r
+ orr z80hl,z80hl,#1<<17\r
+ fetch 8\r
+;@SET 1,(HL)\r
+opcode_CB_CE:\r
+ opSETmemHL 1\r
+;@SET 1,A\r
+opcode_CB_CF:\r
+ orr z80a,z80a,#1<<25\r
+ fetch 8\r
+\r
+;@SET 2,B\r
+opcode_CB_D0:\r
+ orr z80bc,z80bc,#1<<26\r
+ fetch 8\r
+;@SET 2,C\r
+opcode_CB_D1:\r
+ orr z80bc,z80bc,#1<<18\r
+ fetch 8\r
+;@SET 2,D\r
+opcode_CB_D2:\r
+ orr z80de,z80de,#1<<26\r
+ fetch 8\r
+;@SET 2,E\r
+opcode_CB_D3:\r
+ orr z80de,z80de,#1<<18\r
+ fetch 8\r
+;@SET 2,H\r
+opcode_CB_D4:\r
+ orr z80hl,z80hl,#1<<26\r
+ fetch 8\r
+;@SET 2,L\r
+opcode_CB_D5:\r
+ orr z80hl,z80hl,#1<<18\r
+ fetch 8\r
+;@SET 2,(HL)\r
+opcode_CB_D6:\r
+ opSETmemHL 2\r
+;@SET 2,A\r
+opcode_CB_D7:\r
+ orr z80a,z80a,#1<<26\r
+ fetch 8\r
+\r
+;@SET 3,B\r
+opcode_CB_D8:\r
+ orr z80bc,z80bc,#1<<27\r
+ fetch 8\r
+;@SET 3,C\r
+opcode_CB_D9:\r
+ orr z80bc,z80bc,#1<<19\r
+ fetch 8\r
+;@SET 3,D\r
+opcode_CB_DA:\r
+ orr z80de,z80de,#1<<27\r
+ fetch 8\r
+;@SET 3,E\r
+opcode_CB_DB:\r
+ orr z80de,z80de,#1<<19\r
+ fetch 8\r
+;@SET 3,H\r
+opcode_CB_DC:\r
+ orr z80hl,z80hl,#1<<27\r
+ fetch 8\r
+;@SET 3,L\r
+opcode_CB_DD:\r
+ orr z80hl,z80hl,#1<<19\r
+ fetch 8\r
+;@SET 3,(HL)\r
+opcode_CB_DE:\r
+ opSETmemHL 3\r
+;@SET 3,A\r
+opcode_CB_DF:\r
+ orr z80a,z80a,#1<<27\r
+ fetch 8\r
+\r
+;@SET 4,B\r
+opcode_CB_E0:\r
+ orr z80bc,z80bc,#1<<28\r
+ fetch 8\r
+;@SET 4,C\r
+opcode_CB_E1:\r
+ orr z80bc,z80bc,#1<<20\r
+ fetch 8\r
+;@SET 4,D\r
+opcode_CB_E2:\r
+ orr z80de,z80de,#1<<28\r
+ fetch 8\r
+;@SET 4,E\r
+opcode_CB_E3:\r
+ orr z80de,z80de,#1<<20\r
+ fetch 8\r
+;@SET 4,H\r
+opcode_CB_E4:\r
+ orr z80hl,z80hl,#1<<28\r
+ fetch 8\r
+;@SET 4,L\r
+opcode_CB_E5:\r
+ orr z80hl,z80hl,#1<<20\r
+ fetch 8\r
+;@SET 4,(HL)\r
+opcode_CB_E6:\r
+ opSETmemHL 4\r
+;@SET 4,A\r
+opcode_CB_E7:\r
+ orr z80a,z80a,#1<<28\r
+ fetch 8\r
+\r
+;@SET 5,B\r
+opcode_CB_E8:\r
+ orr z80bc,z80bc,#1<<29\r
+ fetch 8\r
+;@SET 5,C\r
+opcode_CB_E9:\r
+ orr z80bc,z80bc,#1<<21\r
+ fetch 8\r
+;@SET 5,D\r
+opcode_CB_EA:\r
+ orr z80de,z80de,#1<<29\r
+ fetch 8\r
+;@SET 5,E\r
+opcode_CB_EB:\r
+ orr z80de,z80de,#1<<21\r
+ fetch 8\r
+;@SET 5,H\r
+opcode_CB_EC:\r
+ orr z80hl,z80hl,#1<<29\r
+ fetch 8\r
+;@SET 5,L\r
+opcode_CB_ED:\r
+ orr z80hl,z80hl,#1<<21\r
+ fetch 8\r
+;@SET 5,(HL)\r
+opcode_CB_EE:\r
+ opSETmemHL 5\r
+;@SET 5,A\r
+opcode_CB_EF:\r
+ orr z80a,z80a,#1<<29\r
+ fetch 8\r
+\r
+;@SET 6,B\r
+opcode_CB_F0:\r
+ orr z80bc,z80bc,#1<<30\r
+ fetch 8\r
+;@SET 6,C\r
+opcode_CB_F1:\r
+ orr z80bc,z80bc,#1<<22\r
+ fetch 8\r
+;@SET 6,D\r
+opcode_CB_F2:\r
+ orr z80de,z80de,#1<<30\r
+ fetch 8\r
+;@SET 6,E\r
+opcode_CB_F3:\r
+ orr z80de,z80de,#1<<22\r
+ fetch 8\r
+;@SET 6,H\r
+opcode_CB_F4:\r
+ orr z80hl,z80hl,#1<<30\r
+ fetch 8\r
+;@SET 6,L\r
+opcode_CB_F5:\r
+ orr z80hl,z80hl,#1<<22\r
+ fetch 8\r
+;@SET 6,(HL)\r
+opcode_CB_F6:\r
+ opSETmemHL 6\r
+;@SET 6,A\r
+opcode_CB_F7:\r
+ orr z80a,z80a,#1<<30\r
+ fetch 8\r
+\r
+;@SET 7,B\r
+opcode_CB_F8:\r
+ orr z80bc,z80bc,#1<<31\r
+ fetch 8\r
+;@SET 7,C\r
+opcode_CB_F9:\r
+ orr z80bc,z80bc,#1<<23\r
+ fetch 8\r
+;@SET 7,D\r
+opcode_CB_FA:\r
+ orr z80de,z80de,#1<<31\r
+ fetch 8\r
+;@SET 7,E\r
+opcode_CB_FB:\r
+ orr z80de,z80de,#1<<23\r
+ fetch 8\r
+;@SET 7,H\r
+opcode_CB_FC:\r
+ orr z80hl,z80hl,#1<<31\r
+ fetch 8\r
+;@SET 7,L\r
+opcode_CB_FD:\r
+ orr z80hl,z80hl,#1<<23\r
+ fetch 8\r
+;@SET 7,(HL)\r
+opcode_CB_FE:\r
+ opSETmemHL 7\r
+;@SET 7,A\r
+opcode_CB_FF:\r
+ orr z80a,z80a,#1<<31\r
+ fetch 8\r
+\r
+\r
+\r
+;@##################################\r
+;@##################################\r
+;@### opcodes DD #########################\r
+;@##################################\r
+;@##################################\r
+;@Because the DD opcodes are not a complete range from 00-FF I have\r
+;@created this sub routine that will catch any undocumented ops\r
+;@halt the emulator and mov the current instruction to r0\r
+;@at a later stage I may change to display a text message on the screen\r
+opcode_DD_NF:\r
+ eatcycles 4\r
+ ldr pc,[opcodes,r0, lsl #2]\r
+;@ mov r2,#0x10*4\r
+;@ cmp r2,z80xx\r
+;@ bne opcode_FD_NF\r
+;@ mov r0,#0xDD00\r
+;@ orr r0,r0,r1\r
+;@ b end_loop\r
+;@opcode_FD_NF:\r
+;@ mov r0,#0xFD00\r
+;@ orr r0,r0,r1\r
+;@ b end_loop\r
+opcode_DD_NF2:\r
+ mov r0,#0xDD0000\r
+ orr r0,r0,#0xCB00\r
+ orr r0,r0,r1\r
+ b end_loop\r
+\r
+;@ADD IX,BC\r
+opcode_DD_09:\r
+ ldr r0,[z80xx]\r
+ opADD16 r0 z80bc\r
+ str r0,[z80xx]\r
+ fetch 15\r
+;@ADD IX,DE\r
+opcode_DD_19:\r
+ ldr r0,[z80xx]\r
+ opADD16 r0 z80de\r
+ str r0,[z80xx]\r
+ fetch 15\r
+;@LD IX,NN\r
+opcode_DD_21:\r
+ ldrb r0,[z80pc],#1\r
+ ldrb r1,[z80pc],#1\r
+ orr r0,r0,r1, lsl #8\r
+ strh r0,[z80xx,#2]\r
+ fetch 14\r
+;@LD (NN),IX\r
+opcode_DD_22:\r
+ ldrb r0,[z80pc],#1\r
+ ldrb r1,[z80pc],#1\r
+ orr r1,r0,r1, lsl #8\r
+ ldrh r0,[z80xx,#2]\r
+ writemem16\r
+ fetch 20\r
+;@INC IX\r
+opcode_DD_23:\r
+ ldr r0,[z80xx]\r
+ add r0,r0,#1<<16\r
+ str r0,[z80xx]\r
+ fetch 10\r
+;@INC I (IX)\r
+opcode_DD_24:\r
+ ldr r0,[z80xx]\r
+ opINC8H r0\r
+ str r0,[z80xx]\r
+ fetch 8\r
+;@DEC I (IX)\r
+opcode_DD_25:\r
+ ldr r0,[z80xx]\r
+ opDEC8H r0\r
+ str r0,[z80xx]\r
+ fetch 8\r
+;@LD I,N (IX)\r
+opcode_DD_26:\r
+ ldrb r0,[z80pc],#1\r
+ strb r0,[z80xx,#3]\r
+ fetch 11\r
+;@ADD IX,IX\r
+opcode_DD_29:\r
+ ldr r0,[z80xx]\r
+ opADD16_2 r0\r
+ str r0,[z80xx]\r
+ fetch 15\r
+;@LD IX,(NN)\r
+opcode_DD_2A:\r
+ ldrb r0,[z80pc],#1\r
+ ldrb r1,[z80pc],#1\r
+ orr r0,r0,r1, lsl #8\r
+ stmfd sp!,{z80xx}\r
+ readmem16\r
+ ldmfd sp!,{z80xx}\r
+ strh r0,[z80xx,#2]\r
+ fetch 20\r
+;@DEC IX\r
+opcode_DD_2B:\r
+ ldr r0,[z80xx]\r
+ sub r0,r0,#1<<16\r
+ str r0,[z80xx]\r
+ fetch 10\r
+;@INC X (IX)\r
+opcode_DD_2C:\r
+ ldr r0,[z80xx]\r
+ opINC8L r0\r
+ str r0,[z80xx]\r
+ fetch 8\r
+;@DEC X (IX)\r
+opcode_DD_2D:\r
+ ldr r0,[z80xx]\r
+ opDEC8L r0\r
+ str r0,[z80xx]\r
+ fetch 8\r
+;@LD X,N (IX)\r
+opcode_DD_2E:\r
+ ldrb r0,[z80pc],#1\r
+ strb r0,[z80xx,#2]\r
+ fetch 11\r
+;@INC (IX+N)\r
+opcode_DD_34:\r
+ ldrsb r0,[z80pc],#1\r
+ ldr r1,[z80xx]\r
+ add r0,r0,r1, lsr #16\r
+ stmfd sp!,{r0} ;@ save addr\r
+ readmem8\r
+ opINC8b\r
+ ldmfd sp!,{r1} ;@ restore addr into r1\r
+ writemem8\r
+ fetch 23\r
+;@DEC (IX+N)\r
+opcode_DD_35:\r
+ ldrsb r0,[z80pc],#1\r
+ ldr r1,[z80xx]\r
+ add r0,r0,r1, lsr #16\r
+ stmfd sp!,{r0} ;@ save addr\r
+ readmem8\r
+ opDEC8b\r
+ ldmfd sp!,{r1} ;@ restore addr into r1\r
+ writemem8\r
+ fetch 23\r
+;@LD (IX+N),N\r
+opcode_DD_36:\r
+ ldrsb r2,[z80pc],#1\r
+ ldrb r0,[z80pc],#1\r
+ ldr r1,[z80xx]\r
+ add r1,r2,r1, lsr #16\r
+ writemem8\r
+ fetch 19\r
+;@ADD IX,SP\r
+opcode_DD_39:\r
+ ldr r0,[z80xx]\r
+.if FAST_Z80SP\r
+ ldr r2,[cpucontext,#z80sp_base]\r
+ sub r2,z80sp,r2\r
+ opADD16s r0 r2 16\r
+.else\r
+ opADD16s r0 z80sp 16\r
+.endif\r
+ str r0,[z80xx]\r
+ fetch 15\r
+;@LD B,I ( IX )\r
+opcode_DD_44:\r
+ ldrb r0,[z80xx,#3]\r
+ and z80bc,z80bc,#0xFF<<16\r
+ orr z80bc,z80bc,r0, lsl #24\r
+ fetch 8\r
+;@LD B,X ( IX )\r
+opcode_DD_45:\r
+ ldrb r0,[z80xx,#2]\r
+ and z80bc,z80bc,#0xFF<<16\r
+ orr z80bc,z80bc,r0, lsl #24\r
+ fetch 8\r
+;@LD B,(IX,N)\r
+opcode_DD_46:\r
+ ldrsb r0,[z80pc],#1\r
+ ldr r1,[z80xx]\r
+ add r0,r0,r1, lsr #16\r
+ readmem8\r
+ and z80bc,z80bc,#0xFF<<16\r
+ orr z80bc,z80bc,r0, lsl #24\r
+ fetch 19\r
+;@LD C,I (IX)\r
+opcode_DD_4C:\r
+ ldrb r0,[z80xx,#3]\r
+ and z80bc,z80bc,#0xFF<<24\r
+ orr z80bc,z80bc,r0, lsl #16\r
+ fetch 8\r
+;@LD C,X (IX)\r
+opcode_DD_4D:\r
+ ldrb r0,[z80xx,#2]\r
+ and z80bc,z80bc,#0xFF<<24\r
+ orr z80bc,z80bc,r0, lsl #16\r
+ fetch 8\r
+;@LD C,(IX,N)\r
+opcode_DD_4E:\r
+ ldrsb r0,[z80pc],#1\r
+ ldr r1,[z80xx]\r
+ add r0,r0,r1, lsr #16\r
+ readmem8\r
+ and z80bc,z80bc,#0xFF<<24\r
+ orr z80bc,z80bc,r0, lsl #16\r
+ fetch 19\r
+\r
+;@LD D,I (IX)\r
+opcode_DD_54:\r
+ ldrb r0,[z80xx,#3]\r
+ and z80de,z80de,#0xFF<<16\r
+ orr z80de,z80de,r0, lsl #24\r
+ fetch 8\r
+;@LD D,X (IX)\r
+opcode_DD_55:\r
+ ldrb r0,[z80xx,#2]\r
+ and z80de,z80de,#0xFF<<16\r
+ orr z80de,z80de,r0, lsl #24\r
+ fetch 8\r
+;@LD D,(IX,N)\r
+opcode_DD_56:\r
+ ldrsb r0,[z80pc],#1\r
+ ldr r1,[z80xx]\r
+ add r0,r0,r1, lsr #16\r
+ readmem8\r
+ and z80de,z80de,#0xFF<<16\r
+ orr z80de,z80de,r0, lsl #24\r
+ fetch 19\r
+;@LD E,I (IX)\r
+opcode_DD_5C:\r
+ ldrb r0,[z80xx,#3]\r
+ and z80de,z80de,#0xFF<<24\r
+ orr z80de,z80de,r0, lsl #16\r
+ fetch 8\r
+;@LD E,X (IX)\r
+opcode_DD_5D:\r
+ ldrb r0,[z80xx,#2]\r
+ and z80de,z80de,#0xFF<<24\r
+ orr z80de,z80de,r0, lsl #16\r
+ fetch 8\r
+;@LD E,(IX,N)\r
+opcode_DD_5E:\r
+ ldrsb r0,[z80pc],#1\r
+ ldr r1,[z80xx]\r
+ add r0,r0,r1, lsr #16\r
+ readmem8\r
+ and z80de,z80de,#0xFF<<24\r
+ orr z80de,z80de,r0, lsl #16\r
+ fetch 19\r
+;@LD I,B (IX)\r
+opcode_DD_60:\r
+ mov r0,z80bc,lsr#24\r
+ strb r0,[z80xx,#3]\r
+ fetch 8\r
+;@LD I,C (IX)\r
+opcode_DD_61:\r
+ mov r0,z80bc,lsr#16\r
+ strb r0,[z80xx,#3]\r
+ fetch 8\r
+;@LD I,D (IX)\r
+opcode_DD_62:\r
+ mov r0,z80de,lsr#24\r
+ strb r0,[z80xx,#3]\r
+ fetch 8\r
+;@LD I,E (IX)\r
+opcode_DD_63:\r
+ mov r0,z80de,lsr#16\r
+ strb r0,[z80xx,#3]\r
+ fetch 8\r
+;@LD I,I (IX)\r
+opcode_DD_64:\r
+ fetch 8\r
+;@LD I,X (IX)\r
+opcode_DD_65:\r
+ ldrb r0,[z80xx,#2]\r
+ strb r0,[z80xx,#3]\r
+ fetch 8\r
+;@LD H,(IX,N)\r
+opcode_DD_66:\r
+ ldrsb r0,[z80pc],#1\r
+ ldr r1,[z80xx]\r
+ add r0,r0,r1, lsr #16\r
+ readmem8\r
+ and z80hl,z80hl,#0xFF<<16\r
+ orr z80hl,z80hl,r0, lsl #24\r
+ fetch 19\r
+;@LD I,A (IX)\r
+opcode_DD_67:\r
+ mov r0,z80a,lsr#24\r
+ strb r0,[z80xx,#3]\r
+ fetch 8\r
+;@LD X,B (IX)\r
+opcode_DD_68:\r
+ mov r0,z80bc,lsr#24\r
+ strb r0,[z80xx,#2]\r
+ fetch 8\r
+;@LD X,C (IX)\r
+opcode_DD_69:\r
+ mov r0,z80bc,lsr#16\r
+ strb r0,[z80xx,#2]\r
+ fetch 8\r
+;@LD X,D (IX)\r
+opcode_DD_6A:\r
+ mov r0,z80de,lsr#24\r
+ strb r0,[z80xx,#2]\r
+ fetch 8\r
+;@LD X,E (IX)\r
+opcode_DD_6B:\r
+ mov r0,z80de,lsr#16\r
+ strb r0,[z80xx,#2]\r
+ fetch 8\r
+;@LD X,I (IX)\r
+opcode_DD_6C:\r
+ ldrb r0,[z80xx,#3]\r
+ strb r0,[z80xx,#2]\r
+ fetch 8\r
+;@LD X,X (IX)\r
+opcode_DD_6D:\r
+ fetch 8\r
+;@LD L,(IX,N)\r
+opcode_DD_6E:\r
+ ldrsb r0,[z80pc],#1\r
+ ldr r1,[z80xx]\r
+ add r0,r0,r1, lsr #16\r
+ readmem8\r
+ and z80hl,z80hl,#0xFF<<24\r
+ orr z80hl,z80hl,r0, lsl #16\r
+ fetch 19\r
+;@LD X,A (IX)\r
+opcode_DD_6F:\r
+ mov r0,z80a,lsr#24\r
+ strb r0,[z80xx,#2]\r
+ fetch 8\r
+\r
+;@LD (IX,N),B\r
+opcode_DD_70:\r
+ ldrsb r0,[z80pc],#1\r
+ ldr r1,[z80xx]\r
+ add r1,r0,r1, lsr #16\r
+ mov r0,z80bc, lsr #24\r
+ writemem8\r
+ fetch 19\r
+;@LD (IX,N),C\r
+opcode_DD_71:\r
+ ldrsb r0,[z80pc],#1\r
+ ldr r1,[z80xx]\r
+ add r1,r0,r1, lsr #16\r
+ mov r0,z80bc, lsr #16\r
+ and r0,r0,#0xFF\r
+ writemem8\r
+ fetch 19\r
+;@LD (IX,N),D\r
+opcode_DD_72:\r
+ ldrsb r0,[z80pc],#1\r
+ ldr r1,[z80xx]\r
+ add r1,r0,r1, lsr #16\r
+ mov r0,z80de, lsr #24\r
+ writemem8\r
+ fetch 19\r
+;@LD (IX,N),E\r
+opcode_DD_73:\r
+ ldrsb r0,[z80pc],#1\r
+ ldr r1,[z80xx]\r
+ add r1,r0,r1, lsr #16\r
+ mov r0,z80de, lsr #16\r
+ and r0,r0,#0xFF\r
+ writemem8\r
+ fetch 19\r
+;@LD (IX,N),H\r
+opcode_DD_74:\r
+ ldrsb r0,[z80pc],#1\r
+ ldr r1,[z80xx]\r
+ add r1,r0,r1, lsr #16\r
+ mov r0,z80hl, lsr #24\r
+ writemem8\r
+ fetch 19\r
+;@LD (IX,N),L\r
+opcode_DD_75:\r
+ ldrsb r0,[z80pc],#1\r
+ ldr r1,[z80xx]\r
+ add r1,r0,r1, lsr #16\r
+ mov r0,z80hl, lsr #16\r
+ and r0,r0,#0xFF\r
+ writemem8\r
+ fetch 19\r
+;@LD (IX,N),A\r
+opcode_DD_77:\r
+ ldrsb r0,[z80pc],#1\r
+ ldr r1,[z80xx]\r
+ add r1,r0,r1, lsr #16\r
+ mov r0,z80a, lsr #24\r
+ writemem8\r
+ fetch 19\r
+\r
+;@LD A,I from (IX)\r
+opcode_DD_7C:\r
+ ldrb r0,[z80xx,#3]\r
+ mov z80a,r0, lsl #24\r
+ fetch 8\r
+;@LD A,X from (IX)\r
+opcode_DD_7D:\r
+ ldrb r0,[z80xx,#2]\r
+ mov z80a,r0, lsl #24\r
+ fetch 8\r
+;@LD A,(IX,N)\r
+opcode_DD_7E:\r
+ ldrsb r0,[z80pc],#1\r
+ ldr r1,[z80xx]\r
+ add r0,r0,r1, lsr #16\r
+ readmem8\r
+ mov z80a,r0, lsl #24\r
+ fetch 19\r
+\r
+;@ADD A,I ( IX)\r
+opcode_DD_84:\r
+ ldrb r0,[z80xx,#3]\r
+ opADDb\r
+ fetch 8\r
+;@ADD A,X ( IX)\r
+opcode_DD_85:\r
+ ldrb r0,[z80xx,#2]\r
+ opADDb\r
+ fetch 8\r
+;@ADD A,(IX+N)\r
+opcode_DD_86:\r
+ ldrsb r0,[z80pc],#1\r
+ ldr r1,[z80xx]\r
+ add r0,r0,r1, lsr #16\r
+ readmem8\r
+ opADDb\r
+ fetch 19\r
+\r
+;@ADC A,I (IX)\r
+opcode_DD_8C:\r
+ ldrb r0,[z80xx,#3]\r
+ opADCb\r
+ fetch 8\r
+;@ADC A,X (IX)\r
+opcode_DD_8D:\r
+ ldrb r0,[z80xx,#2]\r
+ opADCb\r
+ fetch 8\r
+;@ADC A,(IX+N)\r
+opcode_DD_8E:\r
+ ldrsb r0,[z80pc],#1\r
+ ldr r1,[z80xx]\r
+ add r0,r0,r1, lsr #16\r
+ readmem8\r
+ opADCb\r
+ fetch 19\r
+\r
+;@SUB A,I (IX)\r
+opcode_DD_94:\r
+ ldrb r0,[z80xx,#3]\r
+ opSUBb\r
+ fetch 8\r
+;@SUB A,X (IX)\r
+opcode_DD_95:\r
+ ldrb r0,[z80xx,#2]\r
+ opSUBb\r
+ fetch 8\r
+;@SUB A,(IX+N)\r
+opcode_DD_96:\r
+ ldrsb r0,[z80pc],#1\r
+ ldr r1,[z80xx]\r
+ add r0,r0,r1, lsr #16\r
+ readmem8\r
+ opSUBb\r
+ fetch 19\r
+\r
+;@SBC A,I (IX)\r
+opcode_DD_9C:\r
+ ldrb r0,[z80xx,#3]\r
+ opSBCb\r
+ fetch 8\r
+;@SBC A,X (IX)\r
+opcode_DD_9D:\r
+ ldrb r0,[z80xx,#2]\r
+ opSBCb\r
+ fetch 8\r
+;@SBC A,(IX+N)\r
+opcode_DD_9E:\r
+ ldrsb r0,[z80pc],#1\r
+ ldr r1,[z80xx]\r
+ add r0,r0,r1, lsr #16\r
+ readmem8\r
+ opSBCb\r
+ fetch 19\r
+\r
+;@AND I (IX)\r
+opcode_DD_A4:\r
+ ldrb r0,[z80xx,#3]\r
+ opANDb\r
+ fetch 8\r
+;@AND X (IX)\r
+opcode_DD_A5:\r
+ ldrb r0,[z80xx,#2]\r
+ opANDb\r
+ fetch 8\r
+;@AND (IX+N)\r
+opcode_DD_A6:\r
+ ldrsb r0,[z80pc],#1\r
+ ldr r1,[z80xx]\r
+ add r0,r0,r1, lsr #16\r
+ readmem8\r
+ opANDb\r
+ fetch 19\r
+\r
+;@XOR I (IX)\r
+opcode_DD_AC:\r
+ ldrb r0,[z80xx,#3]\r
+ opXORb\r
+ fetch 8\r
+;@XOR X (IX)\r
+opcode_DD_AD:\r
+ ldrb r0,[z80xx,#2]\r
+ opXORb\r
+ fetch 8\r
+;@XOR (IX+N)\r
+opcode_DD_AE:\r
+ ldrsb r0,[z80pc],#1\r
+ ldr r1,[z80xx]\r
+ add r0,r0,r1, lsr #16\r
+ readmem8\r
+ opXORb\r
+ fetch 19\r
+\r
+;@OR I (IX)\r
+opcode_DD_B4:\r
+ ldrb r0,[z80xx,#3]\r
+ opORb\r
+ fetch 8\r
+;@OR X (IX)\r
+opcode_DD_B5:\r
+ ldrb r0,[z80xx,#2]\r
+ opORb\r
+ fetch 8\r
+;@OR (IX+N)\r
+opcode_DD_B6:\r
+ ldrsb r0,[z80pc],#1\r
+ ldr r1,[z80xx]\r
+ add r0,r0,r1, lsr #16\r
+ readmem8\r
+ opORb\r
+ fetch 19\r
+\r
+;@CP I (IX)\r
+opcode_DD_BC:\r
+ ldrb r0,[z80xx,#3]\r
+ opCPb\r
+ fetch 8\r
+;@CP X (IX)\r
+opcode_DD_BD:\r
+ ldrb r0,[z80xx,#2]\r
+ opCPb\r
+ fetch 8\r
+;@CP (IX+N)\r
+opcode_DD_BE:\r
+ ldrsb r0,[z80pc],#1\r
+ ldr r1,[z80xx]\r
+ add r0,r0,r1, lsr #16\r
+ readmem8\r
+ opCPb\r
+ fetch 19\r
+\r
+\r
+opcodes_DD_CB_LOCAL: .word opcodes_DD_CB\r
+opcode_DD_CB:\r
+;@Looks up the opcode on the opcodes_DD_CB table and then \r
+;@moves the PC to the location of the subroutine\r
+ ldrsb r0,[z80pc],#1\r
+ ldr r1,[z80xx]\r
+ add r0,r0,r1, lsr #16\r
+\r
+ ldrb r1,[z80pc],#1\r
+ ldr pc,[pc,r1, lsl #2]\r
+ .word 0x00\r
+opcodes_DD_CB:\r
+ .word opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_CB_06,opcode_DD_NF2\r
+ .word opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_CB_0E,opcode_DD_NF2\r
+ .word opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_CB_16,opcode_DD_NF2\r
+ .word opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_CB_1E,opcode_DD_NF2\r
+ .word opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_CB_26,opcode_DD_NF2\r
+ .word opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_CB_2E,opcode_DD_NF2\r
+ .word opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_CB_36,opcode_DD_NF2\r
+ .word opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_CB_3E,opcode_DD_NF2\r
+ .word opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_CB_46,opcode_DD_NF2\r
+ .word opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_CB_4E,opcode_DD_NF2\r
+ .word opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_CB_56,opcode_DD_NF2\r
+ .word opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_CB_5E,opcode_DD_NF2\r
+ .word opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_CB_66,opcode_DD_NF2\r
+ .word opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_CB_6E,opcode_DD_NF2\r
+ .word opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_CB_76,opcode_DD_NF2\r
+ .word opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_CB_7E,opcode_DD_NF2\r
+ .word opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_CB_86,opcode_DD_NF2\r
+ .word opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_CB_8E,opcode_DD_NF2\r
+ .word opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_CB_96,opcode_DD_NF2\r
+ .word opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_CB_9E,opcode_DD_NF2\r
+ .word opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_CB_A6,opcode_DD_NF2\r
+ .word opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_CB_AE,opcode_DD_NF2\r
+ .word opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_CB_B6,opcode_DD_NF2\r
+ .word opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_CB_BE,opcode_DD_NF2\r
+ .word opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_CB_C6,opcode_DD_NF2\r
+ .word opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_CB_CE,opcode_DD_NF2\r
+ .word opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_CB_D6,opcode_DD_NF2\r
+ .word opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_CB_DE,opcode_DD_NF2\r
+ .word opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_CB_E6,opcode_DD_NF2\r
+ .word opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_CB_EE,opcode_DD_NF2\r
+ .word opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_CB_F6,opcode_DD_NF2\r
+ .word opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_NF2,opcode_DD_CB_FE,opcode_DD_NF2\r
+\r
+;@RLC (IX+N) \r
+opcode_DD_CB_06:\r
+ stmfd sp!,{r0} ;@ save addr\r
+ readmem8\r
+ opRLCb\r
+ ldmfd sp!,{r1} ;@ restore addr into r1\r
+ writemem8\r
+ fetch 23\r
+;@RRC (IX+N) \r
+opcode_DD_CB_0E:\r
+ stmfd sp!,{r0} ;@ save addr\r
+ readmem8\r
+ opRRCb\r
+ ldmfd sp!,{r1} ;@ restore addr into r1\r
+ writemem8\r
+ fetch 23\r
+;@RL (IX+N) \r
+opcode_DD_CB_16:\r
+ stmfd sp!,{r0} ;@ save addr\r
+ readmem8\r
+ opRLb\r
+ ldmfd sp!,{r1} ;@ restore addr into r1\r
+ writemem8\r
+ fetch 23\r
+;@RR (IX+N) \r
+opcode_DD_CB_1E:\r
+ stmfd sp!,{r0} ;@ save addr \r
+ readmem8\r
+ opRRb\r
+ ldmfd sp!,{r1} ;@ restore addr into r1\r
+ writemem8\r
+ fetch 23\r
+\r
+;@SLA (IX+N) \r
+opcode_DD_CB_26:\r
+ stmfd sp!,{r0} ;@ save addr \r
+ readmem8\r
+ opSLAb\r
+ ldmfd sp!,{r1} ;@ restore addr into r1\r
+ writemem8\r
+ fetch 23\r
+;@SRA (IX+N) \r
+opcode_DD_CB_2E:\r
+ stmfd sp!,{r0} ;@ save addr \r
+ readmem8\r
+ opSRAb\r
+ ldmfd sp!,{r1} ;@ restore addr into r1\r
+ writemem8\r
+ fetch 23\r
+;@SLL (IX+N) \r
+opcode_DD_CB_36:\r
+ stmfd sp!,{r0} ;@ save addr \r
+ readmem8\r
+ opSLLb\r
+ ldmfd sp!,{r1} ;@ restore addr into r1\r
+ writemem8\r
+ fetch 23\r
+;@SRL (IX+N)\r
+opcode_DD_CB_3E:\r
+ stmfd sp!,{r0} ;@ save addr \r
+ readmem8\r
+ opSRLb\r
+ ldmfd sp!,{r1} ;@ restore addr into r1\r
+ writemem8\r
+ fetch 23\r
+\r
+;@BIT 0,(IX+N) \r
+opcode_DD_CB_46:\r
+ readmem8\r
+ opBITb 0\r
+ fetch 20\r
+;@BIT 1,(IX+N) \r
+opcode_DD_CB_4E:\r
+ readmem8\r
+ opBITb 1\r
+ fetch 20\r
+;@BIT 2,(IX+N) \r
+opcode_DD_CB_56:\r
+ readmem8\r
+ opBITb 2\r
+ fetch 20\r
+;@BIT 3,(IX+N) \r
+opcode_DD_CB_5E:\r
+ readmem8\r
+ opBITb 3\r
+ fetch 20\r
+;@BIT 4,(IX+N) \r
+opcode_DD_CB_66:\r
+ readmem8\r
+ opBITb 4\r
+ fetch 20\r
+;@BIT 5,(IX+N) \r
+opcode_DD_CB_6E:\r
+ readmem8\r
+ opBITb 5\r
+ fetch 20\r
+;@BIT 6,(IX+N) \r
+opcode_DD_CB_76:\r
+ readmem8\r
+ opBITb 6\r
+ fetch 20\r
+;@BIT 7,(IX+N) \r
+opcode_DD_CB_7E:\r
+ readmem8\r
+ opBIT7b\r
+ fetch 20\r
+;@RES 0,(IX+N) \r
+opcode_DD_CB_86:\r
+ opRESmem 0\r
+;@RES 1,(IX+N) \r
+opcode_DD_CB_8E:\r
+ opRESmem 1\r
+;@RES 2,(IX+N) \r
+opcode_DD_CB_96:\r
+ opRESmem 2\r
+;@RES 3,(IX+N) \r
+opcode_DD_CB_9E:\r
+ opRESmem 3\r
+;@RES 4,(IX+N) \r
+opcode_DD_CB_A6:\r
+ opRESmem 4\r
+;@RES 5,(IX+N) \r
+opcode_DD_CB_AE:\r
+ opRESmem 5\r
+;@RES 6,(IX+N) \r
+opcode_DD_CB_B6:\r
+ opRESmem 6\r
+;@RES 7,(IX+N) \r
+opcode_DD_CB_BE:\r
+ opRESmem 7\r
+\r
+;@SET 0,(IX+N) \r
+opcode_DD_CB_C6:\r
+ opSETmem 0\r
+;@SET 1,(IX+N) \r
+opcode_DD_CB_CE:\r
+ opSETmem 1\r
+;@SET 2,(IX+N) \r
+opcode_DD_CB_D6:\r
+ opSETmem 2\r
+;@SET 3,(IX+N) \r
+opcode_DD_CB_DE:\r
+ opSETmem 3\r
+;@SET 4,(IX+N) \r
+opcode_DD_CB_E6:\r
+ opSETmem 4\r
+;@SET 5,(IX+N) \r
+opcode_DD_CB_EE:\r
+ opSETmem 5\r
+;@SET 6,(IX+N) \r
+opcode_DD_CB_F6:\r
+ opSETmem 6\r
+;@SET 7,(IX+N) \r
+opcode_DD_CB_FE:\r
+ opSETmem 7\r
+\r
+\r
+\r
+;@POP IX\r
+opcode_DD_E1:\r
+.if FAST_Z80SP\r
+ opPOP\r
+.else\r
+ mov r0,z80sp\r
+ stmfd sp!,{z80xx}\r
+ readmem16\r
+ ldmfd sp!,{z80xx}\r
+ add z80sp,z80sp,#2\r
+.endif\r
+ strh r0,[z80xx,#2]\r
+ fetch 14\r
+;@EX (SP),IX\r
+opcode_DD_E3:\r
+.if FAST_Z80SP\r
+ ldrb r0,[z80sp]\r
+ ldrb r1,[z80sp,#1]\r
+ orr r2,r0,r1, lsl #8\r
+ ldrh r1,[z80xx,#2]\r
+ mov r0,r1, lsr #8\r
+ strb r0,[z80sp,#1]\r
+ strb r1,[z80sp]\r
+ strh r2,[z80xx,#2]\r
+.else\r
+ mov r0,z80sp\r
+ stmfd sp!,{z80xx}\r
+ readmem16\r
+ ldmfd sp!,{z80xx}\r
+ mov r2,r0\r
+ ldrh r0,[z80xx,#2]\r
+ strh r2,[z80xx,#2]\r
+ mov r1,z80sp\r
+ writemem16\r
+.endif\r
+ fetch 23\r
+;@PUSH IX\r
+opcode_DD_E5:\r
+ ldr r2,[z80xx]\r
+ opPUSHreg r2\r
+ fetch 15\r
+;@JP (IX)\r
+opcode_DD_E9:\r
+ ldrh r0,[z80xx,#2]\r
+ rebasepc\r
+ fetch 8\r
+;@LD SP,IX\r
+opcode_DD_F9:\r
+.if FAST_Z80SP\r
+ ldrh r0,[z80xx,#2]\r
+ rebasesp\r
+ mov z80sp,r0\r
+.else\r
+ ldrh z80sp,[z80xx,#2]\r
+.endif\r
+ fetch 10\r
+\r
+;@##################################\r
+;@##################################\r
+;@### opcodes ED #########################\r
+;@##################################\r
+;@##################################\r
+\r
+opcode_ED_NF:\r
+ fetch 8\r
+;@ ldrb r0,[z80pc],#1\r
+;@ ldr pc,[opcodes,r0, lsl #2]\r
+;@ mov r0,#0xED00\r
+;@ orr r0,r0,r1\r
+;@ b end_loop\r
+\r
+;@IN B,(C)\r
+opcode_ED_40:\r
+ opIN_C\r
+ and z80bc,z80bc,#0xFF<<16\r
+ orr z80bc,z80bc,r0, lsl #24\r
+ sub r1,opcodes,#0x100\r
+ ldrb r0,[r1,r0]\r
+ and z80f,z80f,#1<<CFlag\r
+ orr z80f,z80f,r0\r
+ fetch 12\r
+;@OUT (C),B\r
+opcode_ED_41:\r
+ mov r1,z80bc, lsr #24\r
+ opOUT_C\r
+ fetch 12\r
+\r
+;@SBC HL,BC\r
+opcode_ED_42:\r
+ opSBC16 z80bc\r
+\r
+;@LD (NN),BC\r
+opcode_ED_43:\r
+ ldrb r0,[z80pc],#1\r
+ ldrb r1,[z80pc],#1\r
+ orr r1,r0,r1, lsl #8\r
+ mov r0,z80bc, lsr #16\r
+ writemem16\r
+ fetch 20\r
+;@NEG\r
+opcode_ED_44:\r
+ rsbs z80a,z80a,#0\r
+ mrs z80f,cpsr\r
+ mov z80f,z80f,lsr#28 ;@S,Z,V&C\r
+ eor z80f,z80f,#(1<<CFlag)|(1<<NFlag) ;@invert C and set n.\r
+ tst z80a,#0x0F000000 ;@H, correct\r
+ orrne z80f,z80f,#1<<HFlag\r
+ fetch 8\r
+ \r
+;@RETN, moved to ED_4D\r
+;@opcode_ED_45:\r
+\r
+;@IM 0\r
+opcode_ED_46:\r
+ strb z80a,[cpucontext,#z80im]\r
+ fetch 8\r
+;@LD I,A\r
+opcode_ED_47:\r
+ str z80a,[cpucontext,#z80i]\r
+ fetch 9\r
+;@IN C,(C)\r
+opcode_ED_48:\r
+ opIN_C\r
+ and z80bc,z80bc,#0xFF<<24\r
+ orr z80bc,z80bc,r0, lsl #16\r
+ sub r1,opcodes,#0x100\r
+ ldrb r0,[r1,r0]\r
+ and z80f,z80f,#1<<CFlag\r
+ orr z80f,z80f,r0\r
+ fetch 12\r
+;@OUT (C),C\r
+opcode_ED_49:\r
+ mov r0,z80bc, lsr #16\r
+ and r1,r0,#0xFF\r
+ opOUT\r
+ fetch 12\r
+;@ADC HL,BC\r
+opcode_ED_4A:\r
+ opADC16 z80bc\r
+;@LD BC,(NN)\r
+opcode_ED_4B:\r
+ ldrb r0,[z80pc],#1\r
+ ldrb r1,[z80pc],#1\r
+ orr r0,r0,r1, lsl #8\r
+ readmem16\r
+ mov z80bc,r0, lsl #16\r
+ fetch 20\r
+\r
+;@RETN\r
+opcode_ED_45:\r
+;@RETI\r
+opcode_ED_4D:\r
+ ldrb r0,[cpucontext,#z80if]\r
+ tst r0,#Z80_IF2\r
+ orrne r0,r0,#Z80_IF1\r
+ biceq r0,r0,#Z80_IF1\r
+ strb r0,[cpucontext,#z80if]\r
+ opPOP\r
+ rebasepc\r
+ fetch 14\r
+\r
+;@LD R,A\r
+opcode_ED_4F:\r
+ mov r0,z80a,lsr#24\r
+ strb r0,[cpucontext,#z80r]\r
+ fetch 9\r
+\r
+;@IN D,(C)\r
+opcode_ED_50:\r
+ opIN_C\r
+ and z80de,z80de,#0xFF<<16\r
+ orr z80de,z80de,r0, lsl #24\r
+ sub r1,opcodes,#0x100\r
+ ldrb r0,[r1,r0]\r
+ and z80f,z80f,#1<<CFlag\r
+ orr z80f,z80f,r0\r
+ fetch 12\r
+;@OUT (C),D\r
+opcode_ED_51:\r
+ mov r1,z80de, lsr #24\r
+ opOUT_C\r
+ fetch 12\r
+;@SBC HL,DE\r
+opcode_ED_52:\r
+ opSBC16 z80de\r
+;@LD (NN),DE\r
+opcode_ED_53:\r
+ ldrb r0,[z80pc],#1\r
+ ldrb r1,[z80pc],#1\r
+ orr r1,r0,r1, lsl #8\r
+ mov r0,z80de, lsr #16\r
+ writemem16\r
+ fetch 20\r
+;@IM 1\r
+opcode_ED_56:\r
+ mov r0,#1\r
+ strb r0,[cpucontext,#z80im]\r
+ fetch 8\r
+;@LD A,I\r
+opcode_ED_57:\r
+ ldr z80a,[cpucontext,#z80i]\r
+ tst z80a,#0xFF000000\r
+ and z80f,z80f,#(1<<CFlag)\r
+ orreq z80f,z80f,#(1<<ZFlag)\r
+ orrmi z80f,z80f,#(1<<SFlag)\r
+ ldrb r0,[cpucontext,#z80if]\r
+ tst r0,#Z80_IF2\r
+ orrne z80f,z80f,#(1<<VFlag)\r
+ fetch 9\r
+;@IN E,(C)\r
+opcode_ED_58:\r
+ opIN_C\r
+ and z80de,z80de,#0xFF<<24\r
+ orr z80de,z80de,r0, lsl #16\r
+ sub r1,opcodes,#0x100\r
+ ldrb r0,[r1,r0]\r
+ and z80f,z80f,#1<<CFlag\r
+ orr z80f,z80f,r0\r
+ fetch 12\r
+;@OUT (C),E\r
+opcode_ED_59:\r
+ mov r1,z80de, lsr #16\r
+ and r1,r1,#0xFF\r
+ opOUT_C\r
+ fetch 12\r
+;@ADC HL,DE\r
+opcode_ED_5A:\r
+ opADC16 z80de\r
+;@LD DE,(NN)\r
+opcode_ED_5B:\r
+ ldrb r0,[z80pc],#1\r
+ ldrb r1,[z80pc],#1\r
+ orr r0,r0,r1, lsl #8\r
+ readmem16\r
+ mov z80de,r0, lsl #16\r
+ fetch 20\r
+;@IM 2\r
+opcode_ED_5E:\r
+ mov r0,#2\r
+ strb r0,[cpucontext,#z80im]\r
+ fetch 8\r
+;@LD A,R\r
+opcode_ED_5F:\r
+ ldrb r0,[cpucontext,#z80r]\r
+ and r0,r0,#0x80\r
+ rsb r1,z80_icount,#0\r
+ and r1,r1,#0x7F\r
+ orr r0,r0,r1\r
+ movs z80a,r0, lsl #24\r
+ and z80f,z80f,#1<<CFlag\r
+ orrmi z80f,z80f,#(1<<SFlag)\r
+ orreq z80f,z80f,#(1<<ZFlag)\r
+ ldrb r0,[cpucontext,#z80if]\r
+ tst r0,#Z80_IF2\r
+ orrne z80f,z80f,#(1<<VFlag)\r
+ fetch 9\r
+;@IN H,(C)\r
+opcode_ED_60:\r
+ opIN_C\r
+ and z80hl,z80hl,#0xFF<<16\r
+ orr z80hl,z80hl,r0, lsl #24\r
+ sub r1,opcodes,#0x100\r
+ ldrb r0,[r1,r0]\r
+ and z80f,z80f,#1<<CFlag\r
+ orr z80f,z80f,r0\r
+ fetch 12\r
+;@OUT (C),H\r
+opcode_ED_61:\r
+ mov r1,z80hl, lsr #24\r
+ opOUT_C\r
+ fetch 12\r
+;@SBC HL,HL\r
+opcode_ED_62:\r
+ opSBC16HL\r
+;@RRD\r
+opcode_ED_67:\r
+ readmem8HL\r
+ mov r1,r0,ror#4\r
+ orr r0,r1,z80a,lsr#20\r
+ bic z80a,z80a,#0x0F000000\r
+ orr z80a,z80a,r1,lsr#4\r
+ writemem8HL\r
+ sub r1,opcodes,#0x100\r
+ ldrb r0,[r1,z80a, lsr #24]\r
+ and z80f,z80f,#1<<CFlag\r
+ orr z80f,z80f,r0\r
+ fetch 18\r
+;@IN L,(C)\r
+opcode_ED_68:\r
+ opIN_C\r
+ and z80hl,z80hl,#0xFF<<24\r
+ orr z80hl,z80hl,r0, lsl #16\r
+ and z80f,z80f,#1<<CFlag\r
+ sub r1,opcodes,#0x100\r
+ ldrb r0,[r1,r0]\r
+ orr z80f,z80f,r0\r
+ fetch 12\r
+;@OUT (C),L\r
+opcode_ED_69:\r
+ mov r1,z80hl, lsr #16\r
+ and r1,r1,#0xFF\r
+ opOUT_C\r
+ fetch 12\r
+;@ADC HL,HL\r
+opcode_ED_6A:\r
+ opADC16HL\r
+;@RLD\r
+opcode_ED_6F:\r
+ readmem8HL\r
+ orr r0,r0,z80a,lsl#4\r
+ mov r0,r0,ror#28\r
+ and z80a,z80a,#0xF0000000\r
+ orr z80a,z80a,r0,lsl#16\r
+ and z80a,z80a,#0xFF000000\r
+ writemem8HL\r
+ sub r1,opcodes,#0x100\r
+ ldrb r0,[r1,z80a, lsr #24]\r
+ and z80f,z80f,#1<<CFlag\r
+ orr z80f,z80f,r0\r
+ fetch 18\r
+;@IN F,(C)\r
+opcode_ED_70:\r
+ opIN_C\r
+ and z80f,z80f,#1<<CFlag\r
+ sub r1,opcodes,#0x100\r
+ ldrb r0,[r1,r0]\r
+ orr z80f,z80f,r0\r
+ fetch 12\r
+;@OUT (C),0\r
+opcode_ED_71:\r
+ mov r1,#0\r
+ opOUT_C\r
+ fetch 12\r
+\r
+;@SBC HL,SP\r
+opcode_ED_72:\r
+.if FAST_Z80SP\r
+ ldr r0,[cpucontext,#z80sp_base]\r
+ sub r0,z80sp,r0\r
+ mov r0, r0, lsl #16\r
+.else\r
+ mov r0,z80sp,lsl#16\r
+.endif\r
+ opSBC16 r0\r
+;@LD (NN),SP\r
+opcode_ED_73:\r
+ ldrb r0,[z80pc],#1\r
+ ldrb r1,[z80pc],#1\r
+ orr r1,r0,r1, lsl #8\r
+.if FAST_Z80SP\r
+ ldr r0,[cpucontext,#z80sp_base]\r
+ sub r0,z80sp,r0\r
+.else\r
+ mov r0,z80sp\r
+.endif\r
+ writemem16\r
+ fetch 16\r
+;@IN A,(C)\r
+opcode_ED_78:\r
+ opIN_C\r
+ mov z80a,r0, lsl #24\r
+ and z80f,z80f,#1<<CFlag\r
+ sub r1,opcodes,#0x100\r
+ ldrb r0,[r1,r0]\r
+ orr z80f,z80f,r0\r
+ fetch 12\r
+;@OUT (C),A\r
+opcode_ED_79:\r
+ mov r1,z80a, lsr #24\r
+ opOUT_C\r
+ fetch 12\r
+;@ADC HL,SP\r
+opcode_ED_7A:\r
+.if FAST_Z80SP\r
+ ldr r0,[cpucontext,#z80sp_base]\r
+ sub r0,z80sp,r0\r
+ mov r0, r0, lsl #16\r
+.else\r
+ mov r0,z80sp,lsl#16\r
+.endif\r
+ opADC16 r0\r
+;@LD SP,(NN)\r
+opcode_ED_7B:\r
+ ldrb r0,[z80pc],#1\r
+ ldrb r1,[z80pc],#1\r
+ orr r0,r0,r1, lsl #8\r
+ readmem16\r
+.if FAST_Z80SP\r
+ rebasesp\r
+.endif\r
+ mov z80sp,r0\r
+ fetch 20\r
+;@LDI\r
+opcode_ED_A0:\r
+ copymem8HL_DE\r
+ add z80hl,z80hl,#1<<16\r
+ add z80de,z80de,#1<<16\r
+ subs z80bc,z80bc,#1<<16\r
+ bic z80f,z80f,#(1<<VFlag)|(1<<NFlag)|(1<<HFlag)\r
+ orrne z80f,z80f,#1<<VFlag\r
+ fetch 16\r
+;@CPI\r
+opcode_ED_A1:\r
+ readmem8HL\r
+ add z80hl,z80hl,#0x00010000\r
+ mov r1,z80a,lsl#4\r
+ cmp z80a,r0,lsl#24\r
+ and z80f,z80f,#1<<CFlag\r
+ orr z80f,z80f,#1<<NFlag\r
+ orrmi z80f,z80f,#1<<SFlag\r
+ orreq z80f,z80f,#1<<ZFlag\r
+ cmp r1,r0,lsl#28\r
+ orrcc z80f,z80f,#1<<HFlag\r
+ subs z80bc,z80bc,#0x00010000\r
+ orrne z80f,z80f,#1<<VFlag\r
+ fetch 16\r
+;@INI\r
+opcode_ED_A2:\r
+ opIN_C\r
+ and z80f,r0,#0x80\r
+ mov z80f,z80f,lsr#2 ;@NFlag set by bit 7\r
+;@ mov r1,z80bc,lsl#8\r
+;@ add r1,r1,#0x01000000\r
+;@ adds r1,r1,r0,lsl#24\r
+;@ orrcs z80f,z80f,#(1<<CFlag)|(1<<HFlag) ;@ CF & HF set if (HL) + ((C+1) & 0xFF) > 0xFF\r
+ writemem8HL\r
+ add z80hl,z80hl,#1<<16\r
+ sub z80bc,z80bc,#1<<24\r
+ tst z80bc,#0xFF<<24\r
+ orrmi z80f,z80f,#1<<SFlag\r
+ orreq z80f,z80f,#1<<ZFlag\r
+ fetch 16\r
+\r
+;@OUTI\r
+opcode_ED_A3:\r
+ readmem8HL\r
+ add z80hl,z80hl,#1<<16\r
+ and z80f,r0,#0x80\r
+ mov z80f,z80f,lsr#2 ;@NFlag set by bit 7\r
+ mov r1,z80hl,lsl#8\r
+ adds r1,r1,r0,lsl#24\r
+ orrcs z80f,z80f,#(1<<CFlag)|(1<<HFlag) ;@ CF & HF set if (HL)+L > 0xFF\r
+ sub z80bc,z80bc,#1<<24\r
+ tst z80bc,#0xFF<<24\r
+ orrmi z80f,z80f,#1<<SFlag\r
+ orreq z80f,z80f,#1<<ZFlag\r
+ mov r1,r0\r
+ opOUT_C\r
+ fetch 16\r
+\r
+;@LDD\r
+opcode_ED_A8:\r
+ copymem8HL_DE\r
+ sub z80hl,z80hl,#1<<16\r
+ sub z80de,z80de,#1<<16\r
+ subs z80bc,z80bc,#1<<16\r
+ bic z80f,z80f,#(1<<VFlag)|(1<<NFlag)|(1<<HFlag)\r
+ orrne z80f,z80f,#1<<VFlag\r
+ fetch 16\r
+\r
+;@CPD\r
+opcode_ED_A9:\r
+ readmem8HL\r
+ sub z80hl,z80hl,#1<<16\r
+ mov r1,z80a,lsl#4\r
+ cmp z80a,r0,lsl#24\r
+ and z80f,z80f,#1<<CFlag\r
+ orr z80f,z80f,#1<<NFlag\r
+ orrmi z80f,z80f,#1<<SFlag\r
+ orreq z80f,z80f,#1<<ZFlag\r
+ cmp r1,r0,lsl#28\r
+ orrcc z80f,z80f,#1<<HFlag\r
+ subs z80bc,z80bc,#0x00010000\r
+ orrne z80f,z80f,#1<<VFlag\r
+ fetch 16\r
+\r
+;@IND\r
+opcode_ED_AA:\r
+ opIN_C\r
+ and z80f,r0,#0x80\r
+ mov z80f,z80f,lsr#2 ;@NFlag set by bit 7\r
+;@ mov r1,z80bc,lsl#8\r
+;@ sub r1,r1,#0x01000000\r
+;@ adds r1,r1,r0,lsl#24\r
+;@ orrcs z80f,z80f,#(1<<CFlag)|(1<<HFlag) ;@ CF & HF set if (HL) + ((C-1) & 0xFF) > 0xFF\r
+ writemem8HL\r
+ sub z80hl,z80hl,#1<<16\r
+ sub z80bc,z80bc,#1<<24\r
+ tst z80bc,#0xFF<<24\r
+ orrmi z80f,z80f,#1<<SFlag\r
+ orreq z80f,z80f,#1<<ZFlag\r
+ fetch 16\r
+\r
+;@OUTD\r
+opcode_ED_AB:\r
+ readmem8HL\r
+ sub z80hl,z80hl,#1<<16\r
+ and z80f,r0,#0x80\r
+ mov z80f,z80f,lsr#2 ;@NFlag set by bit 7\r
+ mov r1,z80hl,lsl#8\r
+ adds r1,r1,r0,lsl#24\r
+ orrcs z80f,z80f,#(1<<CFlag)|(1<<HFlag) ;@ CF & HF set if r0+HL > 0xFF\r
+ sub z80bc,z80bc,#1<<24\r
+ tst z80bc,#0xFF<<24\r
+ orrmi z80f,z80f,#1<<SFlag\r
+ orreq z80f,z80f,#1<<ZFlag\r
+ mov r1,r0\r
+ opOUT_C\r
+ fetch 16\r
+;@LDIR\r
+opcode_ED_B0:\r
+ copymem8HL_DE\r
+ add z80hl,z80hl,#1<<16\r
+ add z80de,z80de,#1<<16\r
+ subs z80bc,z80bc,#1<<16\r
+ bic z80f,z80f,#(1<<VFlag)|(1<<NFlag)|(1<<HFlag)\r
+ orrne z80f,z80f,#1<<VFlag\r
+ subne z80pc,z80pc,#2\r
+ subne z80_icount,z80_icount,#5\r
+ fetch 16\r
+\r
+;@CPIR\r
+opcode_ED_B1:\r
+ readmem8HL\r
+ add z80hl,z80hl,#1<<16 \r
+ mov r1,z80a,lsl#4\r
+ cmp z80a,r0,lsl#24\r
+ and z80f,z80f,#1<<CFlag\r
+ orr z80f,z80f,#1<<NFlag\r
+ orrmi z80f,z80f,#1<<SFlag\r
+ orreq z80f,z80f,#1<<ZFlag\r
+ cmp r1,r0,lsl#28\r
+ orrcc z80f,z80f,#1<<HFlag\r
+ subs z80bc,z80bc,#1<<16\r
+ bne opcode_ED_B1_decpc\r
+ fetch 16\r
+opcode_ED_B1_decpc:\r
+ orr z80f,z80f,#1<<VFlag\r
+ tst z80f,#1<<ZFlag\r
+ subeq z80pc,z80pc,#2\r
+ subeq z80_icount,z80_icount,#5\r
+ fetch 16\r
+;@INIR\r
+opcode_ED_B2:\r
+ opIN_C\r
+ and z80f,r0,#0x80\r
+ mov z80f,z80f,lsr#2 ;@NFlag set by bit 7\r
+;@ mov r1,z80bc,lsl#8\r
+;@ add r1,r1,#0x01000000\r
+;@ adds r1,r1,r0,lsl#24\r
+;@ orrcs z80f,z80f,#(1<<CFlag)|(1<<HFlag) ;@ CF & HF set if (HL) + ((C+1) & 0xFF) > 0xFF\r
+ writemem8HL\r
+ add z80hl,z80hl,#1<<16\r
+ sub z80bc,z80bc,#1<<24\r
+ tst z80bc,#0xFF<<24\r
+ orrmi z80f,z80f,#1<<SFlag\r
+ orreq z80f,z80f,#1<<ZFlag\r
+ subne z80pc,z80pc,#2\r
+ subne z80_icount,z80_icount,#5\r
+ fetch 16\r
+;@OTIR\r
+opcode_ED_B3:\r
+ readmem8HL\r
+ add z80hl,z80hl,#1<<16\r
+ and z80f,r0,#0x80\r
+ mov z80f,z80f,lsr#2 ;@NFlag set by bit 7\r
+ mov r1,z80hl,lsl#8\r
+ adds r1,r1,r0,lsl#24\r
+ orrcs z80f,z80f,#(1<<CFlag)|(1<<HFlag) ;@ CF & HF set if r0+HL > 0xFF\r
+ sub z80bc,z80bc,#1<<24\r
+ tst z80bc,#0xFF<<24\r
+ orrmi z80f,z80f,#1<<SFlag\r
+ orreq z80f,z80f,#1<<ZFlag\r
+ subne z80pc,z80pc,#2\r
+ subne z80_icount,z80_icount,#5\r
+ mov r1,r0\r
+ opOUT_C\r
+ fetch 16\r
+;@LDDR\r
+opcode_ED_B8:\r
+ copymem8HL_DE\r
+ sub z80hl,z80hl,#1<<16\r
+ sub z80de,z80de,#1<<16\r
+ subs z80bc,z80bc,#1<<16\r
+ bic z80f,z80f,#(1<<VFlag)|(1<<NFlag)|(1<<HFlag)\r
+ orrne z80f,z80f,#1<<VFlag\r
+ subne z80pc,z80pc,#2\r
+ subne z80_icount,z80_icount,#5\r
+ fetch 16\r
+\r
+;@CPDR\r
+opcode_ED_B9:\r
+ readmem8HL\r
+ sub z80hl,z80hl,#1<<16\r
+ mov r1,z80a,lsl#4\r
+ cmp z80a,r0,lsl#24\r
+ and z80f,z80f,#1<<CFlag\r
+ orr z80f,z80f,#1<<NFlag\r
+ orrmi z80f,z80f,#1<<SFlag\r
+ orreq z80f,z80f,#1<<ZFlag\r
+ cmp r1,r0,lsl#28\r
+ orrcc z80f,z80f,#1<<HFlag\r
+ subs z80bc,z80bc,#1<<16\r
+ bne opcode_ED_B9_decpc\r
+ fetch 16\r
+opcode_ED_B9_decpc:\r
+ orr z80f,z80f,#1<<VFlag\r
+ tst z80f,#1<<ZFlag\r
+ subeq z80pc,z80pc,#2\r
+ subeq z80_icount,z80_icount,#5\r
+ fetch 16\r
+;@INDR\r
+opcode_ED_BA:\r
+ opIN_C\r
+ and z80f,r0,#0x80\r
+ mov z80f,z80f,lsr#2 ;@NFlag set by bit 7\r
+;@ mov r1,z80bc,lsl#8\r
+;@ sub r1,r1,#0x01000000\r
+;@ adds r1,r1,r0,lsl#24\r
+;@ orrcs z80f,z80f,#(1<<CFlag)|(1<<HFlag) ;@ CF & HF set if (HL) + ((C-1) & 0xFF) > 0xFF\r
+ writemem8HL\r
+ sub z80hl,z80hl,#1<<16\r
+ sub z80bc,z80bc,#1<<24\r
+ tst z80bc,#0xFF<<24\r
+ orrmi z80f,z80f,#1<<SFlag\r
+ orreq z80f,z80f,#1<<ZFlag\r
+ subne z80pc,z80pc,#2\r
+ subne z80_icount,z80_icount,#5\r
+ fetch 16\r
+;@OTDR\r
+opcode_ED_BB:\r
+ readmem8HL\r
+ sub z80hl,z80hl,#1<<16\r
+ and z80f,r0,#0x80\r
+ mov z80f,z80f,lsr#2 ;@NFlag set by bit 7\r
+ mov r1,z80hl,lsl#8\r
+ adds r1,r1,r0,lsl#24\r
+ orrcs z80f,z80f,#(1<<CFlag)|(1<<HFlag) ;@ CF & HF set if r0+HL > 0xFF\r
+ sub z80bc,z80bc,#1<<24\r
+ tst z80bc,#0xFF<<24\r
+ orrmi z80f,z80f,#1<<SFlag\r
+ orreq z80f,z80f,#1<<ZFlag\r
+ subne z80pc,z80pc,#2\r
+ subne z80_icount,z80_icount,#5\r
+ mov r1,r0\r
+ opOUT_C\r
+ fetch 16\r
+;@##################################\r
+;@##################################\r
+;@### opcodes FD #########################\r
+;@##################################\r
+;@##################################\r
+;@Since DD and FD opcodes are all the same apart from the address\r
+;@register they use. When a FD intruction the program runs the code\r
+;@from the DD location but the address of the IY reg is passed instead\r
+;@of IX\r
+\r
+end_loop:\r
+ b end_loop\r
+\r
+\r
+\r