diff --git a/api/go32v2/video.inc b/api/go32v2/video.inc index 74685315df..1db690a439 100644 --- a/api/go32v2/video.inc +++ b/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 -} +} \ No newline at end of file diff --git a/api/inc/video.pas b/api/inc/video.pas index 043aee91fe..a01db72f3d 100644 --- a/api/inc/video.pas +++ b/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 } \ No newline at end of file diff --git a/api/linux/keyboard.inc b/api/linux/keyboard.inc index f94ff1a93c..be94da2e37 100644 --- a/api/linux/keyboard.inc +++ b/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 - -} + +} \ No newline at end of file diff --git a/api/linux/video.inc b/api/linux/video.inc index 2278cef649..f92c200fa3 100644 --- a/api/linux/video.inc +++ b/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 - + } diff --git a/api/os2/video.inc b/api/os2/video.inc index 8c4b4272f4..61f0299195 100644 --- a/api/os2/video.inc +++ b/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 diff --git a/api/tp/video.inc b/api/tp/video.inc index a853f4316d..ce34d65306 100644 --- a/api/tp/video.inc +++ b/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 - + } diff --git a/api/win32/video.inc b/api/win32/video.inc index 5285b5e934..631f8a41e7 100644 --- a/api/win32/video.inc +++ b/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 - + }