home *** CD-ROM | disk | FTP | other *** search
/ Turbo Toolbox / Turbo_Toolbox.iso / dtx9101 / modula / popup.mod < prev    next >
Encoding:
Text File  |  1991-09-23  |  2.5 KB  |  83 lines

  1. (*========================================================*)
  2. (*                      PopUp.MOD                         *)
  3. (*           (C) 1991 P. Engels & DOS-toolbox             *)
  4. (*--------------------------------------------------------*)
  5. (* Compiler:       Topspeed Modula-2 V. 2.XX              *)
  6. (* Speichermodell: Small                                  *)
  7. (* Linker-Option:  Pack Segment ON                        *)
  8. (*========================================================*)
  9.  
  10. MODULE PopUp;
  11.  
  12. (* call (seg_name => null), data (seg_name => null) *)
  13.  
  14. (* Stack und Heap möglichst klein *)
  15. (*# data (stack_size => 3000,
  16.          heap_size => 8000,
  17.          ss_in_dgroup => on) *)
  18.  
  19. (*die Option (ss_in_dgroup => off) klammert den Stack aus!*)
  20.  
  21. FROM Lib    IMPORT Intr, DisableBreakCheck;
  22. FROM Window IMPORT Clear, WinType, WinDef, Open, Close,
  23.                    Color, TitleMode, SetTitle, DoubleFrame,
  24.                    FullScreen;
  25. FROM TSR    IMPORT MakeResident;
  26. IMPORT BiosIO;
  27. FROM SYSTEM IMPORT Registers;
  28. FROM IO     IMPORT WrStr;
  29. FROM Lib    IMPORT FarWordMove,Intr;
  30.  
  31.   PROCEDURE TSRProc; (* TSR - Prozedur *)
  32.   VAR 
  33.     win   : WinType;
  34.     wd    : WinDef;
  35.     ch    : CHAR;
  36.     r     : Registers;
  37.     Screen: FarADDRESS;
  38.     Dummy : FarADDRESS;
  39.   BEGIN
  40.     Screen := [0B800H : 0]; (* Farbe    *)
  41. (*  Screen := [0B000H : 0]; (* Hercules *) *)
  42.     Dummy := [Seg(FullScreen^.Buffer^) :
  43.               Ofs(FullScreen^.Buffer^)];
  44.     r.AH := 0FH;
  45.     Intr (r, 10H); (* Bildschirmseite *)
  46.     r.AH := 3;
  47.     Intr (r, 10H); (* CursorPosition *)
  48.     FullScreen^.CurrentX := CARDINAL(r.DL) + 1;
  49.     FullScreen^.CurrentY := CARDINAL(r.DH) + 1;
  50.     FarWordMove(Screen, Dummy, 80 * 25);
  51.                 (* Bildschirm sichern *)
  52.     WITH wd DO
  53.       X1 := 30;
  54.       X2 := 50;
  55.       Y1 := 10;
  56.       Y2 := 12;
  57.       Hidden   := FALSE;
  58.       CursorOn := TRUE;
  59.       FrameOn  := TRUE;
  60.       FrameDef := DoubleFrame;
  61.       WrapOn   := FALSE;
  62.       Foreground := White;
  63.       Background := Black;
  64.       FrameFore  := White;
  65.       FrameBack  := LightGray
  66.     END;
  67.     win := Open(wd);
  68.     SetTitle(win, ' Press Esc ', RightLowerTitle);
  69.     WrStr(' Nur ein Test ');
  70.     REPEAT
  71.       ch := BiosIO.RdKey();
  72.     UNTIL ch = CHR(27);
  73.     Close(win)
  74.   END TSRProc;
  75.  
  76. BEGIN
  77.   DisableBreakCheck;
  78.   MakeResident(TSRProc, 6800H) (* ALT-F1 *)
  79. END PopUp.
  80.  
  81. (*========================================================*)
  82. (*                 Ende von PopUp.MOD                     *)
  83.