Чтение с дискеты нестандартного формата
Вопрос: как int13 заставить закрыть глаза на то что там написано и просто прочитать указанный сектор?
заранее спасибо
Цитата:
Originally posted by timer
Задача следующая... Есть дискета (3.5') обычная: с двойной плотностью, 1.44 и т.д. На этой дискете есть информация записанная просто куском. т.е. без файловых таблиц и прочей атрибутики обычной компутерной дискеты, т.е. с 0 -й дорожки с 1 - го сектора идет необходимая информация . Так вот когда я вызываю int 13 со всеми параметрами (проверял на обычных дискетах- все работает) он мне возвращает флаг 02h - неправильный маркер адреса или что-то похожее. Ну и ессно нифига в смысле самой информации int 13 не возвращает.
Вопрос: как int13 заставить закрыть глаза на то что там написано и просто прочитать указанный сектор?
заранее спасибо
Задача следующая... Есть дискета (3.5') обычная: с двойной плотностью, 1.44 и т.д. На этой дискете есть информация записанная просто куском. т.е. без файловых таблиц и прочей атрибутики обычной компутерной дискеты, т.е. с 0 -й дорожки с 1 - го сектора идет необходимая информация . Так вот когда я вызываю int 13 со всеми параметрами (проверял на обычных дискетах- все работает) он мне возвращает флаг 02h - неправильный маркер адреса или что-то похожее. Ну и ессно нифига в смысле самой информации int 13 не возвращает.
Вопрос: как int13 заставить закрыть глаза на то что там написано и просто прочитать указанный сектор?
заранее спасибо
Читай лучше из винды - CreateFile("\\\\.\\A:", ...); А так придётся вручную параметры дискеты устанавливать, вроде они хранятся по адресу 0000:0078, а саму структуру не помню, поищи описание.
Я тут почитал и понял что т.к. на дискете нет вообще секторов (т.е. маркера начала сектора, номера сектора, длина и т.д.) то int 13, который требует номер сектора, ничего и не делает, он не знает откуда читать.
Из винды не получится в силу определенных обстоятельств, а по поводу 0000:0078 я немного не понял, если я изменю параметры то int 13 будет в каком-то другом режиме работать или как? или где?
Цитата:
Originally posted by timer
Я тут почитал и понял что т.к. на дискете нет вообще секторов (т.е. маркера начала сектора, номера сектора, длина и т.д.) то int 13, который требует номер сектора, ничего и не делает, он не знает откуда читать.
Из винды не получится в силу определенных обстоятельств, а по поводу 0000:0078 я немного не понял, если я изменю параметры то int 13 будет в каком-то другом режиме работать или как? или где?
Я тут почитал и понял что т.к. на дискете нет вообще секторов (т.е. маркера начала сектора, номера сектора, длина и т.д.) то int 13, который требует номер сектора, ничего и не делает, он не знает откуда читать.
Из винды не получится в силу определенных обстоятельств, а по поводу 0000:0078 я немного не понял, если я изменю параметры то int 13 будет в каком-то другом режиме работать или как? или где?
На дискете в любом случае сектора есть. Если нет, значит читать её вообще невозможно. Другое дело, что может размер сектора нестандартный(не 512 байт) или расстояние между секторами другое, поэтому int13 и не читает. А в 0000:0078 как раз все эти параметры и хранятся.