А вот еще такой вопрос:
На Орионе-ПРО в режиме Ориона-128 в область F800..FFFF подставляется ОЗУ (в котором лежит Монитор F800), но запись в него запрещена.
Коду, выполняемому в режиме имитации Ориона-128 в нижних адресах памяти 64к-шной страницы 2 (т.е. третьей) нужно модифицировать область F800..FFFF. Делаю разрешение записи в F800..FFFF сбросом битов D7 или D7+D6 регистра 0Ah, но тут у меня эмулятор (который неизвестно правильно ли эмулирует) выдергивает из-под программы память, запрещая действие регистра страниц F9 (код проваливается в страницу 0, как я понимаю). Правильно ли это?
У меня так:
Код:
in a,(0Ah) ; Orion-PRO RAM/ROM dispatchers on/off config register
ld c,a
xor a ; reset D7,D6 (set Orion-PRO mode: F800...FFFF is RAM), all dispatchers is off (=0)
out (0Ah),a
... тут бы править область F800..FFFF, но улетаем в трэш ...
ld a,c
out (0Ah),a ; restore config register (to Orion-128 mode)
А как надо? примерчик бы.