Opět se ponořím do dávné minulosti. Podle údajů v archívu se jednalo o rok 1994. To už je opravdu nějakej pátek. A protože v té době kraloval DOS a snad i Windows 3.11, čas od času jsem používal na nějaké menší obrázky Z-Soft Paint Brush. Pamětníci jistě vědí, o čem hovořím. Na podobném principu následně i Microsoft vytvořil program Malování. Ale já používal tehdy Paint Brush. Neměl jsem k němu výhrady, snad jen, že nepodporoval české znaky. A protože absence Češtiny mi vadila čím dál víc, rozhodl jsem se s tím něco udělat. Při pohledu do adresáře jsem pochopil, že fonty jsou uložené v souborech, které mají příponu FNT a jsou rastrové. To mi samozřejmě nedošlo hned, ale musel jsem chvíli do těchto souborů nahlížet. A pak mě napadlo řešení. Co kdybych si napsal svůj prográmek, který umí obsah tohoto souboru přepsat tak, aby se znaková sada změnila na to, co chci já? A v tom okamžiku mi došlo, že vlastně nejde jen o Paint Brush, ale že bych rád počeštil i jiné programy.
A tak jsem chvíli přemýšlel a navrhl program FSF, tedy Find & Save Font. Podle názvu by se dalo odhadnout, že program fonty hledal a ukládal. Ale on měl ještě další funkci. Uměl znaky opravovat. Pokud jde o Paint Brush, ten měl znaky ve velikosti 16 x 8 bodů. Tedy šířka znaku byla na jeden Bajt. Při spuštění programu FSF tento otevřel daný soubor, ve kterém jsem předpokládal znakovou sadu a zobrazil prvních šestnáct Bajtů. Jednak jako ASCII znaky, ale v pravé polovině obrazovky je už zobrazil po jednotlivých bitech a já byl schopen při procházení souboru vizuálně ty znaky identifikovat. Podle dvou xichtíků jsem jednoznačně poznal, kde znaková sada začíná. Tento bod jsem si označil a pak již bylo možné skočit přímo na libovolnou pozici a zobrazit ten, který znak v ASCII tabulce. A protože program měl i editor a clipboard, dal se znak z jedné pozice přenést na jinou a tam ho třeba upravit přidáním diakritického znaménka.
Pokud jsem někde našel určitou znakovou sadu, bylo možné ji uložit do samostatného souboru a následně tento vložit do úplně jiného souboru, kde se už očekávala ta správná znaková sada. Takže by se dalo říct, že když jsem někde našel českou znakovou sadu, jen jsem si ji vypůjčil a nahrál někam jinam, kam bylo potřeba.
Tímto jsem si vytvořil několik znakových sad pro Paint Brush a hned se mi s ním lépe pracovalo, protože uměl naprosto perfektně česky. Ale jak už jsem zmínil, potřeba počešťovat byla veliká. A tak jsem takto upravil i program Framework III a IV a následně i program BitPaint, tedy opět grafický editor. V BitPaintu byl problém malinko složitější, protože písmo nebylo v samostatném souboru, ale přímo v EXE modulu. A tady se nesmělo říznout vedle, jinak by program zkolaboval. Ale tady už nebyla výška znaku 16, ale 14 a když už jsem program ladil, přidal jsem změnu výšky písma v rozsahu 8 x 8 až 16 x 8. A protože jsem FSF programoval v Turbo Pascalu, vytvořil jsem si ještě funkci, která mi vytvořila knihovnu právě pro Turbo Pascal, která přes přerušení 10H uměla tuto znakovou sadu nahrát do video adaptéru. Takže tu správnou češtinu jsem pak mohl použít i pro svoje programátorské potřeby. Následně jsem ještě dotvořil doplněk na konverzi znakové sady z Kamenických do Latin 2 a opačně.
A ještě později, ale to už tak dávno není, tedy už v dobách AI, jsem tenhle prográmek konzultoval s AI. A tento rozhovor mi vnukl ještě jednu hodně zajímavou myšlenku. A to je právě to první písmenko v názvu programu. Tedy F jako Find. Já hledal manuálně, tedy znak se musel objevit na obrazovce, abych ho rozpoznal. Ale šlo by to udělat i nějak automaticky? A sakra, že šlo. Problém je, že znaky se mohou měnit. Mohou být v normálním fontu, v tučném a nebo třeba v kurzívě. A pak se bude dost složitě vyhledávat. Leda, že bych si v DOSu napsal nějaké svoje OCR. Ale já chtěl jít jednodušší cestou. A tak jsem se podíval do znakové sady a docvaklo mi, že znaky abecedy se měnit můžou a nejspíš i budou. Ale znaky na pozicích 176, 177, 178 a 219 už nejspíš ne. A pokud tyto znaky najdu, ale vyhledávat budu jen prvních osm řádků znaku (protože výšku ještě neznám), tak nalezením pozic jsem schopen určit jak počátek celé znakové sady, tak i výšku znaku. A tak jsem si napsal pomocnou utilitku, která projede všechny soubory v aktuálním adresáři a hledá tyto markanty. A pokud je najde, jen je vypíše a já už nemusím hledat manuálně, ale jdu najisto.
Pár zákazníkům jsem tímto vylepšil software, který se v češtině nikdy koupit nedal. A protože si stále hraju s abandonware, jednou za čas si i teď něco počeštím. A tím bych povídání o tomhle prográmku ukončil. Třeba to někdy někoho zaujme.
Komentáře