Ovladač klávesnice s funkcí „Autorepeat“

Pokud potřebujeme implementovat vstup znaků z alfanumerické klávesnice (ve smyslu scanování matice kláves a generování ASCII kódu), jedná se o relativně snadnou úlohu. Pokud požadujeme navíc funkci autorepeat, je situace složitější, neboť je nutné ošetřit celou řadu dynamických jevů.

Někdy lze využít služby BIOSu či MONITORu – u PMD-85 je to procedura na adrese 84A1h. Pokud se však systémová procedura nachází v ROM a my ji potřebujeme upravit nebo je pomocí systémových proměnných modifikovatelná jen minimálně, je nutno napsat si proceduru svou.

Zde uvedená „knihovna“ včetně zapouzdření do malého demonstračního programu nevyužívá žádný hardware, veškeré časování je řešeno výlučně programovými prostředky, což zvyšuje šance na přenositelnost knihovny na jiné systémy. Demo řeší pouze vstup znaků z klávesnice, nezabývá se implementací funkčních kláves a kurzorových šipek. Tyto řídicí klávesy mají v tomto příkladu nastaveny nulové (=neaktivní) ASCII kódy. Seznam znaků a řídicích kódů, které klávesnice takzvaně „umí“, lze jednoduše rozšířit například o kombinace s klávesou STOP, tak jak to například dělá PMD 85-3.

Zdrojový kód knihovny v assembleru i8080

Projekt v PSPadu včetně zkompilovaného demonstračního programu

1 komentář u „Ovladač klávesnice s funkcí „Autorepeat“

  1. Libor L.A.

    Jako vedlejší produkt vývoje her FLAPPY2k a Miny vznikl ovladač klávesnice s funkcí „Autorepeat“, nezávislý na systémových procedurách MONITORu. Nevyžaduje ani časování pomocí obvodů 8251/8253, což jej předurčuje pro použití v programech, které by měly běhat jak na PMD-85 tak i na Didakticích Alfa a Beta, Consulech C2717, a po nezbytných úpravách i na Maťovi a obecně jiných platformách. Vzhledem k plně programovému řešení si myslím, že koncepčně zapadá do sekce „Jak na to…“, neboť jej lze využít jako již odladěný modul, do kterého se jen doplní seznam kláves klávesnice.

Napsat komentář: Libor L.A. Zrušit odpověď na komentář

Vaše e-mailová adresa nebude zveřejněna.