Nová Ondra+ ROM verze 1.5

Ondra+ ROM se posunula do další verze. Tentokrát to vyústilo tím, že jsem měl k opravě dalšího Ondru, který po opravě jevil všechny známky plného zdraví, fungoval s originální ROM ale s tou mojí Ondra+ prostě zlobil hned v úvodní obrazovce.

Po opakovaném ověřování jsem si už byl jistý, že tohle není HW záležitost. Debugovat na reálném hardware je celkem časově náročná záležitost, takže jsem si musel sestavit pár mini prográmků co mi pomohly najít vůbec směr na co se zaměřit. Výsledkem zjištění bylo to, že původní ROM nastavuje interrupt mode 1 až při WARM resetu a to byl kámen úrazu. Ondra+ je založena na tom, že si „odskočí“ do menu po ukončení COLD resetu a tudíž předtím nenastaví interrupt mode. No a tady to byla kolize s reálným světem. Z80 CPU po zapnutí napájení naskočí v interrupt mode 0, kdy při každém přerušení vykoná instrukci co je aktuálně na datové sběrnici. V emulátoru či všech Ondrech co mi prošly rukama se tato neošetřená věc reálně neprojevila, protože na datové sběrnici si CPU načetl 0h a tudíž instrukci NOP. Zbytečně tedy v menu prováděl NOPy. A tenhle jediný Ondra, kde je možná některá datová linka během stavu vysoké impedance interpretována neurčitě způsobovala toto chování. Jednalo se tedy o neurčitý stav, nikoli chybu. Oprava pak už byla nasnadě, ROM provede ještě před zobrazením menu instrukci IM 1. V režimu IM 1 skáče CPU v přerušení vždy na adresu 38h. Tím se vše napravilo a tento Ondra je plně funkční s touto novou verzí Ondra+ ROM.

Zároveň jsem udělal uvnitř drobné optimalizace kódu abych získal pár volných bajtů pro přidání zobrazení verze ROM na úvodní obrazovce. Takže odteď je pod menu nápis s verzí.

Novou Ondra+ stahujte opět na Githubu zde: https://github.com/72ka/Tesla_Ondra/tree/main/Ondra%2B

Příspěvek byl publikován v rubrice Software se štítky . Můžete si uložit jeho odkaz mezi své oblíbené záložky.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *