Кого волнует совместимость, если смена архитектуры реверсивна? Т.е есть два режима - 36К и 48К. Для переноса экрана нужно не так уж много. Собственно перенос экрана это лишь один программно управляемый бит (подаваемый на адресный мультиплексор). Проблему создаёт только адресация портов F800...FFFF, даже точнее только один порт FF00, т.к на остальные плевать, они играми не задействованы (на системное ПО вообще плевать, т.к оно не нужно, а при необходимости конвертируется с расходом времеми 5 минут на штуку).Сообщение от rw6hrm
Куда переносить порты?
При такой архитектуре с ПЗУ посреди ОЗУ остаётся только отрезать кусок от ПЗУ C000...CFFF. К сожалению, сократить это ПЗУ всего до 2 кб и отдать вторые 2К на порты не получится, т.к на СПЕЦИАЛИСТЕ после опубликования монитора Орлова в 1988 системные программы стали делать вызовы не на ROM-BIOS (C037, C337, C438...) а на входы орловского монитора (С803, С809, С818...), хотя на большей части входов там стоит JMP на загрузчик в аналогичные входы. Поэтому можно поставить дешифратор ИД7 на чип селект C800 и отдать для ПЗУ C800 лишь участок C800...C8FF, что полностью удовлетворит все программы. Тогда остаётся ещё 7 чип селектов, чего Вам хватит, чтобы подключить внешний эл.диск на статике, винчестер и ВВ51 для обмена с PC на скорости 38К (на большее скоростей СПЕЦИАЛИСТА не хватит).
Остаётся предусмотреть выборку FF00...FFFF для клавиатурного ППА. Для этого достаточно поставить ЛА2 выбирая ею старшие 512 байт, а 8-й вход ЛА2 будет отключать выборку в режиме 48К, когда в этом месте экранное ОЗУ. Две выборки ППА (C800 и FF00) объёдиняем "монтажным ИЛИ", т.е двумя диодами. Тогда ППА клавиатуры в режиме совместимости будет выбираться, как и положено по FF00, а в режиме 48К - по адресу CF00.
Считаем расход деталей:
- регистр режима. Из экономии используем выход INTE, тогда по EI имеем режим 48К
- ЛА2 для дешифратора адресов FE00...FFFF (здесь ППА клавиатуры в режиме СТАНДАРТ)
- ИД7 дешифратор В/У, если плата убогая и его нет (если уже есть, то переадресуем на C800)
- второй параллельный ROM-BIOS C000, где прошит ROM-BIOS для экрана на D000...FFFF
- ЛА3, логика для выборки по INTE, то загрузчика C000, то, в примитиве, его же, но с экраном D000
Итого расход деталей - 2 или 3 дешёвых TTL-микросхемы, но компьютер становится на порядок приятнее.
Но это всё-равно не то.
Идея Львова по "закрытию экрана" удобнее и грамотнее. Расход деталей тот же, адресацию В/У и ROM-BIOS менять не надо и все ПЗУ остаются на базе. А сплошное ОЗУ то же самое - 48 кб. Кроме того, неудобство архитектуры с экраном D000 заключается в том, что перед запуском старой программы из ДОС работающей в режиме 48К надо программно переключать режим назад, т.е инициализировать по новому рабочие ячейки ROM-BIOS. Тогда как в концепции Львова это не требуется. В общем идея от Львова выгоднее, такая архитектура красивее и проще. Из простейших доработок на готовой плате - это самое разумное.




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