AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Sektoren von der Festplatte lesen

Offene Frage von "FProg"
Ein Thema von FProg · begonnen am 27. Mär 2005 · letzter Beitrag vom 27. Mär 2005
 
FProg

Registriert seit: 27. Dez 2003
Ort: Gera
3 Beiträge
 
Delphi 5 Standard
 
#1

Sektoren von der Festplatte lesen

  Alt 27. Mär 2005, 20:29
Hi,

ich bin gerade dabei mich mit etwas... naja, "tiefgreifenderen" Dingen zu beschäftigen und versuche, Sektoren direkt von der Festplatte zu lesen. Leider habe ich dazu nur etwas eingestaubten TP-Code gefunden, den ich nicht in Delphi übersetzt bekomme

Ich kann ihn ja trotzdem mal posten.

Delphi-Quellcode:
function bios_ReadAbsSector(drv, head: byte; cyl: word; sector: byte; var
buffer): byte;
var regs: TRegisters;
begin
    regs.ah:=02;
    regs.dl:=drv;
    regs.dh:=head;
    regs.ch:=cyl and $ff;
    regs.cl:=(sector and $3f) or ((cyl and $300) shr 2);
    regs.al:=1;
    regs.es:=seg(buffer);
    regs.bx:=ofs(buffer);
    intr($13,regs);
    if (regs.flags and $01)=0 then begin
        bios_ReadAbsSector:=0;
    end else begin
        bios_ReadAbsSector:=regs.ah;
    end;
end;
Gefunden auf http://www.elists.org/pipermail/delp...er/016753.html

Es werden also die unterschiedlichsten Register belegt. Theoretisch ließe sich ja dieser Quelltext ja mit Delphi umsetzen, nur hängt es bei mir an zwei Stellen...
  • Wie bekomme ich die Befehle seg() und ofs() umgesetzt?
  • Wie ermittle ich die Werte, die hier so schön in regs.flags enthalten sind?

Hier nochmal der Delphi-Quelltext, soweit ich ihn habe:

Delphi-Quellcode:
function bios_ReadAbsSector(drv, head: byte; cyl: word; sector: byte; var
buffer): byte;
var b, bCyl: byte;
begin
    bCyl := cyl and $ff;
    b := (sector and $3f) or ((cyl and $300) shr 2);
    asm
        mov ah, 02
        mov dl, drv
        mov dh, head
        mov ch, bCyl
        mov cl, b
        mov al, 1
        mov es, {???}
        mov bx, {???}
        int 19
        {???}
    end;
    {???}
end;

Vielen dank schonmal!
FProg
Felix Neumann
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:35 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz