home *** CD-ROM | disk | FTP | other *** search
/ Turbo Toolbox / Turbo_Toolbox.iso / 1989 / 04 / extra / stack.pas < prev   
Encoding:
Pascal/Delphi Source File  |  1989-01-23  |  1.1 KB  |  46 lines

  1. {************************************************}
  2. {*                   STACK.PAS                  *}
  3. {*      Stack-Utilities für das Grafiksystem    *}
  4. {*             allgemeine Version               *}
  5. {*          (C) 1989 S.Szkaradnik & TOOLBOX     *}
  6. {************************************************}
  7. CONST GrafStackPtr : INTEGER = 100;
  8. VAR GrafStack : ARRAY[1..100] OF INTEGER;
  9.  
  10. PROCEDURE PushStack ( Val : INTEGER ) ;
  11. BEGIN
  12.   GrafStack[GrafStackPtr] := VAL;
  13.   GrafStackPtr := Pred(GrafStackPtr);
  14. END ;
  15.  
  16. FUNCTION PopStack : INTEGER ;
  17. BEGIN
  18.   GrafStackPtr := Succ(GrafStackPtr);
  19.   PopStack := GrafStack[GrafStackPtr];
  20. END ;
  21.  
  22. FUNCTION PickStack : INTEGER ;
  23. VAR Res1,Res2 : INTEGER ;
  24. BEGIN
  25.   Res1 := PopStack;
  26.   Res2 := PopStack;
  27.   PushStack(Res2);
  28.   PushStack(Res2);
  29.   PickStack := Res1;
  30. END ;
  31.  
  32. CONST HeapStackPtr : INTEGER = 100;
  33. VAR HeapStack : ARRAY[1..100] OF INTEGER;
  34.  
  35. PROCEDURE PushHeap ( Word : INTEGER ) ;
  36. BEGIN
  37.   HeapStack[HeapStackPtr] := Word;
  38.   HeapStackPtr := Pred(HeapStackPtr) ;
  39. END ;
  40.  
  41. FUNCTION PopHeap : INTEGER ;
  42. BEGIN
  43.   HeapStackPtr := Succ(HeapStackPtr);
  44.   PopHeap := HeapStack[HeapStackPtr];
  45. END ;
  46.