I informatikk er et kontrolltegn eller et ikke-visbart tegn en kode (et tall) i et tegnsett som ikke selv representerer et skrevet symbol. Alle tegn i ASCII- tabellen under posisjon 32 faller inn i denne kategorien, inkludert BEL (som vanligvis forårsaker et pip i mottakerterminalen), SYN (som er synkroniseringssignalet) og ENQ (et signal som krever respons fra mottaksterminalen). , for å vite statusen til linjen). Unicode -standarden har lagt til mange nye tegn som ikke kan vises .
Kontrolltegnene i ASCII-tabellen som fortsatt er i vanlig bruk inkluderer
Noen ganger oppstår en mer moderne bruk av noen andre koder, som i tilfellet med EOT -kode 4 (Slutt på overføring) , som brukes til å avslutte et Unix- eller Linux-skall eller en dataoverføring til PostScript - skriveren .
Kode 27 (Escape) er en sak som fortjener å bli analysert. Mens mange av disse kontrolltegnene aldri blir brukt, er konseptet med å sende enhetskontrollinformasjon, ispedd utskrivbare tegn, så nyttig at produsenter fant måter å sende hundrevis av instruksjoner til enheter. Spesifikt brukte de en serie med flere tegn, kalt en "kontrollsekvens " eller " escape-sekvens ". Vanligvis ble kode 27 først sendt for å varsle enheten om at følgende tegn skulle tolkes som en kontrollsekvens, i stedet for som vanlige tegn, deretter forklarte ett eller flere påfølgende tegn hva som skulle gjøres, hvoretter enheten ville gå tilbake til å tolke tegn normalt. For eksempel førte sekvensen til kode 27, etterfulgt av de utskrivbare tegnene "[2; 10H", en Digital VT-102-terminal til å flytte markøren til den tiende cellen på den andre linjen på skjermen. Det er noen standarder for disse sekvensene, spesielt ANSI X3.64 (1979), som var basert på oppførselen til VT-100-seriens terminaler. Men antallet ikke-standardvarianter i bruk er stort, spesielt for skrivere, der teknologien har utviklet seg mye raskere, langt utover tidsrammen som er pålagt av hver standardiseringsprosess.
Tastatur basert på ASCII-systemet har en " Control "- eller "Ctrl"-tast, som brukes på samme måte som Shift- tasten , som trykkes i kombinasjon med en annen bokstav eller symbol for å få tastaturet til å generere ett av de 32 kontrolltegnene.
I dette tilfellet produserer tastaturet en kode som er 64 posisjoner under tegnkoden til den store bokstaven som ble trykket (i praksis er bit 5 satt til null). Ved å trykke på "kontroll" og bokstaven "G" (kode 71), for eksempel, produseres kode 7 (Bell), også noen ganger referert til som ^ G.
Tastaturene har også taster som i seg selv produserer koder som tilhører kontrolltegnene. For eksempel, "Backspace"-tasten, som på italienske tastaturer er over "Enter"-tasten og er merket med en lang venstre pil (←), produserer koden 8; "Tab", merket med to piler som hver peker mot en vertikal strek, produserer koden 9, "Enter", "Enter" eller "Return" koden 13 (selv om noen tastaturer produserer koden 10 for "Enter") .
Moderne tastaturer har mange taster som ikke tilsvarer ASCII-tegn eller kontrolltegn, for eksempel markørtaster og tekstbehandlingsfunksjoner . Disse tastaturene kommuniserer trykk på disse tastene til datamaskinen de er koblet til ved hjelp av en av tre metoder:
Tastatur koblet til personlige datamaskiner bruker vanligvis en (eller begge) av de to første metodene. Terminaler bruker vanligvis den tredje .
Kontrolltegn ble designet for å falle inn i visse grupper: utskriftskontroll, datastrukturkontroll, overføringskontroll og diverse.
Utskriftskontrolltegn indikerer hvor neste tegn skal settes. Vognretur indikerer innsetting av tegnet på begynnelsen av linjen (det kan eller ikke kan flytte til neste linje). "Linjefeed" indikerer innsetting av neste tegn på neste linje (og kan være plassert i begynnelsen av samme linje). De horisontale og vertikale fanene instruerer skriveren om å flytte hodet til neste tabulatorstopp langs leseretningen. "Form feed" plasseres i begynnelsen av et nytt ark. " Skift inn " og " Skift ut " velger alternative tegnsett, fonter, understreker eller andre utskriftsmodi. "Tilbake" flytter hodet ett tegn tilbake, slik at skriveren kan overskrive for å lage spesialtegn.
Separasjonskontrolltegn (gruppe, post osv.) ble opprettet for å strukturere data, vanligvis på magnetbånd , for å simulere hullkort .
End of media advarer om at båndet (eller lignende) er i ferd med å gå tom.
Overføringskontrolltegnene var ment å strukturere en datapakke og kontrollere når den skulle sendes på nytt i tilfelle feil.
"Start på overskriften" markerte den datafrie delen av pakken - den delen av meldingen som inneholder adressen og annen informasjon som er nyttig for overføring. "Start-på-tekst" markerte slutten av overskriften og begynnelsen av delen som inneholder dataene. "Slutt på tekst" markerte slutten på pakken. En standard konvensjon er å bruke de to tegnene foran slutten av teksten for meldingsparitetssjekken ( CRC ).
"Escape" var ment å plasseres foran en binær verdi i en melding, som ellers kunne tolkes som et kontrolltegn. For eksempel ville verdien for binær 27 vært "escape" "escape".
"Erstatningen" var ment å kreve oversettelse av følgende tegn, fra det utskrivbare tegnet til en binær verdi, vanligvis ved å sette den femte biten til null. Dette er praktisk fordi noen overføringsmedier bare overfører utskrivbare tegn.
"Avbrytelsen" ville ha stoppet overføringen av en pakke. Den negative bekreftelsen krevde en reoverføring av pakken. "Bekreftelsen" indikerte at overføringen ble mottatt.
Når overføringsmediet opererte i halv dupleks (det vil si at det kun kan sende i én retning om gangen), har man vanligvis en primærstasjon som kan sende når som helst, og en sekundærstasjon som kun sender når den har tillatelse. Forespørselen ble brukt av primærstasjonen til å be sekundærstasjonen sende sin neste melding. En sekundærstasjon indikerte at den hadde fullført sendingen ved å sende en "slutt på overføring".
De perifere kontrollkodene var opprinnelig generiske, for å defineres forskjellig for hver enhet. Et universelt behov for dataoverføring er imidlertid å kreve at avsenderen slutter å sende data når mottakeren ikke er i stand til å akseptere mer. Digital Equipment Corporation oppfant konvensjonen som brukte 19, (enhetskontroll 3, også kjent som kontroll S, eller "X-OFF") for å stoppe ("S" øverst) overføring, og 17, (enhetskontroll 1, kjent som kontroll Q , eller "X-ON") for å starte den. Dette gjør at produsenter kan kontrollere overføring uten å bruke overføringskontrollledninger i datakabelen. Dette sparer penger og gjør driften mer pålitelig ved å redusere antall tilkoblinger i kabelen.
"Datalink escape" forteller den andre enden av datalinken om å avslutte økten.
Mange av ASCII-kontrollkarakterene ble designet for datidens periferiutstyr, som ikke lenger brukes i dag. For eksempel ble kode 22, "Synchronous indle", sendt av synkrone modemer (som må sende data konstant) når det ikke var data å overføre - moderne systemer bruker vanligvis en startbit for å kunngjøre starten på en overføring.
"Kode 0", "null", er et spesielt tilfelle. I perforerte bånd indikerer tilfellet når det ikke er hull. Det er praktisk å behandle det som en ikke-eksisterende karakter.
"Kode 127" er også et spesialtilfelle. Koden tilsvarer den binære verdien der alle biter er satt til 1, noe som gjorde det enkelt å slette en del av stanset tape, et vanlig lagringsmedium på den tiden, ved å stanse alle hullene. Perforert tape ble raskt foreldet, så denne funksjonen ble nesten aldri brukt. Men siden koden ligger innenfor området som er okkupert av andre utskrivbare tegn, brukte mange datamaskiner den som et ekstra utskrivbart tegn (ofte som en helt svart firkant, nyttig for å slette tekst ved å overskrive den).
7-bits ASCII - tabellen definerer 33 koder, 0 til 31 og 127 som kontrolltegn.
des | Hex | Abbr | Skriftnavn |
---|---|---|---|
00 | 0x00 | NUL | Null |
01 | 0x01 | SOH | Start av overskrift |
02 | 0x02 | STX | Start av tekst |
03 | 0x03 | ETX | Slutt på tekst |
04 | 0x04 | EOT | Slutt på overføring |
05 | 0x05 | ENQ | Forespørsel |
06 | 0x06 | ACK | Anerkjenne |
07 | 0x07 | HYGGELIG | Klokke |
08 | 0x08 | BS | Tilbake |
09 | 0x09 | HT | Horisontal Tab |
10 | 0x0A | LF | Linjeskift |
11 | 0x0B | VT | Vertikal Tab |
12 | 0x0C | FF | Skjema feed |
1. 3 | 0x0D | CR | Vognretur |
14 | 0x0E | SÅ | Skift ut |
15 | 0x0F | JA | Skift inn |
16 | 0x10 | DLE | Data Link Escape |
17 | 0x11 | DC1 | Enhetskontroll 1 |
18 | 0x12 | DC2 | Enhetskontroll 2 |
19 | 0x13 | DC3 | Enhetskontroll 3 |
20 | 0x14 | DC4 | Enhetskontroll 4 |
21 | 0x15 | NAK | Negativ erkjennelse |
22 | 0x16 | SYN | Synkron tomgang |
23 | 0x17 | ETB | Slutt på overføringsblokk |
24 | 0x18 | KAN | Avbryt |
25 | 0x19 | EM | Slutt på medium |
26 | 0x1A | UNDER | Erstatning |
27 | 0x1B | ESC | Flukt |
28 | 0x1C | FS | Filseparator |
29 | 0x1D | GS | Gruppeskiller |
30 | 0x1E | RS | Record Separator |
31 | 0x1F | OSS | Enhetsseparator |
127 | 0x7F | AV | Rubout / Slett |
Den ISO-8859-1- kompatible 8-bits tabellen kartlegger i tillegg de 32 kodene fra posisjon 128 til 159, som er ubrukte i ISO / IEC 8859-1 -spesifikasjonen , ved å tilordne dem til kontrolltegn.
des | Hex | Abbr | Skriftnavn |
---|---|---|---|
128 | 0x80 | PAD | Polstringskarakter |
129 | 0x81 | HOPPE | Høy oktett forhåndsinnstilt |
130 | 0x82 | BPH | Pause tillatt her |
131 | 0x83 | NBH | Ingen pause her |
132 | 0x84 | IND | Indeks |
133 | 0x85 | I DEN | Neste linje |
134 | 0x86 | SSA | Start av valgt område |
135 | 0x87 | ESA | Slutt på valgt område |
136 | 0x88 | HTS | Horisontalt fanesett |
137 | 0x89 | HTJ | Horisontal fane Justert |
138 | 0x8A | VTS | Vertikal fanesett |
139 | 0x8B | PLD | Delvis linje fremover |
140 | 0x8C | PLU | Delvis linje bakover |
141 | 0x8D | RE | Omvendt linjemating |
142 | 0x8E | SS2 | Enkeltskift 2 |
143 | 0x8F | SS3 | Enkeltskift 3 |
144 | 0x90 | DCS | Enhetskontrollstreng |
145 | 0x91 | PU1 | Privat bruk 1 |
146 | 0x92 | PU2 | Privat bruk 2 |
147 | 0x93 | STS | Angi overføringstilstand |
148 | 0x94 | CCH | Avbryt tegn |
149 | 0x95 | MW | Melding venter |
150 | 0x96 | SPA | Start av verneområde |
151 | 0x97 | EPA | Slutten av vernet område |
152 | 0x98 | SOS | Start av streng |
153 | 0x99 | SGCI | Enkelt grafisk tegn-intro |
154 | 0x9A | SKI | Single Char Intro |
155 | 0x9B | CSI | Control Sequence Intro |
156 | 0x9C | ST | String Terminator |
157 | 0x9D | OSC | OS-kommando |
158 | 0x9E | PM | Privat melding |
159 | 0x9F | APC | Program Command-appen |