CodesXX.h
1 /** Z80: portable Z80 emulator *******************************/ 2 /** **/ 3 /** CodesXX.h **/ 4 /** **/ 5 /** This file contains implementation for FD/DD tables of **/ 6 /** Z80 commands. It is included from Z80.c. **/ 7 /** **/ 8 /** Copyright (C) Marat Fayzullin 1994-2007 **/ 9 /** You are not allowed to distribute this software **/ 10 /** commercially. Please, notify me, if you make any **/ 11 /** changes to this file. **/ 12 /*************************************************************/ 13 14 case JR_NZ: if(R->AF.B.l&Z_FLAG) R->PC.W++; else { R->ICount-=5;M_JR; } break; 15 case JR_NC: if(R->AF.B.l&C_FLAG) R->PC.W++; else { R->ICount-=5;M_JR; } break; 16 case JR_Z: if(R->AF.B.l&Z_FLAG) { R->ICount-=5;M_JR; } else R->PC.W++; break; 17 case JR_C: if(R->AF.B.l&C_FLAG) { R->ICount-=5;M_JR; } else R->PC.W++; break; 18 19 case JP_NZ: if(R->AF.B.l&Z_FLAG) R->PC.W+=2; else { M_JP; } break; 20 case JP_NC: if(R->AF.B.l&C_FLAG) R->PC.W+=2; else { M_JP; } break; 21 case JP_PO: if(R->AF.B.l&P_FLAG) R->PC.W+=2; else { M_JP; } break; 22 case JP_P: if(R->AF.B.l&S_FLAG) R->PC.W+=2; else { M_JP; } break; 23 case JP_Z: if(R->AF.B.l&Z_FLAG) { M_JP; } else R->PC.W+=2; break; 24 case JP_C: if(R->AF.B.l&C_FLAG) { M_JP; } else R->PC.W+=2; break; 25 case JP_PE: if(R->AF.B.l&P_FLAG) { M_JP; } else R->PC.W+=2; break; 26 case JP_M: if(R->AF.B.l&S_FLAG) { M_JP; } else R->PC.W+=2; break; 27 28 case RET_NZ: if(!(R->AF.B.l&Z_FLAG)) { R->ICount-=6;M_RET; } break; 29 case RET_NC: if(!(R->AF.B.l&C_FLAG)) { R->ICount-=6;M_RET; } break; 30 case RET_PO: if(!(R->AF.B.l&P_FLAG)) { R->ICount-=6;M_RET; } break; 31 case RET_P: if(!(R->AF.B.l&S_FLAG)) { R->ICount-=6;M_RET; } break; 32 case RET_Z: if(R->AF.B.l&Z_FLAG) { R->ICount-=6;M_RET; } break; 33 case RET_C: if(R->AF.B.l&C_FLAG) { R->ICount-=6;M_RET; } break; 34 case RET_PE: if(R->AF.B.l&P_FLAG) { R->ICount-=6;M_RET; } break; 35 case RET_M: if(R->AF.B.l&S_FLAG) { R->ICount-=6;M_RET; } break; 36 37 case CALL_NZ: if(R->AF.B.l&Z_FLAG) R->PC.W+=2; else { R->ICount-=7;M_CALL; } break; 38 case CALL_NC: if(R->AF.B.l&C_FLAG) R->PC.W+=2; else { R->ICount-=7;M_CALL; } break; 39 case CALL_PO: if(R->AF.B.l&P_FLAG) R->PC.W+=2; else { R->ICount-=7;M_CALL; } break; 40 case CALL_P: if(R->AF.B.l&S_FLAG) R->PC.W+=2; else { R->ICount-=7;M_CALL; } break; 41 case CALL_Z: if(R->AF.B.l&Z_FLAG) { R->ICount-=7;M_CALL; } else R->PC.W+=2; break; 42 case CALL_C: if(R->AF.B.l&C_FLAG) { R->ICount-=7;M_CALL; } else R->PC.W+=2; break; 43 case CALL_PE: if(R->AF.B.l&P_FLAG) { R->ICount-=7;M_CALL; } else R->PC.W+=2; break; 44 case CALL_M: if(R->AF.B.l&S_FLAG) { R->ICount-=7;M_CALL; } else R->PC.W+=2; break; 45 46 case ADD_B: M_ADD(R->BC.B.h);break; 47 case ADD_C: M_ADD(R->BC.B.l);break; 48 case ADD_D: M_ADD(R->DE.B.h);break; 49 case ADD_E: M_ADD(R->DE.B.l);break; 50 case ADD_H: M_ADD(R->XX.B.h);break; 51 case ADD_L: M_ADD(R->XX.B.l);break; 52 case ADD_A: M_ADD(R->AF.B.h);break; 53 case ADD_xHL: I=RdZ80(R->XX.W+(offset)OpZ80(R->PC.W++)); 54 M_ADD(I);break; 55 case ADD_BYTE: I=OpZ80(R->PC.W++);M_ADD(I);break; 56 57 case SUB_B: M_SUB(R->BC.B.h);break; 58 case SUB_C: M_SUB(R->BC.B.l);break; 59 case SUB_D: M_SUB(R->DE.B.h);break; 60 case SUB_E: M_SUB(R->DE.B.l);break; 61 case SUB_H: M_SUB(R->XX.B.h);break; 62 case SUB_L: M_SUB(R->XX.B.l);break; 63 case SUB_A: R->AF.B.h=0;R->AF.B.l=N_FLAG|Z_FLAG;break; 64 case SUB_xHL: I=RdZ80(R->XX.W+(offset)OpZ80(R->PC.W++)); 65 M_SUB(I);break; 66 case SUB_BYTE: I=OpZ80(R->PC.W++);M_SUB(I);break; 67 68 case AND_B: M_AND(R->BC.B.h);break; 69 case AND_C: M_AND(R->BC.B.l);break; 70 case AND_D: M_AND(R->DE.B.h);break; 71 case AND_E: M_AND(R->DE.B.l);break; 72 case AND_H: M_AND(R->XX.B.h);break; 73 case AND_L: M_AND(R->XX.B.l);break; 74 case AND_A: M_AND(R->AF.B.h);break; 75 case AND_xHL: I=RdZ80(R->XX.W+(offset)OpZ80(R->PC.W++)); 76 M_AND(I);break; 77 case AND_BYTE: I=OpZ80(R->PC.W++);M_AND(I);break; 78 79 case OR_B: M_OR(R->BC.B.h);break; 80 case OR_C: M_OR(R->BC.B.l);break; 81 case OR_D: M_OR(R->DE.B.h);break; 82 case OR_E: M_OR(R->DE.B.l);break; 83 case OR_H: M_OR(R->XX.B.h);break; 84 case OR_L: M_OR(R->XX.B.l);break; 85 case OR_A: M_OR(R->AF.B.h);break; 86 case OR_xHL: I=RdZ80(R->XX.W+(offset)OpZ80(R->PC.W++)); 87 M_OR(I);break; 88 case OR_BYTE: I=OpZ80(R->PC.W++);M_OR(I);break; 89 90 case ADC_B: M_ADC(R->BC.B.h);break; 91 case ADC_C: M_ADC(R->BC.B.l);break; 92 case ADC_D: M_ADC(R->DE.B.h);break; 93 case ADC_E: M_ADC(R->DE.B.l);break; 94 case ADC_H: M_ADC(R->XX.B.h);break; 95 case ADC_L: M_ADC(R->XX.B.l);break; 96 case ADC_A: M_ADC(R->AF.B.h);break; 97 case ADC_xHL: I=RdZ80(R->XX.W+(offset)OpZ80(R->PC.W++)); 98 M_ADC(I);break; 99 case ADC_BYTE: I=OpZ80(R->PC.W++);M_ADC(I);break; 100 101 case SBC_B: M_SBC(R->BC.B.h);break; 102 case SBC_C: M_SBC(R->BC.B.l);break; 103 case SBC_D: M_SBC(R->DE.B.h);break; 104 case SBC_E: M_SBC(R->DE.B.l);break; 105 case SBC_H: M_SBC(R->XX.B.h);break; 106 case SBC_L: M_SBC(R->XX.B.l);break; 107 case SBC_A: M_SBC(R->AF.B.h);break; 108 case SBC_xHL: I=RdZ80(R->XX.W+(offset)OpZ80(R->PC.W++)); 109 M_SBC(I);break; 110 case SBC_BYTE: I=OpZ80(R->PC.W++);M_SBC(I);break; 111 112 case XOR_B: M_XOR(R->BC.B.h);break; 113 case XOR_C: M_XOR(R->BC.B.l);break; 114 case XOR_D: M_XOR(R->DE.B.h);break; 115 case XOR_E: M_XOR(R->DE.B.l);break; 116 case XOR_H: M_XOR(R->XX.B.h);break; 117 case XOR_L: M_XOR(R->XX.B.l);break; 118 case XOR_A: R->AF.B.h=0;R->AF.B.l=P_FLAG|Z_FLAG;break; 119 case XOR_xHL: I=RdZ80(R->XX.W+(offset)OpZ80(R->PC.W++)); 120 M_XOR(I);break; 121 case XOR_BYTE: I=OpZ80(R->PC.W++);M_XOR(I);break; 122 123 case CP_B: M_CP(R->BC.B.h);break; 124 case CP_C: M_CP(R->BC.B.l);break; 125 case CP_D: M_CP(R->DE.B.h);break; 126 case CP_E: M_CP(R->DE.B.l);break; 127 case CP_H: M_CP(R->XX.B.h);break; 128 case CP_L: M_CP(R->XX.B.l);break; 129 case CP_A: R->AF.B.l=N_FLAG|Z_FLAG;break; 130 case CP_xHL: I=RdZ80(R->XX.W+(offset)OpZ80(R->PC.W++)); 131 M_CP(I);break; 132 case CP_BYTE: I=OpZ80(R->PC.W++);M_CP(I);break; 133 134 case LD_BC_WORD: M_LDWORD(BC);break; 135 case LD_DE_WORD: M_LDWORD(DE);break; 136 case LD_HL_WORD: M_LDWORD(XX);break; 137 case LD_SP_WORD: M_LDWORD(SP);break; 138 139 case LD_PC_HL: R->PC.W=R->XX.W;JumpZ80(R->PC.W);break; 140 case LD_SP_HL: R->SP.W=R->XX.W;break; 141 case LD_A_xBC: R->AF.B.h=RdZ80(R->BC.W);break; 142 case LD_A_xDE: R->AF.B.h=RdZ80(R->DE.W);break; 143 144 case ADD_HL_BC: M_ADDW(XX,BC);break; 145 case ADD_HL_DE: M_ADDW(XX,DE);break; 146 case ADD_HL_HL: M_ADDW(XX,XX);break; 147 case ADD_HL_SP: M_ADDW(XX,SP);break; 148 149 case DEC_BC: R->BC.W--;break; 150 case DEC_DE: R->DE.W--;break; 151 case DEC_HL: R->XX.W--;break; 152 case DEC_SP: R->SP.W--;break; 153 154 case INC_BC: R->BC.W++;break; 155 case INC_DE: R->DE.W++;break; 156 case INC_HL: R->XX.W++;break; 157 case INC_SP: R->SP.W++;break; 158 159 case DEC_B: M_DEC(R->BC.B.h);break; 160 case DEC_C: M_DEC(R->BC.B.l);break; 161 case DEC_D: M_DEC(R->DE.B.h);break; 162 case DEC_E: M_DEC(R->DE.B.l);break; 163 case DEC_H: M_DEC(R->XX.B.h);break; 164 case DEC_L: M_DEC(R->XX.B.l);break; 165 case DEC_A: M_DEC(R->AF.B.h);break; 166 case DEC_xHL: I=RdZ80(R->XX.W+(offset)RdZ80(R->PC.W));M_DEC(I); 167 WrZ80(R->XX.W+(offset)OpZ80(R->PC.W++),I); 168 break; 169 170 case INC_B: M_INC(R->BC.B.h);break; 171 case INC_C: M_INC(R->BC.B.l);break; 172 case INC_D: M_INC(R->DE.B.h);break; 173 case INC_E: M_INC(R->DE.B.l);break; 174 case INC_H: M_INC(R->XX.B.h);break; 175 case INC_L: M_INC(R->XX.B.l);break; 176 case INC_A: M_INC(R->AF.B.h);break; 177 case INC_xHL: I=RdZ80(R->XX.W+(offset)RdZ80(R->PC.W));M_INC(I); 178 WrZ80(R->XX.W+(offset)OpZ80(R->PC.W++),I); 179 break; 180 181 case RLCA: 182 I=(R->AF.B.h&0x80? C_FLAG:0); 183 R->AF.B.h=(R->AF.B.h<<1)|I; 184 R->AF.B.l=(R->AF.B.l&~(C_FLAG|N_FLAG|H_FLAG))|I; 185 break; 186 case RLA: 187 I=(R->AF.B.h&0x80? C_FLAG:0); 188 R->AF.B.h=(R->AF.B.h<<1)|(R->AF.B.l&C_FLAG); 189 R->AF.B.l=(R->AF.B.l&~(C_FLAG|N_FLAG|H_FLAG))|I; 190 break; 191 case RRCA: 192 I=R->AF.B.h&0x01; 193 R->AF.B.h=(R->AF.B.h>>1)|(I? 0x80:0); 194 R->AF.B.l=(R->AF.B.l&~(C_FLAG|N_FLAG|H_FLAG))|I; 195 break; 196 case RRA: 197 I=R->AF.B.h&0x01; 198 R->AF.B.h=(R->AF.B.h>>1)|(R->AF.B.l&C_FLAG? 0x80:0); 199 R->AF.B.l=(R->AF.B.l&~(C_FLAG|N_FLAG|H_FLAG))|I; 200 break; 201 202 case RST00: M_RST(0x0000);break; 203 case RST08: M_RST(0x0008);break; 204 case RST10: M_RST(0x0010);break; 205 case RST18: M_RST(0x0018);break; 206 case RST20: M_RST(0x0020);break; 207 case RST28: M_RST(0x0028);break; 208 case RST30: M_RST(0x0030);break; 209 case RST38: M_RST(0x0038);break; 210 211 case PUSH_BC: M_PUSH(BC);break; 212 case PUSH_DE: M_PUSH(DE);break; 213 case PUSH_HL: M_PUSH(XX);break; 214 case PUSH_AF: M_PUSH(AF);break; 215 216 case POP_BC: M_POP(BC);break; 217 case POP_DE: M_POP(DE);break; 218 case POP_HL: M_POP(XX);break; 219 case POP_AF: M_POP(AF);break; 220 221 case DJNZ: if(--R->BC.B.h) { R->ICount-=5;M_JR; } else R->PC.W++;break; 222 case JP: M_JP;break; 223 case JR: M_JR;break; 224 case CALL: M_CALL;break; 225 case RET: M_RET;break; 226 case SCF: S(C_FLAG);R(N_FLAG|H_FLAG);break; 227 case CPL: R->AF.B.h=~R->AF.B.h;S(N_FLAG|H_FLAG);break; 228 case NOP: break; 229 case OUTA: I=OpZ80(R->PC.W++);OutZ80(I|(R->AF.W&0xFF00),R->AF.B.h);break; 230 case INA: I=OpZ80(R->PC.W++);R->AF.B.h=InZ80(I|(R->AF.W&0xFF00));break; 231 232 case HALT: 233 R->PC.W--; 234 R->IFF|=IFF_HALT; 235 R->IBackup=0; 236 R->ICount=0; 237 break; 238 239 case DI: 240 if(R->IFF&IFF_EI) R->ICount+=R->IBackup-1; 241 R->IFF&=~(IFF_1|IFF_2|IFF_EI); 242 break; 243 244 case EI: 245 if(!(R->IFF&(IFF_1|IFF_EI))) 246 { 247 R->IFF|=IFF_2|IFF_EI; 248 R->IBackup=R->ICount; 249 R->ICount=1; 250 } 251 break; 252 253 case CCF: 254 R->AF.B.l^=C_FLAG;R(N_FLAG|H_FLAG); 255 R->AF.B.l|=R->AF.B.l&C_FLAG? 0:H_FLAG; 256 break; 257 258 case EXX: 259 J.W=R->BC.W;R->BC.W=R->BC1.W;R->BC1.W=J.W; 260 J.W=R->DE.W;R->DE.W=R->DE1.W;R->DE1.W=J.W; 261 J.W=R->HL.W;R->HL.W=R->HL1.W;R->HL1.W=J.W; 262 break; 263 264 case EX_DE_HL: J.W=R->DE.W;R->DE.W=R->HL.W;R->HL.W=J.W;break; 265 case EX_AF_AF: J.W=R->AF.W;R->AF.W=R->AF1.W;R->AF1.W=J.W;break; 266 267 case LD_B_B: R->BC.B.h=R->BC.B.h;break; 268 case LD_C_B: R->BC.B.l=R->BC.B.h;break; 269 case LD_D_B: R->DE.B.h=R->BC.B.h;break; 270 case LD_E_B: R->DE.B.l=R->BC.B.h;break; 271 case LD_H_B: R->XX.B.h=R->BC.B.h;break; 272 case LD_L_B: R->XX.B.l=R->BC.B.h;break; 273 case LD_A_B: R->AF.B.h=R->BC.B.h;break; 274 case LD_xHL_B: J.W=R->XX.W+(offset)OpZ80(R->PC.W++); 275 WrZ80(J.W,R->BC.B.h);break; 276 277 case LD_B_C: R->BC.B.h=R->BC.B.l;break; 278 case LD_C_C: R->BC.B.l=R->BC.B.l;break; 279 case LD_D_C: R->DE.B.h=R->BC.B.l;break; 280 case LD_E_C: R->DE.B.l=R->BC.B.l;break; 281 case LD_H_C: R->XX.B.h=R->BC.B.l;break; 282 case LD_L_C: R->XX.B.l=R->BC.B.l;break; 283 case LD_A_C: R->AF.B.h=R->BC.B.l;break; 284 case LD_xHL_C: J.W=R->XX.W+(offset)OpZ80(R->PC.W++); 285 WrZ80(J.W,R->BC.B.l);break; 286 287 case LD_B_D: R->BC.B.h=R->DE.B.h;break; 288 case LD_C_D: R->BC.B.l=R->DE.B.h;break; 289 case LD_D_D: R->DE.B.h=R->DE.B.h;break; 290 case LD_E_D: R->DE.B.l=R->DE.B.h;break; 291 case LD_H_D: R->XX.B.h=R->DE.B.h;break; 292 case LD_L_D: R->XX.B.l=R->DE.B.h;break; 293 case LD_A_D: R->AF.B.h=R->DE.B.h;break; 294 case LD_xHL_D: J.W=R->XX.W+(offset)OpZ80(R->PC.W++); 295 WrZ80(J.W,R->DE.B.h);break; 296 297 case LD_B_E: R->BC.B.h=R->DE.B.l;break; 298 case LD_C_E: R->BC.B.l=R->DE.B.l;break; 299 case LD_D_E: R->DE.B.h=R->DE.B.l;break; 300 case LD_E_E: R->DE.B.l=R->DE.B.l;break; 301 case LD_H_E: R->XX.B.h=R->DE.B.l;break; 302 case LD_L_E: R->XX.B.l=R->DE.B.l;break; 303 case LD_A_E: R->AF.B.h=R->DE.B.l;break; 304 case LD_xHL_E: J.W=R->XX.W+(offset)OpZ80(R->PC.W++); 305 WrZ80(J.W,R->DE.B.l);break; 306 307 case LD_B_H: R->BC.B.h=R->XX.B.h;break; 308 case LD_C_H: R->BC.B.l=R->XX.B.h;break; 309 case LD_D_H: R->DE.B.h=R->XX.B.h;break; 310 case LD_E_H: R->DE.B.l=R->XX.B.h;break; 311 case LD_H_H: R->XX.B.h=R->XX.B.h;break; 312 case LD_L_H: R->XX.B.l=R->XX.B.h;break; 313 case LD_A_H: R->AF.B.h=R->XX.B.h;break; 314 case LD_xHL_H: J.W=R->XX.W+(offset)OpZ80(R->PC.W++); 315 WrZ80(J.W,R->HL.B.h);break; 316 317 case LD_B_L: R->BC.B.h=R->XX.B.l;break; 318 case LD_C_L: R->BC.B.l=R->XX.B.l;break; 319 case LD_D_L: R->DE.B.h=R->XX.B.l;break; 320 case LD_E_L: R->DE.B.l=R->XX.B.l;break; 321 case LD_H_L: R->XX.B.h=R->XX.B.l;break; 322 case LD_L_L: R->XX.B.l=R->XX.B.l;break; 323 case LD_A_L: R->AF.B.h=R->XX.B.l;break; 324 case LD_xHL_L: J.W=R->XX.W+(offset)OpZ80(R->PC.W++); 325 WrZ80(J.W,R->HL.B.l);break; 326 327 case LD_B_A: R->BC.B.h=R->AF.B.h;break; 328 case LD_C_A: R->BC.B.l=R->AF.B.h;break; 329 case LD_D_A: R->DE.B.h=R->AF.B.h;break; 330 case LD_E_A: R->DE.B.l=R->AF.B.h;break; 331 case LD_H_A: R->XX.B.h=R->AF.B.h;break; 332 case LD_L_A: R->XX.B.l=R->AF.B.h;break; 333 case LD_A_A: R->AF.B.h=R->AF.B.h;break; 334 case LD_xHL_A: J.W=R->XX.W+(offset)OpZ80(R->PC.W++); 335 WrZ80(J.W,R->AF.B.h);break; 336 337 case LD_xBC_A: WrZ80(R->BC.W,R->AF.B.h);break; 338 case LD_xDE_A: WrZ80(R->DE.W,R->AF.B.h);break; 339 340 case LD_B_xHL: R->BC.B.h=RdZ80(R->XX.W+(offset)OpZ80(R->PC.W++));break; 341 case LD_C_xHL: R->BC.B.l=RdZ80(R->XX.W+(offset)OpZ80(R->PC.W++));break; 342 case LD_D_xHL: R->DE.B.h=RdZ80(R->XX.W+(offset)OpZ80(R->PC.W++));break; 343 case LD_E_xHL: R->DE.B.l=RdZ80(R->XX.W+(offset)OpZ80(R->PC.W++));break; 344 case LD_H_xHL: R->HL.B.h=RdZ80(R->XX.W+(offset)OpZ80(R->PC.W++));break; 345 case LD_L_xHL: R->HL.B.l=RdZ80(R->XX.W+(offset)OpZ80(R->PC.W++));break; 346 case LD_A_xHL: R->AF.B.h=RdZ80(R->XX.W+(offset)OpZ80(R->PC.W++));break; 347 348 case LD_B_BYTE: R->BC.B.h=OpZ80(R->PC.W++);break; 349 case LD_C_BYTE: R->BC.B.l=OpZ80(R->PC.W++);break; 350 case LD_D_BYTE: R->DE.B.h=OpZ80(R->PC.W++);break; 351 case LD_E_BYTE: R->DE.B.l=OpZ80(R->PC.W++);break; 352 case LD_H_BYTE: R->XX.B.h=OpZ80(R->PC.W++);break; 353 case LD_L_BYTE: R->XX.B.l=OpZ80(R->PC.W++);break; 354 case LD_A_BYTE: R->AF.B.h=OpZ80(R->PC.W++);break; 355 case LD_xHL_BYTE: J.W=R->XX.W+(offset)OpZ80(R->PC.W++); 356 WrZ80(J.W,OpZ80(R->PC.W++));break; 357 358 case LD_xWORD_HL: 359 J.B.l=OpZ80(R->PC.W++); 360 J.B.h=OpZ80(R->PC.W++); 361 WrZ80(J.W++,R->XX.B.l); 362 WrZ80(J.W,R->XX.B.h); 363 break; 364 365 case LD_HL_xWORD: 366 J.B.l=OpZ80(R->PC.W++); 367 J.B.h=OpZ80(R->PC.W++); 368 R->XX.B.l=RdZ80(J.W++); 369 R->XX.B.h=RdZ80(J.W); 370 break; 371 372 case LD_A_xWORD: 373 J.B.l=OpZ80(R->PC.W++); 374 J.B.h=OpZ80(R->PC.W++); 375 R->AF.B.h=RdZ80(J.W); 376 break; 377 378 case LD_xWORD_A: 379 J.B.l=OpZ80(R->PC.W++); 380 J.B.h=OpZ80(R->PC.W++); 381 WrZ80(J.W,R->AF.B.h); 382 break; 383 384 case EX_HL_xSP: 385 J.B.l=RdZ80(R->SP.W);WrZ80(R->SP.W++,R->XX.B.l); 386 J.B.h=RdZ80(R->SP.W);WrZ80(R->SP.W--,R->XX.B.h); 387 R->XX.W=J.W; 388 break; 389 390 case DAA: 391 J.W=R->AF.B.h; 392 if(R->AF.B.l&C_FLAG) J.W|=256; 393 if(R->AF.B.l&H_FLAG) J.W|=512; 394 if(R->AF.B.l&N_FLAG) J.W|=1024; 395 R->AF.W=DAATable[J.W]; 396 break;