Внимание! Это временный неофициальный архив старой версии форума Полигон Призраков, созданный сочувствующим форуму участником. Этот сайт просуществует лишь до тех пор, пока администрация Полигона не сдержит своё обещание и не откроет официальный архив по адресу old.sannata.org.

Полигон-2

Форум о старых компьютерах

Объявление форума

Если пользуетесь личными сообщениями и получили по электронной почте оповещение о новом письме, не отвечайте, пожалуйста, почтой. Зайдите на форум и ответьте отправителю через ЛС.

Полигон-2 »   Бывший СССР »   Концепт 1801ВМ1
RSS

Концепт 1801ВМ1

Неторопливая вольная фантазия в рамках приличий

<<Назад  Вперед>> Страницы: 1 2 3 4 5 ... .. 10 11 12 13 14 * 15
Печать
 
Mixa
Member


Откуда: Москва
Всего сообщений: 170
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
8 авг. 2009
Anonymous написал:
[q]
Так трап то 4 пишет по которому адресу - туда сразу в пульте смотрите, что там вызывает ошибку.
[/q]
Кстати, вчера удалось через 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 написал:
[q]
?MON-F-Trap to 4
[/q]
Мой Вам совет - используйте исключительно RT-11 SJ V5.00
Иначе есть существенный риск, что это сообщение ОС станет преобладающим на длительное время ( разработки драйвера ).
Mixa
Member


Откуда: Москва
Всего сообщений: 170
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
8 авг. 2009
MM написал:
[q]
Мой Вам совет - используйте исключительно RT-11 SJ V5.00
[/q]
SJ согласен, .00 ну не знаю, играюсь с .03, пока играется.

В общем, по незнанию накосячил в обработчиках прерываний. Когда смотрел, что делает .DRAST, увидел, что он вызывает что-то свое, подумал, что регистры все там где-то сохраняются. У себя расставил HALT'ов, на стеке после .DRAST только R5 и R4 увидел. Теперь понятно, откуда трапы. R0-R3 разрушаются.

.FORK, наверное, надо изучить. Или регистры сохранить поначалу для пробы и посмотреть, что получится..
Anonymous
Advanced Member


Откуда: Москва(Россия)
Всего сообщений: 2537
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
22 нояб. 2011
А как вы без .forkа-то в прерывании работаете? Понижение приоритета, чтоб всё остальное не стояло - первоочередная задача. И нельзя слишком много команд до форка использовать, т.к. через несколько из них система отберёт всё равно управление (через сколько - не помню) и будет аварийный трап тоже. Ещё есть .synch и .inten, для форка можно все регистры использовать, для синча - только $0 и $1, для интена - $4 и $5.
SJ использовать - дурной тон, там и криво обрабатываются приоритеты, и reset оно выдаёт в случайное для устройства время. Например, многие устройства с интеллектуальными контроллерами просто под sj не работают, т.к. после аппаратного сброса теряется вся последовательность инициализации устройства.

p.s. начиная с версии 5.6 sj монитор упразднили по этой причине, его больше нет в составе системы.
Mixa
Member


Откуда: Москва
Всего сообщений: 170
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
8 авг. 2009
Anonymous написал:
[q]
А как вы без .forkа-то в прерывании работаете?
[/q]
Мне он пока не совсем понятен. Не все сразу :) Сейчас делаю, чтобы хоть как-то заработало, чтоб нащупать правильную линию. В обработчиках прерывания я не задерживаюсь, они короткие, без циклов, порядка двух десятков команд по пути исполнения.

Самое долгое в драйвере - это вычисление дорожка/голова/сектор, но это не в прерывании. И циклов можно было бы избежать вовсе (процедура деления - не в счет), если бы не задержка в установке бита DRQ в регистре 1F7 после выдачи команды записи секторов. Вынужден ждать в цикле, когда этот бит взведется. Где-то с десяток оборотов нужно ждать. Вот думаю, по превышении числа циклов ожидания ошибку выдавать.

Вообще, сейчас успешное завершение операции завязано на то, что и ATA, и DMA в любом случае выдадут прерывание, иначе процесс остановится на стадии ожидания прерывания. Не знаю, бывает ли такое, когда по протоколу ATA обязан выдать прерывание, но сбоит и не выдает.

Вчера прерывания сделал только на регистрах R4 и R5, трапы прекратились, а диск заработал. :thumbup:
Anonymous
Advanced Member


Откуда: Москва(Россия)
Всего сообщений: 2537
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
22 нояб. 2011
[q]
они короткие, без циклов, порядка двух десятков команд по пути исполнения.
[/q]
Там их меньше 8 должно быть перед форком.
[q]
Вынужден ждать в цикле, когда этот бит взведется.
[/q]
Так для этого таймерные запросы есть для драйверов...
Mixa
Member


Откуда: Москва
Всего сообщений: 170
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
8 авг. 2009
Ффухх, в первом приближении заработало. Во время испытаний начальной загрузки у ST-157A вышла из строя микросхема управления шаговым двигателем перемещения головок. Случайное совпадение? Не думаю. Думаю, что таки да. :) Она и раньше бывало внезапно раскалялась, после передергивания питания возвращалось к норме, в этот раз момент упустил, вовремя не обесточил, заметил уже дымок, и изменения стали необратимыми. Взял с полки другой 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 написал:
[q]
- 40 мегабайт диска это много. Пришел к осознанию необходимости как-то нарезать это пространство.
[/q]
А вот вам развлечение, подумайте, как бы можно было использовать больший объём, чем 32Мб.
Была заброшенная мечта юности: можно переписать ОС так, что 32Мб останутся ограничением, но на размер каждого одного файла, для запросов .enter, файлового запроса .lookup, запросов .readw-.readc/.writw-.writc при работе с файлами, для совместимости с софтом. А вот объём свободного пространства на диске можно было бы считать уже с большей разрядностью указателей, но внутри ОС, чтоб софт мог штатный работать. Тогда для софта всегда, для любого запроса .enter, будет 32Мб на каждый файл свободно.
<<Назад  Вперед>> Страницы: 1 2 3 4 5 ... .. 10 11 12 13 14 * 15
Печать
Полигон-2 »   Бывший СССР »   Концепт 1801ВМ1
RSS

1 посетитель просмотрел эту тему за последние 15 минут
В том числе: 1 гость, 0 скрытых пользователей

Последние RSS
[Москва] LIQUID-Акция. Сливаются разъемы CF
МС7004 и 7004А на AT и XT
Пайка термотрубок
Проммать s478 PEAK 715VL2-HT ( Full-Size SBC)
Подскажите по 386 материке по джамперам.

Самые активные 5 тем RSS