PDA

Просмотр полной версии : Подкючение к PC двух дисководов



haywire
31.12.2018, 21:35
Иногда, нужно подключить к PC два различных дисковода для записи дискет различного формата. Например, 3.5" и 3".
Подбирая плату на замену к своему компьютеру для записи дискет, я понял, что официально поддерживают два дисковода только слишком старые материнские платы. Однако, выяснилось, что зачастую это проблема только BIOS. Дело в том, что за поддержку floppy на материнских платах отвечает чип ITE87XXF. Чипы от ITE8712 до ITE8720 включительно поддерживают два флоппи дисковода, более новые - только один (это не точно, более точно смотрите datasheet на свой чип). Однако чипы, поддерживающие два дисковода, можно найти на относительно новых материнских платах, например, BioStar T5XE, на которой можно собрать вполне адекватный комп. Но в BIOS этих материнских плат фигурирует только один дисковод, из-за чего второй дисковод не виден таким программам, как ZXD studio и samdisk. Я нашёл способ, как это исправить, и хочу им поделиться. Не гарантирую, что он будет работать на всех платах (ну, теоретически, могли не развести сигнал выбора второго флоппи), но у меня он сработал. К сожалению, ограничение - только 32-х битная ОС. Хоть Windows 10 (у меня Windows 10), но 32-х битная.
Берём программу RW Everything. http://rweverything.phpnet.us/download.html Меню specific -> IO Index/data -> CMOS 70/71. Нужно исправить байты 0x10, 0x14, и 0x2E-0x2F. При редактировании соответствующих ячеек всё автоматически записывается в CMOS. В младших 4-х битах байта 0x10 - тип второго дисковода. Варианты такие :
00h no drive
01h 360 KB 5.25 Drive
02h 1.2 MB 5.25 Drive
03h 720 KB 3.5 Drive
04h 1.44 MB 3.5 Drive
05h 2.88 MB 3.5 drive
В байте 0x14 - надо просто установить бит 6 (наличие второго дисковода). А байты 0x2E-0x2F - это просто сумма всех байтов с 0x10 до 0x2D. Причём, 0x2F - младший. Чтобы всё это не считать, надо поступить проще - к тому числу, что там было, добавить то, что мы установили. Мы установили бит 6 байта 0x14 (это 0x40) и какие-то биты байта 0x10 (например, я установил 0x01 - 360 KB 5.25). Итого, к тому числу, что было в 0x2E-0x2F, надо добавить 0x41 (не забывая про порядок байт).
Перегружаемся, появляется второй дисковод.
У меня получилось и заработало.

crackintosh
04.01.2019, 09:04
Огромное спасибо!!!
На моей GA-P55A-UD3 как раз стоит контроллер IT8720F и он поддреживает 2 дисковвода!
Но значения в ячейках другие:
Сейчас (в БИОС-е установлен 1 дисковвод 1.2М 5.25"):
0x000010 = 20h = 0001 0100 b
0x000014 = 03h

Вы написали что в младших 4-х битах байта 0x10 - тип второго дисковода.
у меня там 0100... т.е. 04h = 1.44 MB 3.5 Drive.
Но его там нет.... как понять?

haywire
16.01.2019, 20:55
Мне кажется, дело в неполноте информации, которую можно найти в интернете. Я бы в данном случае просто попробовал бы установить 6-й бит байта 0x14, и соответственно скорректировать байты контрольной суммы (прибавить 0x40). Предполагаю, что существует ещё такое понятие, как floppy drive swap, механизм работы которого не освещен в доступной документации, который, возможно использует данная BIOS. В любом случае, редактирование указанных ячеек не должно повредить плату, в крайнем случае будет CMOS ERROR, и всё скинется в дефолт.

anasana
18.01.2019, 01:36
У меня тоже мать Gigabyte (GA-EP45-UD3R), на чипе ITE8718.
Ячейка 0x10 в старшем ниббле всегда чётко соответствует выставляемому через БИОС дисководу, а вот при самОй перезагрузке, похоже, младший ниббл ячейки 0x10 принудительно зануляется и КС тоже доподправляется автоматически. При этом в ячейке 0x14 включаемый 6-й бит не портится, но согласно типу _0h no drive соотвестственно и второго дисковода не появляется.
0x10 = 20h (0010 0000 b - 2_h 1.2 MB 5.25 Drive A: | none B:)
0x14 = 03h
правка в RW Everything:
0x10 = 22h (0010 0010 b: 2_h 1.2 MB 5.25 Drive A: | _2h 1.2 MB 5.25 Drive B:)
0x14 = 43h
после перезагрузки:
0x10 = 20h (0010 0000 b: 2_h 1.2 MB 5.25 Drive A: | none B:)
0x14 = 43h
А вообще идея очень прикольная, надо попробовать на других доступных машинках.
P.S. GA-H55M-S2H c IT8720F - аналогично.

crackintosh
31.01.2019, 10:51
Сегодня было чуть времени проверить еще раз. Результат 1 в 1 как у "anasana".
0x10 = 40h (0100 0000 b = 4_h -> 1.4 MB 3.5 Drive A: | none B:)
0x14 = 03h

правка в RW Everything:
0x10 = 42h (0100 0010 b = 42h -> 1.4 MB 3.5 Drive A: | 1.2 MB 5.25 Drive B:)
0x14 = 43h

после перезагрузки:
0x10 = 40h (0100 0000 b: 4_h 1.44 MB 3.5 Drive A: | none B:)
0x14 = 43h

Дисковвод 5.25 (B) подключен на шлейфе до "скрутки" а 3.5" после. Оба рабочие 100%.

Вывод... или не развели дорожки на матери для 2-го дисковвода или байты отвечающие за флопари в разных версиях разные.

crackintosh
05.06.2019, 20:03
Добавлю. Вот чем руководствовались скорее всего при модификации прошивки БИОС-а.
http://www.bioscentral.com/misc/cmosmap.htm

На моей мамке как ни крути... байт по адресу 0x10h всегда после перезагрузки сбрасыватся на хххх0000b
Значение по адресу 0x14 меняется и запоминается. Было 40 (один FDD), стало 43 (2 FDD). Ну и соответсвенно корректируется без проблем CRC.

Топикстартер, а какая у вас материнка?

haywire
06.06.2019, 13:18
Материнка была Biostar G31-M7 Ver 6.1. К сожалению, оказалась не стабильно работающей, пришлось выбросить.

crackintosh
20.09.2019, 15:43
Итак, раставим точки на "i". Изучив схему своей Gigabyte GA-P55A-UD4P с контроллером IT8720F
я понял почему невозможно заставить работать 2-й дисковвод.
1. выводы DRVB# и MTRB# не разведены от контроллера до разъема.
2. Эти-же выводы контроллера IT8720F расшарены так-же между "PCH PECI" (thermal control bus PECI, Platform Environmental Control Interface).

https://i.postimg.cc/sMhKFvVt/34-Pin-FDD.jpg (https://postimg.cc/sMhKFvVt) https://i.postimg.cc/vcjXSWdr/IT8721-pin-sharing.jpg (https://postimg.cc/vcjXSWdr)

Поэтому простое переключение бита в БИОС-е не помогает.
Для этого надо как-то отключить контроль температуры PCH и потом уже переключать режим контроллера на работу с FDD.