Prečo niekedy niektoré symboly fungujú a prečo iné nie. Prečo máte pocit, že sa niektoré opakujú a vyskytujú pod inými číslami donekonečna? A kde je do pekla ten snehuliak? Za všetkým je jedna malá retročriepka.

Ak na klávesnici držíte stlačenú klávesu ALT a zároveň napíšete číslo 15 na numerickej časti, po pustení ALT-u si vložíte symbol slniečka ☼. Predchádzajúce číslo 14 vám vloží notu ♫.

Tento systém, známy ako ALT kódy, siaha až na počiatok 80. rokov minulého storočia, kedy sa na trhu objavili prvé počítače IBM PC.

Prvé IBM PC s 5 MHz procesorom Intel 8088 a 16 kB operačnej pamäte /Foto: retroviator/

Operačné systémy tej doby (MS-DOS) pracovali na textovej báze, pričom text samotný, pomlčky či lomky sa často používal aj na rôzne grafické a iné vizuálne prehľadnejšie delenie. Text bol dominantným prvkom na obrazovke, pričom počítače IBM obsahovali podporu zaujímavej funkcie, ktorá umožňovala používateľom napísať aj tie znaky, ktoré nemali prítomné na svojej klávesnici.

Šlo o funkciu samotného BIOS-u, ktorý reagoval na stlačenie klávesy ALT, po ktorej očakával číslo, ktoré si transformoval na hexadecimálnu hodnotu, vyhľadanú v tabuľke znakov. Stačilo stlačiť klávesu ALT a za predpokladu že ste poznali pozíciu chceného symbolu v tabuľke, vyvolali ste ho zadaním jeho číselnej polohy.

Mohli ste tak zadať srdiečko ♥ (ALT 3), pohlavné symboly ♀, ♂, alebo notu ♪ (ALT 11, 12 a 13), ktoré na príkaz BIOS-u vykreslil monochromatický grafický adaptér, ktorý ich mal uložené vo svojej ROM pamäti.

Rovnako bolo týmto spôsobom možné zadať niektoré špeciálne písmená z iných jazykov, ako napríklad ë, ö či ß, avšak keďže 8-bitový priestor tabuľky znakov bol obmedzený (256 hodnôt), a zhruba polovicu zabrali bežné veľké a malé písmená abecedy (A-Z, a-z), čísla (0-9) a interpunkcia (?, ! a pod.), nemohlo sa dostať na všetky.

Systém sa stal každopádne v nasledujúcich rokoch veľmi populárny a rôzne pozície znakov si ľudia vryli do pamäti.

Predajné balenie inštalačných diskiet grafického rozhrania Windows 3.0. Prelomte s ním 640 kB bariéru. /Foto: Microsoft/

Keď Microsoft začal uvádzať na trh grafický systém Windows, začal používať novšiu znakovú tabuľku CP-1252, dnes známu predovšetkým ako Windows-1252. Tá bola síce rovnako veľká (256 symbolov), avšak niektoré symboly vymenila za iné. Zmizli z nej grécke písmená ako γ, π, Σ, σ, avšak pribudol napríklad znak promile ‰, či obchodnej známky ™, ktoré v pôvodnej tabuľke chýbali.

Windows sprvu fungoval len ako grafická nadstavba DOS, ale s nástupom Windows 95 sa celkom osamostatnil a začal plnohodnotne riadiť počítač sám (i keď pre niektoré programy ešte svoju podružnú rolu načas predstieral).

Pôvodné obmedzenia boli dávno preč, avšak spätná kompatibilita bola pre Microsoft esenciálne dôležitá. Aby ľudí neplietol, vyriešil to vynaliezavo a v rámci ALT kódov pôvodný hardvérový systém zanechal softvérovo (označoval ho ako OEM, zatiaľ čo svoju novú tabuľku ako ANSI). Aj keď Windows ako taký všade používal novú tabuľku, pri stlačení ALT vkladal a dodnes vkladá kódy z tej pôvodnej.

Zároveň pritom používateľom umožnil vkladať znaky, ktoré v starej tabuľke neexistovali. Vyriešil to tak, že v okamihu ako začnete ALT kód písať s nulou na začiatku, začnete vyhľadávať znaky v druhej tabuľke.

Stále ste tak mohli vkladať srdiečko  ♥ (ALT 3), aj keď v novej tabuľke už neexistovalo. Rovnako ste ale mohli vložiť znak promile ‰ (ALT 0137), aj keď v starej tabuľke neexistoval a na danej pozícii bol znak ë (ALT 137).

