Browse Source

* new version (2.07) of ncrt and associated files committed

Jonas Maebe 25 years ago
parent
commit
36f8ca87d0
4 changed files with 1401 additions and 1303 deletions
  1. 14 0
      packages/ncurses/ncrt.inc
  2. 1 0
      packages/ncurses/ncrt.pp
  3. 1362 1303
      packages/ncurses/ncurses.pp
  4. 24 0
      packages/ncurses/ocrt.pp

+ 14 - 0
packages/ncurses/ncrt.inc

@@ -32,6 +32,10 @@
   2.06 | 01/11/00 | kjw | 1) Oops! 2.04 change went back to stdscr vs. ActiveWn.
                         | Keypressed works correctly with windows again.
                         | 2) ClrEol works correctly now with color.
+  2.07 | 01/31/00 | kjw | 1) Added NCRT_VERSION constants.
+                        | 2) Added prev_textattr to detect a change in
+                        | TextAttr value so current color gets updated.
+                        | 3) See ocrt.pp
 ------------------------------------------------------------------------------
 }
 
@@ -59,6 +63,11 @@ Procedure Window(x,y,x1,y1 : integer);
 
 Const
 
+   NCRT_VERSION_MAJOR = 2;
+   NCRT_VERSION_MINOR = 7;
+   NCRT_VERSION_PATCH = 0;
+   NCRT_VERSION = '2.07.00';
+
  { CRT modes }
    BW40          = 0;            { 40x25 B/W on Color Adapter }
    CO40          = 1;            { 40x25 Color on Color Adapter }
@@ -165,6 +174,7 @@ Var
    MaxRows,                           { set at startup to terminal values }
    MaxCols : longint;                 { for columns and rows }
    tios : TermIOS;                    { saves the term settings at startup }
+   prev_textattr : integer;           { detect change in TextAttr }
 
 {==========================================================================
    This code chunk is from the FPC source tree in rtl/inc/textrec.inc.
@@ -335,6 +345,7 @@ End;
 Procedure nWinColor(win : pWindow; att : integer);
 Begin
    wattr_set(win,CursesAtts(att));
+   prev_textattr := att;
 End;
 
 { clear the specified window }
@@ -523,6 +534,8 @@ End;
 { write a string to a window at the current cursor position }
 Procedure nWrite(win : pWindow; s : string);
 Begin
+   If TextAttr <> prev_textattr Then
+      nWinColor(win,TextAttr);
    waddstr(win,StrPCopy(ps,s));
    If doRefresh Then wrefresh(win);
 End;
@@ -742,6 +755,7 @@ End;
 function  Keypressed : boolean;
 var
    l : longint;
+   fd : fdSet;
 Begin
    Keypressed := FALSE;
    nodelay(ActiveWn,bool(TRUE));

+ 1 - 0
packages/ncurses/ncrt.pp

@@ -24,6 +24,7 @@ Unit nCrt;
   2.04 | 01/04/00 | kjw | See ncrt.inc
   2.05 | 01/06/00 | kjw | See ncrt.inc, ocrt.pp
   2.06 | 01/11/00 | kjw | See ncrt.inc.
+  2.07 | 01/31/00 | kjw | See ncrt.inc, ocrt.pp
 ------------------------------------------------------------------------------
 }
 Interface

+ 1362 - 1303
packages/ncurses/ncurses.pp

@@ -1,10 +1,9 @@
-{
-    $Id$
+unit ncurses;
+
+{   Unit to access the ncurses library
     Copyright (c) 1998 by Michael Van Canneyt
     member of the Free Pascal development team
 
-    Unit to access the ncurses library
-
     See the file COPYING.FPC included in this distribution,
     for details about the copyright.
 
@@ -13,38 +12,52 @@
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 
  **********************************************************************}
-
 {
-  Many thanks to Ken Wright for his patches !
+  Many thanks to Ken Wright for his patches !!
 }
-unit ncurses;
-interface
+  interface
 
-{$packrecords C}
+{$packrecords 4}
 {$linklib ncurses}
 {$linklib c}
 
-{ Manually Added types }
-Type
-  Bool = byte;
-  PINTEGER = ^Longint;
-  PLongint = ^ longint;
-  PFILE = pointer;
-
-const
-  NCURSES_VERSION_MAJOR = 5;
-  NCURSES_VERSION_MINOR = 0;
-  NCURSES_VERSION_PATCH = 19991023;
-  NCURSES_VERSION = '5.0';
-
-type
-  chtype  = longint;
-  pchtype = pchar;
-
-const
-  CXX_BUILTIN_BOOL = 1;
-type
-  CXX_TYPE_OF_BOOL = char;
+   { Manually Added types }
+   Type
+
+   Bool = byte;
+   PINTEGER = ^Longint;
+   PLongint = ^ longint;
+   PFILE = pointer;
+
+    const
+       NCURSES_VERSION_MAJOR = 3;
+       NCURSES_VERSION_MINOR = 0;
+       NCURSES_VERSION_PATCH = 980228;
+       NCURSES_VERSION = '3.0';
+    {
+    #ifdef NCURSES_NOMACROS
+    #define NCURSES_ATTR_T attr_t
+    #endif
+
+    #ifndef NCURSES_ATTR_T
+    #define NCURSES_ATTR_T int
+    #endif
+
+    #ifndef NCURSES_CONST
+    #define NCURSES_CONST
+    #endif
+    }
+
+    type
+
+       chtype = longint;
+       pchtype = pchar;
+
+    const
+       CXX_BUILTIN_BOOL = 1;
+    type
+
+       CXX_TYPE_OF_BOOL = char;
 
 Var
     COLORS : longint;external name 'COLORS';
@@ -78,8 +91,8 @@ Var
     function ACS_HLINE : chtype;
     function ACS_VLINE : chtype;
     function ACS_PLUS : chtype;
-    function ACS_S1      : chtype;
-    function ACS_S9      : chtype;
+    function ACS_S1	 : chtype;
+    function ACS_S9	 : chtype;
     function ACS_DIAMOND : chtype;
     function ACS_CKBOARD : chtype;
     function ACS_DEGREE : chtype;
@@ -92,11 +105,11 @@ Var
     function ACS_BOARD : chtype;
     function ACS_LANTERN : chtype;
     function ACS_BLOCK : chtype;
-    function ACS_S3      : chtype;
-    function ACS_S7      : chtype;
+    function ACS_S3	 : chtype;
+    function ACS_S7	 : chtype;
     function ACS_LEQUAL : chtype;
     function ACS_GEQUAL : chtype;
-    function ACS_PI      : chtype;
+    function ACS_PI	 : chtype;
     function ACS_NEQUAL : chtype;
     function ACS_STERLING : chtype;
     {
@@ -106,17 +119,17 @@ Var
        here only uses B and S.
      }
     {
-    #define ACS_BSSB    ACS_ULCORNER
-    #define ACS_SSBB    ACS_LLCORNER
-    #define ACS_BBSS    ACS_URCORNER
-    #define ACS_SBBS    ACS_LRCORNER
-    #define ACS_SBSS    ACS_RTEE
-    #define ACS_SSSB    ACS_LTEE
-    #define ACS_SSBS    ACS_BTEE
-    #define ACS_BSSS    ACS_TTEE
-    #define ACS_BSBS    ACS_HLINE
-    #define ACS_SBSB    ACS_VLINE
-    #define ACS_SSSS    ACS_PLUS
+    #define ACS_BSSB	ACS_ULCORNER
+    #define ACS_SSBB	ACS_LLCORNER
+    #define ACS_BBSS	ACS_URCORNER
+    #define ACS_SBBS	ACS_LRCORNER
+    #define ACS_SBSS	ACS_RTEE
+    #define ACS_SSSB	ACS_LTEE
+    #define ACS_SSBS	ACS_BTEE
+    #define ACS_BSSS	ACS_TTEE
+    #define ACS_BSBS	ACS_HLINE
+    #define ACS_SBSB	ACS_VLINE
+    #define ACS_SSSS	ACS_PLUS
     }
     Const
        ERR = -(1);
@@ -202,223 +215,223 @@ Var
        COLS    : longint;external name 'COLS';
        TABSIZE : longint;external name 'TABSIZE';
 
-    Function define_key(_para1:pchar; _para2:longint):longint; cdecl;external;
-    Function keyok(_para1:longint; _para2:bool):longint; cdecl;external;
-    Function resizeterm(_para1:longint; _para2:longint):longint; cdecl;external;
-    Function use_default_colors:longint; cdecl;external;
-    Function wresize(_para1:pWINDOW; _para2:longint; _para3:longint):longint; cdecl;external;
+    Function define_key(_para1:pchar; _para2:longint):longint; cdecl;
+    Function keyok(_para1:longint; _para2:bool):longint; cdecl;
+    Function resizeterm(_para1:longint; _para2:longint):longint; cdecl;
+    Function use_default_colors:longint; cdecl;
+    Function wresize(_para1:pWINDOW; _para2:longint; _para3:longint):longint; cdecl;
     {
-    extern char ttytype[];
+    extern char ttytype[];		
     }
-    Function baudrate:longint; cdecl;external;
-    Function beep:longint; cdecl;external;
-    Function can_change_color:bool; cdecl;external;
-    Function cbreak:longint; cdecl;external;
-    Function clearok(_para1:pWINDOW; _para2:bool):longint; cdecl;external;
-    Function color_content(_para1:longint; _para2:plongint; _para3:plongint; _para4:plongint):longint; cdecl;external;
+    Function baudrate:longint; cdecl;
+    Function beep:longint; cdecl;
+    Function can_change_color:bool; cdecl;
+    Function cbreak:longint; cdecl;
+    Function clearok(_para1:pWINDOW; _para2:bool):longint; cdecl;
+    Function color_content(_para1:longint; _para2:plongint; _para3:plongint; _para4:plongint):longint; cdecl;
 
     Function copywin(_para1:pWINDOW; _para2:pWINDOW; _para3:longint; _para4:longint; _para5:longint;
-               _para6:longint; _para7:longint; _para8:longint; _para9:longint):longint;cdecl;external;
-    Function curs_set(_para1:longint):longint; cdecl;external;
-    Function def_prog_mode:longint; cdecl;external;
-    Function def_shell_mode:longint; cdecl;external;
-    Function delay_output(_para1:longint):longint; cdecl;external;
-    procedure delscreen(_para1:pSCREEN);cdecl;external;
-    Function delwin(_para1:pWINDOW):longint; cdecl;external;
-
-    Function doupdate:longint; cdecl;external;
-
-    Function echo:longint; cdecl;external;
-    Function endwin:longint; cdecl;external;
-    Function erasechar:char; cdecl;external;
-    procedure filter;cdecl;external;
-    Function flash:longint; cdecl;external;
-    Function flushinp:longint; cdecl;external;
-
-    Function halfdelay(_para1:longint):longint; cdecl;external;
-    Function has_colors:bool; cdecl;external;
-    Function has_ic:longint; cdecl;external;
-    Function has_il:longint; cdecl;external;
-    procedure idcok(_para1:pWINDOW; _para2:bool);cdecl;external;
-    Function idlok(_para1:pWINDOW; _para2:bool):longint; cdecl;external;
-    procedure immedok(_para1:pWINDOW; _para2:bool);cdecl;external;
-
-    Function init_color(_para1:longint; _para2:longint; _para3:longint; _para4:longint):longint; cdecl;external;
-    Function init_pair(_para1:longint; _para2:longint; _para3:longint):longint; cdecl;external;
-    Function intrflush(_para1:pWINDOW; _para2:bool):longint; cdecl;external;
-    Function isendwin:longint; cdecl;external;
-    Function is_linetouched(_para1:pWINDOW; _para2:longint):longint; cdecl;external;
-    Function is_wintouched(_para1:pWINDOW):longint; cdecl;external;
-
-
-    Function keypad(_para1:pWINDOW; _para2:bool):longint; cdecl;external;
-    Function killchar:char; cdecl;external;
-    Function leaveok(_para1:pWINDOW; _para2:bool):longint; cdecl;external;
-
-    Function meta(_para1:pWINDOW; _para2:bool):longint; cdecl;external;
-    Function mvcur(_para1:longint; _para2:longint; _para3:longint; _para4:longint):longint; cdecl;external;
-    Function mvderwin(_para1:pWINDOW; _para2:longint; _para3:longint):longint; cdecl;external;
+               _para6:longint; _para7:longint; _para8:longint; _para9:longint):longint;cdecl;
+    Function curs_set(_para1:longint):longint; cdecl;
+    Function def_prog_mode:longint; cdecl;
+    Function def_shell_mode:longint; cdecl;
+    Function delay_output(_para1:longint):longint; cdecl;
+    procedure delscreen(_para1:pSCREEN);cdecl;
+    Function delwin(_para1:pWINDOW):longint; cdecl;
+
+    Function doupdate:longint; cdecl;
+
+    Function echo:longint; cdecl;
+    Function endwin:longint; cdecl;
+    Function erasechar:char; cdecl;
+    procedure filter;cdecl;
+    Function flash:longint; cdecl;
+    Function flushinp:longint; cdecl;
+
+    Function halfdelay(_para1:longint):longint; cdecl;
+    Function has_colors:bool; cdecl;
+    Function has_ic:longint; cdecl;
+    Function has_il:longint; cdecl;
+    procedure idcok(_para1:pWINDOW; _para2:bool);cdecl;
+    Function idlok(_para1:pWINDOW; _para2:bool):longint; cdecl;
+    procedure immedok(_para1:pWINDOW; _para2:bool);cdecl;
+
+    Function init_color(_para1:longint; _para2:longint; _para3:longint; _para4:longint):longint; cdecl;
+    Function init_pair(_para1:longint; _para2:longint; _para3:longint):longint; cdecl;
+    Function intrflush(_para1:pWINDOW; _para2:bool):longint; cdecl;
+    Function isendwin:longint; cdecl;
+    Function is_linetouched(_para1:pWINDOW; _para2:longint):longint; cdecl;
+    Function is_wintouched(_para1:pWINDOW):longint; cdecl;
+
+
+    Function keypad(_para1:pWINDOW; _para2:bool):longint; cdecl;
+    Function killchar:char; cdecl;
+    Function leaveok(_para1:pWINDOW; _para2:bool):longint; cdecl;
+
+    Function meta(_para1:pWINDOW; _para2:bool):longint; cdecl;
+    Function mvcur(_para1:longint; _para2:longint; _para3:longint; _para4:longint):longint; cdecl;
+    Function mvderwin(_para1:pWINDOW; _para2:longint; _para3:longint):longint; cdecl;
     {
-    extern int mvprintw(int,int,const char  ,...)
-                GCC_PRINTFLIKE(3,4);
-    extern int mvscanw(int,int,const char  ,...)
-                GCC_SCANFLIKE(3,4);
+    extern int mvprintw(int,int,const char  ,...)		
+    		GCC_PRINTFLIKE(3,4);
+    extern int mvscanw(int,int,const char  ,...)		
+    		GCC_SCANFLIKE(3,4);
     }
