Расширение ПЗУ в ОРИОН-128, замены микросхем
Увеличиваем размер ПЗУ к573рф2
Расширение ПЗУ в ОРИОН-128
Разработчики ОРИОНА, отвечая на соответствующий вопрос, писали в
журнале РАДИО, что в ОРИОНЕ-128 расширение ПЗУ не предусмотрено (по
заявлениям авторов), а для
расширения числа резидентных программ служит ROM-диск.
Но увы, это отнюдь не одно и то же. Потому что в ПЗУ хранится ROM-BIOS и
чем больше объём ПЗУ, тем более качественный ROM-BIOS можно иметь. Для
сравнения, ROM-BIOS-ы западных 8-ми разрядок, выпущенных во второй
половине 80-тых, составляли 64 кб и более (а минимум это 32 кб).
Особенно это актуально для машины не имеющей внешней массовой памяти и
диспетчера ОЗУ (что позволяло бы грузить расширение ROM-BIOS в ОЗУ).
Из-за мизерности объёма ПЗУ, базовый набор драйверов, причём графической
машины, оказался даже хуже, чем у текстового РК86, что и предопределило
убогость внешнего вида основной массы системных программ
ORDOS.
ROM-диск позволяет хранить некоторые резидентные программы, в частности
базовую ОС, загрузчик с НГМД и т.п. Если бы, изначально была
стандартизована концепция загрузки расширения ROM-BIOS в ОЗУ из
ROM-диска, например, за счёт жёсткого резервирования ОЗУ B000...BFFF для
этих целей, то ROM-BIOS можно было бы расширять, загружая его при
включении ЭВМ из ROM-диска, что эквивалентно расширению ПЗУ. Однако увы,
этого сделано не было. А использование в ORDOS и в играх качестве
основной банки 0, окончательно похоронило идею загрузки расширения
ROM-BIOS в ОЗУ, что впрочем всё равно нехорошая идея, т.к в банке 0 мало
свободного ОЗУ (т.к там экран занимает 12 кб).
Мизерность ПЗУ не являлась бы проблемой, если бы в ОРИОНЕ был диспетчер
ОЗУ, позволяющий в небольшом окне (обычно это 16 кб) включать фрагменты
памяти дополнительного ОЗУ. Т.к большой ROM-BIOS нужен в основном для
обслуживания экрана (работы с цветом, оконности, вывода рамок, разных
шрифтов и даже графического интерфейса), то включение на время работы с экраном
в окне 16К соответствующей программы, полностью заменило бы большое ПЗУ.
Оптимально для ОРИОНА в качестве ПЗУ было бы иметь отключаемое ПЗУ 27256
в окне 0...7FFF, что позволяет в объёме 32К уместить комфортабельный
ROM-BIOS и существенно повысить качество программ. Такие попытки,
кстати, были сделаны, хотя и не для программ в банке 0, а для
CP/M-80,
причём в банке 2. Установка доп.ПЗУ 27256 требует монтажа на плате
ОРИОНА дополнительной панельки на 28 ног и несколько корпусов,
образующих управляющую логику. В 32 кб легко умещаются драйверы 3-х
шрифтов 6*10, 7*10 и 8*10, правда они пока существуют только в варианте
для Z80.
Конструктивно проще всего ПЗУ расширяется напайкой на ПЗУ РФ2 другой ПЗУ
РФ2 (или панельки для её установки, что удобнее при модификациях). Вот
схема. ПЗУ 0 включается по сбросу или по записи 0 в порт FC, а
альтернативное ПЗУ 2 кб включается записью туда 1. Нет смысла упоминать,
что порт FC есть только при процессоре Z80. При КР580 в качестве порта
управления ПЗУ можно использовать порт STA FB00 (но не OUT FB).
Исторически именно такой вариант и был первым и применялся на первых
платках для установки Z80 (названных впоследствии Z80CARD-I). Это был
1991 год, когда большинство пользователей ещё не имели ROM-диска. Потому
загрузка по сбросу ОС на адрес B800 из второго РФ2 решала проблему
отсутствия ROM-диска. В Z80CARD-II эта проблема уже не стояла, т.к
ROM-диск к тому времени уже стал стандартом для ОРИОНА, поэтому второе
ПЗУ РФ2 там уже неиспользовано.
Наличие двух ПЗУ РФ2 позволяло иметь в ЭВМ два ROM-BIOS, переключаемых
как программно, так и аппаратно. Но особой пользы наличие 2-х ПЗУ не
давало. Для работы прямо из этого ПЗУ использовался так называемый 'Shadowy-Monitor',
теневой монитор, преимущество которого было в том, что он делал всё то
же, что и M3-EXT, но вообще не занимал ОЗУ. Это даёт кое-какие
преимущества программисту, хотя по сути несущественные. Вот этот
монитор. Он для Z80 и прошивается в две РФ2 установленные в 2 этажа,
переключение портом FC по схеме приведённой выше.
"Звёздный час" второго ПЗУ РФ2 наступил лишь когда был написан эмулятор
РК86 на ОРИОНЕ с Z80. Оказалось, что в ПЗУ F800 при работе эмулятора
должен находиться ROM-BIOS РК86 (точнее совместимый). Теоретически можно
обойтись за счёт транспонирования кодов ROM-BIOS на другие адреса, но
для этого, во-первых, нет ресурса скорости CPU, а во-вторых, для этого
просто нет ОЗУ в банке 0 (всё впритык, свободного ОЗУ нет).
Решить эту проблему (нехватки ОЗУ) можно существенно переделав эмулятор
РК86 на ОРИОНЕ, перенеся код в банку 1 (или 2), где на 12 кб больше
свободного места. Я давно хотел перенести эмулятор РК в банку 1, но не
для исключения ПЗУ, а для того, чтобы в эмулируемом РК эмулировалось ОЗУ
8400...BFFF. Но даже, если это сделать, то ROM-BIOS РК86 всё-равно
придётся иметь в альтернативном ПЗУ F800.
Автор под псевдонимом, источник https://ruecm.forum2x2.ru/
Доработки и схемы прочие... непроверенные
На предыдущую страницу На главную страницу На следующую страницу