Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: драйвер для дискет со нестадартными размерами секторов  (Прочитано 5335 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Полтора_байта
Гость
« : 10-09-2006 14:43 » 

Прошу совета у уважаемых гуру.
Нужен драйвер для Windows 2000/XP с работы с дискетами со нестадартными размерами секторов -- 128, 256, 1024 байт/сектор.
На данный момент:
Обзавелся DDK, нашел в нем исходники fdc.sys, flpydisk.sys.
Но в них можно "зашиться".

Попытался работать через порты с помощью giveio.sys, но не смог
побороть DMA -- обращение к флоппи-дисководу идет, но вместо
соедржимого сектора получаю всякий мусор.

Каким путем посоветуете действовать.
1) найти готовый драйвер (лучший вариант, но пока не удалось)
2) попытать переделать пример из DDK?
    Но как? вытащить ключевые моменты из fdc.sys и слепить
    свой драйвер, в котором можно было бы менять геометрию
    дискеты (sector_size) ?
3)попытаться разобраться в аналогичных драйверах для
   Linux, FreeBSD и из них вытащить что-нибудь?
   В крайнем случае, можно использовать виртуальные машины,
   в которыз запускать Linux и читать нестандартные дискеты.
   Вот до какой дикости додумался.

Так что прошу помощи -- пинка, в каком направлении копать.
Записан
Finch
Спокойный
Администратор

il
Offline Offline
Пол: Мужской
Пролетал мимо


« Ответ #1 : 10-09-2006 15:17 » 

Тебе нужно написать программу для обшего случая? Или тебе нужно потрошить одну конкретную дискету?

Если второе, то в Дос режиме командами биоса можно читать любой сектор в не зависимости от геометрии сектора. Потом уже пересобрать в нормальную геометрию секторов. Смотреть в сторону 13h прерывания. Номера функций не помню.

Даже помоему в ДОС программе Debug есть возможность чтения секторов.
« Последнее редактирование: 10-09-2006 15:21 от Finch » Записан

Не будите спашяго дракона.
             Джаффар (Коша)
Полтора_байта
Гость
« Ответ #2 : 11-09-2006 06:03 » 

Тебе нужно написать программу для обшего случая? Или тебе нужно потрошить одну конкретную дискету?

Если второе, то в Дос режиме командами биоса можно читать любой сектор в не зависимости от геометрии сектора. Потом уже пересобрать в нормальную геометрию секторов. Смотреть в сторону 13h прерывания. Номера функций не помню.

Даже помоему в ДОС программе Debug есть возможность чтения секторов.
В том то и дело, что для DOS'а такая программа мною давно написана и отлажена.
Кроме Int 13, надо еще в Таблице паpаметpов Дискеты (адрес 0:78h) менять код длины сектора.
Но в связи с кончиной DOS надо научиться по-секторно читать/писать/форматировать такие нестандартные дискеты в среде WinNT.

« Последнее редактирование: 15-12-2007 21:56 от Алексей1153++ » Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines