(R.Vukina, cca. 1992/93)

Hrvatski znakovi i standardi

Standardi su osnova tehnološke civilizacije. Bez standardizacije ne bi bilo moguæe telefonom razgovarati s Japanom, morali bi baciti automobil kojem je ispao neki važniji vijak, morali bismo iæi postolaru pet puta na probu ... . Osobna raèunala su postala vrlo popularna upravo zbog èinjenice da se programi s jednog mogu bez ikakvih problema koristiti na bilo kojem PC-u. To je moguæe zbog toga što rade na isti naèin, po de-facto standardu koji znaèi da se koristi MS-DOS operacijski sustav, da se koriste Intelovi procesori, da se koriste diskete i diskovi koji rade na isti naèin.

Na žalost, u Hrvatskoj smo na najboljem putu da upadnemo u najveæi moguæi kaos zbog nepoštivanja jednog od osnovnih standarda u informatici - standarda za naše posebne znakove.

Posljedica toga je nemoguænost prijenosa podataka s jednog kompjutera na drugi. Na jednom kompjuteru æete napisati Šiško Menèetiæ, a na drugom æe ispasti: nešto-I-nešto-KO MEN-nešto-ETI-nešto, ovisno o razlièitim primijenjenim kodovima.

Do pred godinu-dvije, situacija je bila u potpunom redu, koristio se je stari 7-bitni kod po JUS-u, kod kojega doduše niste mogli koristiti uglate i vitièaste zagrade, èuvenog 'viseæeg majmuna' (t.zv. 'komercijalno a' - malo slovo a s repom oko njega Ž) i još neke znakove, no bili ste sigurni da æe na svim kompjuterima i štampaèima biti odštampano ono što ste napisali.

Zatim su se ljudi sjetili da veæina kompjutera radi s bajtovima od 8 bita, koji dozvoljavaju dovoljno kombinacija da se može istovremeno imati i uglata zagrada i slovo Š. U Americi su te dodatne znakove poèeli koristiti za razne posebne znakove, poput onoga za Copyright (sitno slovo C u krugu), razne crte za crtanje okvira i sl.

U Europi se je pokazala potreba za uvoðenje meðunarodnog standarda, kako bi se ista kodna tabela mogla koristiti u raznim zemljama i tako omoguæilo slanje dokumenata elektronièkom poštom, bez problema s razlièitim posebnim nacionalnim znakovima. Donesen je ISO (International Standards Organisation) standard pod oznakom 8859-1, koji je pokrio sve posebne znakove koji se koriste u zapadnoj Europi.

Zatim se je netko sjetio da osim Engleza i zapadnih europljana postoje i slavenski narodi, pa je ISO 1987 godine donesao standard pod brojem 8859-2, u kojem je definirano koji slavenski znakovi odgovaraju kojim kodovima. Standard pokriva potrebe svih slavenskih naroda koji pišu latinicom, ali i nekih drugih, n.pr. Albanaca. Veæ iduæe godine, 1987, tada još jugoslavenski Zavod za standardizaciju nostrificira ISO standard i objavljuje ga pod brojem JUS I.BI.013, kao standard s primjenom, s time da stupa na snagu od 29.03.1988. Donošenjem tog standarda nije ukinut stariji 7-bitni standard iz 1982 godine, JUS I.BI.002, koji je bio standard s obaveznom primjenom. (Obavezna primjena je znaèila da svi koji rade sa 7-bitnim kodom moraju poštivati taj standard. 'S primjenom' znaèi da se 8-bitni standard smije koristiti za 8-bitne kodove).

Za praktiènu primjenu standarda treba proæi dosta vremena, a opæenita situacija je veæ 1988 bila takva da je malo kome bilo stalo do standarda za 'Jugo-znake na raèunarima'. Posljedica je bila ta da su svi, pa èak i korisnici PC-ova koristili 7-bitni kod.

U meðuvremenu, amerièka tvrtka Microsoft je izdala novu verziju svog operacijskog sustava DOS, verziju 5.0, u kojoj se po prvi puta pojavila nova zemlja. Kod postavljanja operacijskog sustava, mogli ste napisati COUNTRY=YU i ubrzo zatim ste dobili na zaslonu tekstove sa svim ÈŽŠ-ovima koje ste mogli poželjeti. Kad sam to vidio, moja prva reakcija je bila: Konaèno! Druga reakcija je bila: Krasno, country = Yu, a Juge više nema. Treæa reakcija je bila: Pa što onda, bar smo riješili jedan veliki problem. Èetvrta reakcija je došla dosta kasnije, kada sam ustanovio da t.zv. Latin II kodni sustav koji nam je ponudio Microsoft ne odgovara ni standardima meðunarodnih tijela, (ISO), niti standardima pokojne Juge (JUS). Èini mi se da znam tko ih je naveo na taj put, ali ne želim spominjati nikoga velikog i plavog ili malog i zelenog, bez èvrstih dokaza.

