Вопрос № 30367: Здравствуйте, уважаемые эксперты!
Помогите, пожалуйста, решить следующую задачу:
Имеется дискета с одним или несколькими физически поврежденными секторами.
Необходимо скопировать всю имеющуюся в читаемых секторах информацию на другую диск...
Вопрос № 30.367
Здравствуйте, уважаемые эксперты!
Помогите, пожалуйста, решить следующую задачу:
Имеется дискета с одним или несколькими физически поврежденными секторами.
Необходимо скопировать всю имеющуюся в читаемых секторах информацию на другую дискету.
В настоящее время приходится в Pascale через прерывание 13h читать дорожки (а при сбое - посекторно) в файл, а затем писать на другую дискету из файла.
Собственно вопрос: можно ли, и как выделить под переменную в Pascale или на Asme более 1 Мб или как в Delphi использовать прерывание 13h? Если можно, простейший пример.
P.S. Disccopy a: a: работает некорректно (копирует не все).
Заранее благодарю ВСЕХ за ЛЮБЫЕ ответы.
С уважением, Андрей, U1946KU@list.ru
Отвечает: sir henry
Здравствуйте, Сошников Андрей Сергеевич!
Во-первых, в Windows (коль уж Вы речь завели о Дельфи) прерывания напрямую не используются. Они могут с тем или иным успехом эмулироваться операционной системой.
Во-вторых, написание программ обращения к устройствам напрямую, это монополия DDK, почитайте его описание. Там сильно много написано, чтобы все это излагать в рассылке.
---------------------------------------------
Не знаю, как на asm'е выделить 1 Мб, там довольно маленький набор типов, но выделить память Вы можете в любом количестве в пределах 2 Гб (это для винды). Обратитесь за подобными консультациями в рассылку по asm'у. Можно ли это сделать на Пскале - это зависит от того, какой у Вас Паскаль и под какой ОС Вы работаете..
----------------------------------------------
Вопрос Ваш не совсем понятен, уточните, что Вы все-таки хотите.
Ответ отправил: sir henry (статус: Академик)
Отправлен: 28.11.2005, 10:31 Оценка за ответ: 5 Комментарий оценки: Turbo Pascal 7, Win 9x или XP