            MAPOVÁNÍ PAMĚTI

Počítač obsahuje různé,k sobě paralelní paměti,které
mohou být zapínány nebo vypínány.Jelikož lze CPU
adresovat na 64 Kbyte,je nutné paměť mapovat.To lze
provést pomocí vstupních(IN)a výstupnich(OUT) příkazů.
Je důležité,aby program k mapování paměti nebyl nikdy
v paměti,kde se mapování uskutečňuje,protože by došlo
k jeho zhroucení.Nyní následuje přehled jednotlivých
IN a OUT instrukcí:

a)OUT (CEH),A
  Když byl ACC naplněn 8AH,je režim MZ-800 přepnut
  do režimu MZ-700.Jestliže do ACC posíláme jiné
  parametry(možné 0-7),nastavujeme v MZ-800 grafický
  modus.Blíže o tom v odstavci GRAFIKA.

b)OUT (E0H),A
  V paměti od 0000H-8000H dochází k nastavování RAM,
  přičemž zbytek paměti se nemění.

c)OUT (E1H),A
  Zde jsou dva režimy:
  1.MZ-700 režim /přes LD A,08H;OUT (CEH),A/
    Paměť od D000H-FFFFH se nastaví jako RAM.
  2.MZ-800 režim
    Paměť od E000H-FFFFH se nastaví jako RAM.

d)OUT (E2H),A
  Paměť od 0000H-1000H je nastavena jako ROM monitor.

e)OUT (E3H),A
  1.MZ-700 režim
    Paměť od D000H-DFFFH je nastavena jako VRAM.
  2.MZ-800 režim
    Pouze se aktivizuje vrchní ROM monitor.

f)OUT (E4H),A
  1.MZ-700 režim
    Paměti od 0000H-1000H a E000H-FFFFH jsou nasteveny
    jako ROM.
    Video RAM se aktivizuje od D000H-DFFFH.
    Tento režim odpovídá režimu MZ-80K.
  2.MZ-800 režim
    Paměti od 0000H-1000H a E000H-FFFFH jsou nastaveny
    jako ROM.
    Paměť od 1000H-1FFFH je aktivizována jako CG ROM.
    VRAM od 8000H výše se aktivizuje(podle složení
    graf.paměti).
    Zbytek paměti je RAM.

g)OUT (E5H),A
  Jako u OUT (E1H),A,ale příslušná paměť je kompletně
  zrušena.

h)OUT (E6H),A
  Jako u OUT (E5H),A,ale s návratem.

i)OUT (E0H),A
  Zapíná grafiku u OUT (E4H),A.

j)OUT (E1H),A
  Vypíná grafiku u OUT (E4H),A.

Nyní následuje praktický příklad.ROM monitor v režimu
MZ-800 uložen do RAM paralelně s ROM:

1200 21 00 00  LD HL,0000H počáteční adr.ROM monitoru
1203 11 00 20  LD DE,2000H volná pamět
1206 01 00 10  LD BC,1000H délka ROM nonitoru
1209 E5        PUSH HL     zachraň HL
120A C5        PUSH BC     zachraň BC
120B D5        PUSH DE     zachraň DE
120C ED B0     LDIR        přenos ve volné paměti
120E E1        POP HL      HL=2000H
120F C1        POP BC      BC=1000H
1210 D1        POP DE      DE=0000H
1211 D3 E0     OUT (E0H),A nastavení paměti od
                           0000H-1000H jako RAM
1213 ED B0     LDIR        přenos do RAM monitoru
1215 C3 AD 00  JP 00ADH    teplý start RAM monitoru

K vysvětlení:Nejdřive provádíme přenos ROM monitoru,
který je umístěn v paměti od 0000H-1000H do volné
paměti RAM od adresy 2000H.Potom nastavíme paměť od
0000H-1000H jako RAM a provádíme přenos program ROM
monitoru do této paměti a startujeme.

Je obtížné vyvolat momitorové rutiny jako např.0015H
v paměti od 0000H-1000H a E000H-FFFFH,pokud je
nastavena jako RAM.Potřebujeme totiž provozní režim
MZ-80K.Musíme si tedy připravit buď softwaremonitor
nebo vypracovat speciální rutiny.

Nyní se již snadno manipulovat s RAM monitorem.Mimo
jiné každou buňku v paměti lze měnit přikazem M.

