-------------------------------------------------------------------------------
* GAMACENTRUM 01 * PMD 85*
-------------------------------------------------------------------------------
- Subor ovladaca je dlhy 2304 bytov, ale zahrna aj priestor pre tlacovy buffer
  a znakovu sadu.
- Ovladac GC01 sa dodava v dvoch verziach pre dve rozne pamatove umiestnenia.
  + Nahrava sa bud z
    - Monitora - `MGLD 01`
    - BASICu (v2+) - `LOAD CODE 1`
  + 'PMD 14.7' - na adresu 4F00h
  + 'PMD 7400' - na adresu 7400h
- Ovladac sa v BASICu inicializuje zmenou adresy obsluhy kanala #406, kedy je
  treba na adresu 20E6h ulozit adresu vstupneho bodu pre tlac:
  + V Monitore
    - SUB 20E6 00 50 - pre prvu verziu
    - SUB 20E6 00 75 - pre druhu verziu
  + V BASICu
    - POKE 8422,0,80 - pre prvu verziu
    - POKE 8422,0,117 - pre druhu verziu
- Tlac v BASICu
  + OUTPUT 406;CHR(27)"@" - inicializacia ovladaca
  + OUTPUT 406;"TEXT" alebo PRINT #406;"TEXT"
  + LIST #406; - vytlacenie programu
- Hardcopy obrazovky
  + V Monitore
    - JUMP 4F00 - pre prvu verziu
    - JUMP 7400 - pre druhu verziu
  + V BASICu
    - A=USR(20224) - pre prvu verziu
    - A=USR(29696) - pre druhu verziu
    - na PMD 85-3 je potrebne pred zavolanim Harcopy rutiny odpojit ROM a potom ju opat pripojit
      napr. OUT 247,8:A=USR(29696):OUT 247,9

- Ovladac GC01 pre PMD 85 tlaci na sirku 414 bodov.
- Znaky su siroke 6 bodov alebo 12 bodov pri dvojitej sirke.
- Na riadok sa vojde 69 znakov v normalnej sirke (414 / 6 = 69).
- Vyska znaku je 8 bodov (mikroriadkov).
- Zakladne riadkovanie je 11 mikroriadkov.


-------------------------------------------------------------------------------
* Niektore adresy ovladaca (verzia umiestnena od adresy 7400) *
-------------------------------------------------------------------------------
7400h - Hardcopy obrazovky (HC)
- V HC je chyba, kedy sa pre `ESC K` nastavi 284 datovych bytov, ale posiela sa
  spravnych 288. Na adrese 7428h je hodnota 1Ch a ma tam byt 20h.
- HC si nastavuje vlastne riadkovanie (`ESC A`) na 8 a po skonceni nastavi
  riadkovanie na 12, teda inak ako to robi `ESC @`

7500h - Tlac znaku
- Hlavny vstupny bod pre tlac znaku, ktory sa predava v akumulatore.
- Zohladnuje vsetky Escape kody.

+ Pracovne premenne +
7886h - aktualna adresa v tlacovom buffri
7888h - 0/1 - priznak jednoduchej/dvojitej sirky (`SO`/`DC4`)
7889h - velkost riadkovania v mikroriadkoch (`ESC A`)
788Ah - pocet riadkov na stranku (`ESC C`)
788Bh - pocitadlo vytlacenych riadkov
788Ch - pocet tlacenych dat pri tlaci grafiky (`ESC K`)
788Eh - koncova adresa tlacoveho buffra (`ESC Q`)
7890h - vektor obsluhy ESC sekvencie
7892h - 0/10h - priznak aktualneho smeru tlace
7893h - 0/1 - obojsmerna/jednosmerna tlac (`ESC U`)

+ Inicializacne hodnoty premennych (kopiruju sa odtial pri `ESC @`) +
7894h - aktualna adresa v tlacovom buffri (78A2h)
7896h - 0/1 - priznak jednoduchej/dvojitej sirky (0)
7897h - velkost riadkovania v mikroriadkoch (11)
7898h - pocet riadkov na stranku (60)
7899h - pocitadlo vytlacenych riadkov (0)
789Ah - pocet tlacenych dat pri tlaci grafiky (0)
789Ch - koncova adresa tlacoveho buffra (7A40h)
789Eh - vektor obsluhy ESC sekvencie (7513h)
78A0h - 0/10h - priznak aktualneho smeru tlace (0)
78A1h - 0/1 - obojsmerna/jednosmerna tlac (0)

