article

Nell'informatica, un carattere di controllo o carattere non visualizzabile, è un codice (un numero) in un set di caratteri che non rappresenta in sé un simbolo scritto. Tutti i caratteri nella tavola ASCII al di sotto della posizione 32 fanno parte di questa categoria, incluso BEL (che di solito provoca un segnale sonoro nel terminale ricevente), SYN (che è il segnale di sincronizzazione), e ENQ (un segnale che richiede una risposta dal terminale ricevente, per conoscere lo stato della linea). Lo standard Unicode ha aggiunto molti nuovi caratteri non visualizzabili.

Nella tavola ASCII


I caratteri di controllo nella tavola ASCII ancora d'uso comune comprendono
  • 7 (bell), provoca l'emissione di un segnale sonoro da parte del terminale ricevente
  • 8 (backspace), utilizzato per cancellare l'ultimo carattere visualizzato, di solito quello a immediatamente a sinistra del cursore
  • 9 (horizontal tab), tabulatore orizzontale
  • 10 (line feed), utilizzato per terminare le linee di testo nei sistemi UNIX e le loro varianti
  • 12 (form feed), per terminare la pagina sulla stampante e avanzare al modulo successivo
  • 13 (carriage return), ritorno a capo, utilizzato per terminare le linee di testo nel Mac OS e nei derivati del CP/M, compreso il DOS)
  • 27 (escape).
A volte si incontra un utilizzo più moderno di alcuni altri codici, come nel caso del codice 4 (End of transmission) EOT, utilizzato per terminare una shell di Unix o Linux o una trasmissione di dati alla stampante PostScript.

Il codice 27 (Escape) è un caso che merita di essere analizzato. Anche se molti di questi caratteri di controllo non vengono mai usati, il concetto di inviare informazioni per il controllo delle periferiche, inframezzati a caratteri stampabili, è così utile che i produttori trovarono il modo di inviare centinaia di istruzioni alle periferiche. Nello specifico usavano una serie di caratteri multipli, chiamati "sequenza di controllo" o "sequenza di escape". Tipicamente il codice 27 veniva inviato per primo per avvisare la periferica che i caratteri seguenti dovevano essere interpretati come una sequenza di controllo, piuttosto che come dei normali caratteri, quindi uno o più caratteri successivi spiegavano quale azione intraprendere, dopo di che la periferica tornava a interpretare i caratteri normalmente. Ad esempio, la sequenza del codice 27, seguita dai caratteri stampabili "[2;10H", faceva sì che un terminale VT-102 della Digital spostasse il suo cursore sulla decima cella della seconda riga dello schermo. Esistono alcuni standard per queste sequenze, soprattutto l'ANSI X3.64 (1979), che si basava sul comportamento dei terminali della serie VT-100. Ma il numero di varianti non standard in uso è ampio, specialmente per le stampanti, dove la teconologia è progredita molto più velocemente, ben aldilà delle tempistiche imposte da ciascun processo di standardizzazione.

Corrispondenza dei caratteri di controllo nella tastiera


Le tastiere basate sul sistema ASCII possiedono un tasto "Control" o "Ctrl", che viene utilizzato in modo similare a quanto avviene con il tasto shift, che viene premuto in combinazione con un'altra lettera o simbolo per far sì che la tastiera generi uno dei 32 caratteri di controllo.

In questo caso la tastiera produce un codice che si trova 64 posizioni al disotto del codice del carattere della lettera maiuscola che è stata premuta (in pratica, viene posto a zero il bit 5). La pressione di "control" e della lettera "G" (codice 71), per esempio, produce il codice 7 (Bell), anche indicato a volte come ^G.

