Консолидация документации по контроллерам SMK, c моими комментариями |
Здравствуйте, гость ( Вход | Регистрация )
Консолидация документации по контроллерам SMK, c моими комментариями |
SuperMax |
16.4.2021, 11:13
Сообщение
#1
|
Администратор Группа: Root Admin Сообщений: 6 290 Регистрация: 7.1.2006 Из: Красноярск Пользователь №: 1 |
СМК. Режимы работы и распределение памяти.
Память в контроллерах "АльтПро" разбита на страницы по 32 Кб, части (сегменты) одной такой страницы подключаются в области адресов 100000-177777, сегменты разных страниц одновременно подключить нельзя. Сегментами ниже называются фрагменты памяти по 10000 байт. (4кБ) Сегмент с номером X=0...7 может быть подключен либо с адреса 1X0000, либо с адреса 1X0000+-40000 в зависимости от номера режима. Распределение памяти в различных режимах приведено в табл.1, затем следуют пояснения общего характера, которые рекомендуется прочитать, и примечания специального характера, которые понадобятся тем, кто пишет некорректные программы; тем, кто пишет корректные программы, рекомендуем пользоваться запросами BIOS, значительно упрощающими работу с доп. памятью и предотвращающими конфликты. Все управление памятью осуществляется через регистр 177130, туда пишется номер страницы и номер режима особенности записи в этот регистр - будут описаны отдельно сводная таблица режимов Буква 'W' после номера сегмента означает, что ОЗУ доступно только по записи, 'R' - только по чтению, через дробную черту - старая версия контроллеров / новая (по номеру версии ПЗУ не определяется), '-' - не подключается ничего. ПЗУ в контроллерах имеет объем 10000 байт, в режиме SYS одно и то же ПЗУ подключается и со 160000, и со 170000 (благодаря этому изменяется адрес запуска компьютера). В контроллерах "SMK" ("винтовых") во всех режимах, кроме SYS, в адресах 170000-177000 подключено ОЗУ, в дисководных - нет, выше 177000 - во всех одинаково. Внутри таблицы в рамки выделены группы режимов и адресов, используемые при пересылке данных для доступа ко всем 8 сегментам страницы памяти (одна рамка для БК10, другая - БК11М: это области, неперекрывающиеся с ПЗУ и охватывающие всю страницу). Однако при размещении и вызовах подпрограмм на БК11М RAM-BIOS использует два первых режима (SYS и Std10) в окне 120000-140000, т.к. для работы с подпрограммами необходимо наличие ROM-BIOS в адресном пространстве. РАСШИФРОВКА РЕЖИМОВ: SYS - используется для запуска, пересылки данных на БК10 и RAM-BIOS'ом (он - всегда в 0-й странице); Std10, Std11 - стандартные, традиционные режимы работы для БК10 и 11М соответственно, Std10 используется также для пересылки данных на БК10; ОЗУ10 - вместо монитора БК10 и ПЗУ-160000 подключается ОЗУ (на многих БК10 требуется простая доработка, иначе доп. ОЗУ подключается параллельно ПЗУ монитора и приходится записывать в это ОЗУ копию монитора); используется также для доступа к доп. памяти на БК11М; All - позволяет на БК10 подключить ОЗУ ко всему адресному пространству, что используется для загрузки копии Вильнюсского Бейсика; применяется также для доступа к доп. памяти на БК11М; ОЗУ11 - подключение ОЗУ вместо ПЗУ на БК11М, для отключения ПЗУ монитора БК11М простая доработка требуется всегда; Hlt10, Hlt11 - открывают доступ к HALT-режиму процессора на БК10 и БК11М соответственно. Максимально "продвинутые" режимы: везде, где можно, подключается ОЗУ вместо ПЗУ и на БК10 нижняя часть ОЗУ монитора защищена от записи (квази-ПЗУ) для повышения глюкоустойчивости. Доработки для отключения ПЗУ монитора СХЕМА ОТКЛЮЧЕНИЯ ПЗУ МОНИТОРА БК0011М при подключении на его место доп. ОЗУ контроллеров "АльтПро" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Соответствующий сигнал высокого уровня вырабатывается контроллерами и выдается на контакт B6 разъема МПИ. Доработка обеспечивает автоматическое отключение ПЗУ монитора БК0011М при подключении на его место доп. ОЗУ (адреса 140000-160000) и делает эти 8 Кбайт доступными для программ как и на БК0010(-01). В частности, можно запускать точную копию Бейсика-БК0010. Для этого нужно отделить от схемы 23 вывод микросхемы DS17, перерезав идущую к нему жирную дорожку (1801РЕ2-324, крайняя левая нижняя микросхема). В разрыв нужно подключить резистор 1 кОм, а также соединить проводом отрезанный вывод DS17.23 и контакт B6 разъема МПИ (верхний ряд, 6-й слева контакт). ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ На контроллерах с доп. ОЗУ менее 256 Кб на БК10 может быть подключено ПЗУ Бейсика традиционно записью #10 в 177130, правда на режимы ОЗУ это никак не влияет. При подключении ОЗУ параллельно чему-либо (ПЗУ, регистры) в случае конфликта данных (в одном - 0, в другом - 1) в подавляющем большинстве случаев читается 1 (для микросхем такой конфликт не страшен, все они имеют внутреннюю защиту - хотя, конечно, конфликты снижают помехоустойчивость и потому нежелательны). Поэтому при параллельном подключении ОЗУ и ПЗУ в ОЗУ надо предварительно записывать копию ПЗУ, а при параллельном подключении ОЗУ и регистров в ОЗУ должны быть нули. При включении режима "All" из режимов Hlt10, Hlt11 (а на "старых" контроллерах еще и из режима ОЗУ10) в ОЗУ режима "All" по адресу 177130 вписывается <20 + код страницы>; при использовании запросов BIOS таких переключений не бывает. КОДЫ ПОДКЛЮЧЕНИЯ СТРАНИЦ ОЗУ: 64 кБ - 0,2000; 128 кБ - 0,2000,4,2004; 256 кБ - 0,2000,4,2004,10,2010,14,2014; 512 кБ - 0,2000,4,2004,10,2010,14,2014, 1,2001,5,2005,11,2011,15,2015. Объем памяти можно определить по байту 167777 ПЗУ контроллера. <надо зафиксировать как> При переключениях коды режима и страницы необходимо складывать по BIS. пример Код mov #6,@#177130 clr r0;тут будет режим + страница bis #120,r0;выбор режима ОЗУ10 bis #4,r0;выбор страницы mov r0,@#177130;установили режим и страницу mov #0,@#177130;остановили дисковод Кодировка версии контроллера. Номер версии доступен программно - он содержится в последнем слове ПЗУ (по адресу 167776). В старшем байте содержится ключ и информация об объеме дополнительной памяти, в младшем байте - информация о типе контроллера и номере версии ПЗУ. 174000 - A16; 174400 - A16 + контроллер "винта" с доп. ОЗУ 4 Кб (170-177000); 175000 - A16M; 175400 - не используется; 176000 - 64 Кб 176400 - 128 Кб 177000 - 256 Кб 177400 - 512 Кб если младший байт > 0 - то это старая версия ПЗУ совмещенного контр. винчестера и дисковода SMK64 - ее нужно заменить (ПЗУ установлено на панелях); если младший байт имеет значение от 200 до 300 - то это контроллер SMK, если > 300 - это дисководный контроллер A64M-A512M. В старой версии ПЗУ ( мл. байт > 0 ) ROM-BIOS отсутствует. Проверка на наличие не менее 64 Кб и современной версии ПЗУ осуществляется одной командой: Код CMP @#167776,#176200 BHIS - Ok Внимание! Программисты, загружающие в ОЗУ с адреса 160000 свою версию драйверов, должны область 167460-170000 (точки входа BIOS и номер версии контроллера) копировать 1:1 из ПЗУ ! -------------------- Живы будем - Не помрем !
|
Текстовая версия | Сейчас: 6.6.2024, 4:35 |