                    M I K R O
                    =========

1/ Editor
---------

   prikazy nastaveni  ukazatele

   o znak  vlevo        CTRL-S   [sipka vlevo]
   o znak  vpravo       CTRL-D   [sipka vpravo]
   o slovo vlevo        CTRL-A   [ F3 ]
   o slovo vpravo       CTRL-F   [ F4 ]
   o radek nahoru       CTRL-E   [sipka nahoru]
   o radek dolu         CTRL-X   [sipka dolu ]
   o stranu nahoru      CTRL-R   [shift + sipka nahoru]
   o stranu dolu        CTRL-C   [shift + sipka dolu]
   na zacatek radku     CTRL-Q-S [shift + sipka vlevo]
   na konec radku       CTRL-Q-D [shift + sipka vpravo]
   na zacatek obrazovky CTRL-Q-E
   na konec obrazovky   CTRL-Q-X
   na zacatek souboru   CTRL-Q-R
   na konec souboru     CTRL-Q-C
   na predchozi pozici  CTRL-Q-P

   prikazy vkladani a mazani

   vkladani/prepisovani CTRL-V   [ INS ]
   vlozeni radku        CTRL-N   [ shift + INS]
   vymazani znaku       DELETE
   vymazani slova       CTRL-T
   vymazani radku       CTRL-Y   [ shift + DEL]
   vymazani do kon rad  CTRL-Q-Y [ F2 ]

   prikazy pro praci s bloky

   vyznac zacatek bloku CTRL-K-B
   vyznac konec bloku   CTRL-K-K
   kopirovani bloku     CTRL-K-C
   presunuti bloku      CTRL-K-V
   vymaz bloku          CTRL-K-Y
   cti blok ze souboru  CTRL-K-R
   pis blok do souboru  CTRL-K-W
   ukazatel na zac blk  CTRL-Q-B
   ukazatel na kon blk  CTRL-Q-K
   zobrazeni bloku Z/V  CTRL-K-H

   prikazy vyhledavani a nahrazovani

   vyhledani retezce    CTRL-Q-F
   nahrazeni retezce    CTRL-Q-A
   opakovani prikazu    CTRL-L
   zruseni prikazu      CTRL-U

   ostatni prikazy

   ukonceni editovani   CTRL-K-D   [ F1 ]
   obnoveni radku       CTRL-Q-L
   zmena odsazovani     CTRL-Q-I
   tabulator            CTRL-I     [ TAB ]


   volby pro vyhledani a nahrazeni

 volba       vyhledani       nahrazeni

  B      zpetne hledani   zpetne hledani
  G                       globalni hledani
  N                       nahrazeni bez dotazu
  U      ignorovani rozdilu mezi malymi a
         velkymi pismeny
  W      vyhledavani celych slov
  n      vyhledani n-teho vyskytu retezce


2/Monitor
---------

  prikazy monitoru

  Dadr1[,adr2]

   vypis useku operacni pameti od adr1
   do adr2
   neni-li adr2 uvedeno vypise se 160 byte

   zastaveni vypisu              CTRL-S
   zruseni zastaveneho vypisu    CTRL-C

  Madr1

   modifikace obsahu od adresy adr1 ukonceni modifikace  zadanim
'k'

 Fadr1,adr2,xx

   zaplneni useku  pameti  od  adresy  adr1  do  adr2  bytem  xx
(hexadecimalne);

 Tadr1,adr2,adr3

   presun useku pameti  pocinaje  adresou  adr1  konce  adr2  na
adresu adr3

 Gadr1

   vyvolani podprogramu na adrese adr1 pro radny navrat musi byt
zasobnik na stejne urovni

 L[adr]

  zavedeni programu  (dat)  od  adresy  adr  pokud  neni  adresa
uvedena zavede se od adresy v zahlavi

 Sadr1,adr2,adr3,filename

   ulozeni useku pameti od adresy adr1  do  adr2  na  pasku  pod
jmenem filename adr3 je ulozena jako start adr ( do  zahlavi  je
nutno ji uvest)

 R

   navrat zpet do zakladniho menu


3/ Volby kompilace
------------------

 Kompilace do pameti - volba M

nevytvari se soubor na magn pasce

Kompilace na mp - volba C 

na magnetickou pasku se zapise knihovna PASCALU + BIOS , pak  se
provede preklad a zapise se vysledny program
    pred zapisem BIOS , pred vlastnim prekladem a  pred  zapisem
programu zprava na display Set tape... ceka  na  CR  .  V  tomto
momente je  mozno  provest  vymenu  pasky  pokud  pouzivame  pri
prekladu direktivu {$I jmeno souboru} pro vkladani casti textu z
magneticke pasky.
 

 Kompilace na mp     - volba H

