Скрещиваем XT-IDE и FDC BIOS Киселева

Описания, советы, ремонт, эксплуатация старых IBM PC-совместимых ПК
Ответить
Аватара пользователя
a2kkv
Member
Сообщения: 160
Зарегистрирован: 13.10.2020,19:45
Откуда: Тамбов
Контактная информация:

Скрещиваем XT-IDE и FDC BIOS Киселева

Сообщение a2kkv » 03.11.2022,22:23

Поделюсь опытом скрещивания XT-IDE и FDC BIOS Сергея Киселева (официально Multi-Floppy BIOS Extension by Sergey Kiselev).
Про BIOS Киселева очень мало информации. Может кому-то пригодится.
Недавно здесь (может путаю?) читал тему про этот BIOS, но поиском найти ее не смог даже через Google.

Т.к. первым моим компьютером был 386 и XT видел только на картинках, то давно хотел собрать XT.
Недавно на форуме купил материнку, контроллер XT-IDE v4 и адаптер клавиатуры XT-PS/2. Спасибо V1talya, sasa1965 и Rio444.
У себя купил ISA 16 bit видеокарту Cirrus Logic GD-5401 (бывший Acumos AVGA1).

Были некоторые проблемы, но все заработало и с диском и с CF картой через переходник.

Следующим этапом решил прикрутить дисковод.

Поставил типовую мультикарту ISA 16 bit на Goldstar Prime 2C и дисковод 3.5" 1.44 MB.
Купил ПЗУ 27С512 (27С256 не было) для прошивки дополнительного дисководного BIOS.
И тут начались проблемы :frown:

Сконфигурировал под себя FDC BIOS, пересчитал контрольную сумму, добавил к XT-IDE BIOS.
Сделал вторую копию во второй части ПЗУ (с адреса 8000h). На XT-IDE поставил перемычку для 28C256 (Оба переключателя 8K в положение OFF).
И... не работает.