Le tastiere hanno anche dei tasti che da soli producono codici che appartengono ai caratteri di controllo. Ad esempio, il tasto "Backspace", che sulle tastiere italiane si trova sopra al tasto "Invio" ed è contrassegnato da una freccia lunga verso sinistra (←), produce il codice 8; il "Tab", contrassegnato da due frecce ciascuna con la punta verso una barretta verticale produce il codice 9, "Invio", "Enter" o "Return" il codice 13 (anche se talune tastiere producono il codice 10 per l'"Enter").

Le tastiere moderne hanno molti tasti che non corrispondono a caratteri ASCII o a caratteri di controllo, ad esempio i tasti cursore e le funzioni di elaborazione testo. Queste tastiere comunicano la pressione di questi tasti al computer cui sono collegate usando uno di questi tre metodi:

  1. appropriandosi allo scopo di caratteri di conrollo altrimenti inutilizzati
  2. usando codifiche diverse dall'ASCII
  3. usando sequenze di controllo composte da più caratteri
Le tastiere collegate ai personal computer in genere usano uno (o enrambi) dei primi due metodi. I terminali di solito adottano il terzo.

Suddivisione in famiglie


I caratteri di controllo vennero progettati per ricadere all'interno di alcuni gruppi: controllo della stampa, controllo delle strutture dati, controllo della trasmissione, e varie.

Controllo della stampa

I caratteri di controllo della stampa indicano dove mettere il carattere successivo. Il "carriage return" indica l'inserimento del carattere all'inizio della linea (può o non può spostarsi sulla linea successiva). Il "line feed" indica l'inserimento del prossimo carattere sulla linea successiva (e può o non può posizionarsi all'inizio della stessa). Le tabulature orizzontali e verticali indicano alla stampante di muovere la testina sul successivo punto di tabulatura lungo la direzione di lettura. Il "form feed" posiziona all'inizio di un nuovo foglio. "Shift in" e "shift out" selezionano set di caratteri alternativi, font, sottolineature o altre modalità di stampa. il "backspace" sposta la testina indietro di un carattere, di modo che la stampante possa effettuare una sovrascrittura per creare caratteri speciali.

Controllo delle strutture dati

I caratteri di controllo di separazione (gruppo, record, ecc.) erano stati creati per strutturare i dati, normalmente su un nastro magnetico, in modo da simulare le schede perforate.

End of media (fine del supporto) avverte che il nastro (o simile) sta terminando.

Controllo della trasmissione

I caratteri di controllo della trasmissione erano intesi a strutturare un pacchetto di dati e controllare quando ritrasmetterlo in caso di errore.

Lo "start of header" segnava la sezione priva di dati del pacchetto - la parte del messaggio che contiene l'indirizzo e altre informazioni utili alla trasmissione. Lo "start-of-text" segnava la fine dell'intestazione e l'inizio della parte contenente i dati. L'"End-of-text" segnava la fine del pacchetto. Una convenzione standard è quella di usare i due caratteri che precedono la fine del testo per il controllo di parità (CRC) del messaggio.

L'"escape" era pensato per essere posto davanti ad un valore binario all'interno di un messaggio, che poteva altrimenti essere interpretato come un carattere di controllo. Ad esempio, il valore per il 27 binario sarebbe stato "escape" "escape".

Il "substitute" era pensato per richiedere la traduzione del seguente carattere, da carattere stampabile a valore binario, solitamente impostando a zero il quinto bit. Questo è comodo perché alcuni mezzi di trasmissione, trasmettono solo caratteri stampabili.

Il "cancel" avrebbe interrotto la trasmissione di un pacchetto. Il "negative acknowledge" richiedeva una ritrasmissione del pacchetto. L'"acknowledge" indicava che la trasmissione era stata ricevuta correttamente.

Quando il mezzo di trasmissione funzionava in half duplex (ovvero, può trasmettere solo in una direzione alla volta), si ha solitamente una stazione primaria che può trasmettere in ogni momento, e una secondaria che trasmette solo quando ne ha il permesso. L'"enquiry" veniva utilizzato dalla stazione primaria per richiedere alla stazione secondaria di inviare il suo messaggio successivo. Una stazione secondaria indicava di aver terminato la trasmissione inviando un "end of transmission".

I codici di controllo delle periferiche erano in origine generici, da definire differentemente per ogni apparato. Comunque, un bisogno universale della trasmissione dati e quello di richiedere al trasmittente di interrompere l'invio di dati, quando il ricevente non è in grado di accettarne altri. La Digital Equipment Corporation inventò la convenzione che utilizzava il 19, (device control 3, noto anche come control S, o "X-OFF") per fermare ("S"top) la trasmissione, e il 17, (device control 1, noto come control Q, o "X-ON") per avviarla. Questo permette ai produttori di controllare la trasmissione senza usare fili per il "transmission control" nel cavo per i dati. Questo permette di risparmiare e rende le operazioni più affidabili, riducendo il numero di connessioni presenti nel cavo.

Il "data link escape" dice all'altro capo del collegamento dati di terminare la sessione.

