Объявление форума |
Если пользуетесь личными сообщениями и получили по электронной почте оповещение о новом письме, не отвечайте, пожалуйста, почтой. Зайдите на форум и ответьте отправителю через ЛС. |
Полигон-2 » Бывший СССР » Концепт 1801ВМ1 |
<<Назад Вперед>> | Страницы: 1 2 3 4 5 ... .. 10 11 12 13 14 * 15 | Печать |
Mixa
Member
Откуда: Москва Всего сообщений: 170 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 8 авг. 2009 |
Anonymous написал: Кстати, вчера Так трап то 4 пишет по которому адресу - туда сразу в пульте смотрите, что там вызывает ошибку.удалось через HX подставить диск, который был в simh, и где драйвер ATA собирался (AD он у меня), линковался и инсталлировался. Та же фигня, трап 4. Было уже поздно, откуда трапанулся - не смотрел. Визуально это выглядит так. Говорю dir ad: (он пустой, ну чтобы просто обратился и сказал, что он пустой), что-то читает с HX:, потом моргает лампочкой на винте, потом пауза (что-то читает с HX: ), потом объявляет ?MON-F-Trap to 4 и промпт. init ad: - та же фигня. До этого, когда трапался, смотрел откуда - там собрание ASCII строк, не программа. Может оттуда пришел, может содержимое уже переписано. Надо будет посмотреть, что там с новым вариантом, когда драйвер слинкован по-родному. Добавлю всякие отладочные вставки, которые будут сливать инфу об активности драйвера в область, невидимую для RT-11 (по show говорится, что памяти 60 KB, т.е. от 170000 до 172776 все мое) |
MM
Advanced Member
Откуда: Павловский Посад Мск.обл. Всего сообщений: 3418 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 2 авг. 2013 |
Mixa написал: Мой Вам совет - используйте исключительно RT-11 SJ V5.00 ?MON-F-Trap to 4 Иначе есть существенный риск, что это сообщение ОС станет преобладающим на длительное время ( разработки драйвера ). |
Mixa
Member
Откуда: Москва Всего сообщений: 170 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 8 авг. 2009 |
MM написал: SJ согласен, .00 ну не знаю, играюсь с .03, пока играется. Мой Вам совет - используйте исключительно RT-11 SJ V5.00 В общем, по незнанию накосячил в обработчиках прерываний. Когда смотрел, что делает .DRAST, увидел, что он вызывает что-то свое, подумал, что регистры все там где-то сохраняются. У себя расставил HALT'ов, на стеке после .DRAST только R5 и R4 увидел. Теперь понятно, откуда трапы. R0-R3 разрушаются. .FORK, наверное, надо изучить. Или регистры сохранить поначалу для пробы и посмотреть, что получится.. |
Anonymous
Advanced Member
Откуда: Москва(Россия) Всего сообщений: 2537 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 22 нояб. 2011 |
Профиль | Сообщить модератору
NEW! Сообщение отправлено: 18 января 2018 1:02 Сообщение отредактировано: 18 января 2018 1:04
А как вы без .forkа-то в прерывании работаете? Понижение приоритета, чтоб всё остальное не стояло - первоочередная задача. И нельзя слишком много команд до форка использовать, т.к. через несколько из них система отберёт всё равно управление (через сколько - не помню) и будет аварийный трап тоже. Ещё есть .synch и .inten, для форка можно все регистры использовать, для синча - только $0 и $1, для интена - $4 и $5. SJ использовать - дурной тон, там и криво обрабатываются приоритеты, и reset оно выдаёт в случайное для устройства время. Например, многие устройства с интеллектуальными контроллерами просто под sj не работают, т.к. после аппаратного сброса теряется вся последовательность инициализации устройства. p.s. начиная с версии 5.6 sj монитор упразднили по этой причине, его больше нет в составе системы. |
Mixa
Member
Откуда: Москва Всего сообщений: 170 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 8 авг. 2009 |
Anonymous написал: Мне он пока не совсем понятен. Не все сразу Сейчас делаю, чтобы хоть как-то заработало, чтоб нащупать правильную линию. В обработчиках прерывания я не задерживаюсь, они короткие, без циклов, порядка двух десятков команд по пути исполнения. А как вы без .forkа-то в прерывании работаете? Самое долгое в драйвере - это вычисление дорожка/голова/сектор, но это не в прерывании. И циклов можно было бы избежать вовсе (процедура деления - не в счет), если бы не задержка в установке бита DRQ в регистре 1F7 после выдачи команды записи секторов. Вынужден ждать в цикле, когда этот бит взведется. Где-то с десяток оборотов нужно ждать. Вот думаю, по превышении числа циклов ожидания ошибку выдавать. Вообще, сейчас успешное завершение операции завязано на то, что и ATA, и DMA в любом случае выдадут прерывание, иначе процесс остановится на стадии ожидания прерывания. Не знаю, бывает ли такое, когда по протоколу ATA обязан выдать прерывание, но сбоит и не выдает. Вчера прерывания сделал только на регистрах R4 и R5, трапы прекратились, а диск заработал. |
Anonymous
Advanced Member
Откуда: Москва(Россия) Всего сообщений: 2537 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 22 нояб. 2011 |
Профиль | Сообщить модератору
NEW! Сообщение отправлено: 18 января 2018 19:46 Сообщение отредактировано: 18 января 2018 19:49 Там их меньше 8 должно быть перед форком. они короткие, без циклов, порядка двух десятков команд по пути исполнения. Так для этого таймерные запросы есть для драйверов... Вынужден ждать в цикле, когда этот бит взведется. |
Mixa
Member
Откуда: Москва Всего сообщений: 170 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 8 авг. 2009 |
Ффухх, в первом приближении заработало. Во время испытаний начальной загрузки у ST-157A вышла из строя микросхема управления шаговым двигателем перемещения головок. Случайное совпадение? А вообще, в аппаратном загрузчике нужно было запретить винчестеру ATA выдавать свой INT14. (Все-таки регистр 3F6 полезен). Вторичный загрузчик, работая с приоритетом процессора 0, вылетал в трап по вектору ATA по этой причине. Пришлось на вектор воткнуть заглушку в виде RTI. И непонятно, зачем нужен записываемый разряд INIT в регистре управления контроллером прерываний 588ВН1, если он не очищает текущие запросы прерываний. Было так: при работе аппаратного загрузчика проскакивал импульс INT14, ВН1 это запрос запоминал, выставлял постоянный VIRQ, который воспринимался процессором при смене его приоритета с 7 на 0. И никакое программирование ВН1 этот запрос не убирало, пришлось втыкать заглушку. В общем, этот INIT какой-то бесполезный. Что там в Минске про него думали, покрыто тайной. P.S. Ну какой же все-таки медленный этот HX0: даже на скорости 19200. Но польза его неоценима, это да. Единственная связь с внешним миром. Дорога жизни. |
Anonymous
Advanced Member
Откуда: Москва(Россия) Всего сообщений: 2537 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 22 нояб. 2011 |
У меня сделан запрос прерывания уровнем, а не фронтом, если диск снял запрос - контроллер его уже не отрабатывает. Но вообще странно, прерывания у диска после аппаратного сброса должны автоматом запрещаться, пока в регистре принудительно не разрешишь. |
Mixa
Member
Откуда: Москва Всего сообщений: 170 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 8 авг. 2009 |
Там уровень VIRQ уже от 588ВН1 идет, он в любом своем состоянии, даже замаскированном, реагирует на фронт INT14 на входе и запоминает запрос так, что его можно снять только удовлетворением этого запроса. То есть, маску у микросхемы ВН1 снимаешь, и может быть сюрприз. А у дисков ресет сбрасывает текущий запрос и очищает маску тоже. Если будет новая редакция ПЗУшки пульта и загрузчика - там учту. Сейчас учитываю в первичном загрузчике. Запускаю всякие тесты. Работает, однако. В общем, чего хотел — того добился. Итого. - ВМ1 можно было бы сделать и поудобнее. - 588 серию можно было бы сделать более логичной и удобной - АТА, явно выпирают костыли, но это как бы дело известное и непоправимое - ST-157A неплохо вписался в концепцию, изготовлен в 1990-м, я бы не сказал, что он технологически уж сильно впереди остальной части конструкции. Так, если совсем чуть-чуть. - Надо было предусмотреть скоростной интерфейс. - Часы с календарем не помешали бы, но можно обойтись и без них. - 40 мегабайт диска это много. Пришел к осознанию необходимости как-то нарезать это пространство. - Дисплей 80х25 это мало |
Anonymous
Advanced Member
Откуда: Москва(Россия) Всего сообщений: 2537 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 22 нояб. 2011 |
Mixa написал: А вот вам развлечение, подумайте, как бы можно было использовать больший объём, чем 32Мб. - 40 мегабайт диска это много. Пришел к осознанию необходимости как-то нарезать это пространство. Была заброшенная мечта юности: можно переписать ОС так, что 32Мб останутся ограничением, но на размер каждого одного файла, для запросов .enter, файлового запроса .lookup, запросов .readw-.readc/.writw-.writc при работе с файлами, для совместимости с софтом. А вот объём свободного пространства на диске можно было бы считать уже с большей разрядностью указателей, но внутри ОС, чтоб софт мог штатный работать. Тогда для софта всегда, для любого запроса .enter, будет 32Мб на каждый файл свободно. |
<<Назад Вперед>> | Страницы: 1 2 3 4 5 ... .. 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 тем | |