AY-Track: "LAMERZ MUST DIE !"
__________________________________________
(C) Prusak
__________________________________________
╔════════════════════════════════════════╗
║ ║
│ Эмулятор ПЗУ │
│ для компьютера "ZX-Spectrum". │
│ Версия 1.0. │
║ ║
╚════════════════════════════════════════╝
Данная разработка предназначена для от-
ладки и испытания встроенного программного
обеспечения компьютера. Эта схема подменя-
ет ПЗУ компьютера на ОЗУ размером 64 кб. Я
владелец компьютера Profi,поэтому все сиг-
налы указаны исходя из его схемы. Посему
приведу расшифровку некоторых названий, т.
к. на схемах разных моделей машин они мо-
гут различаться.
TRDOS - один из двух сигналов переключения
страниц ПЗУ. Когда он активен, то
подключается та половина ПЗУ,в ко-
торой содержатся TR-DOS и старто-
вое меню Profi.
ROMCS - активен при обращении по адресам:
#0000 - #3FFF, если ПЗУ не забло-
кировано.
ROM14 - второй сигнал переключения страниц
ПЗУ. Идет с порта #7FFD.
Эмулятор управляется программно по пор-
ту #F7. Конфликтов с другими устройствами
не создается, потому что дешифрация адреса
происходит по всем 8 битам. Раскладка би-
тов такова:
0 - подключает ОЗУ вместо ПЗУ. Запись в
ОЗУ возможна только при его подключе-
нии.
1 - блокировка записи в ОЗУ. Полезен для
полной эмуляции ПЗУ.
2 - блокировка сброса устройства.Если этот
бит сброшен, то нажатие кнопки reset
будет подключать обратно ПЗУ. При ус-
тановленном бите сброс никак не будет
влиять на состояние устройства. Выйти
из этого состояния можно только путем
программного обнуления этого бита,либо
путем выключения питания. Введен также
для полной эмуляции ПЗУ.
3 - установка этого бита в 1 будет подклю-
чать ту страницу ОЗУ или ПЗУ,в которой
содержится TR-DOS и что-то там еще в
зависимости от конкретной машины. Вы-
бор конкретно TR-DOS или дополнитель-
ной страницы производится 4 битом пор-
та #7FFD. Введен для облегчения досту-
па к странице TR-DOS,а также для обес-
печения доступа к дополнительной стра-
нице в машинах, в которых его нет(Pro-
fi, GRM, Радон и т. д.).
Данное устройство рассчитано на исполь-
зование ПЗУ 27512. К сожалению, по многим
причинам я не могу реализовать работу уст-
ройства с ПрофПЗУ на Скорпионе. Естествен-
но, само ПрофПЗУ с ним работать будет, но
вот замену всех страниц сделать нельзя.
Поэтому, в 4 страницу ОЗУ для работы необ-
ходимо загружать старые версии теневого
монитора, работающие с обычным ПЗУ. Вторым
подобным случаем является интерфейс "ZX-
-LPRINT". Если его программа расположена в
отдельном ПЗУ, а не в четвертой странице
27512, то это ПЗУ также эмулироваться не
будет. При установке эмулятора, ПЗУ, нахо-
дящееся в компьютере, необходимо переста-
вить на его плату.Схема рассчитана на под-
ключение к системной шине. Никаких допол-
нительных сигналов не требуется.
На данный момент эмулятор собран и ра-
ботает, посему схема не должна содержать
ошибок. Опытный образец показал блестящие
результаты. Теперь вы сможете делать со
своим ПЗУ все, что угодно. Например,вы мо-
жете полностью изменить подпрограмму обра-
ботки NMI в TR-DOS - эта доселе никчемная
кнопка может стать действительно волшеб-
ной!
Испытания опытного образца показали
только один нюанс, который касается работы
TR-DOS в памяти устройства. При инициали-
зации TR-DOS подключает на место ПЗУ. Это
явление - следствие работы подпрограммы с
адреса 15672, целью которой является про-
верка наличия Интерфейса-1. Для этого она
обнуляет порт #F7 в надежде получить ответ
от интерфейса. Ниже приведен ее полный
текст:
15672 XOR A ;обнуляем порт #F7
OUT (247),A
IN A,(247) ;смотрим его состояние
CP 30 ;интерфейс-1 отвечает ?
JR Z,15684 ;если да,то создание его
;системных переменных
CP 31
RET NZ ;если нет, то возврат
15684 RST 8 ;создание системных пе-
;ременных интерфейса-1
DEFB #31
LD A,1 ;по команде SAVE записы-
;вать 1 копию
LD (23791),A
RET ;возврат
Для обеспечения работы TR-DOS в памяти
эмулятора необходимо подправить эту под-
программу,занеся два нуля по адресам 15673
и 15674. После этого порт #F7 перестанет
обнулять.
FD
;(если он у вас не читается, то
;SORRY).