         Monitor 1Z-013B
Monitor 1Z-013B je 4 KB dlouhý provozní
systém,který je permanentně uložen v 
ROM. V tomto monitoru jsou k dispozici
všechny důležite rutiny ,které jsou
potřebné k programovaní MZ-800. Monitor
 1Z-013B byl převzat z MZ-700. To 
znamená,že všechny programy z MZ-700
běží i na typu MZ-800.
Monitor 1Z-013B je uložen v paměti od
0000H do 1000H. Běžně jsou volány pouze
rutiny tohoto monitoru.K nastartovaní
monitoru dojde:
1.zapnutím počítače nebo stisknutím
  RESET
2.po objevení nabídky stiknutím M
3.po objevení * zadáním J00AD
Tento monitor obsahuje téměř ty samé
příkazy,které jsou popsány v návodu.
Je třeba se zmínit odvou rozdílech:
1.příkaz GO tlačítko G je nyní J jako
  JUMP.
2.přikazem BANK SWITCHING tlačitko #
  je možne monitor odpojit. Současně
  dojde k teplému startu interpretru
  BASIC.
     První část monitoru sestáva z
tabulky skoků,které umožňují:
1.slučitelnost s MZ-80K a MZ-80A.
2.nejdůležitější rutiny se dají
  snadněji zapamatovat.
 Rutiny se volají příkazem CALL XXXXH.
         Podprogramy monitoru:
 0000H start systému ,skok na E800H tedyna startovací adresu horního monitoru
 0003H GET LINE.Umožňuje zadání řadky,
tedy více znaků z klávesnice.Zadaný
řetězec je uložen v paměti určené
registrem DE.Rutina končí stisknutím CR
Na konec řetězce je přidáno CR=0dH.
Maximálně je možné zadat 80 znaků.
Při použití SHIFT+BREAK je na místo 
určené registrem DE uložen místo 
řetězce kód BREAK.
 0006H NEW LINE.Kurzor je umístěn na
počátek následující řadky.
 0009H NEW LINE.Kurzor je umístěn na
počátek následující řádky,pokud již 
nestojí na počátku řadky.
 000CH PRINT SPACE.Dá na pozici kurzoru
prázdný znak.
 000FH PRINT 10 SPACES.Zadá od pozice
kurzoru max. 10 prázdných znaků až k
následující pozici TAB (0,10,20,30).
 0012H PRINT CHARACTER.Zobrazení ASCII
znaků uložených v akumulatoru.Znaky
11H-16H nebudou zobrazeny ale jejich
funkce se provedou.
 0015H PRINT MESSAGE.Zobrazení řetězce
od pozice kurzoru.Počátečni adresa
řetězce bude převzata z DE registru.
Řetězec musí být ukončen 0DH.Řídící
znaky 11H-16H budou provedeny.
 0018H PRINT MESSAGE.Zobrazení řetězce
od pozice kurzoru.Počáteční adresa
řetězce bude převzata z registru DE.
Řetězec musí být ukončen 0DH.Řídící
znaky 11H-16H nebudou provedeny,ale
zobrazeny inverzně.
 001BH GET KEY.Hodnota v ASCII je 
odečtena z klávesnice a uložena v
akumulátoru.Když není stisknuta žádná
klávesa je v akumulátoru hodnota 00H.
Zvláštní klávesy mají hodnotu:
   DEL=60H    INST=61H     ALPHA=62H
   GRAPH=63H  SHIFT+BREAK=64H
   CR=66H     volná klávesa=90H
volná klávesa je použita u japonského
modelu pro přepínání znaků Hiragana a
Katagana.Nelze použít pro funkční 
tlačítka.
 001EH SHIFT,BREAK,KONTROL.Při stisknutí
BREAK je v CARRY hodnota 1.
Při stisnutí SHIFT ma bit 6 v akumula-
toru hodnotu 1. Při stisknuti CONTROL
má 5 bit v akumulátoru hodnotu 1.
Při současném stisknutí SHIFT+CONTROL
má 4 bit v akumulátoru hodnotu 1.
 0021H WRITE HEADER.Hlavička programu
