Нужно разобраться с 386 машинкой

Описания, советы, ремонт, эксплуатация старых IBM PC-совместимых ПК
XTech
Newbie
Сообщения: 13
Зарегистрирован: 14.04.2019,16:17
Откуда: Омск

Нужно разобраться с 386 машинкой

Сообщение XTech » 17.09.2020,09:00

i8088 писал(а):
16.09.2020,17:40
XTech, если с дискеты, через 'F' все совершенно нормально (проверьте тщательно!), то тогда с RW проблем нет, попробуйте следующее:
1. Создайте раздел меньше 500MB, скажем так 400MB. Я не ограничивал max cyl
в HDPT (как это сделано в Hi-Flex AMI), если это может иметь значение, то я внесу
изменения в загрузчик.
2. Опробуйте другой HDD или CF (Вы писали, что CF есть у Вас)
3. Если все равно не заработает нормально, сохраните получившийся MBR
(AUTODI MB 80) и здесь покажите.
4. Если DOS версии 6.xx, лучше проверьте с 5.x или 4.x версией
В общем, как оказалось, с RW не все нормально... Пишется вроде нормально, чтение записанного на другом компьютере сбоев не показывает, но чтение плавает, закономерности пока выявить не удалось. Странно что MHDD тест проходит нормально. Соответственно, хотя все тесты выше я и проделал, результаты информации не дают. Ставлю опыты на паузу до прибытия нового шлейфа - где-то на месяц.

i8088
Advanced Member
Сообщения: 3056
Зарегистрирован: 30.01.2015,17:06
Откуда: г. Баку, Азербайджан

Конкурсы

Вклад в сообщество

Нужно разобраться с 386 машинкой

Сообщение i8088 » 17.09.2020,13:36

XTech, а с CF Вы проверяли? И другой HDD есть?
Шлейф вряд-ли виноват, но поменять на новый конечно хорошо. MHDD выполняет
команду VERIFY_SECTORS, данные с диска по кабелю при этом не передаются.
Возможно у диска проблемы с чтением. Еще можно предположить ошибку в
F/W диска в режиме C/H/S. Диски такой емкости в основном работают в режиме LBA,
и ошибку могли пропустить.

Вчера я проводил эксперимент с автозагрузчиком на 286 (AWARD BIOS) - установил DOS
6.20 на 20GB Seagate с максимально возможным разделом 504MB - все прошло хорошо.

XTech
Newbie
Сообщения: 13
Зарегистрирован: 14.04.2019,16:17
Откуда: Омск

Нужно разобраться с 386 машинкой

Сообщение XTech » 17.09.2020,14:03

i8088 писал(а):
17.09.2020,13:36
XTech, а с CF Вы проверяли? И другой HDD есть?
Шлейф вряд-ли виноват, но поменять на новый конечно хорошо. MHDD выполняет
команду VERIFY_SECTORS, данные с диска по кабелю при этом не передаются.
Возможно у диска проблемы с чтением. Еще можно предположить ошибку в
F/W диска в режиме C/H/S. Диски такой емкости в основном работают в режиме LBA,
и ошибку могли пропустить.

Вчера я проводил эксперимент с автозагрузчиком на 286 (AWARD BIOS) - установил DOS
6.20 на 20GB Seagate с максимально возможным разделом 504MB - все прошло хорошо.
Да, кроме Fujitsu пробовал еще CF и SD, с соответствующими адаптерами, обе по 256Мб, все симптомы абсолютно аналогичные.
Также попробовал DOS 5.0 и FreeDOS - все точно так же. Другой HDD пока не пробовал, минимальное, что есть под рукой - 4.3Gb, но пока с ним нет возможности попробовать.

PS: Набрел на видео c таким же агрегатом и той же проблемой со шлейфом... https://www.youtube.com/watch?v=RQ5e7lW8AHM. Оставил комментарий :)

i8088
Advanced Member
Сообщения: 3056
Зарегистрирован: 30.01.2015,17:06
Откуда: г. Баку, Азербайджан

Конкурсы

Вклад в сообщество

Нужно разобраться с 386 машинкой

Сообщение i8088 » 17.09.2020,14:26

XTech, проверьте еще без загрузчика, просто выставив какой-нибудь
штатный тип в SETUP (любой, лишь бы ошибки во время POST не было).
И попробуйте установить DOS.

XTech
Newbie
Сообщения: 13
Зарегистрирован: 14.04.2019,16:17
Откуда: Омск

Нужно разобраться с 386 машинкой

Сообщение XTech » 17.09.2020,14:29

