1. Liebe Forumsgemeinde,

    aufgrund der Bestimmungen, die sich aus der DSGVO ergeben, müssten umfangreiche Anpassungen am Forum vorgenommen werden, die sich für uns nicht wirtschaftlich abbilden lassen. Daher haben wir uns entschlossen, das Forum in seiner aktuellen Form zu archivieren und online bereit zu stellen, jedoch keine Neuanmeldungen oder neuen Kommentare mehr zuzulassen. So ist sichergestellt, dass das gesammelte Wissen nicht verloren geht, und wir die Seite dennoch DSGVO-konform zur Verfügung stellen können.
    Dies wird in den nächsten Tagen umgesetzt.

    Ich danke allen, die sich in den letzten Jahren für Hilfesuchende und auch für das Forum selbst engagiert haben. Ich bin weiterhin für euch erreichbar unter tti(bei)pcwelt.de.
    Dismiss Notice

So kommen Sie an die Festplatten-Parameter

Discussion in 'Ihre Meinung zu Artikeln auf pcwelt.de' started by deoroller, Jul 15, 2004.

Thread Status:
Not open for further replies.
  1. deoroller

    deoroller Wandelndes Forum

    Hallo,

    mal eine ganz banale Frage:

    Wenn ich eine Platte habe, die das erweiterte LBA-Protokoll erfordert (über128GB, wenn ich mich nicht irre) das BIOS es aber nicht unterstützt;
    werden dann die Palttenparameter oder ID, oder was auch immer angezeigt?

    Gruß deoroller
     
  2. Ich hab hier ein Prg IDEINFO. Das ist aus 1991 und gibt mir die folgenden Daten wieder:


    IDE/AT Drive Identify Program 1.0
    (c) Copyright 1991 by Thomas J. Newman
    All Rights Reserved.

    The System BIOS reported 2 hard drive(s).
    A scan of the hardware found 2 IDE/AT hard drive(s).

    Drive 0 Information

    Cylinders........... 16383
    Heads............... 16
    Sectors per track... 63
    Bytes per track..... 0
    Bytes per sector.... 0
    Buffer Size......... 1821 Kb
    ECC bytes........... 52

    Model Number........ ExcelStor Technology J360
    Firmware Revision... V22OA63A
    Serial Number....... VNVB01E20ENTQA

    Drive capacity...... 2015 Mb

    Das Programm ist Freeware und hat gerade mal 4,84KB. Natürlich stimmt die Größe nicht, das es nur 2GB anzeigt. Aber die Info ist prima.
     
  3. TS-Schranz

    TS-Schranz Byte

    erkannt werden solche platten schon nur das sie immer als 120 GB Platten angeben werden da hilt nen passenden controller oder ein dementsprechendes BIOS Update
     
  4. duenen

    duenen Byte

    Hallo,
    wenn Du Dich in Pascal auskennst, oder jemanden kennst, der sich auskennt,
    hier ist die 1997er Quelle von IDE-Info. Vielleicht willst Du ja das
    Prog. anpassen?



    program IDE_Info;

    {
    IDEINFO.PAS -- v0.1

    Reports IDE information from installed IDE hard drives.

    TP source code written by Scott Earnest (setech@ix.netcom.com), 1997.

    Based closely on C code written by Doug Merrett (dcm@mincom.oz.au),
    available on sites as DUG_IDE.C in DUGIDE10.ZIP.

    Disclaimer: Standard. It works on my system, I can't guarantee it will
    work on yours.

    Known problems: WILL NOT WORK IN A WIN95 DOS SESSION. This may have
    something to do with the way Win 95 intercepts low-level I/O in its DOS
    sessions. It will, however, work under DOS 7.0 if you boot directly to
    DOS without starting Win 95.

    Note: This code is rather sloppy and IMHO not well organized. There are
    very few comments, so modify at your own risk. Also intended to work with
    the first IDE channel only.
    }

    uses
    crt, dos;

    const
    ret_val : string = '';
    outval : array[0..1] of byte = ($a0,$b0);

    var
    num_drv : byte;
    dd : array[0..255] of word;
    dd_off : word;
    loop : word;
    ddc : array[0..511] of char absolute dd;
    reg : registers;
    bios_cyl, bios_head, bios_sec : array[0..1] of word; { Cylinders, Heads,
    Sectors }

    function getascii (in_data : array of word; off_start, off_end : word) :
    string;

    var
    wk : array[0..511] of char;
    loop, loop1 : word;

    begin
    loop1 := 1;
    for loop := off_start to off_end do
    begin
    ret_val[loop1] := char(hi(in_data[loop]));
    inc (loop1);
    ret_val[loop1] := char(lo(in_data[loop]));
    inc (loop1);
    end;
    ret_val[0] := char(succ(off_end-off_start)*2);
    getascii := ret_val;
    end;

    begin
    assign (input,'');
    reset (input);
    assign (output,'');
    rewrite (output);
    directvideo := false;
    textattr := $1f;
    num_drv := mem[Seg0040:$75];
    for loop := 0 to pred(num_drv) do
    begin
    while port[$1f7]<>$50 do ; {wait until controller not busy}
    port[$1f6] := outval[loop];
    port[$1f7] := $ec;
    while port[$1f7]<>$58 do ; {wait for data ready}
    for dd_off := 0 to 255 do
    dd[dd_off] := portw[$1f0];

    for dd_off := 0 to 255 do
    write (char(hi(dd[dd_off])),char(lo(dd[dd_off])));
    { Get BIOS drive info }

    reg.ah := $08; { Get drive info }
    reg.dl := $80+loop; { Drive is 80H for Disk 0, 81H for Disk 1 }
    intr ($13,reg);
    if (reg.flags and fCarry=0) then { All OK if carry not set }
    begin
    bios_head[loop] := reg.dh+1; { Heads are from 0 }
    bios_sec[loop] := reg.cl and $3F; { sec is bits 5 - 0 }
    bios_cyl[loop] := ((reg.cl and $C0) shl 2)+reg.ch+2; { +1 because
    starts from 0 and +1 for FDISK leaving one out }
    end;

    writeln ('DRIVE ', loop);
    writeln ('Model Number______________________: ', getascii (dd, 27,
    46));
    writeln ('Serial Number_____________________: ', getascii (dd, 10,
    19));
    writeln ('Controller Revision Number________: ', getascii (dd, 23,
    26));
    writeln;
    write ('Able to do Double Word Transfer___: ');
    if dd[48]=0 then
    writeln ('No')
    else
    writeln ('Yes');
    writeln ('Controller type___________________: ', dd[20]);
    writeln ('Controller buffer size (bytes)____: ',
    longint(dd[21])*512);
    writeln ('Number of ECC bytes transferred___: ', dd[22]);
    writeln ('Number of sectors per interrupt___: ', dd[47]);
    writeln;
    writeln ('Hard Disk Reports');
    writeln ('Number of Cylinders (Fixed)_______: ', dd[1]);
    writeln ('Number of Heads___________________: ', dd[3]);
    writeln ('Number of Sectors per Track_______: ', dd[6]);
    writeln;
    writeln ('BIOS Reports');
    writeln ('Number of Cylinders_______________: ', bios_cyl[loop]);
    writeln ('Number of Heads___________________: ', bios_head[loop]);
    writeln ('Number of Sectors per Track_______: ', bios_sec[loop]);
    writeln;
    if loop<>1 then
    begin
    writeln ('Press a key');
    readkey;
    end;
    end;
    end.


     
Thread Status:
Not open for further replies.

Share This Page