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

Полигон-2

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

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

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

Полигон-2 »   IBM PC-совместимое. До 2000 года включительно »   нужно опознать XT материнку, ошибка real-time clock error
RSS

нужно опознать XT материнку, ошибка real-time clock error

<<Назад  Вперед>> Страницы: 1 2 3 4 5 6 7 8
Печать
 
alecv
Advanced Member


Откуда: Санкт-Петербург
Всего сообщений: 5545
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
5 окт. 2004
Ну вот который BIOS64.ROM похоже правильный.

Содержит строки

ACER0010 XTplus10 1.02 01/09/89
INVESTRONICA S.A.
8086 XT-plus BIOS Version 2.01B

Держит флопы HD
1. 360KB
2. 720KB
3. 1.44MB

В ней похоже есть Setup c установкой времени, типа флопов и винта.
Скорее всего он не AT-шный, а хранится в другом месте.
Как попасть в этот Setup - непонятно.

Upd Лавка - испанская. Похоже они делали машинки на платах Acer.
Еше и игрушки писали
http://viva-games.ru/publisher/investronica-s-a
uav1606
Advanced Member


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


Ссылка


Дата регистрации на форуме:
16 янв. 2008
fre6lime, пробовали при загрузке жать что-то вроде Ctrl+Alt+Esc? Попадалсь мне отдалённо похожая XT-шка, там была как раз такая комбинация.
Можно и другие клавиши с Ctrl+Alt попробовать.
i8088
Advanced Member


Откуда: г. Баку, Азербайджан
Всего сообщений: 2132
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
30 янв. 2015
Прилагаю программу для сохранения C, D, E, F сегментов в файл(bios256.exe).
Компилятор Borland.

Прикрепленный файл (bios256.zip, 8719 байт, скачан: 24 раза)
Ethereal
Newbie


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


Ссылка


Дата регистрации на форуме:
9 июня 2016
i8088 написал:
[q]
Это как??!BIOS там просто отображается на память, ничего копировать в буфер не надо (моя программа просто читает BIOS в файл).
[/q]
Нет. Ты не пишешь прямо из BIOS в файл.
Давай возьмем твою программу bios32.exe и прогоним в отладчике DEBUG.

Делай так :
debug bios32.exe
g 11a
t
g 260
тут введи имя файла
t
g 2a9
вот тут команда MOV AL,ES:[BX], которая байт из адресов BIOS читает в регистр AL
t
t
t
t
t
тут команда RET возврата из функции
t
тут функция вернула прочитанный байт в регистре AL
t
t
тут команда CALL и в эту подпрограмму в стеке передан прочитанный байт
t
g 14db
тут команда MOV -1[BX],AL, что прочитанный байт копирует в буферок в ОЗУ.
Это скрытый буферок. Ты в своей программе на Си его не заводил.
Си за тебя его завел. Главное, что BX=0B3Fh и буферок начинается с адреса DS:0B3Eh
А теперь идем прямо на первую запись в файл
g 1102
и ты увидишь INT 21h и в регистре AH число 40h, т.е вызов функции MS-DOS
записи в файл. А теперь смотри на регистры DS:DX. Откуда пишеться ?
Да DS:DX = DS:0B3Eh, т.е из скрытого буферка пишется.
А теперь на регистр CX смотри. Сколько пишется ? Да 200h байт пишется.
Это потому, что Си за тебя думает. Он автоматом буферирует побайтную запись в файл и пишет порциями размером в один сектор на диске. Ну а теперь набери
d b3e
d
d
d
Вот это и есть содержимое скрытого буферка. Он заполнился на 200h байт
и программа эту первую порцию в файл пишет. Из этого буферка в файл
пишется. Из буферка в сегменте данных программы. А не напрямую из BIOS.

Так-что alecv видимо был абсолютно прав, когда писал :

alecv написал:
[q]
Видимо надо сначала копировать кусок памяти в буфер, а потом записывать. Некоторые BIOS-ы не пишут из старших адресов.
[/q]
И мы имеем дело именно с этим "некоторым BIOS-ом"

И именно поэтому не удалось свалить в файл дамп материнского BIOS с помощью DEBUG.
fre6lime написал:
[q]
С дабаговским явно что-то не то =\
[/q]
Не в DEBUG дело, а в том, что BIOS (точнее код в нем) именно что "некоторый".
Ethereal
Newbie


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


Ссылка


Дата регистрации на форуме:
9 июня 2016
Из кода материнского 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 написал:
[q]
В ней похоже есть Setup c установкой времени, типа флопов и винта.
[/q]
Нету там установки типа винта. Увы. Возможные параметры трех типов винчестеров жестко зашиты. Есть только готовый сервис по низкоуровневому форматированию винтов. Получается так.
i8088
Advanced Member