-    Function mvwin(_para1:pWINDOW; _para2:longint; _para3:longint):longint; cdecl;external;
+    Function mvwin(_para1:pWINDOW; _para2:longint; _para3:longint):longint; cdecl;
     {
-    extern int mvwprintw(WINDOW ,int,int,const char  ,...)
-                GCC_PRINTFLIKE(4,5);
-    extern int mvwscanw(WINDOW  ,int,int,const char  ,...)
-                GCC_SCANFLIKE(4,5);
+    extern int mvwprintw(WINDOW ,int,int,const char  ,...)	
+    		GCC_PRINTFLIKE(4,5);
+    extern int mvwscanw(WINDOW  ,int,int,const char  ,...)	
+    		GCC_SCANFLIKE(4,5);
     }
-    Function napms(_para1:longint):longint; cdecl;external;
+    Function napms(_para1:longint):longint; cdecl;
 
-    Function nl:longint; cdecl;external;
-    Function nocbreak:longint; cdecl;external;
-    Function nodelay(_para1:pWINDOW; _para2:bool):longint; cdecl;external;
-    Function noecho:longint; cdecl;external;
-    Function nonl:longint; cdecl;external;
-    Function noqiflush:longint; cdecl;external;
-    Function noraw:longint; cdecl;external;
-    Function notimeout(_para1:pWINDOW; _para2:bool):longint; cdecl;external;
+    Function nl:longint; cdecl;
+    Function nocbreak:longint; cdecl;
+    Function nodelay(_para1:pWINDOW; _para2:bool):longint; cdecl;
+    Function noecho:longint; cdecl;
+    Function nonl:longint; cdecl;
+    Function noqiflush:longint; cdecl;
+    Function noraw:longint; cdecl;
+    Function notimeout(_para1:pWINDOW; _para2:bool):longint; cdecl;
 
-    Function overlay(_para1:pWINDOW; _para2:pWINDOW):longint; cdecl;external;
+    Function overlay(_para1:pWINDOW; _para2:pWINDOW):longint; cdecl;
 
-    Function overwrite(_para1:pWINDOW; _para2:pWINDOW):longint; cdecl;external;
-    Function pair_content(_para1:longint; _para2:plongint; _para3:plongint):longint; cdecl;external;
+    Function overwrite(_para1:pWINDOW; _para2:pWINDOW):longint; cdecl;
+    Function pair_content(_para1:longint; _para2:plongint; _para3:plongint):longint; cdecl;
 
-    Function pechochar(_para1:pWINDOW; _para2:chtype):longint; cdecl;external;
+    Function pechochar(_para1:pWINDOW; _para2:chtype):longint; cdecl;
     Function pnoutrefresh(_para1:pWINDOW; _para2:longint; _para3:longint; _para4:longint; _para5:longint;
-               _para6:longint; _para7:longint):longint;cdecl;external;
+               _para6:longint; _para7:longint):longint;cdecl;
     Function prefresh(_para1:pWINDOW; _para2:longint; _para3:longint; _para4:longint; _para5:longint;
-               _para6:longint; _para7:longint):longint;cdecl;external;
+               _para6:longint; _para7:longint):longint;cdecl;
     {
-    extern int printw(const char  ,...)
-                GCC_PRINTFLIKE(1,2);
+    extern int printw(const char  ,...)			
+    		GCC_PRINTFLIKE(1,2);
     }
-    Function putp(_para1:pchar):longint; cdecl;external;
-    Function putwin(_para1:pWINDOW; _para2:pFILE):longint; cdecl;external;
-    Function qiflush:longint; cdecl;external;
-    Function raw:longint; cdecl;external;
-    Function resetty:longint; cdecl;external;
-    Function reset_prog_mode:longint; cdecl;external;
-    Function reset_shell_mode:longint; cdecl;external;
+    Function putp(_para1:pchar):longint; cdecl;
+    Function putwin(_para1:pWINDOW; _para2:pFILE):longint; cdecl;
+    Function qiflush:longint; cdecl;
+    Function raw:longint; cdecl;
+    Function resetty:longint; cdecl;
+    Function reset_prog_mode:longint; cdecl;
+    Function reset_shell_mode:longint; cdecl;
 {
-    Function ripoffline(_para1:longint; init:function (_para1:pWINDOW; _para2:longint):longint):longint; cdecl;external;
+    Function ripoffline(_para1:longint; init:function (_para1:pWINDOW; _para2:longint):longint):longint; cdecl;
 }
-    Function savetty:longint; cdecl;external;
+    Function savetty:longint; cdecl;
     {
-    extern int scanw(const char  ,...)
-                GCC_SCANFLIKE(1,2);
+    extern int scanw(const char  ,...)			
+    		GCC_SCANFLIKE(1,2);
     }
-    Function scr_dump(_para1:pchar):longint; cdecl;external;
+    Function scr_dump(_para1:pchar):longint; cdecl;
 
-    Function scr_init(_para1:pchar):longint; cdecl;external;
-    Function scrollok(_para1:pWINDOW; _para2:bool):longint; cdecl;external;
+    Function scr_init(_para1:pchar):longint; cdecl;
+    Function scrollok(_para1:pWINDOW; _para2:bool):longint; cdecl;
 
-    Function scr_restore(_para1:pchar):longint; cdecl;external;
+    Function scr_restore(_para1:pchar):longint; cdecl;
 
-    Function scr_set(_para1:pchar):longint; cdecl;external;
+    Function scr_set(_para1:pchar):longint; cdecl;
 
 
-    Function slk_attroff(_para1:attr_t):longint; cdecl;external;
+    Function slk_attroff(_para1:attr_t):longint; cdecl;
 
-    Function slk_attron(_para1:attr_t):longint; cdecl;external;
+    Function slk_attron(_para1:attr_t):longint; cdecl;
 
-    Function slk_attrset(_para1:attr_t):longint; cdecl;external;
-    Function slk_attr:attr_t; cdecl;external;
-    Function slk_clear:longint; cdecl;external;
-    Function slk_init(_para1:longint):longint; cdecl;external;
+    Function slk_attrset(_para1:attr_t):longint; cdecl;
+    Function slk_attr:attr_t; cdecl;
+    Function slk_clear:longint; cdecl;
+    Function slk_init(_para1:longint):longint; cdecl;
 
-    Function slk_noutrefresh:longint; cdecl;external;
-    Function slk_refresh:longint; cdecl;external;
-    Function slk_restore:longint; cdecl;external;
+    Function slk_noutrefresh:longint; cdecl;
+    Function slk_refresh:longint; cdecl;
+    Function slk_restore:longint; cdecl;
 
-    Function slk_set(_para1:longint; _para2:pchar; _para3:longint):longint; cdecl;external;
-    Function slk_touch:longint; cdecl;external;
-    Function start_color:longint; cdecl;external;
+    Function slk_set(_para1:longint; _para2:pchar; _para3:longint):longint; cdecl;
+    Function slk_touch:longint; cdecl;
+    Function start_color:longint; cdecl;
 
-    Function syncok(_para1:pWINDOW; _para2:bool):longint; cdecl;external;
-    Function termattrs:chtype; cdecl;external;
+    Function syncok(_para1:pWINDOW; _para2:bool):longint; cdecl;
+    Function termattrs:chtype; cdecl;
 
-    Function tigetflag(_para1:pchar):longint; cdecl;external;
+    Function tigetflag(_para1:pchar):longint; cdecl;
 
-    Function tigetnum(_para1:pchar):longint; cdecl;external;
+    Function tigetnum(_para1:pchar):longint; cdecl;
 
-    Function derwin (_para1:pWINDOW; _para2:longint; _para3:longint; _para4:longint; _para5:longint):PWINDOW; cdecl;external;
-    Function dupwin (_para1:pWINDOW):PWINDOW; cdecl;external;
-    Function getwin (_para1:pFILE):PWINDOW; cdecl;external;
-    Function initscr :PWINDOW; cdecl;external;
-    Function keyname  (_para1:longint):pchar; cdecl;external;
-    Function longname :pchar; cdecl;external;
-    Function newpad (_para1:longint; _para2:longint):PWINDOW; cdecl;external;
-    Function newterm (_para1:pchar; _para2:pFILE; _para3:pFILE):PSCREEN; cdecl;external;
-    Function newwin  (_para1:longint; _para2:longint; _para3:longint; _para4:longint):PWINDOW; cdecl;external;
-    Function set_term (_para1:pSCREEN):PSCREEN; cdecl;external;
-    Function slk_label (_para1:longint):pchar; cdecl;external;
-    Function subpad (_para1:pWINDOW; _para2:longint; _para3:longint; _para4:longint; _para5:longint):PWINDOW; cdecl;external;
-    Function subwin (_para1:pWINDOW; _para2:longint; _para3:longint; _para4:longint; _para5:longint):PWINDOW; cdecl;external;
-    Function termname :pchar; cdecl;external;
-    Function tigetstr (_para1:pchar):pchar; cdecl;external;
-    Function typeahead(_para1:longint):longint; cdecl;external;
-    Function ungetch(_para1:longint):longint; cdecl;external;
-    procedure use_env(_para1:bool);cdecl;external;
-    Function vidattr(_para1:chtype):longint; cdecl;external;
+    Function derwin (_para1:pWINDOW; _para2:longint; _para3:longint; _para4:longint; _para5:longint):PWINDOW; cdecl;
+    Function dupwin (_para1:pWINDOW):PWINDOW; cdecl;
+    Function getwin (_para1:pFILE):PWINDOW; cdecl;
+    Function initscr :PWINDOW; cdecl;
+    Function keyname  (_para1:longint):pchar; cdecl;
+    Function longname :pchar; cdecl;
+    Function newpad (_para1:longint; _para2:longint):PWINDOW; cdecl;
+    Function newterm (_para1:pchar; _para2:pFILE; _para3:pFILE):PSCREEN; cdecl;
+    Function newwin  (_para1:longint; _para2:longint; _para3:longint; _para4:longint):PWINDOW; cdecl;
+    Function set_term (_para1:pSCREEN):PSCREEN; cdecl;
+    Function slk_label (_para1:longint):pchar; cdecl;
+    Function subpad (_para1:pWINDOW; _para2:longint; _para3:longint; _para4:longint; _para5:longint):PWINDOW; cdecl;
+    Function subwin (_para1:pWINDOW; _para2:longint; _para3:longint; _para4:longint; _para5:longint):PWINDOW; cdecl;
+    Function termname :pchar; cdecl;
+    Function tigetstr (_para1:pchar):pchar; cdecl;
+    Function typeahead(_para1:longint):longint; cdecl;
+    Function ungetch(_para1:longint):longint; cdecl;
+    procedure use_env(_para1:bool);cdecl;
+    Function vidattr(_para1:chtype):longint; cdecl;
 {
-    Function vidputs(_para1:chtype; _para2:function (_para1:longint):longint):longint; cdecl;external;
+    Function vidputs(_para1:chtype; _para2:function (_para1:longint):longint):longint; cdecl;
 }
 {
-    Function vwprintw(_para1:pWINDOW; _para2:pchar; _para3:va_list):longint; cdecl;external;
-    Function vwscanw(_para1:pWINDOW; _para2:pchar; _para3:va_list):longint; cdecl;external;
+    Function vwprintw(_para1:pWINDOW; _para2:pchar; _para3:va_list):longint; cdecl;
+    Function vwscanw(_para1:pWINDOW; _para2:pchar; _para3:va_list):longint; cdecl;
 }
