Итак, первые результаты работы.
Вчера в метро накарябал схемку подключения ОЗУ (32 кб) и альтернативного маппера. Выложу сюда после отрисовки в CAD.
Структура девайса на данный момент следующая:
1. ПЗУ - 16 кб (используется уже имеющаяся страница TR-DOS)
2. ОЗУ - 32 кб (две страницы)
3. Маппер BetaDisk - имеющийся в схеме. Включение по Magic, Reset (для 48 к), переходу на #3Dxx; отключение - по переходу в ОЗУ.
4. Маппер +D - второй. Включение по переходу на #0000, #0008, #003A, #0066 (с возможностью блокировки внешним сигналом - см. примечание 1) либо команде IN A,(#E7). Отключение - по команде OUT (#E7), A.
5. Порт управления маппером. Адрес порта и условия доступа (постоянно либо только при активной памяти DOS) пока не определены. Раскладка: бит 0 - включение маппера +D; бит 7 - переключение страниц ОЗУ; бит 6 - замена ПЗУ на ОЗУ.
При сбросе содержимое порта управления маппером устанавливается в 0. Это означает, что активны оба маппера (маппер BetaDisk активен всегда) и при активации любого из них происходит подключение ПЗУ интерфейса. Далее, в зависимости от того, какая точка входа была задействована, производится:
а) проверка целостности и корректности содержимого ОЗУ (требуемая ОС загружена), в случае успеха - подстановка ОЗУ вместо ПЗУ и отключение маппера +D (если запрашивается TR-DOS). Иначе:
б) При активации точки входа #0008 - простая передача управления назад в бейсик за исключением ввода команд RUN (только если бейсик-программы в памяти нет) или RUN "name". При этом происходит загрузка образа ПЗУ G+DOS с заданным именем или "+ROM" по умолчанию и передача управления G+DOS.
в) При активации точки входа #3D03 (15619) - проверка на наличие команды RANDOMIZE USR 15619:REM SYSTEM "имя" (имя опционально). В этом случае происходит загрузка образа ПЗУ TR-DOS с заданным именем (или "TRSYSTEM"), отключение маппера +D и передача управления TR-DOS.
г) При активации любой другой точки входа #3Dxx - вывод сообщения об ошибке "No TRSYSTEM loaded".
д) При активации любой другой точки входа (#0000, #003A, #0066) - тупая передача управления обратно в ПЗУ бейсика.
Примечания:
1. Для обеспечения разделения NMI c Hayes-модемом на маппер +D заводится сигнал с 5 ноги м/с U2 адаптера модема. Таким образом, при задействованном прерывании модема обеспечивается блокировка маппера (побочный эффект - во время работы с модемом нельзя использовать G+DOS). Блокировать только точку входа #0066 не представляется возможным поскольку она используется также для вызова подпрограмм из ПЗУ бейсика.
2. Для обеспечения совместимости с компьютером АТМ-Турбо2, где в пространстве портов TR-DOS находятся порты управления дополнителными ресурсами, используется следующее решение: если одновременно включены маппер +D и подстановка ОЗУ, то вызов любой из точек входа #3Dxx (срабатывание маппера TR-DOS) ведет к подключению BootROM. В нем оставлены без изменений точка входа #3D2F и команды OUT (C), A и IN A,(C), имеющиеся в оригинальном ПЗУ TR-DOS. В схему АТМ заводится дополнительный сигнал с контроллера.
Ваши предложения, замечания, дополнения?