Jeżeli ktoś korzystał kiedyś z DOS-a, Norton Commandera, Turbo Pascala, starych instalatorów, BIOS-ów albo terminalowych programów tekstowych, to prawdopodobnie kojarzy charakterystyczne ramki, bloki, cieniowania i nietypowe symbole wyświetlane na ekranie. Znaki takie jak , , , , , , , , , nie były przypadkową ozdobą. To był ważny element tekstowego interfejsu użytkownika.

W czasach, gdy grafika komputerowa była ograniczona, a wiele programów działało w trybie tekstowym, takie znaki pozwalały budować okna, menu, panele, tabelki i proste elementy graficzne. Dziś wygląda to retro, ale wtedy było bardzo praktyczne.

Wiele osób pamięta też metodę wpisywania takich znaków za pomocą klawisza Alt. Przytrzymywało się Alt, wpisywało numer na klawiaturze numerycznej, a po puszczeniu klawisza pojawiał się konkretny znak. Na przykład:

Alt + 219 dawało znak

Alt + 176 dawało znak

Alt + 196 dawało znak

Alt + 179 dawało znak

Potocznie mówiło się na to „kody ASCII”, ale technicznie sprawa jest trochę ciekawsza.

Czym są ALT kody?

ALT kody to sposób wpisywania znaków przez podanie ich numeru z klawiatury numerycznej. W klasycznym środowisku DOS/IBM PC wiele z tych znaków pochodziło nie z czystego ASCII, tylko ze strony kodowej CP437, czyli oryginalnej strony kodowej IBM PC.

Klasyczne ASCII obejmuje zakres od 0 do 127. Są tam podstawowe litery alfabetu łacińskiego, cyfry, znaki interpunkcyjne i znaki sterujące. Natomiast znaki z numerami od 128 do 255 należą już do rozszerzonego zestawu znaków. W DOS-ie bardzo ważną rolę pełniła właśnie strona kodowa CP437.

To w niej znajdziemy między innymi:

  • znaki pseudograficzne do budowania ramek,
  • bloki i cieniowania,
  • symbole matematyczne,
  • wybrane litery narodowe,
  • znaki greckie,
  • nietypowe symbole używane w dawnych programach tekstowych.

Dlatego kiedy ktoś mówi, że Alt + 219 to „kod ASCII pełnego bloku”, to jest to uproszczenie. Dokładniej jest to znak o kodzie 219 w stronie kodowej CP437, czyli pełny blok .

ASCII, CP437 i stare komputery

W starych komputerach znak nie był traktowany tak jak dzisiaj, gdzie system operacyjny korzysta z fontów, Unicode i renderowania ekranowego. W klasycznym trybie tekstowym komputer przechowywał w pamięci kod znaku oraz jego atrybuty, na przykład kolor. Dopiero sprzętowy generator znaków, często zapisany w ROM-ie, zamieniał dany kod na konkretną bitmapę znaku.

W dużym uproszczeniu wyglądało to tak:

kod znaku w pamięci -> strona kodowa -> generator znaków / font ROM -> znak widoczny na ekranie

Dlatego ten sam numer znaku mógł dawać różny efekt na różnych maszynach, terminalach lub w różnych stronach kodowych. IBM PC, terminale 3270, karty MDA, CGA czy inne rozwiązania sprzętowe mogły używać różnych zestawów znaków albo odmian fontów zapisanych w ROM-ie.

W praktyce dla użytkownika DOS-a najważniejsze było jednak to, że można było użyć kombinacji Alt + numer i szybko wpisać konkretny znak.

Jak wpisywać ALT kody?

Najczęściej robi się to tak:

  1. Włącz klawiaturę numeryczną, czyli Num Lock.
  2. Przytrzymaj lewy Alt.
  3. Wpisz numer znaku na klawiaturze numerycznej.
  4. Puść Alt.
  5. Znak powinien pojawić się w aktywnym programie.

Przykład:

Alt + 219 ->

Alt + 196 ->

Alt + 179 ->

Warto pamiętać, że w nowoczesnym Windows wynik może zależeć od programu, strony kodowej, fontu oraz tego, czy numer wpisujemy z zerem na początku. W klasycznym DOS-owym sensie najczęściej chodzi jednak o zestaw CP437.

ALT kody 1-31 – znaki specjalne