-    Function waddch(_para1:pWINDOW; _para2:chtype):longint; cdecl;external;
-    Function waddchnstr(_para1:pWINDOW; _para2:pchtype; _para3:longint):longint; cdecl;external;
-    Function waddnstr(_para1:pWINDOW; _para2:pchar; _para3:longint):longint; cdecl;external;
-    Function wattr_on(_para1:pWINDOW; _para2:attr_t):longint; cdecl;external;
-    Function wattr_off(_para1:pWINDOW; _para2:attr_t):longint; cdecl;external;
-    Function wbkgd(_para1:pWINDOW; _para2:chtype):longint; cdecl;external;
-    procedure wbkgdset(_para1:pWINDOW; _para2:chtype);cdecl;external;
+    Function waddch(_para1:pWINDOW; _para2:chtype):longint; cdecl;
+    Function waddchnstr(_para1:pWINDOW; _para2:pchtype; _para3:longint):longint; cdecl;
+    Function waddnstr(_para1:pWINDOW; _para2:pchar; _para3:longint):longint; cdecl;
+    Function wattr_on(_para1:pWINDOW; _para2:attr_t):longint; cdecl;
+    Function wattr_off(_para1:pWINDOW; _para2:attr_t):longint; cdecl;
+    Function wbkgd(_para1:pWINDOW; _para2:chtype):longint; cdecl;
+    procedure wbkgdset(_para1:pWINDOW; _para2:chtype);cdecl;
     Function wborder(_para1:pWINDOW; _para2:chtype; _para3:chtype; _para4:chtype; _para5:chtype;
-               _para6:chtype; _para7:chtype; _para8:chtype; _para9:chtype):longint;cdecl;external;
-    Function wchgat(_para1:pWINDOW; _para2:longint; _para3:attr_t; _para4:longint; _para5:pointer):longint; cdecl;external;
-    Function wclear(_para1:pWINDOW):longint; cdecl;external;
-    Function wclrtobot(_para1:pWINDOW):longint; cdecl;external;
-    Function wclrtoeol(_para1:pWINDOW):longint; cdecl;external;
-    procedure wcursyncup(_para1:pWINDOW);cdecl;external;
-    Function wdelch(_para1:pWINDOW):longint; cdecl;external;
-    Function wechochar(_para1:pWINDOW; _para2:chtype):longint; cdecl;external;
-    Function werase(_para1:pWINDOW):longint; cdecl;external;
-    Function wgetch(_para1:pWINDOW):longint; cdecl;external;
-    Function wgetnstr(_para1:pWINDOW; _para2:pchar; _para3:longint):longint; cdecl;external;
-    Function whline(_para1:pWINDOW; _para2:chtype; _para3:longint):longint; cdecl;external;
+               _para6:chtype; _para7:chtype; _para8:chtype; _para9:chtype):longint;cdecl;
+    Function wchgat(_para1:pWINDOW; _para2:longint; _para3:attr_t; _para4:longint; _para5:pointer):longint; cdecl;
+    Function wclear(_para1:pWINDOW):longint; cdecl;
+    Function wclrtobot(_para1:pWINDOW):longint; cdecl;
+    Function wclrtoeol(_para1:pWINDOW):longint; cdecl;
+    procedure wcursyncup(_para1:pWINDOW);cdecl;
+    Function wdelch(_para1:pWINDOW):longint; cdecl;
+    Function wechochar(_para1:pWINDOW; _para2:chtype):longint; cdecl;
+    Function werase(_para1:pWINDOW):longint; cdecl;
+    Function wgetch(_para1:pWINDOW):longint; cdecl;
+    Function wgetnstr(_para1:pWINDOW; _para2:pchar; _para3:longint):longint; cdecl;
+    Function whline(_para1:pWINDOW; _para2:chtype; _para3:longint):longint; cdecl;
     Function winch (win : PWindow) : longint;
-    Function winchnstr(_para1:pWINDOW; _para2:pchtype; _para3:longint):longint; cdecl;external;
-    Function winnstr(_para1:pWINDOW; _para2:pchar; _para3:longint):longint; cdecl;external;
-    Function winsch(_para1:pWINDOW; _para2:chtype):longint; cdecl;external;
-    Function winsdelln(_para1:pWINDOW; _para2:longint):longint; cdecl;external;
-    Function winsnstr(_para1:pWINDOW; _para2:pchar; _para3:longint):longint; cdecl;external;
-    Function wmove(_para1:pWINDOW; _para2:longint; _para3:longint):longint; cdecl;external;
-    Function wnoutrefresh(_para1:pWINDOW):longint; cdecl;external;
+    Function winchnstr(_para1:pWINDOW; _para2:pchtype; _para3:longint):longint; cdecl;
+    Function winnstr(_para1:pWINDOW; _para2:pchar; _para3:longint):longint; cdecl;
+    Function winsch(_para1:pWINDOW; _para2:chtype):longint; cdecl;
+    Function winsdelln(_para1:pWINDOW; _para2:longint):longint; cdecl;
+    Function winsnstr(_para1:pWINDOW; _para2:pchar; _para3:longint):longint; cdecl;
+    Function wmove(_para1:pWINDOW; _para2:longint; _para3:longint):longint; cdecl;
+    Function wnoutrefresh(_para1:pWINDOW):longint; cdecl;
     {
-    extern int wprintw(WINDOW  ,const char  ,...)
-                GCC_PRINTFLIKE(2,3);
+    extern int wprintw(WINDOW  ,const char  ,...)		
+    		GCC_PRINTFLIKE(2,3);
     }
-    Function wredrawln(_para1:pWINDOW; _para2:longint; _para3:longint):longint; cdecl;external;
-    Function wrefresh(_para1:pWINDOW):longint; cdecl;external;
+    Function wredrawln(_para1:pWINDOW; _para2:longint; _para3:longint):longint; cdecl;
+    Function wrefresh(_para1:pWINDOW):longint; cdecl;
     {
-    extern int wscanw(WINDOW  ,const char  ,...)
-                GCC_SCANFLIKE(2,3);
+    extern int wscanw(WINDOW  ,const char  ,...)		
+    		GCC_SCANFLIKE(2,3);
     }
-    Function wscrl(_para1:pWINDOW; _para2:longint):longint; cdecl;external;
-    Function wsetscrreg(_para1:pWINDOW; _para2:longint; _para3:longint):longint; cdecl;external;
-    procedure wsyncdown(_para1:pWINDOW);cdecl;external;
-    procedure wsyncup(_para1:pWINDOW);cdecl;external;
-    Function wtimeout(_para1:pWINDOW; _para2:longint):longint; cdecl;external;
-    Function wtouchln(_para1:pWINDOW; _para2:longint; _para3:longint; _para4:longint):longint; cdecl;external;
-    Function wvline(_para1:pWINDOW; _para2:chtype; _para3:longint):longint; cdecl;external;
+    Function wscrl(_para1:pWINDOW; _para2:longint):longint; cdecl;
+    Function wsetscrreg(_para1:pWINDOW; _para2:longint; _para3:longint):longint; cdecl;
+    procedure wsyncdown(_para1:pWINDOW);cdecl;
+    procedure wsyncup(_para1:pWINDOW);cdecl;
+    Function wtimeout(_para1:pWINDOW; _para2:longint):longint; cdecl;
+    Function wtouchln(_para1:pWINDOW; _para2:longint; _para3:longint; _para4:longint):longint; cdecl;
+    Function wvline(_para1:pWINDOW; _para2:chtype; _para3:longint):longint; cdecl;
     Function mvwchgat(_para1:pWINDOW; _para2:longint; _para3:longint;
                       _para4:longint; _para5:longint; _para6:longint;
-                      _para7:longint):longint;cdecl;external;
+                      _para7:longint):longint;Cdecl;
 
     const
            A_NORMAL = 0;
@@ -568,7 +581,7 @@ Var
     function mvinchnstr(y,x : longint; s : pchar;n : longint) : longint;
     function mvinchstr(y,x : longint; s : pchar) : longint;
     function mvinnstr(y,x : longint; s : pchar;n : longint) : longint;
-    function mvinsch(y,x: longint;c : chtype) : longint;
+    function mvinsch(y,x,c : longint) : longint;
     function mvinsnstr(y,x : longint; s : pchar;n : longint) : longint;
     function mvinsstr(y,x : longint; s : pchar) : longint;
     function mvinstr(y,x : longint; s : pchar) : longint;
@@ -577,1105 +590,1151 @@ Var
     function attr_off(a : longint) : longint;
     function attr_on(a : longint) : longint;
     function attr_set(a : longint) : longint;
+    function box_set(w : pwindow;v,h : longint) : longint;
     function chgat(n,a,c,o : longint) : longint;
     function getbkgd(win : pwindow) : longint;
+    function hline_set(c,n : longint) : longint;
     function slk_attr_off(a : longint) : longint;
     function slk_attr_on(a : longint) : longint;
     function slk_attr_set(a : longint) : longint;
     function vid_attr(a : longint) : longint;
+    function vline_set(c,n : longint) : longint;
     function wattr_get(win : pwindow) : longint;
     {
        Pseudo-character tokens outside ASCII range.  The curses wgetch() function
        will return any given one of these only if the corresponding k- capability
        is defined in your terminal's terminfo entry.
      }
-    const                       {octal}
-       KEY_CODE_YES = 256;      {0400}
-       KEY_MIN = 257;           {0401}
-       KEY_BREAK = 257;         {0401}
-       KEY_DOWN = 258;          {0402}
-       KEY_UP = 259;            {0403}
-       KEY_LEFT = 260;          {0404}
-       KEY_RIGHT = 261;         {0405}
-       KEY_HOME = 262;          {0406}
-       KEY_BACKSPACE = 263;     {0407}
-       KEY_F0 = 264;            {0410}
+    const			{octal}
+       KEY_CODE_YES = 256; 	{0400}
+       KEY_MIN = 257;		{0401}
+       KEY_BREAK = 257;		{0401}
+       KEY_DOWN = 258;		{0402}
+       KEY_UP = 259;		{0403}
+       KEY_LEFT = 260;		{0404}
+       KEY_RIGHT = 261;		{0405}
+       KEY_HOME = 262;		{0406}
+       KEY_BACKSPACE = 263;	{0407}
+       KEY_F0 = 264;		{0410}
     function KEY_F(n : longint) : longint;
 
     const