Откуда: г. Баку, Азербайджан
Всего сообщений: 2132
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
30 янв. 2015
Ethereal написал:
[q]
Нет. Ты не пишешь прямо из BIOS в файл.
[/q]
Да, здесь я погорячился, прямо на диск писать можно, только устанавливая адрес
буфера обмена с HDD/FDD на интересующие адреса BIOS (здесь или писать
посекторно, без файловой системы, или работать с ФС вручную), а записать на диск
информацию меньше размера сектора вообще невозможно.


Ethereal написал:
[q]
Это потому, что Си за тебя думает.
[/q]
А за тебя думает int0x40/int0x13/DOS. DOS тоже имеет настраиваемую буферизацию.


Ethereal написал:
[q]
И мы имеем дело именно с этим "некоторым BIOS-ом"
[/q]
Это противоречит здравому смыслу. Если бы нельзя было читать BIOS без буфера, его
код просто не мог бы быть исполнен.Я думаю дело просто в баге реализации int0x40
и/или int0x13. Предлагаю не использовать вообще сервисы DOS и BIOS, а просто
сохранить посекторно на дискету/HDD, работая с HDD/FDD через регистры.

Или намного проще - для облегчения работы можно просто сделать вывод областей
BIOS на экран - уже будет видно корректность дампа, а для сохранения перенаправить
вывод в файл. Здесь можно я думаю испорльзовать сервисы DOS/BIOS для работы с
экраном, но для чистоты эксперимента можно и напрямую (тогда перенаправить
вывод в файл не получится. В принципе, для вывода дампа на экран через сервисы
DOS можно просто DEBUG воспользоваться.
Ethereal
Newbie


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


Ссылка


Дата регистрации на форуме:
9 июня 2016
i8088 написал:
[q]
Я думаю дело просто в баге реализации int0x40и/или int0x13.
[/q]
А я тебе про что ? Если на данном компе вызвать int 0x13/0x40 (или равно функцию 40h сервиса MS-DOS, которая все равно к int 13h обратится /хотя вот тут вот я не знаю напрямую ли DOS перекинет адрес в BIOS или будет гонять данные по своим буферам/) с адресом данных для записи в сегменте F000, то запишется хрень какая-то. Я думал будет понятно, что я именно об этом и говорю.

Причем бага эта почти наверняка из-за того, что при записи работает не родной обработчик int 13h/40h материнки, а обработчик из не родного материнке расширения BIOS от MFM-контроллера.

Да и черт-то с ним в чем тут причина. Факт, что указываем адрес данных для записи что для DOS, что для BIOS в сегменте F000 и получается ерунда. Значит надо сначала скопировать данные в буфер в ОЗУ и функцию записи вызывать уже для данных в этом буфере.
i8088
Advanced Member


Откуда: г. Баку, Азербайджан
Всего сообщений: 2132
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
30 янв. 2015
Ethereal написал:
[q]
Я думал будет понятно, что я именно об этом и говорю.
[/q]
Мне это совсем не было понятно из текста в предыдущих сообщениях.

Я поддерживаю, что возможно виноват BIOS MFM контроллера. Надо попросить автора
сделать это сохранение на floppy, и для чистоты эксперимента вытащить из платы MFM
controller, чтобы его расширение int0x13 убрать.
fre6lime
Newbie


Всего сообщений: 70
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
30 нояб. 2015
uav1606 написал:
[q]
fre6lime, пробовали при загрузке жать что-то вроде Ctrl+Alt+Esc? Попадалсь мне отдалённо похожая XT-шка, там была как раз такая комбинация.
Можно и другие клавиши с Ctrl+Alt попробовать.
[/q]
Тут все реверс-инжиниринг биоса устраивают, а он пришел и разрулил :)
Ctrl+Alt+Esc сработало, и я увидел сокровенное:



Как и писал alecv поддерживает один 1.44мб флоп. Также стало понятно как пользоваться встроенным контроллером xt-ide:



Выбрать параметры диска не дает, можно только список бедов ввести. Скорее всего имеет место некий автодетект, из тех 3-х типов винчейстеров, про которые писал Ethereal.
Дата и время нормально устанавливается и что крайне приятно дос их отлично читает из биоса без спец. утилиты.
На всякий случай прикрепил дамп полченный через bios256.exe.

Прикрепленный файл (BIOS256.ROM, 262144 байт, скачан: 22 раза)
Ethereal
Newbie


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


Ссылка


Дата регистрации на форуме:
9 июня 2016
Вот здорово. :)
Путь к решению задачи вышел весьма замысловатым, причем к финишу привел совершенно неожиданный поворот :)
<<Назад  Вперед>> Страницы: 1 2 3 4 5 6 7 8
Печать
Полигон-2 »   IBM PC-совместимое. До 2000 года включительно »   нужно опознать XT материнку, ошибка real-time clock error
RSS

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

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

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