В ZX-Ревю 1-2 1996 была интересная статья:
© Пирогов А.В., Нижний Новгород, 1995.
ROM-Drive
Ни для кого не секрет, что в последнее время "Спектрумы" испытывают сильную конкуренцию со стороны всевозможных видеоприставок. Одно из несомненных преимуществ последних - "мгновенная" загрузка игр из ПЗУ картриджа. Высокая стоимость картриджей, судя по всему, не является препятствием для любителей игр на приставках.
Разработанная, мной система "ROM-Drive", которую я хочу предложить Вашему вниманию, основана на применении микросхем ПЗУ D2764-D27512 с записанными в них программами пользователя (ПП). Она позволит Вам:
а). Имея ROM-версии любимых игр, загружать их нажатием одной кнопки за несколько миллисекунд;
б). Иметь под рукой "запас" системных и прикладных программ, которые не только "мгновенно" загружаются, но и не подвержены ошибкам при загрузке (по этому пути пошли и разработчики одного из самых популярных компьютеров "Скорпион" при разработке профессионального ПЗУ). Долговечность таких программ на несколько порядков выше, чем у кассет или дискет;
в). Будучи применённой в школах (учебные программы, "зашитые" в ПЗУ) или в игровых автоматах, позволит сэкономить массу времени.
При всем этом система нисколько не ухудшает совместимости компьютера с программным обеспечением на кассетах и дискетах.
Аппаратная часть системы очень проста и может быть собрана радиолюбителем за 1 час. Доработка компьютера заключается в установке 3-х дополнительных микросхем: D1, D2-К555ЛЛ1, D3-К555ТМ2 и панельки под ПЗУ пользователя D4. Вся схема может быть подключена через системный разъём или смонтирована внутри компьютера - в этом случае панелька под ПЗУ устанавливается на корпусе компьютера. Принципиальная схема приведена на рис.1.
Система работает по принципу "теневого ПЗУ". В ПЗУ пользователя (ПЗУ-П) D04 записывается программа пользователя (ПП) по приведённым ниже правилам. Система начинает работу, если при замкнутом S1 нажать кнопку "сброс". При этом происходит следующее:
а). системное ПЗУ (ПЗУ-С) отключается (/CSSYS=1), вместо него включается ПЗУ-П (/CSUSR=0) объёмом от 8 до 64 Кб. С адреса 0000H в нём находится ROM-загрузчик ПП, который сразу начинает делать своё дело.
б). запрещается чтение данных из ОЗУ (сигналом /CSSYS), и мы получаем как бы два адресных пространства: первое-ПЗУ-П с 0000H до FFFFH (при объёме ПЗУ 64 Кб), работающее только на чтение, и второе-ОЗУ, работающее только на запись.
в). ROM-загрузчик ПП с помощью одной или нескольких команд LDIR перемещает блоки кодов из ПЗУ-П в необходимые места ОЗУ. В частности, Вы можете загрузить что-нибудь в любую страницу дополнительного ОЗУ 128-х машин, т.к. работа портов не нарушается.
г). как только размещение программы в ОЗУ закончено, ей передается управление с помощью команды JP ADDR, где ADDR - стартовый адрес программы (в диапазоне 4000H-FFFFH), При этом вырабатывается импульс /SET=0 и триггер D3 отключает ПЗУ-П, подключает ПЗУ-С, разрешает чтение ОЗУ (в общем, почти как в контроллере дисководов). Программа пользователя начинает работать как ни в чём не бывало.
Обратите внимание, что если S1 остается замкнутым, новое нажатие кнопки "сброс" не приведёт к очистке памяти, а снова запустится ROM-загрузчик, который, если его написать соответствующим образом, может, например, подгрузить уровень блочной игры или выполнить другие задачи (скажем, POKES).





Ответить с цитированием