-       KEY_DL = 328;            {0510}
-       KEY_IL = 329;            {0511}
-       KEY_DC = 330;            {0512}
-       KEY_IC = 331;            {0513}
-       KEY_EIC = 332;           {0514}
-       KEY_CLEAR = 333;         {0515}
-       KEY_EOS = 334;           {0516}
-       KEY_EOL = 335;           {0517}
-       KEY_SF = 336;            {0520}
-       KEY_SR = 337;            {0521}
-       KEY_NPAGE = 338;         {0522}
-       KEY_PPAGE = 339;         {0523}
-       KEY_STAB = 340;          {0524}
-       KEY_CTAB = 341;          {0525}
-       KEY_CATAB = 342;         {0526}
-       KEY_ENTER = 343;         {0527}
-       KEY_SRESET = 344;        {0530}
-       KEY_RESET = 345;         {0531}
-       KEY_PRINT = 346;         {0532}
-       KEY_LL = 347;            {0533}
-       KEY_A1 = 348;            {0534}
-       KEY_A3 = 349;            {0535}
-       KEY_B2 = 350;            {0536}
-       KEY_C1 = 351;            {0537}
-       KEY_C3 = 352;            {0540}
-       KEY_BTAB = 353;          {0541}
-       KEY_BEG = 354;           {0542}
-       KEY_CANCEL = 355;        {0543}
-       KEY_CLOSE = 356;         {0544}
-       KEY_COMMAND = 357;       {0545}
-       KEY_COPY = 358;          {0546}
-       KEY_CREATE = 359;        {0547}
-       KEY_END = 360;           {0550}
-       KEY_EXIT = 361;          {0551}
-       KEY_FIND = 362;          {0552}
-       KEY_HELP = 363;          {0553}
-       KEY_MARK = 364;          {0554}
-       KEY_MESSAGE = 365;       {0555}
-       KEY_MOVE = 366;          {0556}
-       KEY_NEXT = 367;          {0557}
-       KEY_OPEN = 368;          {0560}
-       KEY_OPTIONS = 369;       {0561}
-       KEY_PREVIOUS = 370;      {0562}
-       KEY_REDO = 371;          {0563}
-       KEY_REFERENCE = 372;     {0564}
-       KEY_REFRESH = 373;       {0565}
-       KEY_REPLACE = 374;       {0566}
-       KEY_RESTART = 375;       {0567}
-       KEY_RESUME = 376;        {0570}
-       KEY_SAVE = 377;          {0571}
-       KEY_SBEG = 378;          {0572}
-       KEY_SCANCEL = 379;       {0573}
-       KEY_SCOMMAND = 380;      {0574}
-       KEY_SCOPY = 381;         {0575}
-       KEY_SCREATE = 382;       {0576}
-       KEY_SDC = 383;           {0577}
-       KEY_SDL = 384;           {0600}
-       KEY_SELECT = 385;        {0601}
-       KEY_SEND = 386;          {0602}
-       KEY_SEOL = 387;          {0603}
-       KEY_SEXIT = 388;         {0604}
-       KEY_SFIND = 389;         {0605}
-       KEY_SHELP = 390;         {0606}
-       KEY_SHOME = 391;         {0607}
-       KEY_SIC = 392;           {0610}
-       KEY_SLEFT = 393;         {0611}
-       KEY_SMESSAGE = 394;      {0612}
-       KEY_SMOVE = 395;         {0613}
-       KEY_SNEXT = 396;         {0614}
-       KEY_SOPTIONS = 397;      {0615}
-       KEY_SPREVIOUS = 398;     {0616}
-       KEY_SPRINT = 399;        {0617}
-       KEY_SREDO = 400;         {0620}
-       KEY_SREPLACE = 401;      {0621}
-       KEY_SRIGHT = 402;        {0622}
-       KEY_SRSUME = 403;        {0623}
-       KEY_SSAVE = 404;         {0624}
-       KEY_SSUSPEND = 405;      {0625}
-       KEY_SUNDO = 406;         {0626}
-       KEY_SUSPEND = 407;       {0627}
-       KEY_UNDO = 408;          {0630}
-       KEY_MOUSE = 409;         {0631}
-       KEY_RESIZE = 410;        {0632}
-       KEY_MAX = 511;           {0777}
-
-    function mcprint(_para1:pchar; _para2:longint):longint;cdecl;external;
-    function has_key(_para1:longint):longint;cdecl;external;
-
-implementation
-
-function wgetstr(w : pwindow;s : pchar) : longint;
-begin
-  wgetstr:=wgetnstr(w,s,-(1));
-end;
-
-function getnstr(s : pchar;n : longint) : longint;
-begin
-  getnstr:=wgetnstr(stdscr,s,n);
-end;
-
-function setterm(term : longint) : longint;
-begin
-  {
-  setterm:=setupterm(term,1,plongint(0));
-  }
-  setterm:=0;
-end;
-
-function fixterm : longint;
-begin
-  fixterm:=reset_prog_mode;
-end;
-
-function resetterm : longint;
-begin
-  resetterm:=reset_shell_mode;
-end;
-
-function saveterm : longint;
-begin
-  saveterm:=def_prog_mode;
-end;
-
-function crmode : longint;
-begin
-  crmode:=cbreak;
-end;
-
-function nocrmode : longint;
-begin
-  nocrmode:=nocbreak;
-end;
-
-procedure getsyx(var y,x : longint);
-begin
-  getyx(stdscr,y,x);
-end;
-
-function getattrs(win : pwindow) : longint;
-var
-  if_local1 : longint;
-begin
-  if win<>nil then
-    if_local1:=win^._attrs
-  else
-    if_local1:=A_NORMAL;
-  getattrs:=if_local1;
-end;
-
-function getcurx(win : pwindow) : longint;
-var
-  if_local1 : longint;
-begin
-  if win<>nil then
-    if_local1:=win^._curx
-  else
-    if_local1:=ERR;
-  getcurx:=if_local1;
-end;
-
-function getcury(win : pwindow) : longint;
-var
-  if_local1 : longint;
-begin
-  if win<>Nil then
-    if_local1:=win^._cury
-  else
-    if_local1:=ERR;
-  getcury:=if_local1;
-end;
-function getbegx(win : pwindow) : longint;
-var
-  if_local1 : longint;
-
-begin
-  if win<>Nil then
-    if_local1:=win^._begx
-  else
-    if_local1:=ERR;
-  getbegx:=if_local1;
-end;
-
-function getbegy(win : pwindow) : longint;
-var
-  if_local1 : longint;
-begin
-  if win<>Nil then
-    if_local1:=win^._begy
-  else
-    if_local1:=ERR;
-  getbegy:=if_local1;
-end;
-
-function getmaxx(win : pwindow) : longint;
-var
-  if_local1 : longint;
-begin
-  if win<>Nil then
-    if_local1:=(win^._maxx) + 1
-  else
-    if_local1:=ERR;
-  getmaxx:=if_local1;
-end;
-
-function getmaxy(win : pwindow) : longint;
-var
-  if_local1 : longint;
-begin
-  if win<>Nil then
-    if_local1:=(win^._maxy) + 1
-  else
-    if_local1:=ERR;
-  getmaxy:=if_local1;
-end;
-
-function getparx(win : pwindow) : longint;
-var
-  if_local1 : longint;
-begin
-  if win<>Nil then
-    if_local1:=win^._parx
-  else
-    if_local1:=ERR;
-  getparx:=if_local1;
-end;
-
-function getpary(win : pwindow) : longint;
-var
-  if_local1 : longint;
-begin
-  if win<>Nil then
-    if_local1:=win^._pary
-  else
-    if_local1:=ERR;
-  getpary:=if_local1;
-end;
-
-function wstandout(win : pwindow) : longint;
-begin
-  wstandout:=wattr_set(win,A_STANDOUT);
-end;
-
-function wstandend(win : pwindow) : longint;
-begin
-  wstandend:=wattr_set(win,A_NORMAL);
-end;
-
-function wattron(win : pwindow;at : longint) : longint;
-begin
-  wattron:=wattr_on(win,at);
-end;
-
-function wattroff(win : pwindow;at : longint) : longint;
-begin
-  wattroff:=wattr_off(win,at);
-end;
-
-function wattrset(win : pwindow;at : longint) : longint;
-begin
-  wattrset:=wattr_set(win,at);
-end;
-
-function scroll(win : pwindow) : longint;
-begin
-  scroll:=wscrl(win,1);
-end;
-
-function touchwin(win : pwindow) : longint;
-begin
-  touchwin:=wtouchln(win,0,getmaxy(win),1);
-end;
-
-function touchline(win : pwindow;s,c : longint) : longint;
-begin
-  touchline:=wtouchln(win,s,c,1);
-end;
-
-function untouchwin(win : pwindow) : longint;
-begin
-  untouchwin:=wtouchln(win,0,getmaxy(win),0);
-end;
-
-function box(win : pwindow;v,h : longint) : longint;
-begin
-  box:=wborder(win,v,v,h,h,0,0,0,0);
-end;
-
-function border(ls,rs,ts,bs,tl,tr,bl,br : longint) : longint;
-begin
-  border:=wborder(stdscr,ls,rs,ts,bs,tl,tr,bl,br);
-end;
-
-function hline(ch,n : longint) : longint;
-begin
-  hline:=whline(stdscr,ch,n);
-end;
-
-function vline(ch,n : longint) : longint;
-begin
-  vline:=wvline(stdscr,ch,n);
-end;
-
-function winstr(w : pwindow;s : pchar) : longint;
-begin
-  winstr:=winnstr(w,s,-(1));
-end;
-
-function winchstr(w : pwindow;s : pchar) : longint;
-begin
-  winchstr:=winchnstr(w,s,-1);
-end;
-
-function winsstr(w : pwindow;s : pchar) : longint;
-begin
-  winsstr:=winsnstr(w,s,-(1));
-end;
-
-function redrawwin(w : pwindow) : longint;
-begin
-  redrawwin:=wredrawln(w,0,(w^._maxy) + 1);
-end;
-
-function waddstr(win : pwindow;st : pchar) : longint;
-begin
-  waddstr:=waddnstr(win,st,-1);
-end;
-
-function waddchstr(win : pwindow;st : pchar) : longint;
-begin
-  waddchstr:=waddchnstr(win,st,-1);
-end;
-
-function addch(ch : longint) : longint;
-begin
-  addch:=waddch(stdscr,ch);
-end;
-
-function addchnstr(st : pchar;n : longint) : longint;
-begin
-  addchnstr:=waddchnstr(stdscr,st,n);
-end;
-
-function addchstr(st : pchar) : longint;
-begin
-  addchstr:=waddchstr(stdscr,st);
-end;
-
-function addnstr(st : pchar;n : longint) : longint;
-begin
-  addnstr:=waddnstr(stdscr,st,n);
-end;
-
-function addstr(st : pchar) : longint;
-begin
-  addstr:=waddnstr(stdscr,st,-1);
-end;
-
-function attroff(at : longint) : longint;
-begin
-  attroff:=wattroff(stdscr,at);
-end;
-
-function attron(at : longint) : longint;
-begin
-  attron:=wattron(stdscr,at);
-end;
-
-function attrset(at : longint) : longint;
-begin
-  attrset:=wattrset(stdscr,at);
-end;
-
-function bkgd(ch : longint) : longint;
-begin
-  bkgd:=wbkgd(stdscr,ch);
-end;
-
-procedure bkgdset(ch : longint);
-begin
-  wbkgdset(stdscr,ch);
-end;
-
-function clear : longint;
-begin
-  clear:=wclear(stdscr);
-end;
-
-function clrtobot : longint;
-begin
-  clrtobot:=wclrtobot(stdscr);
-end;
-
-function clrtoeol : longint;
-begin
-  clrtoeol:=wclrtoeol(stdscr);
-end;
-
-function delch : longint;
-begin
-  delch:=wdelch(stdscr);
-end;
-
-function deleteln : longint;
-begin
-  deleteln:=winsdelln(stdscr,-1);
-end;
-
-function echochar(c : longint) : longint;
-begin
-  echochar:=wechochar(stdscr,c);
-end;
-
-function erase : longint;
-begin
-  erase:=werase(stdscr);
-end;
-
-function getch : longint;
-begin
-  getch:=wgetch(stdscr);
-end;
-
-function getstr(st : pchar) : longint;
-begin
-  getstr:=wgetstr(stdscr,st);
-end;
-
-function inch : longint;
-begin
-  inch:=winch(stdscr);
-end;
-
-function inchnstr(s : pchar;n : longint) : longint;
-begin
-  inchnstr:=winchnstr(stdscr,s,n);
-end;
-
-function inchstr(s : pchar) : longint;
-begin
-  inchstr:=winchstr(stdscr,s);
-end;
-
-function innstr(s : pchar;n : longint) : longint;
-begin
-  innstr:=winnstr(stdscr,s,n);
-end;
-
-function insch(c : longint) : longint;
-begin
-  insch:=winsch(stdscr,c);
-end;
-
-function insdelln(n : longint) : longint;
-begin
-  insdelln:=winsdelln(stdscr,n);
-end;
-
-function insertln : longint;
-begin
-  insertln:=winsdelln(stdscr,1);
-end;
-
-function insnstr(s : pchar;n : longint) : longint;
-begin
-  insnstr:=winsnstr(stdscr,s,n);
-end;
-
-function insstr(s : pchar) : longint;
-begin
-  insstr:=winsstr(stdscr,s);
-end;
-
-function instr(s : pchar) : longint;
-begin
-  instr:=winstr(stdscr,s);
-end;
-
-function move(y,x : longint) : longint;
-begin
-  move:=wmove(stdscr,y,x);
-end;
-
-function refresh : longint;
-begin
-  refresh:=wrefresh(stdscr);
-end;
-
-function scrl(n : longint) : longint;
-begin
-  scrl:=wscrl(stdscr,n);
-end;
-
-function setscrreg(t,b : longint) : longint;
-begin
-  setscrreg:=wsetscrreg(stdscr,t,b);
-end;
-
-function standend : longint;
-begin
-  standend:=wstandend(stdscr);
-end;
-
-function standout : longint;
-begin
-  standout:=wstandout(stdscr);
-end;
-
-function timeout(delay : longint) : longint;
-begin
-  timeout:=wtimeout(stdscr,delay);
-end;
-
-function wdeleteln(win : pwindow) : longint;
-begin
-  wdeleteln:=winsdelln(win,-1);
-end;
-
-function winsertln(win : pwindow) : longint;
-begin
-  winsertln:=winsdelln(win,1);
-end;
-
-function mvaddch(y,x,ch : longint) : longint;
-begin
-  mvaddch:=mvwaddch(stdscr,y,x,ch);
-end;
-
-function mvaddchnstr(y,x: longint;st : pchar;n : longint) : longint;
-begin
-  mvaddchnstr:=mvwaddchnstr(stdscr,y,x,st,n);
-end;
-
-function mvaddchstr(y,x : longint;st : pchar) : longint;
-begin
-  mvaddchstr:=mvwaddchstr(stdscr,y,x,st);
-end;
-
-function mvaddnstr(y,x: longint;st : pchar; n : longint) : longint;
-begin
-  mvaddnstr:=mvwaddnstr(stdscr,y,x,st,n);
-end;
-
-function mvaddstr(y,x : longint;st : pchar) : longint;
-begin
-  mvaddstr:=mvwaddstr(stdscr,y,x,st);
-end;
-
-function mvdelch(y,x : longint) : longint;
-begin
-  mvdelch:=mvwdelch(stdscr,y,x);
-end;
-
-function mvgetch(y,x : longint) : longint;
-begin
-  mvgetch:=mvwgetch(stdscr,y,x);
-end;
-
-function mvgetnstr(y,x : longint;st : pchar;n : longint) : longint;
-begin
-  mvgetnstr:=mvwgetnstr(stdscr,y,x,st,n);
-end;
-
-function mvgetstr(y,x: longint;st : pchar) : longint;
-begin
-  mvgetstr:=mvwgetstr(stdscr,y,x,st);
-end;
-
-function mvhline(y,x : longint;c : chtype;n : longint) : longint;
-begin
-  mvhline:=mvwhline(stdscr,y,x,c,n);
-end;
-
-function mvinch(y,x : longint) : longint;
-begin
-  mvinch:=mvwinch(stdscr,y,x);
-end;
-
-function mvinchnstr(y,x : longint;s : pchar;n : longint) : longint;
-begin
-  mvinchnstr:=mvwinchnstr(stdscr,y,x,s,n);
-end;
-
-function mvinchstr(y,x : longint;s : pchar) : longint;
-begin
-  mvinchstr:=mvwinchstr(stdscr,y,x,s);
-end;
-
-function mvinnstr(y,x : longint;s : pchar;n : longint) : longint;
-begin
-  mvinnstr:=mvwinnstr(stdscr,y,x,s,n);
-end;
-
-function mvinsch(y,x: longint;c : chtype) : longint;
-begin
-  mvinsch:=mvwinsch(stdscr,y,x,c);
-end;
-
-function mvinsnstr(y,x : longint;s : pchar;n : longint) : longint;
-begin
-  mvinsnstr:=mvwinsnstr(stdscr,y,x,s,n);
-end;
-
-function mvinsstr(y,x : longint;s : pchar) : longint;
-begin
-  mvinsstr:=mvwinsstr(stdscr,y,x,s);
-end;
-
-function mvinstr(y,x : longint;s : pchar) : longint;
-begin
-  mvinstr:=mvwinstr(stdscr,y,x,s);
-end;
-
-function mvvline(y,x,c,n : longint) : longint;
-begin
-  mvvline:=mvwvline(stdscr,y,x,c,n);
-end;
-
-function attr_get : longint;
-begin
-  attr_get:=wattr_get(stdscr);
-end;
-
-function attr_off(a : longint) : longint;
-begin
-  attr_off:=wattr_off(stdscr,a);
-end;
-
-function attr_on(a : longint) : longint;
-begin
-  attr_on:=wattr_on(stdscr,a);
-end;
-
-function attr_set(a : longint) : longint;
-begin
-  attr_set:=wattr_set(stdscr,a);
-end;
-
-function chgat(n,a,c,o : longint) : longint;
-begin
- chgat:=wchgat(stdscr,n,a,c,pointer(o));
-end;
-
-function getbkgd(win : pwindow) : longint;
-begin
-  getbkgd:=win^._bkgd;
-end;
-
-function mvchgat(y,x,n,a,c,o : longint) : longint;
-begin
-  mvchgat:=mvwchgat(stdscr,y,x,n,a,c,o);
-end;
-
-function slk_attr_off(a : longint) : longint;
-begin
-  slk_attr_off:=slk_attroff(a);
-end;
-
-function slk_attr_on(a : longint) : longint;
-begin
-  slk_attr_on:=slk_attron(a);
-end;
-
-function slk_attr_set(a : longint) : longint;
-begin
-  slk_attr_set:=slk_attrset(a);
-end;
-
-function vid_attr(a : longint) : longint;
-begin
-  vid_attr:=vidattr(a);
-end;
-
-function wattr_get(win : pwindow) : longint;
-begin
-  wattr_get:=win^._attrs;
-end;
-
-function KEY_F(n : longint) : longint;
-begin
-  KEY_F:=KEY_F0 + n;
-end;
-
-procedure getyx(win : pwindow; var y,x : longint);
-begin
-  X:=ERR;
-  Y:=ERR;
-  if Win<>Nil then
-   begin
-     Y:=win^._cury;
-     X:=Win^._curx;
-   end;
-end;
-
-procedure getbegyx(win : pwindow; var y,x : longint);
-begin
-  X:=ERR;
-  Y:=ERR;
-  if Win<>Nil then
-   begin
-     Y:=win^._begy;
-     X:=Win^._begx;
-   end;
-end;
-
-procedure getmaxyx(win : pwindow; var y,x : longint);
-begin
-  X:=ERR;
-  Y:=ERR;
-  if Win<>Nil then
-   begin
-     Y:=win^._maxy+1;
-     X:=Win^._maxx+1;
-   end;
-end;
-
-procedure getparyx(win : pwindow; var y,x : longint);
-begin
-  X:=ERR;
-  Y:=ERR;
-  if Win<>Nil then
-   begin
-     Y:=win^._pary;
-     X:=Win^._parx;
-   end;
-end;
-
-function winch (win : PWindow) : longint;
-begin
-  if win<>nil then
-   winch:=win^._line[win^._cury].text[Win^ ._curx]
-  else
-   winch:=0;
-end;
-
-function wattr_set(win : pwindow; at : longint) : longint;
-begin
-  If win<>nil then
-   begin
-     win^._attrs := at;
-     wattr_set:=at;
-   end
-  else
-   wattr_set:=0;
-end;
-
-procedure setsyx (y,x : longint);
-begin
-  stdscr^._cury := y;
-  stdscr^._curx := x;
-end;
-
-function  mvwaddch(win : pwindow;y,x : longint; ch : chtype) : longint;
-begin
-  if wmove(win,y,x) = ERR then
-   exit(ERR)
-  else
-   exit(waddch(win,ch))
-end;
-
-function  mvwaddchnstr(win : pwindow;y,x : longint;st : pchar;n : longint) : longint;
-begin
-  if wmove (win,y,x)=ERR then
-   exit(ERR)
-  else
-   exit(waddchnstr(win,st,n))
-end;
-
-function  mvwaddchstr(win : pwindow;y,x : longint;st : pchar) : longint;
-begin
-  if wmove (win,y,x)=ERR then
-   exit(ERR)
-  else
-   exit(waddchnstr(win,st,-1))
-end;
-
-function  mvwaddnstr(win : pwindow;y,x : longint;st : pchar;n : longint) : longint;
-begin
-  if wmove (win,y,x)=ERR then
-   exit(ERR)
-  else
-   exit(waddnstr(win,st,n))
-end;
-
-function  mvwaddstr(win : pwindow;y,x : longint;st : pchar) : longint;
-begin
-  if wmove (win,y,x)=ERR then
-   exit(ERR)
-  else
-   exit(waddnstr(win,st,-1))
-end;
-
-function  mvwdelch(win : pwindow;y,x : longint) : longint;
-begin
-  if wmove (win,y,x)=ERR then
-   exit(ERR)
-  else
-   exit(wdelch(win))
-end;
-
-function  mvwgetch(win : pwindow;y,x : longint) : longint;
-begin
-  if wmove (win,y,x)=ERR then
-   exit(ERR)
-  else
-   exit(wgetch(win))
-end;
-
-function  mvwgetnstr(win : pwindow;y,x : longint;st : pchar;n: longint) : longint;
-begin
-  if wmove (win,y,x)=ERR then
-   exit(ERR)
-  else
-   exit(wgetnstr(win,st,n))
-end;
-
-function  mvwgetstr(win : pwindow;y,x : longint;st: pchar) : longint;
-begin
-  if wmove (win,y,x)=ERR then
-   exit(ERR)
-  else
-   exit(wgetstr(win,st))
-end;
-
-function  mvwhline(win : pwindow;y,x : longint;c : chtype;n : longint) : longint;
-begin
-  if wmove (win,y,x)=ERR then
-   exit(ERR)
-  else
-   exit(whline(win,c,n))
-end;
-
-function  mvwinch(win : pwindow;y,x : longint) : longint;
-begin
-  if wmove (win,y,x)=ERR then
-   exit(ERR)
-  else
-   exit(winch(win))
-end;
-
-function  mvwinchnstr(win : pwindow;y,x : longint;s : pchar; n : longint) : longint;
-begin
-  if wmove (win,y,x)=ERR then
-   exit(ERR)
-  else
-   exit(winchnstr(win,s,n))
-end;
-
-function  mvwinchstr(win : pwindow;y,x : longint;s : pchar) : longint;
-begin
-  if wmove (win,y,x)=ERR then
-   exit(ERR)
-  else
-   exit(winchstr(win,s))
-end;
-
-function  mvwinnstr(win : pwindow;y,x : longint;s : pchar;n : longint) : longint;
-begin
-  if wmove (win,y,x)=ERR then
-   exit(ERR)
-  else
-   exit(winnstr(win,s,n))
-end;
-
-function  mvwinsch(win : pwindow;y,x : longint;c : chtype) : longint;
-begin
-  if wmove (win,y,x)=ERR then
-   exit(ERR)
-  else
-   exit(winsch(win,c))
-end;
-
-function  mvwinsnstr(win : pwindow;y,x : longint;s : pchar;n : longint) : longint;
-begin
-  if wmove (win,y,x)=ERR then
-   exit(ERR)
-  else
-   exit(winsnstr(win,s,n))
-end;
-
-function  mvwinsstr(win : pwindow;y,x : longint;s : pchar) : longint;
-begin
-  if wmove (win,y,x)=ERR then
-   exit(ERR)
-  else
-   exit(winsstr(win,s))
-end;
-
-function  mvwinstr(win : pwindow;y,x : longint;s : pchar) : longint;
-begin
-  if wmove (win,y,x)=ERR then
-   exit(ERR)
-  else
-   exit(winstr(win,s))
-end;
-
-function  mvwvline(win : pwindow;y,x : longint;c : chtype;n : longint) : longint;
-begin
-  if wmove (win,y,x)=ERR then
-   exit(ERR)
-  else
-   exit(wvline(win,c,n))
-end;
-
-function color_pair(n : longint): longint;
-begin
-  color_pair:=n shl 8;
-end;
-
-function ACS_ULCORNER : chtype;
-begin
-  ACS_ULCORNER:=acs_map['l'];
-end;
-
-function ACS_LLCORNER : chtype;
-begin
-  ACS_LLCORNER:=acs_map['m'];
-end;
-
-function ACS_URCORNER : chtype;
-begin
-  ACS_URCORNER:=acs_map['k'];
-end;
-
-function ACS_LRCORNER : chtype;
-begin
-  ACS_LRCORNER:=acs_map['j'];
-end;
-
-function ACS_LTEE : chtype;
-begin
-  ACS_LTEE:=acs_map['t'];
-end;
-
-function ACS_RTEE : chtype;
-begin
-  ACS_RTEE:=acs_map['u'];
-end;
-
-function ACS_BTEE : chtype;
-begin
-  ACS_BTEE:=acs_map['v'];
-end;
-
-function ACS_TTEE : chtype;
-begin
-  ACS_TTEE:=acs_map['w'];
-end;
-
-function ACS_HLINE : chtype;
-begin
-  ACS_HLINE:=acs_map['q'];
-end;
-
-function ACS_VLINE : chtype;
-begin
-  ACS_VLINE:=acs_map['x'];
-end;
-
-function ACS_PLUS : chtype;
-begin
-  ACS_PLUS:=acs_map['n'];
-end;
-
-function ACS_S1      : chtype;
-begin
-  ACS_S1    :=acs_map['o'];
-end;
-
-function ACS_S9      : chtype;
-begin
-  ACS_S9    :=acs_map['s'];
-end;
-
-function ACS_DIAMOND : chtype;
-begin
-  ACS_DIAMOND:=acs_map['`'];
-end;
-
-function ACS_CKBOARD : chtype;
-begin
-  ACS_CKBOARD:=acs_map['a'];
-end;
-
-function ACS_DEGREE : chtype;
-begin
-  ACS_DEGREE:=acs_map['f'];
-end;
-
-function ACS_PLMINUS : chtype;
-begin
-  ACS_PLMINUS:=acs_map['g'];
-end;
-
-function ACS_BULLET : chtype;
-begin
-  ACS_BULLET:=acs_map['~'];
-end;
-
-function ACS_LARROW : chtype;
-begin
-  ACS_LARROW:=acs_map[','];
-end;
-
-function ACS_RARROW : chtype;
-begin
-  ACS_RARROW:=acs_map['+'];
-end;
-
-function ACS_DARROW : chtype;
-begin
-  ACS_DARROW:=acs_map['.'];
-end;
-
-function ACS_UARROW : chtype;
-begin
-  ACS_UARROW:=acs_map['-'];
-end;
-
-function ACS_BOARD : chtype;
-begin
-  ACS_BOARD:=acs_map['h'];
-end;
-
-function ACS_LANTERN : chtype;
-begin
-  ACS_LANTERN:=acs_map['i'];
-end;
-
-function ACS_BLOCK : chtype;
-begin
-  ACS_BLOCK:=acs_map['0'];
-end;
-
-function ACS_S3      : chtype;
-begin
-  ACS_S3    :=acs_map['p'];
-end;
-
-function ACS_S7      : chtype;
-begin
-  ACS_S7    :=acs_map['r'];
-end;
-
-function ACS_LEQUAL : chtype;
-begin
-  ACS_LEQUAL:=acs_map['y'];
-end;
-
-function ACS_GEQUAL : chtype;
-begin
-  ACS_GEQUAL:=acs_map['z'];
-end;
-
-function ACS_PI      : chtype;
-begin
-  ACS_PI    :=acs_map['{'];
-end;
-
-function ACS_NEQUAL : chtype;
-begin
-  ACS_NEQUAL:=acs_map['|'];
-end;
-
-function ACS_STERLING : chtype;
-begin
-  ACS_STERLING:=acs_map['}'];
-end;
-
-end.
+       KEY_DL = 328;		{0510}
+       KEY_IL = 329;		{0511}
+       KEY_DC = 330;		{0512}
+       KEY_IC = 331;		{0513}
+       KEY_EIC = 332;		{0514}
+       KEY_CLEAR = 333;		{0515}
+       KEY_EOS = 334;		{0516}
+       KEY_EOL = 335;		{0517}
+       KEY_SF = 336;		{0520}
+       KEY_SR = 337;		{0521}
+       KEY_NPAGE = 338;		{0522}
+       KEY_PPAGE = 339;		{0523}
+       KEY_STAB = 340;		{0524}
+       KEY_CTAB = 341;		{0525}
+       KEY_CATAB = 342;		{0526}
+       KEY_ENTER = 343;		{0527}
+       KEY_SRESET = 344;	{0530}
+       KEY_RESET = 345;		{0531}
+       KEY_PRINT = 346;		{0532}
+       KEY_LL = 347;		{0533}
+       KEY_A1 = 348;		{0534}
+       KEY_A3 = 349;		{0535}
+       KEY_B2 = 350;		{0536}
+       KEY_C1 = 351;		{0537}
+       KEY_C3 = 352;		{0540}
+       KEY_BTAB = 353;		{0541}
+       KEY_BEG = 354;		{0542}
+       KEY_CANCEL = 355;	{0543}
+       KEY_CLOSE = 356;		{0544}
+       KEY_COMMAND = 357;	{0545}
+       KEY_COPY = 358;		{0546}
+       KEY_CREATE = 359;	{0547}
+       KEY_END = 360;		{0550}
+       KEY_EXIT = 361;		{0551}
+       KEY_FIND = 362;		{0552}
+       KEY_HELP = 363;		{0553}
+       KEY_MARK = 364;		{0554}
+       KEY_MESSAGE = 365;	{0555}
+       KEY_MOVE = 366;		{0556}
+       KEY_NEXT = 367;		{0557}
+       KEY_OPEN = 368;		{0560}
+       KEY_OPTIONS = 369;	{0561}
+       KEY_PREVIOUS = 370;	{0562}
+       KEY_REDO = 371;		{0563}
+       KEY_REFERENCE = 372;	{0564}
+       KEY_REFRESH = 373;	{0565}
+       KEY_REPLACE = 374;	{0566}
+       KEY_RESTART = 375;	{0567}
+       KEY_RESUME = 376;	{0570}
+       KEY_SAVE = 377;		{0571}
+       KEY_SBEG = 378;		{0572}
+       KEY_SCANCEL = 379;	{0573}
+       KEY_SCOMMAND = 380;	{0574}
+       KEY_SCOPY = 381;		{0575}
+       KEY_SCREATE = 382;	{0576}
+       KEY_SDC = 383;		{0577}
+       KEY_SDL = 384;		{0600}
+       KEY_SELECT = 385;	{0601}
+       KEY_SEND = 386;		{0602}
+       KEY_SEOL = 387;		{0603}
+       KEY_SEXIT = 388;		{0604}
+       KEY_SFIND = 389;		{0605}
+       KEY_SHELP = 390;		{0606}
+       KEY_SHOME = 391;		{0607}
+       KEY_SIC = 392;		{0610}
+       KEY_SLEFT = 393;		{0611}
+       KEY_SMESSAGE = 394;	{0612}
+       KEY_SMOVE = 395;		{0613}
+       KEY_SNEXT = 396;		{0614}
+       KEY_SOPTIONS = 397;	{0615}
+       KEY_SPREVIOUS = 398;	{0616}
+       KEY_SPRINT = 399;	{0617}
+       KEY_SREDO = 400;		{0620}
+       KEY_SREPLACE = 401;	{0621}
+       KEY_SRIGHT = 402;	{0622}
+       KEY_SRSUME = 403;	{0623}
+       KEY_SSAVE = 404;		{0624}
+       KEY_SSUSPEND = 405;	{0625}
+       KEY_SUNDO = 406;		{0626}
+       KEY_SUSPEND = 407;	{0627}
+       KEY_UNDO = 408;		{0630}
+       KEY_MOUSE = 409;		{0631}
+       KEY_RESIZE = 410;	{0632}
+       KEY_MAX = 511;		{0777}
+
+    function mcprint(_para1:pchar; _para2:longint):longint;cdecl;
+    function has_key(_para1:longint):longint;cdecl;
+
+  implementation
+
+const External_library='';
+
+    function define_key(_para1:pchar; _para2:longint):longint;Cdecl; External;
+    function keyok(_para1:longint; _para2:bool):longint;Cdecl; External;
+    function resizeterm(_para1:longint; _para2:longint):longint;Cdecl; External;
+    function use_default_colors:longint;Cdecl; External;
+    function wresize(_para1:pWINDOW; _para2:longint; _para3:longint):longint;Cdecl; External;
+    function baudrate:longint;Cdecl; External;
+    function beep:longint;Cdecl; External;
+    function can_change_color:bool;Cdecl; External;
+    function cbreak:longint;Cdecl; External;
+    function clearok(_para1:pWINDOW; _para2:bool):longint;Cdecl; External;
+    function color_content(_para1:longint; _para2:plongint; _para3:plongint; _para4:plongint):longint;Cdecl; External;
+    function copywin(_para1:pWINDOW; _para2:pWINDOW; _para3:longint; _para4:longint; _para5:longint;
+               _para6:longint; _para7:longint; _para8:longint; _para9:longint):longint;Cdecl; External;
+    function curs_set(_para1:longint):longint;Cdecl; External;
+    function def_prog_mode:longint;Cdecl; External;
+    function def_shell_mode:longint;Cdecl; External;
+    function delay_output(_para1:longint):longint;Cdecl; External;
+    procedure delscreen(_para1:pSCREEN);Cdecl; External;
+    function delwin(_para1:pWINDOW):longint;Cdecl; External;
+    function doupdate:longint;Cdecl; External;
+    function echo:longint;Cdecl; External;
+    function endwin:longint;Cdecl; External;
+    function erasechar:char;Cdecl; External;
+    procedure filter;Cdecl; External;
+    function flash:longint;Cdecl; External;
+    function flushinp:longint;Cdecl; External;
+    function halfdelay(_para1:longint):longint;Cdecl; External;
+    function has_colors:bool;Cdecl; External;
+    function has_ic:longint;Cdecl; External;
+    function has_il:longint;Cdecl; External;
+    procedure idcok(_para1:pWINDOW; _para2:bool);Cdecl; External;
+    function idlok(_para1:pWINDOW; _para2:bool):longint;Cdecl; External;
+    procedure immedok(_para1:pWINDOW; _para2:bool);Cdecl; External;
+    function init_color(_para1:longint; _para2:longint; _para3:longint; _para4:longint):longint;Cdecl; External;
+    function init_pair(_para1:longint; _para2:longint; _para3:longint):longint;Cdecl; External;
+    function intrflush(_para1:pWINDOW; _para2:bool):longint;Cdecl; External;
+    function isendwin:longint;Cdecl; External;
+    function is_linetouched(_para1:pWINDOW; _para2:longint):longint;Cdecl; External;
+    function is_wintouched(_para1:pWINDOW):longint;Cdecl; External;
+    function keypad(_para1:pWINDOW; _para2:bool):longint;Cdecl; External;
+    function killchar:char;Cdecl; External;
+    function leaveok(_para1:pWINDOW; _para2:bool):longint;Cdecl; External;
+    function meta(_para1:pWINDOW; _para2:bool):longint;Cdecl; External;
+    function mvcur(_para1:longint; _para2:longint; _para3:longint; _para4:longint):longint;Cdecl; External;
+    function mvderwin(_para1:pWINDOW; _para2:longint; _para3:longint):longint;Cdecl; External;
+    function mvwin(_para1:pWINDOW; _para2:longint; _para3:longint):longint;Cdecl; External;
+    function napms(_para1:longint):longint;Cdecl; External;
+    function nl:longint;Cdecl; External;
+    function nocbreak:longint;Cdecl; External;
+    function nodelay(_para1:pWINDOW; _para2:bool):longint;Cdecl; External;
+    function noecho:longint;Cdecl; External;
+    function nonl:longint;Cdecl; External;
+    function noqiflush:longint;Cdecl; External;
+    function noraw:longint;Cdecl; External;
+    function notimeout(_para1:pWINDOW; _para2:bool):longint;Cdecl; External;
+    function overlay(_para1:pWINDOW; _para2:pWINDOW):longint;Cdecl; External;
+    function overwrite(_para1:pWINDOW; _para2:pWINDOW):longint;Cdecl; External;
+    function pair_content(_para1:longint; _para2:plongint; _para3:plongint):longint;Cdecl; External;
+    function pechochar(_para1:pWINDOW; _para2:chtype):longint;Cdecl; External;
+    function pnoutrefresh(_para1:pWINDOW; _para2:longint; _para3:longint; _para4:longint; _para5:longint;
+               _para6:longint; _para7:longint):longint;Cdecl; External;
+    function prefresh(_para1:pWINDOW; _para2:longint; _para3:longint; _para4:longint; _para5:longint;
+               _para6:longint; _para7:longint):longint;Cdecl; External;
+    function putp(_para1:pchar):longint;Cdecl; External;
+    function putwin(_para1:pWINDOW; _para2:pFILE):longint;Cdecl; External;
+    function qiflush:longint;Cdecl; External;
+    function raw:longint;Cdecl; External;
+    function resetty:longint;Cdecl; External;
+    function reset_prog_mode:longint;Cdecl; External;
+    function reset_shell_mode:longint;Cdecl; External;
 {
-  $Log$
-  Revision 1.5  2000-02-27 14:40:41  peter
-    * removed warnings/notes
-
+    function ripoffline(_para1:longint; init:function (_para1:pWINDOW; _para2:longint):longint):longint;Cdecl; External;
+}
+    function savetty:longint;Cdecl; External;
+    function scr_dump(_para1:pchar):longint;Cdecl; External;
+    function scr_init(_para1:pchar):longint;Cdecl; External;
+    function scrollok(_para1:pWINDOW; _para2:bool):longint;Cdecl; External;
+    function scr_restore(_para1:pchar):longint;Cdecl; External;
+    function scr_set(_para1:pchar):longint;Cdecl; External;
+    function slk_attroff(_para1:attr_t):longint;Cdecl; External;
+    function slk_attron(_para1:attr_t):longint;Cdecl; External;
+    function slk_attrset(_para1:attr_t):longint;Cdecl; External;
+    function slk_attr:attr_t;Cdecl; External;
+    function slk_clear:longint;Cdecl; External;
+    function slk_init(_para1:longint):longint;Cdecl; External;
+    function slk_noutrefresh:longint;Cdecl; External;
+    function slk_refresh:longint;Cdecl; External;
+    function slk_restore:longint;Cdecl; External;
+    function slk_set(_para1:longint; _para2:pchar; _para3:longint):longint;Cdecl; External;
+    function slk_touch:longint;Cdecl; External;
+    function start_color:longint;Cdecl; External;
+    function syncok(_para1:pWINDOW; _para2:bool):longint;Cdecl; External;
+    function termattrs:chtype;Cdecl; External;
+    function tigetflag(_para1:pchar):longint;Cdecl; External;
+    function tigetnum(_para1:pchar):longint;Cdecl; External;
+    function typeahead(_para1:longint):longint;Cdecl; External;
+    function ungetch(_para1:longint):longint;Cdecl; External;
+    procedure use_env(_para1:bool);Cdecl; External;
+    function vidattr(_para1:chtype):longint;Cdecl; External;
+{
+    function vidputs(_para1:chtype; _para2:function (_para1:longint):longint):longint;Cdecl; External;
+    function vwprintw(_para1:pWINDOW; _para2:pchar; _para3:va_list):longint;Cdecl; External;
+    function vwscanw(_para1:pWINDOW; _para2:pchar; _para3:va_list):longint;Cdecl; External;
 }
