Hlavní navigace

Textové procesory s grafickým uživatelským rozhraním v systému DOS

19. 5. 2011
Doba čtení: 15 minut

Sdílet

V šestnácté části seriálu o GUI se budeme věnovat textovým procesorům, které pro komunikaci s uživatelem používaly grafické režimy počítačů IBM PC. Začneme samozřejmě popisem tuzemských textových procesorů jako Text602, jenž v našich zemích na dlouhou dobu určoval způsob zpracování textů.

Obsah

1. Textové procesory s grafickým uživatelským rozhraním v systému DOS

2. Přednosti a zápory grafického režimu použitého pro textové editory

3. Tuzemská klasika: Text602

4. Vlastnosti textového procesoru Text602

5. Souborový formát Text602 dobový standard pro přenos textových dokumentů

6. Textový procesor ESO aneb nepříliš vydařená konkurence Text602

7. Textový procesor MAT

8. Editace vzorců v MATu

9. Odkazy na Internetu

1. Textové procesory s grafickým uživatelským rozhraním v systému DOS

V předchozích pěti částech seriálu o historii vývoje uživatelského rozhraní jsme se věnovali textovým editorům (též nazývaných ASCII editory) a taktéž textovým procesorům určeným pro operační systém DOS, které pro komunikaci s uživatelem využívaly textové režimy, většinou standardní 25-řádkový režim s 80 znaky na jednom řádku. Popsali jsme si jak první úspěšný textový procesor WordStar, tak i jeho více či méně zdařilé konkurenty, především textové procesory Microsoft Word (for DOS), WordPerfect a taktéž aplikaci XyWrite. Ovšem naprostá většina osobních počítačů kompatibilních s IBM PC podporovala i práci v grafických režimech. Některé modely IBM PC XT sice byly dodávány s grafickým adaptérem MDA (Monochrome Display Adapter) pracujícím pouze v textovém režimu, ovšem všechny další grafické karty, počínaje kartou CGA (Color Graphics Adapter), přes EGA (Enhanced Graphics Adapter) a Hercules, a konče kartami VGA (Video Graphics Array) i různými variantami SVGA (Super VGA), již grafické režimy podporovaly.

pc83

Obrázek 1: Firma IBM navrhla první grafický adaptér MDA takovým způsobem, že dokázal pracovat pouze v textovém režimu.

