GC-01

Z PMD 85 Infoserver

GAMACENTRUM 01


GAMACENTRUM 01(Zdroj: http://www.digitron.cz/periferie.htm)

Obsah

GAMACENTRUM 01 je jednoduchá tlačiareň z produkcie Národního podniku GAMA Milevsko, České Budějovice. Tlačí dvoma spriahnutými ihlami na spoločnom vozíku, vzdialené od seba polovicu šírky stránky, na bežný kancelársky papier veľkosti A4 podložený "kopirákom". Posun vozíka je za pomoci "skrutky" s nekonečnou drážkou, posun papiera sa robí pomocou elektromagnetu, ktorý naráža do ozubeného kolieska so zarážkou.

Zaujímavý a detailný popis tlačiarne GAMACENTRUM 01 má na svojich stránkach Cygnus.

Pripojenie k PMD 85

Konektory na GAMACENTRUM 01
Konektory na GAMACENTRUM 01

Tlačiareň sa dodávala v dvoch verziách s dvoma typmi konektorov - 7 pinový konektor WK 462 46 (tvar podobný konektorom Cannon) alebo 7 pinový DIN konektor 6AF 28051. Na strane PMD 85 sa tlačiareň pripája na konektor K5 - IMS-2 a je potrebný 6 žilový prepojovací kábel.

Prepojenie GC-01 a PMD 85
GC-01 PMD 85 - K5 - IMS-2 (FRB M30)
Význam Signál WK 462 46 6AF 28051 Smer Pin Port
motor vozíka M 2 6 <--- 13 PC4 (EOI)
posun papiera PP 3 7 <--- 10 PC6 (REM)
ihla 1 I1 5 4 <--- 20 PC7 (IFC)
ihla 2 I2 7 5 <--- 16 PC5 (ATN)
synchronizácia bodu B 6 2 ---> 11 PB4 (SRQ)
spoločná zem GND 4 3 ---- 7, 8 GND

Ovládací softvér

K PMD 85 bolo dodávané príslušenstvo, ktoré obsahovalo prepojovací kábel (FRB M30 - DIN-7) a ovládač v dvoch verzách pre dve pamäťové umiestnenia. Návod k ovládaču je veľmi "skromný" a nepopisuje všetky vlastnosti ovládača a zároveň obsahuje chyby. Ovládač samotný je pomerne dobre napísaný, poskytuje tlač textu (aj s dvojnásobnou šírkou), tlač grafiky i Hardcopy obrazovky. Riadenie ovládača je za pomocí obvyklých ESC sekvencií.

  • ovládač má veľkosti 2304 bytov a zahŕňa aj priestor pre tlačový buffer a znakovú sadu (font)
  • na PMD 85 sa tlačí na šírku 414 bodov
  • znaky sú široké 6 bodov alebo 12 bodov pri dvojitej šírke
  • na riadok sa vojde 69 znakov v normalnej šírke (414 / 6 = 69)
  • výška znaku je 8 bodov (mikroriadkov)
  • základné riadkovanie je 11 mikroriadkov

Nahratie a inicializácia ovládača

Ovládač GC01 sa dodáva v dvoch verziách pre dve rôzne pamäťové umiestnenia. Nahráva sa buď

  • z Monitora - MGLD 01
  • alebo z BASICu (v2/2A/3) - LOAD CODE 1

na adresu

  • 4F00h - súbor PMD 14.7
  • 7400h - súbor PMD 7400

Ovládač sa v BASICu inicializuje zmenou adresy obsluhy kanála #406, kedy je treba na adresu 20E6h uložiť adresu vstupného bodu pre tlač:

  • v Monitore
    • SUB 20E6 00 50 - pre prvú verziu
    • SUB 20E6 00 75 - pre druhú verziu
  • v BASICu
    • POKE 8422,0,80 - pre prvú verziu
    • POKE 8422,0,117 - pre druhú verziu

Tlač v BASICu

V Basicu je možné tlačiť texty a premenné rovnako, ako pomocou bežného príkazu PRINT pri tlači na obrazovku. Naviac je ale možné používať tzv. Escape kódy pre zmenu vlastností tlače. Escape kódy majú ASCII kódy menšie ako 32, takže sa pre ich zadanie používa funkcia CHR$(x).

10 OUTPUT 406;CHR$(27)"@" : REM inicializácia ovládača
20 OUTPUT 406;"TEXT";A;A$ : REM tlač textu a premenných
30 PRINT #406;"TEXT";A;A$ : REM tlač textu a premenných
40 LIST #406; : REM vytlačenie listingu celého programu
50 LIST #406;100 : REM vytlačenie listingu programu od riadku 100

Hardcopy obrazovky

  • v Monitore
    • JUMP 4F00 - pre prvú verziu
    • JUMP 7400 - pre druhú verziu
  • v BASICu
    • A=USR(20224) - pre prvú verziu
    • A=USR(29696) - pre druhú verziu
    • na PMD 85-3 je potrebné pred zavolaním Hardcopy rutiny odpojiť ROM a potom ju opäť pripojiť
      napr. OUT 247,8:A=USR(29696):OUT 247,9

ESC sekvencie

V nasledujúcej tabuľke sú uvedené všetky ESC kódy, ktoré ovládač pozná. V ľavom stĺpci sú jednotlivé kódy uvedené "v znakovej" forme, hexadecimálne i desiatkovo. Pre zadávanie daných kódov je treba v BASICu použiť funkciu CHR$(x).

ESC sekvencia Význam
BS

08
8

Back Space - návrat o znak nazad.

Ďalší znak sa tak spojí (OR) so znakom na danej pozicii.
Pozor, zohľadňuje nastavenie dvojitej šírky znaku!

TAB

09
9

Tabulátor - prechod na ďalšiu tabelačnú pozíciu. Tabelačné pozície sú: 8., 16. a 24. znak.

Pozor, zohľadňuje nastavenie dvojitej šírky znaku!

FF

0C
12

Form Feed - čakanie na vloženie nového papiera.

Pozor, nevysúva automaticky papier, iba čaká na stlačenie klávesu K0.

CR

0D
13

Carriage Return - vytlačenie riadku v buffri a odriadkovanie.

Inkrementuje počítadlo vytlačených riadkov a ak dosiahne nastavený počet (predvolene 60), tak čaká na výmenu papiera a stlačenie klávesu K0.

SO

0E
14

Double Width - nastavenie dvojitej šírky znakov od aktuálnej pozície.
DC4

14
20

Cancel Double Width - zrušenie dvojitej šírky znakov od aktuálnej pozície.
CAN

18
24

Cancel - vymazanie tlačového buffra.
DEL

7F
127

Delete - vymazanie posledného znaku z buffra.

Pozor, zohľadňuje nastavenie dvojitej šírky znaku!

ESC '@'

1B 40
27 64

Inicializácia tlačového ovládača.

Nastaví pracovné premenné na ich základné hodnoty a vymaže tlačový buffer.

ESC 'A' n

1B 41 n
27 65 n

Nastavenie riadkovania, kde n je počet mikroriadkov.
ESC 'C' n

1B 43 n
27 67 n

Nastavenie počtu riadkov na stránku. Maximálne 69.
ESC 'K' nH nL d1 d2 . . . dk

1B 4B nH nL d1 d2 . . . dk
27 75 nH nL d1 d2 . . . dk

Tlač grafiky nH*256+nL bodových stĺpcov. Dátové byty d1 až dk sa tlačia zvislo a to tak, že najvyšší 7. bit bytu sa tlačí hore na prvej z ôsmych liniek a najnižší 0. bit bytu sa tlačí dole na 8. linke.

Pozor, zohľadňuje nastavenie dvojitej šírky znaku, čo znamená, že zadané grafické byty sa pri nastavenej dvojitej šírke znaku automaticky zdvojujú!

ESC 'Q' n

1B 51 n
27 81 n

Nastavenie počtu znakov na riadok. Minimálne 2, maximálne 68.

Tu je v ovládači chyba. Predvolene je počet znakov na riadok nastavený na 69 (414 / 6). Ak sa ale nastaví nižšia hodnota, hodnotu 69 už pomocou ESC 'Q' nie je možné nastaviť. Musí sa použiť jedine ESC '@'.

ESC 'U' n

1B 55 n
27 85 n

Nastavenie/Zrušenie jednosmernej tlače. 1 alebo '1' nastaví jednosmernú tlač, 0 alebo '0' ju zruší.

Niektoré adresy v ovládači (verzia umiestnená od adresy 7400h)

  • 7400h - Hardcopy obrazovky (HC)
    • V HC je chyba, kedy sa pre ESC 'K' nastaví 284 dátových bytov, ale posiela sa správnych 288. Na adrese 7428h je hodnota 1Ch a má tam byť 20h.
    • HC si nastavuje vlastné riadkovanie (ESC 'A') na 8 a po skončení nastaví riadkovanie na 12, teda inak, ako to robí ESC '@'.
  • 7500h - Tlač znaku
    • Hlavný vstupný bod pre tlač znaku, ktorý sa predáva v akumulátore.
    • Spracúva všetky Escape kódy.
  • 78A2h - tlačový buffer
    • Veľkosť tlačového buffra je 414 bytov, čo zodpovedá tlačovej šírke.
  • 7A40h - Znaková sada (font)
    • Obsahuje 128 znakov s kódmi od 32 do 159.
    • Má dĺžku 640 bytov (128 x 5 = 640).
    • Znaky s kódmi 32 až 126 sú základné znaky podľa ASCII.
    • Znak s kódom 127 sa nedá vytlačiť, pretože 127 je riadiaci kód DEL.
    • Znaky od kódu 128 sú zadefinované ako "paznaky" a užívateľ si ich môže podľa potreby "predefinovať" v pamäti od adresy 7C20h.
    • Znaky sú v rastri 5x8 bodov (šírka x výška).
    • Každý znak zaberá 5 bytov. Prvý byte reprezentuje prvý stĺpec znaku. Najvyšší 7. bit bytu je hore.

Pracovné premenné

  • 7886h - aktuálna adresa v tlačovom buffri
  • 7888h - 0/1 - príznak jednoduchej/dvojitej šírky znakov (SO/DC4)
  • 7889h - veľkosť riadkovania v mikroriadkoch (ESC 'A')
  • 788Ah - počet riadkov na stránku (ESC 'C')
  • 788Bh - počítadlo vytlačených riadkov
  • 788Ch - počet tlačených dát pri tlači grafiky (ESC 'K')
  • 788Eh - koncová adresa tlačového buffra (ESC 'Q')
  • 7890h - vektor obsluhy ESC sekvencie
  • 7892h - 0/10h - príznak aktuálneho smeru posunu hlavy
  • 7893h - 0/1 - obojsmerná/jednosmerná tlač (ESC 'U')

Inicializačné hodnoty pracovných premenných (kopírujú sa odtiaľ pri ESC '@')

  • 7894h - aktuálna adresa v tlačovom buffri (78A2h)
  • 7896h - 0/1 - príznak jednoduchej/dvojitej šírky znakov (0)
  • 7897h - veľkosť riadkovania v mikroriadkoch (11)
  • 7898h - počet riadkov na stránku (60)
  • 7899h - počítadlo vytlačených riadkov (0)
  • 789Ah - počet tlačených dát pri tlači grafiky (0)
  • 789Ch - koncová adresa tlačového buffra (7A40h)
  • 789Eh - vektor obsluhy ESC sekvencie (7513h)
  • 78A0h - 0/10h - príznak aktuálneho smeru posunu hlavy (0)
  • 78A1h - 0/1 - obojsmerná/jednosmerná tlač (0)

Na stiahnutie

  • GC-01 - scan návodu k tlačiarni GC-01, scan prílohy pre prácu s počítačom PMD 85, ovládače a demonštračný program
  • Súbor pásky gc01.ptp obsahuje obidve verzie ovládača.
  • Súbor pásky gc01-demo.ptp obsahuje demonštračný program v BASICu a verziu ovládača pre adresu 7400h.