Autor ::Vldo Poslaná :: 13.10.2023 05:35:35 Predmet ::Emulace CPU
Možná jsem se už někdy já nebo někdo jiný na to ptal, ale zajímalo by mě, jak přesná je u vašeho emulátoru emulace CPU. Jde mi o to, že nemám k dispozici fyzické PMD85, abych ve svém emulátoru mohl porovnat činnost jednotlivých instrukcí a jejich vliv na registr příznaků se skutečným PMD85. Jediné, co mám k dispozici jsou již existující emulátory a zajímalo by mě, jak je na tom s přesností emulace ten váš. Jak moc se na něj v tomto ohledu dá spolehnout.
Děkuji za odpověď
Správa
Autor ::Roman Bórik Poslaná :: 13.10.2023 17:40:55 Predmet ::Re: Emulace CPU
Emulácia v našom Emulátore by mala byť presná.
Overovaná bola pomocou 8080 instruction exerciser - 8080-8085-Exerciser.zip.
V tomto ZIPe je okrem zdrojového kódu aj 8080EX1.ptp s preloženým programom. Nahrá sa v Monitore pomocou MGLD 00 a spustí JUMP 0100. Pozor: Celý test trvá okolo troch hodín (ak si to dobre pamätám).
Správa
Autor ::Vldo Poslaná :: 14.10.2023 08:38:12 Predmet ::Re: Emulace CPU
Díky za radu. Jen nevím, jak mám interpretovat chybové stavy. Například tento: aluop nn......... ERROR ****crc expected:9e922f9e found:7799ea9d
Správa
Autor ::wurmi Poslaná :: 21.11.2023 13:45:14 Predmet ::Re: Emulace CPU
Vldo - si co opravil v emulovani? Podel sa ;)
nakolko i ja sam som prisiel k rovnakemu CRC 7799ea9d. Moze byt i fyzicky procesor odchylny. i8085 nie je uplne 100% kompatibilny s i8080.
Správa
Autor ::Roman Bórik Poslaná :: 14.10.2023 14:07:38 Predmet ::Re: Emulace CPU
Program, možno pochopiteľne, nepovie, že napr. táto konkrétna inštrukcia nastavuje príznaky inak, ako je očakávané.
Ak sa nemýlim, ten test je komplexný a testujú sa výsledky po vykonaní celej skupiny inštrukcií.
V tomto prípade aluop nn sú aritmetické a logické inštrukcie s priamym operandom.
Možno pri "ladení" emulácie inštrukcií pomôže táto tabuľka.
Výsledok by mal vyzerať nejako takto.
Správa
Autor ::Vldo Poslaná :: 17.10.2023 06:43:40 Predmet ::Re: Emulace CPU
Při testech problém: napadá vás, kluci šikovní, proč po opravách již aluop nn vypíše OK, ale aluop hlásí stále chybu? Je mi to divný, protože jsem měl za to, že rozdíl je pouze v tom přímém operandu...
Správa
Autor ::Roman Bórik Poslaná :: 17.10.2023 13:07:22 Predmet ::Re: Emulace CPU
To si, žiaľ, vôbec netrúfam ani odhadovať...
Správa
Autor ::vldo Poslaná :: 15.10.2023 12:31:15 Predmet ::Re: Emulace CPU
Jo, a bylo by možné popsat vliv činnosti instrukce DAA na příznak C a AC? V té tabulce jsem to nenašel. Děkuji
Správa
Autor ::Roman Bórik Poslaná :: 15.10.2023 17:01:09 Predmet ::Re: Emulace CPU
Autor ::wurmi Poslaná :: 29.11.2023 10:08:05 Predmet ::Re: Emulace CPU
DAA je divocina.
Mne DAA fungovala aj pred aj po. Ale exerciser mi hlasil stale CRC error. On to totiz testuje na vsetkych kombinaciach AC+CY+A. A zistil som ze Romanov výklad DAA nie je uplne slovne presny. Podobne nie je úplne presný aj výklad v 8080 Programmers Manual.
Konkrétne v bode 2, ked sa rozhoduje kedy ma pripocitat hodnotu 60h. Nestaci len CY=1 alebo horny nibble (po pripadnom pripocitani 6 ) ma hodnotu vyssiu ako 9.
Napriklad ked je situacia AC=C=0 a A=FFh. Tu podla bodu 1 sa pripocita 6. ale uz nepripocita 60h (medzivysledok je totiz 05h, horny nibble je 0). Mne zafungovalo to, ze v bode 2 testujem hodnotu A este pred pripocitanim 6, a porovnavam s hodnotou 99h. V pripade AC=C=0 a A=FFh po DAA ocakavam v A=65 a to asi aj spravna hodnota na fyzickom 8080, ktoru aj Exerciser80/85 ocakava. Tak to priblizne robi aj Romanov emulator.
Tiez si myslim ze 8080 urcite interne nerobi 2 sekvencne korekcie pri DAA, ale len jeden sucet s hodnotami 0, 6 alebo 66h, ktore ziska z dakej jednoduchej kombinacnej logiky.
Správa
Autor ::Vldo Poslaná :: 15.10.2023 07:42:47 Predmet ::Re: Emulace CPU
A ještě jeden dotaz: byl ten prográmek 8080-8085-Exerciser laděný na reálném PMD? Dá se tedy na něj při ladění spolehnout?
Děkuji za reakce a přeji hodně úspěchů
Správa
Autor ::Roman Bórik Poslaná :: 15.10.2023 16:56:51 Predmet ::Re: Emulace CPU
Ten program sme my nijako "neladili". My sme ho len upravili pre beh na PMD 85.
Ale na živom PMD 85 s TESLA MHB8080A bol samozrejme vyskúšaný.