home *** CD-ROM | disk | FTP | other *** search
- (* ------------------------------------------------------ *)
- (* DISKCH.PAS *)
- (* (c) 1990 Jan Laitenberger & TOOLBOX *)
- (* ------------------------------------------------------ *)
- UNIT DiskCh;
-
- INTERFACE
- (* Die Funktionen stehen nur auf ATs zur Verfügung *)
-
- FUNCTION DiskTyp(Drive : BYTE) : BYTE;
-
- { Stellt Laufwerkstyp fest:
- 'Drive' -> Laufwerknummer (0=A, 1=B, 80h=1. Festplatte)
- Ergebnis: 0 -> Laufwerk nicht gefunden
- 1 -> Laufwerk erkennt keinen Disk-Wechsel
- 2 -> Laufwerk erkennt Disk-Wechsel
- 3 -> Laufwerk ist Festplatte }
-
- FUNCTION DiskChange(Drive : BYTE) : BOOLEAN;
-
- { Ermittelt, ob die Diskette seit der letzten Disketten-
- operation gewechselt wurde. Ist dies der Fall liefert
- die Funktion solange den Wert 'TRUE', bis ein neuer
- Diskettenzugriff erfolgt.
- 'Drive' -> Laufwerknummer (0=A, 1=B, 80h=1. Festplatte)
- Ergebnis: TRUE -> Diskettenwechsel hat stattgefunden }
-
-
- IMPLEMENTATION
-
- USES Dos, Crt;
-
- VAR
- Regs: REGISTERS;
-
- FUNCTION DiskTyp(Drive : BYTE) : BYTE;
- BEGIN
- WITH Regs DO BEGIN
- AH := $15;
- DL := Drive;
- Intr($13, Regs);
- DiskTyp := AH;
- END;
- END;
-
- FUNCTION DiskChange(Drive: BYTE): BOOLEAN;
- BEGIN
- IF NOT (DiskTyp(Drive) = 2) THEN BEGIN
- WriteLn (#13#10#7,
- 'Laufwerk erkennt keinen Disk-Wechsel!');
- Halt;
- END;
- WITH Regs DO BEGIN
- AH := $16;
- DL := Drive;
- Intr($13, Regs);
- DiskChange := (AH = 6);
- END;
- END;
-
- BEGIN
- END.
- (* ------------------------------------------------------ *)
- (* Ende von DISKCH.PAS *)