Объявление форума |
Если пользуетесь личными сообщениями и получили по электронной почте оповещение о новом письме, не отвечайте, пожалуйста, почтой. Зайдите на форум и ответьте отправителю через ЛС. |
Полигон-2 » IBM PC-совместимое. До 2000 года включительно » нужно опознать XT материнку, ошибка real-time clock error |
<<Назад Вперед>> | Страницы: 1 2 3 4 5 6 * 7 8 | Печать |
Ethereal
Newbie
Откуда: Петрозаводск Всего сообщений: 19 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 9 июня 2016 |
Профиль | Сообщить модератору
NEW! Сообщение отправлено: 10 июня 2016 19:35 Сообщение отредактировано: 10 июня 2016 19:55
Из кода материнского BIOS следует : Если подключать винчестер к разъему IDE на материнке, то материнка поддерживает 4 типа винчестеров. Тип винчестера выбирается двумя какими-то перемычками/переключалками на плате. Наверно. Точно не знаю. Во всяком случае читается байт из порта 322h и из этого байта тип винчестера определяют только 2 бита. Получается всего 4 варианта. Наверное этот порт - это состояние перемычек. Даже почти наверняка. Хотя вариант с чтением этого байта из памяти микросхемы реального времени с батарейкой все-же пока не исключен. Таблицы параметров этих четырех типов винчестеров расположены в BIOS с адресов F000:E314 F000:E324 F000:E334 F000:E344 Мы там видим : Цилинров Головок 614 4 804 2 804 4 614 4 Черт возьми, а две таблицы-то одинаковые. Значит всего поддерживается разных типов IDE-винчестеров только три. alecv написал: Нету там установки типа винта. Увы. Возможные параметры трех типов винчестеров жестко зашиты. Есть только готовый сервис по низкоуровневому форматированию винтов. Получается так. В ней похоже есть Setup c установкой времени, типа флопов и винта. |
i8088
Advanced Member
Откуда: г. Баку, Азербайджан Всего сообщений: 2132 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 30 янв. 2015 |
Профиль | Сообщить модератору
NEW! Сообщение отправлено: 10 июня 2016 19:48 Сообщение отредактировано: 10 июня 2016 19:49
Ethereal написал: Да, здесь я погорячился, прямо на диск писать можно, только устанавливая адрес Нет. Ты не пишешь прямо из BIOS в файл. буфера обмена с HDD/FDD на интересующие адреса BIOS (здесь или писать посекторно, без файловой системы, или работать с ФС вручную), а записать на диск информацию меньше размера сектора вообще невозможно. Ethereal написал: А за тебя думает int0x40/int0x13/DOS. DOS тоже имеет настраиваемую буферизацию. Это потому, что Си за тебя думает. Ethereal написал: Это противоречит здравому смыслу. Если бы нельзя было читать BIOS без буфера, его И мы имеем дело именно с этим "некоторым BIOS-ом" код просто не мог бы быть исполнен.Я думаю дело просто в баге реализации int0x40 и/или int0x13. Предлагаю не использовать вообще сервисы DOS и BIOS, а просто сохранить посекторно на дискету/HDD, работая с HDD/FDD через регистры. Или намного проще - для облегчения работы можно просто сделать вывод областей BIOS на экран - уже будет видно корректность дампа, а для сохранения перенаправить вывод в файл. Здесь можно я думаю испорльзовать сервисы DOS/BIOS для работы с экраном, но для чистоты эксперимента можно и напрямую (тогда перенаправить вывод в файл не получится. В принципе, для вывода дампа на экран через сервисы DOS можно просто DEBUG воспользоваться. |
Ethereal
Newbie
Откуда: Петрозаводск Всего сообщений: 19 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 9 июня 2016 |
Профиль | Сообщить модератору
NEW! Сообщение отправлено: 10 июня 2016 19:59 Сообщение отредактировано: 10 июня 2016 20:22
i8088 написал: А я тебе про что ? Если на данном компе вызвать int 0x13/0x40 (или равно функцию 40h сервиса MS-DOS, которая все равно к int 13h обратится /хотя вот тут вот я не знаю напрямую ли DOS перекинет адрес в BIOS или будет гонять данные по своим буферам/) с адресом данных для записи в сегменте F000, то запишется хрень какая-то. Я думал будет понятно, что я именно об этом и говорю. Я думаю дело просто в баге реализации int0x40и/или int0x13. Причем бага эта почти наверняка из-за того, что при записи работает не родной обработчик int 13h/40h материнки, а обработчик из не родного материнке расширения BIOS от MFM-контроллера. Да и черт-то с ним в чем тут причина. Факт, что указываем адрес данных для записи что для DOS, что для BIOS в сегменте F000 и получается ерунда. Значит надо сначала скопировать данные в буфер в ОЗУ и функцию записи вызывать уже для данных в этом буфере. |
i8088
Advanced Member
Откуда: г. Баку, Азербайджан Всего сообщений: 2132 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 30 янв. 2015 |
Профиль | Сообщить модератору
NEW! Сообщение отправлено: 10 июня 2016 20:15 Сообщение отредактировано: 10 июня 2016 20:15
Ethereal написал: Мне это совсем не было понятно из текста в предыдущих сообщениях. Я думал будет понятно, что я именно об этом и говорю. Я поддерживаю, что возможно виноват BIOS MFM контроллера. Надо попросить автора сделать это сохранение на floppy, и для чистоты эксперимента вытащить из платы MFM controller, чтобы его расширение int0x13 убрать. |
fre6lime |
uav1606 написал: Тут все реверс-инжиниринг биоса устраивают, а он пришел и разрулил fre6lime, пробовали при загрузке жать что-то вроде Ctrl+Alt+Esc? Попадалсь мне отдалённо похожая XT-шка, там была как раз такая комбинация. Ctrl+Alt+Esc сработало, и я увидел сокровенное: Как и писал alecv поддерживает один 1.44мб флоп. Также стало понятно как пользоваться встроенным контроллером xt-ide: Выбрать параметры диска не дает, можно только список бедов ввести. Скорее всего имеет место некий автодетект, из тех 3-х типов винчейстеров, про которые писал Ethereal. Дата и время нормально устанавливается и что крайне приятно дос их отлично читает из биоса без спец. утилиты. На всякий случай прикрепил дамп полченный через bios256.exe. Прикрепленный файл (BIOS256.ROM, 262144 байт, скачан: 22 раза) |
Ethereal
Newbie
Откуда: Петрозаводск Всего сообщений: 19 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 9 июня 2016 |
Вот здорово. Путь к решению задачи вышел весьма замысловатым, причем к финишу привел совершенно неожиданный поворот |
fre6lime |
В принципе больше по этой материнке вопросов серьезных нет. Не смог найти перемычку для турбо и назначение остальных джамперов не ясно, но это уже мелочи |
i8088
Advanced Member
Откуда: г. Баку, Азербайджан Всего сообщений: 2132 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 30 янв. 2015 |
Профиль | Сообщить модератору
NEW! Сообщение отправлено: 10 июня 2016 20:29 Сообщение отредактировано: 10 июня 2016 20:39
fre6lime, вот это да! Отлично! fre6lime написал: Выходит DOS не работает с портами 0x70/0x71, а использует прерывание Дата и время нормально устанавливается и что крайне приятно дос их отлично читает из биоса без спец. утилиты. (функции от 2 до 7), которые вообще появилось в AT, но на этой XT есть? |
fre6lime |
Профиль | Сообщить модератору
NEW! Сообщение отправлено: 10 июня 2016 20:35 Сообщение отредактировано: 10 июня 2016 20:45
i8088 написал: Похоже на то. Дос 5.0 увидел дату сразу после загрузки. Причем y2k проблеме этот биос не подвержен. Выходит DOS не работает с портами 0x70/0x71, а использует прерывание int0x26, Насколько я понял эта плата из совсем поздних. По датам - самое начало 90-х. Тогда во всю at уже использовались, вот скорее всего попытались аналогичное что-то изобрести с биосом, ide-контроллером и поддержкой at клавиатуры. |
fre6lime |
И вообще всем спасибо огромное! Даже не наделся на такую поддержку, когда создавал топик |
<<Назад Вперед>> | Страницы: 1 2 3 4 5 6 * 7 8 | Печать |
Полигон-2 » IBM PC-совместимое. До 2000 года включительно » нужно опознать XT материнку, ошибка real-time clock error |
1 посетитель просмотрел эту тему за последние 15 минут |
В том числе: 1 гость, 0 скрытых пользователей |
Последние | |
[Москва] LIQUID-Акция. Сливаются разъемы CF МС7004 и 7004А на AT и XT Пайка термотрубок Проммать s478 PEAK 715VL2-HT ( Full-Size SBC) Подскажите по 386 материке по джамперам. |
Самые активные 5 тем | |