Autor ::Tomáš Pecina Poslaná :: 25.11.2015 08:49:34 Predmet ::Re: Čítače 8253
Nefunguje třeba toto:
10 OUT 95,112
20 OUT 93,0
30 OUT 93,0
40 PRINT INP(93),INP(93)
50 GOTO 40
Výstupem jsem v RM-emulátoru samé 255.
Správa
Autor ::Roman Bórik Poslaná :: 25.11.2015 09:27:49 Predmet ::Re: Čítače 8253
Ak sa jedná o Linuxovú verziu, neviem už z akej Windows verzie vznikla.
Vo Windows verzii sa emulácia 8253 opravovala viackrát, takže je možné, že tieto zmeny tam zanesené nie sú a preto to tam nefunguje správne.
Hlavný problém je v tom, že Windows a Linux verzie Emulátora sú úplne odlišné a oddelené projekty. Linux verzia sa prakticky "iba" portovala z Windows verzie.
Správa
Autor ::Tomáš Pecina Poslaná :: 25.11.2015 09:57:04 Predmet ::Re: Čítače 8253
Výsledek je bohužel stejný i na nejnovější versi pro Windows.
Jde o to, že když generuji sudoku, potřebuji relativně hodně bitů entropie, protože vybírám z více než 2^64 možností. Dělám to tak, že mám 128bitové LCG, jehož průběžnou hodnotu při každém stisknutí klávesy uživatelem XORuji s výstupem čítače 1 - vždy dva byty, cyklicky přes celých 16 bytů. Kromě prvního sudoku, které se generuje po pouhých dvou stiscích, tedy z 32 bitů, je tak zaručen skutečně kvalitní pseudonáhodný výběr.
Na vašem emulátoru to ale nebude fungovat, protože první sudoku bude vždy to samé a další budou mít jen několik variant.
Pokud by se jednalo o neřešitelný problém, mohl bych nouzově doplnit "manuální" měření pro první stisknutí, takže u emulátoru s nefunkčním čítačem by se takto získalo aspoň několik bitů entropie a uživatel by nic nepoznal. Je to ale nepěkné a nesystémové řešení.
Správa
Autor ::Roman Bórik Poslaná :: 25.11.2015 13:23:40 Predmet ::Re: Čítače 8253
Predpokladám, že to skúšate na PMD 85-1.
O probléme s chybou čítača CT1 na PMD 85-1 som písal už na Vašich stránkach.
> Win verzia emulátora sa, na rozdiel od Linuxovej, stále vyvíja,
> robia sa rôzne o(ú)pravy, pridávajú sa ďalšie periférie a toto je
> dôsledok, že sa v PMD 85-1 nedostávajú hodiny na CT1 PIT 8253.
> Chyba vznikla po pridaní emulácie Myši 602, ktorá tento čítač používa.
> Hodiny sa tak dostanú na CT1 iba ak je pripojená Myš 602 k PMD 85-1.
> Ak si ale zvolíte iný model PMD 85, tak program funguje bez problémov.
V pracovnej verzii emulátora je už táto chyba opravená.
Správa
Autor ::Libor L.A. Poslaná :: 15.12.2015 18:43:46 Predmet ::Re: Čítače 8253
Mohu potvrdit, že Arkanoid, který se synchronizuje na T1/8253 opravdu na PMD-85 verze 1 a na Alfě 1 nejede (po startu sektoru zamrzne), protože čeká na dočítání T1 do stavu 00FFh, což dle výše uvedeného nikdy nenastane. Takže tímto potvrzuji Tvou pracovní hypotézu o selektivní chybě taktování T1/8253 pouze u verze 1.
Správa
Autor ::Tomáš Pecina Poslaná :: 25.11.2015 14:02:03 Predmet ::Re: Čítače 8253
Výborně, tedy udělám release SUDOKU bez ohledu na tyto problémy, s tím, že v příštích versích vašeho emulátoru už bude chyba opravena. Případně mohu funkci čítače na začátku testovat a pokud nepoběží, program ohlásí chybu HW a nebude pokračovat.
Čítač 2 ve vašem emulátoru po resetu běží, což není v rozporu se specifikací (před naprogrováním je stav 8253 nedefinovaný), ale vzpomínám si, že nešel u některých časnějších PMD (minimálně z prototypové řady, se kterou jsem dlouhou dobu pracoval). Muselo se to řešit hardwarovou úpravou na desce: na pin se přiletoval malý filtrační kondensátor. V SUDOKU tento čítač využívám pro měření času řešení, ale není kriticky důležitý, pokud bude stát, prostě se uživateli zobrazí čas 0:00.