Объявление форума |
Если пользуетесь личными сообщениями и получили по электронной почте оповещение о новом письме, не отвечайте, пожалуйста, почтой. Зайдите на форум и ответьте отправителю через ЛС. |
Полигон-2 » Бывший СССР » Концепт 1801ВМ1 |
<<Назад Вперед>> | Страницы: 1 2 3 4 5 ... 7 8 9 10 11 * 12 13 14 15 | Печать |
Mixa
Member
Откуда: Москва Всего сообщений: 170 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 8 авг. 2009 |
Профиль | Сообщить модератору
NEW! Сообщение отправлено: 4 января 2018 15:14 Сообщение отредактировано: 4 января 2018 15:20
Запрограммировал загрузчик в ПЗУ по адресу 173000. Проверил на четырех разных IDEшных дисках, успешно грузит первый сектор в начало памяти и передает туда управление. В тех секторах мусор с точки зрения процессора, в HALT вываливается в итоге по разным причинам. Однако, похоже, что всё работает. Фотки напоследок. Этажерка в сборе: и готовая к софтовым экспериментам система: Расклад регистров получился такой: 177400 DMA CSR 177402 DMA счетчик слов 177404 DMA адрес начала блока 177406 Обращение к ATA CS1FX 177410 (байт) Обращение к ATA CS3FX 177411 (байт) Задание адреса на шине ATA 177412 Прерывания CSR 177414 Прерывания вектор A (от DMA) 177416 Прерывания вектор B (от ATA) Device handler требует задания CSR устройства и вектора прерывания. Как такового ATA CSR в получившемся раскладе нету. И вектор прерывания не один, а два их. Размышляю, как лучше поступить. Вопрос в том, что такое на самом деле указываемый CSR устройства. Если это просто базовый адрес блока управления устройством, работа с которым индивидуальна для каждого устройства, то это одно. Если это адрес универсальной структуры с обращением к ней универсальным способом, и вдруг это где-то параметризуется, то это другое, и в моем случае не проходит. Лучше, чтобы было первое. Вторая непонятка с двумя векторами прерывания. Не разобрался еще с механизмом инициации вектора прерывания, но все равно возникает вопрос со вторым вектором, его нужно как-то инициировать. Есть ли какой-нибудь способ для драйвера до начала его использования вызвать код его инициализации, который резидентом не остается? |
MM
Advanced Member
Откуда: Павловский Посад Мск.обл. Всего сообщений: 3418 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 2 авг. 2013 |
Mixa написал: Вам необходимо ознакомиться с следующим доком : Есть ли какой-нибудь способ для драйвера до начала его использования вызвать код его инициализации, который резидентом не остается? "Программирование внешних устройств Руководство программиста 00008-01.33.01-2" Скан его найдете на моем форуме-справочнике из подписи ниже по тексту. Если кратко и по существу - начальную подготовку регистров и векторов производит начальный загрузчик в 173000, он вычитывает 0 блок тома, при этом сообщая номер тома и имя драйвера. В 000000 блоке тома тоже желательно повторить процедуру инициализации регистров и векторов, т.к. понадобится подпрограмма чтения блоков тома по номеру блока - более подробно в брошуре. |
Mixa
Member
Откуда: Москва Всего сообщений: 170 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 8 авг. 2009 |
Профиль | Сообщить модератору
NEW! Сообщение отправлено: 4 января 2018 16:44 Сообщение отредактировано: 4 января 2018 16:56
MM написал: Спасибо! Как-то сходу его там не нашел среди остального собрания, но судя по структуре оглавления это перевод RT-11 Software Support Manual. Он есть, его и почитаю. "Программирование внешних устройств Руководство программиста 00008-01.33.01-2" MM написал: Начальный загрузчик 173000 я сделал совсем простым, про прерывания он ничего не знает. Если кратко и по существу - начальную подготовку регистров и векторов производит начальный загрузчик в 173000, он вычитывает 0 блок тома, при этом сообщая номер тома и имя драйвера. В 000000 блоке тома тоже желательно повторить процедуру инициализации регистров и векторов, т.к. понадобится подпрограмма чтения блоков тома по номеру блока - более подробно в брошуре. Насчет векторов - гляну .DRVTB, это для Multi-Vector handlers, похоже, то, что нужно. |
Anonymous
Advanced Member
Откуда: Москва(Россия) Всего сообщений: 2537 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 22 нояб. 2011 |
Mixa написал: Он таким и должен быть. Это называется аппаратный загрузчик и его задача скачать с устройства в память первичный загрузчик, передав тому только номер привода, с которого грузились. Начальный загрузчик 173000 я сделал совсем простым, Далее первичный загрузчик, содержащий первичный драйвер, вычитывает с устройства вторичный загрузчик, сообщает ему точку входа в первичный драйвер, номер привода и имя устройства. После чего вторичный загрузчик, используя первичный драйвер грузит в память основной драйвер и сам монитор ОС. Вторичный загрузчик вам не надо писать, он входит в состав монитора ОС и при установке системы на диск копируется программой dup из файла монитора в блоки устройства со 2го по 5й. |
Mixa
Member
Откуда: Москва Всего сообщений: 170 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 8 авг. 2009 |
Профиль | Сообщить модератору
NEW! Сообщение отправлено: 4 января 2018 21:12 Сообщение отредактировано: 4 января 2018 21:13
Тут обнаружил, что то, чем управляет DW.MAC, очень похоже на WD1010, почти. Команды чтения-записи-форматирования-рекалибровки те же, почти все биты состояния на месте, так же работает с буфером сектора. А DMA, хе-хе, у него нету И прикол, (наверное в стиле PDP?) в подпрограмму передачи сектора как параметр передается машинная команда, которая, исполняясь в этой подпрограмме, передает сектор туда или сюда, в зависимости от того, чтение это сектора или запись. Надо обдумать такой приемчик. У себя девайс назову WD. Так понял, что оно любое двухбуквенное, лишь бы уникальное? А номер ID для девайса тоже любой, лишь бы уникальный? (варианты, 0 как у RK, или 53 как у DW) |
MM
Advanced Member
Откуда: Павловский Посад Мск.обл. Всего сообщений: 3418 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 2 авг. 2013 |
Вариант, как одним драйвером окучить резиновый объем носителя - в SET - параметрах прописать номер физического массива ( который по 32 метра ), из ~65534 возможных, для томов WD1...WD7. А том WD0 целесообразно оставить фиксированным. |
_Patron_
Member
Откуда: Москва Всего сообщений: 146 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 19 дек. 2012 |
Mixa написал: Да. У себя девайс назову WD. Так понял, что оно любое двухбуквенное, лишь бы уникальное? Mixa написал: Типа. А номер ID для девайса тоже любой, лишь бы уникальный? По сути - вряд ли на что-то влияет. |
Anonymous
Advanced Member
Откуда: Москва(Россия) Всего сообщений: 2537 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 22 нояб. 2011 |
Mixa написал: А так уже драйвер для УКНЦ называется, смотрите, чтоб путаницы не возникло. Украинский драйвер ideшника, который под киевский контроллер на здоровенной плате и рассыпухе - WA, драйвер под контроллер, который клуб наш продаёт - WQ. У себя я, чтоб не путать DW от Э85/Pro3x0 с ДВКшным DW, последний WW называю в системах собираемых. У себя девайс назову WD. |
Mixa
Member
Откуда: Москва Всего сообщений: 170 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 8 авг. 2009 |
Профиль | Сообщить модератору
NEW! Сообщение отправлено: 5 января 2018 1:19 Сообщение отредактировано: 5 января 2018 1:33
Anonymous написал: Вот незадача. Проект изолированный, но мало ли что. Тогда попробую XD Или DA. Или AD, как во фряхе. А так уже драйвер для УКНЦ называется |
_Patron_
Member
Откуда: Москва Всего сообщений: 146 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 19 дек. 2012 |
Профиль | Сообщить модератору
NEW! Сообщение отправлено: 5 января 2018 12:24 Сообщение отредактировано: 5 января 2018 12:31
Mixa написал: Или DV, или GW ( G похоже на D ). Тогда попробую XD Имя не проблема - RT-11 интересует только имя файла драйвера. Сейчас взял системный диск RT-11 v5.7 с драйверами MY и KZ ( которые работают с одним и тем же устройством ) и запатчил в них одно и то же имя устройства MY ( у MY.SYS там были три пробела, а у KZ.SYS - KZ ). Проблем не возникло - тот MY, который был в файле MY.SYS - показывался в системных таблицах, как MY, а тот, который был в файле KZ.SYS - как KZ. Потом скопировал KZ.SYS в файл KK.SYS ( чтобы индекс устройства тоже был одинаковым ) - после перезагрузки в системных таблицах появились оба эти устройства, доступные через соответствующие драйверы. |
<<Назад Вперед>> | Страницы: 1 2 3 4 5 ... 7 8 9 10 11 * 12 13 14 15 | Печать |
Полигон-2 » Бывший СССР » Концепт 1801ВМ1 |
1 посетитель просмотрел эту тему за последние 15 минут |
В том числе: 1 гость, 0 скрытых пользователей |
Последние | |
[Москва] LIQUID-Акция. Сливаются разъемы CF МС7004 и 7004А на AT и XT Пайка термотрубок Проммать s478 PEAK 715VL2-HT ( Full-Size SBC) Подскажите по 386 материке по джамперам. |
Самые активные 5 тем | |