2 / 4 475
Версия для печати
Подключение ROM-диска к компьютеру «Байт»
Идея ROM-диска не нова. Сколько их уже сделано - и для «Балтика», и для «Орион-128», «Радио-86РК» и т.п... В итоге за основу была положена идея на основе «теневого ОЗУ» для Спектрума. Т.е. по нажатию кнопки отключаем основное ПЗУ «Байта» и подставляем вместо него собственное, в котором находится загрузчик и программы. Основное требование - возможность подключения ROM-диска к любому «Байту» не производя никаких доработок компьютера, т.е. подключение - только через системный разъём.
ROM-диск с похожим принципом работы мной уже делался.
Схема ROM-диска для компьютера «Байт» (увеличивается по клику мышкой)
Схема ROM-диска для компьютера «Байт» (увеличивается по клику мышкой)
Как работает ROM-диск
Войти в ROM-диск можно двумя способами: по нажатию кнопки SB1 или командой чтения из порта #FB (251dec). Причём второй способ можно исключить совсем, если предполагается работа с программами, которые опрашивают порт #FB. Для этого предусмотрена перемычка J1. При нажатии кнопки SB1 на 5DD6 появляется лог.1, которая через элементы DD8.1 и DD8.4 блокирует прохождение сигналов A15 и /MREQ на внешнюю периферию (контроллер дисковода). Это сделано для того, чтобы при входе в ROM-диск контроллер дисковода выключил своё ПЗУ, если оно было активно в момент входа в ROM-диск. Это происходит при A14=1 или A15=1. Я реализовал A15=1. А сигнал /MREQ тут задействован для надёжности срабатывания. Параллельно через элемент DD15.1. отключается ПЗУ «Байта». В момент нажатия SB1 через элементы DD7.1 и DD7.2 подаётся лог.0 на входы /NMI и /WAIT процессора. Это сделано для того, чтобы исключить глюки при переходе на ПЗУ ROM-диска. Одновременно с этим сбрасываются триггеры DD3 и DD4, выбирая тем самым 0-ю страницу ROM-диска, где должен находиться загрузчик. На вход 3DD9 подаётся лог.0. Этим самым разрешается работа внутреннего дешифратора обращения к ПЗУ. После отпускания SB1 процессор переходит на адрес #0066 в ПЗУ загрузчика ROM-диска, откуда начинает выполняться программа.
Выход из ROM-диска и включение обратно «байтовского» ПЗУ осуществляется командой чтения из порта #7B (123dec). При этом через DD5, на котором сделан дешифратор для выборки порта #7B или #FB подаётся сигнал выборки на триггер DD6, который сбрасывается в 0, включая «родное» ПЗУ «Байта».
Организация ROM-диска:
Так как содержимое ROM-диска может быть представлено только в адресном пространстве ПЗУ (#0000-#3FFF), то работа с ROM-диском осуществляется страничным способом. Одна страница - 16КБ. Для управления страницами достаточно записать в любой порт номер страницы. Дешифрация обращения к страничному порту сделана на DD8.2. Номер страницы записывается в триггеры DD3,DD4 и далее через дешифратор DD10 преобразуется в абсолютный адрес на ПЗУ ROM-диска. Данная схема рассчитана на использование ПЗУ ёмкостью 128 и более килобайт.
В схеме есть возможность использования внешних картриджей с ПЗУ, в которых может быть записано что угодно. Т.е. предполагается, что на плате ROM-диска есть своё «системное» ПЗУ, где размещены наиболее важные для работы программы, а на картриджах могут быть, к примеру, игры и т.п. Картридж вставляется в специальный разъём X2 на плате. При вставленном картридже внутреннее ПЗУ ROM-диска отключается, и можно работать только с ПЗУ картриджа. На разъём X2 выведены все необходимые сигналы для организации работы картриджа ёмкостью до 4МБ включительно.
Дополнительно на плате ROM-диска установлена панель под тестовое ПЗУ для «Байта» (DD16 по схеме ROM-диска). Дело в том, что в «Байтах» ПЗУ впаяны в плату, и если надо запустить какой-нибудь тест памяти (например при проверке 128К памяти, или тест 48К для «Байт-01») поставить отдельное ПЗУ с тестом нельзя без отпайки ПЗУ. А при наличии ROM-диска надо всего лишь поставить ПЗУ с тестом, переключить перемычку J2 из положения 1-2 в положение 2-3 и включить компьютер.
Возможно придётся проверить напряжение питания +5В, подаваемое на ROM-диск с блока питания.
Помимо компьютера «Байт» ROM-диск без каких-либо доработок работает с компьютером «Байт-01».
Конструкция ROM-диска:
К компьютеру «Байт» помимо ROM-диска будем ещё подключать контроллер дисковода, поэтому конструктивно ROM-диск выполнен в виде переходной платы между системным разъёмом «Байта» и контроллером дисковода:
Плата ROM-диска для компьютера «Байт»
Плата ROM-диска для компьютера «Байт»
Плата ROM-диска для компьютера «Байт»
Системный разъём у «Байта» только один, поэтому если мы его займём только ROM-диском, то больше ничего не сможем подключить к компьютеру.
В левой нижней стороне платы спаян IDE-контроллер, на самой макетной плате достаточно места для ещё какой-нибудь полезной периферии.
Компьютер «Байт» с ROM-диском
Компьютер «Байт» с ROM-диском
Компьютер «Байт» с ROM-диском
Компьютер «Байт» с ROM-диском
Картридж с ПЗУ для ROM-диска компьютера «Байт»
Компьютер «Байт» с ROM-диском с картриджем
Картридж с ПЗУ для ROM-диска компьютера «Байт»
Компьютер «Байт» с ROM-диском с картриджем
Компьютер «Байт» с ROM-диском, контроллером дисковода и дисководом
Компьютер «Байт» с ROM-диском, контроллером дисковода и дисководом
Компьютер «Байт» с ROM-диском, контроллером дисковода и дисководом
Это всего лишь один из возможных вариантов исполнения ROM-диска. На основе его можно сделать свои более лучшие проекты. Например, ROM-диск используется в «новодельном» контроллере дисковода для компьютера «Байт».
Адаптация программ на ROM-диск
К сожалению, просто так, простым копированием, игры и системные программы на ROM-диск не переносятся. Сама организация ROM-диска предполагает, что программа должна быть сначала подготовлена для размещения на ROM-диске. Для игр, например, необходимо вскрыть загрузчик, выкинуть всё ненужное типа интро и заставок, чтобы не занимать драгоценное место на ROM-диске. Вытащить непосредственно исполняемый код, запаковать его, поместить на ROM-диск, и написать загрузчик, который бы извлекал этот код с ПЗУ ROM-диска в память компьютера, распаковывал его, подготовил бы систему для его запуска и запустил код исполнение. Это нелёгкая работа.
Для начала я адаптировал несколько системных программ для прошивки системного ПЗУ ROM-диска. Для этого понадобится одно ПЗУ или FLASH на 128КБ.
Стартовый экран системного ROM-диска для компьютера ″Байт″
А в качестве примера использования внешнего картриджа для игр я адаптировал все игровые и системные программы с двух кассет, поставляемых с «Байтом», для ROM-диска. Для этого понадобятся две микросхемы ПЗУ или FLASH на 256КБ (2*256=512К).
Стартовый экран игрового ROM-диска для компьютера «Байт»
В процессе работы по адаптации программ с кассет к ROM-диску, удалось адаптировать все программы для загрузки в среде TR-DOS. Неадаптированным остался только копировщик, но это точь-в-точь TFCopy'87, и его можно спокойно найти в интернете.
Напомню, что некоторые программы с «Байтовских» кассет имеют особенности при загрузке.
ROM-диск для шины NEMO-BUS
Кроме «Байта» я делал ROM-диски по тому же принципу для других спектрум-совместимых компьютеров. В частности есть вариант устройства для шины Nemo-BUS:
ROM-диск для шины Nemo-BUS
ROM-диск для шины Nemo-BUS
Этот вариант ROM-диска хорошо себя показал в работе. Проверялся на компьютерах KAY-1024, ZXM-Phoenix, ZX-Evolution.
Состав программ на системном ROM-диске
Кроме системных программ для использования в ROM-диске были адаптированы игры общим объёмом 1МБ:
Список игр на ROM-диске объёмом 1МБ
Скачать:
Прошивки |
|
|
Прошивка системного ПЗУ ROM-диска для «Байта» Для ROM-диска потребуется ПЗУ или FLASH объёмом 128КБ
|
|
|
Прошивка ROM-диска для «Байта» со всеми программами с «байтовских» кассет Для ПЗУ объёмом 512К (можно 2 по 256К)
|
|
|
Прошивка ROM-диска с системными программами (от 27.10.2015) Для ПЗУ или Flash объёмом 256К
|
|
|
Прошивка ROM-диска №1 с играми (от 21.10.2020) Для ПЗУ или Flash объёмом 1024К или двух микросхем по 512К
|
|
|
Прошивка ROM-диска №2 с играми (от 15.02.2024) Эта прошивка только начала наполняться играми. Со временем игры будут добавляться.
|
Схемы |
|
|
Схема ROM-диска для Nemo-BUSROM-диск рассчитан на использование микросхем FLASH-памяти объёмом от 128К до 512К включительно или микросхем ПЗУ от 128К до 1МБ включительно.
|
Прочее |
|
|
Образ диска с «байтовскими» играми, адаптированными для TR-DOSЗащита «Церикопик» в играх удалена
|