na magnetickou pasku se zapise pouze  vysledny  program.  (takto
vytvoreny program je mozno provozovat  pod  systemem  vytvorenym
volbou C (po ukonceni programu zustane system funkcni a je mozno
zavest a spustit dalsi program (uvedenim jmena)

 Struktura programu na magneticke pasce

program COM na magneticke pasce se sklada ze 4 casti

                   delka           zav.adresa

1/ LOADER           D6               2BA8
2/ BDOS+BIOS      25E0               DA00
3/ Knihovna PASC  2033                100
4/ Vlastni prog   ????               ????

program CHN obsahuje pouze cast 4.

   Obsazeni pameti programem
   
   0000 - 0100          pracovni oblast systemu
   0100 - 2033          knihovna Pascalu
   2033 - cca 7FF7      prekladac PASCAL  - v souboru COM  volna
                                            oblast
   7FF7 - nnnn          zdrojovy text     - v souboru COM volna                                            
                                            oblast   
   nnnn - D600          prelozeny program + HEAP + promenne 
   D600 - FC00          BDOS + BIOS
   FC00 - FF00          pripadne prekryvne programy (GRAF)
   
volnou oblast v programu COM lze vyuzit pro umisteni absolutnich
promennych.  Misto  pro  cilovy  program  lze  zvetsit  pouzitim
direktivy {$I  soubor}  prekladace  pro  minimalizaci  velikosti
zdrojoveho textu v pameti.   

4/ Restart zadreneho programu 
-----------------------------

    Pri behu programu za volby prekladu M tj.  prekladac  je
pritimen v pameti je mozno pouzit tlacitka  CTRL  RESET  pro
nove nastartovani prekladace.



5/ Omezeni a rozsireni proti prirucce
--------------------------------------

   Videorutiny
   -----------

nejsou funkcni procedury

   INSLINE, DELLINE

   je doplnena procedura

   PAL (x,y);

pricemz x je cislo palety 0 - 3
          y je cislo barvy  0 - 15

paleta 0 odpovida barve pozadi
       1 odpovida barve lowvideo
       2 odpovida barve highvideo
       3 odpovida barve normvideo


   Zpracovani souboru
   ------------------

nejsou funkcni procedury

SEEK , FLUSH , ERASE , RENAME

a funkce  FILESIZE

je mozno soucasne  pracovat  jen  s  jednim  souborem  tzn  mezi
prikazy RESET (REWRITE) a CLOSE  pro  jeden  soubor  neni  mozno
pouzit prikazy pro jiny soubor (neni kontrolovano - pouziti vede
k nedefinovatelnym vysledkum)

Formaty souboru na magneticke pasce
-----------------------------------

   Zdrojove i datove soubory na magneticke pasce jsou ve formatu
BSD s delkou datove oblasti 8 virtualnich sektoru tj  1024  byte
blok je doplnen na zacatku 2 bytovym cislem bloku (posledni blok
FFFF). 

 Z toho vyplyva problem pri kopirovani zdrojovych  textu,  ktere
nejdou kopirovat zadnym beznym kopirakem. 

 Bohuzel kazeta se  musi  pokouset  imitovat  disketovy  pristup
(alespon sekvencni) takze neni jina moznost.  



Soubory ve formatu MZ800
------------------------

  Pro zpracovani souboru ve formatu MZ800 se pouziva prikaz BDOS
(12,adr(LAB));

 pricemz LAB je  pole o strukture

 LAB = record       
                    opByte    :  byte; 
                    fileName  :  array [1..17] of char;
                    fileSize  :  integer;
                    loadAddr  :  integer;
                    startAddr :  integer;
                    comment   :  array [1..104] of char;
      end;

opByte = kod operace     1 .. cteni navesti do pole LAB
                         2 .. cteni bloku (dle adres v LAB)
                         3 .. zapis navesti (zapise se LAB)
                         4 .. zapis bloku (dle adres v LAB)

dalsi udaje odpovidaji navesti formatu MZ800

Prikaz type
-----------
   
    Byl doplnen prikaz  Type  pro  opis  pracovniho  souboru  na
tiskarne. 


Soubory ve formatu editoru FET.
-------------------------------

   Mikro od verze 101088 umoznuje zpracovani  textovych  souboru
vytvorenych editorem FET. Prechod do tohoto  rezimu  se  provede
volbou F zakladniho menu. Volba je indikovana cislem jednotky  F
v Logged drive. Prechod  zpet  do  zakladniho  rezimu  opetovnym
stiskem F. Indikace B v Logged drive.
 V rezimu zpracovani souboru FET lze pouzivat  pouze  prikazy  W
pro precteni souboru a S pro zapis souboru na kazetu. Pro  praci
se soubory ( vkladani do textu ; direktiva $I prekladace atd  je
nutno pouzivat soubory v zakladnim tvaru.
 POZOR !!! v rezimu souboru  FET  neni  kontrolovano  jestli  se
soubor vejde do pridelene pameti (kdyz se nevejde - prepise BDOS
a nasleduje odchod).
           dalsim  omezenim  je  to  ze  system  nekontroluje  u
souboru FET jmeno souboru - precte se prvni soubor na pasce.



Udaje realneho casu
-------------------

  Jsou definovany procedury pro nastaveni  realneho  casu  a
zjisteni realneho casu

 SETIM (pole) nastaveni casu

 GETIM (pole) zjisteni casu

  pole je promenna popsana jako array [1..3] of byte

  v prvku pole [1] se predavaji hodiny
          pole [2]              minuty
          pole [3]              sekundy

  priklad nastaveni casu na  21:12:00

           .......
         pole  [1] := 21;
         pole  [2] := 12;
         pole  [3] := 0;
         SETIM (pole);


  Problematika tiskaren
  ----------------------

Mikro Pascal pracuje se standardnim ASCII kodem.  Pro  pripojeni
tiskaren jsou uvazovany dva typy dialogu.

Dialog 1

               -------|    |----------
   Data Strobe        |    |
                      ------

                             |---------
   Busy                      |
               ---------------


Dialog 2

              --------|    |-----------
   Data Strobe        |    |
                      ------


                        |--------------
   Busy                 |
              -----------

Dialog 1 pouzivaji  tiskarny  s  vyrovnavaci  pameti  napr  D100
Robotron 6313/14

Dialog 2 pouziva napr plotter MZ-1P16


Dialog      adresa na CMT   adresa pamet  Obsah

  1         9C71            EC71           00 00

  2         9C71            EC71           20 F8


Konverze malych pismen do kodu SHARP

  na adrese 9ACC (CMT)  EACC (pamet)  01 stand. 00

Dodavana verze je s dialogem 1 bez transformace 
Adresou CMT se rozumi adresa  na  ktere  je  nutno  zmodifikovat
program po natazeni do programu TURBO COPY



              MIKRO a základní grafika
              ========================

pro možnost použití základních grafických  elementů  v  systému
MIKRO byla vytvorena překryvná  fáze  MIKRO-GRAF,  která  umož-
ňuje použití příkazů:

          PLOT   -   pro vynesení bodu
          UNPLOT -   pro zrušení bodu
          LINE   -   pro vynesení úsečky
          BLINE  -   pro zrušení úsečky
          
          COLOR  -   pro zadání grafických parametrů
                     (parametry jsou shodné s obdobným pří-
                     kazem BASIC tj 1.parametr paleta druhý
                     parametr mode).

          SOUND  -   pro řízení zvukového generátoru
                     pokud prvni parametr  je  9..83  je  prikaz
                     ekvivalentni Basicoveho  prikazu  SOUND  ve
                     formatu   1   tj   prvni   parametr   vyska
                     tonu,druhy delka v  1/100  sec.  viz  popis
                     BASIC str 6-71.  Pokud  prvni  parametr  je
                     0..7 je prikaz ekvivalentni  formatu  2  tj
                     prvni operand registr, druhy data viz popis
                     strana 6-72. 
                     
 Následující příklad názorně ilustruje použití grafického modulu
včetně zavedení do paměti


program graf;
                { procedury obsazene v modulu MIKRO-GRAF}

procedure plot (x,y:integer);
          external $fc00;

procedure unplot (x,y:integer);
          external $fc03;

procedure line (x,y,x1,y1:integer);
          external $fc06;

procedure bline (x,y,x1,y1:integer);
          external $fc09;

procedure color (pal,mode:integer);
          external $fc0c;

procedure sound (vyska,delka:integer);
          external $fc0f;


      { procedura  pro  zavedeni  modulu  MIKRO-GRAF  do pameti }
procedure load;

var lab:array[1..128] of byte;
    a1 :integer;
    bylload : byte absolute $fc00;
begin
     if bylload <> $c3 then
     begin
     lab[1]:=1;                        {cteni navesti}
     bdos(12,addr(lab));
     a1:=2;
     writeln;                          {tisk Loading ...}
     write ('Loading ');
     repeat
     write (char(lab[a1]));
     a1:=succ(a1);
     until lab[a1]=13;
     writeln;
     lab[1]:=2;                        {cteni tela programu}
     bdos(12,addr(lab));
     end;
end;

                                       {ilustrace pouziti}
procedure ctverec(x,y,r:integer);
     begin
     plot (x,y);
     line (x,y,x+r,y);
     line (x+r,y,x+r,y+r);
     line (x+r,y+r,x,y+r);
     line (x,y+r,x,y);
     end;

                      { ****  P R O G R A M  ***  }
                           
begin
load;
{ ...... sem prijde program ...}
write (char(12));                  {CLS}
ctverec(100,100,40);
end.


V uvedenem priklade je pouzito zavadeni prekryvne faze pri  behu
programu. Je  mozno  ji  zavest  tez  monitorem  (prikaz  L)  po
provedeni prekladu do souboru (COM) se zapise BIOS  vcetne  teto
prekryvne casti.
    POZOR !!! pokud zavedeme do  pameti  modul  MIKRO-GRAF  neni
    funkcni CTRL - RESET.
    grafika funguje pouze v rezimu 320 x 200 bodu 4 barvy.

 Dalsi informace o systemu na adrese
         
                
         
                                      Vladimir Svoboda
                                      Kpt Jarose 14
                            415 02    TEPLICE
