Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Чтение с дискеты нестандартного формата

5.2K
11 сентября 2003 года
timer
2 / / 11.09.2003
Задача следующая... Есть дискета (3.5') обычная: с двойной плотностью, 1.44 и т.д. На этой дискете есть информация записанная просто куском. т.е. без файловых таблиц и прочей атрибутики обычной компутерной дискеты, т.е. с 0 -й дорожки с 1 - го сектора идет необходимая информация . Так вот когда я вызываю int 13 со всеми параметрами (проверял на обычных дискетах- все работает) он мне возвращает флаг 02h - неправильный маркер адреса или что-то похожее. Ну и ессно нифига в смысле самой информации int 13 не возвращает.

Вопрос: как int13 заставить закрыть глаза на то что там написано и просто прочитать указанный сектор?

заранее спасибо
424
12 сентября 2003 года
(C)dragon
307 / / 04.12.2002
Цитата:
Originally posted by timer
Задача следующая... Есть дискета (3.5') обычная: с двойной плотностью, 1.44 и т.д. На этой дискете есть информация записанная просто куском. т.е. без файловых таблиц и прочей атрибутики обычной компутерной дискеты, т.е. с 0 -й дорожки с 1 - го сектора идет необходимая информация . Так вот когда я вызываю int 13 со всеми параметрами (проверял на обычных дискетах- все работает) он мне возвращает флаг 02h - неправильный маркер адреса или что-то похожее. Ну и ессно нифига в смысле самой информации int 13 не возвращает.

Вопрос: как int13 заставить закрыть глаза на то что там написано и просто прочитать указанный сектор?

заранее спасибо



Читай лучше из винды - CreateFile("\\\\.\\A:", ...); А так придётся вручную параметры дискеты устанавливать, вроде они хранятся по адресу 0000:0078, а саму структуру не помню, поищи описание.

5.2K
12 сентября 2003 года
timer
2 / / 11.09.2003
<<Читай лучше из винды - CreateFile("\\\\.\\A:", ...); А так придётся вручную параметры дискеты устанавливать, вроде они хранятся по адресу 0000:0078, а саму структуру не помню, поищи описание.

Я тут почитал и понял что т.к. на дискете нет вообще секторов (т.е. маркера начала сектора, номера сектора, длина и т.д.) то int 13, который требует номер сектора, ничего и не делает, он не знает откуда читать.
Из винды не получится в силу определенных обстоятельств, а по поводу 0000:0078 я немного не понял, если я изменю параметры то int 13 будет в каком-то другом режиме работать или как? или где?
424
12 сентября 2003 года
(C)dragon
307 / / 04.12.2002
Цитата:
Originally posted by timer
Я тут почитал и понял что т.к. на дискете нет вообще секторов (т.е. маркера начала сектора, номера сектора, длина и т.д.) то int 13, который требует номер сектора, ничего и не делает, он не знает откуда читать.
Из винды не получится в силу определенных обстоятельств, а по поводу 0000:0078 я немного не понял, если я изменю параметры то int 13 будет в каком-то другом режиме работать или как? или где?



На дискете в любом случае сектора есть. Если нет, значит читать её вообще невозможно. Другое дело, что может размер сектора нестандартный(не 512 байт) или расстояние между секторами другое, поэтому int13 и не читает. А в 0000:0078 как раз все эти параметры и хранятся.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог