/chapter
/section
K{ytetyn p{{tteen tyypin ja ominaisuuksien kertominen
k{ytt|j{rjestelm{lle on t{rke{{, koska useat ohjelmat
toimivat vain tietyntyyppisill{ p{{tteill{ (esimerkiksi vaativat
"{lykk{{n" n{ytt|p{{tteen ja paperille kirjoittava p{{te ei kelpaa).
P{{tteiden ohjauskomennoista on olemassa ANSIn ja ISOn yhteinen standardi.
Digitalin valmistama VT100-p{{te on oleellisesti t{m{n p{{testandardin
mukainen, jossa kuitenkin on Digitalin omia laajennuksia. Useimmat
tietokoneet tuntevat ANSI-standardin mukaiset p{{tteet, ja varsin monet
tunnistavat my|s VT100-p{{tteen laajennukset.
/subsection
VAXin VMS-k{ytt|j{rjestelm{ tukee etup{{ss{ Digitalin valmistamia ja n{iden
kanssa yhteensopivia p{{tteit{, kuten VT100, ja uusia VT200 ja VT300
-sarjojen p{{tteit{. J{rjestelm{lle voidaan kuitenkin periaatteessa
"opettaa" melkein mink{ tahansa p{{tteen tarvitsemat ohjauskoodit.
VAX//VMS-k{ytt|j{rjestelm{lle on mahdollista kertoa
yksityiskohtaisesti p{{tteen ominaisuudet komennolla , josta saa tarkemman kuvauksen komennolla .
Mik{li p{{te on Digitalin valmistama tai sen p{{tteen toimintaa
emuloiva, voidaan p{{tteen m{{rittely tehd{ komennolla >. T{m{ komento voi my|s olla alustustiedostossa
(kunhan ko.~komentotiedosto on tehty oikein). Mik{li
k{yt{t joskus sellaisia p{{tteit{, joilta ei voi kysy{ niiden
tyyppi{, ei edell{ annettua komentoa aina kannata sijoittaa
alustustiedostoon , koska p{{te (tai mikron
tietoliikenneohjelma) saattaa menn{ sekaisin.
/subsection
My|s unix-k{ytt|j{rjestelm{t tukevat ainakin jonkinlaiseksi de facto
-standardiksi muodostunutta VT100-p{{tett{ tai ANSIn p{{testandardin
mukaista p{{tett{.
Unix-j{rjestelm{lle voidaan kuitenkin helposti "opettaa" melkein mink{ tahansa
p{{tteen tarvitsemat ohjauskoodit kuvaamalla ne tiedostoon (terminal capabilities). T{h{n tiedostoon on valmiiksi
m{{ritelty usean kymmenen erilaisen p{{tteen ohjaukseen tarvittavat
tiedot. Tutkimalla t{t{ tiedostoa saa my|s
selville kunkin unix-j{rjestelm{n tuntemat p{{tetyypit.
Unix-j{rjestelm{lle kerrotaan kulloinkin k{yt|ss{ olevan p{{tteen
tyyppi ymp{rist|muuttujalla . Ymp{rist|muuttujan
oletusarvo esimerkiksi supertietokoneessa on , jolloin
useat ohjelmat eiv{t osaa k{ytt{{ p{{tteen nuolin{pp{imi{ ja n{ytt|{
oikein. Esimerkiksi, jos p{{te on VT100-sarjan kanssa yhteensopiva
(tai jopa VT200 tai VT300 -sarjaa), kannattaa asettaa p{{tteen
tyypiksi jollakin seuraavista komennoista
setenv TERM = vt100
TERM = vt100
>
T{m{n voi tehd{ alustustiedostossa tai ,
tai p{{tteen tyypin voi kysy{ alustustiedostosta, ja asettaa sen
sitten vastauksen mukaisesti.
P{{tteen ominaisuudet asetetaan yksitt{in
komennolla . Tarkemman kuvauksen komennosta saat
komennolla .
/section
/subsection
Skandinaaviset merkit |{} ja \[] ovat usein tietokoneessa
erikoismerkkej{. Useimmiten niit{ ei voi k{ytt{{ tiedostojen
nimiss{, ohjelmointikielten tunnuksissa eik{ k{ytt{j{tunnuksissa tai
tunnussanoissa. Lis{ksi niiden tulostamisessa sek{ p{{tteen n{ytt||n
ett{ paperille on usein ongelmia.
Esimerkiksi ISOn uuden 8-bitin ASCII-standardin mukaisesti toimivissa
ja my|s VT200-sarjan
p{{tteiden multinational-moodissa saattaa {:n, |:n ja }:n sijaan
tulostua v, d ja n. T{st{ ongelmasta p{{see asettamalla VT200-p{{te 7-bitin
moodiin ja finnish keyboard- sek{ national-asetukset voimaan.
Edelleen useimmat vanhemmat p{{tteet, mukaanlukien
ANSI-standardin mukainen p{{te ja VT100-p{{te (ja VT200//300 p{{tteiden
national-moodi), erityisesti kaikki unix-j{rjestelm{t ja niiden
TCP//IP-liikenn|inti, perustuvat l{hes yksinomaan 7-bitin
ASCII-merkkikoodiin, jolloin skandinaaviset merkit ja aalto- ja
hakasulut ovat kesken{{n vaihtoehtoisia: pienet kirjaimet { ja }
vastaavat aaltosulkuja
ja , isot kirjaimet [ ja ] vastaavat hakasulkuja
ja , ja kirjaimet | ja \ vastaavat pystyviivaa
ja kenoviivaa .
/subsection
Skandinaavisiin merkkeihin liittyv{ perusongelma ovat erilaiset
merkkikoodit. Perusidea kirjainten, numeroiden, v{limerkkien ja
muiden (erikois)merkkien tallentamisessa, k{sittelyss{ ja
siirt{misess{ tietokoneissa on asettaa kutakin merkki{ vastaamaan
periaatteessa mielivaltaisesti valittu (pieni) kokonaisluku eli
koodata merkki. Jotta merkkien tulkinta eri j{rjestelmiss{ s|ilyisi
kuitenkin samana, tulee k{ytetyst{ koodista yhteisesti sopia, eli
koodi tulee standardoida. Useimmiten k{ytetyn koodin kokonaisluvut talletetaan
kukin yhteen tavuun eli k{ytet{{n 8-bittisi{ bin{{rilukuja.
T{ll{ hetkell{ k{yt|ss{ on p{{asiassa kaksi eri perusmerkkikoodia:
8-bittinen EBCDIC (Extended Binary Coded Decimal Interchange Code),
jota k{ytt{v{t mm. IBM:n suuret tietokoneet, ja 7- tai 8-bittinen ASCII
(American Standard Code for Information Interchange), joka on
kansainv{linen standardi, ja jota k{ytt{v{t l{hes kaikki muut
tietokoneet. Oikeastaan ASCII-standardin sijasta pit{isi puhua
ISCII-standardista (International /dots). (Lis{ksi kehitteill{ on
uusi 32-bittinen standardi, jonka on tarkoitus kattaa kaikkien
maailman kielten kirjoitusmuodot).
Emme k{sittele t{ss{ lainkaan EBCDIC-koodia ja sen aiheuttamia ongelmia.
ASCII-koodista on kaksi eri p{{versiota: vanha 7-bitin varsinainen
ASCII (kansainv{linen standardi ISO 646) kansallisine versioineen, ja
uudempi 8-bitin laajennettu ASCII (kansainv{linen standardi ISO 8859
ja siihen liittyv{ aiempi versio ISO 6937), josta valitettavasti on
my|s eri versioita (t{rkein niist{ on suomeakin koskeva ISO 8859-1).
Lis{ksi ASCII-standardiin kuuluu erilaisia tiedonsiirto- ja
laiteohjailuun tarvittavia kontrollimerkkej{ ja escape- ja
kontrollijonoja koskevia standardeja (ISO 2022, 6429, 4873). Er{s
ongelma on jo n{iden "standardien" ja niiden eri versioiden
lukuisuus.
/subsection<7-bitin ASCII>
Vanhassa 7-bitin ASCII-merkist|ss{ on koodattu kaikkiaan $128 = 2^7$
eri merkki{, koodit 0 -- 127. N{ist{ koodit 0 -- 31 ja 127 vastaavat
ns. kontrollimerkkej{, joita on siis 33 kappaletta ja joita
tarvitaan l{hinn{ oheislaitteiden --- kuten kirjoittimien ---
ohjaamisessa ja tietoliikenteess{. Sen lis{ksi koodi 32 vastaa
v{lily|nti{ (blankkoa), ja se itseasiassa lasketaan
kontrollimerkiksi. V{lily|nti{ merkit{{n selvyyden vuoksi joskus
.
Loput 94 merkki{ ovat ns. kirjoittuvat merkit:
pienet ja isot latinalaiset aakkoset, numerot, v{limerkit, sulut, er{{t
matemaattiset merkit ja erikoismerkit:
Kutakin merkki{ vastaavat koodiluvut on oleellisesti arvottu, ts. ne ovat
periaatteessa sopimuksenvaraisia, mutta kyll{kin ASCII-standardin
kiinnitt{mi{.
Ongelmana suomen (ja monen muun) kielen kannalta t{ss{ on se, ett{
diakriittisi{ merkkej{ ja aksentteja k{ytt{v{t kirjaimet eiv{t
mahtuneet t{h{n latinalaiseen merkkijoukkoon. Ratkaisuksi (tosin
paljon ongelmia aiheuttaneeksi) keksittiin syrj{ytt{{ osa
"harvinaisia" merkkej{ kansallisten kirjainten kohdalta. Lis{ksi
m{{riteltiin ns. kansainv{linen referenssiversio (IRV) --- joka on
oleellisesti sama kuin amerikkalainen 7-bitin kansallinen versio eli
todellinen ASCII.
Suomalainen (ja ruotsalainen) versio 7-bitin ASCII-standardista
(FINSCII? SVENSCII? SCANDSCII?) syrj{ytt{{ aalto- ja hakasulut,
kenoviivan ja pystyviivan mm. pascal- ja C-ohjelmoijien harmiksi:
T{m{ selitt{nee, miksi vanhemmissa (= 7-bitin) p{{tteiss{ ja
kirjoittimissa skandinaaviset kirjaimet korvautuivat aalto- ja
hakasuluilla. P{{tteen ruudulla ei t{ll|in voi yht{aikaa n{hd{
skandinaavisia merkkej{ ja aalto- ja hakasulkuja, koska niill{ oli
itseasiassa samat koodiarvot, eik{ niit{ siten voi erottaa toisistaan.
Useimmat p{{tteet ja kirjoittimet voi kyll{ muuttaa kahteen
erilaiseen "moodiin", joista toisessa p{{te n{ytt{{ tai kirjoittaa
skandinaaviset merkit ja toisessa kaikenkarvaiset sulut, mutta koska
koodiluvut ovat p{{llekk{isi{, ei is{nt{kone voi helposti kertoa,
kumpaa merkkivaihtoehtoa koodiluvut kulloinkin tarkoittavat.
Lis{ksi ruotsalaisessa standardissa dollarimerkin () sijalla
on usein ns. yleinen valuuttamerkki eli lozenge, joka n{ytt{{
"auringolta" tai "miinalta".
Useimmiten 7-bitin merkitkin talletetaan ja l{het{{n 8-bitin
tavuissa, joilloin tulee viel{ "mielenkiintoinen" lis{ongelma: mit{
tehd{{n ylim{{r{iselle, ylimm{lle kahdeksannelle bitille? Usein se
pakotetaan nollaksi, mutta erityisesti tietoliikenteess{ se usein
edustaa pariteettia, eli on ykk|nen tai nolla sen mukaan, onko
7-bitin tavun osassa muutoin parillinen tai pariton m{{r{ ykk|si{.
P{{tteelle voi joskus tulostua outoja merkkej{, jos
p{{te ei ole tietoliikennelinjan kanssa samaa mielt{ k{ytetyst{
pariteetista.
/subsection<8-bitin multinational ASCII>
Uudemmaksi ratkaisuksi standardoitiin 8-bitin ASCII, jossa (versiossa
ISO 8859-1) ei en{{ ole kansallisia versioita, mutta sen sijaan
kaikkiaan $256 = 2^8$ eri merkki{. N{ist{ 128 alinta (= pienimm{n
koodin omaavat) merkki{ ovat samat kuin aiemman 7-bitin ASCIIn
kansainv{lisen referenssiversion merkit. Loput merkit ovat
koodiarvoiltaan 128 -- 255, eli poikkeavat 7-bitin ASCII-merkeist{
siten, ett{ merkkej{ 8-bittiseen tavuun talletettaessa ylin eli
kahdeksas bitti on 1, kun vanhoilla ASCII-merkeill{ (tarpeeton) ylin
bitti on pakotettu tavallisesti nollaksi.
Laajennetussa 8-bitin ASCII-koodistossa vanhoja kontrollikoodeja 0 --
31 vastaavat "8-bittiset" koodit 128 -- 159 ovat uusia
kontrollikoodeja (muutoin tulisi ongelmia tietoliikennelinjoissa,
jotka "sy|v{t" ylimm{n bitin). V{lily|nti{ vastaava laajennettu
koodi 160 ($<> = 32 + 128$) ja kontrollimerkki{ 127 (DEL) vastaava
koodi 255 ovat joko m{{rittelem{tt{ (= tyhji{) tai er{it{
kontrollimerkkeihin rinnastettavia merkkej{ (pehme{ eli poistuva
tavuviiva ja yhteenliitt{v{ v{lily|nti, non-breakable space). Loput
94 uutta merkki{ ovat kirjoittuvia, ja sis{lt{v{t useimmat
eurooppalaisten kielien tarvitsemat diakriittiset merkit ja
aksentilliset merkit (/'a, /"a, /aa, /^a, /~a,/O, /dots). Lis{ksi
mukana on koko joukko erikoismerkkej{, mm. symbolit luvuille 1//2,
1//4 ja 3//4, copyright sign jne.
Digitalin VT200 ja VT300 -sarjan p{{tteiden ns. multinational
merkist| on oleellisesti 8-bitin kansanv{lisen standardin mukainen. Se on
kuitenkin otettu k{ytt||n ilmeisesti jo ennen standardin hyv{ksymist{,
joten siihen j{i joitain tyhji{ paikkoja, ja parin merkin paikat ovat
v{{r{t. Onneksi t{m{ ei juurikaan kosketa suomen kielt{, sill{
skandinaaviset kirjaimet on sijoitettu standardin mukaisesti.
Skandinaaviset merkit uudessa 8-bitin standardissa:
T{m{ taulukko selitt{nee sen, miksi 8-bitin suomalainen teksti
tarkasteltuna p{{tteelt{, joka ymm{rt{{ vain 7-bitin merkkej{ ja
siksi riisuu ylimm{n bitin nollaksi, n{ytt{{ kovin d- ja
v-voittoiselta.
/subsection
Jotta t{m{ merkkisoppa olisi t{ydellinen, piti sek{ IBM:n ett{ Applen menn{
m{{rittelem{{n PC- ja Macintosh-mikrojaan varten oma 8-bitin laajennus
standardille 7-bitin ASCII-koodille. Ja tietenkin kumpikin ihan ikioman.
IBMn ja Applen merkist|jen alempi puolisko on sama kuin 7- ja 8-bitin
ASCII, mutta niiden ylemm{t puoliskot ovat t{ysin erilaiset.
Kumpikaan eroaa 8-bitin ASCIIsta.
% N{m{
% koodit ovat siis alemmalta puoliskoltaan kesken{{n tasan samat ja samat kuin
% 7-bitin ASCII ja 8-Bitin ASCII, mutta ylemm{lt{ puoliskolta erovat sek{ 8-bitin
% multinational ASCII, PC-ASCII ja Mac-ASCII kaikki toisistaan.
Sek{ PC- ett{ MAcintosh-maailmassa asiaa mutkistaa viel{ erilaiset fontti- ja
kooditaulut (font tables, code pages), joissa skandinaaviset ja muut diakriittiset ja
aksentilliset merkit on sijoitettu hieman eri paikkoihin merkist|n ylemp{{n
puoliskoon.
Mikrojen skandinaaviset merkit:
/subsection
Useat (7-bitin) ASCII kontrollikoodit ovat k{yt|ss{ tietoliikenteess{ tai
kirjoitinohjauksissa, miss{ niill{ on enemm{n tai v{hemm{n vakiintunut ja
standardi merkitys. Alla on lueteltu t{rkeimm{t kontrollimerkit, ja niiden
normaalit merkitykset.
Kontrollimerkkej{ merkit{{n usein niit{ vastaavilla isoilla
kirjaimilla (ja joillain erikoismerkeill{, joita ovat ,
, , , ja
) joitten eteen sijoitetaan joko "hattu", esimerkiksi ASCII
kontrollimerkki tai lyhyesti on
, tai englannin kielen sanasta aikaansaatu
lyhenne, tyypillisesti , , tai .
T{ss{ esityksess{ kontrollimerkit kirjoitetaan muodossa /boxed.
N{m{ vastinkirjaimet saadaan seuraavasti: kontrollimerkki{ esitet{{n
sill{ (isolla) kirjaimella tai erikoismerkill{, jonka koodi saadaan
kyseisen kontrollimerkin koodista lis{{m{ll{ siihen 64 ($ <> = 2^6$).
Lis{ksi l{hes kaikki ASCII-p{{tteet on suunniteltu siten, ett{
is{nt{koneelle voi l{hett{{ kontrollimerkin /boxed painamalla
alas erityinen kontrollin{pp{in ja painamalla samanaikaisesti
X-n{pp{int{ (oikeastaan x-n{pp{int{). Joillakin t{rkeimmill{
kontrollimerkeill{ on p{{tteiss{ omat n{pp{imet: /boxed,
/boxed, /boxed ja /boxed.
Huomaa, ett{ er{ille niist{ loppup{{n kontrollimerkeist{, joita ei vastaa
kirjain vaan erikoismerkki, t{m{ erikoismerkki on sellainen, ett{
sit{ vastaa 7-bitin kansallisessa ASCII-merkist|ss{ skandinaavinen kirjain!
Esimerkiksi joskus
= /boxed
/boxed = /boxed
/boxed = /boxed
/boxed = /boxed
>
Kontrollimerkeill{ on my|s kaksi- tai kolmikirjaiminen virallinen
lyhenne, joka on johdettu merkin standardissa m{{ritellyst{ nimest{.
Esimerkiksi lyhennet{{n tai .
Huomaa, ett{ p{{tety|skentelyss{ yhdell{ kontrollimerkill{ voi olla
kaksi aivan erilaista merkityst{ siit{ riippuen, vastaanottaako vai
l{hett{{k| p{{te kyseisen merkin!
T{rkeimm{t ASCII-ohjausmerkit p{{tety|skentelyss{ (tai kirjoittimen
ohjaamisessa)
%(komentotilassa) Digitalin tukemilla VT52-, VT100- ja VT200-sarjan
%ja n{iden kanssa yhteensopivilla p{{tteill{
ovat seuraavat:
/def/oneboxed#1/hfill>>>>
/def/twoboxed#1#2/hfill>
/hbox to 23truemm/hfill>>>>
/def/threeboxed#1#2#3/hfill>
/hbox to 23truemm/hfill>
/hbox to 23truemm/hfill>>>>
ASCII-kontrollimerkki , CR, jonka koodi on 13.
Normaalisti kun p{{te tai kirjoitin vastaanottaa t{m{n
kontrollimerkin, se aiheuttaa kohdistimen palauttamisen rivin alkuun.
Se aiheuttaa jossain p{{tteiss{ ja kirjoittimissa my|s rivinsiirron eli
merkin normaalitoiminnan (ja mahdollisen ruudun
vierityksen (scroll)). T{m{ on useimmiten p{{tteen tai kirjoittimen
toiminnan asetettavissa oleva piirre. K{ytt{j{ l{hett{{ t{m{n merkin
is{nt{koneen k{ytt|j{rjestelm{lle merkiksi siit{, ett{ kirjoituspuskuriin
kirjoitettu komentorivin on valmis, ja is{nt{kone voi alkaa suorittaa
sit{.
/threeboxed
ASCII-kontrollimerkki , LF, jonka koodi on 10.
Normaalisti kun p{{te tai kirjoitin vastaanottaa t{m{n
kontrollimerkin, se aiheuttaa rivinsiirron (ja mahdollisen ruudun
vierityksen (scroll)), jolloin kohdistin j{{ tavallisesti
vaakasuunnassa samaan kohtaan. Se aiheuttaa jossain p{{tteiss{ ja
kirjoittimissa my|s kohdistimen palauttamisen rivin alkuun (eli -merkin normaalitoiminnan). T{m{ on useimmiten
p{{tteen tai kirjoittimen toiminnan asetettavissa oleva piirre.
Unix-j{rjestelmiss{ tekstitiedoston rivin lopussa on erottimena ns.
-merkki; t{m{ on normaalisti sama kuin
(mutta joissain unix-toteutuksissa se on ).
MS-DOS ja PC-DOS -k{ytt|j{rjestelmiss{ saman asian ajaa merkkipari
ja .
VAX//VMS-k{ytt|j{rjestelm{ss{ k{ytt{j{ l{hett{{ -kontrollimerkin is{nt{koneelle osoittaakseen, ett{ haluaa
poistaa komentorivilt{ yhden sanan (kohdistimesta vasemmalle).
/threeboxed
ASCII-kontrollimerkki , FF, jonka koodi on 12. Kun
kirjoitin vastaanottaa t{m{n kontrollimerkin, se aiheuttaa
arkinvaihdon. P{{tteiden toiminta vaihtelee, useimmiten joko tapahtuu
vain muutama rivinsiirto tai sitten n{ytt| puhdistetaan. Jos
k{ytt{j{ l{hett{{ t{m{n merkin is{nt{koneelle, esimerkiksi
editori-ohjelmalle, t{m{ sijoittaa useimmiten tekstin sekaan yhden
-merkin (joka tulostettaessa sitten aiheuttaa edell{
kerrotun arkin vaihdon).
/threeboxed
ASCII-kontrollimerkki , HT, jonka koodi on
9. Kun p{{te tai kirjoitin vastaanottaa t{m{n kontrollimerkin, se
siirt{{ kohdistimen seuraavan vaakasuuntaisen tabulaattorin kohdalle.
Jos p{{tteess{ ei ole kiinteit{ (tai ohjelmoitavia) tabulaattoreita,
is{nt{kone asettaa tabulaattorit usein joka kahdeksannen merkin
kohdalle. Jos k{ytt{j{ l{hett{{ tabulaattorimerkin is{nt{koneelle,
esimerkiksi editori-ohjelmalle, t{m{ sijoittaa useimmiten tekstin
sekaan yhden tabulaattori-merkin (joka tulostettaessa sitten
aiheuttaa edell{ kerrotun kohdistimen liikkeen). Tabulaattorimerkkien
k{ytt|{ kannattaa v{ltt{{, vaikka yksi tabulaattorimerkki
korvaakin useita v{lily|ntej{ (hy|ty on marginaalinen), koska kaikki
is{nt{koneet, p{{tteet ja kirjoittimet eiv{t osaa k{sitell{ niit{
oikein. Tabulaattori-n{pp{int{ kannattaakin k{ytt{{ yleens{ vain, jos
editori korvaa tabulaattorimerkit suoraan tekstiin tarvittavalla
m{{r{ll{ v{lily|ntej{.
/threeboxed
ASCII-kontrollimerkki , VT, jonka koodi on
11. Kun p{{te tai kirjoitin vastaanottaa t{m{n kontrollimerkin, tapahtuu
yleens{ muutaman rivin siirto, toiminta hieman vaihtelee. Usein
sama kuin .
/twoboxed
ASCII-kontrollimerkit 1 ja 3, DC1 ja DC3, joiden
koodit ovat 17 ja 19. N{it{ merkkej{ k{ytet{{n yleisesti is{nt{koneen
ja p{{tteen tai jonkin oheislaitteen, kuten kirjoittimen v{lisen
tietoliikenteen vuonvalvontaan. Ne tunnetaan my|s nimill{ XON ja
XOFF. Merkill{ /boxed eli XON jatketaan aiemmin merkill{
/boxed eli XOFF pys{ytetty{ tulostusta. VT100- ja
VT220-p{{tteill{ >- ja >-n{pp{inten
toiminnot saadaan aikaan vuorotellen yhdell{ n{pp{imell{ > eli > tai /boxed.
Jos p{{tteess{ tai emulointiohjelmassa on vastaanotettujen merkkien
varastoimiseen suuri puskuri (ja jos p{{te tai ohjelma on huonosti
ohjelmoitu), saattaa kuitenkin kest{{ tovin ennenkuin /boxed-
eli XOFF-merkki vaikuttaa (is{nt{koneeseen), eik{ n{ytt| pys{hdyk{{n
v{litt|m{sti. Hyv{ p{{te reagoi t{h{n n{pp{imeen v{litt|m{sti itse,
odottamatta is{nt{koneen reaktioita.
/threeboxed
ASCII-kontrollimerkki , ESC, jonka koodi on 27. (Huomaa,
ett{ 7-bitin kansallisessa ASCII-versiossa merkit [ ja
ovat "p{{llekk{in".) Kontrollimerkki on varattu
ASCII-merkist|ss{ laajentamaan kontrollimerkkien joukkoa. Se aloittaa
ns. escape-jonon, eli tietyn (standardissa ISO 2022) sovitun s{{nn|n
mukaisen kontrollijonon. N{it{ escape-jonoja on m{{ritelty
kymmenitt{in, mm. kohdistimen k{sittelyyn, merkkien v{ri{ ja
attribuutteja kuten vilkkumista varten, jne. Eri laitteet reagoivat
niihin eri tavoin. Jos k{ytt{j{ n{pp{ilee /boxed-merkin, sen
merkitys vaihtelee eri k{ytt|j{rjestelm{st{ ja ohjelmasta toiseen.
Usein sill{ on sama vaikutus kuin >-n{pp{imell{, se
kumoaa tai keskeytt{{ k{ynniss{ olevan komennon tai sitten varsinkin
valikkopohjaisissa ohjelmissa se vie takaisin edelliseen valikkoon.
(VT200-sarjan p{{tteill{ saadaan antamalla >
l{hetetty{ merkki >.) T{t{ merkki{ ei pid{ sotkea
joidenkin ohjelmien ja laitteiden (kermit, unix, /TeX,
p{{tepalvelija, TCP//IP, muut tietoliikenneohjelmat) m{{rittelem{{n
omaan "escape"-merkkiin.
/threeboxed
ASCII-kontrollimerkki , DEL, jonka koodi on 127. T{m{n merkin
vaikutus vaihtelee hieman, mutta useimmiten se poistaa joko yhden merkin
tai koko rivin komentorivilt{ tai editoitavasta tekstist{.
/threeboxed
ASCII-kontrollimerkki , BS, jonka koodi on 8. Kun
p{{te tai kirjoitin vastaanottaa t{m{n kontrollimerkin, se siirt{{
kohdistimen yhden askeleen taaksep{in (vasemmalle) poistamatta t{ss{
paikassa olevaa merkki{. L{hetett{ess{ t{m{ merkki is{nt{koneelle,
sen merkitys vaihtelee is{nt{koneesta ja ohjelmasta riippuen. Joskus
se siirt{{ kohdistimen vasemmalle yhden askeleen ja poistaa samalla
loppupaikassa olevan merkin (VAX//VMS:ss{ -merkin
toiminta) ja joskus (VAX//VMS) se vie kursorin komentorivin alkuun.
(Itseasiassa, kun VAX//VMS-j{rjestelm{lle l{hetet{{n /boxed-merkki,
takaisin kaiutetaan kolme merkki{: /boxed, v{lily|nti,
/boxed, jolloin kohdistin ensin siirtyy vasemmalle, v{lily|nti
tuhoaa t{ss{ paikassa olevan merkin ja kohdistin siirtyy oikealle, ja
viimeinen /boxed-merkki siirt{{ kohdistimen taas vasemmalle
v{lily|nnin p{{lle!)
/twoboxed
ASCII-kontrollimerkki , BEL, jonka koodi on 7, ja joka
saapuessaan p{{tteelle aiheuttaa p{{tteen "kellon" soiton (eli p{{te
"piippaa").
/oneboxed
ASCII-kontrollimerkki , ETX, jonka koodi on 3.
Sek{ VAX//VMS- ett{ unix-k{ytt|j{rjestelmiss{ aiheuttaa ohjelman
tai sen osatoiminnon lopetuksen (mik{li kyseinen ohjelma ei ole
keskeytt{mist{ est{nyt).
/oneboxed
ASCII-kontrollimerkki , EOT, jonka koodi on
4. T{m{ merkki on unix-j{rjestelm{n - eli EOF
-merkki. Se lopettaa sy|t|n (sy|tt|tiedoston) ja se aiheuttaa
p{{tteelt{ l{hetettyn{ (rivin alussa komentotulkin kehoitteen
j{lkeen) my|s -komennon (komentotulkin eli shellin
sy|tt|tiedostona oleva komentotiedosto eli "p{{te" loppuu!). Muualla
kuin rivin alussa annettuna se vain keskeytt{{ komennon sy|t|n.
>
/section
Useat tietoliikenneohjelmistot ja -laitteet m{{rittelev{t omat
"escape"-merkit, joilla on tarkoitus p{{st{ komentamaan uudelleen
tietoliikenneohjelmistoa. Luonteensa vuoksi
tietoliikenneohjelmistojen tulee v{litt{{ kaikki merkit
"huomaamattomasti eli l{pin{kyv{sti l{vitseen", toisin sanoen hyv{
tietoliikenneohjelmisto ei "n{y" k{ytt{j{lleen ollenkaan. Ei ainakaan
sill{ tavoin, ett{ se k{sittelisi joitain merkkej{ tai tai
merkkikombinaatioita omalla erikoisella tavallaan, vaan sen tulee
uskollisesti l{hett{{ kaikki vastaanottamansa merkit edelleen ja n{in
kytke{ esimerkiksi p{{te ja is{nt{kone toisiinsa.
Ongelmaksi tulee sellainen tilanne, jossa l{hetett{v{
komento tai merkki ei olekaan tarkoitettu vastaanottajalle, vaan itse
tietoliikenneohjelmalle. Jollain tavalla t{ytyy saada her{tetty{
t{m{n tietoliikenneohjelman huomio, ja saada kyseinen komento sen
suoritettavaksi. T{t{ varten useimmat m{{rittelev{t yhden merkin
omaksi escape-merkikseen, jonka vastaanottaessaan ne her{{v{t ja
reagoivat k{ytt{j{n komentoihin. Nimi escape tulee siit{, ett{ ohjelma
"pakenee" tai poistuu normaalitilastaan ja j{{ kuuntelemaan komentoja.
Muitakin tapoja on k{yt|ss{: esimerkiksi useat p{{tteelt{ ohjattavat
ja ohjelmoitavat modeemit reagoivat kolmeen per{tt{iseen
plus-merkkiin (+), jotka tulevat riitt{v{n hitaasti ja tasatahtisesti
(t{llainen merkkikombinaatio ajoituksineen on riit{v{n harvinainen ja
voidaan aina haluttaessa v{ltt{{, joten se kelpaa "escape-merkiksi").
Ja er{{t p{{tepalvelijat reagoivat /boxed-merkkiin, joka ei
itse asiassa olekaan oikea merkki, vaan poikkeuksellinen, muissa
oloissa mahdoton signaalij{nnitteen pitk{aikainen vakioarvo, ja joka
siten kelpaa "escape-merkiksi".
T{llainen ohjelman oma escape-merkki tulee olla riitt{v{n
harvinainen, jotta sen k{yt|st{ t{h{n tarkoitukseen ei koidu harmia.
Ideaalitilanteessa escape-merkki ei koskaan kuulu normaaliliikenteen
valikoimaan (vrt edell{ /boxed). Lis{ksi tulisi olla
mahdollista l{hett{{ se tarvittaessa my|s vastaannottajalle. T{h{n
k{ytet{{n yleens{ sellaista sopimusta, ett{ kyseinen
tietoliikenneohjelma p{{st{{ kahdesta per{kk{isest{ escape-merkist{{n
toisen l{vitseen. T{ll|in kuitenkin keskustelevien osapuolten tulee olla
tietoisia siit{, mink{lainen v{litt{v{ ohjelma on, joten se ei olekaan niin
"l{pin{kyv{" kuin pit{isi.
Lis{ksi eri tietoliikenneohjelmistojen komponentit saattavat k{ytt{{
samaa escape-merkki{, jolloin tulee ongelmia komentaa kompaakin
erikseen. Siksi escape-merkin tulisi olla tarvittaessa k{ytt{j{n
muutettavissa.
Esimerkki: K{ytet{{n p{{te-emulointiohjelmaa, jolla ollaan
ohjelmoitavan moninopeusmodeemin v{lityksell{ yhteydess{ TLP:n
TCP//IP-p{{tepalvelijaan. T{st{ ollaan edelleen yhteydess{ -palvelukoneeseen, josta TCP//IP-palvelulla
ollaan yhteydess{ OPMVAX-palvelukoneeseen, ja sielt{ Station-ohjelmiston
komennolla yhteydess{ supertietokoneeseen. T{ll|in
yhteydess{ on seuraavat komponentit ja niiden escape-merkit:
ja lis{ksi liikenteess{ kulkee aitoja ASCII-escape-merkkej{
erilaisten p{{tteen kontrollijonojen alussa. Siis my|s normaali
ASCII-escape muuttaa p{{teen toimintatilaa normaalista ruudulle
kirjoittamisesta, ja p{{te sen sijaan vastaanottaa ja toteuttaa
escape-merkin per{ss{ tulevan komennon.
My|s useissa teksti{ k{sitteleviss{ ohjelmissa --- kuten
k{ytt|j{rjestelm{n komentotulkeissa, ohjelmointikielen k{{nt{jiss{ ja
tekstink{sittelyj{rjestelmiss{ --- on sama ongelma: toisaalta annettu
tekstinp{tk{ voi olla k{sitelt{v{{ dataa ja toisaalta se voi olla
komento kyseiselle ohjelmalle. Usein n{iss{ ohjelmissa on m{{ritelty
oma escape-merkki, jolla erotetaan komennot datasta (tai
p{invastoin). Esimerkiksi unix-komentotulkeissa eli shelleiss{
suurin osa tekstist{ on komentoa, mutta joskus halutaan suojata osa
teksti{, ettei tulkki k{sittelisi sit{, panemalla se
lainausmerkkeihin tai sijoittamalla sen alkuun (jos se on vain yksi merkki)
unixin escape-merkki eli kenoviiva (). Vastaavasti
\TeX-tekstink{sittelyj{rjestelm{lle suurin osa tekstist{ on
k{sitelt{v{{ dataa, mutta komennot alkavat \TeX<>in escape-merkill{, joka
my|s on kenoviiva () englanninkieliselle versiolle ja
vinoviiva () suomenkieliselle.
/section
Kirjoitetun merkin poistamiseen, komennon keskeytt{miseen yms.
erikoistoimintoihin tarkoitetut erikoismerkit ovat Unixin
alkuper{isess{ muodossa nostalgisia j{{nteit{ paperip{{te- ja
teletype-aikakaudelta. Onneksi jopa k{ytt{j{ itse voi niit{ muuttaa.
Toisaalta my|s oletusarvoja on eri systeemeiss{ muuteltu eri tavoin,
ja toiminta saattaa riippua jopa k{ytetyst{ tietoliikenneohjelmasta.
Sotkusta selvinnee l{hinn{ kokeilemalla.
Huomaa, ett{ erilaiset sovellutusohjelmistot
usein m{{rittelev{t ohjausmerkkej{ uudelleen, joten niiden toiminta
ei aina v{ltt{m{tt{ vastaa t{ss{ annettuja kuvauksia.
Tietysti voit itsekin muutella ohjausmerkkien merkityksi{.
Voimassa olevat n{pp{inm{{rittelyt n{kee ja niit{ voi muuttaa komennolla
.
Alla n{pp{imell{ > tarkoitetaan n{pp{inten > tai > ja > yht{aikaista
painamista siten, ett{ > painetaan ensin alas ja
sitten n{pp{in >.
Seuraavat kontrollimerkit toimivat supertietokoneella (ja muissakin
unix-j{rjestelmiss{), ellei k{ytt{j{ ole niit{ muuttanut:
Kirjoitettu komentorivi l{hetet{{n suoritettavaksi.
/oneboxed
Keskeytt{{ komennon tai ohjelman suorituksen, ellei kyseinen ohjelma ole
keskeytt{mist{ est{nyt.
/oneboxed
Oleellisesti end-of-file-merkki. Jos
komento lukee teksti{ p{{tteelt{, voidaan tekstin sy|tt{minen
lopettaa /boxed:ll{. Suoraan shellille annettuna t{m{ merkki
lopettaa sen suorituksen (exit). Jos kysymyksess{ sattuu
olemaan uloimman tason komentotulkki, p{{ttyy koko istunto (logout)
ja yhteys katkeaa.
>
Useimmiten (ainakin jos p{{tteen tyyppi on ), my|s seuraavat
n{pp{imet toimivat:
Siirt{{ kohdistimen seuraavan vaakasuuntaisen
tabulaattorin kohdalle (usein joka kahdeksannen merkin
kohdalla).
/oneboxed
Tulostuksen pys{ytys.
/oneboxed Tulostuksen jatko.
/oneboxed
Poistaa yhden merkin (vasemmalle).
>
Jos p{{tetyyppi on (eli p{{te VT100-, VT220- tai VT300-sarjaa tai
yhteensopiva), toimivat my|s kohdistimen ohjausnuolin{pp{imet
mm. n{ytt|editorissa . Mik{li nuolin{pp{imet eiv{t toimi,
niit{ "simuloidaan" kontrollimerkein /boxed,
/boxed, /boxed ja /boxed, jotka sijaitsevat
sopivasti per{kk{in n{pp{imist|ss{:
oikealle BS
/boxed alas LF
/boxed yl|s VT
/boxed vasemmalle FF
>
Luettelemme viel{ t{rkeimm{t VAX//VMS-edustakoneiden kanssa
(komentotilassa) ty|skennelt{ess{
tarvittavat n{pp{imet (useilla p{{tteill{, mutta osa toimii vain
VT100//200//300-sarjan p{{tteill{):
Tulostuksen v{liaikainen esto. Ohjelma jatkaa suoritustaan mutta sen
tulostuksia ei tule en{{ p{{tteelle. Toisen kerran >:ta painettaessa tulostus ohjautuu takaisin p{{tteelle,
ellei ohjelman suoritus ennen t{t{ ole jo loppunut. >:n painaminen aiheuttaa p{{tteelle tulostuksen tai .
/oneboxed
EOF (End of File),
sy|t|n tai ohjelman p{{t|s (n{kyy p{{tteell{ tekstin{ ).
Useissa VAX//VMS:n varusohjelmissa lopettaa ohjelman toiminnan.
/oneboxed
Ohjelman lopetus (n{kyy p{{tteell{ tekstin{ ).
/oneboxed
Ohjelman tai sen osatoiminnon lopetus (n{kyy p{{tteell{ tekstin{ ).
/oneboxed
Sy|tett{v{n{ olevan rivin alun poisto.
/oneboxed
Sy|tett{v{n{ olevan rivin alun poisto (tyhjent{{ my|s kirjoituspuskurin).
/oneboxed
Sanan poisto vasemmalle.
/oneboxed
Komentotasolla lis{ys- ja korvaustilan vaihto.
/oneboxed
Kohdistin komennon alkuun.
/oneboxed
Kohdistin komennon loppuun.
/oneboxed
Istunnon tilannekatsaus: CPU-aika yms.
/oneboxed
Korjaillun rivin uudelleentulostus (paperip{{tteill{).
/oneboxed
Uudistaa ruudun.
/oneboxed
Edellisen komennon takaisinsaaminen (yl{nuolin{pp{in >).
/oneboxed
Liikkuminen
komentorivin alkua kohti (nuoli vasemmalle >
>).
/oneboxed
Liikkuminen
komentorivin loppua kohti (nuoli oikealle >
>).
/oneboxed<$/downarrow$>
Siirtyy komentohistorialistan seuraavaan komentoon (alanuolin{pp{in).
>
/endinput