| 380 | } |
| 381 | |
| 382 | void aaa(CPU* cpu) { |
| 383 | cpu->lazyFlagType=FLAGS_NONE; |
| 384 | cpu->setSF((AL>=0x7a) && (AL<=0xf9)); |
| 385 | if ((AL & 0xf) > 9) { |
| 386 | cpu->setOF((AL & 0xf0)==0x70); |
| 387 | AX += 0x106; |
| 388 | cpu->addCF(); |
| 389 | cpu->setZF(AL == 0); |
| 390 | cpu->addAF(); |
| 391 | } else if (cpu->getAF()) { |
| 392 | AX += 0x106; |
| 393 | cpu->removeOF(); |
| 394 | cpu->addCF(); |
| 395 | cpu->removeZF(); |
| 396 | cpu->addAF(); |
| 397 | } else { |
| 398 | cpu->removeOF(); |
| 399 | cpu->removeCF(); |
| 400 | cpu->setZF(AL == 0); |
| 401 | cpu->removeAF(); |
| 402 | } |
| 403 | cpu->setPFonValue(AL); |
| 404 | AL &= 0x0F; |
| 405 | } |
| 406 | |
| 407 | void aas(CPU* cpu) { |
| 408 | cpu->lazyFlagType=FLAGS_NONE; |