home *** CD-ROM | disk | FTP | other *** search
- (* ------------------------------------------------------ *)
- (* DRVEDEMO.PAS *)
- (* (c) 1991 Michael Plewe & TOOLBOX *)
- (* ------------------------------------------------------ *)
- {$M 4000,0,0} { Nur wichtig für Exec(...); }
-
- PROGRAM DriveDemo;
-
- USES Crt, Dos;
-
- CONST
- DiskError : INTEGER = 0;
- Path : STRING = '';
- OldPath : STRING = '';
-
- VAR
- Dummy : BYTE;
-
- FUNCTION GetLogDriveState(No : BYTE): BYTE;
- VAR
- Regs : Registers;
- BEGIN
- DiskError := 0;
- Regs.AH := $44;
- Regs.AL := $0E;
- Regs.BX := No;
- MsDos(Regs);
- GetLogDriveState := Regs.AL;
- IF (Regs.Flags AND FCarry <> 0) THEN
- DiskError := Regs.AX;
- END;
-
- FUNCTION SetLogDriveState(No : BYTE): BYTE;
- VAR
- Regs : Registers;
- BEGIN
- DiskError := 0;
- Regs.AH := $44;
- Regs.AL := $0F;
- Regs.BX := No;
- MsDos(Regs);
- SetLogDriveState := Regs.AL;
- IF (Regs.Flags AND FCarry <> 0) THEN
- DiskError := Regs.AX;
- END;
-
- PROCEDURE WaitForKeypress;
- VAR
- c : CHAR;
- BEGIN
- c := ReadKey;
- END;
-
- BEGIN { Hauptprogramm/Demo }
- OldPath := GetEnv('BGIPATH');
- (* Im Environment: SET BGIPATH='D:\TURBO' *)
- Path := GetEnv('COMSPEC');
-
- ClrScr;
- WriteLn('Für diese Demonstration muß das Laufwerk zum ',
- 'Lesen bereit sein!');
- WriteLn(^J'So sieht die ganze Sache ohne Setzen der ',
- 'logischen Laufwerke aus...'^J);
- Delay(2000);
- ChDir('A:\');
- Exec(Path, '/C DIR/W *.*');
- ChDir('B:\');
- Exec(Path, '/C DIR/W *.*');
-
- ClrScr;
- WriteLn('...und so, wenn man alles selbst in die ',
- 'Hand nimmt!'^J);
- Delay(2000);
- IF GetLogDriveState(1) <> 0 THEN
- Dummy := SetLogDriveState(1);
- IF DiskError <> 0 THEN
- WriteLn(^G^G^G^J'Fehler! Nr : ', DiskError, ^J);
- WriteLn('Bitte Taste drücken, jetzt wird das Laufwerk ',
- 'A: angesprochen!');
- WaitForKeypress;
-
- ChDir('A:\');
- Exec(Path, '/C DIR/W *.*');
- IF GetLogDriveState(2) <> 0 THEN
- Dummy := SetLogDriveState(2);
- IF DiskError <> 0 THEN
- WriteLn(^G^G^G^J'Fehler! Nr : ', DiskError, ^J);
- WriteLn(^J'Bitte Taste drücken, denn jetzt kommt ',
- 'Laufwerk B: !');
- WaitForKeypress;
-
- ChDir('B:\');
- Exec(Path,'/C DIR/W *.*');
- ChDir(OldPath);
- WriteLn(^J'Taste drücken... THE END');
- WaitForKeypress;
- END.
- (* ------------------------------------------------------ *)
- (* Ende von DRVDEMO.PAS *)
-
-