Varie

Molti dei caratteri di controllo ASCII vennero progettati per periferiche dell'epoca, che non sono più utilizzate oggi. Ad esempio il codice 22, "Synchronous idle", veniva inviato dai modem sincroni (che devono inviare dati costantemente) quando non c'erano dati da trasmettere. (I sistemi moderni usano tipicamente un bit di start per annunciare l'inizio di una trasmissione).

Il "Codice 0", "null", è un caso speciale. Nei nastri perforati indica il caso in cui non ci sono buchi. È conveniente trattarlo come un carattere inesistente.

Anche il "Codice 127" è un caso speciale. Il suo codice equivale al valore binario in cui tutti i dit sono impostati a 1, il che rendeva facile cancellare una parte di nastro perforato, un comune mezzo di memorizzazione dell'epoca, punzonando tutti i fori. Il nastro perforato divenne rapidamente obsoleto, quindi questa funzione non venne quasi mai usata. Ma siccome il suo codice si trova nell'intervallo occupato da altri caratteri stampabili, molti computer lo usarono come carattere stampabile addizionale (spesso come un quadrato completamente nero, utile per cancellare del testo sovrascrivendolo).

Tavole


La tavola ASCII a 7 bit definisce 33 codici, da 0 a 31 e il 127 come caratteri di controllo.
Caratteri di controllo US-ASCII
DecHexAbbrNome del carattere
000x00NULNull
010x01SOHStart of Heading
020x02STXStart of Text
030x03ETXEnd of Text
040x04EOTEnd of Transmission
050x05ENQEnquiry
060x06ACKAcknowledge
070x07BELBell
080x08BS Backspace
090x09HT Horizontal Tab
100x0ALF Line Feed
110x0BVT Vertical Tab
120x0CFF Form Feed
130x0DCR Carriage Return
140x0ESO Shift Out
150x0FSI Shift In
160x10DLEData Link Escape
170x11DC1Device Control 1
180x12DC2Device Control 2
190x13DC3Device Control 3
200x14DC4Device Control 4
210x15NAKNegative Acknowledge
220x16SYNSynchronous Idle
230x17ETBEnd of Transmission Block
240x18CANCancel
250x19EM End of Medium
260x1ASUBSubstitute
270x1BESCEscape
280x1CFS File Separator
290x1DGS Group Separator
300x1ERS Record Separator
310x1FUS Unit Separator
1270x7FDELRubout/Delete

La tavola a 8-bit compatibile ISO-8859-1 mappa in aggiunta i 32 codici dalla posizione 128 alla 159, che sono inutilizzati nella specifica ISO/IEC 8859-1, assegnadoli a caratteri di controllo.

Control Characters in ISO-8859-*
DecHexAbbrNome del carattere
1280x80PADPadding Character
1290x81HOPHigh Octet Preset
1300x82BPHBreak Permitted Here
1310x83NBHNo Break Here
1320x84INDIndex
1330x85NELNext Line
1340x86SSAStart of Selected Area
1350x87ESAEnd of Selected Area
1360x88HTSHorizontal Tab Set
1370x89HTJHorizontal Tab Justified
1380x8AVTSVertical Tab Set
1390x8BPLDPartial Line Forward
1400x8CPLUPartial Line Backward
1410x8DRI Reverse Line Feed
1420x8ESS2Single-Shift 2
1430x8FSS3Single-Shift 3
1440x90DCSDevice Control String
1450x91PU1Private Use 1
1460x92PU2Private Use 2
1470x93STSSet Transmit State
1480x94CCHCancel Character
1490x95MW Message Waiting
1500x96SPAStart of Protected Area
1510x97EPAEnd of Protected Area
1520x98SOSStart of String
1530x99SGCISingle Graphic Char Intro
1540x9ASCISingle Char Intro
1550x9BCSIControl Sequence Intro
1560x9CST String Terminator
1570x9DOSCOS Command
1580x9EPM Private Message
1590x9FAPCApp Program Command

Voci correlate


Software

Steuerzeichen | Control character | Reg-signo | نویسه کنترلی | Управляющие символы | 控制字符

 

This article is licensed under the GNU Free Documentation License. It uses material from the "Carattere di controllo".

Home Pageartsbusinesscomputersgameshealthhospitalshomekids & teensnewsphysiciansrecreationreferenceregionalscienceshoppingsocietysportsworld