i8088 писал(а):
17.09.2020,14:26
XTech, проверьте еще без загрузчика, просто выставив какой-нибудь
штатный тип в SETUP (любой, лишь бы ошибки во время POST не было).
И попробуйте установить DOS.
Да все точно так же.
У меня алгоритм уже стандартный - с загрузчиком/без загрузчика тип 1/без загрузчика тип похожий по CHS. Результаты везде практически одинаковые - размечает, форматирует, пишет но не читает больше некоторых плавающих размеров файла. Поэтому шлейф остается под подозрением.

i8088
Advanced Member
Сообщения: 3056
Зарегистрирован: 30.01.2015,17:06
Откуда: г. Баку, Азербайджан

Конкурсы

Вклад в сообщество

Нужно разобраться с 386 машинкой

Сообщение i8088 » 17.09.2020,14:42

XTech писал(а):
17.09.2020,14:29
Результаты везде практически одинаковые - размечает, форматирует, пишет но не читает больше некоторых плавающих размеров файла
Похоже на CF баг, но у Вас то же самое и с HDD, да и по коду BIOS видно что CF бага
не должно быть.

А давайте попробуем сменить обработчик команды чтения с помощью другого моего
загрузчика:
viewtopic.php?f=12&t=36525&start=121

Попробуйте пока версию без autodetect cfiv11.zip (не забыть переименовать int13r80.bin
в int13r.bin). Если с ним будет то же самое, то проблема точно аппаратная.

А если заработает, то возможно мы имеем разновидность CF бага (некоторые HDD к
нему тоже критичны), хотя код обработчика int13h AH=02h мне понравился, хотя
может быть я что-то упустил, тк обработчик необычный. Кстати если есть управление
частотой CPU, попробуйте на разных частотах, иногда встречается "частотная ловушка"

XTech
Newbie
Сообщения: 13
Зарегистрирован: 14.04.2019,16:17
Откуда: Омск

Нужно разобраться с 386 машинкой

Сообщение XTech » 17.09.2020,15:47

i8088 писал(а):
17.09.2020,14:42
XTech писал(а):
17.09.2020,14:29
Результаты везде практически одинаковые - размечает, форматирует, пишет но не читает больше некоторых плавающих размеров файла
Похоже на CF баг, но у Вас то же самое и с HDD, да и по коду BIOS видно что CF бага
не должно быть.

А давайте попробуем сменить обработчик команды чтения с помощью другого моего
загрузчика:
viewtopic.php?f=12&t=36525&start=121

А если заработает, то возможно мы имеем разновидность CF бага (некоторые HDD к
нему тоже критичны), хотя код обработчика int13h AH=02h мне понравился, хотя
может быть я что-то упустил, тк обработчик необычный. Кстати если есть управление
частотой CPU, попробуйте на разных частотах, иногда встречается "частотная ловушка"
ДА! Это то, что требовалось. Все загружается и читается! Дальнейшая проверка конечно нужна, но пока все отлично загрузилось с CF (С HDD не проверял, но думаю, все будет работать так же).

i8088
Advanced Member
Сообщения: 3056
Зарегистрирован: 30.01.2015,17:06
Откуда: г. Баку, Азербайджан

Конкурсы

Вклад в сообщество

Нужно разобраться с 386 машинкой

Сообщение i8088 » 17.09.2020,16:52

XTech писал(а):
17.09.2020,15:47
ДА! Это то, что требовалось. Все загружается и читается! Дальнейшая проверка конечно нужна, но пока все отлично загрузилось с CF (С HDD не проверял, но думаю, все будет работать так же).
Отлично! Значит я пропустил баг в обработчике команды чтения, надо подумать.

Стоит ли рисковать с модификацией BIOS? Он у Вас запаянный, и при неудачной
модификации придется перепаивать и прошивать на программаторе.

Или будете использовать CF (или CF+AUTO) загрузчик? Можно последнюю версию
(где и autodetect, и исправление CF бага) оснастить еще и загрузкой с FDD, но только
боюсь придется увеличить потребление памяти до 2KB.

i8088
Advanced Member
Сообщения: 3056
Зарегистрирован: 30.01.2015,17:06
Откуда: г. Баку, Азербайджан

Конкурсы

Вклад в сообщество

Нужно разобраться с 386 машинкой

Сообщение i8088 » 18.09.2020,10:26

