Hinweis: Das Forum wird geschlossen! Neue Registrierungen sind nicht mehr möglich!

 Zurück zu Pro-Linux   Foren-Übersicht   FAQ     Suchen    Mitgliederliste
in DOS schreibgeschuetzte Disketten beschreiben

 
Neuen Beitrag schreiben   Auf Beitrag antworten    Pro-Linux Foren-Übersicht -> Fun&Joke
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
frank
Gast





BeitragVerfasst am: 18. Sep 2003 21:31   Titel: in DOS schreibgeschuetzte Disketten beschreiben

damit ich es endlcih mal los bin: das diskettenschreibschutzumgehungsprogramm für DOS.
habe ich mal von einem alten c't magazin abgeschrieben.

________________________________________________________________________________
program FIDE_test;
uses dos;
var puffer:array[0..$4000] of byte;
var fdcresult:array[0..6] of byte absolute $40:$42;

procedure readsec (anz,drive,head,track,sek:word ; var res:byte); var
reg:registers;
begin reg.ax:=$200 + lo(anz);
reg.bx:=ofs (puffer);
reg.es:=seg (puffer);
reg.ch:=lo(track);
reg.cl:=hi(track) shl 6 or lo(sek);
reg.dl:=drive;
reg.dh:=head;
intr($13,reg);
res:=reg.ah
end;

procedure writeresult;
var i:byte;
var wptr:^word;

begin
wptr:=pointer(@fdcresult[0]);
wptr^:=swap (wptr^ and $fe or $4c);
fdcresult:=fdcresult-3;
for i:=6 downto 0 do write (char(fdcresult));
end;

function read_rtc (index:byte): byte;
begin
port[$70]:=index;
read_rtc:=port[$71];
end;

var r:byte;
drivechar:char;
drive:byte;
floppytyp:byte;
retry:byte;
begin
writeln;
write ('floppy-konfiguration (gemaess fide v4/01), ');
writeln ('anders skaemt, c´´t 4/97');
writeln ('ueberprueft beschreibbarkeit trotz schreibschutz');
writeln ('achtung: nur fuer 3,5"-laufwerke!! ');
writeln ('bitte leere formatierte diskette einlegen');
write ('floppy auf (a oder b)? ');
readln (drivechar);
case upcase(drivechar) of
'a': begin
drive:=0;
floppytyp:=read_rtc($10) shr 4;
end;
'b': begin
drive:=1;
floppytyp:=read_rtc($10) and $f;
end
else
begin
writeln (chr(7),'nur a oder b erlaubt');
end;
if floppytyp < 4 then
begin
writeln (chr(7),'nur 3,5"-laufwerke erlaubt'); halt(2);
end;
write ('floppy-laufwerk meldet: ');
retry:=0;

repeat
readsec (1,drive,$50,$152,$1,r);
case r of
$80: begin
writeln ('keine disc eingelegt?');
halt(2);
end;
$06: writeresult;
$02,$0a: begin writeresult; inc (retry)end;
end;
until (retry =2);
writeln;
end;
end.
_____________________________________________________________________
 

ratte
Gast





BeitragVerfasst am: 18. Sep 2003 22:24   Titel: Re: in DOS schreibgeschuetzte Disketten beschreiben

Im [code]-Block musst du eckige Klammern mit \ escapen, sonst verhunzt die Forumsoftware deinen Code.

ratte
 

Beiträge vom vorherigen Thema anzeigen:   
     Pro-Linux Foren-Übersicht -> Fun&Joke Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehen Sie zu:  

Powered by phpBB © phpBB Group
pro_linux Theme © 2004 by Mandaxy