home *** CD-ROM | disk | FTP | other *** search
- (* ------------------------------------------------------ *)
- (* PER_TEST.PAS *)
- (* Laufwerk- und Druckertest *)
- (* (c) 1989 Karl Friedrich Wieneke & TOOLBOX *)
- (* ------------------------------------------------------ *)
- UNIT Per_Test;
-
- INTERFACE USES Dos;
-
- VAR
- status_message : STRING;
-
- FUNCTION LptStatus(lpt_channel : BYTE) : BOOLEAN;
- FUNCTION DrvStatus(laufwerk : BYTE) : BOOLEAN;
-
- IMPLEMENTATION
-
- VAR
- reg : Registers;
- help : BYTE;
-
- FUNCTION LptStatus(lpt_channel : BYTE) : BOOLEAN;
- VAR
- lpt_string : STRING;
- BEGIN
- Str(lpt_channel, lpt_string);
- lpt_string := 'LPT' + lpt_string;
- INLINE($50/$53/$51/$52/$56/$57/$1E/$06/$FB);
- reg.ah := 2;
- reg.dx := lpt_channel-1;
- Intr($17,reg);
- INLINE($07/$1F/$5F/$5E/$5A/$59/$5B/$58/$8B/$E5/$D5/$CF);
- CASE reg.ah OF
- 2 : status_message := lpt_string + ' NICHT BELEGT';
- 24 : status_message := lpt_string + ' OFF LINE';
- 48,200 : status_message := lpt_string + ' AUS';
- 56 : status_message := lpt_string + ' KEIN PAPIER';
- 144 : status_message := lpt_string + ' BEREIT';
- else status_message := 'DRUCKERFEHLER';
- END;
- lptstatus := reg.ah = 144;
- END;
-
- FUNCTION DrvStatus(laufwerk : BYTE) : BOOLEAN;
- VAR
- help : BYTE;
- lw, pfad_string, drv_string : STRING;
- BEGIN
- GetDir(0, pfad_string); { momentanes LW und Pfad }
- IF laufwerk = 0 THEN lw := Copy(pfad_string, 1, 3)
- ELSE lw := Char(laufwerk+64) + ':\';
- drv_string := 'LW ' + lw[1] + ':';
- {$I-}
- chdir(lw)
- {$I+};
- help := IOResult;
- CASE help OF
- 0 : status_message := drv_string + ' BEREIT';
- 152 : status_message := drv_string + ' NICHT BEREIT';
- else status_message := drv_string + ' NICHT VORHANDEN';
- END;
- ChDir(pfad_string); { setzt LW und Pfad wieder }
- { auf Ursprung }
- DrvStatus := help = 0;
- END;
-
- END.
- (* ------------------------------------------------------ *)
- (* Ende von PER_TEST.PAS *)
-