XTech, я кажется понял в чем дело. В коде BIOS регистр 1F7h читается до чтения сектора, это правильно.
Но они читают его и после чтения сектора, проверяют статус и последний ли это сектор. Если диск современный и
быстрый, дает готовность почти сразу после чтения сектора (имеет быстрый секторный буфер), то это может привести
к потере прерывания, тк чтение 1F7h гасит запрос прерывания и i8259 может не успеть его отработать. Соответственно,
не будет вызвана штатная ISR IRQ14 и не будет установлен флаг 0FFh в ячейке 40h:8Eh, что полностью нарушит работу
последующего кода. Самым простым способом исправления можно попробовать заменить чтение 1F7h на 3F6h, тк его
чтение не сбрасывает запрос прерывания.

XTech
Newbie
Сообщения: 13
Зарегистрирован: 14.04.2019,16:17
Откуда: Омск

Нужно разобраться с 386 машинкой

Сообщение XTech » 18.09.2020,12:15

i8088 писал(а):
17.09.2020,16:52
Стоит ли рисковать с модификацией BIOS? Он у Вас запаянный, и при неудачной
модификации придется перепаивать и прошивать на программаторе.

Или будете использовать CF (или CF+AUTO) загрузчик? Можно последнюю версию
(где и autodetect, и исправление CF бага) оснастить еще и загрузкой с FDD, но только
боюсь придется увеличить потребление памяти до 2KB.
Скорее всего оставлю все как есть сейчас - сильно большой диск там и не нужен, 203Мб - самый большой из родной таблицы - хватает на все, на несоответствие CHS CF с таблицей BIOS внимания не обращает, MS DOS 6.22 вместе с Windows 3.11 работают без проблем. Если вдруг потребуется поставить что-то побольше, буду иметь в виду CF+AUTO.

С перешивкой/перепайкой без необходимости, раз нашелся софтовый вариант, связываться не хочется. Другие софтовые варианты, если будет интерес, могу также протестировать.
i8088 писал(а):
18.09.2020,10:26
XTech, я кажется понял в чем дело. В коде BIOS регистр 1F7h читается до чтения сектора, это правильно.
Но они читают его и после чтения сектора, проверяют статус и последний ли это сектор. Если диск современный и
быстрый, дает готовность почти сразу после чтения сектора (имеет быстрый секторный буфер), то это может привести
к потере прерывания, тк чтение 1F7h гасит запрос прерывания и i8259 может не успеть его отработать. Соответственно,
не будет вызвана штатная ISR IRQ14 и не будет установлен флаг 0FFh в ячейке 40h:8Eh, что полностью нарушит работу
последующего кода. Самым простым способом исправления можно попробовать заменить чтение 1F7h на 3F6h, тк его
чтение не сбрасывает запрос прерывания.
Да, кстати баг проявился и с диском Toshiba MK4309MAT 4,3Гб, вчера до решения проблемы, успел на нем проверить. Видимо, чтобы работало, нужно что-то еще более старое и медленное...

Огромное спасибо за оказанную помощь.

i8088
Advanced Member
Сообщения: 3056
Зарегистрирован: 30.01.2015,17:06
Откуда: г. Баку, Азербайджан

Конкурсы

Вклад в сообщество

Нужно разобраться с 386 машинкой

Сообщение i8088 » 18.09.2020,15:25

XTech, да, я тоже думаю не стоит рисковать с перешивкой и возможной перепайкой.

Я только поправлю, для точности (извиняюсь за занудство:)
XTech писал(а):
18.09.2020,12:15
на несоответствие CHS CF с таблицей BIOS внимания не обращает
Это не BIOS не обращает внимания, а диск принимает заданные параметры H/S без
ошибок и под них пересчитывает количество цилиндров, но BIOS все равно использует
max cyl из своей таблицы.

Я возможно потом доработаю CF+AUTO на предмет загрузки с FDD, но напрягает, что из-за
этого придется увеличить расход памяти, тк в версии CF+AUTO оба модуля заполнены почти
до предела.

Про другие софтовые решения я не слышал (источник и решение проблемы CF бага я нашел сам).

Разве что поставить какой-нибудь disk manager (они предназначены для увеличения объема
диска, это полный обработчик int13h, подменяющий штатный). Однако я не знаю, встанет ли он,
если диск формально меньше 500MB и правильный ли там обработчик команды чтения (они же
не для борьбы с CF багом делались). И самое главное, потребление памяти будет заметно больше,
1KB RAM здесь уже не обойдешься.
XTech писал(а):
18.09.2020,12:15
Огромное спасибо за оказанную помощь.
Всегда пожалуйста! Мне тоже интересно было, и узнал про новую разновидность обработчика
команды чтения.

Ответить