23Fermer25
BrunniLe 18/10/2009 à 01:07
Lol mais c'est clair que c'est crade (hint: GetForegroundWindow, GetDC, StretchBlt, GetAsyncKeyState... et ReleaseDC parce que j'ai beau être un gros porc, je suis un porc propre smile).
Cela dit, voilà qui devrait ravir Kevin: l'interface finale sera faite avec wxWidgets smile
GC> Donc ok, pour moi le registre de statut c'était plus "système" que simplement des flags (je pensais plutôt au mode superviseur, toussa). Merci bcp de tes explications en tous cas smilesmile
Sinon je ne sais pas si c'est nécessaire d'ouvrir un nouveau topic pour ça mais je me demandais comment tu avais implémenté DAA (decimal adjust accu)? Les émulos ont l'air de faire un truc over mega complexe, là où perso j'ai juste:
// daa: http://www.geocities.com/siliconvalley/peaks/3938/z80syntx.htm#DAA
// Dernière op.: addition ou soustraction?
s8 direction = flag_test(F_N) ? -1 : 1;
// Exemple: 0x8 + 0x3 = 0xb -> 0x11 (+6)
if (flag_test(F_H) || (accu & 0xf) >= 0xa)
    accu += direction * 0x06;
// Pareil pour le digit du haut
if (flag_test(F_C) || (accu & 0xf0) >= 0xa0) {
    accu += direction * 0x60;
    flag_set(F_C);
}
flag_clear(F_H | F_Z);
if (accu == 0)
    flag_set(F_Z);
return 1;   // m-cycles

J'ai peut être mal compris / oublié qqch?
(pour l'instant j'ai vu que SML2 et Dr. Mario s'en servent pour le score et ça marche)