Znaki kontrolne drukarki kodów maszynowych IBM
Wczesne drukarki mainframe były zwykle drukarkami liniowymi . Drukarki wierszowe udostępniają ograniczony zestaw poleceń do kontrolowania sposobu przesuwania papieru podczas drukowania wierszy. Aplikacja pisząca raporty, listy itp., która ma zostać wydrukowana, musi zawierać te polecenia w danych wydruku. Te jednoznakowe polecenia drukowania nazywane są znakami sterującymi drukarki .
Wprowadzenie do znaków sterujących drukowaniem
Znaki kontrolne drukarki i znaki kontrolne karetki to terminy IBM mainframe, które oznaczają specjalne znaczenie, jakie może mieć pierwszy znak w wierszu tekstu przeznaczonego do druku. Pierwszy znak każdego wiersza tekstu jest interpretowany jako znak sterujący lub polecenie drukarki zamiast znaku do wydrukowania, jeśli odpowiedni atrybut jest ustawiony dla zestawu danych do drukowania ( zestaw danych to komputer mainframe, co jest znane jako plik na innych system operacyjny).
Jak działają znaki kontrolne drukarki
Chociaż później w większości zostały zastąpione wersjami elektronicznymi, drukarki liniowe początkowo używały pętli dziurkowanej taśmy papierowej do kontrolowania ruchu papieru podczas drukowania. Taśma ta nazywana jest taśmą kontrolną karetki i jest montowana w drukarce. Zapętlona taśma karetki porusza się synchronicznie ze strumieniem składanego papieru .
Drukarki liniowe posiadają 12 czujników do rozpoznawania 12 niezależnych pozycji na taśmie kontrolnej karetki. Każda pozycja nazywana jest kanałem , ponumerowanym od 1 do 12. Jeśli w kanale jest dziurkowany otwór, oznacza on pozycję na stronie, do której drukarka może szybko „przeskoczyć”, przesuwając się do przodu, aż otwór zostanie wykryty przez odpowiedni czujnik kanałowy. Nazywa się to przejściem do kanału o numerze n .
Polecenia są zaimplementowane w taki sposób, że każdy z 12 kanałów można przeskoczyć. Zamiast pisać puste linie wydruku, aplikacje mogą po prostu przeskoczyć do predefiniowanego kanału, jeśli nic nie ma być zapisane między bieżącą pozycją a pozycją docelową, co stanowi ogromny wzrost wydajności w tym czasie.
Oprócz poleceń przejścia do kanału istnieją inne polecenia, które drukarka interpretuje jako pozostawanie w bieżącym wierszu lub odstęp o jeden, dwa lub trzy wiersze. Pozostając na bieżącej linii, można utworzyć:
- Pogrubienie tekstu poprzez przepisanie tego samego tekstu dwa lub trzy razy w tym samym wierszu. W wyniku tego powtarzanego drukowania na papierze nałożono więcej atramentu, co prowadziło do pewnego rodzaju pogrubionego wyglądu tekstu.
- Podkreślony tekst, wpisując znaki podkreślenia w żądanych miejscach po napisaniu tekstu, który ma zostać podkreślony.
- Przekreśl tekst, wpisując kreski w żądanych miejscach po napisaniu tekstu do przekreślenia.
Poinstruowanie drukarki, aby przeszła do kanału, który nie jest dziurkowany, spowoduje, że drukarka będzie kontynuować podawanie papieru z dużą prędkością. Może to być spowodowane niezgodnością między zainstalowaną taśmą a tą, której oczekuje aplikacja.
Specjalne znaczenie kanału 1
Zgodnie z konwencją pozycja na kartce papieru, w której ma być zapisany pierwszy drukowany wiersz, jest powiązana z kanałem 1 . Na przykład, jeśli pierwsza linia tekstu musi zawsze znajdować się w fizycznej linii 3 dla danej formy, to otwór kanału 1 musi być wycięty w linii 3 taśmy kontrolnej karetki.
Zgodnie z konwencją aplikacje na komputerach mainframe IBM zawsze przeskakują do kanału 1 podczas rozpoczynania nowej strony logicznej.
Rodzaje znaków kontrolnych drukarki
Zestawy danych drukowania w systemach operacyjnych IBM mainframe mogą mieć jeden z dwóch wariantów znaków sterujących drukarki:
- Znaki kontrolne ASA , zobacz Znaki kontrolne karetki ASA .
- Znaki kontrolne maszyny IBM . Opisane w tym artykule.
Atrybut określający obecność znaków sterujących drukowaniem jest częścią atrybutu Record Format (inaczej RECFM), dlatego musi dopuszczać dwa warianty:
- RECFM=..A określa, że zestaw danych zawiera znaki kontrolne ASA.
- RECFM=..M określa, że zestaw danych zawiera znaki sterujące maszyny IBM.
Znaki kontrolne ASA
Znaki kontrolne ASA to logiczne polecenia drukarki. Informują drukarkę, jak daleko ma przesunąć papier przed wydrukowaniem bieżącego wiersza tekstu. Wszystkie znaki kontrolne ASA są znakami wyświetlanymi. Drukarki same nie rozumieją tych znaków, dlatego sterownik drukarki musi przetłumaczyć je na odpowiednie polecenia drukarki podczas wysyłania danych drukowania do drukarki.
Znaki kontrolne maszyny IBM
Z kolei znaki sterujące maszyną to polecenia sprzętowe, które są zrozumiałe dla drukarek wierszowych IBM. Dlatego są zależne od sprzętu lub zdeterminowane przez sprzęt. IBM zdefiniował ten zestaw poleceń dla swoich drukarek wierszy i upewnił się, że wszystkie ich drukarki wierszy je rozumieją. Inni producenci drukarek liniowych (mainframe) również musieli upewnić się, że ich drukarki rozumieją te polecenia. Ponieważ znaki sterujące maszyny są poleceniami sprzętowymi, wiele z nich nie jest znakami wyświetlanymi, dlatego znaki sterujące maszyny są zawsze określane jako wartości szesnastkowe.
Główna różnica między znakami ASA i maszynowymi
Główną różnicą między tymi dwoma zestawami znaków sterujących drukarki może być przenośność znaków sterujących ASA w porównaniu do zależności sprzętowej znaków sterujących maszyny. Fakt, że formanty ASA były spacją przed zapisem , podczas gdy kontrolki maszyny były spacją po zapisie , może wymagać konwersji niektórych strumieni danych.
Obsługa języków do sterowania drukarką
Wiele języków programowania po prostu umieszcza żądany znak kontrolny w pierwszym bajcie wiersza, który ma zostać wydrukowany. COBOL i PL/I mają również niezależną od systemu metodę określania kontrolek drukarki. Kompilator lub środowisko uruchomieniowe przetłumaczy te opcje na odpowiedni znak kontrolny.
COBOL
COBOL używa składni WRITE nazwa-rekordu AFTER ADVANCING n Lines.
, gdzie nazwa-rekordu to nazwa obszaru zawierającego linię, a n to liczba linii. Dodatkowo można użyć PRZED PRZEJŚCIEM lub
PRZED|PO PRZEJŚCIU NA GÓRĘ,
aby przejść na początek nowej strony.
PL/I
PL/I używa składni PUT SKIP(n) ...
aby pominąć n wierszy przed wydrukowaniem lub PUT PAGE ...
aby przejść do nowej strony.
Lista znaków kontrolnych drukowania maszyny IBM
Firma IBM zdefiniowała dwa zestawy poleceń drukarki, dlatego dostępne są dwa zestawy znaków sterujących drukarki. Pierwszy zestaw poleceń nie wysyłał do drukarki żadnych danych do wydrukowania, a jedynie instrukcję ruchu papieru. Są to tak zwane polecenia natychmiastowe . Drugi zestaw poleceń wysyła do drukarki dane do wydrukowania w bieżącym wierszu oraz instrukcję ruchu papieru. Należy zauważyć , że w przeciwieństwie do znaków sterujących ASA, znaki sterujące drukowania maszyny IBM proszą drukarkę, aby najpierw wydrukowała dane w bieżącym wierszu, a następnie przesunęła papier.
Natychmiastowe polecenia
Te polecenia nie wysyłają żadnych danych do drukarki. Polecenia tylko proszą drukarkę o przesunięcie papieru.
Kod kontrolny | Działanie |
---|---|
x'03' | Bez operacji. |
x'0B' | Spacja 1 wiersz natychmiast |
x'13' | Spacja 2 wiersze natychmiast |
x'1B' | Spacja 3 wiersze natychmiast |
x'8B' | Natychmiastowe przejście do kanału 1 |
x'93' | Natychmiastowe przejście do kanału 2 |
x'9B' | Natychmiastowe przejście do kanału 3 |
x'A3' | Natychmiastowe przejście do kanału 4 |
x'AB' | Natychmiast przejdź do kanału 5 |
x'B3' | Natychmiast przejdź do kanału 6 |
x'BB' | Natychmiast przejdź do kanału 7 |
x'C3' | Natychmiast przejdź do kanału 8 |
x'CB' | Natychmiast przejdź do kanału 9 |
x'D3' | Natychmiast przejdź do kanału 10 |
x'DB' | Natychmiast przejdź do kanału 11 |
x'E3' | Natychmiast przejdź do kanału 12 |
Polecenia zapisu i spacji
Polecenia zapisu i spacji proszą drukarkę o zapisanie danych w wierszu, a następnie przesunięcie papieru.
Kod kontrolny | Działanie |
---|---|
x'01' | Pisz bez spacji |
x'09' | Napisz i spacji 1 wiersz |
x'11' | Napisz i spacji 2 wiersze |
x'19' | Napisz i spacji 3 wiersze |
x'89' | Napisz i przejdź do kanału 1 |
x'91' | Napisz i przejdź do kanału 2 |
x'99' | Napisz i przejdź do kanału 3 |
x'A1' | Napisz i przejdź do kanału 4 |
x'A9' | Napisz i przejdź do kanału 5 |
x'B1' | Napisz i przejdź do kanału 6 |
x'B9' | Napisz i przejdź do kanału 7 |
x'C1' | Napisz i przejdź do kanału 8 |
x'C9' | Napisz i przejdź do kanału 9 |
x'D1' | Napisz i przejdź do kanału 10 |
x'D9' | Napisz i przejdź do kanału 11 |
x'E1' | Napisz i przejdź do kanału 12 |
Zobacz też
- Znaki kontrolne karetki ASA
- Drukarka liniowa
- Taśma kontrolna przewozu
- Zestaw danych (komputer główny IBM)
- z/OS DFSMS Używanie zestawów danych -> Używanie opcjonalnych znaków sterujących
- PSF dla systemu z/OS: Podręcznik użytkownika -> Używanie znaków sterujących karetki w wierszowych rekordach danych
- „Prezentacja funkcji zaawansowanych - Przewodnik programowania i odniesienie do danych liniowych -> Rozdział 2. Dane liniowe i dane MO:DCA (AFP) -> Dane liniowe” (PDF) . Zarchiwizowane od oryginału (PDF) w dniu 2016-05-29.