Postać kontrolna
W informatyce i telekomunikacji znak kontrolny . lub znak niedrukowalny ( NPC ) to punkt kodowy ( liczba ) w zestawie znaków , który nie reprezentuje zapisanego symbolu Są one używane jako sygnalizacja wewnątrzpasmowa , aby wywołać efekty inne niż dodanie symbolu do tekstu. Wszystkie inne znaki to głównie znaki drukowane , drukowane lub graficzne , z wyjątkiem być może znaku „ spacji ” (zobacz Znaki drukowane ASCII ).
Historia
Znaki proceduralne w alfabecie Morse'a są formą znaku kontrolnego.
kodzie Baudota z 1870 roku wprowadzono pewną formę znaków kontrolnych : NUL i DEL. Kod Murraya z 1901 roku dodał powrót karetki (CR) i wysunięcie wiersza (LF), a inne wersje kodu Baudota zawierały inne znaki kontrolne.
Znak dzwonka (BEL), który zadzwonił dzwonkiem, aby ostrzec operatorów, był również wczesnym znakiem sterującym dalekopisu .
Znaki kontrolne były również nazywane „efektorami formatu”.
W ASCII
Zdefiniowano całkiem sporo znaków kontrolnych (33 w ASCII, a standard ECMA-48 dodaje jeszcze 32). Wynikało to z faktu, że wczesne terminale miały bardzo prymitywne mechaniczne lub elektryczne elementy sterujące, które sprawiały, że implementacja wszelkiego rodzaju interfejsów API z pamięcią stanu była dość kosztowna, dlatego inny kod dla każdej funkcji wyglądał na wymaganie. Szybko stało się możliwe i niedrogie interpretowanie sekwencji kodów w celu wykonania funkcji, a twórcy urządzeń znaleźli sposób na wysyłanie setek instrukcji urządzenia. W szczególności użyli kodu ASCII 27 (escape), po którym następuje seria znaków zwanych „sekwencją kontrolną” lub „sekwencją ucieczki”. Mechanizm został wynaleziony przez Boba Bemera , ojca ASCII. Na przykład sekwencja kodu 27, po której następują drukowalne znaki „[2;10H”, spowoduje, że terminal Digital Equipment Corporation VT100 przesunie swój kursor do 10. komórki drugiego wiersza ekranu. Istnieje kilka standardów dla tych sekwencji, w szczególności ANSI X3.64 . Ale liczba niestandardowych wariantów użycia jest duża, zwłaszcza wśród drukarzy, gdzie technologia rozwija się znacznie szybciej, niż jakikolwiek organ normalizacyjny jest w stanie nadążyć.
Wszystkie wpisy w tabeli ASCII poniżej kodu 32 (technicznie zestaw kodów sterujących C0 ) są tego rodzaju, w tym CR i LF używane do oddzielania wierszy tekstu. Kod 127 ( DEL ) jest również znakiem kontrolnym [ potrzebne źródło ] . Rozszerzone zestawy ASCII zdefiniowane przez ISO 8859 dodały kody od 128 do 159 jako znaki kontrolne, zrobiono to przede wszystkim po to, aby usunięcie wysokiego bitu nie zmieniło znaku drukarskiego na kod kontrolny C0, ale było tu kilka przypisań, w szczególności NEL . Ten drugi zestaw nazywa się C1 .
Te 65 kodów kontrolnych zostało przeniesionych do Unicode . Unicode dodał więcej znaków, które można uznać za kontrolki, ale rozróżnia te „znaki formatujące” (takie jak znak niebędący łącznikiem o zerowej szerokości ) i 65 znaków kontrolnych.
Zestaw znaków Extended Binary Coded Decimal Interchange Code (EBCDIC) zawiera 65 kodów sterujących, w tym wszystkie kody sterujące ASCII oraz dodatkowe kody, które są najczęściej używane do sterowania urządzeniami peryferyjnymi IBM.
0x00 | 0x10 | |
---|---|---|
0x00 | NUL | DLE |
0x01 | SOH | DC1 |
0x02 | STX | ST2 |
0x03 | ETX | DC3 |
0x04 | OT | DC4 |
0x05 | ENQ | NAK |
0x06 | POK | SYN |
0x07 | BEL | ETB |
0x08 | BS | MÓC |
0x09 | HT | EM |
0x0A | LF | POD |
0x0B | VT | WYJŚCIE |
0x0C | FF | FS |
0x0D | CR | GS |
0x0E | WIĘC | RS |
0x0F | SI | NAS |
0x7F | DEL |
Znaki kontrolne w ASCII nadal w powszechnym użyciu obejmują:
- 0 ( null ,
NUL
,\0
,^@
), pierwotnie pomyślany jako znak ignorowany, ale obecnie używany przez wiele języków programowania , w tym C , do oznaczania końca ciągu znaków . - 7 ( bell ,
BEL
,\a
,^G
), co może spowodować wyemitowanie przez urządzenie ostrzeżenia, takiego jak dzwonek lub sygnał dźwiękowy lub miganie ekranu. - 8 ( backspace ,
BS
,\b
,^H
), może nadpisać poprzedni znak. - 9 ( tabulator poziomy ,
HT
,\t
,^I
), przesuwa pozycję drukowania w prawo do następnego tabulatora. - 10 ( nowy wiersz ,
LF
,\n
,^J
), przesuwa głowicę drukującą o jedną linię w dół lub do lewej krawędzi iw dół. Używany jako znacznik końca linii w większości i wariantów systemu UNIX . - 11 ( karta pionowa ,
VT
,\v
,^K
), tabulacja pionowa. - 12 ( wysuw strony ,
FF
,\f
,^L
), aby spowodować, że drukarka wyrzuci papier na górę następnej strony lub terminal wideo, aby wyczyścić ekran. - 13 ( powrót karetki ,
CR
,\r
,^M
), przesuwa pozycję drukowania na początek linii, umożliwiając nadruk. Używany jako znacznik końca linii w klasycznym systemie Mac OS , OS-9 , FLEX (i wariantach). ParaCR+LF
jest używana przez CP/M -80 i jego pochodne, w tym DOS i Windows , oraz przez protokoły warstwy aplikacji , takie jak FTP , SMTP i HTTP . - 26 ( Control-Z ,
SUB
,EOF
,^Z
). Działa jako koniec pliku dla pliku we/wy w trybie tekstowym systemu Windows. - 27 ( escape ,
ESC
,\e
( tylko GCC ),^[
). Wprowadza sekwencję ucieczki .
Znaki kontrolne mogą być opisane jako wykonujące coś, gdy użytkownik je wprowadza, na przykład kod 3 ( znak końca tekstu , ETX, ^C
) w celu przerwania uruchomionego procesu lub kod 4 ( znak końca transmisji , EOT, ^D
), używany do zakończenia wprowadzania tekstu lub do wyjścia z powłoki systemu Unix . Zastosowania te zwykle mają niewiele wspólnego z ich użyciem, gdy są wyświetlane w tekście, aw nowoczesnych systemach zwykle w ogóle nie wiążą się z transmisją numeru kodu (zamiast tego program otrzymuje informacjęże użytkownik przytrzymuje klawisz Ctrl i naciśnięcie klawisza oznaczonego literą „C”).
W Unikodzie
W Unicode „znaki kontrolne” to U + 0000 — U + 001F (sterowanie C0), U + 007F (usuwanie) i U + 0080 — U + 009F (sterowanie C1). Ich kategoria ogólna to „DW”. Kody formatowania są różne, w kategorii ogólnej „Cf”. Znaki sterujące DW nie mają nazwy w Unicode, ale zamiast tego otrzymują etykiety, takie jak „<control-001A>”.
Wyświetlacz
Istnieje wiele technik wyświetlania znaków niedrukowalnych, które można zilustrować znakiem dzwonka w kodowaniu ASCII :
- Punkt kodowy : dziesiętny 7, szesnastkowy 0x07
- Skrót, często trzy wielkie litery: BEL
- Znak specjalny kondensujący skrót: Unicode U + 2407 (␇), „symbol dzwonka”
- Graficzna reprezentacja ISO 2047 : Unicode U + 237E (⍾), „grafika dzwonka”
- Notacja karetki w ASCII, gdzie punkt kodowy 00xxxxx jest reprezentowany jako daszek, po którym następuje wielka litera w punkcie kodowym 10xxxxx: ^ G
- Sekwencja ucieczki , jak w kodach łańcuchów znaków C / C++ : \a , \007 , \x07 itd.
Jak znaki kontrolne są odwzorowywane na klawiatury
Klawiatury oparte na ASCII mają klawisz oznaczony „ Control ”, „Ctrl” lub (rzadko) „Cntl”, który jest używany podobnie jak klawisz Shift, naciśnięty w połączeniu z inną literą lub klawiszem symbolu. W jednej implementacji, klawisz sterujący generuje kod 64 miejsca poniżej kodu dla (ogólnie) wielkiej litery, z którą jest naciśnięty w połączeniu (tj. odejmij 64 od wartości kodu ASCII w postaci dziesiętnej od (ogólnie) dużej litery). Inną implementacją jest wzięcie kodu ASCII utworzonego przez klucz i bitowe ORAZ go z 31, zmuszając bity 6 i 7 do zera. Na przykład naciśnięcie „control” i litery „g” lub „G” (kod 107 w systemie ósemkowym lub 71 w systemie bazowym 10 , czyli 01000111 w systemie binarnym ), daje kod 7 (Bell, 7 w systemie 10 lub 00000111 w dwójkowy). Znak NULL (kod 0) jest reprezentowany przez Ctrl-@, gdzie „@” jest kodem bezpośrednio przed „A” w zestawie znaków ASCII. Dla wygody wiele terminali akceptuje Ctrl-Spacja jako alias dla Ctrl-@. W obu przypadkach daje to jeden z 32 kodów sterujących ASCII z zakresu od 0 do 31. To podejście nie jest w stanie przedstawić znaku DEL z powodu jego wartości (kod 127), ale Ctrl-? jest często używany dla tego znaku, jako odjęcie 64 od „?” daje −1, co przy zamaskowaniu do 7 bitów daje 127.
Gdy klawisz Control jest wciśnięty, klawisze literowe generują te same znaki sterujące, niezależnie od stanu klawiszy Shift lub Caps Lock . Innymi słowy, nie ma znaczenia, czy klucz dałby dużą, czy małą literę. Interpretacja klawisza sterującego ze spacją, znakami graficznymi i klawiszami cyfr (kody ASCII od 32 do 63) różni się w zależności od systemu. Niektóre będą generować ten sam kod znaku, co gdyby klawisz sterujący nie był wciśnięty. Inne systemy tłumaczą te klawisze na znaki sterujące, gdy klawisz sterujący jest wciśnięty. Interpretacja klawisza sterującego z kluczami innymi niż ASCII („obcymi”) również różni się w zależności od systemu.
Znaki kontrolne są często renderowane do postaci nadającej się do wydrukowania, znanej jako notacja karetki , poprzez wydrukowanie daszka (^), a następnie znaku ASCII, który ma wartość znaku kontrolnego plus 64. Znaki kontrolne generowane za pomocą klawiszy literowych są zatem wyświetlane z dużymi literami forma listu. Na przykład ^G reprezentuje kod 7, który jest generowany przez naciśnięcie klawisza G, gdy klawisz sterujący jest wciśnięty.
Klawiatury mają również zwykle kilka pojedynczych klawiszy, które generują kody znaków sterujących. Na przykład klawisz oznaczony „Backspace” zazwyczaj generuje kod 8, „Tab” kod 9, „Enter” lub „Return” kod 13 (chociaż niektóre klawiatury mogą generować kod 10 dla „Enter”).
Wiele klawiatur zawiera klawisze, które nie odpowiadają żadnym drukowalnym lub sterującym znakom ASCII, na przykład strzałki sterowania kursorem i funkcje przetwarzania tekstu . Powiązane naciśnięcia klawiszy są przekazywane do programów komputerowych za pomocą jednej z czterech metod: przywłaszczania nieużywanych w inny sposób znaków kontrolnych; używając kodowania innego niż ASCII; przy użyciu wieloznakowych sekwencji kontrolnych; lub użycie dodatkowego mechanizmu poza generowaniem znaków. „Głupie” terminale komputerowe zwykle używają sekwencji kontrolnych. Klawiatury podłączane do samodzielnych komputerów osobistych wyprodukowanych w latach 80. zazwyczaj wykorzystują jedną (lub obie) z dwóch pierwszych metod. Nowoczesne klawiatury komputerowe generują kody skanujące , które identyfikują określone fizyczne klawisze, które są wciskane; oprogramowanie komputerowe określa następnie sposób obsługi naciskanych klawiszy, w tym jedną z czterech metod opisanych powyżej.
Cel projektu
Znaki kontrolne zostały zaprojektowane tak, aby można je było podzielić na kilka grup: sterowanie drukowaniem i wyświetlaniem, strukturyzacja danych, sterowanie transmisją i różne.
Kontrola drukowania i wyświetlania
Znaki kontrolne drukowania były po raz pierwszy używane do sterowania fizycznym mechanizmem drukarek, najwcześniejszego urządzenia wyjściowego. Wczesnym przykładem tego pomysłu było użycie cyfr (FIGS) i liter (LTRS) w kodzie Baudota do przełączania między dwiema stronami kodowymi. Późniejszym, ale wciąż wczesnym przykładem były pozapasmowe znaki kontrolne karetki ASA . Później znaki kontrolne zostały włączone do strumienia danych do wydrukowania. Znak powrotu karetki (CR) wysłany do takiego urządzenia powoduje umieszczenie znaku na krawędzi papieru, od której rozpoczyna się pisanie (może, ale nie musi, również przesunąć pozycję drukowania do następnej linii). Znak wysuwu wiersza (LF/NL) powoduje, że urządzenie umieszcza pozycję drukowania w następnym wierszu. Może (lub nie), w zależności od urządzenia i jego konfiguracji, również przesunąć pozycję drukowania na początek następnego wiersza (co byłoby skrajną lewą pozycją w przypadku od lewej do prawej , takich jak alfabety używane w zachodnich językach, a skrajna prawa pozycja dla pism pisanych od prawej do lewej, takich jak alfabet hebrajski i arabski). Pionowe i poziome znaki tabulacji (VT i HT/TAB) powodują, że urządzenie wyjściowe przesuwa pozycję drukowania do następnego tabulatora w kierunku czytania. Znak wysuwu strony (FF/NP) rozpoczyna nowy arkusz papieru i może, ale nie musi, przejść na początek pierwszego wiersza. Znak Backspace (BS) przesuwa pozycję drukowania o jedną spację do tyłu. W drukarkach, w tym terminalach do kopiowania na papierze , jest to najczęściej używane, aby drukarka mogła nadrukowywać znaki w celu utworzenia innych, zwykle niedostępnych znaków. W terminalach wideo i innych elektronicznych urządzeniach wyjściowych często istnieje wybór konfiguracji oprogramowania (lub sprzętu), który umożliwia destrukcyjne cofanie (np. sekwencja BS, SP, BS), które usuwa, lub nieniszczące, które nie. Przesuwanie i przesuwanie znaków (SI i SO) wybierało alternatywne zestawy znaków, czcionki, podkreślenia lub inne tryby drukowania. Sekwencje ucieczki były często używane do zrobienia tego samego.
Wraz z pojawieniem się terminali komputerowych , które nie drukowały fizycznie na papierze, a więc oferowały większą elastyczność w zakresie umieszczania ekranu, wymazywania itp., Dostosowano kody kontrolne drukowania. Na przykład wysuwy formularzy zwykle czyściły ekran, ponieważ nie było nowej strony papieru, do której można by przejść. Opracowano bardziej złożone sekwencje specjalne, aby wykorzystać elastyczność nowych terminali, a nawet nowszych drukarek. Koncepcja postaci kontrolnej zawsze była nieco ograniczająca i była bardzo taka, gdy była używana z nowym, znacznie bardziej elastycznym sprzętem. Sekwencje kontrolne (czasami realizowane jako sekwencje specjalne) mogły pasować do nowej elastyczności i mocy i stały się metodą standardową. Jednak istniała i pozostaje duża różnorodność standardowych sekwencji do wyboru.
Strukturyzacja danych
Separatory (Plik, Grupa, Rekord i Jednostka: FS, GS, RS i US) zostały stworzone do ustrukturyzowania danych, zwykle na taśmie, w celu symulacji kart dziurkowanych . Koniec nośnika (EM) ostrzega, że kończy się taśma (lub inny nośnik zapisu). Podczas gdy wiele systemów używa CR/LF i TAB do strukturyzacji danych, możliwe jest napotkanie znaków kontrolnych separatora w danych, które wymagają ustrukturyzowania. Znaki kontrolne separatora nie są przeciążone; nie ma ich ogólnego zastosowania, z wyjątkiem rozdzielania danych na ustrukturyzowane grupy. Ich wartości liczbowe sąsiadują ze znakiem spacji, który można uznać za członka grupy, jako separatora słów.
Na przykład separator RS jest używany przez dokument RFC 7464 (JSON Text Sequences) do kodowania sekwencji elementów JSON. Każdy element sekwencji rozpoczyna się znakiem RS, a kończy znakiem nowego wiersza. Pozwala to na serializację otwartych sekwencji JSON. Jest to jeden z przesyłania strumieniowego JSON .
Kontrola transmisji
Znaki sterujące transmisją miały na celu uporządkowanie strumienia danych i zarządzanie retransmisją lub płynną awarią, w razie potrzeby, w obliczu błędów transmisji.
Znak początku nagłówka (SOH) miał oznaczać sekcję strumienia danych niezwiązaną z danymi - część strumienia zawierającą adresy i inne dane porządkowe. Początek znaku tekstowego (STX) oznaczał koniec nagłówka i początek tekstowej części strumienia. Znak końca tekstu (ETX) oznaczał koniec danych wiadomości. Powszechnie stosowaną konwencją jest uczynienie dwóch znaków poprzedzających ETX sumą kontrolną lub CRC w celu wykrywania błędów. Znak końca bloku transmisji (ETB) został użyty do wskazania końca bloku danych, w którym dane zostały podzielone na takie bloki w celu transmisji.
Znak ucieczki ( ESC ) miał na celu „cytowanie” następnego znaku, gdyby był to inny znak kontrolny, wydrukowałby go zamiast wykonywania funkcji sterującej. Obecnie prawie nigdy nie jest używany do tego celu. Różne znaki drukowalne są używane jako widoczne „ znaki ucieczki ”, w zależności od kontekstu.
Znak zastępczy ( SUB ) miał na celu żądanie tłumaczenia następnego znaku ze znaku drukowanego na inną wartość, zwykle poprzez ustawienie bitu 5 na zero. Jest to przydatne, ponieważ niektóre nośniki (takie jak arkusze papieru wytwarzane przez maszyny do pisania) mogą przesyłać tylko znaki drukowane. Jednak w systemach MS-DOS z plikami otwieranymi w trybie tekstowym „koniec tekstu” lub „koniec pliku” jest oznaczony tym Ctrl-Z zamiast Ctrl-C lub Ctrl-D , które są powszechne w innych system operacyjny.
Znak anulowania ( CAN ) sygnalizował, że poprzedni element powinien zostać odrzucony. Negatywny znak potwierdzenia ( NAK ) jest definitywną flagą, zwykle oznaczającą, że odbiór był problem i często, że bieżący element powinien zostać wysłany ponownie. Znak potwierdzenia ( ACK ) jest zwykle używany jako flaga wskazująca, że nie wykryto problemu z bieżącym elementem.
Gdy medium transmisyjne jest półdupleksowe (to znaczy może nadawać tylko w jednym kierunku na raz), zwykle istnieje stacja główna, która może nadawać w dowolnym momencie, oraz jedna lub więcej stacji podrzędnych, które nadają, jeśli mają pozwolenie. Znak zapytania ( ENQ ) jest zwykle używany przez stację nadrzędną do żądania od stacji podrzędnej wysłania następnej wiadomości. Stacja podrzędna wskazuje, że zakończyła transmisję, wysyłając znak końca transmisji ( EOT ).
Kody kontrolne urządzeń (od DC1 do DC4) były pierwotnie ogólne i miały być wdrażane w razie potrzeby przez każde urządzenie. Jednak uniwersalną potrzebą w transmisji danych jest zażądanie od nadawcy zaprzestania nadawania, gdy odbiorca chwilowo nie jest w stanie przyjąć więcej danych. Firma Digital Equipment Corporation wymyśliła konwencję, która wykorzystywała 19 (3 znaki sterowania urządzeniem ( DC3 ), znane również jako sterowanie-S lub XOFF ) do transmisji „S” top i 17 (1 znak sterowania urządzeniem ( DC1 ), znany również jako sterowanie -Q lub XON ), aby rozpocząć transmisję. Stał się tak szeroko stosowany, że większość nie zdaje sobie sprawy, że nie jest częścią oficjalnego ASCII. Technika ta, jakkolwiek wdrożona, pozwala uniknąć dodatkowych przewodów w kablu danych przeznaczonych wyłącznie do zarządzania transmisją, co pozwala zaoszczędzić pieniądze. Należy jednak zastosować rozsądny protokół wykorzystania takich sygnałów sterujących przepływem transmisji, aby uniknąć potencjalnych warunków zakleszczenia.
Znak ucieczki łącza danych ( DLE ) miał być sygnałem dla drugiego końca łącza danych, że następujący znak jest znakiem sterującym, takim jak STX lub ETX. Na przykład pakiet może mieć następującą strukturę ( DLE ) <STX> <PAYLOAD> ( DLE ) <ETX>.
Różne kody
Kod 7 ( BEL ) ma na celu wywołanie sygnału dźwiękowego w terminalu odbiorczym.
Wiele znaków sterujących ASCII zostało zaprojektowanych dla urządzeń z tamtych czasów, które nie są często spotykane dzisiaj. Na przykład kod 22, „synchroniczny bezczynność” ( SYN ), został pierwotnie wysłany przez modemy synchroniczne (które muszą stale przesyłać dane), gdy nie było żadnych danych do wysłania. (Współczesne systemy zwykle używają bitu startu do ogłoszenia początku przesyłanego słowa — jest to cecha komunikacji asynchronicznej . Synchroniczne łącza komunikacyjne były częściej spotykane w komputerach typu mainframe, gdzie zazwyczaj były uruchamiane przez korporacyjne łącza dzierżawione w celu połączenia komputera typu mainframe z innym mainframe lub być może minikomputer).
Kod 0 (nazwa kodowa ASCII NUL ) to przypadek szczególny. W taśmie papierowej jest tak, gdy nie ma dziur. Wygodnie jest traktować to jako wypełniający , który nie ma innego znaczenia. Ponieważ pozycja znaku NUL nie ma dziurkowanych otworów, można go później zastąpić dowolnym innym znakiem, dlatego zwykle był używany do rezerwowania miejsca, albo do poprawiania błędów, albo do wstawiania informacji, które byłyby dostępne w późniejszym czasie lub w innym miejscu. W informatyce jest często używany do wypełniania rekordów o stałej długości, a częściej do oznaczania końca łańcucha.
Kod 127 ( DEL , znany również jako „rubout”) jest również przypadkiem szczególnym. Jego 7-bitowy kod jest złożony z wszystkich bitów w formacie binarnym, co zasadniczo wymazało komórkę znaku na taśmie papierowej po przedziurawieniu. Taśma papierowa była powszechnym nośnikiem pamięci, gdy opracowywano ASCII, a historia komputerów sięgała sprzętu do łamania szyfrów z czasów II wojny światowej w Biurze Szyfrów . Taśma papierowa stała się przestarzała w latach 70., więc ten sprytny aspekt ASCII rzadko był potem używany. Niektóre systemy (takie jak oryginalne Apples) przekonwertowały go na backspace. Ale ponieważ jego kod mieści się w zakresie zajmowanym przez inne znaki drukowalne i ponieważ nie miał oficjalnego przypisanego glifu, wielu dostawców sprzętu komputerowego używało go jako dodatkowego znaku drukowalnego (często całkowicie czarnego znaku „ramki” przydatnego do wymazywania tekstu przez nadruk z atramentem).
Niekasowalne programowalne pamięci ROM są zwykle realizowane jako tablice topliwych elementów, z których każdy reprezentuje bit , który można przełączać tylko w jeden sposób, zwykle od jednego do zera. W takich PROMach znaki DEL i NUL mogą być używane w taki sam sposób, jak były używane na taśmie dziurkowanej: jeden do rezerwowania bezsensownych bajtów wypełniających, które można zapisać później, a drugi do konwersji zapisanych bajtów na bezsensowne bajty wypełniające. W przypadku PROM, które przełączają jeden na zero, role NUL i DEL są odwrócone; ponadto DEL będzie działać tylko ze znakami 7-bitowymi, które są obecnie rzadko używane; w przypadku treści 8-bitowych zamiast DEL można użyć kodu znaku 255, powszechnie definiowanego jako znak spacji nierozdzielającej.
Wiele systemów plików nie zezwala na znaki kontrolne w nazwach plików , ponieważ mogą one mieć zarezerwowane funkcje.
Zobacz też
- Klawisze strzałek#Klawisze HJKL HJKL jako klawisze strzałek, używane na terminalu ADM-3A
- Kody kontrolne C0 i C1
- Sekwencja ewakuacyjna
- Sygnalizacja w paśmie
- Biały znak
Uwagi i odniesienia
Linki zewnętrzne
- ISO IR 1 C0 Zestaw ISO 646 (PDF)