даже если получается то вернуться назад будет тяжело
по крайней мере найти такое место в ПЗУ через которое можно будет включить обратно ОЗУ и передать обратно управление
да и смысол такого пируэта тяжело найти
Вид для печати
да, ВВ55 порт С бит 4 (т.е. 5ый) переключает дешифрацию.
но, чтоб это правильно работало в эмуляторе нужна корректная эмуляция ВВ55 и его режимов, то есть по сбросу порты должны устанавливаться в режим ввода = высокоимпедансное состояние = равнозначно выводу в них FF. а при переводе в режим вывода уже выводится значение из порта (и там 0 после сброса).
короче на старте эти переключения делаются не "нормально" через собсно вывод данных в порт С, а манипуляциями с регистром режима.
Поистине, удивительное рядом! Спустя столько лет для меня открываются такие интересные подробности! Никогда ранее даже намека не встречал на такой функционал ВВ55А в Специалисте. При этом незнание данной информации позволило написать мне вполне себе работоспособный эмулятор Специалиста. Понятное дело, что если бы существовал какой-то софт, который использует данный функционал, то он бы на моём эмуляторе не заработал. Но я даже предположить не могу, как это можно задействовать или хотя бы проверить. Ну, разве что написать специальное тестовое ПЗУ, которое будет проверять эту фичу. А что, любопытная задача для тестирования эмуляторов :)
да проверить легко
тяжело написать сам тест
нужно найти в "зеркальной" ПЗУ-шке адрес по которому выводится значение в порт а потом ret
найти адрес по которому в A будет занесено нужно значение для включение обратно ОЗУ а потом ret
найти последовательность в ПЗУ
на которую мы укажем стеком
чтоб можно было переходить ret-ами по разным частям ПЗУ
затем размещаем выключалку ОЗУ так чтоб сразу после выключения
следующей командой был ret на занесение в A значений для порта
после которого следующий ret бы давал переход на вывод в порт
а следующий ret передавал бы управление обратно в ОЗУ
с выводом надписи "тест пройден"
конечно нужного может и не оказаться
но можно попытаться выкрутится и еще
ну программка для тестирования будет куда интересней
чем тест в ПЗУ
сделать тест для ПЗУ это тьфу...
вот практического применения данной фичи то нет
ну определили факт
а потом как всегда окажется что какой нибудь очередной специалист на фпга сразу стартует с $C000
и никакого включения ОЗУ в нем нет...
- - - Добавлено - - -
хотя нужно эмулировать
чтоб программы срущие по всем подряд портам
зависали нахрен изза отключения ОЗУ :)
хотя срать по всем портам подряд на специалисте несколько проблематично :)
но мало ли кто до какой оптимизации додумается
Вот насчет режимов... Кроме как в режиме 0 (простой ввод-вывод) Специалист использует ВВ55? Потому как по схемам ничего для остальных режимов никуда не присоединено.
И какую клаву там делать? QWERTY/ЯВЕРТЫ или JCUKEN/ЙЦУКЕН? Либо английский, либо русский будут не на своих местах
ВВ55 - в принципе вообще можно ее током не мулить а хаковые хендлеры прикрутить для жестко заданных режимов. но, если ты собираешься делать типа мульти-системный фреймворк, то наличие полноценного компонента i8255/ВВ55 может быть полезно.
на счет клавы не в курсе