+    function waddch(_para1:pWINDOW; _para2:chtype):longint;Cdecl; External;
+    function waddchnstr(_para1:pWINDOW; _para2:pchtype; _para3:longint):longint;Cdecl; External;
+    function waddnstr(_para1:pWINDOW; _para2:pchar; _para3:longint):longint;Cdecl; External;
+    function wattr_on(_para1:pWINDOW; _para2:attr_t):longint;Cdecl; External;
+    function wattr_off(_para1:pWINDOW; _para2:attr_t):longint;Cdecl; External;
+    function wbkgd(_para1:pWINDOW; _para2:chtype):longint;Cdecl; External;
+    procedure wbkgdset(_para1:pWINDOW; _para2:chtype);Cdecl; External;
+    function wborder(_para1:pWINDOW; _para2:chtype; _para3:chtype; _para4:chtype; _para5:chtype;
+               _para6:chtype; _para7:chtype; _para8:chtype; _para9:chtype):longint;Cdecl; External;
+    function wchgat(_para1:pWINDOW; _para2:longint; _para3:attr_t; _para4:longint; _para5:pointer):longint;Cdecl; External;
+    function wclear(_para1:pWINDOW):longint;Cdecl; External;
+    function wclrtobot(_para1:pWINDOW):longint;Cdecl; External;
+    function wclrtoeol(_para1:pWINDOW):longint;Cdecl; External;
+    procedure wcursyncup(_para1:pWINDOW);Cdecl; External;
+    function wdelch(_para1:pWINDOW):longint;Cdecl; External;
+    function wechochar(_para1:pWINDOW; _para2:chtype):longint;Cdecl; External;
+    function werase(_para1:pWINDOW):longint;Cdecl; External;
+    function wgetch(_para1:pWINDOW):longint;Cdecl; External;
+    function wgetnstr(_para1:pWINDOW; _para2:pchar; _para3:longint):longint;Cdecl; External;
+    function whline(_para1:pWINDOW; _para2:chtype; _para3:longint):longint;Cdecl; External;
+    function winchnstr(_para1:pWINDOW; _para2:pchtype; _para3:longint):longint;Cdecl; External;
+    function winnstr(_para1:pWINDOW; _para2:pchar; _para3:longint):longint;Cdecl; External;
+    function winsch(_para1:pWINDOW; _para2:chtype):longint;Cdecl; External;
+    function winsdelln(_para1:pWINDOW; _para2:longint):longint;Cdecl; External;
+    function winsnstr(_para1:pWINDOW; _para2:pchar; _para3:longint):longint;Cdecl; External;
+    function wmove(_para1:pWINDOW; _para2:longint; _para3:longint):longint;Cdecl; External;
+    function wnoutrefresh(_para1:pWINDOW):longint;Cdecl; External;
+    function wredrawln(_para1:pWINDOW; _para2:longint; _para3:longint):longint;Cdecl; External;
+    function wrefresh(_para1:pWINDOW):longint;Cdecl; External;
+    function wscrl(_para1:pWINDOW; _para2:longint):longint;Cdecl; External;
+    function wsetscrreg(_para1:pWINDOW; _para2:longint; _para3:longint):longint;Cdecl; External;
+    procedure wsyncdown(_para1:pWINDOW);Cdecl; External;
+    procedure wsyncup(_para1:pWINDOW);Cdecl; External;
+    function wtimeout(_para1:pWINDOW; _para2:longint):longint;Cdecl; External;
+    function wtouchln(_para1:pWINDOW; _para2:longint; _para3:longint; _para4:longint):longint;Cdecl; External;
+    function wvline(_para1:pWINDOW; _para2:chtype; _para3:longint):longint;Cdecl; External;
+    function mvwchgat(_para1:pWINDOW; _para2:longint; _para3:longint;
+                      _para4:longint; _para5:longint; _para6:longint;
+                      _para7:longint):longint;Cdecl; External;
+
+    function wgetstr(w : pwindow;s : pchar) : longint;
+      begin
+         wgetstr:=wgetnstr(w,s,-(1));
+      end;
+    function getnstr(s : pchar;n : longint) : longint;
+      begin
+         getnstr:=wgetnstr(stdscr,s,n);
+      end;
+    function setterm(term : longint) : longint;
+      begin
+         {
+         setterm:=setupterm(term,1,plongint(0));
+         }
+      end;
+    function fixterm : longint;
+      begin
+         fixterm:=reset_prog_mode;
+      end;
+    function resetterm : longint;
+      begin
+         resetterm:=reset_shell_mode;
+      end;
+    function saveterm : longint;
+      begin
+         saveterm:=def_prog_mode;
+      end;
+    function crmode : longint;
+      begin
+         crmode:=cbreak;
+      end;
+    function nocrmode : longint;
+      begin
+         nocrmode:=nocbreak;
+      end;
+    procedure getsyx(var y,x : longint);
+      begin
+         getyx(stdscr,y,x);
+      end;
+    function getattrs(win : pwindow) : longint;
+      var
+         if_local1 : longint;
+
+      begin
+         if win<>nil then
+           if_local1:=win^._attrs
+         else
+           if_local1:=A_NORMAL;
+         getattrs:=if_local1;
+      end;
+    function getcurx(win : pwindow) : longint;
+      var
+         if_local1 : longint;
+
+      begin
+         if win<>nil then
+           if_local1:=win^._curx
+         else
+           if_local1:=ERR;
+         getcurx:=if_local1;
+      end;
+    function getcury(win : pwindow) : longint;
+      var
+         if_local1 : longint;
+
+      begin
+         if win<>Nil then
+           if_local1:=win^._cury
+         else
+           if_local1:=ERR;
+         getcury:=if_local1;
+      end;
+    function getbegx(win : pwindow) : longint;
+      var
+         if_local1 : longint;
+
+      begin
+         if win<>Nil then
+           if_local1:=win^._begx
+         else
+           if_local1:=ERR;
+         getbegx:=if_local1;
+      end;
+    function getbegy(win : pwindow) : longint;
+      var
+         if_local1 : longint;
+
+      begin
+         if win<>Nil then
+           if_local1:=win^._begy
+         else
+           if_local1:=ERR;
+         getbegy:=if_local1;
+      end;
+    function getmaxx(win : pwindow) : longint;
+      var
+         if_local1 : longint;
+
+      begin
+         if win<>Nil then
+           if_local1:=(win^._maxx) + 1
+         else
+           if_local1:=ERR;
+         getmaxx:=if_local1;
+      end;
+    function getmaxy(win : pwindow) : longint;
+      var
+         if_local1 : longint;
+
+      begin
+         if win<>Nil then
+           if_local1:=(win^._maxy) + 1
+         else
+           if_local1:=ERR;
+         getmaxy:=if_local1;
+      end;
+    function getparx(win : pwindow) : longint;
+      var
+         if_local1 : longint;
+
+      begin
+         if win<>Nil then
+           if_local1:=win^._parx
+         else
+           if_local1:=ERR;
+         getparx:=if_local1;
+      end;
+    function getpary(win : pwindow) : longint;
+      var
+         if_local1 : longint;
+
+      begin
+         if win<>Nil then
+           if_local1:=win^._pary
+         else
+           if_local1:=ERR;
+         getpary:=if_local1;
+      end;
+    function wstandout(win : pwindow) : longint;
+      begin
+         wstandout:=wattr_set(win,A_STANDOUT);
+      end;
+    function wstandend(win : pwindow) : longint;
+      begin
+         wstandend:=wattr_set(win,A_NORMAL);
+      end;
+    function wattron(win : pwindow;at : longint) : longint;
+      begin
+         wattron:=wattr_on(win,at);
+      end;
+    function wattroff(win : pwindow;at : longint) : longint;
+      begin
+         wattroff:=wattr_off(win,at);
+      end;
+    function wattrset(win : pwindow;at : longint) : longint;
+      begin
+         wattrset:=wattr_set(win,at);
+      end;
+    function scroll(win : pwindow) : longint;
+      begin
+         scroll:=wscrl(win,1);
+      end;
+    function touchwin(win : pwindow) : longint;
+      begin
+         touchwin:=wtouchln(win,0,getmaxy(win),1);
+      end;
+    function touchline(win : pwindow;s,c : longint) : longint;
+      begin
+         touchline:=wtouchln(win,s,c,1);
+      end;
+    function untouchwin(win : pwindow) : longint;
+      begin
+         untouchwin:=wtouchln(win,0,getmaxy(win),0);
+      end;
+    function box(win : pwindow;v,h : longint) : longint;
+      begin
+         box:=wborder(win,v,v,h,h,0,0,0,0);
+      end;
+    function border(ls,rs,ts,bs,tl,tr,bl,br : longint) : longint;
+      begin
+         border:=wborder(stdscr,ls,rs,ts,bs,tl,tr,bl,br);
+      end;
+    function hline(ch,n : longint) : longint;
+      begin
+         hline:=whline(stdscr,ch,n);
+      end;
+    function vline(ch,n : longint) : longint;
+      begin
+         vline:=wvline(stdscr,ch,n);
+      end;
+    function winstr(w : pwindow;s : pchar) : longint;
+      begin
+         winstr:=winnstr(w,s,-(1));
+      end;
+    function winchstr(w : pwindow;s : pchar) : longint;
+      begin
+        {
+         winchstr:=winchnstr(w,s,-1);
+         }
+      end;
+    function winsstr(w : pwindow;s : pchar) : longint;
+      begin
+         winsstr:=winsnstr(w,s,-(1));
+      end;
+    function redrawwin(w : pwindow) : longint;
+      begin
+         redrawwin:=wredrawln(w,0,(w^._maxy) + 1);
+      end;
+    function waddstr(win : pwindow;st : pchar) : longint;
+      begin
+         waddstr:=waddnstr(win,st,-1);
+      end;
+    function waddchstr(win : pwindow;st : pchar) : longint;
+      begin
+         waddchstr:=waddchnstr(win,st,-1);
+      end;
+    function addch(ch : longint) : longint;
+      begin
+         addch:=waddch(stdscr,ch);
+      end;
+    function addchnstr(st : pchar;n : longint) : longint;
+      begin
+         addchnstr:=waddchnstr(stdscr,st,n);
+      end;
+    function addchstr(st : pchar) : longint;
+      begin
+         addchstr:=waddchstr(stdscr,st);
+      end;
+    function addnstr(st : pchar;n : longint) : longint;
+      begin
+         addnstr:=waddnstr(stdscr,st,n);
+      end;
+    function addstr(st : pchar) : longint;
+      begin
+         addstr:=waddnstr(stdscr,st,-1);
+      end;
+    function attroff(at : longint) : longint;
+      begin
+         attroff:=wattroff(stdscr,at);
+      end;
+    function attron(at : longint) : longint;
+      begin
+         attron:=wattron(stdscr,at);
+      end;
+    function attrset(at : longint) : longint;
+      begin
+         attrset:=wattrset(stdscr,at);
+      end;
+    function bkgd(ch : longint) : longint;
+      begin
+         bkgd:=wbkgd(stdscr,ch);
+      end;
+    procedure bkgdset(ch : longint);
+      begin
+         wbkgdset(stdscr,ch);
+      end;
+    function clear : longint;
+      begin
+         clear:=wclear(stdscr);
+      end;
+    function clrtobot : longint;
+      begin
+         clrtobot:=wclrtobot(stdscr);
+      end;
+    function clrtoeol : longint;
+      begin
+         clrtoeol:=wclrtoeol(stdscr);
+      end;
+    function delch : longint;
+      begin
+         delch:=wdelch(stdscr);
+      end;
+    function deleteln : longint;
+      begin
+         deleteln:=winsdelln(stdscr,-1);
+      end;
+    function echochar(c : longint) : longint;
+      begin
+         echochar:=wechochar(stdscr,c);
+      end;
+    function erase : longint;
+      begin
+         erase:=werase(stdscr);
+      end;
+    function getch : longint;
+      begin
+         getch:=wgetch(stdscr);
+      end;
+    function getstr(st : pchar) : longint;
+      begin
+         getstr:=wgetstr(stdscr,st);
+      end;
+    function inch : longint;
+      begin
+         inch:=winch(stdscr);
+      end;
+    function inchnstr(s : pchar;n : longint) : longint;
+      begin
+         inchnstr:=winchnstr(stdscr,s,n);
+      end;
+    function inchstr(s : pchar) : longint;
+      begin
+         inchstr:=winchstr(stdscr,s);
+      end;
+    function innstr(s : pchar;n : longint) : longint;
+      begin
+         innstr:=winnstr(stdscr,s,n);
+      end;
+    function insch(c : longint) : longint;
+      begin
+         insch:=winsch(stdscr,c);
+      end;
+    function insdelln(n : longint) : longint;
+      begin
+         insdelln:=winsdelln(stdscr,n);
+      end;
+    function insertln : longint;
+      begin
+         insertln:=winsdelln(stdscr,1);
+      end;
+    function insnstr(s : pchar;n : longint) : longint;
+      begin
+         insnstr:=winsnstr(stdscr,s,n);
+      end;
+    function insstr(s : pchar) : longint;
+      begin
+         insstr:=winsstr(stdscr,s);
+      end;
+    function instr(s : pchar) : longint;
+      begin
+         instr:=winstr(stdscr,s);
+      end;
+    function move(y,x : longint) : longint;
+      begin
+         move:=wmove(stdscr,y,x);
+      end;
+    function refresh : longint;
+      begin
+         refresh:=wrefresh(stdscr);
+      end;
+    function scrl(n : longint) : longint;
+      begin
+         scrl:=wscrl(stdscr,n);
+      end;
+    function setscrreg(t,b : longint) : longint;
+      begin
+         setscrreg:=wsetscrreg(stdscr,t,b);
+      end;
+    function standend : longint;
+      begin
+         standend:=wstandend(stdscr);
+      end;
+    function standout : longint;
+      begin
+         standout:=wstandout(stdscr);
+      end;
+    function timeout(delay : longint) : longint;
+      begin
+         timeout:=wtimeout(stdscr,delay);
+      end;
+    function wdeleteln(win : pwindow) : longint;
+      begin
+         wdeleteln:=winsdelln(win,-1);
+      end;
+    function winsertln(win : pwindow) : longint;
+      begin
+         winsertln:=winsdelln(win,1);
+      end;
+    function mvaddch(y,x,ch : longint) : longint;
+      begin
+         mvaddch:=mvwaddch(stdscr,y,x,ch);
+      end;
+    function mvaddchnstr(y,x: longint;st : pchar;n : longint) : longint;
+      begin
+         mvaddchnstr:=mvwaddchnstr(stdscr,y,x,st,n);
+      end;
+    function mvaddchstr(y,x : longint;st : pchar) : longint;
+      begin
+         mvaddchstr:=mvwaddchstr(stdscr,y,x,st);
+      end;
+    function mvaddnstr(y,x: longint;st : pchar; n : longint) : longint;
+      begin
+         mvaddnstr:=mvwaddnstr(stdscr,y,x,st,n);
+      end;
+    function mvaddstr(y,x : longint;st : pchar) : longint;
+      begin
+         mvaddstr:=mvwaddstr(stdscr,y,x,st);
+      end;
+    function mvdelch(y,x : longint) : longint;
+      begin
+         mvdelch:=mvwdelch(stdscr,y,x);
+      end;
+    function mvgetch(y,x : longint) : longint;
+      begin
+         mvgetch:=mvwgetch(stdscr,y,x);
+      end;
+    function mvgetnstr(y,x : longint;st : pchar;n : longint) : longint;
+      begin
+         mvgetnstr:=mvwgetnstr(stdscr,y,x,st,n);
+      end;
+    function mvgetstr(y,x: longint;st : pchar) : longint;
+      begin
+         mvgetstr:=mvwgetstr(stdscr,y,x,st);
+      end;
+    function mvhline(y,x : longint;c : chtype;n : longint) : longint;
+      begin
+         mvhline:=mvwhline(stdscr,y,x,c,n);
+      end;
+    function mvinch(y,x : longint) : longint;
+      begin
+         mvinch:=mvwinch(stdscr,y,x);
+      end;
+    function mvinchnstr(y,x : longint;s : pchar;n : longint) : longint;
+      begin
+         mvinchnstr:=mvwinchnstr(stdscr,y,x,s,n);
+      end;
+    function mvinchstr(y,x : longint;s : pchar) : longint;
+      begin
+         mvinchstr:=mvwinchstr(stdscr,y,x,s);
+      end;
+    function mvinnstr(y,x : longint;s : pchar;n : longint) : longint;
+      begin
+         mvinnstr:=mvwinnstr(stdscr,y,x,s,n);
+      end;
+    function mvinsch(y,x: longint;c : chtype) : longint;
+      begin
+         mvinsch:=mvwinsch(stdscr,y,x,c);
+      end;
+    function mvinsnstr(y,x : longint;s : pchar;n : longint) : longint;
+      begin
+         mvinsnstr:=mvwinsnstr(stdscr,y,x,s,n);
+      end;
+    function mvinsstr(y,x : longint;s : pchar) : longint;
+      begin
+         mvinsstr:=mvwinsstr(stdscr,y,x,s);
+      end;
+    function mvinstr(y,x : longint;s : pchar) : longint;
+      begin
+         mvinstr:=mvwinstr(stdscr,y,x,s);
+      end;
+    function mvvline(y,x,c,n : longint) : longint;
+      begin
+         mvvline:=mvwvline(stdscr,y,x,c,n);
+      end;
 
