home *** CD-ROM | disk | FTP | other *** search
/ Turbo Toolbox / Turbo_Toolbox.iso / 1990 / 04 / algorith / utility.pas < prev    next >
Pascal/Delphi Source File  |  1989-12-28  |  2KB  |  86 lines

  1. (*--------------------------------------------------------*)
  2. (*                      UTILITY.PAS                       *)
  3. (*                Nützliche Hilfsroutinen                 *)
  4. (*           Turbo Pascal Versionen 4.0 und 5.x           *)
  5. (*    Copyright (c) 1989  Karsten Gieselmann & TOOLBOX    *)
  6. (*--------------------------------------------------------*)
  7.  
  8. {$R-,S-}    (* Keine Bereichs- oder Stacküberlauf-Prüfung *)
  9.  
  10. UNIT Utility;
  11.  
  12. INTERFACE
  13.  
  14. FUNCTION HexB(B : BYTE) : STRING;
  15.   (* Darstellung eines Dezimalbyte als Hexadezimal-String *)
  16.  
  17. FUNCTION HexW(W : WORD) : STRING;
  18.   (* Darstellung eines Dezimalwort als Hexadezimal-String *)
  19.  
  20. FUNCTION VersionStr(Major, Minor : BYTE) : STRING;
  21.   (* liefert Major.Minor-Versionsnummer als Zeichenkette  *)
  22.  
  23. PROCEDURE StartUp(Message : STRING);
  24.   (* Ausgabe von Startmeldung/Copyright zu Programmanfang *)
  25.  
  26. PROCEDURE FatalError(Message : STRING);
  27.   (* Ausgabe einer Fehlermeldung und Programmabbruch      *)
  28.  
  29. (* ------------------------------------------------------ *)
  30.  
  31. IMPLEMENTATION
  32.  
  33. CONST
  34.   Digits : ARRAY[0..15] OF CHAR = '0123456789ABCDEF';
  35.  
  36. FUNCTION HexB(B : BYTE) : STRING;
  37. VAR
  38.   S : String[2];
  39. BEGIN
  40.   S[0] := #2;
  41.   S[1] := Digits[B SHR $04];
  42.   S[2] := Digits[B AND $0F];
  43.   HexB := S;
  44. END;
  45.  
  46. FUNCTION HexW(W : WORD) : STRING;
  47. VAR
  48.   S : String[4];
  49. BEGIN
  50.   S[0] := #4;
  51.   S[1] := Digits[Hi(W) SHR $04];
  52.   S[2] := Digits[Hi(W) AND $0F];
  53.   S[3] := Digits[Lo(W) SHR $04];
  54.   S[4] := Digits[Lo(W) AND $0F];
  55.   HexW := S;
  56. END;
  57.  
  58. FUNCTION VersionStr(Major, Minor : BYTE) : STRING;
  59. VAR
  60.   Hi, Lo : STRING[3];
  61. BEGIN
  62.   Str(Major, Hi); Str(Minor, Lo);
  63.   IF Minor < 10 THEN
  64.     VersionStr := Hi+'.0'+Lo
  65.   ELSE
  66.     VersionStr := Hi+'.'+Lo;
  67. END;
  68.  
  69. PROCEDURE StartUp(Message : STRING);
  70. BEGIN
  71.   WriteLn;
  72.   WriteLn(Message);
  73.   WriteLn('Copyright (c) 1989  K.Gieselmann & Toolbox');
  74.   WriteLn;
  75. END;
  76.  
  77. PROCEDURE FatalError(Message : STRING);
  78. BEGIN
  79.   WriteLn(Message);
  80.   Halt(255);
  81. END;
  82.  
  83. END.
  84. (* ------------------------------------------------------ *)
  85. (*                 Ende von UTILITY.PAS                   *)
  86.