Re: Ремонт ATM Turbo 2
Posted: 26 Feb 2015, 07:21
CHRV wrote:Макс, а мой тест тоже наверно не заработает?
С большой долей вероятности.
CHRV wrote:Глянь, по сорцу - может пофиксишь порты манаджера памяти?
Если мне кто предоставить рабочее железо, на котором можно будет тестить, постараюсь. Ведь эмуль тут не сгодится - в нем архитектура 7.хх реализована, а я отличия в архитектуре изучал только теоретически - все время работал на "семерках". А в 6.хх основная фишка такая: если в диспетчере памяти (порт #xxF7) на платах версий 7.xx биты D0-D5 используются под инвертированный номер страницы, D6 (сигнал ROM) выбирает ОЗУ или ПЗУ, а D7 осуществляет коммутацию с портом #7FFD, то на платах версий 6.хх под инверсный номер страницы задействованы только биты D0-D4 (поэтому выбрать память выше 512Кб нельзя), D7 - без изменений, а вот ОЗУ и ПЗУ выбираются одновременным установом или сбросом сразу двух битов D5 и D6, на которые подведены сигнала RAM/ и ROM. А если устанавливать их "вразнобой", то при определенной комбинации происходит подмена ПЗУ-ва ОЗУ-вом - т.е. включается ОЗУ, но железо на основании своих сигналов думает, что это ПЗУ и соответственно ведет себя (например, позволяет включать теневые порты при переходе на адреса #3Dxx, что возможно только, если там включена ПЗУ и т.д.). Такая схем создавалась в начале 90-х, когда объемные ПЗУшки 64Кб и выше были дороги и для удешевления микроартовцы предлагали вариант с установкой дешевой 2Кб-ПЗУшку РФ2 (а АТМ-1 тоже такая возможность декларировалась), в которой был прописан только загрузчик, а все остальное содержимое заливалось с дискеты в ОЗУ, которое затем включалось в режим эмуляции ПЗУ. Видимо, к моменту создания плат 7.хх ПЗУшки подешевели и от такого варианта отказались...
CHRV wrote:И инит клавиатуры тоже в этом случае не нужен наверно.
Ага. Контроллер XT-клавы в платах 6.хх построен вокруг статического ОЗУ 537РУ10, доступного по отдельным портам, в платах 7.хх не присутствующих. Никакого отдельного процессора типа i8051 как на платах 7.хх, так нет. Программа-драйвер для преобразования скан-кодов XT в данные для спектрумовского порта #xxFE находится в основном ПЗУ и при первичном старте компа просто через упомянутые порты заливается в РУ10, после чего уже происходит эмуляция мех.клавы. Соответственно, эта "прошивка" содержится в теле ПЗУ BIOS 1.06.xx, и при использовании BIOS от TURBO 2+ (версии 1.07.xx, не говоря уже об xBIOS), где она была выпилена, работа будет возможна только с механической клавой.