+    function attr_get : longint;
+      begin
+         attr_get:=wattr_get(stdscr);
+      end;
+    function attr_off(a : longint) : longint;
+      begin
+         attr_off:=wattr_off(stdscr,a);
+      end;
+    function attr_on(a : longint) : longint;
+      begin
+         attr_on:=wattr_on(stdscr,a);
+      end;
+    function attr_set(a : longint) : longint;
+      begin
+         attr_set:=wattr_set(stdscr,a);
+      end;
+    function box_set(w : pwindow;v,h : longint) : longint;
+      begin
+        {
+         box_set:=wborder_set(w,v,v,h,h,0,0,0,9);
+         }
+      end;
+    function chgat(n,a,c,o : longint) : longint;
+      begin
+      {
+         chgat:=wchgat(stdscr,n,a,c,o);
+      }
+      end;
+    function getbkgd(win : pwindow) : longint;
+      begin
+         getbkgd:=win^._bkgd;
+      end;
+    function hline_set(c,n : longint) : longint;
+      begin
+      {
+         hline_set:=whline_set(stdscr,c,n);
+      }
+      end;
+    function mvchgat(y,x,n,a,c,o : longint) : longint;
+      begin
+         mvchgat:=mvwchgat(stdscr,y,x,n,a,c,o);
+      end;
+
+    function mvhline_set(y,x,c,n : longint) : longint;
+      begin
+      {
+         mvhline_set:=mvwhline_set(stdscr,y,x,c,n);
+       }
+      end;
+    function mvvline_set(y,x,c,n : longint) : longint;
+      begin
+      {
+         mvvline_set:=mvwvline_set(stdscr,y,x,c,n);
+      }
+      end;
+    function slk_attr_off(a : longint) : longint;
+      begin
+         slk_attr_off:=slk_attroff(a);
+      end;
+    function slk_attr_on(a : longint) : longint;
+      begin
+         slk_attr_on:=slk_attron(a);
+      end;
+    function slk_attr_set(a : longint) : longint;
+      begin
+         slk_attr_set:=slk_attrset(a);
+      end;
+    function vid_attr(a : longint) : longint;
+      begin
+         vid_attr:=vidattr(a);
+      end;
+    function vline_set(c,n : longint) : longint;
+      begin
+      {
+         vline_set:=vhline_set(stdscr,c,n);
+      }
+      end;
+
+    function wattr_get(win : pwindow) : longint;
+      begin
+         wattr_get:=win^._attrs;
+      end;
+    function KEY_F(n : longint) : longint;
+      begin
+         KEY_F:=KEY_F0 + n;
+      end;
+    function mcprint(_para1:pchar; _para2:longint):longint;Cdecl; External;
+    function has_key(_para1:longint):longint;Cdecl; External;
+    function derwin (_para1:pWINDOW; _para2:longint; _para3:longint; _para4:longint; _para5:longint):PWINDOW;cdecl; external;
+    function dupwin (_para1:pWINDOW):PWINDOW;cdecl; external;
+    Function getwin (_para1:pFILE):PWINDOW;cdecl; external;
+    function initscr :PWINDOW;cdecl; external;
+    function keyname  (_para1:longint):pchar;cdecl; external;
+    function longname :pchar;cdecl; external;
+    function newpad (_para1:longint; _para2:longint):PWINDOW;cdecl; external;
+    Function newterm (_para1:pchar; _para2:pFILE; _para3:pFILE):PSCREEN;cdecl; external;
+    Function newwin  (_para1:longint; _para2:longint; _para3:longint; _para4:longint):PWINDOW;cdecl; external;
+    Function set_term (_para1:pSCREEN):PSCREEN;cdecl; external;
+    Function slk_label (_para1:longint):pchar;cdecl; external;
+    function subpad (_para1:pWINDOW; _para2:longint; _para3:longint; _para4:longint; _para5:longint):PWINDOW;cdecl; external;
+    Function subwin (_para1:pWINDOW; _para2:longint; _para3:longint; _para4:longint; _para5:longint):PWINDOW;cdecl; external;
+    Function termname :pchar;cdecl; external;
+    Function tigetstr (_para1:pchar):pchar;cdecl; external;
+
+    procedure getyx(win : pwindow; var y,x : longint);
+    begin
+      X:=ERR;
+      Y:=ERR;
+      if Win<>Nil then
+        begin
+        Y:=win^._cury;
+        X:=Win^._curx;
+        end;
+    end;
+    procedure getbegyx(win : pwindow; var y,x : longint);
+    begin
+      X:=ERR;
+      Y:=ERR;
+      if Win<>Nil then
+        begin
+        Y:=win^._begy;
+        X:=Win^._begx;
+        end;
+    end;
+    procedure getmaxyx(win : pwindow; var y,x : longint);
+    begin
+      X:=ERR;
+      Y:=ERR;
+      if Win<>Nil then
+        begin
+        Y:=win^._maxy+1;
+        X:=Win^._maxx+1;
+        end;
+    end;
+    procedure getparyx(win : pwindow; var y,x : longint);
+    begin
+      X:=ERR;
+      Y:=ERR;
+      if Win<>Nil then
+        begin
+        Y:=win^._pary;
+        X:=Win^._parx;
+        end;
+    end;
+    function winch (win : PWindow) : longint;
+    begin
+      if win<>nil then
+       winch:=win^._line[win^._cury].text[Win^ ._curx]
+      else
+        winch:=0;
+    end;
+    function wattr_set(win : pwindow; at : longint) : longint;
+    begin
+      If win<>nil then
+        begin
+        win^._attrs := at;
+        wattr_set:=at;
+        end
+      else
+        wattr_set:=0;
+    end;
+    procedure setsyx (y,x : longint);
+    begin
+      stdscr^._cury := y;
+      stdscr^._curx := x;
+    end;
+    function  mvwaddch(win : pwindow;y,x : longint; ch : chtype) : longint;
+    begin
+      if wmove(win,y,x) = ERR then
+        exit(ERR)
+      else
+        exit(waddch(win,ch))
+    end;
+    function  mvwaddchnstr(win : pwindow;y,x : longint;st : pchar;n : longint) : longint;
+    begin
+      if wmove (win,y,x)=ERR then
+        exit(ERR)
+      else
+        exit(waddchnstr(win,st,n))
+    end;
+    function  mvwaddchstr(win : pwindow;y,x : longint;st : pchar) : longint;
+    begin
+      if wmove (win,y,x)=ERR then
+        exit(ERR)
+      else
+        exit(waddchnstr(win,st,-1))
+    end;
+    function  mvwaddnstr(win : pwindow;y,x : longint;st : pchar;n : longint) : longint;
+    begin
+      if wmove (win,y,x)=ERR then
+        exit(ERR)
+      else
+        exit(waddnstr(win,st,n))
+    end;
+    function  mvwaddstr(win : pwindow;y,x : longint;st : pchar) : longint;
+    begin
+      if wmove (win,y,x)=ERR then
+        exit(ERR)
+      else
+        exit(waddnstr(win,st,-1))
+    end;
+    function  mvwdelch(win : pwindow;y,x : longint) : longint;
+    begin
+      if wmove (win,y,x)=ERR then
+        exit(ERR)
+      else
+        exit(wdelch(win))
+    end;
+    function  mvwgetch(win : pwindow;y,x : longint) : longint;
+    begin
+      if wmove (win,y,x)=ERR then
+        exit(ERR)
+      else
+        exit(wgetch(win))
+    end;
+    function  mvwgetnstr(win : pwindow;y,x : longint;st : pchar;n: longint) : longint;
+    begin
+      if wmove (win,y,x)=ERR then
+        exit(ERR)
+      else
+        exit(wgetnstr(win,st,n))
+    end;
+    function  mvwgetstr(win : pwindow;y,x : longint;st: pchar) : longint;
+    begin
+      if wmove (win,y,x)=ERR then
+        exit(ERR)
+      else
+        exit(wgetstr(win,st))
+    end;
+    function  mvwhline(win : pwindow;y,x : longint;c : chtype;n : longint) : longint;
+    begin
+      if wmove (win,y,x)=ERR then
+        exit(ERR)
+      else
+        exit(whline(win,c,n))
+    end;
+    function  mvwinch(win : pwindow;y,x : longint) : longint;
+    begin
+      if wmove (win,y,x)=ERR then
+        exit(ERR)
+      else
+        exit(winch(win))
+    end;
+    function  mvwinchnstr(win : pwindow;y,x : longint;s : pchar; n : longint) : longint;
+    begin
+      if wmove (win,y,x)=ERR then
+        exit(ERR)
+      else
+        exit(winchnstr(win,s,n))
+    end;
+    function  mvwinchstr(win : pwindow;y,x : longint;s : pchar) : longint;
+    begin
+      if wmove (win,y,x)=ERR then
+        exit(ERR)
+      else
+        exit(winchstr(win,s))
+    end;
+    function  mvwinnstr(win : pwindow;y,x : longint;s : pchar;n : longint) : longint;
+    begin
+      if wmove (win,y,x)=ERR then
+        exit(ERR)
+      else
+        exit(winnstr(win,s,n))
+    end;
+    function  mvwinsch(win : pwindow;y,x : longint;c : chtype) : longint;
+    begin
+      if wmove (win,y,x)=ERR then
+        exit(ERR)
+      else
+        exit(winsch(win,c))
+    end;
+    function  mvwinsnstr(win : pwindow;y,x : longint;s : pchar;n : longint) : longint;
+    begin
+      if wmove (win,y,x)=ERR then
+        exit(ERR)
+      else
+        exit(winsnstr(win,s,n))
+    end;
+    function  mvwinsstr(win : pwindow;y,x : longint;s : pchar) : longint;
+    begin
+      if wmove (win,y,x)=ERR then
+        exit(ERR)
+      else
+        exit(winsstr(win,s))
+    end;
+    function  mvwinstr(win : pwindow;y,x : longint;s : pchar) : longint;
+    begin
+      if wmove (win,y,x)=ERR then
+        exit(ERR)
+      else
+        exit(winstr(win,s))
+    end;
+    function  mvwvline(win : pwindow;y,x : longint;c : chtype;n : longint) : longint;
+    begin
+      if wmove (win,y,x)=ERR then
+        exit(ERR)
+      else
+        exit(wvline(win,c,n))
+    end;
+     function color_pair(n : longint): longint;
+     begin
+       color_pair:=n shl 8;
+     end;
+
+    function ACS_ULCORNER : chtype;
+    begin
+      ACS_ULCORNER:=acs_map['l'];
+    end;	
+    function ACS_LLCORNER : chtype;
+    begin
+      ACS_LLCORNER:=acs_map['m'];
+    end;	
+    function ACS_URCORNER : chtype;
+    begin
+      ACS_URCORNER:=acs_map['k'];
+    end;	
+    function ACS_LRCORNER : chtype;
+    begin
+      ACS_LRCORNER:=acs_map['j'];
+    end;	
+    function ACS_LTEE : chtype;
+    begin
+      ACS_LTEE:=acs_map['t'];
+    end;
+    function ACS_RTEE : chtype;
+    begin
+      ACS_RTEE:=acs_map['u'];
+    end;
+    function ACS_BTEE : chtype;
+    begin
+      ACS_BTEE:=acs_map['v'];
+    end;
+    function ACS_TTEE : chtype;
+    begin
+      ACS_TTEE:=acs_map['w'];
+    end;
+    function ACS_HLINE : chtype;
+    begin
+    {-----------------
+      o = upper line
+      q = middle line
+      s = bottom line
+     -----------------}
+      ACS_HLINE:=acs_map['q'];
+    end;
+    function ACS_VLINE : chtype;
+    begin
+      ACS_VLINE:=acs_map['x'];
+    end;
+    function ACS_PLUS : chtype;
+    begin
+      ACS_PLUS:=acs_map['n'];
+    end;
+    function ACS_S1	 : chtype;
+    begin
+      ACS_S1	:=acs_map['o'];
+    end;	
+    function ACS_S9	 : chtype;
+    begin
+      ACS_S9	:=acs_map['s'];
+    end;	
+    function ACS_DIAMOND : chtype;
+    begin
+      ACS_DIAMOND:=acs_map['`'];
+    end;	
+    function ACS_CKBOARD : chtype;
+    begin
+      ACS_CKBOARD:=acs_map['a'];
+    end;	
+    function ACS_DEGREE : chtype;
+    begin
+      ACS_DEGREE:=acs_map['f'];
+    end;	
+    function ACS_PLMINUS : chtype;
+    begin
+      ACS_PLMINUS:=acs_map['g'];
+    end;	
+    function ACS_BULLET : chtype;
+    begin
+      ACS_BULLET:=acs_map['~'];
+    end;	
+
+    function ACS_LARROW : chtype;
+    begin
+      ACS_LARROW:=acs_map[','];
+    end;	
+    function ACS_RARROW : chtype;
+    begin
+      ACS_RARROW:=acs_map['+'];
+    end;	
+    function ACS_DARROW : chtype;
+    begin
+      ACS_DARROW:=acs_map['.'];
+    end;	
+    function ACS_UARROW : chtype;
+    begin
+      ACS_UARROW:=acs_map['-'];
+    end;	
+    function ACS_BOARD : chtype;
+    begin
+      ACS_BOARD:=acs_map['h'];
+    end;	
+    function ACS_LANTERN : chtype;
+    begin
+      ACS_LANTERN:=acs_map['i'];
+    end;	
+    function ACS_BLOCK : chtype;
+    begin
+      ACS_BLOCK:=acs_map['0'];
+    end;	
+    function ACS_S3	 : chtype;
+    begin
+      ACS_S3	:=acs_map['p'];
+    end;	
+    function ACS_S7	 : chtype;
+    begin
+      ACS_S7	:=acs_map['r'];
+    end;	
+    function ACS_LEQUAL : chtype;
+    begin
+      ACS_LEQUAL:=acs_map['y'];
+    end;	
+    function ACS_GEQUAL : chtype;
+    begin
+      ACS_GEQUAL:=acs_map['z'];
+    end;	
+    function ACS_PI	 : chtype;
+    begin
+      ACS_PI	:=acs_map['{'];
+    end;	
+    function ACS_NEQUAL : chtype;
+    begin
+      ACS_NEQUAL:=acs_map['|'];
+    end;	
+    function ACS_STERLING : chtype;
+    begin
+      ACS_STERLING:=acs_map['}'];
+    end;	
+end.

