Browse Source

Add TargetEntry and TargetExit (merged)

pierre 25 years ago
parent
commit
dc1bba3973
7 changed files with 95 additions and 89 deletions
  1. 14 2
      api/go32v2/video.inc
  2. 9 70
      api/inc/video.pas
  3. 7 7
      api/linux/keyboard.inc
  4. 24 5
      api/linux/video.inc
  5. 13 1
      api/os2/video.inc
  6. 14 2
      api/tp/video.inc
  7. 14 2
      api/win32/video.inc

+ 14 - 2
api/go32v2/video.inc

@@ -10,6 +10,15 @@ uses
   mouse,
   go32;
 
+
+procedure TargetEntry;
+begin
+end;
+
+procedure TargetExit;
+begin
+end;
+
 var
   OldVideoBuf : PVideoBuf;
 
@@ -293,10 +302,13 @@ end;
 
 {
   $Log$
-  Revision 1.3  2000-08-16 18:51:57  peter
+  Revision 1.4  2000-10-04 11:53:31  pierre
+   Add TargetEntry and TargetExit (merged)
+
+  Revision 1.3  2000/08/16 18:51:57  peter
     * Fixes from Gabor (merged)
 
   Revision 1.2  2000/07/13 11:32:24  michael
   + removed logs
 
-}
+}

+ 9 - 70
api/inc/video.pas

@@ -157,6 +157,8 @@ var
 implementation
 
 { Include system dependent part }
+{ must declare TargetEntry and TargetExit procedures
+  which can be empty of course }
 {$i video.inc}
 
 procedure GetVideoMode(var Mode: TVideoMode);
@@ -202,11 +204,13 @@ end;
 
 var
   OldExitProc : pointer;
+
 procedure UnRegisterVideoModes;{$ifdef PPC_BP}far;{$endif}
 var
   P: PVideoModeList;
 begin
   ExitProc:=OldExitProc;
+  TargetExit;
   while assigned(modes) do
    begin
      p:=modes;
@@ -218,84 +222,19 @@ end;
 
 begin
   RegisterVideoModes;
+  TargetEntry;
   OldExitProc:=ExitProc;
   ExitProc:=@UnRegisterVideoModes;
 end.
 {
   $Log$
-  Revision 1.2  2000-09-24 19:52:21  hajny
+  Revision 1.3  2000-10-04 11:53:31  pierre
+   Add TargetEntry and TargetExit (merged)
+
+  Revision 1.2  2000/09/24 19:52:21  hajny
     * max TVideoBuf size extended
 
   Revision 1.1  2000/07/13 06:29:39  michael
   + Initial import
 
-  Revision 1.3  2000/02/29 11:43:16  pierre
-    Common renamed APIComm to avoid problems with free vision
-
-  Revision 1.2  2000/02/06 14:28:19  florian
-    * mouse support for vesa resolutions under go32v2, needs currently the define
-      custommouse
-
-  Revision 1.1  2000/01/06 01:20:31  peter
-    * moved out of packages/ back to topdir
-
-  Revision 1.1  1999/12/23 19:36:47  peter
-    * place unitfiles in target dirs
-
-  Revision 1.1  1999/11/24 23:36:37  peter
-    * moved to packages dir
-
-  Revision 1.9  1999/03/14 22:15:48  florian
-    * my last changes doesn't work correctly, fixed more
-      the screen height calculation works incorrect in 80x50 mode
-
-  Revision 1.8  1999/03/14 17:43:00  florian
-    + 80x50 mode support added
-    * some bugs in VESA mode support removed
-
-  Revision 1.7  1999/03/13 17:34:01  florian
-    * again SetVideoMode fixed
-
-  Revision 1.6  1999/03/13 17:30:47  florian
-    * endless loop in SetVideoMode fixed
-
-  Revision 1.5  1999/02/22 12:46:15  peter
-    + lowascii boolean if ascii < #32 is handled correctly
-
-  Revision 1.4  1998/12/23 22:41:08  peter
-    + color consts
-
-  Revision 1.3  1998/12/11 00:13:18  peter
-    + SetMouseXY
-    * use far for exitproc procedure
-
-  Revision 1.2  1998/12/08 10:09:56  peter
-    * unregister videomodes at the end
-
-  Revision 1.1  1998/12/04 12:48:24  peter
-    * moved some dirs
-
-  Revision 1.14  1998/11/01 20:29:10  peter
-    + lockupdatescreen counter to not let updatescreen() update
-
-  Revision 1.13  1998/10/28 21:18:23  peter
-    * more fixes
-
-  Revision 1.12  1998/10/28 00:02:07  peter
-    + mouse
-    + video.clearscreen, video.videobufsize
-
-  Revision 1.11  1998/10/27 11:24:20  peter
-    * fixed the log
-
-
-   Date       Version   Who       Comments
-   07/06/97   0.1       bazsi     Initial implementation
-                                  Console mode (Linux) ready
-   07/28/97   0.2       bazsi     Linux on foreign terminals ready
-   08/27/97   0.3       bazsi     Noone else did it, so I did it: DOS support
-                                  (I had to boot DOS... ;-(
-                                  Mode-switching implemented
-   07/28/97   0.3.1     bazsi     added support for terminfo. remote terminal
-                                  support is broken now
 }

+ 7 - 7
api/linux/keyboard.inc

@@ -23,10 +23,7 @@ Begin
      Tio.c_lflag:=Tio.c_lflag and (not (ECHO or ECHONL or ICANON or ISIG or IEXTEN));
    end
   else
-   begin
-     Tio.c_iflag:=OldIO.c_iflag;
-     Tio.c_lflag:=OldIO.c_lflag;
-   end;
+    Tio := OldIO;
   TCSetAttr(1,TCSANOW,Tio);
 End;
 
@@ -576,7 +573,10 @@ end;
 
 {
   $Log$
-  Revision 1.2  2000-07-13 11:32:25  michael
+  Revision 1.3  2000-10-04 11:53:31  pierre
+   Add TargetEntry and TargetExit (merged)
+
+  Revision 1.2  2000/07/13 11:32:25  michael
   + removed logs
- 
-}
+
+}

+ 24 - 5
api/linux/video.inc

@@ -300,7 +300,7 @@ begin
 end;
 
 var
-  preInitVideoTio, postInitVideoTio: linux.termios;
+  InitialVideoTio, preInitVideoTio, postInitVideoTio: linux.termios;
   inputRaw, outputRaw: boolean;
 
 procedure saveRawSettings(const tio: linux.termios);
@@ -338,6 +338,16 @@ begin
   TCSetAttr(1,TCSANOW,tio);
 end;
 
+procedure TargetEntry;
+begin
+  TCGetAttr(1,InitialVideoTio);
+end;
+
+procedure TargetExit;
+begin
+  TCSetAttr(1,TCSANOW,InitialVideoTio);
+end;
+
 procedure prepareInitVideo;
 begin
   TCGetAttr(1,preInitVideoTio);
@@ -437,7 +447,9 @@ begin
         SendEscapeSeqNdx(cursor_visible);
         SendEscapeSeqNdx(enter_ca_mode);
         SetCursorType(crUnderLine);
-      end;
+      end
+     else if not assigned(cur_term) then
+       setupterm(nil, stdout, err);
      ClearScreen;
 {$ifdef logging}
      assign(f,'video.log');
@@ -471,7 +483,11 @@ begin
   FreeMem(OldVideoBuf,VideoBufSize);
   VideoBufSize:=0;
   doneVideoDone;
-  del_curterm(cur_term);
+  if assigned(cur_term) then
+    begin
+      del_curterm(cur_term);
+      cur_term := nil;
+    end;
 {$ifdef logging}
   close(f);
 {$endif logging}
@@ -589,7 +605,10 @@ end;
 
 {
   $Log$
-  Revision 1.4  2000-09-26 08:18:29  jonas
+  Revision 1.5  2000-10-04 11:53:31  pierre
+   Add TargetEntry and TargetExit (merged)
+
+  Revision 1.4  2000/09/26 08:18:29  jonas
     + added preserving of rawness of terminal when going though
       init/donevideo
     * del_term() is now called in donevideo
@@ -609,5 +628,5 @@ end;
 
   Revision 1.2  2000/07/13 11:32:25  michael
   + removed logs
- 
+
 }

+ 13 - 1
api/os2/video.inc

@@ -2,6 +2,7 @@
   System independent low-level video interface for OS/2
 
   $Id$
+
 }
 
 uses