S příchodem grafických režimů bylo pouze otázkou času, kdy výrobci textových procesorů využijí všech možností, které jim tyto režimy nabízí. Zpočátku se však podpora grafických režimů omezila na zobrazení náhledů na tiskové stránky, zatímco vlastní editace textu byla stále prováděna v režimu textovém. Tento způsob práce, který již z principu neumožňoval skutečný WYSIWYG (What You See Is What You Get, se zpočátku používal u všech čtyř výše zmíněných profesionálních textových procesorů: WordStaru, Microsoft Wordu, WordPerfextuXYWriteru. Teprve až příchod systému Microsoft Windows znamenal, že se výrobci těchto textových procesorů přeorientovali na skutečný WYSIWYG. Dnes se však ještě nebudeme tímto směrem vývoje grafických uživatelských rozhraní zabývat a zůstaneme u systému DOS a textových procesorů, které si musely veškeré GUI obstarat samy, což vedlo ke vzniku jak poněkud kuriózních rozhraní (například se jedná o jednokurzorový systém u aplikací Text602 1.x, 2.x a 3.0), tak i naopak grafických rozhraní na profesionální úrovni (E.T.Klasik a částečně MAT).

pc83

Obrázek 2: Alternativou k video adaptéru MDA byla grafická karta CGA, která standardně podporovala čtyřbarevný grafický režim s rozlišením 320×200 pixelů (viz tento screenshot z dobové hry King's Quest), popř. monochro­matický grafický režim s rozlišením 640×200 pixelů. Jak je z tohoto obrázku patrné, je malý počet barev kompenzován ditheringem, který ovšem při relativně malém rozlišení situaci snad ještě více zhoršuje. Paradoxní je, že většina rozšířených osmibitových počítačů dokáže – a to dokonce s poloviční velikostí obrazové paměti – tento obrázek zobrazit mnohem lépe.

2. Přednosti a zápory grafického režimu použitého pro textové editory

V první kapitole jsme si řekli, že všechny čtyři nejvýznamnější textové procesory určené pro operační systém DOS pracovaly standardně v textových režimech, což se může na první pohled zdát poněkud paradoxní, protože tyto režimy (zdánlivě) nenabízejí oproti plnohodnotným grafickým režimům žádné přednosti. Ve skutečnosti však tvůrci aplikací (a to nejenom textových procesorů, ale zejména programátoři her, grafických editorů a CAD systémů) využívajících na počítačích IBM PC grafiku, museli řešit jak problémy s kompatibilitou jednotlivých grafických adaptérů, tak i výkonnost svých aplikací. Problematika kompatibility grafických režimů byla poměrně závažná, protože samotný operační systém DOS neobsahoval prakticky žádnou podporu pro nastavení grafických režimů ani pro provádění rastrových operací: vykreslení textu, vykreslení úsečky atd. Určitá podpora pro tyto operace sice existovala v BIOSu, ovšem kromě nastavení grafického režimu byly všechny další grafické funkce nabízené BIOSem velmi pomalé a po praktické stránce takřka nepoužitelné (ostatně i samotné nastavení grafického režimu bylo možné provést mnohem rychleji, než pomocí funkcí BIOSu, ovšem použití BIOSu se považovalo za bezpečnější způsob).

pc81

Obrázek 3: Malé porovnání možností grafické karty CGA (viz obrázek číslo 2 z předchozí kapitoly) s možnostmi Amigy. Na této obrazovce ze hry Chaos Engine je na systémech podporujících televizní normu NTSC využit grafický režim s rozlišením 320×200 pixelů s 32 barvami.

I problém výkonnosti aplikací využívajících grafické režimy byl závažný, protože grafické karty až do příchodu některých adaptérů SVGA neobsahovaly žádnou podporu pro akceleraci grafických operací. To mj. znamenalo, že například textový editor musel při posunu editované stránky na obrazovce (scrollingu) přenést obsah celé grafické paměti a navíc musel dokreslit nové řádky na začátku či naopak na konci obrazovky. Samotný přenos obsahu grafické paměti byl v té době poměrně náročnou operací, protože to například znamenalo při každém posunu stránky o jeden textový řádek přenést v případě grafického režimu 640×350×16 (EGA) celkem 110 kB a u grafického režimu 640×480×16 (VGA) dokonce 150 kB dat přes poměrně pomalou sběrnici ISA (scrolling v textovém režimu 80×25 znaků byl ovšem proveden přenosem pouhých 4 kB dat). Není tedy divu, že práce v grafickém režimu nebyla ze strany profesionálních textových procesorů zpočátku podporována, protože se u nich preferovala spíše rychlá reakce na všechny příkazy zadávané uživatelem.

pc84

Obrázek 4: Textový procesor Text602 zobrazený kartou CGA (skutečný obraz má ve skutečnosti jen 200 řádků, nikoli 400, protože pixely neměly čtvercový tvar).

3. Tuzemská klasika: Text602

V dnešní části seriálu o vývoji GUI se budeme zabývat převážně tuzemskými textovými procesory využívajícími grafické režimy počítačů IBM PC. Samozřejmě není možné opomenout tehdejší jedničku na poli aplikací určených pro zpracování textů. Jedná se o slavný textový procesor Text 602, který byl po mnoho let – a v některých úřadech a státních podnicích pravděpodobně dodnes je – považován za standard pro tvorbu textových dokumentů. To však v mnoha případech vedlo k vytvoření špatných návyků při práci s textem u mnoha uživatelů, protože Text 602 se v některých ohledech podobá spíše jednodušším textovým editorům (ASCII editorům) než plnohodnotným textovým procesorům (zarovnávání do sloupců pomocí mezer je jen jedním ze špatných návyků). Pojďme si nyní popsat některé základní parametry této aplikace. Jedná se o textový procesor, který bylo možné ještě ve verzi 3.0 provozovat i na obyčejném IBM PC XT s grafickou kartou CGA, přičemž byly podporovány i další grafické karty, včetně EGA, Herculesu, VGA a AT&T (poslední zmíněná karta byla použita například i v populárním subnotebooku Quaderno, ideovém předchůdci Asus EEE :-).

pc84

Obrázek 5: Textový procesor Text602 zobrazený grafickou kartou EGA v rozlišení 640×350 v šestnácti barvách.

Vzhledem k tomu, že Text 602 využíval grafický režim, bylo v něm možné bez jakýchkoli vážnějších omezení používat písmena s nabodeníčky (české, slovenské, polské a další národní znaky s akcenty), azbuku, řeckou abecedu atd. (vždy však pouze 256 znaků, na rozdíl od WordPerfectu, který v jednom dokumentu podporoval více kódových stránek). To bylo v našich končinách velmi důležité, protože především majitelé grafických karet CGA a Hercules nemohli v textovém režimu jednoduše změnit znakovou sadu, protože ta byla uložena v paměti ((E)P)ROM, kterou bylo nutné například pro použití tuzemských akcentovaných znaků vyměnit nebo přeprogramovat. U aplikace Text602 tento problém zcela odpadl a navíc se v grafickém režimu mohly zobrazit všechny podporované styly písma: tučné písmo, kurzíva, vysoké písmo (na dva řádky), široké písmo, vysoké a současně široké písmo, horní index, dolní index a podtržené písmo. V grafickém režimu se mohl zobrazit i náhled celé tiskové strany, na němž bylo možné zkontrolovat například umístění čísel stránek atd. Jak pro editaci, tak i pro výsledný tisk se však používalo pouze neproporcionální písmo, na rozdíl od WordPerfectu nebo Wordu.

pc84

Obrázek 6: Textový procesor Text602 spuštěný na počítači s monochromatickou grafickou kartou Hercules (přesněji řečeno na emulátoru takového počítače).

4. Vlastnosti textového procesoru Text602

Ve druhé kapitole zmíněný problém pomalého scrollingu v grafických režimech byl vyřešen velmi šikovným trikem – pokud počítač nestihl překreslit celou obrazovku (například při držení klávesy Page Down nebo klávesy pro ovládání kurzoru), překreslil se pouze horní a spodní okraj, což pro rychlou orientaci v textu dostačovalo. Toto řešení je mimochodem mnohem lepší než zdlouhavé pokusy o přesné překreslení celého textu tak, jak to například dělá Word for Windows nebo OpenOffice.org. Pravděpodobně taktéž kvůli rychlejší práci s textem neuměl textový procesor Text 602 automaticky přeformátovat odstavec během běžných editačních operací, což například znamenalo, že po vložení nějakého textu (zbytek se odsouval mimo tiskovou stranu) bylo nutné odstavec navíc automaticky nebo ručně přeformátovat, včetně volitelného zarovnání textu a/nebo dělení slov. V textu nebylo možné používat nedělitelné mezery, což někdy při přeformátování způsobovalo problémy.

pc84

Obrázek 7: Textový procesor Text602 zobrazený poměrně neznámou kartou MCGA, která v režimu nejvyššího rozlišení 640×480 měla jen jednu bitovou rovinu a tím pádem podporovala pouze současné zobrazení dvou barev.

Jednou z horších vlastností Text 602 byla existence pouze jednoho kurzoru namísto samostatného textového kurzoru a kurzoru myši. Tento jediný kurzor se mohl ovládat jak klávesnicí, tak i myší – v praxi tedy dotyk myši znamenal, že se kurzor přesunul a všechny editační operace se začaly provádět na novém místě (nejvíce se tato vlastnost negativně projevila při „kreslení“ tabulek pomocí grafických znaků). Teprve až od verze 3.1 se začaly používat kurzory dva, jak je tomu i v dalších aplikacích s GUI. Naopak byl dobře vyřešen tiskový systém, který byl modulární a konfigurovatelný, protože pro každý typ tiskárny existoval textový konfigurační soubor se seznamem řídicích kódů tiskárny, což mj. znamenalo možnost snadných úprav těchto souborů pro různé modely tiskáren. V současnosti je samozřejmě tiskový subsystém součástí operačního systému, což však v případě DOSu platilo pouze na zcela základní úrovni nedostatečné pro potřeby textových procesorů.

pc84

Obrázek 8: Nejlepší rozlišení i největší počet barev pro textový editor Text602 nabízela grafická karta VGA – 640×480 pixelů v šestnácti barvách (editor však ve skutečnosti využíval jen podmnožinu barvové palety).

5. Souborový formát Text602 – dobový standard pro přenos textových dokumentů

Rychlé rozšíření textového procesoru Text602 do škol, úřadů i firem mělo za následek mj. i to, že souborový formát (jedná se o soubory s koncovkou .602) používaný touto aplikací začal být podporován i několika dalšími textovými procesory, dokonce včetně některých verzí české verze Wordu pro Windows. Samotný formát textových dokumentů je poměrně jednoduchý, což například usnadňuje převod starších dokumentů do HTML nebo TeXu (samotný konverzní program lze napsat za několik desítek minut). Vlastní text je zapisován přesně v takovém tvaru a kódování, jak byl zapsán uživatelem. Mezi tento text se vkládají řídicí znaky pro změnu typu písma (například znak s ASCII kódem 02 zapíná a vypíná tučné písmo) a taktéž znak nahrazující konec řádku uvnitř odstavce (tento znak je editorem vytvářen při automatickém formátování odstavce). Kromě řídicích znaků se mohou v souboru nacházet i řádky začínající zavináčem, za nímž je zapsána dvojice znaků následovaná mezerou a případnými parametry. Na těchto řádcích jsou uloženy parametry editace, například délka strany (@PL), pozice tabelačních zarážek (@TB), pravý okraj (@RM). Samotný textový editor ignoruje parametry, které nezná, což mj. znamená, že bylo poměrně snadné formát rozšiřovat, což se stalo minimálně jednou s příchodem verze 3.1, která podporovala – i když dosti diskutabilně – styly odstavce.

Obrázek 9: Pracovní plocha textového procesoru ESO.

Následuje ukázka začátku textového dokumentu ve formátu Text602, kde jsou nastaveny všechny důležité parametry, podle kterých se dokument formátuje:

@CT 0
@LM 1
@RM 65
@TB -----T-----T-----T-----T-----T-----T-----T-----T-----T-----T----
@PL 60
@MT 1
@MB 3
@PO 17
@PN 1
@OP
@LH 6
@LH 6

Obrázek 10: Menu textového procesoru ESO je řešeno pomocí klasických pull-down menu, namísto pop-up menu u Text602 (ve verzi 1.0 až 3.0).

Samotný text může být uložen v kódování bratří Kamenických (zpočátku sice neoficiální, o to však populárnější kódová stránka), PC-Latin 2 (CP852) nebo KOI8-CS, i když se údaj o použitém kódování kupodivu v parametrech dokumentu nikde neobjevuje.

Obrázek 11: On-line nápověda k textovému procesoru ESO.

6. Textový procesor ESO aneb nepříliš vydařená konkurence Text602

Dalším tuzemským textovým procesorem využívajícím grafické režimy počítačů IBM PC byla aplikace ESO, později též nabízená pod názvem ESO Plus. Jednalo se o textový procesor, který v sobě sdružoval některé vlastnosti svého největšího rivala Text602 a taktéž zahraničního textového procesoru ChiWriter, jenž se mj. pyšnil na svou dobu velmi dobrou podporou tvorby matematických a chemických vzorců. Sice se nejednalo o žádného vážného konkurenta TeXu, ale alespoň základní podpora pro zápis vzorců s indexy, mocninami, zlomky a odmocninami, se v době teprve se rozvíjející počítačové typografie hodila. Textový procesor ESO taktéž, podobně jako ChiWriter, podporoval vytváření vzorců, což například Text602 neumožňoval, resp. bylo nutné složitější vzorce ručně skládat z běžných znaků, horních a dolních indexů, popř. znaků umístěných na samostatné klávesnici symbolů.

Obrázek 12: Ukázka pseudografických znaků v dokumentu připravovaným v textovém procesoru ESO.

Navíc ESO (Plus) oproti procesoru Text602 podporoval i práci s více fonty současně. Všechny fonty byly bitmapové a každý font byl uložen v samostatném souboru, který se při startu editoru načítal do operační paměti, což zejména na starších počítačích, popř. na počítačích vybavených pouze disketovými jednotkami a nikoli pevným diskem, bylo poměrně zdlouhavé. Zatímco Text602 umožňoval souběžnou práci s maximálně dvěma dokumenty, bylo možné v textovém procesoru ESO otevřít až šest dokumentů současně. Každé okno s dokumentem mělo po pravé straně umístěn sloupec, v němž se pomocí malých ikon zobrazovaly základní informace o stavu textu na daném textovém řádku, podobně jako tomu bylo u ChiWriteru.

Obrázek 13: Souběžná editace dvou dokumentů.

Práce s textem, tj. jeho editace, se podobala způsobu editace v Text602 – ani jeden z těchto textových procesorů nepoužíval ideu „nekonečného řádku“, který by se v průběhu editace automaticky formátoval do odstavce. Namísto toho se při přidání textu na řádek zbytek textu prostě odsunul doprava, při vymazání textu naopak přisunul zprava a odstavec bylo nutné buď ručně nebo poloautomaticky přeformátovat. V tomto ohledu se oba zmíněné tuzemské textové procesory dosti zásadním způsobem odlišovaly jak od Wordu, tak i od WordStaru. Procesor ESO nebyl po komerční stránce tak úspěšný jako Text602, i když byl mezi těmito editory poměrně značný cenový rozdíl: ESO za cca 2900 Kčs, Text602 za 3900 Kčs.

Obrázek 14: Změna barev pozadí a popředí je praktický shodná se způsobem změny barev v textovém procesoru Text602.

7. Textový procesor MAT

Třetím a dnes již posledním textovým procesorem s vlastním grafickým uživatelským rozhraním, o němž se v tomto článku zmíníme, je textový procesor MAT. Jedná se o aplikaci, která je, podobně jako výše zmíněné textové procesory Text602 a ESO (Plus), založena na používání neproporcionálních fontů, což je jednodušší jak z implementačního hlediska (snadné přeformátování dokumentu i jeho zobrazení), tak i z důvodu rychlejšího tisku, především na jehličkových tiskárnách.

Obrázek 15: Grafické uživatelské rozhraní MATu.

Zatímco oba konkurenční textové procesory sice dokázaly pracovat s více textovými dokumenty současně (dvěma u Text602 a šesti u ESA), ale obrazovku bylo možné rozdělit pouze horizontálně, podporoval textový procesor MAT plnohodnotné GUI s možností umístění každého dokumentu do samostatného okna, jejichž pozice a velikost byla prakticky libovolná. Taktéž mnohdy nepříliš přehledná víceúrovňová menu Text602 a ESA byla u MATu nahrazena několika dialogy. I díky tomu se jedná, společně s Klasikem a InWordem o jeden z mála tuzemských textových procesorů, kde mělo použití myši skutečný smysl.

Obrázek 16: Výběr grafického režimu, v němž MAT pracuje.

Textový procesor MAT kromě běžné práce s dokumentem (editace textu, vyhledávání textu, přenos či kopie bloků) taktéž obsahoval možnost automaticky generovat obsah a rejstřík, popř. přečíslovat kapitoly, takže bylo možné relativně jednoduše pracovat i s rozsáhlejšími strukturovanými dokumenty (dokonce byla možná kontrola výskytu vdov a sirotků). Text v odstavci sice nebyl chápán jako „nekonečný řádek“, ovšem na rychlejších počítačích bylo možné nastavit automatické přeformátování celého odstavce při změně pozice kurzoru (rychlejším počítačem je zde myšleno alespoň PC AT 16 MHz s 1MB RAM :-).

Obrázek 17: Editace dokumentu. Ve spodní části pracovní plochy jsou zobrazeny znaky umístěné v základní a rozšířené znakové sadě.

Podobně jako u mnoha dalších textových procesorů byla i v MATu podporovaná takzvaná funkce mail merge, tj. postupné doplňování dopředu vyznačených polí v dokumentu údaji získanými z databázového nebo z dalšího textového souboru. Tímto způsobem bylo možné vyřešit tisk obálek, vysvědčení, jednodušších faktur atd.

Obrázek 18: Odlišné barevné schéma, import předchozí části tohoto seriálu do MATu a zobrazení statistických informací o dokumentu.

8. Editace vzorců v MATu

Kromě oken s editovanými dokumenty se na pozadí pracovní plochy MATu nacházela i dvojice speciálních oken, která obsahovala základní a rozšířenou znakovou sadu (resp. uživatelský font). Šlo o obdobu mapy znaků známé ze současných operačních systémů, jejíž výhodou bylo snadné vložení libovolného znaku do editovaného dokumentu pomocí myši, aniž by bylo nutné přepínat rozložení znaků na klávesnici a hledat, kde se daný symbol vlastně na klávesnici nachází.

Obrázek 19: Práce se vzorci. Nahoře je zobrazen náhled vzorce, dole text zapsaný uživatelem.

S rozšířenou znakovou sadou částečně souvisí i podpora pro tvorbu vzorců, které byly v MATu skládány právě z neproporcio­nálních znaků. Pro tvorbu vzorců byl vyhrazen zvláštní formulář, do jehož spodní části se zapsala textová reprezentace vzorce ve formátu, který připomínal jednodušší TeX a následně se v horní části formuláře vzorec vygeneroval. Vzorec se následně vložil do textu jako běžný blok, s nímž bylo možné zacházet stejným způsobem, jako s ostatními bloky.

root_podpora

Obrázek 20: Složené zlomky nedělají MATu větší problém.

Obrázek 21: Stejně jako „vysoké“ závorky.

9. Odkazy na Internetu

  1. We look at the word-processing software's history
    http://www.pcad­visor.co.uk/new­s/index.cfm?new­sid=106226
  2. A Brief History of Word Processing
    http://www.stan­ford.edu/~bkun­de/fb-press/articles/wdprhis­t.html
  3. Hřích mládí: Textový editor PragoText
    http://www.svo­bodat.com/pra­gotext/index.html
  4. Motorola 6845 (Wikipedia)
    http://en.wiki­pedia.org/wiki/Mo­torola_6845
  5. The 6845 Cathode Ray Tube Controller (CRTC)
    http://www.ti­nyvga.com/6845
  6. IBM Monochrome Display Adapter (Wikipedia)
    http://en.wiki­pedia.org/wiki/Mo­nochrome_Displa­y_Adapter
  7. Color Graphics Adapter (Wikipedia)
    http://en.wiki­pedia.org/wiki/Co­lor_Graphics_A­dapter
  8. Wikipedia CZ: Sběrnice: (Wikipedia)
    http://cs.wiki­pedia.org/wiki/Sb%C4%9Br­nice
  9. Wikipedia EN: Industry Standard Architecture: (Wikipedia)
    http://en.wiki­pedia.org/wiki/In­dustry_Standar­d_Architecture
  10. A Brief History of Computing
    http://trilli­an.randomstuf­f.org.uk/~step­hen/history/8086­.html
  11. Intel 8086 (Wikipedia)
    http://en.wiki­pedia.org/wiki/In­tel_8086
  12. Graphical user interface (Wikipedia)
    http://en.wiki­pedia.org/wiki/Grap­hical_user_in­terface
  13. The Real History of the GUI
    http://articles­.sitepoint.com/ar­ticle/real-history-gui
  14. History of the graphical user interface (Wikipedia)
    http://en.wiki­pedia.org/wiki/His­tory_of_the_gr­aphical_user_in­terface

Byl pro vás článek přínosný?