78A2h - tlacovy buffer
- Velkost tlacoveho buffra je 414 bytov, co zodpoveda tlacovej sirke.

7A40h - Znakova sada (font)
- Obsahuje 128 znakov s kodmi od 32 do 159.
- Ma dlzku 640 bytov (128 x 5 = 640).
- Znaky s kodmi 32 az 126 su zakladne znaky podla ASCII.
- Znak s kodom 127 sa neda vytlacit, pretoze 127 je riadiaci kod DEL.
- Znaky od kodu 128 su zadefinovane ako "paznaky" a uzivatel si ich moze podla
  potreby "predefinovat" v pamati od adresy 7C20h.
- Znaky su v rastri 5x8 bodov (sirka x vyska).
- Kazdy znak zabera 5 bytov. Prvy byte reprezentuje prvy stlpec znaku.
  Najvyssi 7. bit bytu je hore.


-------------------------------------------------------------------------------
* Riadiace Excape  kody *
-------------------------------------------------------------------------------
BS
08
- Back Space - navrat o znak nazad.
- Dalsi znak sa tak spoji (OR) so znakom na danej pozicii.
- Pozor, zohladnuje nastavenie dvojitej sirky znaku!


TAB
09
- Tabulator - prechod na dalsiu tabelacnu poziciu.
- Pozor, zohladnuje nastavenie dvojitej sirky znaku!
- Tabelacne pozicie su: 8., 16. a 24. znak.


FF
0C
- Form Feed - cakanie na vlozenie noveho papiera.
- Pozor, nevysuva automaticky papier, iba caka na stlacenie klavesu K0.


CR
0D
- Carriage Return - vytlacenie riadku v buffri a odriadkovanie.
- Inkrementuje pocitadlo vytlacenych riadkov a ak dosiahne nastaveny pocet
  (predvolene 60), tak caka na vymenu papiera a stlacenie klavesu K0.

SO
0E
- Double Width - nastavenie dvojitej sirky znakov od aktualnej pozicie.


DC4
14
- Cancel Double Width - zrusenie dvojitej sirky znakov od aktualnej pozicie.


CAN
18
- Cancel - vymazanie tlacoveho buffra.


DEL
7F
- Delete - vymazanie posledneho znaku z buffra.
- Pozor, zohladnuje nastavenie dvojitej sirky znaku!


ESC '@'
1B 40
- Inicializacia tlacoveho ovladaca.
- Nastavi pracovne premenne na ich zakladne hodnoty a vymaze tlacovy buffer.


ESC 'A' n
1B 41 n
- Nastavenie riadkovania, kde n je pocet mikroriadkov.


ESC 'C' n
1B 43 n
- Nastavenie poctu riadkov na stranku. Maximalne 69.


ESC 'K' nH nL d1 d2 . . . dk
1B 4B nH nL d1 d2 ... dk
- Tlac grafiky nH*256+nL stlpcov.
- Pozor, zohladnuje nastavenie dvojitej sirky znaku, co znamena, ze zadane
  graficke byty sa pri nastavenej dvojitej sirke znaku automaticky zdvojuju!


ESC 'Q' n
1B 51 n
- Nastavenie poctu znakov na riadok. Minimalne 2, maximalne 68.
- Tu je v ovladaci chyba. Predvolene je to 69 (414 / 6). Ak sa ale nastavi
  nizsia hodnota, hodnotu 69 uz pomocou `ESC Q` nie je mozne nastavit. Musi sa
  pouzit jedine `ESC @`.


ESC 'U' n
1B 55 n
- Nastavenie/Zrusenie jednosmernej tlace.
- 1 alebo '1' nastavi jednosmernu tlac, 0 alebo '0' ju zrusi.


-------------------------------------------------------------------------------
