home *** CD-ROM | disk | FTP | other *** search
/ Turbo Toolbox / Turbo_Toolbox.iso / 1990 / 06 / tricks / savecmos.pas < prev    next >
Encoding:
Pascal/Delphi Source File  |  1990-03-08  |  2.4 KB  |  80 lines

  1. (* ------------------------------------------------------ *)
  2. (*                     SAVECMOS.PAS                       *)
  3. (*    Sichern des CMOS-Speicherinhalts in einer Datei     *)
  4. (*         (c) 1990 Ralf Randermann & TOOLBOX             *)
  5. (* ------------------------------------------------------ *)
  6. PROGRAM SaveCMOS;
  7.  
  8. USES Crt, CMOS;
  9.  
  10. CONST
  11.   CRLF = #13#10;
  12.   Bell = #7;
  13.  
  14. VAR
  15.   LV, Work, SaveEnde : BYTE;
  16.   Datei              : FILE OF BYTE;
  17.   Taste              : CHAR;
  18.  
  19. BEGIN
  20.   WriteLn('SaveCMOS Version 0.1', CRLF,
  21.     'Sichern des CMOS-Speicherinhalts in einer Datei');
  22.   IF ParamCount <> 1 THEN BEGIN
  23.     WriteLn('Die Datei, in der der CMOS-Speicherinhalt ',
  24.             'gesichert werden soll, muß', CRLF,
  25.             'als Parameter angegeben werden!', Bell);
  26.     Halt;
  27.   END;
  28. {$I-}
  29.   Assign(Datei, ParamStr(1));
  30.   ReWrite(Datei);
  31. {$I+}
  32.   IF IOResult > 0 THEN BEGIN
  33.     WriteLn('Die angegebene Datei kann nicht zum ',
  34.             'Schreiben geöffnet werden!', Bell);
  35.     Halt;
  36.   END;
  37.   IF CMOSSize = 0 THEN BEGIN
  38.     WriteLn('CMOS-Speicher nicht vorhanden oder nicht ',
  39.             'nach AT-Standard lesbar!', Bell);
  40.     Halt;
  41.   END;
  42.   WriteLn('Computer enthält ', CMOSSize,
  43.           ' Byte CMOS-Speicher.');
  44.   Work := 14;
  45.   SaveEnde := 127;
  46.   IF CMOSSize > 64 THEN BEGIN
  47.     Write('Soll der: (1) gesamte CMOS-Speicher ',
  48.           '(Byte 14 bis 127)', CRLF,
  49.           '          (2) Standard-AT CMOS-Speicher ',
  50.           '(Byte 14 bis 63)', CRLF,
  51.           '          (3) Expanded CMOS-Speicher ',
  52.           '(Byte 64 bis 127)', CRLF,
  53.           'in der Datei gesichert werden ?', CRLF,
  54.           'Geben Sie eine Zahl von 1 bis 3 ein ->');
  55.     Taste := #0;
  56.     REPEAT
  57.       IF Taste <> #0 THEN Write(Bell);
  58.       Taste := ReadKey;
  59.       IF Taste = #0 THEN BEGIN
  60.         Taste := ReadKey;
  61.         Taste := '?'
  62.       END;
  63.     UNTIL Taste IN ['1','2','3'];
  64.     WriteLn(Taste);
  65.     CASE Taste OF
  66.       '2' : SaveEnde := 63;
  67.       '3' : Work     := 64
  68.     END;
  69.   END ELSE SaveEnde := 63;
  70.   FOR LV := Work TO SaveEnde DO BEGIN
  71.     Work := ReadCMOS(LV);
  72.     Write(Datei, Work)
  73.   END;
  74.   WriteLn('CMOS-Speicherinhalt (', FileSize(Datei),
  75.           ' Bytes) in Datei ', ParamStr(1), ' gesichert.');
  76.   Close(Datei);
  77. END.
  78. (* ------------------------------------------------------ *)
  79. (*               Ende von SAVECMOS.PAS                    *)
  80.