Kod Znak Opis
Alt+1 biała buźka
Alt+2 czarna buźka
Alt+3 serce
Alt+4 karo
Alt+5 trefl
Alt+6 pik
Alt+7 punkt
Alt+8 odwrócony punkt
Alt+9 okrąg
Alt+10 okrąg z wypełnieniem
Alt+11 symbol męski
Alt+12 symbol żeński
Alt+13 nuta
Alt+14 podwójna nuta
Alt+15 słońce
Alt+16 strzałka w prawo
Alt+17 strzałka w lewo
Alt+18 strzałka góra-dół
Alt+19 podwójny wykrzyknik
Alt+20 znak akapitu
Alt+21 § paragraf
Alt+22 poziomy blok
Alt+23 strzałka pionowa z podstawą
Alt+24 strzałka w górę
Alt+25 strzałka w dół
Alt+26 strzałka w prawo
Alt+27 strzałka w lewo
Alt+28 kąt prosty
Alt+29 strzałka lewo-prawo
Alt+30 trójkąt w górę
Alt+31 trójkąt w dół

ALT kody 32-127 – podstawowy ASCII

Kod Znak Opis
Alt+32 spacja odstęp
Alt+33 ! wykrzyknik
Alt+34 cudzysłów
Alt+35 # hash
Alt+36 $ dolar
Alt+37 % procent
Alt+38 & ampersand
Alt+39 apostrof
Alt+40 ( nawias otwierający
Alt+41 ) nawias zamykający
Alt+42 * gwiazdka
Alt+43 + plus
Alt+44 , przecinek
Alt+45 minus / dywiz
Alt+46 . kropka
Alt+47 / slash
Alt+48 0 cyfra 0
Alt+49 1 cyfra 1
Alt+50 2 cyfra 2
Alt+51 3 cyfra 3
Alt+52 4 cyfra 4
Alt+53 5 cyfra 5
Alt+54 6 cyfra 6
Alt+55 7 cyfra 7
Alt+56 8 cyfra 8
Alt+57 9 cyfra 9
Alt+58 : dwukropek
Alt+59 ; średnik
Alt+60 < mniejsze niż
Alt+61 = znak równości
Alt+62 > większe niż
Alt+63 ? znak zapytania
Alt+64 @ małpa
Alt+65 A wielka litera A
Alt+66 B wielka litera B
Alt+67 C wielka litera C
Alt+68 D wielka litera D
Alt+69 E wielka litera E
Alt+70 F wielka litera F
Alt+71 G wielka litera G
Alt+72 H wielka litera H
Alt+73 I wielka litera I
Alt+74 J wielka litera J
Alt+75 K wielka litera K
Alt+76 L wielka litera L
Alt+77 M wielka litera M
Alt+78 N wielka litera N
Alt+79 O wielka litera O
Alt+80 P wielka litera P
Alt+81 Q wielka litera Q
Alt+82 R wielka litera R
Alt+83 S wielka litera S
Alt+84 T wielka litera T
Alt+85 U wielka litera U
Alt+86 V wielka litera V
Alt+87 W wielka litera W
Alt+88 X wielka litera X
Alt+89 Y wielka litera Y
Alt+90 Z wielka litera Z
Alt+91 [ nawias kwadratowy otwierający
Alt+92 \ backslash
Alt+93 ] nawias kwadratowy zamykający
Alt+94 ^ daszek
Alt+95 _ podkreślenie
Alt+96 ` grawis
Alt+97 a mała litera a
Alt+98 b mała litera b
Alt+99 c mała litera c
Alt+100 d mała litera d
Alt+101 e mała litera e
Alt+102 f mała litera f
Alt+103 g mała litera g
Alt+104 h mała litera h
Alt+105 i mała litera i
Alt+106 j mała litera j
Alt+107 k mała litera k
Alt+108 l mała litera l
Alt+109 m mała litera m
Alt+110 n mała litera n
Alt+111 o mała litera o
Alt+112 p mała litera p
Alt+113 q mała litera q
Alt+114 r mała litera r
Alt+115 s mała litera s
Alt+116 t mała litera t
Alt+117 u mała litera u
Alt+118 v mała litera v
Alt+119 w mała litera w
Alt+120 x mała litera x
Alt+121 y mała litera y
Alt+122 z mała litera z
Alt+123 { klamra otwierająca
Alt+124 | pionowa kreska
Alt+125 } klamra zamykająca
Alt+126 ~ tylda
Alt+127 symbol domku

ALT kody 128-175 – litery i symbole CP437

Kod Znak Opis
Alt+128 Ç C z cedillą
Alt+129 ü u z umlautem
Alt+130 é e z akcentem
Alt+131 â a z daszkiem
Alt+132 ä a z umlautem
Alt+133 à a z akcentem
Alt+134 å a z kółkiem
Alt+135 ç c z cedillą
Alt+136 ê e z daszkiem
Alt+137 ë e z umlautem
Alt+138 è e z akcentem
Alt+139 ï i z umlautem
Alt+140 î i z daszkiem
Alt+141 ì i z akcentem
Alt+142 Ä A z umlautem
Alt+143 Å A z kółkiem
Alt+144 É E z akcentem
Alt+145 æ ligatura ae
Alt+146 Æ ligatura AE
Alt+147 ô o z daszkiem
Alt+148 ö o z umlautem
Alt+149 ò o z akcentem
Alt+150 û u z daszkiem
Alt+151 ù u z akcentem
Alt+152 ÿ y z umlautem
Alt+153 Ö O z umlautem
Alt+154 Ü U z umlautem
Alt+155 ¢ cent
Alt+156 £ funt
Alt+157 ¥ jen
Alt+158 peseta
Alt+159 ƒ znak florina
Alt+160 á a z akcentem
Alt+161 í i z akcentem
Alt+162 ó o z akcentem
Alt+163 ú u z akcentem
Alt+164 ñ n z tyldą
Alt+165 Ñ N z tyldą
Alt+166 ª żeński wskaźnik porządkowy
Alt+167 º męski wskaźnik porządkowy
Alt+168 ¿ odwrócony znak zapytania
Alt+169 odwrócony znak not
Alt+170 ¬ logiczne nie
Alt+171 ½ jedna druga
Alt+172 ¼ jedna czwarta
Alt+173 ¡ odwrócony wykrzyknik
Alt+174 « cudzysłów francuski lewy
Alt+175 » cudzysłów francuski prawy

ALT kody 176-223 – pseudografika DOS-a

To najważniejsza część zestawu, jeżeli interesują nas stare programy tekstowe, ramki, bloki i retro interfejsy. W tym zakresie znajdują się znaki, dzięki którym budowano okna, menu, tabele i proste elementy graficzne w trybie tekstowym.

Kod Znak Opis
Alt+176 lekkie cieniowanie
Alt+177 średnie cieniowanie
Alt+178 mocne cieniowanie
Alt+179 pojedyncza linia pionowa
Alt+180 połączenie linii w lewo
Alt+181 pojedyncza pionowa, podwójna w lewo
Alt+182 podwójna pionowa, pojedyncza w lewo
Alt+183 narożnik prawy górny mieszany
Alt+184 narożnik prawy górny mieszany
Alt+185 podwójne połączenie w lewo
Alt+186 podwójna linia pionowa
Alt+187 podwójny prawy górny róg
Alt+188 podwójny prawy dolny róg
Alt+189 narożnik prawy dolny mieszany
Alt+190 narożnik prawy dolny mieszany
Alt+191 pojedynczy prawy górny róg
Alt+192 pojedynczy lewy dolny róg
Alt+193 połączenie do góry
Alt+194 połączenie w dół
Alt+195 połączenie w prawo
Alt+196 pojedyncza linia pozioma
Alt+197 skrzyżowanie pojedynczych linii
Alt+198 połączenie mieszane w prawo
Alt+199 połączenie mieszane w prawo
Alt+200 podwójny lewy dolny róg
Alt+201 podwójny lewy górny róg
Alt+202 podwójne połączenie do góry
Alt+203 podwójne połączenie w dół
Alt+204 podwójne połączenie w prawo
Alt+205 podwójna linia pozioma
Alt+206 skrzyżowanie podwójnych linii
Alt+207 połączenie mieszane do góry
Alt+208 połączenie mieszane do góry
Alt+209 połączenie mieszane w dół
Alt+210 połączenie mieszane w dół
Alt+211 narożnik lewy dolny mieszany
Alt+212 narożnik lewy dolny mieszany
Alt+213 narożnik lewy górny mieszany
Alt+214 narożnik lewy górny mieszany
Alt+215 skrzyżowanie mieszane
Alt+216 skrzyżowanie mieszane
Alt+217 pojedynczy prawy dolny róg
Alt+218 pojedynczy lewy górny róg
Alt+219 pełny blok
Alt+220 dolny półblok
Alt+221 lewy półblok
Alt+222 prawy półblok
Alt+223 górny półblok

ALT kody 224-255 – greka, matematyka i symbole

Kod Znak Opis
Alt+224 α alfa
Alt+225 ß beta / ostre s
Alt+226 Γ gamma wielka
Alt+227 π pi
Alt+228 Σ sigma wielka
Alt+229 σ sigma mała
Alt+230 µ mikro
Alt+231 τ tau
Alt+232 Φ fi wielkie
Alt+233 Θ theta wielka
Alt+234 Ω omega wielka
Alt+235 δ delta
Alt+236 nieskończoność
Alt+237 φ fi małe
Alt+238 ε epsilon
Alt+239 część wspólna
Alt+240 identyczne / równoważne
Alt+241 ± plus minus
Alt+242 większe lub równe
Alt+243 mniejsze lub równe
Alt+244 górna część znaku całki
Alt+245 dolna część znaku całki
Alt+246 ÷ dzielenie
Alt+247 w przybliżeniu
Alt+248 ° stopień
Alt+249 punkt środkowy
Alt+250 · kropka środkowa
Alt+251 pierwiastek
Alt+252 n w indeksie górnym
Alt+253 ² dwa w indeksie górnym
Alt+254 czarny kwadrat
Alt+255 nbsp twarda / pusta spacja

Najbardziej przydatne ALT kody do ramek i retro grafiki

Jeżeli chcesz szybko budować ramki w stylu DOS-a, najczęściej przydają się poniższe znaki.

Kod Znak Zastosowanie
Alt+176 delikatne tło, cieniowanie
Alt+177 średnie cieniowanie
Alt+178 mocne cieniowanie
Alt+179 pionowa linia pojedyncza
Alt+196 pozioma linia pojedyncza
Alt+218 lewy górny róg pojedynczej ramki
Alt+191 prawy górny róg pojedynczej ramki
Alt+192 lewy dolny róg pojedynczej ramki
Alt+217 prawy dolny róg pojedynczej ramki
Alt+197 skrzyżowanie pojedynczych linii
Alt+186 pionowa linia podwójna
Alt+205 pozioma linia podwójna
Alt+201 lewy górny róg podwójnej ramki
Alt+187 prawy górny róg podwójnej ramki
Alt+200 lewy dolny róg podwójnej ramki
Alt+188 prawy dolny róg podwójnej ramki
Alt+206 skrzyżowanie podwójnych linii
Alt+219 pełny blok
Alt+220 dolny półblok
Alt+223 górny półblok

Przykładowa pojedyncza ramka:

┌──────────────┐
│  IBM PC DOS  │
└──────────────┘

Przykładowa podwójna ramka:

╔══════════════╗
║  IBM PC DOS  ║
╚══════════════╝

Przykładowe cieniowanie:

░░░░░▒▒▒▒▒▓▓▓▓▓█████

Dlaczego te znaki były tak ważne?

Dzisiaj łatwo zapomnieć, że przez długi czas komputer nie potrzebował graficznego interfejsu, żeby wyglądać „porządnie”. Tryb tekstowy był szybki, oszczędny i bardzo czytelny. Dzięki znakom pseudograficznym można było tworzyć interfejsy, które wyglądały jak okienkowe aplikacje, mimo że w rzeczywistości składały się tylko z tekstu.

Tak działały między innymi:

  • menedżery plików,
  • instalatory,
  • programy diagnostyczne,
  • konfiguratory BIOS-u,
  • narzędzia serwisowe,
  • edytory tekstowe,
  • środowiska programistyczne,
  • programy księgowe i magazynowe,
  • systemy terminalowe.

Znaki pseudograficzne miały tę zaletę, że były obsługiwane sprzętowo i nie wymagały trybu graficznego. Wystarczyło wpisać odpowiedni kod znaku do pamięci ekranu, a karta graficzna lub terminal sam wyświetlał odpowiedni symbol.

ALT kody jako klimat DOS-a, instalatorów i ASCII artu

ALT kody i znaki pseudograficzne nie były tylko techniczną ciekawostką. Z czasem stały się częścią wizualnego języka komputerów osobistych. To właśnie z takich znaków tworzono ramki, menu, paski postępu, cienie, proste logotypy i całe ekrany powitalne programów. W wielu przypadkach nie była to jeszcze grafika w dzisiejszym rozumieniu, ale efekt potrafił być naprawdę klimatyczny.

Wystarczyło kilka znaków: , , , , , , , , , , żeby zbudować coś, co wyglądało jak prawdziwy interfejs. Instalatory gier, konfiguratory dźwięku, programy narzędziowe, menedżery plików i stare aplikacje DOS-owe często wyglądały dzięki temu dużo bardziej „profesjonalnie”, niż wynikałoby to z samego trybu tekstowego.

Dobry przykład to prosty ekran instalatora:

╔══════════════════════════════════════╗
║          GAME INSTALLER              ║
╠══════════════════════════════════════╣
║                                      ║
║  Installing files...                 ║
║                                      ║
║  ▓▓▓▓▓▓▓▓▓▓░░░░░░░░░░  52%           ║
║                                      ║
║  Copying: LEVEL3.DAT                 ║
║                                      ║
╚══════════════════════════════════════╝

Albo klasyczne menu w stylu DOS-a:

┌──────────────────────────────┐
│  1. Start game               │
│  2. Sound setup              │
│  3. Install to hard drive    │
│  4. Exit                     │
└──────────────────────────────┘

Takie rzeczy miały swój charakter. Dzisiaj patrzymy na nie z nostalgią, ale wtedy były bardzo praktyczne. Tryb tekstowy działał szybko, był lekki, czytelny i nie wymagał zaawansowanej karty graficznej. Programista mógł zbudować całkiem wygodny interfejs, mając do dyspozycji tylko znaki, kolory i atrybuty tekstu.

Osobną kulturą był też ASCII art i ANSI art. Na BBS-ach, w scenie komputerowej, w cracktrach, trainerach, demach i różnych programach hobbystycznych tworzono całe logotypy oraz ilustracje zbudowane ze znaków tekstowych. Czasami wykorzystywano zwykłe znaki ASCII, a czasami właśnie rozszerzony zestaw IBM PC, czyli CP437. Znaki blokowe i cieniowanie pozwalały uzyskać coś w rodzaju tekstowego pixel artu.

Można powiedzieć, że ograniczenia sprzętowe wymusiły bardzo kreatywne podejście do obrazu. Skoro nie zawsze można było wygodnie używać grafiki bitmapowej, tworzono grafikę ze znaków. I właśnie dlatego stare instalatory, menu DOS-owe czy ekrany programów narzędziowych miały tak specyficzny klimat. Były proste, ale jednocześnie miały styl, którego trudno pomylić z czymkolwiek innym.

Dlaczego na różnych komputerach te same kody mogły wyglądać inaczej?

To bardzo ważna rzecz w kontekście retro komputerów. Numer znaku to jedno, ale sposób jego interpretacji to drugie.

Na komputerze IBM PC kod 219 w CP437 oznaczał pełny blok . Ale w innym systemie, terminalu albo stronie kodowej ten sam numer mógł oznaczać coś innego. Wynikało to z tego, że różne maszyny mogły mieć własne kodowania oraz własne fonty zapisane w ROM-ie.

Dlatego analizując stare karty graficzne, terminale, font ROM-y czy EPROM-y z zestawami znaków, trzeba uważać. Sam bajt nie mówi jeszcze wszystkiego. Trzeba wiedzieć, jakiego kodowania używał dany sprzęt i jaki generator znaków odpowiadał za wyświetlanie obrazu.

To szczególnie ciekawe w świecie IBM, gdzie spotykamy różne rodziny urządzeń, na przykład klasyczne PC z MDA/CGA, terminale 3270 czy specjalizowane karty komunikacyjne i terminalowe. Każde z tych rozwiązań mogło mieć własną logikę kodowania znaków.

ALT kody dzisiaj

ALT kody nadal mogą działać w Windows, ale nie zawsze zachowują się dokładnie tak jak w DOS-ie. Współczesne systemy korzystają z Unicode, różnych fontów i innych mechanizmów renderowania tekstu. Dlatego część znaków może wyświetlać się inaczej, a część może nie pojawić się wcale, jeśli użyty font ich nie obsługuje.

Mimo to tabele ALT kodów są nadal przydatne. Przydają się przy pracy z retro komputerami, dokumentowaniu starych programów, analizie BIOS-ów, opisywaniu font ROM-ów, tworzeniu tekstowych ramek albo po prostu z nostalgii za dawnym stylem interfejsów komputerowych.

W praktyce najczęściej warto zapamiętać kilka kodów: 176, 177, 178, 179, 186, 196, 205, 201, 187, 200, 188, 218, 191, 192, 217 i 219. To one dają najwięcej możliwości przy tworzeniu prostych ramek i znaków blokowych.

ALT kody są więc małym, ale bardzo ciekawym fragmentem historii komputerów. Pokazują czasy, w których jeden bajt, jedna strona kodowa i jeden font zapisany w ROM-ie wystarczały, żeby zbudować cały tekstowy interfejs użytkownika.

Kategorie: Varia

mgr Bartłomiej_Speth

Absolwent wydziału Fizyki Uniwersytetu im. Adama Mickiewicza w Poznaniu na kierunku Fizyka z informatyką. Miłośnik komputerów, sprzętu komputerowego oraz otwartego oprogramowania. Specjalizuje się w budowie, naprawach, modyfikacjach laptopów jak i jednostek stacjonarnych. Zapalony PC'towiec od momentu, w którym otrzymał swój pierwszy komputer z procesorem 80286.

0 komentarzy

Dodaj komentarz

Symbol zastępczy awatara

Twój adres email nie zostanie opublikowany. Wymagane pola są oznaczone *