| 328 | } |
| 329 | |
| 330 | void daa(CPU* cpu) { |
| 331 | cpu->lazyFlagType=FLAGS_NONE; |
| 332 | if (((AL & 0x0F)>0x09) || cpu->getAF()) { |
| 333 | if ((AL > 0x99) || cpu->getCF()) { |
| 334 | AL+=0x60; |
| 335 | cpu->addCF(); |
| 336 | } else { |
| 337 | cpu->removeCF(); |
| 338 | } |
| 339 | AL+=0x06; |
| 340 | cpu->addAF(); |
| 341 | } else { |
| 342 | if ((AL > 0x99) || cpu->getCF()) { |
| 343 | AL+=0x60; |
| 344 | cpu->addCF(); |
| 345 | } else { |
| 346 | cpu->removeCF(); |
| 347 | } |
| 348 | cpu->removeAF(); |
| 349 | } |
| 350 | cpu->setSF(AL & 0x80); |
| 351 | cpu->setZF(AL == 0); |
| 352 | cpu->setPFonValue(AL); |
| 353 | } |
| 354 | |
| 355 | void das(CPU* cpu) { |
| 356 | cpu->lazyFlagType=FLAGS_NONE; |
no test coverage detected