bude zapsána na kazetu.Hlavička obsa-
huje:název,začátek,délku programu,
kód nahrávky,startovací adresu.Uvedené
údaje jsou uloženy na adresách 11F0H-
116FH.
 0024H WRITE DATA.Program označený
pocáteční adresou a délkou bude zapsán
na kazetu.Program (blok dat) bude
nahrán dvakrát rychlostí 1200 bitů/s.
 0027H READ HEADER.Hlavička programu
bude přečtena z kazety.Obsah hlavičky
jako na 0021H.
 002AH READ DATA.Nahrává program určený
počáteční adresou a délkou.
 002DH VERIFY.Srovnání programu z kaze-
ty s programem v paměti.Při chybě je
hlášeno CHECK SUM ERROR.
 0030H MELODY.Hraje melodii,která
odpovídá řetězci,jehož počáteční adresa
je uložena v DE-registru.Řetězec musí
být ukončen 0DH nebo C8H.Současně je
připojena rutina odezvy na BREAK.Při
stisknutí BREAK se změní hodnota v
CARRY.
 0033H Nastaví a spouští zabudované ho-
diny.Akumulátor obsahuje 0(AM) nebo 
1(PM) a DE-registr obsahuje počet seku-
nd (max.43200=12 hodin).
 0038H INTERRUPT.Při příkazu RESTART
skok na adresu 0038H a odtud skok na
tam uvedenou adresu.Tato adresa však
leží v ROM a nelze ji měnit a proto se
skáče na 1038H je uložen INTERRUPT 
vektor.
 003BH READ TIME.Je čten okamžitý čas.
Hodnoty jsou uloženy viz.0033H.
 003EH BELL.Tón o kmitočtu 880 Hz.
 0041H TEMPO SET.Určuje tempo hudby
podle obsahu akumulátoru.Rychlost:
01H pomalu,07H rychle.
 0044H SOUND START.Produkuje stálý tón
se stanovenou frekvencí.Frekvence se
vypočítá podle: F=895kHz/NM
NM je dvoubytové číslo přičemž N je na
adrese 11A2H a M na 11A1H.
 0047H SOUND STOP.Zastavuje příkaz
SOUND START.
 004AH Start monitoru 1Z-013B,pak
skok na E800H.
 00ADH Teplý start monitoru 1Z-013B.
K dispozici jsou příkazy:J,L,F,B,#,P,M,
S,V,D.
 00F3H JUMP.Při stisknutí J je tento
program odstartovan.
 00F7H BEEP ON/OFF.Spuštění je provede-
no stisknutím B.Při každém stisknutí
klávesnice se ozve tón.
 00FFH QUICK DISK.Je-li připojen ská-
če program na F000H.
 0111H LOAD.Po stisknutí L je program
odstartován.
 0155H Test plotru.Odstartování stisk-
nutím P.
 018FH PLOT/PRINT CHARAKTER.ASCII hod-
nota v akumulátoru je vytištěna.Některé
hodnoty ASCII jsou rezervovány pro 
řízení plotru.Podrobněji v kapitole
řízení plotru.
 01A5H PLOT/PRINT MESSAGE.ASCII hodnota
znaků řetězce je vytičtěna.Pozice 
řetězce je v DE-registru. Řetězec musí
být ukončen 0DH.
 01C7H MELODY.Jako 0030H
 02A6H INCREMENT DE.4-krát přírůstek
DE-registru.Increment znamená +1.
 02ABH SOUND START.Jako 0044H.
 02BEH SOUND STOP.Jako 0047H.
 02E5H SET TEMPO.Jako 0041H.
 02F3H CRT MANAGMENT.Program pro
