Portál AbcLinuxu, 13. května 2024 15:36

České prostředí v okně xdosemu

17. 10. 2002 | Jan Marek
Články - České prostředí v okně xdosemu  

aneb kterak vytvořit font v kódování CP852, aby vám účetnictví Abra Gold jelo hezky česky.

Motivace

Jsem spokojeným uživatelem Linuxu, ale chybělo mi v něm účetnictví. Podařilo se mi rozběhat účetnictví Abra Gold pro DOS v dosemu, ale měl jsem velké dilema: v konzoli jsem měl korektní klávesnici i zobrazení znaků, ale nefungovaly mi některé důležité klávesové zkratky (např. Ctrl+Enter pro změnu typu řádku v zadání faktury). V xdosemu sice zkratky šly, ale nedalo se na to moc koukat. Až jednou...

Jednoho krásného dne jsem se zdravě naštval a začal jsem do tohoto problému šťourat. Říkal jsem si: když už umí X fontserver renderovat unicode fonty, proč by mi nezobrazil i kódovou stránku CP852? Přece by měla stačit jen nějaká mapa, kde bych řekl: písmeno s tímto kódem má ten a ten kód v unicode. Povzbudilo mě k tomu i to, že jsem ve svém Debianu našel v adresáři /usr/lib/X11/fonts také adresář encoding, kde byly údaje i o CP852 mapování na unicode znaky a následně i adresář nazvaný util, kde byly další mapy z různých ISO8859-* kódování do unicode tabulky. Nicméně tento výzkum nedopadl příliš uspokojivě.

Rozhodl jsem se ještě napsat do linuxové konference a předtím jsem začal prohledávat její archiv. Našel jsem tam odkaz, že tento dotaz byl vznesen, avšak bez (pro mě) uspokojivé odpovědi (něco v tom smyslu: udělat to jde, zkuste to). A tak jsem místo odeslání dotazu začal zkoumat dál sám.

Postup

Nebudu napínat: opravdu to jde. Vodítkem se pro mě stala dokumentace k debiannímu balíku xfonts-efont-unicode, kde jsem narazil na postup, jak z bdf definice unicodového fontu vygenerovat font v jiném kódování a také tento odkaz: http://www.cl.cam.ac.uk/~mgk25/ucs-fonts.html.

A tak jsem se pustil do práce dle návodu a výsledkem je tento postup:

Prvně budete potřebovat balík ucs-fonts.tar.gz. V tomto balíku najdete bdf definice různých unicode fontů. Dále budete potřebovat mapu CP852->unicode. Tuto mapu lze sehnat na stránkách unicode.org.

Dále budeme potřebovat utilitu bdftopcf, v Debianu je v balíčku xutils. Balík ucs-fonts.tar.gz rozbalíme ve vhodném adresáři pomocí:

tar xvzf ucs-fonts.tar.gz

Pozor: rozbaluje se přímo do aktuálního adresáře! Pro jednoduchost předpokládám, že do tohoto adresáře překopírujeme i soubor CP852.TXT.

Dále si zvolíme velikost fontu. Já jsem si vybral 9x18 bodů a tedy soubor 9x18.bdf. Dále provedeme příkaz:

ucs2any.pl 9x18.bdf CP852.TXT IBM-CP852
9x18.bdf
soubor s vybraným fontem
CP852.TXT
soubor s mapováním kódování CP852 na unicode
IBM-CP852
výsledné "kódování" fontu. toto kódování musí být ve tvaru něco-něco, můžete si tedy zvolit i CP-852.

Výsledkem je soubor 9x18-IBM-CP852.bdf, který je nutno převést do podoby stravitelné X fontserverem:

bdftopcf 9x18-IBM-CP852.bdf >9x18-IBM-CP852.pcf

Fonty pro X fontserver jsou obvykle zazipované, takže ještě:

gzip 9x18-IBM-CP852.pcf

Pak je třeba nakopírovat tento soubor tak, aby byl k dispozici fontserveru. U mě na Debianu se to provede takto:

cp 9x18-IBM-CP852.pcf.gz /usr/lib/X11/fonts/misc
cd /usr/lib/X11/fonts/misc
mkfontdir

