home *** CD-ROM | disk | FTP | other *** search
/ Turbo Toolbox / Turbo_Toolbox.iso / 1991 / 05 / tricks / tstack.mod < prev    next >
Encoding:
Text File  |  1991-01-08  |  1.8 KB  |  54 lines

  1. (* ------------------------------------------------------ *)
  2. (*                     TSTACK.MOD                         *)
  3. (*               Testen des Moduls 'Stack'                *)
  4. (*          (C) 1991 Dieter Kreimann & TOOLBOX            *)
  5. (*--------------------------------------------------------*)
  6. MODULE TStack;
  7.  
  8. FROM SYSTEM    IMPORT ADR;
  9. FROM InOut     IMPORT WriteString, WriteLn, WriteHex;
  10. FROM RealInOut IMPORT WriteReal;
  11. FROM Strings   IMPORT Length;
  12.  
  13. IMPORT Stack;
  14.  
  15. VAR
  16.   testStack   : Stack.tStack;
  17.   str         : ARRAY [0..29] OF CHAR;
  18.   size, piHex : CARDINAL;
  19.   pi          : REAL;
  20.  
  21. BEGIN
  22.   Stack.Create(testStack);
  23.   pi := 3.1416;
  24.   WriteString('Real in den Stack: ');
  25.   WriteReal(pi, 12);   WriteLn();
  26.   Stack.Push(testStack, SIZE(REAL), ADR(pi));
  27.   str := 'Das begnadete HALLO WELT';
  28.   WriteString('String in den Stack: ');
  29.   WriteString(str); WriteLn();
  30.   Stack.Push(testStack, Length(str), ADR(str));
  31.   (* Damit's auch wirklich vom Stack ist: *)
  32.   pi := 0.0;  str := '';
  33.   WriteString('Nachschauen: ');
  34.   Stack.Peep(testStack, size, ADR(str));
  35.   (* Wg. Typ ARRAY OF CHAR: *)
  36.   IF size <= HIGH(str) THEN str[size] := 0C END;
  37.   WriteString(str); WriteLn();
  38.   str := '';
  39.   WriteString('String vom Stack: ');
  40.   Stack.Pop(testStack, size, ADR(str));
  41.   (* Wg. Typ ARRAY OF CHAR: *)
  42.   IF size <= HIGH(str) THEN str[size] := 0C END;
  43.   WriteString(str); WriteLn();
  44.   WriteString('Type Casting REAL-HEXCARD: ');
  45.   Stack.Peep(testStack, size, ADR(piHex));
  46.   WriteHex(piHex, 4); WriteLn();
  47.   WriteString('Real vom Stack: ');
  48.   Stack.Pop(testStack, size, ADR(pi));
  49.   WriteReal(pi, 12);
  50.   Stack.Delete(testStack);
  51. END TStack.
  52. (* ------------------------------------------------------ *)
  53. (*                  Ende von TSTACK.MOD                   *)
  54.