Прошил дефолтный FDC BIOS - не работает. Убрал вообще FDC BIOS - не работает.
Решил сделать 4 копии с адресов 4000h, 8000h, C000h. Заработало!!!
Получилось две копии XT-IDE BIOS и FDC BIOS, но все работает и загружается.
Дальнейшие эксперименты показали, что копия по адресу 4000h двоит BIOS. Эту копию убрал.
Но без копии в C000h ничего не работает. Возможно это особенность работы платы XT-IDE с нештатным размером BIOS или еще что-то :(

При этом BIOS загружается в сегмент D400h, хотя по перемычкам на плате должен грузиться в сегмент D000h. FDC BIOS загружается в сегмент D600h.
FLIP_A0.jpg

Перешивал в разных комбинациях раз 20, сломал пару ног на ПЗУ :mad: Припаял.

Дальше было проще, но опять не без проблем.
При конфигурировании FDC BIOS вручную (с пересчетом контрольной суммы) он перестает загружаться.
Сконфигурировал встроенной утилитой (по клавише F2). При попытке записать конфигурацию закономерно запись не удается, при этом выводится дамп конфигурации. Его вручную переписываем в прошивку. Конфигурация получается странная и мало похожая на то, что в документации, но в этом случае все работает.

В результате грузится FDC BIOS, перехватывает дисководные функции прерывания INT 13h (кстати, исходники хорошо документированы, автор молодец). Далее грузится XT-IDE BIOS. Если есть жесткий диск, то грузится с него. Если диска нет, то грузится с дискеты.

PS: Теоретически можно обойтись вообще без платы XT-IDE если не нужна загрузка с "железных" жестких дисков, а достаточно Compact Flash. BIOS можно прошить в ISA сетевую карту, карту через переходник IDE-CF подключить к ISA 16 bit мультиконтроллеру. Но на практике не проверял.

Ссылки:
Собранные версии XT-IDE BIOS:
https://www.xtideuniversalbios.org/binaries/

ide_xt.bin - BIOS для XT
ide_at.bin - BIOS для AT 286
ide_386.bin - BIOS для 386+
Буква l в названии - Large. Добавлено загрузочное меню. Может еще что-то?
Буква p в ide_xtp.bin - компиляция для NEC V20, на 8086/8088 работать не будет.

Перед прошивкой ОБЯЗАТЕЛЬНО прогнать скачанный BIOS через xtidecfg.com
Для платы XT-IDE v4 в поле Controller Type выбрать XTIDE rev 2 or modded rev 1.
На плате поставить перемычки J1 и J2 в положение Hi-Speed Mode.
Иначе не определяет диски.

Multi-Floppy BIOS Extension Сергея Киселева:
https://github.com/skiselev/floppy_bios

Готовый BIOS - floppy_bios.bin

Во вложении готовый дамп под 27С512. Последняя версия XT-IDE BIOS 624 + FDC BIOS 2.6 (конфигурация с одним дисководом 1.44 MB, с загрузкой через штатный загрзчик и с ожиданием нажатия F2 1 секунду).

XTIDE624_Plus_FDCBIOS26_woFloppyBOOT.BIN
(64 КБ) 56 скачиваний

Аватара пользователя
mcloud4477
Advanced Member
Сообщения: 1263
Зарегистрирован: 03.04.2010,01:28
Откуда: Москва

Скрещиваем XT-IDE и FDC BIOS Киселева

Сообщение mcloud4477 » 03.11.2022,23:44

a2kkv писал(а): 03.11.2022,22:23 PS: Теоретически можно обойтись вообще без платы XT-IDE если не нужна загрузка с "железных" жестких дисков, а достаточно Compact Flash. BIOS можно прошить в ISA сетевую карту, карту через переходник IDE-CF подключить к ISA 16 bit мультиконтроллеру. Но на практике не проверял.
Есть мнение, что не прокатит. Мультык ISA16 работает в XT ISA8 только как флопоконтроллер, IDE часть использует "дополнительную" 16ти разрядную часть и в ХТ не заведётся.
286x3 386x4 486x4 p1 без счёта, дальше- больше.

Аватара пользователя
a2kkv
Member
Сообщения: 160
Зарегистрирован: 13.10.2020,19:45
Откуда: Тамбов
Контактная информация:

Скрещиваем XT-IDE и FDC BIOS Киселева

Сообщение a2kkv » 03.11.2022,23:48

Спорить не буду, не проверял.
Но читал, что CF (в отличие от настоящих дисков) умеют работать в 8-битном режиме и XT-IDE BIOS для этого достаточно.

Аватара пользователя
mcloud4477
Advanced Member
Сообщения: 1263
Зарегистрирован: 03.04.2010,01:28
Откуда: Москва

Скрещиваем XT-IDE и FDC BIOS Киселева

Сообщение mcloud4477 » 04.11.2022,00:01

a2kkv писал(а): 03.11.2022,23:48 Но читал, что CF (в отличие от настоящих дисков) умеют работать в 8-битном режиме и XT-IDE BIOS для этого достаточно.
А это не существенно, IDE суть "умный" 16ти разрядный интерфейс, контроллер на винте (или CF) и в случае подключения к ISA16 получается весьма примитивная схема, там банально примитивная дешифрация и пара буферов, половина сигналов идёт с 16ти разрядного "хвоста". По этому в случае с ХТ, когда оный "хвост" висит в воздухе ИДЕ не будет работать. Не имеет такой возможности.
286x3 386x4 486x4 p1 без счёта, дальше- больше.

Аватара пользователя
Rio444
Почётный пользователь
Сообщения: 26861
Зарегистрирован: 14.09.2014,19:11
Откуда: Ростов-на-Дону

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

Скрещиваем XT-IDE и FDC BIOS Киселева

Сообщение Rio444 » 04.11.2022,07:46

a2kkv, Так решено же https://phantom.sannata.org/viewtopic.php?f=14&t=37279 Правда там биос от DTK, но остальное всё то же.
И даже обсуждали недавно.
Там важно, чтобы контрольная сумма каждого биоса была равна нулю, и начало каждого биоса был выровнено по 2Кб. Т.е. начиналось с D0000h, D0800h, D1000h, D1800h и так далее.
Адреса C0000h - C8000h лучше не использовать, там видеобиос. Т.е. доступны с C8000h до DFFFFh. Дальше уже идёт биос материнской платы.
Электронка: Изображение копия Изображение

Аватара пользователя
a2kkv
Member
Сообщения: 160
Зарегистрирован: 13.10.2020,19:45
Откуда: Тамбов
Контактная информация:

Скрещиваем XT-IDE и FDC BIOS Киселева

Сообщение a2kkv » 04.11.2022,14:24

mcloud4477 писал(а): 04.11.2022,00:01По этому в случае с ХТ, когда оный "хвост" висит в воздухе ИДЕ не будет работать.
Да, согласен. Хоть и более простой XT-CF адаптер, но все равно нужен.

Аватара пользователя
a2kkv
Member
Сообщения: 160
Зарегистрирован: 13.10.2020,19:45
Откуда: Тамбов
Контактная информация:

Скрещиваем XT-IDE и FDC BIOS Киселева

Сообщение a2kkv » 04.11.2022,14:35

Rio444 писал(а): 04.11.2022,07:46 a2kkv, Так решено же https://phantom.sannata.org/viewtopic.php?f=14&t=37279 Правда там биос от DTK, но остальное всё то же.
Тут больше про косяки при использовании ПЗУ бОльшего размера чем штатный.
Непонятно почему без копии в ПЗУ по адресу C000h ничего не работает.

Ну и про настройку BIOS Киселева.

Аватара пользователя
Rio444
Почётный пользователь
Сообщения: 26861
Зарегистрирован: 14.09.2014,19:11
Откуда: Ростов-на-Дону

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

Скрещиваем XT-IDE и FDC BIOS Киселева

Сообщение Rio444 » 04.11.2022,17:43

a2kkv писал(а): 04.11.2022,14:35 Непонятно почему без копии в ПЗУ по адресу C000h ничего не работает.
Не может быть аппаратной ошибки?
Детектор адрес скорее всего выполнен на ls688. Хорошо бы измерить уровни на входах со стороны блока переключателей. Может где переключатель плохо контачит.
Электронка: Изображение копия Изображение

prottoss
Newbie
Сообщения: 23
Зарегистрирован: 13.04.2022,18:48
Откуда: Новокузнецк

Скрещиваем XT-IDE и FDC BIOS Киселева

Сообщение prottoss » 22.03.2023,02:38

mcloud4477 писал(а): 04.11.2022,00:01
a2kkv писал(а): 03.11.2022,23:48 Но читал, что CF (в отличие от настоящих дисков) умеют работать в 8-битном режиме и XT-IDE BIOS для этого достаточно.
А это не существенно, IDE суть "умный" 16ти разрядный интерфейс, контроллер на винте (или CF) и в случае подключения к ISA16 получается весьма примитивная схема, там банально примитивная дешифрация и пара буферов, половина сигналов идёт с 16ти разрядного "хвоста". По этому в случае с ХТ, когда оный "хвост" висит в воздухе ИДЕ не будет работать. Не имеет такой возможности.
Все работает. Проверено. ISA16-бит Legacy сетевая карта с XT IDE universal BIOS, 16-бит MIO Prime 2C, CF-карта. Вот с хардами не экспериментировал. Попробую на днях

prottoss
Newbie
Сообщения: 23
Зарегистрирован: 13.04.2022,18:48
Откуда: Новокузнецк

Скрещиваем XT-IDE и FDC BIOS Киселева

Сообщение prottoss » 23.03.2023,06:46

Дополнение по контроллерам MIO. Байт D0-D7 на контроллере должен быть буферирован. Обычно, для этого, на плате контроллера, установлен буфер 74245. Если оного нет, значит линии D0-D7 с ISA8 слота напрямую заведены на линии D0-D7 IDE разъема. Из-за нестыковки уровня сигналов у CF и шины ISA с большой вероятностью работать не будет.

prottoss
Newbie
Сообщения: 23
Зарегистрирован: 13.04.2022,18:48
Откуда: Новокузнецк

Скрещиваем XT-IDE и FDC BIOS Киселева

Сообщение prottoss » 23.03.2023,07:01

Пример "плохого" контроллера. Байт D0-D7 не буферизирован - место 74245 пустое. Можно вылечить - перерезать перемычки и установить буфер.
Безымянный.png
Пример "хорошего" контроллера. Байт D0-D7 буферизирован - установлен буфер 74245.
Безымянный2.png

Ответить