( locsemege | 2022. 01. 31., h – 13:06 )

Értem az iróniát, persze az sem baj, ha te is érted, mit akartam mondani. ;) Ha már itt tartunk, találtam Z80 CPU-ban hardware bugot annak idején. Ha menteni akarod, hogy az IT tiltva vagy engedélyezve van, az LD A, I utasítással a P/V flagbe tudod tenni. Utána DI, a kritikus kód, majd a végén P/V-től függően vagy átugorjuk az EI-t, vagy nem. Eddig egyszerű, de ha épp az LD A, I alatt jön az IT, az IT kérelem már tiltja az IT-t - a kelleténél korábban, az LD A, I még végrehajtás alatt van, ez a bug -, ennélfogva P/V-be 0 másolódik. Az IT végrehajtódik, annak végén EI, RETI - vagy RET -, majd itt az alapprogramban egyből DI. Jön a kritikus kód, majd a P/V alapján nem engedélyezzük az IT-t, hanem helytelenül tiltva marad - örökre. Vagy legalább is EI utasításig, de olyan várhatóan nem lesz. Szóval valójában kétszer kell LD A, I, tárolni kell mindkét értéket, majd a végén némi logika - OR kapcsolat - a tárolt értékek alapján.

Arra gondoltam, hogy egy valaki más által megírt bit bang RS232 stack felhasználása valószínűleg sokkal több szívással jár, mint elölről megírni egyet. Eleve lehet, hogy valamit speciálisan csinálhatsz, nem kell nagyon általánosra. Másrészt amíg más programját belegyógyítod a saját kódodba, nem kevés idő. Mire megérted, hogyan működik, talán megcsináltad sokkal jobban saját magad. Külső kód még csak optimális sem lesz a saját környezetedben.

Nem azt mondtam, hogy ne használjunk oprendszert meg glibc-t.