home *** CD-ROM | disk | FTP | other *** search
/ Turbo Toolbox / Turbo_Toolbox.iso / 1989 / 08 / tricks / per_test.pas < prev    next >
Encoding:
Pascal/Delphi Source File  |  1989-05-24  |  2.2 KB  |  71 lines

  1. (* ------------------------------------------------------ *)
  2. (*                   PER_TEST.PAS                         *)
  3. (*             Laufwerk- und Druckertest                  *)
  4. (*     (c) 1989 Karl Friedrich Wieneke & TOOLBOX          *)
  5. (* ------------------------------------------------------ *)
  6. UNIT Per_Test;
  7.  
  8. INTERFACE  USES Dos;
  9.  
  10. VAR
  11.   status_message : STRING;
  12.  
  13.   FUNCTION LptStatus(lpt_channel : BYTE) : BOOLEAN;
  14.   FUNCTION DrvStatus(laufwerk    : BYTE) : BOOLEAN;
  15.  
  16. IMPLEMENTATION
  17.  
  18. VAR
  19.   reg  : Registers;
  20.   help : BYTE;
  21.  
  22.   FUNCTION LptStatus(lpt_channel : BYTE) : BOOLEAN;
  23.   VAR
  24.     lpt_string : STRING;
  25.   BEGIN
  26.     Str(lpt_channel, lpt_string);
  27.     lpt_string := 'LPT' + lpt_string;
  28.     INLINE($50/$53/$51/$52/$56/$57/$1E/$06/$FB);
  29.     reg.ah := 2;
  30.     reg.dx := lpt_channel-1;
  31.     Intr($17,reg);
  32.     INLINE($07/$1F/$5F/$5E/$5A/$59/$5B/$58/$8B/$E5/$D5/$CF);
  33.     CASE reg.ah OF
  34.      2     : status_message := lpt_string + ' NICHT BELEGT';
  35.     24     : status_message := lpt_string + ' OFF LINE';
  36.     48,200 : status_message := lpt_string + ' AUS';
  37.     56     : status_message := lpt_string + ' KEIN PAPIER';
  38.     144    : status_message := lpt_string + ' BEREIT';
  39.       else   status_message := 'DRUCKERFEHLER';
  40.     END;
  41.     lptstatus := reg.ah = 144;
  42.   END;
  43.  
  44.   FUNCTION DrvStatus(laufwerk : BYTE) : BOOLEAN;
  45.   VAR
  46.     help                        : BYTE;
  47.     lw, pfad_string, drv_string : STRING;
  48.   BEGIN
  49.     GetDir(0, pfad_string);       { momentanes LW und Pfad }
  50.     IF laufwerk = 0 THEN lw := Copy(pfad_string, 1, 3)
  51.                     ELSE lw := Char(laufwerk+64) + ':\';
  52.     drv_string := 'LW ' + lw[1] + ':';
  53. {$I-}
  54.     chdir(lw)
  55. {$I+};
  56.     help := IOResult;
  57.     CASE help OF
  58.       0 : status_message := drv_string + ' BEREIT';
  59.     152 : status_message := drv_string + ' NICHT BEREIT';
  60.     else  status_message := drv_string + ' NICHT VORHANDEN';
  61.     END;
  62.     ChDir(pfad_string);          { setzt LW und Pfad wieder }
  63.                                  { auf Ursprung             }
  64.     DrvStatus := help = 0;
  65.   END;
  66.  
  67. END.
  68. (* ------------------------------------------------------ *)
  69. (*                 Ende von PER_TEST.PAS                  *)
  70.  
  71.