xxl napisał/a:mam pewne przemyslenia jak przyspieszyc emulacje:
- brak ochrony pamieci (dlaczego emulator ma dbac o to zeby nie dac sie wyrabac zle napisanemu programowi w z80?) - to odnosnie blokowania zapisu do rom
Sprawdzenie tego w zasadzie nic nie kosztuje, to groszowa oszczędność.
- umiejscowienie pamieci emulowanego proca w liniowym ramie (65816 sie klania)
No, wiadomo, że na 65816, przy liniowym RAM-ie i z wykorzystaniem nowych trybów adresowania, to jest zupenie inna bajka: np. dekodowanie rozkazu się na dzień dobry robi 4 cykle szybsze.
- napotkanie rozkazu nieobslugiwanego powoduje opuszczenie emulatora
To faktycznie musi bardzo przyspieszać emulację :)
jeszcze nie wiem jak zaemulowac rejestr stanu z80...
A to jeszcze wiele przed tobą :)
@draco030, jesli mozesz uruchom ten programik moze w taki sposob
Teoretycznie mogę, ale musiałbym za dużo przerabiać. Mogę ci podać wynik w ramkach VBL, ale do tego przydałoby się, żeby pętla wykonywała się większą liczbę razy (np. kilkadziesiąt tysięcy razy) dla lepszej dokładności.
Nie bardzo rozumiem, po co ładujesz 7 do rejestru B.
Ja - jak wiesz zresztą - testuję na czymś takim (przytaczam z pamięci):
ld HL,$ffff
ld A,$3f
loop:
ld (HL),$00
dec HL
cp H
jr NZ,loop
Ta pętla wykonuje się 49152 razy zerując pamięć od $FFFF do $4000. Atarynce wykonanie tego zabiera 496 ramek. Rozkazy ustawiają wszystkie oficjalne flagi Z80, nieoficjalnych przeważnie nie.