+ 24 - 0
packages/ncurses/ocrt.pp

@@ -63,6 +63,9 @@ Unit oCrt;
                         | 3) nSEdit was not handling tec.firsttime correctly
                         | when a tec.special was processed.
   2.06 | 01/11/00 | kjw | See ncrt.inc.
+  2.07 | 01/31/00 | kjw | 1) See ncrt.inc.
+                        | 2) Added getcolor, getframecolor, getheadercolor
+                        | methods to tnWindow.
 ------------------------------------------------------------------------------
 }
 Interface
@@ -176,6 +179,9 @@ Type
           Function GetHeader : string;
          Procedure PutHeader(hdr : string; hcolor : integer; hpos : tnJustify);
          Procedure SetColor(att : integer);
+          Function GetColor : integer;
+          Function GetFrameColor : integer;
+          Function GetHeaderColor : integer;
          Procedure PutFrame(att : integer);
          Procedure Move(x,y : integer);
          Procedure Scroll(ln : integer; dir : tnUpDown);
@@ -433,6 +439,24 @@ Begin
    If visible Then wrefresh(wn);
 End;
 
+{ get the writeable window color }
+Function tnWindow.GetColor : integer;
+Begin
+   GetColor := wincolor;
+End;
+
+{ get the frame color }
+Function tnWindow.GetFrameColor : integer;
+Begin
+   GetFrameColor := framecolor;
+End;
+
+{ get the header color }
+Function tnWindow.GetHeaderColor : integer;
+Begin
+   GetHeaderColor := hdrcolor;
+End;
+
 { frame an un-framed window, or update the frame color of a framed window }
 Procedure tnWindow.PutFrame(att : integer);
 Var