Копирование дискет

Тема в разделе "Другие", создана пользователем IDeonisI, 24 фев 2007.

  1. IDeonisI

    IDeonisI Гость

    Всем привет! Как сделать копию пяти дюймовой дискеты на ПК, при условии, что файловая система неизвестна (отличная от стандартных) и то, что там написано тоже неизвестно?
     
  2. sab0tage

    sab0tage Гость

    Легко, только тебе что нужно? Программа, которая это делает (DiskDuplicate) или код? Писал лет 6 назад на паскале-асме. На тот момент альтернатив было немеряно. (Посмотри сайты типа 386.ru)
     
  3. IDeonisI

    IDeonisI Гость

    Спасибо за совет sab0tage! На данный момент нужна программа, но былоб интересно
    разобраться в коде. Какие WinIP функции можно использовать для обращения к конкретным байтам информации на дискете, вне зависимости от файловой системы?
     
  4. sab0tage

    sab0tage Гость

    На WinApi не получиться, посмотри int25h/26h (Прямая дисковая операция чтения/записи)
    Я использовал Int13h:
    Код (Text):
    { op=$02 to read / op=$03 to write }
    function asmRWSectors(Drive,Track,Side,SSect:byte; var Buffer; op:byte):byte;
    var
    Regs : registers;
    Tries: byte;
    Done : boolean;
    Result:byte;
    cx_:word;
    begin
    Result:=0;
    Tries:=0;
    Done:=False;
    repeat
    cx_:=Track shl 8 + SSect;

    asm
    mov AH,op;
    mov AL,$01; { Number of sectors to read }
    mov CX,cx_; { track number and starting sector }
    mov DH,Side;
    mov DL,Drive;
    {DX:=Side shl 8 + Drive;}
    lds BX,Buffer;       { point to data buffer }
    Int 13h;
    mov Result,AH;
    end;

    if Result<>0 then
    begin
    Inc(Tries);
    if Tries>2 then Exit
    else
    asm
    mov AX,$0000;
    mov DL,Drive;
    Int 13h;
    end;
    end
    else Done:=True;
    until Done;
    asmRWSectors:=Result;
    end;
    Есть откомпилированная-консольная версия, но я делал ее для (40-Tracks, 9-sec/tra = 360Kb и 80-Tracks, 15Sec/tra = 1200Kb. это по 5ти дюймовым.)

    Удачи.
     
  5. IDeonisI

    IDeonisI Гость

    Спасибо! Попробую сделать так, как ты говоришь.
     
Загрузка...

Поделиться этой страницей