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.