vnitřní řízení obrazovky.HL-registr bu-
de obsahovat koordináty kurzoru.Sou-
řadnice X v L,Y v H.Současně je do DE-
registru nahrán údaj o tom zda je na 
řádce více jak 40 znaků.Údaj je uložen
od 1173H do 118BH.Kromě toho je do
akumulátoru nahrána 0 nebo 1(dvojná-
sobný řádek.
 0308H SET TIME.Jako 0033H.
 0358H READ TIME.Jako 003BH.
 038DH TIME INTERRUPT.Je vymazán stav
AM a nahrazen PM nebo obráceně.Současně
je do časovače nahráno 43200 sekund.
 03B1H DISPLAY SPACE & CHARACTER.Tisk-
ne jeden prázdný znak a jeden ASCII,
který je určen obsahem akumulátoru.
Zobrazení je určeno adresou video RAM
v HL-registru.
 03BAH ASCII PRINT FOR HL.Obsah HL-
registru se zobrazí na pozici kurzoru.
 03C3H ASCII PRINT FOR ACCU.Obsah
akumulátoru se zobrazí na pozici kur-
zoru.
 03D5H Data pro přepnutí na 80 znakový
plotr.Na tomto místě jsou uložena data
nutná pro přepnutí(01H,09H,09H,09H,0DH)
 03DAH HEX TO ASCII.Hexadecimální číslo
uložené v dolních čtyřech bytech akumu-
látoru bude převedeno do ASCII a ulože-
no do akumulátoru.
 03E5H ASCII TO HEX.Mění hexadecimální
číslo v akumulátoru do binární formy
a výsledek uloží do dolních čtyř bitů
akumulátoru.Při chybě je nastaven CARRY
 03F9H ASCII TO HEX.Jako 03E5H.
 0410H FOUR CHARACTER ASCII CONVERSION.
Mění řetězec čtyř znaků ASCII na jedno
hexadecimální číslo a uloží je do HL-
registru.DE-registr musí obsahovat
počáteční hodnotu řetězce.Např."3410"
do hexadecimálního 16-bitového čísla.
Při chybě je CARRY na hodnotě 1.
 041FH TWO CHARACTER ASCII CONVERSION.
Mění dvoumístný řetězec v ASCII na
hexadecimální číslo a uloží je do aku-
mulátoru.DE-registr musí obsahovat
počáteční adresu řetězce.Při chybě
zaviněné neplatným řetězcem bude CARRY
obsahovat 1.
 0436H WRITE HEADER.Jako 0021H.
 0470H Přepnutí plotru na 40 znaků.Na
této adrese jsou uložena data(01H,09H,
09H,0BH,0DH).
 0475H WRITE DATA.Jako 0024H.
 04D8H READ HEADER.Jako 0027H.
 04F8H READ DATA.Jako 002AH.
 0577H BELL.Jako 003EH.
 057EH FLASHING AND KEYING.Jeden znak
ve video kódu je odečten z klávesnice
a uložen v akumulátoru.Současně blikne
kurzor.Když není stisknuto tlačítko je
v akumulátoru hodnota F0H a je ustaven
ZERO.
 0588H VERIFY.Jako 002EH.
 05FAH NEW LINE AND ASCII PRINT FOR HL.
Na počátek následujícího řádku je
zobrazen obsah HL-registru.
 069FH CASSETTE MOTOR ON.Zapíná motor
magnetofonu.
 0700H CASSETTE MOTOR OFF.Vypíná motor
magnetofonu.
 0759H 107 MICROSECOND DELAY.Časové
zpoždění 107 mikrosekund.
 07A8H M-příkaz.Příkaz MEMORY CORRECTI-
ON.
 07E6H GET LINE.Jako 0003H.
 087CH provede CR a umístí kurzor na
počátek následující řádky.
 0893H PRINT MESSAGE.Jako 0015H.
 08A1H PRINT MESSAGE.Jako 0018H.
 08BDH GET KEY.Jako 001BH.
 090EH NEW LINE.Jako 0006H.
 0918H NEW LINE.Jako 0009H.
 0920H PRINT SPACE.Jako 000CH.
 0924H PRINT 10 SPACES.Jako 000CH.
 0935H PRINT CHARACTER.Jako 0012H.
 0996H 7 MILLISECOND DELAY.Časové
zpoždění 7 milisekund.
 09B3H INPUT KEY.Čeká s blikajícím
kurzorem dokud není zadán znak s
klávesnice.Není potřeba stisknout CR.
Odpovídající hodnota ve videokódu bude
uložena v akumulátoru.
 0A32H SHIFT,BREAK,CONTROL.Jako 001EH.
 0A50H Odezva matice klávesnice.Odezva
všech tlačítek včetně funkčních.Během
stisknutí tlačítka bude B registr
obsahovat:
7.bit=0 žádná klávesa nestisknuta
7.bit=1 jedna klávesa stisknuta
6.bit=0 není stisknut SHIFT
6.bit=1 je stisknut SHIFT
5.bit=0 není stisknut CONTROL
5.bit=1 je stisknut CONTROL
4.bit=0 není stisknut SHIFT+CONTROL
4.bit=1 je stisknut SHIFT+CONTROL
C-registr bude obsahovat:
bit 0,1,2 číslo řádku matice klávesnice
bit 3,4,5 číslo sloupce matice.
viz.příloha
 0A92H ASCII TO DISPLAY CODE TABLE.Od
této adresy jsou uložena data k přemě-
ně ASCII do videokódu.
 0BB9H ASCII TO DISPLAY.Mění znaky
ASCII uložené v akumulátoru na video-
kód a uloží je do akumulátoru.
 0BCEH DISPLAY TO ASCII.Mění videokód
uložený v akumulátoru na ASCII a uloží
do akumulátoru.
 0BEAH KEY MATRIX TO DISPLAY CODE TABLE
Od této adresy jsou uloženy videokódy
odpovídající matici klávesnice.Např.
při volání 0A50H je naplněn C-registr
hodnotou 07H,v této tabulce je třeba
hledat 7.Byte (počínaje od 0 a ne od
1 !!).7,Byte je CDH a to je CR.
 0C2AH KEY MATRIX TO DISPLAY CODE TABLE
je-li stisknut SHIFT.
 0C6AH KEY MATRIX TO DISPLAY CODE TABLE
je-li stisknut GRAPH.
 0CAAH KEY MATRIX TO DISPLAY CODE TABLE
je-li stisknut CONTROL.
 0CE9H KEY MATRIX TO DISPLAY CODE TABLE
pri přepnutí do Katagana.Není na 
evropských modelech.
 0D29H příkaz D.Memory Dump.
 0DA6H VERTICAL BLANKING CHECK.
Čeká na vertikální mezeru při vymačknu-
tí.Potom skok zpět.
 0DB5H DISPLAY CODE CHARACTER PRINT.Na
pozici kurzoru budou zobrazeny znaky
videokódu uložené v akumulátoru.
 0DDCH DISPLAY CONTROL.Změna obrazovky.
Akumulátor bude obsahovat následujíci
znaky:
 Akumulátor   Působení
 C0H SCROLL o jednu řádku dolů
 C1H kurzor o jednu řádku dolů
 C2H kurzor o jednu řádku nahoru
 C3H kurzor o jeden znak doprava
 C4H kurzor o jeden znak doleva
 C5H kurzor na pozici HOME(D000H)
 C6H video RAM a RAM barvy bude vymazá-
na.Kurzor bude umístěn na pozici HOME.
 C7H jeden znak za kurzorem bude vyma-
zán a kurzor se přesune na tuto pozici.
Totéž jako stisknutí DEL.
 C8H jeden znak bude doplněn za kurzor
a znaky za ním se přesunou doprava.Jako
INST.
 C9H přepíná klávesnici grafika/písmena
 CDH Bude proveden jeden CR a kurzor
umístěn na počátek následující řádky.
 0F5EH příkaz S (SAVE)
 0FB1H Současná pozice kurzoru bude
přeměněna na adresu video RAM a ulože-
na v HL-registru.
 0FCBH příkaz V (VERIFY)
 0FD8H Maže paměť od adresy v HL.Délka
obsahu,který má být vymazán je v B-re-
gistru.Obsah uvedené paměti bude pře-
psán hodnotou 00H.
     Monitor 1Z-013B používá oblast
1000H-11FFH jako pracovní,tj. v této
oblasti paměti jsou uložena všechna
nutná data.
     PRACOVNÍ OBLAST MONITORU.
Adresy:  Význam:
1000H-1037H volné
1039H dolní byte vektoru přerušení
103AH horní byte vektoru přerušení
103BH-10EFH oblast STACK programů
10EFH TOP OF STACK
10F0H-1107H data hlavičky programu
10F0H FILECODE (typ programu).Označení:
 01=program ve strojovém kódu
 02=MZ-80K program BASIC
 03=MZ-80K data BASIC
 05=MZ-700 a MZ-800 programy BASIC
10F1H-1101H název programu.Max.16 znaků
,musí být ukončen 0DH (CR).Když je
na adrese 10F1H hodnota 0DH je program
bez názvu.
1102H dolní byte délky programu
1103H horní byte délky programu.Zde
uložená délka programu je rozhodující
pro počet bytů,které jsou uloženy při
SAVE na kazetu (0024H).
1104H dolní byte začátku programu
1105H horní byte začátku programu.Od
zde uložené počáteční adresy se začí-
ná nahrávat program na kazetu při SAVE
(0024H).
1106H dolní byte START adresy
1107H horní byte START adresy.Od této
adresy záleží zda bude nahraný program
spuštěn nebo ne.Adresa musí být rovná
nebo vyšší 1200H.
1108H-116FH tato paměťová místa budou
použita jako podávací buffer.
1170H paměťové místo pro malá a velká
písmena.Obsah 0 odpovídá velkým a 1
malým písmenům.
1171H Y-pozice kurzoru (0-18H)-řádky
1172H X-pozice kurzoru (0-27H)-sloupce
1173H-118BH každá řádka obrazovky jeden
byte,to udává zda tato řádka je druhou
částí dvouřádky.V tom případě je obsah
1, jinak 0.
118EH místo pro uložení znaku,který je
momentálně na pozici kurzoru.
118FH místo pro dolní byte pozice kur-
zoru.
1190H místo pro horní byte pozice kur-
zoru.Platí pouze pro MZ-80K.
1191H paměť pro údaj zda je zobrazen
kurzor (1) nebo znak (0).Platí pro
MZ-80K.
1192H displejkód znaku korzoru.
1193H STRING-Flag.Platí pro MZ-80K.
1194H místo pro počet znaků řádku,do
kterého jsou zadávány údaje.
1195H délka zaváděcí části hlavičky na
kazetě-dolní byte.
1196H délka zaváděcí části hlavičky na
kazetě-horní byte.Údaj pro předpětí
pásky při zápisu popř. čtení.
1197H kontrolní součet při nahrávání-
dolní byte.
1198H kontrolní součet pri nahrávání-
horní byte.V tomto místě je uložen
kontrolní součet při nahrávání (CHECK-
SUM).Kontrolní sočet je počet bytů "1"
v zapsaných bytech dat.Součet slouží
ke zjištění chyby záznamu.
1199H kontrolní součet při záznamu-
dolní byte.
119AH kontrolní součet při záznamu-
horní byte.CHECKSUM jako při 1197H a
1198H.
119BH místo pro údaj o čase AM=0,
PM=1.
119CH při údaji F0H běží hodiny.
119DH KEY SOUND.Tón při stisknutí
klávesy (0),bez tónu (01).
119EH paměť pro tempo hudby.
119FH paměť pro délku tónu.
11A0H paměť pro číslo oktávy.
11A1H kmitočet tónu-dolní byte.
11A2H kmitočet tónu-horní byte.
11A3H-11F3H buffer pro snímání údajů
klávesnice.
11F4H-11FFH volné
      OBLAST E-MONITORU
  Monitor-E je druhý přes 4 KB dlouhý
provozní systém rovněž uložený v ROM.
Jak název ukazuje je uložen v horní
části paměti od E010H do F36CH.
V této oblasti leží všechny rutiny pro
QUICKDISK a další monitir 9Z-504M.
Při zapnutí počítače a po každém RESET
je proveden skok na 0000H.Odtud okamži-
tě na E800H a objeví se úvodí obraz.
Když se stiskne M jsme v monitoru
9Z-504M.
Podrobný popis rutin QUICKDISKU je
uveden v kapitole QUICKDISK.
 E010H QD IOS.Rozdělení rutin QUICK-
DISKU.POdle toho co je uloženo na
1130H jsou volány:
1=QUICKDISK READY-CHECK.Zkouší zda
je QD připojen a připraven k provozu.
2=FORMAT.Formování QD.
3=READ.Čtení z QD.
4=WRITE.Zápis na QD.
 E08AH QD READY-Check rutina.
 E090H FORMAT-rutina.
 E0DAH READ-rutina.
 E14EH WRITE-rutina.
 E29BH QD MOTOR ON.Zapíná motor QD.
 E2E8H QD MOTOR OFF.Vypíná motor QD.
 E44AH FLOPPY-DISK CONTROL PROGRAMM.
Řídí připojenou disketu.
 E4DCH FD-READY CHECK.Zkouší zda je
disketa připojena a připravena k pro-
vozu.
 E517H FD MOTOR ON.Zapíná motor diskety
 E530H FD MOTOR OFF.Vypíná motor diske-
ty.
 E800H Tabulka skoků.Na toto místo
se skáče po zapojení počítače nebo
po RESET.
 E801H skok k úvodnímu obrazci monitoru
 E804H skok do monitoru 9Z-504M.
 E807H LOAD po 1200H.
 E80AH SAVE od 1200H.
 E80DH VERIFY od 1200H.Platí pro kazetu
 E810H skok k QD-IOS,tedy k E010H.
 E813H start monitoru (úvodní obrazec).
V této části programu jsou aktivovány
důležité adresy např.:port 8255,časovač
8253,Z-80 PIO,SIO.
 E876H inicializace barev a tempa hudby
 E8A9H pamět PCG je naplněna znakovým
generátorem ROM,tj.v pevně uložené zna-
ky v CG-ROM jsou přepsány do PCG RAM.
 E8E1H inicializace palety barev a
barev okraje.
 E945H nahrání programu (IPL) z kazety
a odstartování.
 EA5EH odezva na příkazy monitoru
9Z-504M:J,L,F,B,M,S,V,D,Q+další parame-
try,E=exit ramboard,G.
 EAA9H příkaz J.
 EAB5H příkaz Q.Možné jsou následující
příkazy pro QUICKDISK:
 QL=LOAD
 QS=SAVE
 QC=COPY
 QF=FORMAT
 QX=přehrání kazety na QD
 QD=DIRECTORY.
 EB34H GETLINE s BREAK CHECK.Tato ruti-
na umožňuje zadání řádky (více znaků)
z klávesnice.Zadaný řetězec je uložen
do vyrovnávací paměti od 11A3H.Rutina
je ukončena CR.Po ukončení je na konec
doplněno 0DH.
 EB4CH příkaz-L
 EBAEH přikaz-S
 EC00H příkaz-V
 EC1EH přikaz-B
 EC29H příkaz-M
 EEA7H příkaz-QUICK DISK LOAD.Od tohoto
místa je uložena rutina QD LOAD s
parametry odezvy.
 EF2EH příkaz-QUICK DISK SAVE.Od tohoto
místa je uložena rutina QD SAVE s para
metry odezvy.
 EFEFH příkaz-QUICK DISK DIRECTORY.
 F0B5H příkaz-QUICK DISK FORMAT.Od to-
hoto místa je uložena kompletní rutina
pro formátování disku s odezvouOK?(Y/N)
 F12CH příkaz-QUICK DISK COPY.Od tohoto
místa je uložena rutina pro kopírování
s parametry odezvy.
 F1A2H příkaz CASSETTE TO QUICK DISK
COPY.Od tohoto místa je uložena komple-
tní rutina přepisu z kazety na QD
s odezvou.
 F202H Tabulka chyb.K hodnotám chyb
přísluší tabulka chyb.
    PRACOVÍ OBLAST E-MONITORU.
Je popsána v kapitole QUICKDISK.
   