Nevolja je nastupila kada su prvo hackeri, a zatim i novopeèeni trgovci informatièke opreme otkrili Microsoftovog trojanskog konja i proglasili da oprema koju oni prodaju radi s hrvatskim znakovima. Pri tome, recimo, nisu ni bili svjesni da postoje tamo neki standardi. (Izrada hrvatskih znakova po standardu košta od nekoliko stotina do nekoliko tisuæa njemaèkih maraka i može potrajati i nekoliko mjeseci, ovisno o složenosti i pripremljenosti hardware ili software proizvoda za korištenje meðunarodnih kodnih stranica.) U tome su im pomogle i pretežno amerièke software kuæe, koje su uoèile veliko potencijalno tržište u tamo nekim zemljama i koje se nisu ni sjetile da bi mogle postojati neke meðunarodne organizacije koje se brinu za standarde. Posljedice æe ionako snositi kupci osobnih raèunala, naroèito oni pojedinaèni (u velikim radnim organizacijama obièno postoje informatièari profesionalci koji su svjesni i problema i posljedica).

Europski proizvoðaèi hardware-a i software-a su itekako svjesni potrebe meðunarodnih standarda, pa sve svoje proizvode za meðunarodno tržište rade prema meðunarodno priznatim standardima, koje æe morati poèeti poštivati i amerièki proizvoðaèi koji se neæe htjeti odreæi tržišta kao što je ujedinjena zapadna Europa. Proizvod prilagoðen za zapadno europsko tržište je praktièki prilagoðen i za istoèno europsko, pardon slavensko-latinièno tržište - razlike su samo u obliku znakova koji se vide na zaslonu i papiru, a to je najmanji dio posla.

Sa zakonske strane, situacija je èista: Vlada Republike Hrvatske je donijela zakon kojim se nostrificiraju svi standardi pokojne Jugoslavije, doneseni prije proglašenja samostalnosti (Narodne Novine, br 53 od 1991), što znaèi da JUS I.BI.013 i danas važi.

Za standarde u Republici Hrvatskoj se brine Državni zavod za normizaciju i mjeriteljstvo u Zagrebu, no komisiju za norme (standarde) u informatici tek treba osnovati. Dosadašnja praksa je bila strogo pridržavanje ISO normi, što treba oèekivati i u buduænosti.

U meðuvremenu, pazite što radite.

Da ne bi ostali samo na prièi, u prilogu je i usporedna tablica s raznim kodovima za ÈŽŠ-ove na koje se danas može naiæi. Osim ISO, JUS i inkriminiranog Latin II koda, za ilustraciju konfuznog stanja, naveden je i sluèajno odabran (našao se pri ruci) primjer koda koji je ugraðen u jedan inaèe vrlo dobar matrièni pisaè (da budemo do kraja fair, uz taj pisaè dolazi i t.zv. Serbo-Croat I kod, koji je potpuno u skladu s 7-bitnim JUS-om).

 

Tablica - usporedba raznih kodova za hrvatske znakove

Izvor:

JUS

ISO

JUS

Microsoft

OKI

Oznaka:

I.B1.002

8859-2

I.B1.013

Latin II

Serbo - Croatic II

Godina:

1982

1987

1988

 

 

Bitova:

7-bitni

8-bitni

8-bitni

8-bitni

8-bitni

Poštuje

ISO: 646/1973

 

ISO: 8859-2/87

Ne

Ne

Hrvatski znak

 

dec.

hex.

dec.

hex.

dec.

hex.

dec.

hex.

dec.

hex.

È

94

5E

200

C8

200

C8

172

AC

132

83

Æ

93

5D

198

C6

198

C6

143

8F

141

8C

D

92

5C

208

D0

208

D0

209

D1

147

93

Š

91

5B

169

A9

169

A9

230

E6

151

96

Ž

64

40

174

AE

174

AE

166

A6

138

89

è

126

7E

232

E8

232

E8

159

9F

160

A0

æ

125

7D

230

E6

230

E6

134

86

161

A1

ð

124

7C

240

F0

240

F0

208

D0

162

A2

š

123

7B

185

B9

185

B9

231

E7

163

A3

ž

96

60

190

BE

190

BE

167

A7

140

8B

 

 

Dodatak za ne-hackere: Hexadecimalni, decimalni, binarni kodovi

U kompjuteru se svi znakovi èuvaju kao kombinacije nula i jedinica -to je t.zv. binarni oblik. Hexadecimalni, ili kraæe Hex kod je neka vrsta 'stenografije' za prikazivanje binarnog koda - umjesto niza od 8 nulica/jedinica, piše se kombinacija od 2 znaka - brojke od 0 do 9 i slova A do F. Uporni i vješti mogu relativno brzo pretvoriti hex kod u binarni i obratno.