Väčšina špeciálnych znakov, ktoré existujú v oboch tabuľkách, má rozdielnu polohu. Ale tým, že starší systém zostal ako prvý, používateľov ktorí si nejaký znak už pamätali nikdy nepoplietol. Stále tak mohli pri fyzikálnych a iných textoch zadávať napríklad znak mikro μ pomocou ALT 230, aj keď v štandardnej novej Windows tabuľke už bol na pozícii 181 (ALT 0181).

PREČO SLOVÁK AMERIČANOVI ČECHA NESPRAVÍ?

Aj keď nejaké vkladanie slniečka vám môže byť ukradnuté, v európskych luhoch a hájoch je možné ALT systém aj dnes používať na veľmi praktické vkladanie špeciálnych písmen z iných jazykov.

Kým napríklad české ř napíšeme na našej klávesnici len pridaním mäkčeňa nad R, podobne ako si vyrábame ď, tak v prípade nemeckého písmena ö už sme v koncoch. V našej abecede aj na klávesnici je síce ä, ale tie prekliate dve vodorovné bodky na nej nikde nie sú samostatne.

Môžete sa tak naučiť ö vkladať ako ALT 148, zatiaľ čo ë zas ako ALT 137. Veľmi užitočné môže byť aj vkladanie českého písmena ů ako ALT 133, i keď to, možno na veľké prekvapenie mnohých, je na slovenskej klávesnici možné napísať. Pretože krúžok ° je celkom vľavo nad bodkočiarkou pod klávesom ESC a je ho možné zadávať do bufferu rovnako ako mäkčeň a dĺžeň (znak ° sa zobrazí až pri dvojitom stlačení, pretože pri prvom práve čaká na písmeno).

Kompletná tabuľka symbolov, ktoré používal monochromatický zobrazovací adaptér na prvých IBM PC. Všimnite si symboly ktoré nasledujú po konci abecedy. Počítač si z týchto znakov skladal primitívne textové grafické prvky.

Problémom je, že ak máte kamaráta v Amerike, a chcete mu poradiť ako napísať české ů pomocou kombinácie ALT 133, bude sa na vás pozerať ako teľa na nové vráta, pretože jemu sa po stlačení ALT 133 zobrazí písmeno à.

Rovnako sa to stane aj vám, ak si svoju slovenskú klávesnicu ručne prepnete cez ALT-TAB na anglické rozloženie (ak ho máte pridané). Náhle zistíte, že U s krúžkom už nejde napísať.

Dôvodom je, že krajiny v strednej Európe, konkrétne nielen Slovensko, Česko, Poľsko a Maďarsko, ale aj Rumunsko, Slovinsko, Chorvátsko a Srbsko, používajú stredoeurópsku kódovú stránku, označovanú aj ako MS-DOS Latin 2.

Tá je až do čísla ALT 132 rovnaká, ako americká, ale práve od ALT 133 sa začína líšiť, i keď nie vo všetkých prípadoch. Na niektorých pozíciách po zvyšku tabuľky sú písmená zachované (biela), na iných sú posunuté na iné miesto (žltá farba), a na mnohých sú úplne iné, ktoré na americkej tabuľke nenájdete (červená farba).

Podobne je to aj v prípade iných kódových tabuliek.

Napríklad váš kamarát z Nemecka, Talianska či Francúzka vám môže povedať fantastický trik, ľahký na zapamätanie, že ALT 169 vám vloží znak ®, zatiaľ čo pridaním nuly na začiatok (Alt 0169) dostanete  zas ©.

Problémom je, že to funguje len na klávesniciach krajín v západnej Európe aj Škandinávii. Tie používajú kódovú stránku 850, tiež známu ako DOS Latin 1. Čiže aj keď druhá časť užitočnej rady v rámci ANSI vám bude fungovať, tá prvá nie. U nás skrátka musíte použiť 0169 a 0174.

KDE JE DOPEKLA MÔJ SNEHULIAK?

Staré tabuľky s 256 pozíciami sú historickým artefaktom, ktorý prežíva na rôznych miestach. Smiešne bajtové limity z pred takmer polstoročia, ktoré zapríčinili to, že krajiny v rôznych kútoch sveta ich majú odlišné, dnes už pravdaže dávno neexistujú.

