home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Turbo Toolbox
/
Turbo_Toolbox.iso
/
1990
/
06
/
tricks
/
compcmos.pas
< prev
next >
Wrap
Pascal/Delphi Source File
|
1990-03-08
|
4KB
|
109 lines
(* ------------------------------------------------------ *)
(* COMPCMOS.PAS *)
(* Vergleichen des CMOS-Speicherinhalts mit dem Inhalt *)
(* einer Datei *)
(* (c) 1990 Ralf Randermann & TOOLBOX *)
(* ------------------------------------------------------ *)
PROGRAM CompCMOS;
USES CMOS;
CONST
CRLF = #13#10;
Bell = #7;
FUNCTION HexByte(Wert : BYTE) : STRING;
CONST
HexZiffer : ARRAY [0..$F] OF CHAR = '0123456789ABCDEF';
BEGIN
HexByte := HexZiffer[Wert SHR 4] +
HexZiffer[Wert AND $0F];
END;
VAR
DateiSize : LongInt;
LV, Work, Fehler, CompStart : BYTE;
Datei : FILE OF BYTE;
BEGIN
WriteLn('CompCMOS Version 0.1', CRLF,
'Vergleichen des CMOS-Speicherinhalts mit dem ',
'Inhalt einer Datei');
IF ParamCount <> 1 THEN BEGIN
WriteLn('Die Datei, mit der der CMOS-Speicherinhalt ',
'verglichen werden soll, muß', CRLF,
'als Parameter angegeben werden!', Bell);
Halt;
END;
{$I-}
Assign(Datei, ParamStr(1));
Reset(Datei);
DateiSize := FileSize(Datei);
{$I+}
IF IOResult > 0 THEN BEGIN
WriteLn('Die angegebene Datei kann nicht zum Lesen ',
'geöffnet werden!', Bell);
Halt
END;
IF (DateiSize <> 50) AND (DateiSize <> 64) AND
(DateiSize <> 114) THEN BEGIN
WriteLn('In der angegebenen Datei wurde kein ',
'CMOS-Speicherinhalt mit SaveCMOS abgelegt!',
Bell);
Halt;
END;
IF CMOSSize = 0 THEN BEGIN
WriteLn('CMOS-Speicher nicht vorhanden oder nicht ',
'nach AT-Standard lesbar!', Bell);
Halt;
END;
CompStart := 14;
IF CMOSSize - 14 <> DateiSize THEN
IF DateiSize = 64 THEN
IF CMOSSize = 64 THEN BEGIN
WriteLn('Datei ', ParamStr(1), ' enthält Daten ',
'eines Expanded CMOS-Speicher!', CRLF,
'Da der Computer nur einen Standard-AT ',
'CMOS-Speicher besitzt,', CRLF,
'erfolgt kein Vergleich.');
Halt;
END ELSE CompStart := 64
ELSE
IF CMOSSize = 64 THEN
WriteLn('Unterschiedliche CMOS-Größen:', CRLF,
'Datei stammt von Computer mit Expanded ',
'CMOS-Speicher!', CRLF,
'Nur der Standard-AT CMOS-Speicher ',
'wird verglichen.')
ELSE
WriteLn('Unterschiedliche CMOS-Größen:', CRLF,
'Datei stammt von Computer ohne Expanded ',
'CMOS-Speicher!', CRLF,
'Nur der Standard-AT CMOS-Speicher ',
'wird verglichen.');
Fehler := 0;
LV := CompStart;
WHILE NOT (Eof(Datei) OR (LV > CMOSSize)) DO BEGIN
Read(Datei, Work);
IF Work <> ReadCMOS(LV) THEN BEGIN
WriteLn('Byte ', HexByte(LV), ': Computer=',
HexByte(ReadCMOS(LV)),
' Datei=', HexByte(Work));
Inc(Fehler);
END;
Inc(LV)
END;
Close(Datei);
WriteLn('CMOS-Speicherinhalt (von Byte ', CompStart,
' bis ', Pred(LV),
') mit Datei ', ParamStr(1), ' verglichen.');
IF Fehler = 0 THEN
WriteLn('Keinen Unterschied festgestellt!')
ELSE
IF Fehler = 1 THEN
WriteLn('Einen Unterschied festgestellt!')
ELSE
WriteLn(Fehler, ' Unterschiede festgestellt!');
END.
(* ------------------------------------------------------ *)
(* Ende von COMPCMOS.PAS *)