Decimalni kod je drugi naèin oznaèavanja znakova. Sustav je krenuo od tabele znakova koju je sastavio amerièki nacionalni institut za standarde - ANSI (American National Standards Institute). Prvi znak u toj tabeli (razmak, space, prazno mjesto) je dobio broj 0, drugi 1 i.t.d. Veliko slovo A u toj tabeli n.pr. ima broj 64, B 65 i.t.d. Redoslijed u tabeli je manje-više: razni kontrolni znakovi za upravljanje kompjuterima (n.pr. za prijelaz u novi red), zatim znakovi interpunkcije, pa brojevi, pa velika slova, pa mala slova. Time je iskorišteno prvih 128 znakova u tabeli, odn. t.zv. donji dio tabele.

Ako se za opis jednog znaka koristi 7 bitova (7-bitni kod), može se koristiti 128 raznih znakova, t.j. to je maksimalni broj kombinacija koji se može postiæi sa 7 bitova. Dakle, uz 7-bitni kod, može se koristiti samo donji dio tabele ANSI znakova.

Ako se za opis jednog znaka koristi 8 bitova (8-bitni kod), može se dobiti ukupno 256 razlièitih znakova. Znakovi od 128 na više, zovu se gornji dio tabele.

Donji dio tabele je za sve zemlje isti, s izuzetkom za 10 pozicija u koje su smješteni znakovi poput uglatih i vitièastih zagrada i.t.d., a na koje pojedine zemlje smiju staviti svoje posebne znakove. To je iskorišteno za naših 5 velikih i 5 malih slova u JUS standardu za 7-bitni kod.

U gornji dio tabele (t.j. znakove 128-255) se stavljaju razne stvari. ANSI je propisao da tamo idu znaci poput znaka za Copyright i.t.d. t.zv. IBM PC Extended Character Set na ta mjesta meæe razne elemente od kojih se mogu složiti okviri za razne maske i si. Postoje i setovi s raznim autiæima, zvjezdicama, prstima koji pokazuju i si. ISO taj dio tabele koristi za nacionalne znakove po dva standarda -8859-1 za zapadno europske, a 8859-2 za slavenske/istoèno europske nacionalne znakove.

Te razlièite varijante gornjeg dijela tabele se zovu codepages, t.j. kodne stranice. Veæina današnjeg kompjuterskog software-a je organizirana tako da se u gornji dio tabele može uèitavati kodna stranica po volji, pa èak i u radu mijenjati kodne stranice. Pri tome važi pravilo da se uèitava kompletna kodna stranica, t.j. nije dozvoljeno uzeti par simbola iz jedne i nekoliko iz druge kodne stranice.

Kako se na PC-u dobivaju znakovi

Znak se dobiva tako da se pritiskom na tipku na tastaturi dobije jedan od heksadecimalnih kodova (šifri) iz tabele tipka/kod.

Taj kod se zatim šalje na zaslon monitora, koji onda prikaže oblik znaka koji odgovara tom kodu. Na diskove se spremaju samo kodovi, koji se u odgovarajuæi oblik pretvaraju tek kada idu na zaslon ili pisaè.

Program koji odreðuje koji kod æe se dobiti pritiskom na koju tipku (ili kombinaciju tipki - velika i mala slova, 'ALT' + slovo i.t.d.) zove se KEYBOARD DRIVER (keyboard=tipkovnica).

Program koji odreðuje oblik znaka koji æe se pojaviti na ekranu zove se SCREEN DRIVER (screen = ekran). Screen driveri sadrže u sebi više tabela s oblicima znakova, jer razne zemlje koriste razne setove znakova. Grupa znakova za pojedinu zemlju (ili grupu zemalja sa sliènim znakovima) se sprema u t.zv. CODEPAGE (kodna stranica). N.pr. codepage 437 je amerièko-engleski skup znakova, 850 je za skandinavske zemlje, a 852 je za slavenske narode koji pišu latinicom, za (nestandardni) LATIN II kod. Kad na zaslonu želite odreðeni skup znakova, kompjuteru jednostavno kažete da koristi taj i taj codepage. To se može mijenjati i dinamièki u toku rada. U svakom codepageu ima ne jedan, nego više setova znakova po istom standardu - za nekoliko velièina slova.

Screen_driveri_

EGA.CPI := standardni screen driver, od MS-DOS 5.0 na dalje ima i hrv. znakove, ali u gornjem djelu kodne tabele, po t.zv. LATIN 2 kodu (ISO 8859-2, iz 1987 godine). Hrvatski znakovi se nalaze na codepage-u 852

Keyboard_driveri_

Raspored tipki na tipkovnici se dobiva na dva naèina:- pomoæu komande KEYB xx , ili pozivanjem drivera KEYBxx.EXE. Pozivanje drivera je stari, a komanda KEYB xx je novi naèin.

Komanda KEYB xx poziva raspored tipki za naznaèenu zemlju. Ako se umjesto xx napiše US, dobiva se amerièka, UK britanska, GE njemaèka i.t.d. tipkovnica.

Minimalni zahtjev za standardni raspored slova na hrvatskim tipkovnicama je:

1234567890

QWERTYUIOPŠÐ   ili   QWERTZUIOPŠÐ

ASDFGHJKLÈÆŽ

ZXCVBNM   ili   YXCVBNM