Úvod
Hledat
Ovladače
Hardware
Software
Abíčko
O nás

Návody - České prostředí v okně xdosemu

České prostředí v okně xdosemu

17. 10. 2002 08:00 | Jan Marek

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 konzole 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 debianí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 fontserveru:

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-ka 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 ;-)

Diskuse k tomuto článku

Datum: 18. 10. 2002 20:44
Od: Tomáš Tatoušek
Titulek: ABRA GOLD DOS

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

Datum: 21. 10. 2002 14:55
Od: Jan Marek
Titulek: 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

Datum: 2. 11. 2002 09:20
Od: Tomas Tatousek
Titulek: 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

Datum: 22. 10. 2002 16:54
Od: Adam Pribyl
Titulek: font

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.

Datum: 23. 10. 2002 16:18
Od: Jan Marek
Titulek: 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

Datum: 5. 11. 2002 19:32
Od: Olda
Titulek: font

Návod je výborný

Datum: 5. 11. 2002 19:33
Od: Olda
Titulek: font

Návod je výborný

Datum: 29. 10. 2002 14:19
Od: Ladislav Michl
Titulek: vga != cp852

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

Datum: 31. 1. 2003 13:33
Od: Ludvik Tesar
Titulek: 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.


(c) AbcLinuxu s.r.o.   Grafika: megadesign