Fakt, že by veľká znaková tabuľka s každou abecedou sveta zaberala príliš veľa miesta v cennej 16 kilobajtovej operačnej pamäti už pôsobí značne komicky.

Dnes môžeme operovať so všetkými a vkladať si z jednej tabuľky katanu, kanji, alebo hoc aj nejaké tie egyptské hieroglyfy či dávno mŕtve runy, ako len naše srdce ráči.

Začiatok zástupu 3995 znakov egyptských hieroglyfov v rámci Unicode tabuľky

V rámci Unicode tabuľky je miesta dosť. V súčasnej verzii 16.0 (zo septembra 2024) existuje už 155 063 symbolov, ktoré kompletne pokrývajú všetky súčasné aj známe historické jazyky a abecedy, matematické a iné špeciálne symboly, no a pravdaže najrôznejšie herné, grafické a iné symboly, od výmyslu sveta, ktorých počet s každou novou verziou pribúda.

Na pozícii 9731 nájdete napríklad tohto parádneho snehuliaka:

Ten pravdaže v závislosti od použitého fontu vyzerá vždy inak ☃. Vyššie uvedený je vo fonte Microsoft Gotic, v ktorom sa vloží napríklad vo Worde a iných programoch od Microsoftu.

Na mnohých miestach internetu nájde informácie, že si ho môžete vložiť pomocou ALT kódu 9731, čo vám rada zopakuje aj nejaká tá umelá inteligencia v podobe veľkého jazykového modelu.

Raymond Chen, legendárny vývojár Microsoftu, ktorý sa na systéme Windows podieľa už viac ako 30 rokov nedávno na svojom blogu spomenul nespokojného zákazníka, ktorý sa na technickej podpore posťažoval, že najnovší update systému mu túto funkčnosť vyradil z prevádzky a po zadaní kódu mu vkladá namiesto snehuliaka srdiečko, aj keď predtým to nerobil.

Posťažoval sa pritom na neschopnosť vývojárov a neustále bezcenné zmeny.

Realita celej situácie je pomerne zaujímavá. Ako z textu vyššie už viete, ALT kódy v základe operujú s dvoma prehistorickými tabuľkami, ktoré majú 256 pozícii. Môžete teda vyvolávať znaky z tej prvej pomocou ALT 1 až ALT 256, alebo z tej druhej pomocou ALT 01 až ALT 0256.

Avšak ak program používa pokročilejšiu formu vkladania a operovania so znakmi (v rámci systému Windows najznámejšie v rámci funkcie RichEdit), systém Windows dedukuje, že zadaním vyššieho čísla zrejme chcete už hľadať symboly vo veľkej Unicode tabuľke a nejaká 40 rokov stará historická nadväznosť a kompatibilita váš už nezaujíma.

Typicky napríklad program Word po zadaní ALT kódu 9731 vloží symbol z Unicode tabuľky, kde je práve spomínaný snehuliak.

Programy, ktoré tento pokročilý režim nemajú sa ale takto nezachovajú. Stane sa tak komická vec, ktorú možno poznáte z tých starých ručných herných konzol, ktoré obsahovali 999, alebo dokonca 9999 hier, ale v skutočnosti ich bolo 9 a zvyšok bol Tetris, ktorý začínal na rôznom levele.

Keďže pozícii je 256, pri zadaní vyššej sa skrátka začne počítať od začiatku. Pozícia 257 je tak v realite znovu 1, takže po jeho zadaní dostanete znovu prvý symbol, ktorým je ☺. No a keď zadáte ALT 9731, tak celý kolotoč 256 pozícii rotuje niekoľkokrát dokola a v tomto prípade skončí na pozícii 3, ktorá patrí práve srdiečku ♥.

To je dôvod, prečo pri náhodnom skúšaní ALT kódov v bežnom programe dostanete pocit, že sa niektoré symboly opakujú na rôznych číslach. Pretože to tak naozaj je. Respektíve, symboly sa v tabuľke nikdy neopakujú, ale váš číselník ide stále dokola ako na kolotoči.

Detský kolotoč z roku 1981 vás však k snehuliakovi nikdy nedovezie. Musíte nastúpiť na centrifúgu Unicode.

Ďalšie drobné čriepky z IT histórie hľadajte na našom webe v štvrtok večer a takisto pod rovnomenným kľúčovým slovom.

František Urban

František Urban
Zameriavam sa najmä na prehľadové a analytické články z oblasti najrôznejších technológií a ich vývoja. Nájdete ma takisto pri diagnostike HW a SW problémov.