Dále je nutné tento font zpřístupnit xdosemu. xdosemu se pokouší použít font s názvem vga. Prohledáme tedy soubor fonts.dir na řetězec 852 a popisovač fontu (nevím, zda je to vhodný termín) vložíme do fonts.alias. U mě konkrétně to bylo takto: # grep 852 fonts.dir
9x18-IBM-CP852.pcf.gz -misc-fixed-medium-r-normal--18-120-100-100-c-90-ibm-cp852

Takže výsledný řádek ve fonts.alias vypadá takto:

vga -misc-fixed-medium-r-normal--18-120-100-100-c-90-ibm-cp852

Dále jsem musel restartnout X fontserver (xfs) a X a poté, co jsem spustil xdosemu, vše šlapalo, jak má.

Závěr

Stejným způsobem by bylo možné vytvořit font pro kódování bratří Kamenických (kdysi jsem pro něj používal CodePage 895). Mapu se mi na Internetu najít nepodařilo, ale asi by šla docela jednoduše vytvořit, pokud bych měl k dispozici hexa hodnoty jednotlivých znaků...

Ještě pro jistotu přikládám dosemu.conf

Happy hacking ;-)

Související články

Dosemu - II
Staré dobré hry

Odkazy a zdroje

www.dosemu.org

Další články z této rubriky

VDR a DVB-T2, část 2.
VDR a DVB-T2, část 1.
Šifrovaný Proxmox VE 6: ZFS, LUKS, systemd_boot a Dropbear
MapTiler – proměňte obrázek v zoomovatelnou mapu
Syncthing

Diskuse k tomuto článku

