23Fermer25
BrunniLe 24/07/2014 à 01:50
Godzil (./1) :
tmp = (dI&0x0F) + (dJ&0x0F); if ((tmp & 0xFF) > 0x09) tmp = 0x10 | (tmp ^ ((0x2 | ~(tmp<<1)&0x4 | ((((tmp>>2)&1) | (((tmp>>1)&1)))<<3)) & 0x0F)); tmp += (dI&0xF0) + (dJ&0xF0); if ((tmp & 0xFF0) > 0x90) { tmp = tmp ^ (0x20 | ~(tmp<<1)&0x40 | (((tmp>>2)&0x10 | ((tmp>>1)&0x10))<<3)); }

J'avais implémenté ça de façon plus lisible quand même tongue// http://www.ftp83plus.net/Tutorials/z80inset_fullA.htm // Exemple: 0x8 + 0x3 = 0xb -> 0x11 (+6) if ((accu & 0xf) >= 0xa || flags.halfcarry) accu += flags.n ? -6 : 6; // Pareil pour le digit du haut if ((accu & 0xf0) >= 0xa0 || flags.carry) { accu += flags.n ? -0x60 : 0x60; flags.carry = 1; } else flags.carry = 0; flags.halfcarry = 0; flags.zero = (accu == 0);