@@ -38,6 +39,14 @@ var OrigCurType: TVioCursorInfo;
     OrigCurCol: word;
     CellHeight: byte;
 
+procedure TargetEntry;
+begin
+end;
+
+procedure TargetExit;
+begin
+end;
+
 
 procedure CheckCellHeight;
 
@@ -365,7 +374,10 @@ end;
 {
 
   $Log$
-  Revision 1.4  2000-09-26 18:15:29  hajny
+  Revision 1.5  2000-10-04 11:53:31  pierre
+   Add TargetEntry and TargetExit (merged)
+
+  Revision 1.4  2000/09/26 18:15:29  hajny
     + working with VP/2 already (not FPC yet)!video.inc
 
   Revision 1.3  2000/09/24 19:53:03  hajny

+ 14 - 2
api/tp/video.inc

@@ -7,6 +7,15 @@
 { use a buffer, just like linux,go32v2 }
 {$define use_buf}
 
+
+procedure TargetEntry;
+begin
+end;
+
+procedure TargetExit;
+begin
+end;
+
 var
   VideoSeg    : word;
   OldVideoBuf : PVideoBuf;
@@ -212,7 +221,10 @@ end;
 
 {
   $Log$
-  Revision 1.2  2000-07-13 11:32:27  michael
+  Revision 1.3  2000-10-04 11:53:32  pierre
+   Add TargetEntry and TargetExit (merged)
+
+  Revision 1.2  2000/07/13 11:32:27  michael
   + removed logs
- 
+
 }

+ 14 - 2
api/win32/video.inc

@@ -338,9 +338,21 @@ begin
   RegisterVideoMode(80, 25, True, @DefaultVideoModeSelector, $00000003);
 end;
 
+procedure TargetEntry;
+begin
+end;
+
+procedure TargetExit;
+begin
+end;
+
+
 {
   $Log$
-  Revision 1.2  2000-07-13 11:32:27  michael
+  Revision 1.3  2000-10-04 11:53:32  pierre
+   Add TargetEntry and TargetExit (merged)
+
+  Revision 1.2  2000/07/13 11:32:27  michael
   + removed logs
- 
+
 }