18.10.2002 20:44 Tomáš Tatoušek
Rozbalit Rozbalit vše ABRA GOLD DOS
Odpovědět | Sbalit | Link | Blokovat | Admin
Omlouvám se, ale asi nejsem v dosemu dosti zběhlý pro instalaci ABRY GOLD for DOS. Vyhazujeme mi to stále v úvodním okně, že mám upravit v config.sys FILES na 90. Což jsem učinil. Bohužel i po úpravě se to hlášení stále opakuje. Tak opravdu nevím. Díky. Tomáš Tatoušek
21.10.2002 14:55 Jan Marek | skóre: 16
Rozbalit Rozbalit vše ABRA GOLD DOS
Jaky pouzivate DOS pod dosemu? Ja pouzivam freedos a v config.sys mam toto: --- start of config.sys
DOS=UMB,HIGH
lastdrive=H
files=120
buffers=100
devicehigh=c:\dosemu\ems.sys
rem devicehigh=c:\dosemu\cdrom.sys
shell=c:\command.com /e:1024 /p
--- end of config.sys Zkus... Honza Marek
2.11.2002 09:20 Tomas Tatousek
Rozbalit Rozbalit vše ABRA GOLD DOS
Pouzito: dosemu-freedos-bin.tgz dosemu-1.0.2-bin.tgz Tento config u mne nastartuje instalaci FILES=100 BUFFERS=40 lastdrive=H devicehigh=c:\dosemu\ems.sys rem devicehigh=c:\dosemu\cdrom.sys shell=c:\command.com /e:1024 /p Bohuzel hned se vypise ze "Soubor PKUNZIP" neexistuje a instalace skoci. Zdravim
22.10.2002 16:54 Adam Pribyl | skóre: 16
Rozbalit Rozbalit vše font
Odpovědět | Sbalit | Link | Blokovat | Admin
aaa.. nechtel byste nam este trochu ulehcit praci a hodit sem primo ten font, pripadne ho umistit nekde na web? Preci jen proc stahovat a konvertovat, kdyz uz to nekdo udelal.
23.10.2002 16:18 Jan Marek | skóre: 16
Rozbalit Rozbalit vše font
A root pristup na masinu bys mi nechtel dat, ze bych to tam primo vsechno nastavil a tak? ;-) Radeji bych to nechal tak: myslim si, ze kazdy si bude chtit vybrat svoji vhodnou velikost fontu (ja uz jsem skoro slepy ;-)) ) Proto je tu kompletni navod, lehci uz by to asi nebylo ono :-) Zdravi
Honza Marek
5.11.2002 19:32 Olda
Rozbalit Rozbalit vše font
Návod je výborný
5.11.2002 19:33 Olda
Rozbalit Rozbalit vše font
Návod je výborný
29.10.2002 14:19 Ladislav Michl
Rozbalit Rozbalit vše vga != cp852
Odpovědět | Sbalit | Link | Blokovat | Admin
xdosemu sice hledá vga font, ale to nemůže být důvodem, proč si dělat v instalaci bordel. jako lepší volba se jeví vytvořit alias, který bude respektovat kódování fontu. v debianu obsahuje vga font balík xfont-dosemu, který vytváří alias vga. co třeba malá úpravička dosemu.conf? $_X_font = "muj_fontik" to se nechá vrazit taky do dosemurc a mate to per user ;-) btw, mám tady krásný cp852 font Libora Rejce a jeden svůj kamenický. vypadají jako ty z romky vga karet a spolu s fonty jiných velikostí se brzo objeví na webu. ladis
31.1.2003 13:33 Ludvik Tesar
Rozbalit Rozbalit vše Fonty v kodu Kamenickych a CP852 pro xdosemu
udelal jsem nejake fonty pro xdosemu v kodu kamenickych je to na: http://vodka.utia.cas.cz/czdosemu Je tam pribalena u tabulka pro prevod kodu kamenickych na unicode a jsou tam i fonty v CP 852, ale myslim, ze ty nejsou potreba protoze staci pouzit libovolne fonty v iso-8859-2 (treba czil2) a v konfiguracnim souboru nastavit: $_X_font = "czil2" $_charset = "latin2" To pak provadi samo prevod mezi CP852 a iso-8859-2 (aspon podle dokumentace k dosemu) Naproti tomu, pokud czkam jsou prave ty fonty v kodu kamenickych a da se: $_X_font = "czkam" $_charset = "ibm" Tak to neprovadi zadny prevod, takze v xdosemu muzeme vesele spoustet aplikace, ktere funguji jen s kodem kamenickych (vyzkouseno). Obdobne by se to udelalo s temi fonty CP852, ale jak rikam, myslim, ze to neni potreba.
23.9.2003 11:36 Ivo Procházka
Rozbalit Rozbalit vše česká klávesnice v DOSEMU
Odpovědět | Sbalit | Link | Blokovat | Admin
článek je super, podle návodu jsem vyrobil font 10x20, při kterém je v rozlišení 1024x768 aspoň něco vidět. Mám ale jiný problém. Nevím, kde dělám chybu. České znaky jsou zobrazovány správně, ale nepovedlo se mi donutit DOSEMU, aby mi tyto české znaky psala také klávesnice. Poraďte, prosím, nevím, kde dělám chybu. Zkusil jsem použít i přiložený dosemu.conf. Všechno funguje ale stejně (zase bez klávesnice). Také by mě zajímalo, jestli je možné si stejným způsobem vyrobit i font s CP852 do konzoly, kdybych chtěl třeba dosovské aplikace spouštět v textovém režimu. Tam to české znaky sice zobrazuje, ale font nezobrazuje správně grafické symboly. Díky za radu.
6.7.2004 15:13 petr_p
Rozbalit Rozbalit vše Hotove fonty pro linejsi
Odpovědět | Sbalit | Link | Blokovat | Admin
Existuje debiani balicek s fonty v postarsich kodovych strankach. Jmenuje se xfonts-terminus-dos a lze ho nalezt napr. na http://packages.debian.org/testing/x11/xfonts-terminus-dos .
hajma avatar 14.10.2007 22:24 hajma | skóre: 27 | blog: hajma | Říčany
Rozbalit Rozbalit vše Re: České prostředí v okně xdosemu
Odpovědět | Sbalit | Link | Blokovat | Admin
jenom doplním, že v Mandrivě 2008 (a pravděpodobně vi v 2007.1) se již místo
/usr/lib/X11/fonts/misc
používá
/usr/share/fonts/misc
21 promarněných znaků

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.