Pěkně napsané využití tisku znaků přes ROM.
Osobně jsem ZX ROM pro tisk znaků přestal používat už dávno, protože obvykle chci vypisovat mnohem rychleji, často bez barev a skoro vždy na všech 24 řádků, nejenom na 22, což by asi v článku mohlo být zmíněno. Vidím tam jen zmínku o otevření kanálu 2, ale nikoli jeho omezení. Resp. to, že omezení podprogramu RST16 je stejné, jako omezení příkazu PRINT v BASICu.
Taky mi tam chybí zmínka o velmi často používaném způsobu ukončení řetězce bitem 7 v 1, které dává smysl pokud používám jen ASCII se znaky 32 až 127, ušetří se tím byte v každém řetězci a zároveň je stále jednoduché a rychlé bit 7 testovat.
Na druhou stranu ukončení nulou mi dává možnost být rozmařilý a s použitím vlastního fontu vypisovat kompatibilním kódováním ISO8859-2 :) Ale i k tomu potřebuju vlastní kód, který nemá omezení nad 127, neřeší semigrafiku a tokeny BASICových příkazů.
Jo, je těžké do omezeného prostoru napsat vše :) I malý, starý a dobře prozkoumaný počítač má možnosti téměř neomezené :)
Díky za doplnění. Jinak například to nastavení sedmého bitu se dalo využít při tvorbě textovek (pokud už neměl člověk nějakou komprimaci), protože například názvy všech předmětů mohly být v jednom řetězci a "oddělené" jen nejvyšším bitem na začátku každého jména. Dobré řešení třeba v BASICech, které neměly pole stringů (+ se na každý předmět ušetřil minimálně jeden bajt).
Nastavení sedmého bitu používá mimochodem i samotná ZX ROM - viz tokeny příkazů od dekadické adresy 150. Akorát ten bit 7 je na posledním znaku, ne na prvním.
Prohledávání a detokenizaci mám např. ve svých ovladačích k tiskárnám, když jsem chtěl tisknout nejenom text pomocí LPRINT (ekvivalent PRINT #3), ale i výpis BASICového programu pomocí LLIST (ekvivalent LIST #3).
Hezká je textovka "...a to snad ne", kde se používá pětibitové kódování, ve kterém se nejčastější znaky kódují jedním pětibitem a tuším dvě speciální hodnoty slouží jako escape, co volí jednu z dalších dvou tabulek znaků.
Pak je tam taky krásně jednoduše řešená herní logika, kdy se akorát při průchodu obrazovkami různě překlápí bity ve stavovém stroji a podle nich se volí, která varianta textu se zobrazí.