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