Metropoli BBS
VIEWER: tcxl-ref.txt MODE: TEXT (ASCII)

            The TesSeRact CXL User Interface Development System


                         Library Reference Manual


                      Version 5.51 -- October 1, 1990


     Copyright 1990, Innovative Data Concepts
     All Rights Reserved


     Innovative Data Concepts
     1657 The Fairways
     Suite 101
     Jenkintown, PA 19046
     Voice:  1-215-884-3373
     Orders: 1-800-926-4551
     FAX:    1-215-886-4225



TCXL is  part of  IDC's TesSeRact  Development Tools series of programmer's
products.
This  document;   other  accompanying  written  and  disk-based  notes  and
specifications; and  all referenced  and related program files accompanying
this document  are copyrighted  by Innovative  Data Concepts.  For ordering
information, see  the ORDER.DOC  file provided  with  this  package.    For
shareware distribution requirements, see the VENDOR.DOC file.





                  _______
             ____|__     |               (R)
          --|       |    |-------------------
            |   ____|__  |  Association of
            |  |       |_|  Shareware
            |__|   o   |    Professionals
          -----|   |   |---------------------
               |___|___|    MEMBER


The TesSeRact  Development Tools are distributed as shareware -- this means
that we  encourage users,  subject to restrictions described in the License
Agreement, to  share copies  of this  program with  friends, associates and
bulletin boards.  You may not share the registered version of The TesSeRact
Development Tools;  however, you  may request  a  free  shareware  disk  by
completing the form in VENDOR.DOC.

If you make copies of The TesSeRact Development Tools, you must include all
files in  the original  distribution files,  as well  as the  documentation
archive.   You are  not permitted  to distribute  The TesSeRact Development
Tools without this documentation.

Innovative Data  Concepts is  a member  of  the  Association  of  Shareware
Professionals.   The  ASP  has  established  stringent  standards  for  its
members.   ASP wants  to make  sure that  the shareware principle works for
you.  If you are unable to resolve a problem with an ASP member (other than
technical support),  ASP may  be able  to help.   Please  write to  the ASP
Ombudsman at P.O. Box 5786, Bellevue, WA 98006.


                                Trademarks

     SWAPSK, SWAPSP, SWAPTN, SWAPMT, SWAPMM, SWAPSH, SWAPDT, SWAPNG and The
          SWAP Utilities are trademarks of Innovative Data Concepts.
     TesSeRact is a trademark of Innovative Data Concepts
     CompuServe is a registered trademark of CompuServe Incorporated.
     DESQview is a trademark of Quarterdeck Office Systems.
     Epson is a registered trademark of Seiko Epson Corporation.
     IBM is a registered trademark of International Business Machines.
     LIM  and   EMS  are   trademarks  of   Lotus,  Intel,   and  Microsoft
          Corporations.
     Lotus is a registered trademark of Lotus Development Corporation.
     Microsoft is a registered trademark of Microsoft Corporation.
     Turbo C  and   Turbo C++  are   registered   trademarks   of   Borland
          International.
     UltraVision is a trademark of Personics, Inc.
     Zortech is a trademark of Zortech Inc.

Page ii                                    TesSeRact CXL V5.5 Documentation
                        Detailed Table of Contents
     Introductory Notes.............................................ii
         Preliminary Notes & Comments................................1
 User Level Functions................................................2
     Menu System.....................................................2
         Menu Item Manipulation......................................2
             ItmCur..................................................2
             ItmDis..................................................3
             ItmDsp..................................................3
             ItmEna..................................................4
             ItmFun..................................................5
             ItmGet..................................................6
             ItmKey..................................................6
             ItmLoc..................................................7
             ItmNxt..................................................7
             ItmSet..................................................8
             ItmTxt..................................................8
         Menu Definition and Access..................................9
             MnuAct..................................................9
             MnuBeg.................................................10
             MnuCur.................................................11
             MnuEnd.................................................12
             MnuItm.................................................13
             MnuShow................................................14
     Entry System...................................................15
         Entry Form Manipulation....................................15
             EntDef.................................................15
             EntFld.................................................16
             EntKey.................................................17
             EntSep.................................................17
             EntShow................................................18
         Entry Field Manipulation...................................19
             FldCur.................................................19
             FldFun.................................................20
             FldKey.................................................21
             FldLoc.................................................22
         Internal Entry Routines....................................23
             _FldDsp................................................23
             _FldDecL...............................................23
             _FldDecR...............................................23
     Help System....................................................24
             HlpAdd.................................................24
             HlpClr.................................................24
             HlpCur.................................................25
             HlpDef.................................................26
             HlpDrop................................................26
             HlpOff.................................................27
             HlpPop.................................................27
             HlpPush................................................28
             HlpSet.................................................28
             HlpShow................................................29
             HlpWind................................................29






TesSeRact CXL V5.5 Documentation                                   Page iii
     Selection System...............................................30
             SelAttr................................................30
             SelFile................................................31
             SelStr.................................................32
             SelTxt.................................................33
             _Select................................................34
 Middle Level Functions.............................................35
     Window System..................................................35
         Error Handling.............................................35
             Wperror................................................35
             WerrMsg................................................35
             Werror.................................................36
         General Window Manipulation................................36
             Wactiv.................................................36
             WcloseAll..............................................37
             Windowat...............................................37
             WinLoc.................................................38
             Wisactiv...............................................38
             Wopen..................................................39
             WpopUp.................................................40
             Wrestore...............................................41
             Wsave..................................................42
             WsetEsc................................................43
             WsetFil................................................43
             WsetFun................................................44
             WsetTab................................................44
             WsetTxt................................................45
             Wunhide................................................46
             Wunlink................................................46
             Wwprints...............................................47
         Active Window Movement.....................................47
             Wcenter................................................47
             Wclose.................................................48
             Wcopy..................................................49
             Wdrag..................................................49
             Wdump..................................................50
             Whandle................................................50
             Whide..................................................51
             Wmove..................................................51
             Wsize..................................................52
             Wslide.................................................52
         Active Window Control......................................53
             WchgAtr................................................53
             WchkBox................................................53
             WchkCol................................................54
             WchkPos................................................54
             WchkRow................................................55
             Wclear.................................................55
             WclrEol................................................56
             WclrEos................................................56
             WclrWin................................................57
             WfilBox................................................57
             WlinDel................................................58
             WlinIns................................................58
             WscrBox................................................59
             WscrWin................................................60


Page iv                                    TesSeRact CXL V5.5 Documentation
         Active Border..............................................61
             Wborder................................................61
             Wbprintc...............................................61
             WdrwBox................................................62
             WdrwHor................................................63
             WdrwVer................................................64
             Wmessage...............................................65
             Wtitle.................................................66
         Active Shadow..............................................67
             Wshadoff...............................................67
             Wshadow................................................68
         Active Cursor..............................................69
             WcurGet................................................69
             WcurGt_................................................69
             WcurPut................................................70
             WcurPt_................................................70
             Wgotoxy................................................71
             Wpgotoxy...............................................72
             WposGet................................................72
         Active Window Formatted Output.............................73
             WdupChr................................................73
             WdupStr................................................73
             Wputc..................................................74
             Wputs..................................................75
             Wputns.................................................76
             Wputsw.................................................76
             Wputf..................................................77
             WputFmt................................................77
             WputCen................................................78
             Wputrj.................................................78
             _Wputl.................................................79
         Active Window Unformatted Output...........................79
             WdupChrA...............................................79
             WdupStrA...............................................80
             Wprtc..................................................81
             Wprts..................................................82
             Wprtns.................................................83
             Wprtsw.................................................83
             Wprtf..................................................84
             WprtFmt................................................85
             WprtCen................................................86
             Wprtrj.................................................87
     Display System.................................................88
         Window Builders............................................88
             VclrBox................................................88
             VdrwBox................................................89
             VdrwBx_................................................89
             VfilBox................................................89
             VfilBx_................................................89
             Vsave..................................................90
             Vrestore...............................................90







TesSeRact CXL V5.5 Documentation                                     Page v
         Video Control..............................................91
             VidInit................................................91
             VidMode................................................91
             VidParm................................................92
             VidTerm................................................92
             VidType................................................93
             VsetLin................................................93
             Vclear.................................................94
             VclrEol................................................94
             VclrScr................................................94
         Video Output...............................................95
             Vprintc................................................95
             Vprints................................................96
             VputSpa................................................96
             Vputc..................................................97
             Vputw..................................................97
             Vputw_.................................................97
             Vscroll................................................98
             Vscrol_................................................98
             Vgetw..................................................98
             Vgetw_.................................................98
         Cursor Control.............................................99
             VcurGet................................................99
             VcurGt_................................................99
             VcurHid...............................................100
             VcurPut...............................................101
             VcurPt_...............................................101
             VcurSet...............................................102
             VcurSiz...............................................102
             VcurSz_...............................................102
             Vgotoxy...............................................103
             VposGet...............................................103
         Attribute Control.........................................104
             VatrInv...............................................104
             VatrMap...............................................105
             VatrRev...............................................106
             VatrSet...............................................106
             VatrTxt...............................................106
             Vattrib...............................................107
         Video-Disk Routines.......................................107
             VsavBox...............................................107
             VsavBx_...............................................107
             VlodBox...............................................108
             VsavScr...............................................108
             VlodScr...............................................108
     Input System..................................................109
         Active Window Input.......................................109
             KwGetCf...............................................109
             KwGetCh...............................................110
             KwGetFmt..............................................111
             KwGetSn...............................................112
             KwGetSt...............................................112
             KwGetYn...............................................113
             KwScanf...............................................114




Page vi                                    TesSeRact CXL V5.5 Documentation
         Default Video Input.......................................115
             KvGetCf...............................................115
             KvGetCh...............................................115
             KvGetFmt..............................................116
             KvGetSn...............................................116
             KvGetSt...............................................117
             KvGetYn...............................................117
             KvScanf...............................................118
         Asynchronous Input........................................118
             KbndChg...............................................118
             KbndClr...............................................119
             KbndFre...............................................119
             KbndIdle..............................................119
             KbndSet...............................................120
         Input With No Echo........................................120
             KeyClear..............................................120
             KeyEvent..............................................121
             KeyGetc...............................................121
             KeyPeek...............................................122
             KeyStat...............................................122
             KeyTime...............................................122
             KeyWait...............................................123
     Strings System................................................123
         Trimming..................................................123
             strltrim..............................................124
             strrtrim..............................................124
             strtrim...............................................124
         Changing..................................................125
             strchg................................................125
             strichg...............................................125
             strischg..............................................126
             strschg...............................................126
         Checksum..................................................127
             strchksum.............................................127
             strichksum............................................127
         Delete/Insert.............................................128
             strdel................................................128
             strdela...............................................128
             stridel...............................................129
             stridela..............................................129
             strins................................................130
         Inclusion.................................................130
             strinc................................................130
             striinc...............................................131
             strocc................................................131
             striocc...............................................132
             strsocc...............................................132
             strisocc..............................................133
         Replacement...............................................133
             strsrep...............................................133
             strisrep..............................................134
         Substrings................................................134
             strmid................................................134
             strleft...............................................135
             strright..............................................135



TesSeRact CXL V5.5 Documentation                                   Page vii
         Justification.............................................136
             strljust..............................................136
             strrjust..............................................136
             strrol................................................137
             strror................................................137
             strshl................................................138
             strshr................................................138
         Matching..................................................139
             strbmatch.............................................139
             strmatch..............................................139
         Miscellaneous.............................................140
             strblank..............................................140
             strcode...............................................140
             strsetsz..............................................141
             struplow..............................................141
 Hardware Level Functions..........................................142
     Information Subsystem.........................................142
         Library Information.......................................142
             TcxlInit..............................................142
             TcxlTerm..............................................142
             TcxlVer...............................................143
         Hardware Information......................................143
             _BioEqp...............................................143
             BiosVer...............................................144
             ClockCal..............................................144
             MachId................................................145
             HdwFlg................................................145
             HdwGam................................................146
             gameport..............................................146
             HdwNdp................................................146
             mathchip..............................................146
             HdwMou................................................146
             HdwMdm................................................147
             HdwC40................................................147
             HdwC80................................................147
             HdwM80................................................148
             HdwDrv................................................148
             numflop...............................................148
             HdwPar................................................148
             numpar................................................148
             HdwSer................................................149
             numser................................................149
         Utility Routines..........................................149
             Beep..................................................149
             RandFile..............................................149
             Sound.................................................150
             SysDate...............................................150
             SysTime...............................................151
             TabNxt................................................151
             _Delay................................................152
             _StdOut...............................................152
             _StdOutS..............................................152
             _Timer................................................153
             _WaitMs...............................................153
     Memory Subsystem..............................................154
             MemInit...............................................154
             MemTerm...............................................154

Page viii                                  TesSeRact CXL V5.5 Documentation
         Expanded Memory Routines..................................154
             EMSalloc..............................................154
             EMSfree...............................................155
             EMSgetnam.............................................155
             EMScount..............................................155
             EMSpages..............................................156
             EMSmap................................................156
             EMSquery..............................................156
             EMSrest...............................................157
             EMSsave...............................................157
             EMSsetnam.............................................157
             EMSstat...............................................158
         Extended Memory Routines..................................158
             XMSalloc..............................................158
             XMScopy...............................................158
             XMSfree...............................................159
             XMSavail..............................................159
             XMSquery..............................................159
             XMSlock...............................................160
             XMSrealloc............................................160
             XMSunlock.............................................160
             _A20_LD...............................................161
             _A20_LE...............................................161
             _A20chk...............................................161
             _A20dis...............................................161
             _A20ena...............................................161
             UMBalloc..............................................161
             UMBfree...............................................162
             HMAalloc..............................................162
             HMAfree...............................................162
     Printer Subsystem.............................................163
             _LPputC...............................................163
             lcrlf.................................................163
             lprintc...............................................163
             lprintf...............................................163
             lprintn...............................................164
             lprintns..............................................164
             lprints...............................................164
             lprintsb..............................................164
             lprintsu..............................................165
             scrndump..............................................165
             windump...............................................165
     OpSys Subsystem...............................................165
             _ChgDir...............................................165
             _ChgDrv...............................................166
             _FndFst...............................................166
             _FndNxt...............................................166
             _GetDir...............................................167
             _GetDrv...............................................167
             _InpByt...............................................167
             _InpWrd...............................................168
             _IntDis...............................................168
             _IntEna...............................................168
             _OutByt...............................................169
             _OutWrd...............................................169



TesSeRact CXL V5.5 Documentation                                    Page ix
 Bottom Level Functions............................................170
     Video Access Subsystem........................................170
         Direct Hardware Access....................................170
             VidOfs................................................170
             VgetDvb...............................................170
             VisaEga...............................................170
             VisaPs2...............................................171
             VsetChr...............................................171
         Ultravision Support.......................................172
             _VuvDis...............................................172
             _VuvEna...............................................172
             _VuvGet...............................................172
             _VuvSet...............................................173
             _VuvVal...............................................173
         Internal Hardware Calls...................................173
             _VgetN................................................173
             _VgetN_...............................................173
             _VgetS................................................174
             _VgetS_...............................................174
             _VgetW................................................174
             _VgetW_...............................................174
             _VgetX................................................174
             _VgetX_...............................................174
             _VputA................................................174
             _VputA_...............................................174
             _VputB................................................175
             _VputB_...............................................175
             _VputC................................................175
             _VputC_...............................................175
             _VputN................................................175
             _VputN_...............................................175
             _VputS................................................175
             _VputS_...............................................175
             _VputW................................................176
             _VputW_...............................................176
             _VputX................................................176
             _VputX_...............................................176
     Keyboard Access Subsystem.....................................176
             KscnCod...............................................176
             KcapOff...............................................176
             KcapOn................................................177
             KextOff...............................................177
             KextOn................................................177
             KinsOff...............................................177
             KinsOn................................................177
             KnumOff...............................................178
             KnumOn................................................178
             _KeyExt...............................................178
             _KeyGet...............................................178
             _KeyHit...............................................179
             _KeySet...............................................179
             _KeySta...............................................179
             KqueChk...............................................180
             KqueClr...............................................180
             KqueGet...............................................180
             KquePut...............................................181
             KqueStr...............................................181

Page x                                     TesSeRact CXL V5.5 Documentation
     Mouse Access Subsystem........................................182
             MSclear...............................................182
             MScurs................................................183
             MSgoto................................................184
             MShide................................................184
             MShome................................................184
             MSinit................................................184
             MSkeys................................................185
             MSlimit...............................................185
             MSmove................................................185
             MSpop.................................................186
             MSpress...............................................186
             MSpush................................................186
             MSreles...............................................187
             MSshow................................................187
             MSspeed...............................................187
             MSstat................................................188
             MSterm................................................188
             MSupdat...............................................188
             _MSget................................................189
             _MSpos................................................189
             _MSset................................................189
             _MSsho................................................190
 Internal Level Functions..........................................190
     Conversion Subsystem..........................................190
             cvtcf.................................................190
             cvtci.................................................190
             cvtfc.................................................191
             cvtic.................................................191
             touplow...............................................191
     Format Control Subsystem......................................192
             FmtBack...............................................192
             FmtChar...............................................192
             FmtExcl...............................................192
             FmtFlip...............................................193
             FmtIncl...............................................193
             FmtInit...............................................193
             FmtPutF...............................................194
     Near/Far Subsystem............................................194
             MK_FP.................................................194
             MK_FPT................................................194
             _FarCpy...............................................195
             _CpyFar...............................................195
             _FarGet...............................................195
             _GetFar...............................................195
             _FarPut...............................................196
             _PutFar...............................................196











TesSeRact CXL V5.5 Documentation                                    Page xi


                       Preliminary Notes & Comments


Because of  the massive  size of  this  reference,  we  are  not  providing
examples for  functions that are well-documented in the TCXLDEMO.C program,
provided with this package.  Adding examples for each function could easily
expand the  size of this manual to more than 200 pages, making it virtually
useless as  an evaluation  tool.   Examples are,  therefore, listed as line
references within TCXLDEMO.C, and in the various source code files.

In addition, cross-reference items have, for the most part, been eliminated
for functions  in the  same group;  i.e, all the functions under "Menu Item
Manipulation" can  be assumed  to have "see also references" to each other.
We will,  however, provide  cross-reference material between functions that
have similar  functionality or uses, when they cross the boundaries between
groups, systems, or subsystems.

The various  Appendixes, referenced in this document, are packaged with the
Quick Reference Guide, as TCXL-QCK.TXT on diskette, and printed separately.

---------------------------------------------------------------------------



































TesSeRact CXL V5.5 Documentation                                     Page 1
Page 1                                     TesSeRact CXL V5.5 Documentation
                           User Level Functions


                                Menu System

                          Menu Item Manipulation

---------------------------------------------------------------------------

NAME.........ItmCur            <TcxlMnu.H>    Macro

DESCRIPTION
     Returns the  address of  the current menu item's record. After this
     call, you  may access  any of  the item's  elements.  This function
     would most  likely be  called from a "select", "before", or "after"
     function.

PROTOTYPE....IdfP ItmCur(NOARG);

  #define ItmCur() (MdfCur(MctlCur))

ARGUMENTS....None

RETURNS
  The address of the current menu item's record.

SEE ALSO
  IdfP (See User's Guide)
  MnuCur (Page 11)
  FldCur (Page 19)
  HlpCur (Page 25)

EXAMPLE
     FILE: TCXLDEMO.C.........Line: 2128, 2396, 2421, 2425, 2589
























Page 2                                     TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------

NAME.........ItmDis            <TcxlMnu.H>

DESCRIPTION
     This function  disables a  menu item  by making  it  nonselectable.
     This  function  would  most  likely  be  called  from  a  "select",
     "before", or  "after" function. It will set a flag so that when the
     called function returns to the menu, the disabled menu item will be
     displayed in  the text  attribute  (See  Appendix  A)  defined  for
     nonselectable text.  Please note that you may not disable the first
     menu item in the top menu in a program.  This destroys the internal
     linked list of pointers used to build the menu system.

PROTOTYPE....IntT CTYP ItmDis(TagT id);

ARGUMENTS
  The Tag ID of the menu item

RETURNS
  ERR_NUL  -  No Error
  ERR_ARG  -  Argument Failure
    TcxlErr Returns:
    W_NOMNUDEF  -  No Menu Defined
    W_NOTFOUND  -  Tag ID Not Found

SEE ALSO
  ItmEna (Page 4)

EXAMPLE
     FILE: TCXLDEMO.C.........Line: 2558, 2564

---------------------------------------------------------------------------

NAME.........ItmDsp            <TcxlMnu.H>

DESCRIPTION
     This function  sets the  redisplay flag for a menu item.  Normally,
     this would be needed if you have changed the text, etc.

PROTOTYPE....IntT CTYP ItmDsp(TagT id);

ARGUMENTS
  The Tag ID of the menu item

RETURNS
  ERR_NUL  -  No Error
  ERR_ARG  -  Argument Failure
    TcxlErr Returns:
    W_NOMNUDEF  -  No Menu Defined
    W_NOTFOUND  -  Tag ID Not Found

EXAMPLE
     FILE: TCXLDEMO.C.........Line: 2425, 2593




TesSeRact CXL V5.5 Documentation                                     Page 3
---------------------------------------------------------------------------

NAME.........ItmEna            <TcxlMnu.H>

DESCRIPTION
     This function  enables a  menu item  by making  it selectable. This
     function would  most likely be called from a "select", "before", or
     "after" function.   It  will set  a flag  so that  when the  called
     function returns  to the  menu,  the  enabled  menu  item  will  be
     displayed in  the text  attribute  (See  Appendix  A)  defined  for
     selectable text.

PROTOTYPE....IntT CTYP ItmEna(TagT id);

ARGUMENTS
  The Tag ID of the menu item

RETURNS
  ERR_NUL  -  No Error
  ERR_ARG  -  Argument Failure
    TcxlErr Returns:
    W_NOMNUDEF  -  No Menu Defined
    W_NOTFOUND  -  Tag ID Not Found

SEE ALSO
  ItmDis (Page 3)

EXAMPLE
     FILE: TCXLDEMO.C.........Line: 2557, 2565





























Page 4                                     TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------

NAME.........ItmFun            <TcxlMnu.H>

DESCRIPTION
     Assigns "before"  and "after"  function pointers  to the  menu item
     just defined.   The  call to  this function must appear immediately
     after the  call to  the MnuItm()  to which  it relates.  During the
     processing of the menu, when the user moves to the item, the before
     function gets  called.   When the  user leaves  the item, the after
     function gets  called. This  powerful feature allows you to do some
     advanced stuff  with menus,  but must  be used very carefully.  One
     possible use  of ItmFun() is to define a before function that opens
     a window  and writes  some text  in it, and an after function which
     closes that  window.   When the  user moved  to that menu item, the
     window would open up and display text, then when the user left that
     menu item, the window would automatically close.

PROTOTYPE....IntT CTYP ItmFun(VFvCP bf, VFvCP af);

ARGUMENTS
  bf  -  Before Function (NULL if not used)
  af  -  After Function (NULL if not used)

RETURNS
  ERR_NUL  -  No Error
  ERR_ARG  -  Argument Failure
    TcxlErr Returns:
    W_NOITMDEF  -  No Menu Items Defined

SEE ALSO
  FldFun (Page 20)
  WsetFun (Page 44)
  MnuItm (Page 13)

EXAMPLE
     FILE: TCXLDEMO.C.........Line: 914, 953





















TesSeRact CXL V5.5 Documentation                                     Page 5
---------------------------------------------------------------------------

NAME.........ItmGet            <TcxlMnu.H>

DESCRIPTION
     This function  returns a  pointer to  the text  referenced  by  the
     specified Tag.

PROTOTYPE....ChrP CTYP ItmGet(TagT id);

ARGUMENTS
  The text of the menu item

RETURNS
  ERR_NUL  -  No Error
  ERR_ARG  -  Argument Failure
    TcxlErr Returns:
    W_NOMNUDEF  -  No Menu Defined
    W_NOTFOUND  -  Tag ID Not Found

EXAMPLE
     FILE: TCXLDEMO.C.........Line: 2590

---------------------------------------------------------------------------

NAME.........ItmKey            <TcxlMnu.H>

DESCRIPTION
     This function returns a pointer to the Item Definition by searching
     for the passed hotkey.

PROTOTYPE....IdfP CTYP ItmKey(KeyT kc);

ARGUMENTS
  kc  -  hotkey to search for

RETURNS
  The address of the item referenced
  NULL if not found

SEE ALSO
  IdfP (See User's Guide)
  ItmLoc (Page 7)
  FldKey (Page 21)

EXAMPLE
     FILE: INP\KEYGETC.C......Line: 113











Page 6                                     TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------

NAME.........ItmLoc            <TcxlMnu.H>

DESCRIPTION
     This function  returns a  pointer to the Item Definition referenced
     by the passed Tag

PROTOTYPE....IdfP CTYP ItmLoc(TagT id);

ARGUMENTS
  The Tag ID of the menu item

RETURNS
  The address of the item referenced
  NULL if not found

SEE ALSO
  IdfP (See User's Guide)
  ItmKey (Page 6)
  FldLoc (Page 22)
  WinLoc (Page 38)

EXAMPLE
     FILE: MNU\ITMDIS.C.......Line: 26
     FILE: MNU\ITMDSP.C.......Line: 23
     FILE: MNU\ITMENA.C.......Line: 26
     FILE: MNU\ITMGET.C.......Line: 23
     FILE: MNU\ITMNXT.C.......Line: 21
     FILE: MNU\ITMSET.C.......Line: 26
     FILE: MNU\MNUSHOW.C......Line: 108, 222

---------------------------------------------------------------------------

NAME.........ItmNxt            <TcxlMnu.H>

DESCRIPTION
     Defines which  menu item the selection bar will move to next.  This
     function would  most likely be called from a "select", "before", or
     "after" function.   The  selection bar does not actually move until
     the called function returns to the menu.

PROTOTYPE....IntT CTYP ItmNxt(TagT id);

ARGUMENTS
  The Tag ID of the menu item

RETURNS
  ERR_NUL  -  No Error
  ERR_ARG  -  Argument Failure
    TcxlErr Returns:
    W_NOMNUDEF  -  No Menu Defined
    W_NOTFOUND  -  Tag ID Not Found

EXAMPLE
     FILE: TCXLDEMO.C.........Line: 2128, 2559, 2566


TesSeRact CXL V5.5 Documentation                                     Page 7
---------------------------------------------------------------------------

NAME.........ItmSet            <TcxlMnu.H>

DESCRIPTION
     This function  changes the  text associated with the specified menu
     item, referenced by the passed Tag.

PROTOTYPE....IntT CTYP ItmSet(TagT id, ChrP tp);

ARGUMENTS
  id  -  The Tag ID of the menu item
  tp  -  Pointer to the new text

RETURNS
  ERR_NUL  -  No Error
  ERR_ARG  -  Argument Failure
    TcxlErr Returns:
    W_NOMNUDEF  -  No Menu Defined
    W_NOTFOUND  -  Tag ID Not Found

---------------------------------------------------------------------------

NAME.........ItmTxt            <TcxlMnu.H>

DESCRIPTION
     Adds a  text description to a menu item.  You can use this function
     to  create  Lotus-style  menus  where  the  text  descriptions  are
     displayed underneath  the menu  and change each time the user moves
     to a new menu item.

PROTOTYPE....IntT CTYP ItmTxt(IntT wr, IntT wc, IntT at, ChrP ps);

ARGUMENTS
  wr  -  Window Row
  wc  -  Window Column
  at  -  Attribute (See Appendix A)
  ps  -  string to display

RETURNS
  ERR_NUL  -  No Error
  ERR_ARG  -  Argument Failure
    TcxlErr Returns:
    W_NOMNUDEF  -  No Menu Defined
    W_NOTFOUND  -  Tag ID Not Found

SEE ALSO
  MnuItm (Page 13)

EXAMPLE
     FILE: TCXLDEMO.C.........Line: 2286, 2288, 2290, 2292, 2294, 2296







Page 8                                     TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------

                        Menu Definition and Access

---------------------------------------------------------------------------

NAME.........MnuAct            <TcxlMnu.H>

DESCRIPTION
     Starts a  menu/sub-menu definition.   This  is  used  in  place  of
     MnuBeg(). This function differs from MnuBeg() in that when the user
     processes the  defined menu,  the menu  will  assume  whatever  the
     active window is at the time.

PROTOTYPE....IntT CTYP MnuAct(NOARG);

ARGUMENTS....None

RETURNS
  ERR_NUL  -  No Error
  ERR_ARG  -  Argument Failure
  ERR_MEM  -  Memory Allocation Failure
    TcxlErr Returns:
    W_NOITMDEF  -  No Menu Items Defined

SEE ALSO
  MnuBeg (Page 10)
  EntDef (Page 15)

EXAMPLE
     FILE: HLP\HLPSHOW.C......Line: 278



























TesSeRact CXL V5.5 Documentation                                     Page 9
---------------------------------------------------------------------------

NAME.........MnuBeg            <TcxlMnu.H>

DESCRIPTION
     Starts a  menu/sub-menu definition  and describes  the window which
     the menu  will reside  in.  This does not actually open any windows
     or menus,  just defines them.  This must be used in conjuction with
     MnuItm() and  MnuEnd().   This is  one of  the 4 functions that are
     required to process a menu.

PROTOTYPE....IntT CTYP MnuBeg(IntT sr, IntT sc, IntT er, IntT ec,
            IntT bt, IntT ba, IntT wa, VfvCP fo);

ARGUMENTS
  sr  -  Start row of menu's window
  sc  -  Start column of menu's window
  er  -  End row of menu's window
  ec  -  End column of menu's window
  bt  -  Border Type (See Appendix C [Border Types])
  ba  -  Border Attribute (See Appendix A)
  wa  -  Window Attribute (See Appendix A)
  fo  -  Function to be called when the menu's window is opened.
      An example would be to add a title, a shadow, etc.

RETURNS
  ERR_NUL  -  No Error
  ERR_ARG  -  Argument Failure
  ERR_MEM  -  Memory Allocation Failure
    TcxlErr Returns:
    W_NOITMDEF  -  No Menu Items Defined

SEE ALSO
  VidWid, VidDep (See User's Guide)

EXAMPLE
     FILE: MNU\MNUACT.C.......Line: 23
     FILE: TCXLDEMO.C.........Line: 863, 904, 909, 920, 930, 943, 954,
                              2258, 2284



















Page 10                                    TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------

NAME.........MnuCur            <TcxlMnu.H>    Macro

DESCRIPTION
     Returns the  address of  the currently active menu's record.  After
     this call,  you may access any of the menu's elements.  Use caution
     when updating  elements in  the menu's record. This function should
     only be  called while  the  menu  to  which  it  relates  is  being
     processed.

PROTOTYPE....MdfP MnuCur(NOARG);

  #define MnuCur() (MctlCur)

ARGUMENTS....None

RETURNS
  The address of the current menu's record.

SEE ALSO
  MdfP (See User's Guide)
  ItmCur (Page 2)
  FldCur (Page 19)
  HlpCur (Page 25)

































TesSeRact CXL V5.5 Documentation                                    Page 11
---------------------------------------------------------------------------

NAME.........MnuEnd            <TcxlMnu.H>

DESCRIPTION
     Ends   a    menu/sub-menu   definition    and   defines    specific
     features/attributes of  that menu.   This is one of the 4 functions
     that are required to process a menu.

PROTOTYPE....IntT CTYP MnuEnd(TagT ti, IntT mt, IntT bw,
            IntT tp, IntT ta, IntT sa, IntT na, IntT ba);

ARGUMENTS
  ti  -  Tag ID of the item the selaction bar will start with
  mt  -  A mask which describes the menu style
      (See Appendix C [Menu Types])
  bw  -  Width of the section bar (zero means selection string width)
  tp  -  Offset position from start of the selection bar that
      the menu item text will start.
  ta  -  Attribute for menu text (See Appendix A)
  sa  -  Attribute for Selection Character (See Appendix A)
  na  -  Attribute for non-selectable text (See Appendix A)
  ba  -  Attribute for the selection bar (See Appendix A)

RETURNS
  ERR_NUL  -  No Error
  ERR_ARG  -  Argument Failure
  ERR_MEM  -  Memory Allocation Failure
    TcxlErr Returns:
    W_NOITMDEF  -  No Menu Items Defined
    W_INVTAGID  -  The specified Tag ID was invalid.  It must match
                one of the Tag IDs in the current menu.

EXAMPLE
     FILE: HLP\HLPSHOW.C......Line: 188
     FILE: TCXLDEMO.C.........Line: 871, 915, 925, 935, 948, 957, 960,
                              2261, 2297





















Page 12                                    TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------

NAME.........MnuItm            <TcxlMnu.H>

DESCRIPTION
     Defines a  menu item.   This  is one  of the  4 functions  that are
     required to process a menu.

PROTOTYPE....IntT CTYP MnuItm(IntT wr, IntT wc, ChrP ps, IntT sc, TagT id,
            IntT fm, VfvCP sf, WrdT hk, TagT he);

ARGUMENTS
  wr  -  Window Row
  wc  -  Window Column
  ps  -  Menu Item String
  sc  -  Quick Selection character.  This is often the first letter
      of the menu item.
  id  -  unique tag identifier for this menu item
  fm  -  Feature Mask (See Appendix C [Menu Feature Masks])
  sf  -  Function to call when item is selected
  hk  -  Keycode of the key which will select this item from anywhere
      within the menu structure.  This allows the user to call this
      menu's select function even if not currently processing its menu.
  he  -  Help Tag for this item

RETURNS
  ERR_NUL  -  No Error
  ERR_ARG  -  Argument Failure
  ERR_MEM  -  Memory Allocation Failure
    TcxlErr Returns:
    W_NOMNUBEG  -  No Begin Of Menu Specified.  See MnuBeg()

SEE ALSO
  ItmFun (Page 5)
  ItmTxt (Page 8)

EXAMPLE
     FILE: HLP\HLPSHOW.C......Line: 291
     FILE: TCXLDEMO.C.........Line: 628, 867, 907, 911, 918, 922, 928,
                              932, 938, 941, 945, 951, 955, 956, 2260,
                              2285, 2287, 2289, 2291, 2293, 2295

















TesSeRact CXL V5.5 Documentation                                    Page 13
---------------------------------------------------------------------------

NAME.........MnuShow           <TcxlMnu.H>

DESCRIPTION
     Processes the  defined menu structure.  The user is allowed to move
     a selection  bar around to the various menu items. If mouse support
     is on,  then the  user can use the mouse for selecting as well.  If
     sub-menus exists,  then the  user can  select those  also.   Escape
     checking is provided for when the user is in the root menu, however
     if the  user is in a sub-menu, pressing [Esc] will always return to
     the next  level up.   This  is one  of the  4  functions  that  are
     required to process a menu.

PROTOTYPE....IntT MnuShow(NOARG);

ARGUMENTS....None

RETURNS
  The Tag ID of the menu item that was selected.
  ERR_NUL  -  Check TcxlErr for W_ESCPRESS!
  ERR_ARG  -  Argument Failure
  ERR_MEM  -  Memory Allocation Failure
    TcxlErr Returns:
    W_NOMNUDEF  -  No Menu Defined
    W_NOMNUEND  -  No End Of Menu Specified. See MnuEnd().
    W_ESCPRESS  -  The [Esc] Key Was Pressed From The Root Menu
    W_INVCOORD  -  Invalid Coordinates
    W_INVBTYPE  -  Invalid Border Type

SEE ALSO
  EntShow (Page 18)
  HlpShow (Page 29)

EXAMPLE
     FILE: HLP\HLPSHOW.C......Line: 190
     FILE: TCXLDEMO.C.........Line: 873, 963, 2264, 2299





















Page 14                                    TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------

                               Entry System

                          Entry Form Manipulation

---------------------------------------------------------------------------

NAME.........EntDef            <TcxlEnt.H>

DESCRIPTION
     Marks the  beginning of  a data  input  form,  and  specifies  text
     attributes to  be used by the form.  The Field Attribute is used to
     display the  entry fields  themselves, while  the Text Attribute is
     used to display the required characters within the fields, that are
     not user-modifiable.

PROTOTYPE....IntT CTYP EntDef(IntT fa, IntT ta);

ARGUMENTS
  fa  -  Field Attribute (See Appendix A)
  ta  -  Text Attribute (See Appendix A)

RETURNS
  ERR_NUL  -  No Error
  ERR_ARG  -  Argument Failure
  ERR_MEM  -  Memory Allocation Error
    TcxlErr Returns:
    W_NOACTIVE  -  No Active Window

EXAMPLE
     FILE: TCXLDEMO.C.........Line: 1011, 1575, 1711, 2420


























TesSeRact CXL V5.5 Documentation                                    Page 15
---------------------------------------------------------------------------

NAME.........EntFld            <TcxlEnt.H>

DESCRIPTION
     Defines a window input field.

PROTOTYPE....IntT CTYP EntFld(IntT wr, IntT wc, ChrP ps, ChrP fs, IntT fm,
            TagT id, IntT md, IfcpCP vf, TagT ht);

ARGUMENTS
  wr  -  Window Row for Start of Input
  wc  -  Window Column for Start of Input
  ps  -  String buffer to receive input
  fs  -  Field Format String (See Appendix E)
  fm  -  Feature Mask (See Appendix C [Field Feature Bits])
  id  -  Tag Identifier for field
  md  -  Field Mode (See "_EntCtl" in the User's Guide)
  vf  -  Validate Function
  ht  -  Help Tag for this field

RETURNS
  ERR_NUL  -  No Error
  ERR_ARG  -  Argument Failure
  ERR_MEM  -  Memory Allocation Error
    TcxlErr Returns:
    W_NOFRMBEG  -  No Begin Of Form Specified, see EntDef()
    W_INVCOORD  -  Invalid Coordinates
    W_INVFORMT  -  Invalid Format String

EXAMPLE
     FILE: TCXLDEMO.C.........Line: 1016, 1576, 1712, 2421


























Page 16                                    TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------

NAME.........EntKey            <TcxlEnt.H>

DESCRIPTION
     Allows you  to extend  or modify  the data  entry keys  used as the
     alternate get-key  function so that during EntShow() processing you
     can get  a key,  test it,  change it,  or do whatever else you like
     with it  before you  return it  to EntShow().   It  also  lets  you
     specify a  variable to  receive the  key that caused termination of
     the form.  The call  to EntKey()  can be contained anywhere between
     EntDef() and EntShow().

PROTOTYPE....IntT CTYP EntKey(WfipCP gk, WrdP tk);

ARGUMENTS
  gk  -  Alternate getkey() function
  tk  -  Pointer to location to store termination key

RETURNS
  ERR_NUL  -  No Error
  ERR_ARG  -  Argument Failure
    TcxlErr Returns:
    W_NOACTIVE  -  No Active Form
    W_NOFRMBEG  -  No Begin Of Form Specified

EXAMPLE
     FILE: TCXLDEMO.C.........Line: 1022

---------------------------------------------------------------------------

NAME.........EntSep            <TcxlEnt.H>

DESCRIPTION
     This function  declares a  new "word  separation" string.  The TCXL
     library has  a built-in definition of the characters that will mark
     the end of a "word":

     LCL ChrP sepstr = " ~`!@#$%^&*()-+=|\\[]{}:;'\",./<>?";

     If your  application requires  a different  separator  string,  you
     would call this function.

PROTOTYPE....IntT CTYP EntSep(ChrP ws);

ARGUMENTS
  ws  -  New separation string

RETURNS
  ERR_NUL  -  No Error
  ERR_ARG  -  Argument Failure
    TcxlErr Returns:
    W_NOFRMBEG  -  No Form Defined

EXAMPLE
     FILE: ENT\ENTDEF.C.......Line: 40


TesSeRact CXL V5.5 Documentation                                    Page 17
---------------------------------------------------------------------------

NAME.........EntShow           <TcxlEnt.H>

DESCRIPTION
     Marks the end of the defined input form and initiates processing of
     the defined  input fields.   The  user is  allowed to edit back and
     forth between the defined fields until the last field is entered.

PROTOTYPE....IntT CTYP EntShow(NOARG);

ARGUMENTS....None

RETURNS
  ERR_NUL  -  Check TcxlErr for W_ESCPRESS!
  ERR_ARG  -  Argument Failure
  ERR_NUL  -  No Error
    TcxlErr Returns:
    W_NOACTIVE  -  No Active Window
    W_NOINPDEF  -  No Input Fields Defined

SEE ALSO
  MnuShow (Page 14)
  HlpShow (Page 29)

EXAMPLE
     FILE: TCXLDEMO.C.........Line: 1024, 1578, 1715, 2423































Page 18                                    TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------

                         Entry Field Manipulation

---------------------------------------------------------------------------

NAME.........FldCur            <TcxlEnt.H>    Macro

DESCRIPTION
     Returns the address of the current input field's record.  After the
     call to  this function,  you may  access any  of the  current input
     field's elements.   Use  caution  when  updating  elements  in  the
     field's record.   This  function should  only be  called while  the
     input form  to which it relates is being processed.  Please use the
     macros defined in TCXLent.h when updating members of this structure
     -- while  the structure  may change  in future versions, the macros
     will remain consistent.

PROTOTYPE....FdfP FldCur(NOARG);

  #define FldCur() (EdfFld(_EntCtl))

ARGUMENTS....None

RETURNS
  The address of the current input field's record

SEE ALSO
  FdfP (See User's Guide)
  ItmCur (Page 2)
  MnuCur (Page 11)
  HlpCur (Page 25)

EXAMPLE
     FILE: TCXLDEMO.C.........Line: 2274























TesSeRact CXL V5.5 Documentation                                    Page 19
---------------------------------------------------------------------------

NAME.........FldFun            <TcxlEnt.H>

DESCRIPTION
     Assigns "before"  and "after"  function pointers to the input field
     just defined.   The  call to  this function must appear immediately
     after the  call to  the EntFld()  to which it relates.  During user
     input, when  the user  enters the  field, the  before function gets
     called.   When the  user leaves  the  validated  field,  the  after
     function gets  called.  This powerful feature allows you to do some
     pretty advanced  stuff with  input fields,  but must  be used  very
     carefully.

PROTOTYPE....IntT CTYP FldFun(VfvCP bf, VfvCP af);

ARGUMENTS
  bf  -  Before function
  af  -  After function

RETURNS
  ERR_NUL  -  No Error
  ERR_ARG  -  Argument Failure
    TcxlErr Returns:
    W_NOACTIVE  -  No Active Window
    W_NOINPDEF  -  No Input Fields Defined

SEE ALSO
  ItmFun (Page 5)
  WsetFun (Page 44)
  EntFld (Page 16)

EXAMPLE
     FILE: TCXLDEMO.C.........Line: 1019
























Page 20                                    TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------

NAME.........FldKey            <TcxlEnt.H>

DESCRIPTION
     This function  assigns a  "hot key"  to the  individual data  entry
     field.  The call to this function must appear immediately after the
     call to  the EntFld() to which it relates.  During user input, when
     the user enters the field, the before function gets called.

PROTOTYPE....IntT CTYP FldKey(KeyT hk);

ARGUMENTS
  hk  -  Hotkey for field

RETURNS
  ERR_NUL  -  No Error
  ERR_ARG  -  Argument Failure
    TcxlErr Returns:
    W_NOACTIVE  -  No Active Window
    W_NOINPDEF  -  No Input Fields Defined

SEE ALSO
  ItmKey (Page 6)
  EntFld (Page 16)

EXAMPLE
     FILE: TCXLDEMO.C.........Line: 1020






























TesSeRact CXL V5.5 Documentation                                    Page 21
---------------------------------------------------------------------------

NAME.........FldLoc            <TcxlEnt.H>

DESCRIPTION
     Searches for  a defined  field using  the tag ID of the field, then
     returns the  address of  the field's record. After the call to this
     function, you  may access  any of the found input field's elements.
     Use caution  when updating  elements in  the field's  record.  This
     function should  only be  called during the processing of the input
     form to  which it  relates.   Please  use  the  macros  defined  in
     TCXLent.h when  updating members  of this  structure --  while  the
     structure may  change in  future versions,  the macros  will remain
     consistent.

PROTOTYPE....FdfP CTYP FldLoc(TagT id);

ARGUMENTS
  id  -  Tag ID of the field to search for

RETURNS
  The address of the current input field's record

  If an error occurs, then NULL is returned, and TcxlErr will return:
    W_NOACTIVE  -  No Active Window
    W_NOFRMDEF  -  No Form Defined
    W_NOTFOUND  -  No Defined Field Matches specified Tag

SEE ALSO
  FdFp (See User's Guide)
  ItmLoc (Page 7)
  WinLoc (Page 38)

EXAMPLE
     FILE: TCXLDEMO.C.........Line: 1641























Page 22                                    TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------

                          Internal Entry Routines

---------------------------------------------------------------------------

NAME........._FldDsp           <_TcxlEnt.H>

DESCRIPTION
     Display a data-entry field.

PROTOTYPE....VOID CTYP _FldDsp(ChrP s, IntT h);

ARGUMENTS
  s   -  String to Display
  h   -  Attribute Flag

---------------------------------------------------------------------------

NAME........._FldDecL          <_TcxlEnt.H>

DESCRIPTION
     Space fill  left of  decimal point,  right justfy  against  decimal
     point.

PROTOTYPE....VOID CTYP _FldDecL(ChrP s);

ARGUMENTS
  s   -  String to Adjust

---------------------------------------------------------------------------

NAME........._FldDecR          <_TcxlEnt.H>

DESCRIPTION
     Space fill  right of  decimal point,  left justfy  against  decimal
     point.

PROTOTYPE....VOID CTYP _FldDecR(ChrP s);

ARGUMENTS
  s   -  String to Adjust
















TesSeRact CXL V5.5 Documentation                                    Page 23
---------------------------------------------------------------------------

                                Help System

---------------------------------------------------------------------------

NAME.........HlpAdd            <TcxlHlp.H>

DESCRIPTION
     Adds the  current help  category to  the help  category stack, then
     sets the  current help  category to  the specified  help  category.
     It's effectively  the same  as  doing  a  HlpCur()  followed  by  a
     HlpSet().

PROTOTYPE....IntT CTYP HlpAdd(TagT ht);

ARGUMENTS
  ht  -  Help Tag-ID

RETURNS
  ERR_NUL  -  No Error
  ERR_ARG  -  Argument Failure
    TcxlErr Returns:
    W_NOHLPDEF  -  No Help Record Defined
    W_HLPSTKOV  -  Help Stack Overflow (Stack Full)

---------------------------------------------------------------------------

NAME.........HlpClr            <TcxlHlp.H>

DESCRIPTION
     Clears the help category stack.

PROTOTYPE....IntT CTYP HlpClr(NOARG);

ARGUMENTS....None

RETURNS
  ERR_NUL  -  No Error
  ERR_ARG  -  Argument Failure
    TcxlErr Returns:
    W_NOHLPDEF  -  No Help Defined

EXAMPLE
     FILE: HLP\HLPOFF.C.......Line: 29













Page 24                                    TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------

NAME.........HlpCur            <TcxlHlp.H>    Macro

DESCRIPTION
     Pushes the current help category onto the help category stack.  The
     default stack can hold up to 20 help categories.

PROTOTYPE....IntT HlpCur(NOARG);

  #define HlpCur() (HlpPush(WctlHlp))

ARGUMENTS....None

RETURNS
  ERR_NUL  -  No Error
  ERR_ARG  -  Argument Failure
    TcxlErr Returns:
    W_NOHLPDEF  -  no defined help.  See whelpdef().
    W_HLPSTKOV  -  help stack overflow (stack full).

SEE ALSO
  ItmCur (Page 2)
  MnuCur (Page 11)
  FldCur (Page 19)

EXAMPLE
     FILE: MNU\MNUSHOW.C......Line: 187, 687
     FILE: ENT\ENTSHOW.C......Line: 774
     FILE: HLP\HLPADD.C.......Line: 21
     FILE: TCXLDEMO.C.........Line: 2256



























TesSeRact CXL V5.5 Documentation                                    Page 25
---------------------------------------------------------------------------

NAME.........HlpDef            <TcxlHlp.H>

DESCRIPTION
     Defines the  help file, key, and window colors.  After calling this
     function, anytime  the help key is pressed, the help processor will
     search the help file for whatever the current help category is.

PROTOTYPE....IntT CTYP HlpDef(ChrP fn, WrdT ky, IntT wa, IntT ta, IntT sa,
            IntT ba, VfvCP fo);

ARGUMENTS
  fn  -  Filename for help file
  ky  -  Keycode of the help key
  wa  -  Help Window Attribute (See Appendix A)
  ta  -  Help Text Attribute (See Appendix A)
  sa  -  Selection Text Attribute (See Appendix A)
  ba  -  Selection Bar Attribute (See Appendix A)
  fo  -  Function to call immediately upon opening the help window

RETURNS
  ERR_NUL  -  No Error
  ERR_ARG  -  Argument Failure
  ERR_MEM  -  Memory Allocation Error
    TcxlErr Returns:
    W_NOHLPDEF - No Help File Name defined

SEE ALSO
  MnuBeg (Page 10)
  EntDef (Page 15)

EXAMPLE
     FILE: TCXLDEMO.C.........Line: 751

---------------------------------------------------------------------------

NAME.........HlpDrop           <TcxlHlp.H>

DESCRIPTION
     Pops the  help category  off of  the top  of the stack and into the
     oid.  The current help category is not affected.

PROTOTYPE....IntT CTYP HlpDrop(NOARG);

ARGUMENTS....None

RETURNS
  ERR_NUL  -  No Error
  ERR_ARG  -  Argument Failure
    TcxlErr Returns:
    W_NOHLPDEF  -  No Defined Help
    W_HLPSTKUN  -  Help Stack Underflow (Stack Empty)

EXAMPLE
     FILE: TCXLDEMO.C.........Line: 877, 984, 1055, 2300


Page 26                                    TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------

NAME.........HlpOff            <TcxlHlp.H>

DESCRIPTION
     Disengages the  help system.   This un-defines the help key, clears
     the help stack, and frees any memory allocated by the help system.

PROTOTYPE....IntT CTYP HlpOff(NOARG);

ARGUMENTS....None

RETURNS
  ERR_NUL  -  No Error
  ERR_ARG  -  Argument Failure
    TcxlErr Returns:
    W_NOHLPDEF  -  No Defined Help

EXAMPLE
     FILE: HLP\HLPDEF.C.......Line: 49

---------------------------------------------------------------------------

NAME.........HlpPop            <TcxlHlp.H>

DESCRIPTION
     Pops the help category off of the top of the stack and makes it the
     current help category.

PROTOTYPE....IntT CTYP HlpPop(NOARG);

ARGUMENTS....None

RETURNS
  ERR_NUL  -  No Error
  ERR_ARG  -  Argument Failure
    TcxlErr Returns:
    W_NOHLPDEF  -  No Defined Help
    W_HLPSTKUN  -  Help Stack Underflow (Stack Empty)

EXAMPLE
     FILE: MNU\MNUSHOW.C......Line: 191, 693
     FILE: ENT\ENTSHOW.C......Line: 779
     FILE: TCXLDEMO.C.........Line: 2275














TesSeRact CXL V5.5 Documentation                                    Page 27
---------------------------------------------------------------------------

NAME.........HlpPush           <TcxlHlp.H>

DESCRIPTION
     Pushes the  specified help  category onto  the help category stack.
     The current  help category is not affected.  The default help stack
     can hold up to 20 help categories.

PROTOTYPE....IntT CTYP HlpPush(TagT ct);

ARGUMENTS
  ct  -  The help tag to push

RETURNS
  ERR_NUL  -  No Error
  ERR_ARG  -  Argument Failure
    TcxlErr Returns:
    W_NOHLPDEF  -  No Defined Help
    W_HLPSTKUN  -  Help Stack Overflow (Stack Full)

EXAMPLE
     FILE: TCXLDEMO.C.........Line: 861, 890, 1008, 2283

---------------------------------------------------------------------------

NAME.........HlpSet            <TcxlHlp.H>

DESCRIPTION
     Sets the current help category.  If a window is active at the time,
     it will  also set  that window's  help category.  The help category
     set by  calling this  function is  what will  be used  by the  help
     processor for searching the help file for help text.

PROTOTYPE....IntT CTYP HlpSet(TagT ct);

ARGUMENTS
  ct  -  Help Category Tag

RETURNS
  ERR_NUL  -  No Error
  ERR_ARG  -  Argument Failure
    TcxlErr Returns:
    W_NOHLPDEF  -  No Defined Help

EXAMPLE
     FILE: HLP\HLPADD.C.......Line: 23
     FILE: TCXLDEMO.C.........Line: 1078, 1083, 1093, 1163, 1263, 1285,
                              1305, 1396, 1752, 2141, 2435, 2464, 2508,
                              2535, 2633








Page 28                                    TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------

NAME.........HlpShow           <TcxlHlp.H>

DESCRIPTION
     This function  displays the  help window, with the current window's
     Help Category as the specified help text.

PROTOTYPE....VOID CTYP HlpShow(NOARG);

ARGUMENTS....None

RETURNS
  ERR_NUL  -  No Error
  ERR_ARG  -  Argument Failure
    TcxlErr Returns:
    W_NOHLPDEF  -  No Defined Help

SEE ALSO
  MnuShow (Page 14)
  EntShow (Page 18)

EXAMPLE
     FILE: HLP\HLPDEF.C.......Line: 53

---------------------------------------------------------------------------

NAME.........HlpWind           <TcxlHlp.H>

DESCRIPTION
     Sets specific  features to  be used  by the help window for when it
     opens. These  are screen  coordinates, border  type, and whether or
     not to  display a  "Help" title on the upper window border. It does
     not actually  open the help window.  You can call HlpWind() anytime
     after calling  HlpDef().   You can  call HlpWind()  as often as you
     like during your program.

PROTOTYPE....IntT CTYP HlpWind(IntT sr, IntT sc, IntT er, IntT ec,
            IntT bt, IntT ti);

ARGUMENTS
  sr  -  Start Row
  sc  -  Start Column
  er  -  End Row
  ec  -  End Column
  bt  -  Border Type (See Appendix C [Border Types])
  ti  -  Display "Help" title on top border? (0=no, 1=yes)

RETURNS
  ERR_NUL  -  No Error
  ERR_ARG  -  Argument Failure
    TcxlErr Returns:
    W_NOHLPDEF  -  No Defined Help

SEE ALSO
  Wborder (Page 61)


TesSeRact CXL V5.5 Documentation                                    Page 29
---------------------------------------------------------------------------

                             Selection System

---------------------------------------------------------------------------

NAME.........SelAttr           <TcxlSel.H>

DESCRIPTION
     This function  will open  a window  and let  the user interactively
     pick a  text attribute  (See Appendix  A for  a list  of  available
     attributes).

PROTOTYPE....IntT CTYP SelAttr(IntT sr, IntT sc, IntT bt, IntT ba,
            IntT ab, VfvCP fo);

ARGUMENTS
  sr  -  Start Row
  sc  -  Start Column
  bt  -  Border Type (See Appendix C [Border Types])
  ba  -  Beginning Attribute (current default)
  ab  -  Allow Blink?
  fo  -  Function to call when window is opened

RETURNS
  The new attribute

EXAMPLE
     FILE: TCXLDEMO.C.........Line: 1096





























Page 30                                    TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------

NAME.........SelFile           <TcxlSel.H>

DESCRIPTION
  This function will open up a window and display as many file/directory
  names in it as it can.  The user can use a selection bar to move
  through the file/directory names and select one.  If all of the
  file/directory names cannot fit in the window, scrolling and paging is
  allowed.  If the user selects a directory, SelFile() will change to
  that directory and display the list of files/directories in it.  After
  the selection is made, SelFile() will return the complete path name of
  the selected file.


PROTOTYPE....ChrP CTYP SelFile(IntT sr, IntT sc, IntT er, IntT ec, IntT bt,
            IntT ba, IntT wa, IntT sa, IntT ti, ChrP fs, VfvCP fo);

ARGUMENTS
  sr  -  Start Row
  sc  -  Start Column
  er  -  End Row
  ec  -  End Column
  bt  -  Border Type (See Appendix C [Border Types])
  ba  -  Border Attribute (See Appendix A)
  wa  -  Window Attribute (See Appendix A)
  sa  -  Selection Bar Attribute (See Appendix A)
  ti  -  Display Filespec Title On Upper Border?  (0=no, 1=yes)
  fs  -  Filespec to match (ie, "*.*")
  fo  -  Function to call when window is opened


RETURNS
  The address of the static string containing the full
  drive:path\filename string of the selected file. If an error occurred,
  NULL will be returned and TcxlErr will be set to one of the following:
    W_ESCPRESS  -  The [Esc] Key Was Pressed
    W_ALLOCERR  -  Memory Allocation Error
    W_DOSERROR  -  DOS Error (ie. Invalid Directory)
    W_INVCOORD  -  Invalid Window Coordinates
    W_INVBTYPE  -  Invalid Border Type
    W_STRLONG   -  Window Not Wide Enough To Hold Largest File Name
    W_NOMATCH   -  No Files Matched Input Filespec
    W_INVPATH   -  Invalid Path Or Path Not Found

EXAMPLE
     FILE: TCXLDEMO.C.........Line: 1084











TesSeRact CXL V5.5 Documentation                                    Page 31
---------------------------------------------------------------------------

NAME.........SelStr            <TcxlSel.H>

DESCRIPTION
     This function  will open  up a  window and  display as  many of the
     input strings in it as it can.  The user can use a selection bar to
     move through  the strings  and select  one.   If all of the strings
     cannot fit  in the  window, scrolling  and paging is allowed. After
     the selection  is made,  SelStr() will return the array subsript of
     the string that was selected.

PROTOTYPE....IntT CTYP SelStr(IntT sr, IntT sc, IntT er, IntT ec, IntT bt,
            IntT ba, IntT wa, IntT sa, ChrP as[], IntT ie, VfvCPfo);

ARGUMENTS
  sr  -  Start Row
  sc  -  Start Column
  er  -  End Row
  ec  -  End Column
  bt  -  Border Type (See Appendix C [Border Types])
  ba  -  Border Attribute (See Appendix A)
  wa  -  Window Attribute (See Appendix A)
  sa  -  Selection Bar Attribute (See Appendix A)
  as  -  Base of array of string pointers
  ie  -  Initial Element to default to
  fo  -  Function to call when window is opened

RETURNS
  The array subscript of the selected string.  If an error occurred,
  then -1 (ERR_ARG) will be returned and TcxlErr will be set to one of
  the following:
    W_ESCPRESS  -  The [Esc] Key Was Pressed
    W_ALLOCERR  -  Memory Allocation Error
    W_INVCOORD  -  Invalid Window Coordinates
    W_INVBTYPE  -  Invalid Border Type
    W_STRLONG   -  Window Not Wide Enough To Hold Largest String
    W_INVPATH   -  Invalid Path Or Path Not Found

EXAMPLE
     FILE: TCXLDEMO.C.........Line: 1079, 1204, 2052, 2065

















Page 32                                    TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------

NAME.........SelTxt            <TcxlSel.H>

DESCRIPTION
  Allows user to select one string from an array of strings via an
     in-place "menu".   This  function is  the same  as SelStr(), except
     that it  puts the  selection menu  in the  current  active  window,
     instead of creating a separate window for the selection.

PROTOTYPE....IntT CTYP SelTxt(IntT wr, IntT wc, IntT at,
            ChrP as[], IntT in);

ARGUMENTS
  wr  -  Window Row to start selection
  wc  -  Window Column to start selection
  at  -  Attribute for selection text (See Appendix A)
  as  -  Base of array of string pointers
  ie  -  Initial Element to default to


RETURNS
  The array subscript of the selected string.  If an error occurred,
  then -1 (ERR_ARG) will be returned and TcxlErr will be set to one of
  the following:
    W_NOACTIVE  -  No Active Window
    W_ESCPRESS  -  The [Esc] Key Was Pressed
    W_STRLONG   -  Window Not Wide Enough To Hold Largest String

EXAMPLE
     FILE: TCXLDEMO.C.........Line: 1090



























TesSeRact CXL V5.5 Documentation                                    Page 33
---------------------------------------------------------------------------

NAME........._Select           <TcxlSel.H>

DESCRIPTION
     This  is  the  internal  selection  engine,  called  by  SelFile(),
     SelStr() and SelTxt().

PROTOTYPE....IntT CTYP _Select(IntT sr, IntT sc, IntT er, IntT ec,
  IntT bt, IntT ba, IntT wa, IntT sa, ChrP as[], IntT ie, VfvCP fo);

ARGUMENTS
  sr  -  Start Row
  sc  -  Start Column
  er  -  End Row
  ec  -  End Column
  bt  -  Border Type (See Appendix C [Border Types])
  ba  -  Border Attribute (See Appendix A)
  wa  -  Window Attribute (See Appendix A)
  sa  -  Selection Bar Attribute (See Appendix A)
  as  -  Base of array of string pointers
  ie  -  Initial Element to default to
  fo  -  Function to call when window is opened

RETURNS
  The array subscript of the selected string.  If an error occurred,
  then -1 (ERR_ARG) will be returned and TcxlErr will be set to one of
  the following:
    W_ESCPRESS  -  The [Esc] Key Was Pressed
    W_ALLOCERR  -  Memory Allocation Error
    W_INVCOORD  -  Invalid Window Coordinates
    W_INVBTYPE  -  Invalid Border Type
    W_STRLONG   -  Window Not Wide Enough To Hold Largest String
    W_INVPATH   -  Invalid Path Or Path Not Found

EXAMPLE
     FILE: SEL\SELFILE.C......Line: 137
     FILE: SEL\SELSTR.C.......Line: 27
     FILE: SEL\SELTXT.C.......Line: 32



















Page 34                                    TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------


                          Middle Level Functions


                               Window System


                              Error Handling

---------------------------------------------------------------------------

NAME.........Wperror           <TcxlWin.H>

DESCRIPTION
     Opens an  error window,  displays an  error message, sounds a beep,
     waits for  a keypress, then returns to caller.  The error window is
     opened in the general vicinity of the cursor position.

PROTOTYPE....IntT CTYP Wperror(ChrP mp);

ARGUMENTS
  mp  -  The message you want displayed in the error window

RETURNS
  ERR_NUL  -  No Error
  ERR_ARG  -  Argument Failure
    TcxlErr Returns:
  W_STRLONG  - error message string too long

EXAMPLE
     FILE: TCXLDEMO.C.........Line: 1354, 1359, 2060, 2393, 2400, 2408

---------------------------------------------------------------------------

NAME.........WerrMsg           <TcxlWin.H>

DESCRIPTION
     This function,  reads the global error value stored in TcxlErr, and
     returns the literal error message that corresponds to it.  This can
     be very  useful in  debugging programs  that use  TCXL's  windowing
     functions.

PROTOTYPE....ChrP CTYP WerrMsg(NOARG);

ARGUMENTS....None

RETURNS
  A pointer to the error message associated with the current value of
  TcxlErr().

EXAMPLE
     FILE: TCXLDEMO.C.........Line: 2630




TesSeRact CXL V5.5 Documentation                                    Page 35
---------------------------------------------------------------------------

NAME.........Werror            <TcxlWin.H>

DESCRIPTION
     This function  terminates  your  application  with  a  fatal  error
     message, based  on the  value of  TcxlErr().   The video  system is
     restored, the  screen is  cleared, and  the error message is set to
     the Standard Error device (StdErr).

PROTOTYPE....VOID CTYP Werror(NOARG);

ARGUMENTS....None

RETURNS......None

EXAMPLE
     FILE: TCXLDEMO.C.........Line: 1689

---------------------------------------------------------------------------

                        General Window Manipulation

---------------------------------------------------------------------------

NAME.........Wactiv            <TcxlWin.H>

DESCRIPTION
     Activates a previously opened window, bringing it "in front" of all
     the others.   Many windowing functions can perform their operations
     only on  the active  window.   If a  window is not active, you will
     need to activate it before you can use it for these functions.

PROTOTYPE....IntT CTYP Wactiv(WndT wh);

ARGUMENTS
  wh  -  Window Handle

RETURNS
  ERR_NUL  -  No Error, or Window Already Active
  ERR_ARG  -  Argument Failure
    TcxlErr Returns:
    W_NOTFOUND  -  Window Handle Not Found
    W_NOACTIVE  -  No Open Windows

EXAMPLE
     FILE: MNU\MNUSHOW.C......Line: 363, 691
     FILE: TCXLDEMO.C.........Line: 1272, 2375










Page 36                                    TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------

NAME.........WcloseAll         <TcxlWin.H>

DESCRIPTION
     Closes all open windows.

PROTOTYPE....IntT CTYP WcloseAll(NOARG);

ARGUMENTS....None

RETURNS
  ERR_NUL  -  No Error
  ERR_ARG  -  Argument Failure
    TcxlErr Returns:
    W_NOACTIVE  -  No Active Window

SEE ALSO
  Wclose (Page 48)

---------------------------------------------------------------------------

NAME.........Windowat          <TcxlWin.H>

DESCRIPTION
     Returns the  handle of  the window  at  given  screen  row,  column
     coordinates.

PROTOTYPE....WndT CTYP Windowat(IntT sr, IntT sc);

ARGUMENTS
  sr  -  Screen Row
  sc  -  Screen Column

RETURNS
  The window handle of the window at the given coordinates.
  ERR_NUL  -  Check TcxlErr for Error Code!
  ERR_ARG  -  Argument Failure
    TcxlErr Returns:
    W_NOTFOUND  -  no window found at given screen coordinates


















TesSeRact CXL V5.5 Documentation                                    Page 37
---------------------------------------------------------------------------

NAME.........WinLoc            <TcxlWin.H>

DESCRIPTION
     Finds the  address of  a window  record using  the specified window
     handle. This is used internally be several TCXL functions.

PROTOTYPE....WdfP CTYP WinLoc(WndT wh);

ARGUMENTS
  wh  -  Window Handle

RETURNS
  The address of the window control structure, or NULL if no record was
  found.

SEE ALSO
  Wdfp (See User's Guide)
  FldLoc (Page 22)
  ItmLoc (Page 7)

EXAMPLE
     FILE: WIN\WACTIV.C.......Line: 41
     FILE: WIN\WUNHIDE.C......Line: 36
     FILE: WIN\WUNLINK.C......Line: 28
     FILE: WIN\WWPRINTS.C.....Line: 42

---------------------------------------------------------------------------

NAME.........Wisactiv          <TcxlWin.H>    Macro

DESCRIPTION
     Determines if the specified window is active.

PROTOTYPE....IntT Wisactiv(WndT a);

  #define Wisactiv(a) ((a) == WdfHdl(WctlAct))

ARGUMENTS
  a   -  Window Handle

RETURNS
  TRUE if specified handle is active
  FALSE otherwise













Page 38                                    TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------

NAME.........Wopen             <TcxlWin.H>

DESCRIPTION
     Opens a  screen window  and makes  it active.   The cursor location
     will be  initialized to window row 0, column 0.  The text attribute
     (See Appendix  A) will  be initialized to the same attribute as the
     window.  You can open as many windows as memory permits.

PROTOTYPE....WndT CTYP Wopen(IntT sr, IntT sc, IntT er, IntT ec, IntT bt,
            IntT ba, IntT wa);

ARGUMENTS
  sr  -  Start Row
  sc  -  Start Column
  er  -  End Row
  ec  -  End Column
  bt  -  Border Type (See Appendix C [Border Types])
  ba  -  Border Attribute (See Appendix A)
  wa  -  Window Attribute (See Appendix A)

RETURNS
  The window handle of the new window, or:
  ERR_ARG  -  Argument Failure
    TcxlErr Returns:
    W_INVCOORD - Invalid Coordinates
    W_INVBTYPE - Invalid Border Type

SEE ALSO
  Wpopup (Page 40)

EXAMPLE
     FILE: MNU\MNUSHOW.C......Line: 79
     FILE: HLP\HLPSHOW.C......Line: 84
     FILE: SEL\SELATTR.C......Line: 32
     FILE: SEL\_SELECT.C......Line: 98
     FILE: WIN\WCOPY.C........Line: 38
     FILE: WIN\WPERROR.C......Line: 43
     FILE: WIN\WPOPUP.C.......Line: 35
     FILE: TCXLDEMO.C.........Line: 805, 831, 1218, 1261, 1282, 1376,
                              1567, 1571, 1709, 2095, 2099, 2138, 2381,
                              2462, 2505, 2532, 2568















TesSeRact CXL V5.5 Documentation                                    Page 39
---------------------------------------------------------------------------

NAME.........WpopUp            <TcxlWin.H>

DESCRIPTION
     This function,  like Wopen(),  opens a  screen window  and makes it
     active.   However, this  function  will  automatically  center  the
     window on  the screen;  horizontally, vertically,  or both.    This
     function will  detect the  screen size, based on the initialization
     parameters, and react accordingly.
     For consistency,  the parameter  list for  WpopUp() is identical to
     Wopen() except  for the  addition of  the flag  byte.  However, the
     start/end positions are used only for size determination.
     WpopUp() is identical to calling Wopen() followed by Wcenter().

PROTOTYPE....WndT CTYP WpopUp(IntT cf, IntT sr, IntT sc, IntT er,
            IntT ec, IntT bt, IntT ba, IntT wa);

ARGUMENTS
  cf  -  Centering Flag (See Appendix C [Centering Flags])
  sr  -  Start Row
  sc  -  Start Column
  er  -  End Row
  ec  -  End Column
  bt  -  Border Type (See Appendix C [Border Types])
  ba  -  Border Attribute (See Appendix A)
  wa  -  Window Attribute (See Appendix A)

RETURNS
  The window handle of the new window, or:
  ERR_ARG  -  Argument Failure
    TcxlErr Returns:
    W_INVCOORD - Invalid Coordinates
    W_INVBTYPE - Invalid Border Type

SEE ALSO
  Wopen (Page 39)
  Wcenter (Page 47)

EXAMPLE
     FILE: TCXLDEMO.C.........Line: 808, 836, 999, 1027, 1073, 1129,
                              1135, 1158, 1208, 1242, 1468
















Page 40                                    TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------

NAME.........Wrestore          <TcxlWin.H>

DESCRIPTION
     Restores a  previously saved  region of the screen screen and frees
     the memory allocated by wsave().

PROTOTYPE....VOID CTYP Wrestore(VcelP wb);

ARGUMENTS
  wb  -  Pointer to Window Buffer

RETURNS......None

SEE ALSO
  Wsave (Page 42)
  Vsave (Page 90)
  Vrestore (Page 90)

EXAMPLE
     FILE: WIN\WCLOSE.C.......Line: 30
     FILE: WIN\WCOPY.C........Line: 44
     FILE: WIN\WDRAG.C........Line: 72
     FILE: WIN\WHIDE.C........Line: 39
     FILE: WIN\WMOVE.C........Line: 38, 49
     FILE: WIN\WUNHIDE.C......Line: 44































TesSeRact CXL V5.5 Documentation                                    Page 41
---------------------------------------------------------------------------

NAME.........Wsave             <TcxlWin.H>

DESCRIPTION
     Saves a  region of  the screen  and allocates  memory to  hold  the
     buffer.

PROTOTYPE....VcelP CTYP Wsave(IntT sr, IntT sc, IntT er, IntT ec);

ARGUMENTS
  sr  -  Start Row
  sc  -  Start Column
  er  -  End Row
  ec  -  End Column

RETURNS
  Address of newly-created window buffer, or NULL if not enough memory.

SEE ALSO
  Wrestore (Page 41)
  Vsave (Page 90)
  Vrestore (Page 90)

EXAMPLE
     FILE: WIN\WCOPY.C........Line: 30
     FILE: WIN\WDRAG.C........Line: 61, 64
     FILE: WIN\WHIDE.C........Line: 29
     FILE: WIN\WMOVE.C........Line: 35, 42
     FILE: WIN\WOPEN.C........Line: 58
     FILE: WIN\WUNHIDE.C......Line: 41



























Page 42                                    TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------

NAME.........WsetEsc           <TcxlWin.H>    Macro

DESCRIPTION
  Sets the Escape checking status for window keyboard input functions
  that utilize Escape checking.  By default, Escape checking is on. When
  the user presses [Esc] while Escape checking is off, the keypress will
  be ignored.  The exception to this is when inside a context-sensitive
  help screen or when inside a sub-menu of a multi-level menu system.


PROTOTYPE....VOID WsetEsc(IntT a);

  #define WsetEsc(a) (WctlEsc = (a))

ARGUMENTS
  a   -  0 means turn Esc Checking off, 1 means turn it on.

RETURNS......None

---------------------------------------------------------------------------

NAME.........WsetFil           <TcxlWin.H>    Macro

DESCRIPTION
     Specifies which character the windowing system will use for filling
     windows with.  By default, it is a space (' ').

PROTOTYPE....VOID WsetFil(Int a);

  #define WsetFil(a) (WctlFil = (a))

ARGUMENTS
  a   -  Character to use as fill char

RETURNS......None

EXAMPLE
     FILE: TCXLDEMO.C.........Line: 830
     FILE: TCXLDEMO.C.........Line: 835

















TesSeRact CXL V5.5 Documentation                                    Page 43
---------------------------------------------------------------------------

NAME.........WsetFun           <TcxlWin.H>

DESCRIPTION
     This function  sets an alternate routine to "fill" a window when it
     is opened.   See  the default Fill function, WfilBox(), for details
     on the prototype for this routine.

PROTOTYPE....IntT CTYP WsetFun(VOID (CTYP *f)(WrdT, WrdT, IntT, IntT));

ARGUMENTS
  f   -  Replacement Fill Function

RETURNS
  ERR_NUL  -  No Error
  ERR_ARG  -  Argument Failure
    TcxlErr Returns:
    W_NOACTIVE  -  No Active Window
    W_INVCOORD  -  Invalid Coordinates

---------------------------------------------------------------------------

NAME.........WsetTab           <TcxlWin.H>    Macro

DESCRIPTION
     Modifies the  tab width  to be  used when  displaying tabs  in  the
     active window via the window TTY output functions.  The default tab
     width is 8.

PROTOTYPE....VOID WsetTab(IntT a);

  #define WsetTab(a) (WctlTab = (((a) == 0) ? 1 : (a)))

ARGUMENTS
  a   -  Tab Width (in columns)

RETURNS......None




















Page 44                                    TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------

NAME.........WsetTxt           <TcxlWin.H>

DESCRIPTION
     Sets the  current text  attribute (See  Appendix A)  for the active
     window.   The current  text attribute  is used  by the  window  TTY
     output functions for displaying text inside the active window.

PROTOTYPE....IntT CTYP WsetTxt(IntT a);

ARGUMENTS
  a   -  Text Attribute (See Appendix A)

RETURNS
  ERR_NUL  -  No Error
  ERR_ARG  -  Argument Failure
    TcxlErr Returns:
    W_NOACTIVE  -  No Active Window

SEE ALSO
  Vattrib (Page 107)
  WchgAtr (Page 53)

EXAMPLE
     FILE: MNU\MNUSHOW.C......Line: 398
     FILE: HLP\HLPSHOW.C......Line: 106, 112, 167, 320
     FILE: WIN\WPERROR.C......Line: 46
     FILE: WIN\WPUTS.C........Line: 96, 99, 102, 105, 108, 111, 114, 117
     FILE: TCXLDEMO.C.........Line: 1306, 1397, 1583, 1610, 1612, 1622,
                              1753, 2103, 2436, 2451



























TesSeRact CXL V5.5 Documentation                                    Page 45
---------------------------------------------------------------------------

NAME.........Wunhide           <TcxlWin.H>

DESCRIPTION
     Unhides a  previously hidden  window.   The unhidden window becomes
     the active window.

PROTOTYPE....IntT CTYP Wunhide(WndT wh);

ARGUMENTS
  wh  -  Window Handle

RETURNS
  ERR_NUL  -  No Error
  ERR_ARG  -  Argument Failure
    TcxlErr Returns:
    W_NOTFOUND  -  Window Handle Not Found
    W_NOHIDDEN  -  No Hidden Windows
    W_NOTHIDD   -  Window Not Hidden

SEE ALSO
  Whide (Page 51)

EXAMPLE
     FILE: TCXLDEMO.C.........Line: 1766

---------------------------------------------------------------------------

NAME.........Wunlink           <TcxlWin.H>

DESCRIPTION
     Releases all memory allocated by a window, then unlinks it from the
     window chain,  making it  no longer  accessible.  The screen is not
     changed in  any way.   If  the passed  window handle  is zero,  the
     current active window is unlinked.

PROTOTYPE....IntT CTYP Wunlink(WndT wh);

ARGUMENTS
  wh  -  Window Handle

RETURNS
  ERR_NUL  -  No Error
  ERR_ARG  -  Argument Failure
    TcxlErr Returns:
    W_NOTFOUND - Input Window Handle Was Not Found











Page 46                                    TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------

NAME.........Wwprints          <TcxlWin.H>

DESCRIPTION
     Prints a  string to the specified window.  The specified window can
     be  active,  hidden,  or  blocked.    Control  characters  are  not
     recognized. Cursor position is not updated.

PROTOTYPE....IntT CTYP Wwprints(WndT wh, IntT wr, IntT wc,
            IntT at, ChrP ps);

ARGUMENTS
  wh  -  Window Handle
  wr  -  Window Row
  wc  -  Window Column
  at  -  Text Attribute (See Appendix A)
  ps  -  String to display

RETURNS
  ERR_NUL  -  No Error
  ERR_ARG  -  Argument Failure
    TcxlErr Returns:
    W_NOACTIVE  -  No Active Window
    W_NOTFOUND  -  Window Handle Not Found
    W_INVCOORD  -  Invalid Window Coordinates
    W_STRLONG   -  String Too Long (Not All Of String Was Displayed)

---------------------------------------------------------------------------

                          Active Window Movement

---------------------------------------------------------------------------

NAME.........Wcenter           <TcxlWin.H>

DESCRIPTION
     Centers the  active window on the screen, horizontally, vertically,
     or both.

PROTOTYPE....IntT CTYP Wcenter(IntT cf);

ARGUMENTS
  cf  -  Centering Flag (See Appendix C [Centering Flags])

RETURNS
  ERR_NUL  -  No Error
  ERR_ARG  -  Argument Failure
    TcxlErr Returns:
    W_ALLOCERR  -  Memory Allocation Error
    W_NOACTIVE  -  No Active Window

SEE ALSO
  Wopen (Page 39)
  Wpopup (Page 40)



TesSeRact CXL V5.5 Documentation                                    Page 47
---------------------------------------------------------------------------

NAME.........Wclose            <TcxlWin.H>

DESCRIPTION
     Closes the  active window.   If the window has a shadow, it will be
     closed as well.

PROTOTYPE....IntT CTYP Wclose(NOARG);

ARGUMENTS....None

RETURNS
  ERR_NUL  -  No Error
  ERR_ARG  -  Argument Failure
    TcxlErr Returns:
    W_NOACTIVE  -  No Active Window

SEE ALSO
  Wopen (Page 39)
  WcloseAll (Page 37)

EXAMPLE
     FILE: MNU\MNUSHOW.C......Line: 362
     FILE: HLP\HLPSHOW.C......Line: 138
     FILE: SEL\SELATTR.C......Line: 60, 67
     FILE: SEL\_SELECT.C......Line: 138, 246
     FILE: WIN\WCLOSEAL.C.....Line: 25
     FILE: WIN\WPERROR.C......Line: 51
     FILE: TCXLDEMO.C.........Line: 967, 968, 1050, 1056, 1099, 1139,
                              1179, 1224, 1225, 1250, 1336, 1385, 1545,
                              1579, 1627, 1718, 2376, 2572


























Page 48                                    TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------

NAME.........Wcopy             <TcxlWin.H>

DESCRIPTION
     Creates a new window duplicating the active window.  The new window
     becomes the active window.

PROTOTYPE....WndT CTYP Wcopy(IntT nr, IntT nc);

ARGUMENTS
  nr  -  Start Row of duplicate window
  sc  -  Start Column of duplicate window

RETURNS
  The window handle of the new window, or:
  ERR_ARG  -  Argument Failure
    TcxlErr Returns:
    W_INVCOORD - invalid coordinates

SEE ALSO
  Wopen (Page 39)

EXAMPLE
     FILE: TCXLDEMO.C.........Line: 1401, 1404

---------------------------------------------------------------------------

NAME.........Wdrag             <TcxlWin.H>

DESCRIPTION
     Smoothly drag active window one row/column in given direction.

PROTOTYPE....IntT CTYP Wdrag(IntT df);

ARGUMENTS
  df  -  Direction (See Appendix C [Direction Codes])

RETURNS
  ERR_NUL  -  No Error
  ERR_ARG  -  Argument Failure
    TcxlErr Returns:
    W_NOACTIVE  -  No Active Window
    W_ALLOCERR  -  Memory Allocation Error

SEE ALSO
  Wslide (Page 52)
  Wmove (Page 51)

EXAMPLE
     FILE: WIN\WSLIDE.C.......Line: 36, 39, 42, 45







TesSeRact CXL V5.5 Documentation                                    Page 49
---------------------------------------------------------------------------

NAME.........Wdump             <TcxlWin.H>

DESCRIPTION
     Dumps the active window to the default printer (PRN).

PROTOTYPE....IntT CTYP Wdump(NOARG);

ARGUMENTS....None

RETURNS
  ERR_NUL  -  No Error
  ERR_ARG  -  Argument Failure
    TcxlErr Returns:
    W_NOACTIVE  -  No Active Window

SEE ALSO
  windump (Page 165)
  scrndump (Page 165)

---------------------------------------------------------------------------

NAME.........Whandle           <TcxlWin.H>

DESCRIPTION
     Returns the window handle of the active window.

PROTOTYPE....WndT CTYP Whandle(NOARG);

ARGUMENTS....None

RETURNS
  The handle of the active window, or zero if error;
    TcxlErr Returns:
    W_NOACTIVE  -  No Active Window

SEE ALSO
  Wactiv (Page 36)
  Windowat (Page 37)
  WinLoc (Page 38)
  Wisactiv (Page 38)
















Page 50                                    TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------

NAME.........Whide             <TcxlWin.H>

DESCRIPTION
     Hides the active window.  The next window becomes active.

PROTOTYPE....IntT CTYP Whide(NOARG);

ARGUMENTS....None

RETURNS
  ERR_NUL  -  No Error
  ERR_ARG  -  Argument Failure
    TcxlErr Returns:
    W_ALLOCERR  -  Memory Allocation Error
    W_NOACTIVE  -  No Active Window

SEE ALSO
  Wunhide (Page 46)

EXAMPLE
     FILE: TCXLDEMO.C.........Line: 1760

---------------------------------------------------------------------------

NAME.........Wmove             <TcxlWin.H>

DESCRIPTION
     Moves the active window to a new location on the screen.

PROTOTYPE....IntT CTYP Wmove(IntT sr, IntT sc);

ARGUMENTS
  sr  -  New Start Row
  sc  -  New Start Column

RETURNS
  ERR_NUL  -  No Error
  ERR_ARG  -  Argument Failure
    TcxlErr Returns:
    W_ALLOCERR  -  Memory Allocation Error
    W_NOACTIVE  -  No Active Window

SEE ALSO
  Wslide (Page 52)
  Wdrag (Page 49)

EXAMPLE
     FILE: WIN\WCENTER.C......Line: 29
     FILE: TCXLDEMO.C.........Line: 2172







TesSeRact CXL V5.5 Documentation                                    Page 51
---------------------------------------------------------------------------

NAME.........Wsize             <TcxlWin.H>

DESCRIPTION
     Adjusts the  size of  the active  window  by  changing  the  screen
     coordinates of its lower-right corner.

PROTOTYPE....IntT CTYP Wsize(IntT nr, IntT nc);

ARGUMENTS
  nr  -  New Lower-Left Row
  nc  -  New Lower-Left Column

RETURNS
  ERR_NUL  -  No Error
  ERR_ARG  -  Argument Failure
    TcxlErr Returns:
    W_ALLOCERR  -  Memory Allocation Error
    W_NOACTIVE  -  No Active Window
    W_INVCOORD  -  Invalid Coordinates

EXAMPLE
     FILE: TCXLDEMO.C.........Line: 2496

---------------------------------------------------------------------------

NAME.........Wslide            <TcxlWin.H>

DESCRIPTION
     Smoothly slides active window to new screen position.

PROTOTYPE....IntT CTYP Wslide(IntT sr, IntT sc);

ARGUMENTS
  sr  -  New Start Row
  sc  -  New Start Column

RETURNS
  ERR_NUL  -  No Error
  ERR_ARG  -  Argument Failure
    TcxlErr Returns:
    W_ALLOCERR  -  Memory Allocation Error
    W_NOACTIVE  -  No Active Window
    W_INVCOORD  -  Invalid Coordinates

SEE ALSO
  Wdrag (Page 49)
  Wmove (Page 51)

EXAMPLE
     FILE: TCXLDEMO.C.........Line: 2183






Page 52                                    TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------

                           Active Window Control

---------------------------------------------------------------------------

NAME.........WchgAtr           <TcxlWin.H>

DESCRIPTION
     Changes the  text attribute  of the active window.  All text within
     the window will be changed also.

PROTOTYPE....IntT CTYP WchgAtr(IntT ba, IntT wa);

ARGUMENTS
  ba  -  New Border Attribute (See Appendix A)
  wa  -  New Window Attribute (See Appendix A)

RETURNS
  ERR_ARG  -  Argument Failure
    TcxlErr Returns:
    W_NOACTIVE  -  No Active Window

SEE ALSO
  WsetTxt (Page 45)
  Vattrib (Page 107)

EXAMPLE
     FILE: TCXLDEMO.C.........Line: 1323

---------------------------------------------------------------------------

NAME.........WchkBox           <TcxlWin.H>

DESCRIPTION
     Determines whether  input window  box coordinates are valid for use
     in the active window.

PROTOTYPE....IntT CTYP WchkBox(IntT sr, IntT sc, IntT er, IntT ec);

ARGUMENTS
  sr  -  Start Row
  sc  -  Start Column
  er  -  End Row
  ec  -  End Column

RETURNS
  Nonzero if coordinates are invalid

EXAMPLE
     FILE: WIN\WDRWBOX.C......Line: 28
     FILE: WIN\WFILBOX.C......Line: 27
     FILE: WIN\WSCRBOX.C......Line: 29





TesSeRact CXL V5.5 Documentation                                    Page 53
---------------------------------------------------------------------------

NAME.........WchkCol           <TcxlWin.H>

DESCRIPTION
     Determines whether  input window column coordinate is valid for use
     in the active window.

PROTOTYPE....IntT CTYP WchkCol(IntT wc);

ARGUMENTS
  wc  -  Window Column to check

RETURNS
  Nonzero if coordinate is invalid

---------------------------------------------------------------------------

NAME.........WchkPos           <TcxlWin.H>

DESCRIPTION
     Determines whether  input window  row, column coordinates are valid
     for use in the active window.

PROTOTYPE....IntT CTYP WchkPos(IntT wr, IntT wc);

ARGUMENTS
  wr  -  Window Row to check
  wc  -  Window Column to check

RETURNS
  Nonzero if coordinates are invalid

EXAMPLE
     FILE: WIN\WCHKBOX.C......Line: 21
     FILE: WIN\WCURPUT.C......Line: 28
     FILE: WIN\WGOTOXY.C......Line: 26
     FILE: WIN\WPRTC.C........Line: 27
     FILE: WIN\WPRTRJ.C.......Line: 28
     FILE: WIN\WPRTS.C........Line: 29


















Page 54                                    TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------

NAME.........WchkRow           <TcxlWin.H>

DESCRIPTION
     Determines whether  input window  row  is  valid  for  use  in  the
     activewindow.

PROTOTYPE....IntT CTYP WchkRow(IntT wr);

ARGUMENTS
  wr  -  Window Row to check

RETURNS
  Nonzero if coordinate is invalid

EXAMPLE
     FILE: WIN\WCHKPOS.C......Line: 21
     FILE: WIN\WLINDEL.C......Line: 27
     FILE: WIN\WLININS.C......Line: 27
     FILE: WIN\WPRTCEN.C......Line: 29

---------------------------------------------------------------------------

NAME.........Wclear            <TcxlWin.H>    Macro

DESCRIPTION
     Clears the active window and homes the cursor.

PROTOTYPE....IntT Wclear(NOARG);

  #define Wclear() (WclrWin(WdfDat(WctlAct)))

ARGUMENTS....None

RETURNS
  ERR_NUL  -  No Error
  ERR_ARG  -  Argument Failure
    TcxlErr Returns:
    W_NOACTIVE - No Active Window

SEE ALSO
  WclrWin (Page 57)
  Vclear (Page 94)
  VclrScr (Page 94)
  VclrBox (Page 88)
  VfilBox (Page 89)

EXAMPLE
     FILE: HLP\HLPSHOW.C......Line: 215, 253
     FILE: WIN\WPUTS.C........Line: 132
     FILE: TCXLDEMO.C.........Line: 1044, 1491, 1582






TesSeRact CXL V5.5 Documentation                                    Page 55
---------------------------------------------------------------------------

NAME.........WclrEol           <TcxlWin.H>

DESCRIPTION
     Clears from the cursor to the end of the active window's line.  The
     cursor's position is not updated.

PROTOTYPE....IntT CTYP WclrEol(NOARG);

ARGUMENTS....None

RETURNS
  ERR_NUL  -  No Error
  ERR_ARG  -  Argument Failure
    TcxlErr Returns:
    W_NOACTIVE - No Active Window

SEE ALSO
  VclrEol (Page 94)
  VputSpa (Page 96)

EXAMPLE
     FILE: MNU\MNUSHOW.C......Line: 400
     FILE: WIN\WCLREOS.C......Line: 31, 36
     FILE: WIN\WPUTS.C........Line: 138
     FILE: TCXLDEMO.C.........Line: 1646

---------------------------------------------------------------------------

NAME.........WclrEos           <TcxlWin.H>

DESCRIPTION
     Clears from  the cursor  to the  end of  the active  window.    The
     cursor's position is not updated.

PROTOTYPE....IntT WclrEos(NOARG);

ARGUMENTS....None

RETURNS
  ERR_NUL  -  No Error
  ERR_ARG  -  Argument Failure
    TcxlErr Returns:
    W_NOACTIVE - No Active Window

SEE ALSO
  VputSpa (Page 96)

EXAMPLE
     FILE: WIN\WPUTS.C........Line: 135







Page 56                                    TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------

NAME.........WclrWin           <TcxlWin.H>

DESCRIPTION
     Clears the  active  window  using  specified  text  attribute  (See
     Appendix A),  then homes  the cursor.   This is the same as calling
     WchgAtr(), followed  by Wclear(). [NOTE!  Wclear() is implemeted as
     a macro that calls WclrWin().]

PROTOTYPE....IntT CTYP WclrWin(IntT at);

ARGUMENTS
  at  -  Attribute (See Appendix A)

RETURNS
  ERR_NUL  -  No Error
  ERR_ARG  -  Argument Failure
    TcxlErr Returns:
    W_NOACTIVE - No Active Window

SEE ALSO
  Wclear (Page 55)
  Vclear (Page 94)
  VclrScr (Page 94)
  VclrBox (Page 88)
  VfilBox (Page 89)

---------------------------------------------------------------------------

NAME.........WfilBox           <TcxlWin.H>

DESCRIPTION
     Fills in  a region  of active window with a specified character and
     attribute (See Appendix A).

PROTOTYPE....IntT CTYP WfilBox(IntT sr, IntT sc, IntT er, IntT ec,
            IntT ch, IntT at);

ARGUMENTS
  sr  -  Start Row
  sc  -  Start Column
  er  -  End Row
  ec  -  End Column
  ch  -  Character to use
  at  -  Attribute (See Appendix A)

RETURNS
  ERR_NUL  -  No Error









TesSeRact CXL V5.5 Documentation                                    Page 57
---------------------------------------------------------------------------

NAME.........WlinDel           <TcxlWin.H>

DESCRIPTION
     Deletes a  line from  the active  window.  Depending upon the input
     scroll direction,  the lines above or below the line to delete will
     scroll to  fill in  the deleted  line in,  and a blank line will be
     added.   If what  you really  want to do is clear the line, you may
     want to use WclrEol() instead.

PROTOTYPE....IntT CTYP WlinDel(IntT wr, IntT df);

ARGUMENTS
  wr  -  Window Row to delete
  df  -  Direction (See Appendix C [Direction Codes])

RETURNS
  ERR_NUL  -  No Error
  ERR_ARG  -  Argument Failure
    TcxlErr Returns:
    W_NOACTIVE  -  No Active Window
    W_INVCOORD  -  Invalid Window Row

---------------------------------------------------------------------------

NAME.........WlinIns           <TcxlWin.H>

DESCRIPTION
     Inserts a  blank line  in the  active window.   Depending  upon the
     input scroll  direction, lines  will shift  up or down to make room
     for the new line.

PROTOTYPE....IntT CTYP WlinIns(IntT wr, IntT di);

ARGUMENTS
  wr  -  Window Row to delete
  df  -  Direction (See Appendix C [Direction Codes])

RETURNS
  ERR_NUL  -  No Error
  ERR_ARG  -  Argument Failure
    TcxlErr Returns:
    W_NOACTIVE  -  No Active Window
    W_INVCOORD  -  Invalid Window Row













Page 58                                    TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------

NAME.........WscrBox           <TcxlWin.H>

DESCRIPTION
     Scrolls a region of the active window up or down.

PROTOTYPE....IntT CTYP WscrBox(IntT sr, IntT sc, IntT er, IntT ec,
            IntT n, IntT d);

ARGUMENTS
  sr  -  Start Row
  sc  -  Start Column
  er  -  End Row
  ec  -  End Column
  n   -  Number of lines to scroll
  d   -  Direction (Up or Down only!) (See Appendix C [Direction Codes])

RETURNS
  ERR_NUL  -  No Error
  ERR_ARG  -  Argument Failure
    TcxlErr Returns:
    W_NOACTIVE  -  No Active Window
    W_INVCOORD  -  Invalid Window Coordinates

SEE ALSO
  Vscroll (Page 98)

EXAMPLE
     FILE: WIN\WLINDEL.C......Line: 39
     FILE: WIN\WLININS.C......Line: 39



























TesSeRact CXL V5.5 Documentation                                    Page 59
---------------------------------------------------------------------------

NAME.........WscrWin           <TcxlWin.H>

DESCRIPTION
     Scrolls text lines within the active window, up or down.

PROTOTYPE....IntT WscrWin(IntT n, IntT d);

ARGUMENTS
  n   -  Number of lines to scroll
  d   -  Direction (Up or Down only!) (See Appendix C [Direction Codes])

RETURNS
  ERR_NUL  -  No Error
  ERR_ARG  -  Argument Failure
    TcxlErr Returns:
    W_NOACTIVE  -  No Active Window

SEE ALSO
  Vscroll (Page 98)

EXAMPLE
     FILE: SEL\_SELECT.C......Line: 382, 402
     FILE: WIN\WPUTC.C........Line: 67
     FILE: WIN\WPUTS.C........Line: 50
































Page 60                                    TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------

                               Active Border

---------------------------------------------------------------------------

NAME.........Wborder           <TcxlWin.H>

DESCRIPTION
     Changes the  active window's border type.  If changing to or from a
     borderless window, the window's effective area will change as well,
     changing relative coordinates within the window.

PROTOTYPE....IntT CTYP Wborder(IntT bt);

ARGUMENTS
  bt  -  Border Type (See Appendix C [Border Types])

RETURNS
  ERR_NUL  -  No Error
  ERR_ARG  -  Argument Failure
    TcxlErr Returns:
    W_NOACTIVE  -  No Active Window
    W_INVBTYPE  -  Invalid Border Type

SEE ALSO
  VdrwBox (Page 89)

EXAMPLE
     FILE: WIN\WSIZE.C........Line: 82
     FILE: TCXLDEMO.C.........Line: 1313

---------------------------------------------------------------------------

NAME.........Wbprintc          <TcxlWin.H>

DESCRIPTION
     Displays a character on a window's border.

PROTOTYPE....IntT CTYP Wbprintc(IntT bd, IntT of, IntT at, IntT ch);

ARGUMENTS
  bd  -  Border Side  (See Appendix C [Border Sides])
  of  -  Offset for display
  at  -  Text Attribute (See Appendix A)
  ch  -  Character to display

RETURNS
  ERR_NUL  -  No Error
  ERR_ARG  -  Argument Failure
    TcxlErr Returns:
    W_NOACTIVE  -  No Active Window
    W_NOBORDER  -  Window Has No Border
    W_INVCOORD  -  Border Offset Out Of Range




TesSeRact CXL V5.5 Documentation                                    Page 61
---------------------------------------------------------------------------

NAME.........WdrwBox           <TcxlWin.H>

DESCRIPTION
     "Draws" a text box in the active window.

PROTOTYPE....IntT CTYP WdrwBox(IntT sr, IntT sc, IntT er, IntT ec,
            IntT bt, IntT at);

ARGUMENTS
  sr  -  Start Row
  sc  -  Start Column
  er  -  End Row
  ec  -  End Column
  bt  -  Border Type (See Appendix C [Border Types])
  ba  -  Border Attribute (See Appendix A)

RETURNS
  ERR_NUL  -  No Error
  ERR_ARG  -  Argument Failure
    TcxlErr Returns:
    W_NOACTIVE  -  No Active Window
    W_NOBORDER  -  Window Has No Border
    W_INVCOORD  -  Border Offset Out Of Range

SEE ALSO
  VdrwBox (Page 89)

EXAMPLE
     FILE: SEL\SELATTR.C......Line: 51, 54



























Page 62                                    TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------

NAME.........WdrwHor           <TcxlWin.H>

DESCRIPTION
     "Draws" a  horizontal text  line in  active window using characters
     defined by  given box  type.  If horizontal line crosses a vertical
     line, an appropriate intersection or corner will be used.

PROTOTYPE....IntT CTYP WdrwHor(IntT sr, IntT sc, IntT nc,
            IntT bt, IntT at);

ARGUMENTS
  sr  -  Start Row
  sc  -  Start Columns
  nc  -  Number of Columns
  bt  -  Border Type (See Appendix C [Border Types])
  at  -  Attribute (See Appendix A)

RETURNS
  ERR_NUL  -  No Error
  ERR_ARG  -  Argument Failure
    TcxlErr Returns:
    W_NOACTIVE  -  No Active Window
    W_INVCOORD  -  Text Line Too Long For Window
    W_INVBTYPE  -  Invalid Box Type

EXAMPLE
     FILE: TCXLDEMO.C.........Line: 1777, 2098, 2487, 2488





























TesSeRact CXL V5.5 Documentation                                    Page 63
---------------------------------------------------------------------------

NAME.........WdrwVer           <TcxlWin.H>

DESCRIPTION
     "Draws" a  vertical text line in the active window using characters
     defined by  the given  box type.   If  the vertical  line crosses a
     horizontal line,  an appropriate  intersection or  corner  will  be
     displayed.

PROTOTYPE....IntT CTYP WdrwVer(IntT sr, IntT sc, IntT n,
            IntT bt, IntT at);

ARGUMENTS
  sr  -  Start Row
  sc  -  Start Columns
  n   -  Number of Rows
  bt  -  Border Type (See Appendix C [Border Types])
  at  -  Attribute (See Appendix A)

RETURNS
  ERR_NUL  -  No Error
  ERR_ARG  -  Argument Failure
    TcxlErr Returns:
    W_NOACTIVE  -  No Active Window
    W_INVCOORD  -  Text Line Too Long For Window
    W_INVBTYPE  -  Invalid Box Type

EXAMPLE
     FILE: TCXLDEMO.C.........Line: 2616




























Page 64                                    TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------

NAME.........Wmessage          <TcxlWin.H>

DESCRIPTION
     Displays text on the top or bottom border of the active window.

PROTOTYPE....IntT CTYP Wmessage(ChrP ps, IntT bo, IntT lo, IntT at);

ARGUMENTS
  ps  -  Message String
  bo  -  Border Sides (See Appendix C [Border Sides])
  lo  -  Left Offset to Display Message
  at  -  Attribute (See Appendix A)

RETURNS
  ERR_NUL  -  No Error
  ERR_ARG  -  Argument Failure
    TcxlErr Returns:
    W_NOACTIVE  -  No Active Window
    W_STRLONG   -  String Could Not Fit In Window
    W_NOBORDER  -  Window Has No Border

EXAMPLE
     FILE: HLP\HLPSHOW.C......Line: 181
     FILE: SEL\SELATTR.C......Line: 147
     FILE: TCXLDEMO.C.........Line: 1004, 1005, 1006, 1007, 1213, 2330































TesSeRact CXL V5.5 Documentation                                    Page 65
---------------------------------------------------------------------------

NAME.........Wtitle            <TcxlWin.H>

DESCRIPTION
     Gives active  window a  title and displays title on top border line
     of window.   If  active window  has no  border, then  the  window's
     record will be updated, but no title will be visible.

PROTOTYPE....IntT CTYP Wtitle(ChrP ps, IntT tp, IntT ta);

ARGUMENTS
  ps  -  Title String
  tp  -  Title Position (See Appendix C [Title Positions])
  ta  -  Attribute (See Appendix A)

RETURNS
  ERR_NUL  -  No Error
  ERR_ARG  -  Argument Failure
  ERR_MEM  -  Memory Allocation Failure
    TcxlErr Returns:
    W_NOACTIVE  -  No Active Window

EXAMPLE
     FILE: HLP\HLPSHOW.C......Line: 86
     FILE: SEL\SELFILE.C......Line: 195
     FILE: WIN\WBORDER.C......Line: 38
     FILE: WIN\WCHGATR.C......Line: 35
     FILE: WIN\WPERROR.C......Line: 45
     FILE: TCXLDEMO.C.........Line: 1003, 1162, 1212, 1570, 1574, 1668,
                              1710



























Page 66                                    TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------

                               Active Shadow

---------------------------------------------------------------------------

NAME.........Wshadoff          <TcxlWin.H>

DESCRIPTION
     Removes the  shadow from  the active  window, if  one exists.  This
     function is  only needed  when you  want to  prematurely remove the
     active window's  shadow.  The wclose() function automatically calls
     Wshadoff() when it closes a window.

PROTOTYPE....IntT CTYP Wshadoff(NOARG);

ARGUMENTS....None

RETURNS
  ERR_NUL  -  No Error
  ERR_ARG  -  Argument Failure
  ERR_MEM  -  Memory Allocation Failure
    TcxlErr Returns:
    W_NOACTIVE  -  No Active Window

EXAMPLE
     FILE: WIN\WCLOSE.C.......Line: 29
     FILE: WIN\WDRAG.C........Line: 59
     FILE: WIN\WHIDE.C........Line: 34
     FILE: WIN\WMOVE.C........Line: 33
     FILE: WIN\WSIZE.C........Line: 42
     FILE: WIN\WSLIDE.C.......Line: 33


























TesSeRact CXL V5.5 Documentation                                    Page 67
---------------------------------------------------------------------------

NAME.........Wshadow           <TcxlWin.H>

DESCRIPTION
     Gives the  active window  a shadow.  The shadow will be cast to the
     right of  the  window  and  will  be  translucent  (the  characters
     underneath the shadow will show through in the given attribute).

PROTOTYPE....IntT CTYP Wshadow(IntT at);

ARGUMENTS
  at  -  Attribute for shadow (most effective is _BLACK | DGREY)

RETURNS
  ERR_NUL  -  No Error
  ERR_ARG  -  Argument Failure
  ERR_MEM  -  Memory Allocation Failure
    TcxlErr Returns:
    W_NOACTIVE  -  No Active Window

EXAMPLE
     FILE: WIN\WCOPY.C........Line: 46
     FILE: WIN\WDRAG.C........Line: 125
     FILE: WIN\WMOVE.C........Line: 58
     FILE: WIN\WSIZE.C........Line: 84
     FILE: WIN\WSLIDE.C.......Line: 48
     FILE: WIN\WUNHIDE.C......Line: 59
     FILE: TCXLDEMO.C.........Line: 2164





























Page 68                                    TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------

                               Active Cursor

---------------------------------------------------------------------------

NAME.........WcurGet           <TcxlWin.H>    Macro
.............WcurGt_

DESCRIPTION
     Reads the current cursor coordinates of the active window.

PROTOTYPE....VOID WcurGet(VposT rc);
.............VposT CTYP WcurGt_(NOARG);

  #define WcurGet(rc) (VposW(rc) = WcurGt_())

ARGUMENTS....None

RETURNS
  A structure, filled in with the current row/column position of the
  active window.

SEE ALSO
  WposGet (Page 72)
  VcurGet (Page 99)
  VposGet (Page 103)

EXAMPLE
     FILE: WIN\WCLREOS.C......Line: 28
     FILE: WIN\WPUTC.C........Line: 44
     FILE: WIN\WPUTCEN.C......Line: 29
     FILE: WIN\WPUTRJ.C.......Line: 29
     FILE: WIN\WPUTS.C........Line: 75, 120, 124
     FILE: TCXLDEMO.C.........Line: 2634























TesSeRact CXL V5.5 Documentation                                    Page 69
---------------------------------------------------------------------------

NAME.........WcurPut           <TcxlWin.H>    Macro
.............WcurPt_

DESCRIPTION
     This function is functionally identical to Wgotoxy, except it takes
     a Vpos  structure as  a parameter,  instead of  separate  row/colum
     figures.

PROTOTYPE....IntT WcurPut(VposT rc);
.............IntT CTYP WcurPt_(WrdT rc);

  #define WcurPut(rc) (WcurPt_(VposW(rc)))

ARGUMENTS
  rc  -  Vpos structure with Window coordinates

RETURNS
  ERR_NUL  -  No Error
  ERR_ARG  -  Argument Failure
    TcxlErr Returns:
    W_NOACTIVE  -  No Active Window
    W_INVCOORD  -  Invalid Coordinates

SEE ALSO
  WcurPut (Page 70)
  Wgotoxy (Page 71)
  Wpgotoxy (Page 72)
  VcurPut (Page 101)
  Vgotoxy (Page 103)

EXAMPLE
     FILE: MNU\MNUSHOW.C......Line: 380, 397
     FILE: ENT\ENTSHOW.C......Line: 104, 108
     FILE: WIN\WCLREOS.C......Line: 35, 38
     FILE: WIN\WPUTCEN.C......Line: 36
     FILE: WIN\WPUTRJ.C.......Line: 36
     FILE: WIN\WPUTS.C........Line: 126



















Page 70                                    TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------

NAME.........Wgotoxy           <TcxlWin.H>

DESCRIPTION
     This function  moves the  cursor in the active window to the passed
     row/column coordinates.

PROTOTYPE....IntT CTYP Wgotoxy(IntT wr, IntT wc);

ARGUMENTS
  wr  -  Window Row
  wc  -  Window Column

RETURNS
  ERR_NUL  -  No Error
  ERR_ARG  -  Argument Failure
    TcxlErr Returns:
    W_NOACTIVE  -  No Active Window
    W_INVCOORD  -  Invalid Coordinates

SEE ALSO
  WcurPut (Page 70)
  Wpgotoxy (Page 72)
  VcurPut (Page 101)
  Vgotoxy (Page 103)

EXAMPLE
     FILE: ENT\ENTFLD.C.......Line: 38
     FILE: SEL\SELATTR.C......Line: 52
     FILE: SEL\_SELECT.C......Line: 438
     FILE: WIN\WBORDER.C......Line: 36
     FILE: WIN\WCLRWIN.C......Line: 32
     FILE: WIN\WOPEN.C........Line: 95
     FILE: WIN\WPGOTOXY.C.....Line: 30
     FILE: WIN\WSIZE.C........Line: 73
     FILE: TCXLDEMO.C.........Line: 1645, 2102, 2470





















TesSeRact CXL V5.5 Documentation                                    Page 71
---------------------------------------------------------------------------

NAME.........Wpgotoxy          <TcxlWin.H>

DESCRIPTION
     Sets cursor  coordinates within  the  active  window.    If  cursor
     coordinates are out of the window, wpgotoxy() will try to wrap them
     around to fit in the window.

PROTOTYPE....IntT CTYP Wpgotoxy(IntT wr, IntT wc);

ARGUMENTS
  wr  -  Window Row
  wc  -  Window Column

RETURNS
  ERR_NUL  -  No Error
  ERR_ARG  -  Argument Failure
    TcxlErr Returns:
    W_NOACTIVE  -  No Active Window

SEE ALSO
  WcurPut (Page 70)
  Wgotoxy (Page 71)
  VcurPut (Page 101)
  Vgotoxy (Page 103)

---------------------------------------------------------------------------

NAME.........WposGet           <TcxlWin.H>    Macro

DESCRIPTION
     Reads the current cursor coordinates of the active window.

PROTOTYPE....VOID WposGet(IntT r, IntT c);

  #define WposGet(r,c) ((c)=MsInt(WcurGt_()); (r)=((c)>>8); (c)&=0xFF)

ARGUMENTS
  r   -  Window Row
  c   -  Window Column

RETURNS
  The current row/column position of the active window.

SEE ALSO
  WcurGet (Page 69)
  VcurGet (Page 99)
  VposGet (Page 103)









Page 72                                    TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------

                      Active Window Formatted Output

---------------------------------------------------------------------------

NAME.........WdupChr           <TcxlWin.H>

DESCRIPTION
  Displays a character a specified number of times in the active window.
  Characters will be displayed in the window's current text attribute
  (See Appendix A). Control characters and escape sequences (See
  Appendix D) are recognized; Cursor position is updated.

PROTOTYPE....VOID CTYP WdupChr(IntT ch, IntT nd);

ARGUMENTS
  ch  -  Character to Display
  nd  -  Number of times to display character

RETURNS......None

SEE ALSO
  WdupChrA (Page 79)

EXAMPLE
     FILE: WIN\WPUTS.C........Line: 144

---------------------------------------------------------------------------

NAME.........WdupStr           <TcxlWin.H>

DESCRIPTION
     Displays a string a specified number of times in the active window.
     Characters will be displayed in the window's current text attribute
     (See Appendix  A).   Control characters  and escape  sequences (See
     Appendix D) are recognized; Cursor position is updated.

PROTOTYPE....VOID CTYP WdupStr(ChrP ps, IntT nd);

ARGUMENTS
  ps  -  String to Display
  nd  -  Number of times to display string


RETURNS......None

SEE ALSO
  WdupStrA (Page 80)









TesSeRact CXL V5.5 Documentation                                    Page 73
---------------------------------------------------------------------------

NAME.........Wputc             <TcxlWin.H>

DESCRIPTION
     Displays a  character at  the current window coordinates, using the
     current text  attribute (See  Appendix A).   Control characters and
     escape sequences  (See Appendix  D) are recognized; Cursor position
     is updated.

PROTOTYPE....VOID CTYP Wputc(IntT ch);

ARGUMENTS
  ch  -  Character to Display

RETURNS......None

SEE ALSO
  Wprtc (Page 81)
  Vprintc (Page 95)
  Vputc (Page 97)

EXAMPLE
     FILE: WIN\WDUPCHR.C......Line: 22
     FILE: WIN\WPERROR.C......Line: 47
     FILE: WIN\WPUTFMT.C......Line: 40, 50, 53, 60
     FILE: WIN\WPUTNS.C.......Line: 28
     FILE: WIN\WPUTSW.C.......Line: 42
     FILE: WIN\WPUTSW.C.......Line: 47
     FILE: INP\KWGETCF.C......Line: 48
     FILE: INP\KWGETCH.C......Line: 30
     FILE: INP\KWGETFMT.C.....Line: 39, 49, 109
     FILE: INP\KWGETSN.C......Line: 44, 45, 46, 55
     FILE: INP\KWGETST.C......Line: 30, 37, 38, 39
     FILE: TCXLDEMO.C.........Line: 1035, 1045























Page 74                                    TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------

NAME.........Wputs             <TcxlWin.H>

DESCRIPTION
     Displays a  string at  the current  window coordinates,  using  the
     current text  attribute (See  Appendix A).   Control characters and
     escape sequences  (See Appendix  D) are recognized; Cursor position
     is updated.

PROTOTYPE....VOID CTYP Wputs(ChrP ps);

ARGUMENTS
  ps  -  String to Display

RETURNS......None

SEE ALSO
  Wprts (Page 82)
  Vprints (Page 96)

EXAMPLE
     FILE: MNU\MNUSHOW.C......Line: 399
     FILE: HLP\HLPSHOW.C......Line: 107, 113, 114, 115, 266, 273, 301,
                              321, 322, 323
     FILE: WIN\WDUPSTR.C......Line: 22
     FILE: WIN\WPERROR.C......Line: 48
     FILE: WIN\WPUTCEN.C......Line: 37
     FILE: WIN\WPUTF.C........Line: 34
     FILE: WIN\WPUTRJ.C.......Line: 37
     FILE: WIN\WPUTSW.C.......Line: 38, 50, 62, 72
     FILE: INP\KWGETYN.C......Line: 29, 31, 33
     FILE: TCXLDEMO.C.........Line: 1217, 1264, 1286, 1307, 1380, 1398,
                              1494, 1498, 1505, 1509, 1513, 1517, 1521,
                              1525, 1528, 1531, 1535, 1539, 1754, 2142,
                              2150, 2382, 2437, 2466, 2509, 2536






















TesSeRact CXL V5.5 Documentation                                    Page 75
---------------------------------------------------------------------------

NAME.........Wputns            <TcxlWin.H>

DESCRIPTION
     Displays a  string at  the current  window coordinates,  using  the
     current text  attribute (See  Appendix A).   The  input width  will
     determine how  many characters  are actually  displayed.    Control
     characters and  escape sequences  (See Appendix  D) are recognized;
     Cursor position is updated.

PROTOTYPE....VOID CTYP Wputns(ChrP ps, IntT wd);

ARGUMENTS
  ps  -  String to Display
  wd  -  Width of Output String

RETURNS......None

SEE ALSO
  Wprtns (Page 83)

---------------------------------------------------------------------------

NAME.........Wputsw            <TcxlWin.H>

DESCRIPTION
     Displays a  string at  the current  window coordinates,  using  the
     current text  attribute (See  Appendix A).   Words  will be wrapped
     around to  the next  line if  necessary.   Control  characters  and
     escape sequences  (See Appendix  D) are recognized; Cursor position
     is updated.

PROTOTYPE....VOID CTYP Wputsw(ChrP ps);

ARGUMENTS
  ps  -  String to Display

RETURNS......None

SEE ALSO
  Wprtsw (Page 83)

EXAMPLE
     FILE: TCXLDEMO.C.........Line: 1130, 2106, 2109













Page 76                                    TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------

NAME.........Wputf             <TcxlWin.H>

DESCRIPTION
     Displays a  formatted string  to the  active window  at the current
     cursor position  using the current text attribute (See Appendix A).
     Works like the standard printf() function does.  Control characters
     and escape  sequences  (See  Appendix  D)  are  recognized;  Cursor
     position is updated.

PROTOTYPE....IntT CDC wputf(ChrP fs, ...);

ARGUMENTS
  fs  -  Format String (See your compiler's documentation)
  ... -  Additional Arguments

RETURNS
  ERR_NUL  -  No Error
  ERR_ARG  -  Argument Failure
    TcxlErr Returns:
    W_NOACTIVE  -  No Active Window

SEE ALSO
  Wprtf (Page 84)

---------------------------------------------------------------------------

NAME.........WputFmt           <TcxlWin.H>

DESCRIPTION
     Displays a string to active window using a CXL format string.  If a
     character in  a string  doesn't match its format control character,
     it will  be displayed  as a  '?'.   Control characters  and  escape
     sequences (See  Appendix D)  are  recognized;  Cursor  position  is
     updated.

PROTOTYPE....IntT CTYP WputFmt(ChrP fs, ChrP ps);

ARGUMENTS
  fs  -  Format Control String (See Appendix D)
  ps  -  String to Display

RETURNS
  ERR_NUL  -  No Error
  ERR_ARG  -  Argument Failure
    TcxlErr Returns:
    W_NOACTIVE  -  No Active Window
    W_INVFORMT  -  Invalid Format String
    W_STRLONG   -  String Could Not Fit In Window

SEE ALSO
  WprtFmt (Page 85)





TesSeRact CXL V5.5 Documentation                                    Page 77
---------------------------------------------------------------------------

NAME.........WputCen           <TcxlWin.H>

DESCRIPTION
     Centers a  string in  the active  window, on the current row, using
     the current  text attribute  (See Appendix  A).  Control characters
     and escape  sequences  (See  Appendix  D)  are  recognized;  Cursor
     position is updated.

PROTOTYPE....IntT CTYP WputCen(ChrP ps);

ARGUMENTS
  ps  -  String to Center

RETURNS
  ERR_NUL  -  No Error
  ERR_ARG  -  Argument Failure
    TcxlErr Returns:
    W_NOACTIVE  -  No Active Window
    W_STRLONG   -  String Could Not Fit In Window

SEE ALSO
  WprtCen (Page 86)

EXAMPLE
     FILE: TCXLDEMO.C.........Line: 816, 820, 824, 828, 1036, 1046,
                              1136, 1471, 1472, 1492

---------------------------------------------------------------------------

NAME.........Wputrj            <TcxlWin.H>

DESCRIPTION
     Right-justifies a  string in the active window, on the current row,
     using the  current  text  attribute  (See  Appendix  A).    Control
     characters and  escape sequences  (See Appendix  D) are recognized;
     Cursor position is updated.


PROTOTYPE....IntT CTYP Wputrj(ChrP ps);

ARGUMENTS
  ps  -  String to Justify

RETURNS
  ERR_NUL  -  No Error
  ERR_ARG  -  Argument Failure
    TcxlErr Returns:
    W_NOACTIVE  -  No Active Window
    W_STRLONG   -  String Could Not Fit In Window

SEE ALSO
  Wprtrj (Page 87)




Page 78                                    TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------

NAME........._Wputl            <_TcxlWin.H>

DESCRIPTION
     Return length of string, skipping any TCXL Output escape characters
     (See Appendix D), as well as skipping all control characters.  Used
     internally by formatted output routines.

PROTOTYPE....IntT CTYP _Wputl(ChrP tp);

ARGUMENTS
  tp  -  Output String

RETURNS
  Length of Output String

EXAMPLE
     FILE: WIN\WPERROR.C......Line: 27
     FILE: WIN\WPUTCEN.C......Line: 31
     FILE: WIN\WPUTRJ.C.......Line: 31

---------------------------------------------------------------------------

                     Active Window Unformatted Output

---------------------------------------------------------------------------

NAME.........WdupChrA          <TcxlWin.H>

DESCRIPTION
     Displays a  character a  specified number  of times  in the  active
     window at  the specified coordinates, using the specified attribute
     (See Appendix  A).  Control characters and escape sequences are NOT
     recognized; Cursor position is NOT updated.

PROTOTYPE....VOID CTYP WdupChrA(IntT wr, IntT wc, IntT at,
            IntT ch, IntT nd);

ARGUMENTS
  wr  -  Window Row
  wc  -  Window Column
  at  -  Attribute (See Appendix A)
  ch  -  Character to Display
  nd  -  Number of times to display character

RETURNS......None

SEE ALSO
  WdupChr (Page 73)








TesSeRact CXL V5.5 Documentation                                    Page 79
---------------------------------------------------------------------------

NAME.........WdupStrA          <TcxlWin.H>

DESCRIPTION
     Displays a  string a specified number of times in the active window
     at the  specified coordinates,  using the  specified attribute (See
     Appendix A).   Control  characters and  escape  sequences  are  NOT
     recognized; Cursor position is NOT updated.

PROTOTYPE....VOID CTYP WdupStrA(IntT wr, IntT wc, IntT at,
            ChrP ps, IntT nd);

ARGUMENTS
  wr  -  Window Row
  wc  -  Window Column
  at  -  Attribute (See Appendix A)
  ps  -  String to Display
  nd  -  Number of times to display string

RETURNS......None

SEE ALSO
  WdupStr (Page 73)


































Page 80                                    TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------

NAME.........Wprtc             <TcxlWin.H>

DESCRIPTION
     Displays a  character  at  the  specified  coordinates,  using  the
     specified attribute  (See Appendix  A).    Control  characters  and
     escape  sequences  are  NOT  recognized;  Cursor  position  is  NOT
     updated.

PROTOTYPE....IntT CTYP Wprtc(IntT wr, IntT wc, IntT at, IntT ch);

ARGUMENTS
  wr  -  Window Row
  wc  -  Window Column
  at  -  Attribute (See Appendix A)
  ch  -  Character to Display

RETURNS
  ERR_NUL  -  No Error
  ERR_ARG  -  Argument Failure
    TcxlErr Returns:
    W_NOACTIVE  -  No Active Window
    W_INVCOORD  -  Invalid Coordinates

SEE ALSO
  Wputc (Page 74)
  Vprintc (Page 95)

EXAMPLE
     FILE: MNU\MNUSHOW.C......Line: 394
     FILE: ENT\ENTSHOW.C......Line: 333, 503
     FILE: ENT\_FLDDSP.C......Line: 112, 113, 129, 143, 150, 155, 161,
                              162
     FILE: SEL\_SELECT.C......Line: 441
     FILE: WIN\WDUPCHRA.C.....Line: 22
     FILE: WIN\WPRTFMT.C......Line: 40, 50, 53, 60
     FILE: WIN\WPRTNS.C.......Line: 28




















TesSeRact CXL V5.5 Documentation                                    Page 81
---------------------------------------------------------------------------

NAME.........Wprts             <TcxlWin.H>

DESCRIPTION
     Displays a string at the specified coordinates, using the specified
     attribute  (See   Appendix  A).    Control  characters  and  escape
     sequences are NOT recognized; Cursor position is NOT updated.

PROTOTYPE....IntT CTYP Wprts(IntT wr, IntT wc, IntT at, ChrP ps);

ARGUMENTS
  wr  -  Window Row
  wc  -  Window Column
  at  -  Attribute (See Appendix A)
  ps  -  String to Display


RETURNS
  ERR_NUL  -  No Error
  ERR_ARG  -  Argument Failure
    TcxlErr Returns:
    W_NOACTIVE  -  No Active Window
    W_INVCOORD  -  Invalid Coordinates

SEE ALSO
  Wputs (Page 75)
  Vprints (Page 96)

EXAMPLE
     FILE: SEL\SELATTR.C......Line: 141
     FILE: SEL\SELTXT.C.......Line: 34
     FILE: WIN\WDUPSTRA.C.....Line: 22
     FILE: WIN\WPRTF.C........Line: 34
     FILE: WIN\WPRTSW.C.......Line: 38, 54, 66, 76
     FILE: TCXLDEMO.C.........Line: 832, 1014, 1660






















Page 82                                    TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------

NAME.........Wprtns            <TcxlWin.H>

DESCRIPTION
     Displays a string at the specified coordinates, using the specified
     attribute (See  Appendix A).   The  input width  will determine how
     many characters  are actually  displayed.   Control characters  and
     escape  sequences  are  NOT  recognized;  Cursor  position  is  NOT
     updated.

PROTOTYPE....VOID CTYP Wprtns(IntT wr, IntT wc, IntT at, ChrP ps, IntT wd);

ARGUMENTS
  wr  -  Window Row
  wc  -  Window Column
  at  -  Attribute (See Appendix A)
  ps  -  String to Display
  wd  -  Width of Output String

RETURNS......None

SEE ALSO
  Wputns (Page 76)

EXAMPLE
     FILE: SEL\_SELECT.C......Line: 456

---------------------------------------------------------------------------

NAME.........Wprtsw            <TcxlWin.H>

DESCRIPTION
     Displays a string at the specified coordinates, using the specified
     attribute (See  Appendix A).   Words  will be wrapped around to the
     next line  if necessary.   Control  characters and escape sequences
     are NOT recognized; Cursor position is NOT updated.

PROTOTYPE....IntT CTYP Wprtsw(IntT wr, IntT wc, IntT at, ChrP ps);

ARGUMENTS
  wr  -  Window Row
  wc  -  Window Column
  at  -  Attribute (See Appendix A)
  ps  -  String to Display

RETURNS
  ERR_NUL  -  No Error
  ERR_ARG  -  Argument Failure
      TcxlErr Returns:
      W_NOACTIVE    -    No Active Window
      W_INVCOORD    -    Invalid Coordinates

SEE ALSO
  Wputsw (Page 76)



TesSeRact CXL V5.5 Documentation                                    Page 83
---------------------------------------------------------------------------

NAME.........Wprtf             <TcxlWin.H>

DESCRIPTION
     Displays a  formatted string  to the active window at the specified
     coordinates, using the specified attribute (See Appendix A).  Works
     like the  standard printf()  function does.  Control characters and
     escape  sequences  are  NOT  recognized;  Cursor  position  is  NOT
     updated.

PROTOTYPE....IntT CDC wprtf(IntT wr, IntT wc, IntT at, ChrP fs, ...);

ARGUMENTS
  wr  -  Window Row
  wc  -  Window Column
  at  -  Attribute (See Appendix A)
  fs  -  Format String (See your compiler's documentation)
  ... -  Additional Arguments

RETURNS
  ERR_NUL  -  No Error
  ERR_ARG  -  Argument Failure
      TcxlErr Returns:
      W_NOACTIVE    -    No Active Window
      W_INVCOORD    -    Invalid Coordinates

SEE ALSO
  Wputf (Page 77)





























Page 84                                    TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------

NAME.........WprtFmt           <TcxlWin.H>

DESCRIPTION
     Displays a string to active window using a CXL format string at the
     specified coordinates,  using the specified attribute (See Appendix
     A).   If a  character in  a string doesn't match its format control
     character, it  will be  displayed as a '?'.  Control characters and
     escape  sequences  are  NOT  recognized;  Cursor  position  is  NOT
     updated.

PROTOTYPE....IntT CTYP WprtFmt(IntT wr, IntT wc, IntT at, ChrP fs,
            ChrP ps);

ARGUMENTS
  wr  -  Window Row
  wc  -  Window Column
  at  -  Attribute (See Appendix A)
  fs  -  Format Control String (See Appendix D)
  ps  -  String to Display

RETURNS
  ERR_NUL  -  No Error
  ERR_ARG  -  Argument Failure
      TcxlErr Returns:
      W_NOACTIVE    -    No Active Window
      W_INVCOORD    -    Invalid Coordinates
      W_INVFORMT    -    Invalid Format String
      W_STRLONG     -    String Could Not Fit In Window

SEE ALSO
  WputFmt (Page 77)

























TesSeRact CXL V5.5 Documentation                                    Page 85
---------------------------------------------------------------------------

NAME.........WprtCen           <TcxlWin.H>

DESCRIPTION
     Centers a string in the active window at the specified coordinates,
     using the specified attribute (See Appendix A).  Control characters
     and escape  sequences are  NOT recognized;  Cursor position  is NOT
     updated.

PROTOTYPE....IntT CTYP WprtCen(IntT wr, IntT at, ChrP ps);

ARGUMENTS
  wr  -  Window Row
  at  -  Attribute (See Appendix A)
  ps  -  String to Center

RETURNS
  ERR_NUL  -  No Error
  ERR_ARG  -  Argument Failure
      TcxlErr Returns:
      W_NOACTIVE    -    No Active Window
      W_INVCOORD    -    Invalid Coordinates
      W_STRLONG     -    String Could Not Fit In Window

SEE ALSO
  WputCen (Page 78)

EXAMPLE
     FILE: TCXLDEMO.C.........Line: 833, 840, 842, 1248, 2115, 2345,
                              2354



























Page 86                                    TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------

NAME.........Wprtrj            <TcxlWin.H>

DESCRIPTION
     Right justifies  a string  in the  active window  at the  specified
     coordinates,  using  the  specified  attribute  (See  Appendix  A).
     Control characters  and escape sequences are NOT recognized; Cursor
     position is NOT updated.

PROTOTYPE....IntT CTYP Wprtrj(IntT wr, IntT wc, IntT at, ChrP ps);

ARGUMENTS
  wr  -  Window Row
  wc  -  Window Column
  at  -  Attribute (See Appendix A)
  ps  -  String to Justify

RETURNS
  ERR_NUL  -  No Error
  ERR_ARG  -  Argument Failure
      TcxlErr Returns:
      W_NOACTIVE    -    No Active Window
      W_INVCOORD    -    Invalid Coordinates
      W_STRLONG     -    String Could Not Fit In Window

SEE ALSO
  Wputrj (Page 78)

EXAMPLE
     FILE: TCXLDEMO.C.........Line: 834



























TesSeRact CXL V5.5 Documentation                                    Page 87
---------------------------------------------------------------------------

                              Display System


                              Window Builders

---------------------------------------------------------------------------

NAME.........VclrBox           <TcxlVid.H>    Macro

DESCRIPTION
     Clears a  section of  the screen  using  the  text  attribute  (See
     Appendix A) at the current cursor position.

PROTOTYPE....VOID VclrBox(VposT s, VposT e);

  #define VclrBox(s,e) (VfilBox((s),(e),
            ' ',(Vgetw_(VposR(s),VposC(s))>>8)))

ARGUMENTS
  s   -  Start Position
  e   -  End Position

RETURNS......None

SEE ALSO
  Wclear (Page 55)
  WclrWin (Page 57)





























Page 88                                    TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------

NAME.........VdrwBox           <TcxlVid.H>    Macro
.............VdrwBx_

DESCRIPTION
     "Draws" a text box on the screen.

PROTOTYPE....VOID VdrwBox(VposT s, VposT e, IntT b, IntT a);
.............VOID CTYP VdrwBx_(WrdT s, WrdT e, IntT b, IntT a);

  #define VdrwBox(s,e,b,a) (VdrwBx_(VposW(s),VposW(e),(b),(a)))

ARGUMENTS
  s   -  Start Position
  e   -  End Position
  b   -  Border Type (See Appendix C [Border Types])
  a   -  Attribute (See Appendix A)

RETURNS......None

SEE ALSO
  Wborder (Page 61)

EXAMPLE
     FILE: WIN\WBORDER.C......Line: 31
     FILE: WIN\WCHGATR.C......Line: 33
     FILE: WIN\WDRWBOX.C......Line: 42
     FILE: WIN\WOPEN.C........Line: 87
     FILE: WIN\WTITLE.C.......Line: 34

---------------------------------------------------------------------------

NAME.........VfilBox           <TcxlVid.H>    Macro
.............VfilBx_

DESCRIPTION
     Fills in  a region  of the  screen with  a specified  character and
     attribute (See Appendix A).

PROTOTYPE....VOID VfilBox(VposT s, VposT e, IntT c, IntT a);
.............VOID CTYP VfilBx_(WrdT s, WrdT e, IntT c, IntT a);

  #define VfilBox(s,e,c,a) (VfilBx_(VposW(s),VposW(e),(c),(a)))

ARGUMENTS
  s   -  Start Position
  e   -  End Position
  c   -  Character to fill
  a   -  Attribute (See Appendix A)

RETURNS......None

EXAMPLE
     FILE: WIN\WCLRWIN.C......Line: 31
     FILE: WIN\WFILBOX.C......Line: 41


TesSeRact CXL V5.5 Documentation                                    Page 89
---------------------------------------------------------------------------

NAME.........Vsave             <TcxlVid.H>

DESCRIPTION
     Saves the current screen to a buffer.

PROTOTYPE....VcelP CTYP Vsave(NOARG);

ARGUMENTS....None

RETURNS
  Address of  the buffer save area, or NULL if a memory allocation error
  occurred.

SEE ALSO
  Wsave (Page 42)
  Wrestore (Page 41)
  Vrestore (Page 90)

EXAMPLE
     FILE: TCXLDEMO.C.........Line: 1433

---------------------------------------------------------------------------

NAME.........Vrestore          <TcxlVid.H>

DESCRIPTION
     Restores a previously-saved buffer to the video.

PROTOTYPE....VOID CTYP Vrestore(VcelP b);

ARGUMENTS
  b   -  Previously Saved Buffer

RETURNS......None

SEE ALSO
  Wsave (Page 42)
  Wrestore (Page 41)
  Vsave (Page 90)

EXAMPLE
     FILE: TCXLDEMO.C.........Line: 1457














Page 90                                    TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------

                               Video Control

---------------------------------------------------------------------------

NAME.........VidInit           <TcxlVid.H>

DESCRIPTION
     This function  intializes the  TCXL Display System and Video Access
     Subsystem.   It is  called automatically by TcxlInit (Page 142) and
     is documented here for information purposes only.

PROTOTYPE....VOID CTYP VidInit(NOARG);

ARGUMENTS....None

RETURNS......None

SEE ALSO
  VidTerm (Page 92)

EXAMPLE
     FILE: HDW\TCXLINIT.C.....Line: 74

---------------------------------------------------------------------------

NAME.........VidMode           <TcxlVid.H>

DESCRIPTION
     This function  either gets  the current  video mode  (if the passed
     parameter is  0xFF), or  it sets  the display  mode to  the  passed
     parameter.    In  either  case,  the  _VidCtl  (See  User's  Guide)
     structure is updated.

PROTOTYPE....IntT PAS VidMode(IntT m);

ARGUMENTS
  m   -  New Video Mode, or 0xFF to return current mode.

RETURNS
  Current or New Video Mode

SEE ALSO
  _VuvSet (Page 173)

EXAMPLE
     FILE: DSP\VIDINIT.C......Line: 52
     FILE: DSP\VSETLIN.C......Line: 58









TesSeRact CXL V5.5 Documentation                                    Page 91
---------------------------------------------------------------------------

NAME.........VidParm           <TcxlVid.H>

DESCRIPTION
     Sets video display parameters.

PROTOTYPE....IntT CTYP VidParm(IntT p);

ARGUMENTS
  p   -  Video Display Parameter (VP_????).

RETURNS
  Nonzero if invalid parameter.

SEE ALSO
  VidInit (Page 91)
  VidType (Page 93)

EXAMPLE
     FILE: TCXLDEMO.C.........Line: 776, 780, 784

---------------------------------------------------------------------------

NAME.........VidTerm           <TcxlVid.H>

DESCRIPTION
     Terminates the Display System and Video Access Subsystems.  In TCXL
     5.5, this  is a  null function.   This  function  is  automatically
     called by the C compiler's atexit() chain.

PROTOTYPE....VOID CTYP VidTerm(NOARG);

ARGUMENTS....None

RETURNS......None

SEE ALSO
  VidInit (Page 91)

EXAMPLE
     FILE: HDW\TCXLINIT.C.....Line: 93
















Page 92                                    TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------

NAME.........VidType           <TcxlVid.H>

DESCRIPTION
     Returns the display adapter type.

PROTOTYPE....IntT CTYP VidType(NOARG);

ARGUMENTS....None

RETURNS
  The current display adapter type.

SEE ALSO
  VidInit (Page 91)
  _VuvGet (Page 172)

EXAMPLE
     FILE: DSP\VIDINIT.C......Line: 51

---------------------------------------------------------------------------

NAME.........VsetLin           <TcxlVid.H>

DESCRIPTION
     Sets the  number of lines on the display.  Do NOT use this function
     if UltraVision has been detected.  Use _VuvSet (Page 173) instead.

PROTOTYPE....IntT CTYP VsetLin(IntT n);

ARGUMENTS
  n   -  Number of lines (only 25, 43 and 50 are valid).

RETURNS
  Nonzero if invalid line value.

SEE ALSO
  _VuvGet (Page 172)
  _VuvSet (Page 173)
  VidMode (Page 91)
  VidInit (Page 91)
  VidType (Page 93)

EXAMPLE
     FILE: TCXLDEMO.C.........Line: 979, 2071, 2074, 2077












TesSeRact CXL V5.5 Documentation                                    Page 93
---------------------------------------------------------------------------

NAME.........Vclear            <TcxlVid.H>

DESCRIPTION
     Clears the  screen using the passed text attribute (See Appendix A)
     and homes the cursor.

PROTOTYPE....VOID CTYP Vclear(IntT a);

ARGUMENTS
  a   -  Attribute (See Appendix A)

RETURNS......None

SEE ALSO
  Wclear (Page 55)

EXAMPLE
     FILE: DSP\VCLRSCR.C......Line: 24
     FILE: TCXLDEMO.C.........Line: 1440

---------------------------------------------------------------------------

NAME.........VclrEol           <TcxlVid.H>

DESCRIPTION
     Clears to  the end  of the video line using the text attribute (See
     Appendix A) under the cursor.

PROTOTYPE....VOID CTYP VclrEol(NOARG);

ARGUMENTS....None

RETURNS......None

SEE ALSO
  WclrEol (Page 56)

---------------------------------------------------------------------------

NAME.........VclrScr           <TcxlVid.H>

DESCRIPTION
     Clears the  screen using  the text attribute (See Appendix A) under
     the cursor, and homes the cursor.

PROTOTYPE....VOID CTYP VclrScr(NOARG);

ARGUMENTS....None

RETURNS......None

SEE ALSO
  WclrWin (Page 57)



Page 94                                    TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------

                               Video Output

---------------------------------------------------------------------------

NAME.........Vprintc           <TcxlVid.H>

DESCRIPTION
     Displays a character to the screen at a specified location, using a
     specified attribute  (See Appendix  A).  Does not recognize control
     characters and does not affect cursor position.

PROTOTYPE....VOID CTYP Vprintc(IntT r, IntT c, IntT a, IntT x);

ARGUMENTS
  r   -  Row
  c   -  Column
  a   -  Attribute (See Appendix A)
  x   -  Character to Display

RETURNS......None

SEE ALSO
  Wputc (Page 74)
  Wprtc (Page 81)
  Vattrib (Page 107)
  Vprints (Page 96)

EXAMPLE
     FILE: SEL\_SELECT.C......Line: 102, 103
     FILE: WIN\WBPRINTC.C.....Line: 50
     FILE: WIN\WCLREOL.C......Line: 30
     FILE: WIN\WDRWHOR.C......Line: 121, 125, 130
     FILE: WIN\WDRWVER.C......Line: 123, 127, 132
     FILE: WIN\WPRTC.C........Line: 33
     FILE: WIN\WPRTS.C........Line: 41
     FILE: WIN\WSHADOFF.C.....Line: 38, 40, 47
     FILE: WIN\WTITLE.C.......Line: 61
     FILE: WIN\WWPRINTS.C.....Line: 89, 143


















TesSeRact CXL V5.5 Documentation                                    Page 95
---------------------------------------------------------------------------

NAME.........Vprints           <TcxlVid.H>

DESCRIPTION
     Displays a  string to  the screen  at a specified location, using a
     specified attribute  (See Appendix  A).  Does not recognize control
     characters and does not affect cursor position.

PROTOTYPE....VOID CTYP Vprints(IntT r, IntT c, IntT a, ChrP s);

ARGUMENTS
  r   -  Row
  c   -  Column
  a   -  Attribute (See Appendix A)
  s   -  String to Display

RETURNS......None

SEE ALSO
  Wputs (Page 75)
  Wprts (Page 82)
  Vattrib (Page 107)
  Vprintc (Page 95)

EXAMPLE
     FILE: WIN\WMESSAGE.C.....Line: 33
     FILE: WIN\WPRTCEN.C......Line: 39
     FILE: WIN\WPRTRJ.C.......Line: 38
     FILE: WIN\WPRTS.C........Line: 37, 60
     FILE: TCXLDEMO.C.........Line: 2606

---------------------------------------------------------------------------

NAME.........VputSpa           <TcxlVid.H>

DESCRIPTION
     Displays a  specified number of spaces to the screen using the text
     attribute (See Appendix A) of the character under the cursor.

PROTOTYPE....VOID PAS VputSpa(IntT n);

ARGUMENTS
  n   -  Number of spaces to display

RETURNS......None

EXAMPLE
     FILE: DSP\VCLREOL.C......Line: 25









Page 96                                    TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------

NAME.........Vputc

DESCRIPTION
     Displays a  character/attribute (See  Appendix A) on the display at
     the specified position, using the video BIOS routines.

PROTOTYPE....VOID CTYP Vputc(IntT r, IntT c, IntT x, IntT a);

ARGUMENTS
  r   -  Row
  c   -  Column
  x   -  Character to Display
  a   -  Attribute (See Appendix A)

RETURNS......None

EXAMPLE
     FILE: WIN\WPUTC.C........Line: 60
     FILE: WIN\WPUTS.C........Line: 153

---------------------------------------------------------------------------

NAME.........Vputw             <TcxlVid.H>    Macro
.............Vputw_

DESCRIPTION
     Put a VcelT to the screen

PROTOTYPE....VOID Vputw(IntT r, IntT c, VcelT x);
.............VOID CTYP Vputw_(IntT r, IntT c, WrdT x);

  #define Vputw(r,c,x) (Vputw_((r),(c), VcelW(x)))

ARGUMENTS
  r   -  Row
  c   -  Column
  x   -  VcelT to display

RETURNS......None

EXAMPLE
     FILE: WIN\WACTIV.C.......Line: 173
     FILE: WIN\WCHGATR.C......Line: 40
     FILE: WIN\WDRAG.C........Line: 104
     FILE: WIN\WDRAG.C........Line: 114
     FILE: WIN\WSHADOW.C......Line: 49, 51, 60
     FILE: WIN\WSIZE.C........Line: 56, 60, 65









TesSeRact CXL V5.5 Documentation                                    Page 97
---------------------------------------------------------------------------

NAME.........Vscroll           <TcxlVid.H>    Macro
.............Vscrol_

DESCRIPTION
     Calls the video BIOS to scroll a region of teh display up or down.

PROTOTYPE....VOID Vscroll(IntT d, VposT s, VposT e, IntT n, IntT a);
.............VOID PAS Vscrol_(IntT d, WrdT s, WrdT e, IntT n, IntT a);

  #define Vscroll(d,s,e,n,a) (Vscrol_((d),VposW(s),VposW(e),(n),(a)))

ARGUMENTS
  d   -  Direction (0=down, 1=up)
  s   -  Upper Left Corner
  e   -  Lower Right Corner
  n   -  Number of Lines to Scroll
  a   -  Attribute (See Appendix A) to clear area to

RETURNS......None

EXAMPLE
     FILE: WIN\WSCRBOX.C......Line: 47
     FILE: WIN\WSCRWIN.C......Line: 41
     FILE: DSP\VCLEAR.C.......Line: 27

---------------------------------------------------------------------------

NAME.........Vgetw             <TcxlVid.H>    Macro
.............Vgetw_

DESCRIPTION
     Get char/attr from screen as a VcelT object

PROTOTYPE....VOID Vgetw(IntT r, IntT c, VcelT x);
.............WrdT CTYP Vgetw_(IntT r, IntT c);

  #define Vgetw(r,c,x) (VcelW(x)=Vgetw_((r),(c)))

ARGUMENTS
  r   -  Row
  c   -  Column

RETURNS
  x   -  VcelT from screen.

EXAMPLE
     FILE: WIN\WACTIV.C.......Line: 167
     FILE: WIN\WCHGATR.C......Line: 38
     FILE: WIN\WDRWHOR.C......Line: 101, 105
     FILE: WIN\WDRWVER.C......Line: 103, 107
     FILE: WIN\WSHADOW.C......Line: 44, 45, 57
     FILE: WIN\WSIZE.C........Line: 55




Page 98                                    TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------

                              Cursor Control

---------------------------------------------------------------------------

NAME.........VcurGet           <TcxlVid.H>    Macro
.............VcurGt_

DESCRIPTION
     Reads the current cursor location.

PROTOTYPE....VOID VcurGet(VposT v);
.............WrdT PAS VcurGt_(NOARG);

  #define VcurGet(v) (VposW(v)=VcurGt_())

ARGUMENTS
  v   -  Position

RETURNS......None

SEE ALSO
  VposGet (Page 103)
  WcurGet (Page 69)
  WposGet (Page 72)

EXAMPLE
     FILE: WIN\WCURGET.C......Line: 29
     FILE: WIN\WPERROR.C......Line: 29
     FILE: WIN\WWPRINTS.C.....Line: 64
     FILE: DSP\VATRREV.C......Line: 26
     FILE: DSP\VATRSET.C......Line: 25
     FILE: DSP\VCLREOL.C......Line: 24
     FILE: DSP\VPRINTC.C......Line: 25
     FILE: DSP\VPRINTS.C......Line: 25
     FILE: INP\KEYGETC.C......Line: 140
     FILE: TCXLDEMO.C.........Line: 743




















TesSeRact CXL V5.5 Documentation                                    Page 99
---------------------------------------------------------------------------

NAME.........VcurHid           <TcxlVid.H>

DESCRIPTION
     Hide or show the video cursor, and return the current cursor state.

PROTOTYPE....IntT CTYP VcurHid(IntT s);

ARGUMENTS
  s   -  Hide if zero, Show if positive, just return state if negative.

RETURNS
  FALSE if previously hidden, TRUE if previously shown.

EXAMPLE
     FILE: HLP\HLPSHOW.C......Line: 93, 140
     FILE: SEL\SELATTR.C......Line: 136
     FILE: DSP\VCURSET.C......Line: 26
     FILE: TCXLDEMO.C.........Line: 898, 981, 1058, 1089, 1091, 1095,
                              1098, 1157, 1180, 1196, 1228, 1382, 1386,
                              1566, 1626, 1644, 1652, 1711, 2047, 2085,
                              2197, 2219, 2230, 2320, 2346, 2424, 2452



































Page 100                                   TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------

NAME.........VcurPut           <TcxlVid.H>    Macro
.............VcurPt_

DESCRIPTION
     Set a new cursor location

PROTOTYPE....VOID VcurPut(VposT v);
.............VOID PAS VcurPt_(WrdT v);

  #define VcurPut(v) (VcurPt_(VposW(v)))

ARGUMENTS
  v   -  New Position

RETURNS......None

SEE ALSO
  Vgotoxy (Page 103)
  WcurPut (Page 70)
  Wgotoxy (Page 71)

EXAMPLE
     FILE: WIN\WACTIV.C.......Line: 120
     FILE: WIN\WCLOSE.C.......Line: 38
     FILE: WIN\WCURPUT.C......Line: 38
     FILE: WIN\WDRAG.C........Line: 126
     FILE: WIN\WGOTOXY.C......Line: 35
     FILE: WIN\WHIDE.C........Line: 52
     FILE: WIN\WMOVE.C........Line: 59
     FILE: WIN\WPERROR.C......Line: 52
     FILE: WIN\WPUTC.C........Line: 71
     FILE: WIN\WPUTS.C........Line: 74, 158
     FILE: WIN\WSHADOW.C......Line: 64
     FILE: WIN\WUNHIDE.C......Line: 62
     FILE: WIN\WWPRINTS.C.....Line: 94
     FILE: DSP\VATRREV.C......Line: 32
     FILE: DSP\VATRSET.C......Line: 28
     FILE: DSP\VCLEAR.C.......Line: 28
     FILE: DSP\VPRINTC.C......Line: 29
     FILE: DSP\VPRINTS.C......Line: 29
     FILE: INP\KEYGETC.C......Line: 145
     FILE: TCXLDEMO.C.........Line: 2196














TesSeRact CXL V5.5 Documentation                                   Page 101
---------------------------------------------------------------------------

NAME.........VcurSet           <TcxlVid.H>

DESCRIPTION
     Set the cursor size

PROTOTYPE....VOID CTYP VcurSet(IntT s);

ARGUMENTS
  s   -  Underline cursor if zero, block cursor otherwise.

RETURNS......None

EXAMPLE
     FILE: ENT\ENTSHOW.C......Line: 97, 192, 196, 305

---------------------------------------------------------------------------

NAME.........VcurSiz           <TcxlVid.H>    Macro
.............VcurSz_

DESCRIPTION
     Sets and gets the current cursor size/shape.

PROTOTYPE....VOID VcurSiz(VcseT c);
.............WrdT PAS VcurSz_(WrdT c);

  #define VcurSiz(c) (VcseW(c)=VcurSz_(VcseW(c)))

ARGUMENTS
  c   -  If 0:0, return cursor start/stop lines; otherwise, set
      cursor shape.

RETURNS
  Current Cursor Size

EXAMPLE
     FILE: SEL\SELATTR.C......Line: 135, 148
     FILE: DSP\VCURHID.C......Line: 26, 35, 40
     FILE: DSP\VCURSET.C......Line: 49
     FILE: DSP\VSETLIN.C......Line: 53
     FILE: INP\KEYGETC.C......Line: 139, 144















Page 102                                   TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------

NAME.........Vgotoxy           <TcxlVid.H>

DESCRIPTION
     Sets the cursor position to the passed row/col coordinate.

PROTOTYPE....VOID PAS Vgotoxy(IntT r, IntT c);

ARGUMENTS
  r   -  Row
  c   -  Column

RETURNS......None

SEE ALSO
  VcurPut (Page 101)
  WcurPut (Page 70)
  Wgotoxy (Page 71)

---------------------------------------------------------------------------

NAME.........VposGet           <TcxlVid.H>    Macro

DESCRIPTION
     Reads the current cursor location.

PROTOTYPE....VOID PAS VposGet(IntT r, IntT c);

  #define VposGet(r,c) ((c)=MsInt(VcurGt_()); (r)=((c)>>8); (c)&=0xFF)

ARGUMENTS
  r   -  Row
  c   -  Column

RETURNS
  The current cursor location

SEE ALSO
  VcurGet (Page 99)
  WcurGet (Page 69)
  WposGet (Page 72)
















TesSeRact CXL V5.5 Documentation                                   Page 103
---------------------------------------------------------------------------

                             Attribute Control

---------------------------------------------------------------------------

NAME.........VatrInv           <TcxlVid.H>

DESCRIPTION
     Returns the inverse of the given text attribute (See Appendix A).

PROTOTYPE....IntT PAS VatrInv(IntT a);

ARGUMENTS
  a   -  Attribute (See Appendix A) to Invert

RETURNS
  Inverted Attribute

EXAMPLE
     FILE: MNU\MNUEND.C.......Line: 50
     FILE: ENT\ENTDEF.C.......Line: 35
     FILE: SEL\_SELECT.C......Line: 88
     FILE: WIN\WPUTS.C........Line: 117


































Page 104                                   TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------

NAME.........VatrMap           <TcxlVid.H>

DESCRIPTION
     Translates a  color  text  attribute  (See  Appendix  A)  into  its
     approximate monochrome  equivalent.   All of  CXL's video functions
     automatically call  this, so  you would  only need to call this for
     your own functions.

PROTOTYPE....IntT CTYP VatrMap(IntT a);

ARGUMENTS
  a   -  Attribute (See Appendix A) to translate

RETURNS
  Monochrome Equavalent

EXAMPLE
     FILE: MNU\ITMTXT.C.......Line: 28
     FILE: MNU\MNUBEG.C.......Line: 56, 57
     FILE: MNU\MNUEND.C.......Line: 47, 48, 49
     FILE: ENT\ENTDEF.C.......Line: 34
     FILE: HLP\HLPDEF.C.......Line: 59, 60, 61, 62
     FILE: WIN\WCHGATR.C......Line: 30, 31
     FILE: WIN\WOPEN.C........Line: 52, 53
     FILE: WIN\WPRTC.C........Line: 32
     FILE: WIN\WSETTXT.C......Line: 22
     FILE: WIN\WSHADOW.C......Line: 38
     FILE: WIN\WTITLE.C.......Line: 31
     FILE: WIN\WWPRINTS.C.....Line: 59
     FILE: DSP\VATRSET.C......Line: 24
     FILE: DSP\VCLEAR.C.......Line: 27
     FILE: DSP\VDRWBOX.C......Line: 28
     FILE: DSP\VFILBOX.C......Line: 27
     FILE: DSP\VPRINTC.C......Line: 24
     FILE: DSP\VPRINTS.C......Line: 24
     FILE: HDW\FMTFLIP.C......Line: 28, 32




















TesSeRact CXL V5.5 Documentation                                   Page 105
---------------------------------------------------------------------------

NAME.........VatrRev           <TcxlVid.H>

DESCRIPTION
     Reverses the  attribute (See Appendix A) of the character under the
     current cursor  position, and continues for the specified number of
     characters. Uses video BIOS calls.

PROTOTYPE....VOID CTYP VatrRev(IntT n);

ARGUMENTS
  n   -  Count of Characters to Reverse

RETURNS......None

---------------------------------------------------------------------------

NAME.........VatrSet           <TcxlVid.H>

DESCRIPTION
     Sets the  attribute (See  Appendix A)  of the  character under  the
     current cursor  location, and continues for the specified number of
     characters. Uses video BIOS calls.

PROTOTYPE....VOID CTYP VatrSet(IntT a, IntT n);

ARGUMENTS
  a   -  Attribute (See Appendix A) to set
  n   -  Count of Characters to Set

RETURNS......None

---------------------------------------------------------------------------

NAME.........VatrTxt           <TcxlVid.H>

DESCRIPTION
     Converts  an   attribute  (See   Appendix  A)  to  it's  text-based
     equivalent.

PROTOTYPE....ChrP CTYP VatrTxt(IntT a);

ARGUMENTS
  a   -  Attribute (See Appendix A)

RETURNS
  Static string with color text.

EXAMPLE
     FILE: TCXLDEMO.C.........Line: 1096







Page 106                                   TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------

NAME.........Vattrib           <TcxlVid.H>    Macro

DESCRIPTION
     Creates a  text attribute  (See Appendix  A).   It is  usually much
     easier to  create a  text attribute using the attribute identifiers
     listed in Appendix A, but this provides an alternate method.

PROTOTYPE....IntT Vattrib(IntT f, IntT b, IntT i, IntT h);

  #define Vattrib(f,b,i,h) ((b<<4)|(f)|(i<<3)|(h<<7))

ARGUMENTS
  f   -  Foreground Color
  b   -  Background Color
  i   -  Intensity
  h   -  Blink Bit

RETURNS
  The new attribute code

---------------------------------------------------------------------------

                            Video-Disk Routines

---------------------------------------------------------------------------

NAME.........VsavBox           <TcxlVid.H>    Macro
.............VsavBx_

DESCRIPTION
     Copies an area of the screen to a disk file.

PROTOTYPE....IntT VsavBox(VposT s, VposT e, ChrP f);
.............IntT CTYP VsavBx_(WrdT s, WrdT e, ChrP f);

  #define VsavBox(s,e,f) (VsavBx_(VposW(s),VposW(e),(f)))

ARGUMENTS
  s   -  Start Position
  e   -  End Position
  f   -  Filename to use

RETURNS
  Nonzero on error












TesSeRact CXL V5.5 Documentation                                   Page 107
---------------------------------------------------------------------------

NAME.........VlodBox           <TcxlVid.H>

DESCRIPTION
     Copies a previously saved window disk file to the screen.

PROTOTYPE....IntT CTYP VlodBox(ChrP f);

ARGUMENTS
  f   -  Filename

RETURNS
  Nonzero on error

---------------------------------------------------------------------------

NAME.........VsavScr           <TcxlVid.H>

DESCRIPTION
     Copies the current screen to a disk file.

PROTOTYPE....IntT CTYP VsavScr(ChrP f)

ARGUMENTS
  f   -  Filename

RETURNS
  Nonzero on error

---------------------------------------------------------------------------

NAME.........VlodScr           <TcxlVid.H>

DESCRIPTION
     Restores a previewsly saved screen from disk.

PROTOTYPE....IntT CTYP VlodScr(ChrP f);

ARGUMENTS
  f   -  Filename

RETURNS
  Nonzero on error














Page 108                                   TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------


                               Input System


                            Active Window Input

---------------------------------------------------------------------------

NAME.........KwGetCf           <TcxlKey.H>

DESCRIPTION
     Gets  a  character  from  the  keyboard.    Allows  input  only  of
     characters listed  in the  string of  valid  characters.    Entered
     characters will  be echoed  to the  active window using the current
     text attribute  (See Appendix  A).   Cursor  position  is  updated.
     Escape checking  is provided by default, but can be turned off with
     the WsetEsc() function.

PROTOTYPE....IntT CTYP KwGetCf(ChrP v, IntT d);

ARGUMENTS
  v   -  Valid Character String
  d   -  Default Selection

RETURNS
  The ASCII  value of  the key  pressed, or a zero if an error occurred.
  On error, TcxlErr Returns:
      W_NOACTIVE    -    No Active Window
      W_ESCPRESS    -    The [Esc] Key Was Pressed

SEE ALSO
  KvGetCf (Page 115)

EXAMPLE
     FILE: INP\KWGETYN.C......Line: 27





















TesSeRact CXL V5.5 Documentation                                   Page 109
---------------------------------------------------------------------------

NAME.........KwGetCh           <TcxlKey.H>

DESCRIPTION
     Gets a  character from  the keyboard.   Entered  character will  be
     echoed to  the  active  window  using  the  window's  current  text
     attribute (See Appendix A).  Cursor position is updated.

PROTOTYPE....IntT CTYP KwGetCh(NOARG);

ARGUMENTS....None

RETURNS
  The ASCII  value of  the key  pressed, or a zero if an error occurred.
  On error, TcxlErr Returns:
      W_NOACTIVE    -    No Active Window

SEE ALSO
  KvGetCh (Page 115)

EXAMPLE
     FILE: INP\KWGETST.C......Line: 28



































Page 110                                   TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------

NAME.........KwGetFmt          <TcxlKey.H>

DESCRIPTION
     Inputs a  formatted string  from the  keyboard.  Characters will be
     echoed to  the active  window in  the current  text attribute  (See
     Appendix A).   Cursor  position is  updated.   Escape  checking  is
     provided by  default, but  can be  turned off  with  the  WsetEsc()
     function.
     This function  provides an  extremely  powerful  method  of  accept
     single-line input from the user.  You can limit input characters to
     certain characters  of a  type, such  as numbers, insert strings in
     between typed in characters, create custom prompts, disable [Enter]
     until the field is filled, and more.

PROTOTYPE....IntT CTYP KwGetFmt(ChrP s, ChrP f);

ARGUMENTS
  s   -  Buffer To Receive Input String
  f   -  Format String (See Appendix E)

RETURNS
  ERR_NUL  -  No Error
  ERR_ARG  -  Argument Failure
      TcxlErr Returns:
      W_NOACTIVE    -    No Active Window
      W_ESCPRESS    -    The [Esc] Key Was Pressed
      W_INVFORMT    -    Invalid Format String

SEE ALSO
  KvGetFmt (Page 116)

EXAMPLE
     FILE: TCXLDEMO.C.........Line: 1166, 1171, 1176























TesSeRact CXL V5.5 Documentation                                   Page 111
---------------------------------------------------------------------------

NAME.........KwGetSn           <TcxlKey.H>

DESCRIPTION
     Gets a  string from the keyboard, limiting the number of characters
     input to  the specified  length.   Characters will be echoed to the
     active window  in the  current text  attribute  (See  Appendix  A).
     Cursor position  is  updated.    Escape  checking  is  provided  by
     default, but can be turned off with the WsetEsc() function.

PROTOTYPE....IntT CTYP KwGetSn(ChrP s, IntT m);

ARGUMENTS
  s   -  Buffer To Receive Input String
  m   -  Maximum Length of Input String

RETURNS
  ERR_NUL  -  No Error
  ERR_ARG  -  Argument Failure
      TcxlErr Returns:
      W_NOACTIVE    -    No Active Window
      W_ESCPRESS    -    The [Esc] Key Was Pressed

SEE ALSO
  KvGetSn (Page 116)

---------------------------------------------------------------------------

NAME.........KwGetSt           <TcxlKey.H>

DESCRIPTION
     Gets a  string from the keyboard.  Characters will be echoed to the
     active window  in the  current text  attribute  (See  Appendix  A).
     Cursor position  is  updated.    Escape  checking  is  provided  by
     default, but can be turned off with the WsetEsc() function.

PROTOTYPE....IntT CTYP KwGetSt(ChrP ps);

ARGUMENTS
  ps  -  Buffer To Receive Input String

RETURNS
  ERR_NUL  -  No Error
  ERR_ARG  -  Argument Failure
      TcxlErr Returns:
      W_NOACTIVE    -    No Active Window
      W_ESCPRESS    -    The [Esc] Key Was Pressed

SEE ALSO
  KvGetSt (Page 117)

EXAMPLE
     FILE: INP\KWSCANF.C......Line: 38




Page 112                                   TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------

NAME.........KwGetYn           <TcxlKey.H>

DESCRIPTION
     Gets a  [Y]es or  [N]o response  from the keyboard.  After the user
     presses [Enter], "Y", "N", "y", or "n", the text "Yes" or "No" will
     be displayed  in the  active window  in the  current text attribute
     (See Appendix  A).  Cursor position is updated.  Escape checking is
     provided by  default, but  can be  turned off  with  the  WsetEsc()
     function.

PROTOTYPE....IntT CTYP KwGetYn(IntT cd);

ARGUMENTS
  cd  -  The Default Value (0=No, 1=Yes)

RETURNS
  'Y' if Yes was selected, an 'N' if No was selected, or a '\0' if the
  user pressed [Esc] and Escape checking was on.

SEE ALSO
  KvGetYn (Page 117)

EXAMPLE
     FILE: TCXLDEMO.C.........Line: 1038, 1048, 1383, 1486
































TesSeRact CXL V5.5 Documentation                                   Page 113
---------------------------------------------------------------------------

NAME.........KwScanf           <TcxlKey.H>

DESCRIPTION

     !!!!NOTE!!!!   This function  is only  available with  the Turbo  C
     versions of  TCXL.   Neither Microsoft  C nor Zortech C/C++ provide
     the  necessary   vsscanf()  function   needed  to   implement  this
     procedure.

     Inputs a  formatted string  from the  keyboard.  Characters will be
     echoed to  the active  window in  the current  text attribute  (See
     Appendix A).   Cursor  position is  updated.   Escape  checking  is
     provided by  default, but  can be  turned off  with  the  WsetEsc()
     function.
     This function  works identical  to the  C library  routine scanf(),
     except that input is done to the default window.

PROTOTYPE....IntT CDC KwScanf(ChrP fs, ...);

ARGUMENTS
  fs  -  Format String (see your compiler's documentation)
  ... -  Additional Arguments

RETURNS
  ERR_NUL  -  No Error
  ERR_ARG  -  Argument Failure
      TcxlErr Returns:
      W_NOACTIVE    -    No Active Window
      W_ESCPRESS    -    The [Esc] Key Was Pressed

SEE ALSO
  KvScanf (Page 118)
























Page 114                                   TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------

                            Default Video Input

---------------------------------------------------------------------------

NAME.........KvGetCf           <TcxlKey.H>

DESCRIPTION
     Gets  a  character  from  the  keyboard.    Allows  input  only  of
     characters listed  in the  string of  valid  characters.    Entered
     characters will  be echoed  to the  Standard Output device.  Escape
     checking is always on.

PROTOTYPE....IntT CTYP KvGetCf(ChrP v, IntT d);

ARGUMENTS
  v   -  Valid Character String
  d   -  Default Selection

RETURNS
  The ASCII value of the key pressed, or a zero if [Esc] is pressed.

SEE ALSO
  KwGetCf (Page 109)

EXAMPLE
     FILE: INP\KVGETYN.C......Line: 23

---------------------------------------------------------------------------

NAME.........KvGetCh           <TcxlKey.H>

DESCRIPTION
     Gets a  character from  the keyboard.   Entered  characters will be
     echoed to Standard Output Device.

PROTOTYPE....IntT CTYP KvGetCh(NOARG);

ARGUMENTS....None

RETURNS
  The ASCII value of the key pressed.

SEE ALSO
  KwGetCh (Page 110)

EXAMPLE
     FILE: INP\KVGETST.C......Line: 26









TesSeRact CXL V5.5 Documentation                                   Page 115
---------------------------------------------------------------------------

NAME.........KvGetFmt          <TcxlKey.H>

DESCRIPTION
     Inputs a  formatted string  from the  keyboard.  Characters will be
     echoed to the Standard Output Device.
     This function  provides an  extremely  powerful  method  of  accept
     single-line input from the user.  You can limit input characters to
     certain characters  of a  type, such  as numbers, insert strings in
     between typed in characters, create custom prompts, disable [Enter]
     until the field is filled, and more.

PROTOTYPE....IntT CTYP KvGetFmt(ChrP s, ChrP f);

ARGUMENTS
  s   -  Buffer To Receive Input String
  f   -  Format String (See Appendix E)

RETURNS
  Zero on Success, -1 on invalid format, or 1 if [Esc] was pressed.

SEE ALSO
  KwGetFmt (Page 111)

---------------------------------------------------------------------------

NAME.........KvGetSn           <TcxlKey.H>

DESCRIPTION
     Gets a  string from the keyboard, limiting the number of characters
     input to  the specified  length.   Characters will be echoed to the
     Standard Output Device.

PROTOTYPE....IntT CTYP KvGetSn(ChrP s, IntT m);

ARGUMENTS
  s   -  Buffer To Receive Input String
  m   -  Maximum Length of Input String

RETURNS
  Zero for success, 1 if ESC is pressed.

SEE ALSO
  KwGetSn (Page 112)













Page 116                                   TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------

NAME.........KvGetSt           <TcxlKey.H>

DESCRIPTION
     Gets a  string from the keyboard.  Characters will be echoed to the
     Standard Output Device.

PROTOTYPE....VOID CTYP KvGetSt(ChrP ps);

ARGUMENTS
  ps  -  Buffer To Receive Input String

RETURNS......None

SEE ALSO
  KwGetSt (Page 112)

EXAMPLE
     FILE: INP\KVSCANF.C......Line: 34

---------------------------------------------------------------------------

NAME.........KvGetYn           <TcxlKey.H>

DESCRIPTION
     Gets a  [Y]es or  [N]o response  from the keyboard.  After the user
     presses [Enter], "Y", "N", "y", or "n", the text "Yes" or "No" will
     be displayed to the Standard Output Device.


PROTOTYPE....IntT CTYP KvGetYn(IntT cd);

ARGUMENTS
  cd  -  The Default Value (0=No, 1=Yes)

RETURNS
  'Y' if Yes was selected, an 'N' if No was selected.

SEE ALSO
  KwGetYn (Page 113)

















TesSeRact CXL V5.5 Documentation                                   Page 117
---------------------------------------------------------------------------

NAME.........KvScanf           <TcxlKey.H>

DESCRIPTION

     !!!!NOTE!!!!   This function  is only  available with  the Turbo  C
     versions of  TCXL.   Neither Microsoft  C nor Zortech C/C++ provide
     the  necessary   vsscanf()  function   needed  to   implement  this
     procedure.

     Inputs a  formatted string  from the  keyboard.  Characters will be
     echoed to Standard Output Device.
     This function works identical to the C library routine scanf().

PROTOTYPE....VOID CDC KvScanf(ChrP fs, ...);

ARGUMENTS
  fs  -  Format String (see your compiler's documentation)
  ... -  Additional Arguments

RETURNS......None

SEE ALSO
  KwScanf (Page 114)

---------------------------------------------------------------------------

                            Asynchronous Input

---------------------------------------------------------------------------

NAME.........KbndChg           <TcxlKey.H>

DESCRIPTION
     The KbndSet()  (Page 120)  function builds a stacked list in memory
     that contains  each defined  keycode binding.  This function allows
     you to  maintain multiple  key binding  lists and  change back  and
     forth between  them.  KbndChg() provides painless switching between
     various Key Binding lists.

PROTOTYPE....KbndP CTYP KbndChg(KbndP l);

ARGUMENTS
  l   -  New Key Binding

RETURNS
  Old Key Binding

EXAMPLE
     FILE: HLP\HLPSHOW.C......Line: 81, 144
     FILE: TCXLDEMO.C.........Line: 1375, 1387






Page 118                                   TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------

NAME.........KbndClr           <TcxlKey.H>

DESCRIPTION
     Removes bindings for the passed keycode.

PROTOTYPE....IntT CTYP KbndClr(KeyT k);

ARGUMENTS
  k   -  Keycode to unbind.

RETURNS
  0 on success, 1 if not found.

EXAMPLE
     FILE: HLP\HLPSHOW.C......Line: 192, 194, 195, 313, 333, 342
     FILE: INP\KBNDSET.C......Line: 26

---------------------------------------------------------------------------

NAME.........KbndFre           <TcxlKey.H>

DESCRIPTION
     Free all key bindings from memory.

PROTOTYPE....VOID CTYP KbndFre(NOARG);

ARGUMENTS....None

RETURNS......None

EXAMPLE
     FILE: HLP\HLPSHOW.C......Line: 143

---------------------------------------------------------------------------

NAME.........KbndIdle          <TcxlKey.H>    Macro

DESCRIPTION
     This binds  the passed  function to the keyboard idle loop.  During
     KeyGetc() processing,  if no  input is  available, this  routine is
     called.   !!! WARNING  !!! Do  not attempt to update the display or
     windows every  time this  routine is called.  Doing so will cause a
     mouse cursor to "flicker".  Only update the display when needed.

PROTOTYPE....VOID KbndIdle(VfvCP a);

  #define KbndIdle(a) (KctlIdl = a)

ARGUMENTS
  a   -  Idle Function

RETURNS......None

EXAMPLE
     FILE: TCXLDEMO.C.........Line: 889, 983

TesSeRact CXL V5.5 Documentation                                   Page 119
---------------------------------------------------------------------------

NAME.........KbndSet           <TcxlKey.H>

DESCRIPTION
     Binds a  keypress to  a function  call.   Works by intercepting any
     calls to  TCXL input functions.  During Input processing, the input
     function will  determine if  a key-binding exists; if so, the bound
     routine will  be executed, and the appropriate key will be returned
     to the  calling function.   If  no binding exists, the Input System
     will continue processing as normal.

PROTOTYPE....IntT CTYP KbndSet(KeyT k, VfvCP f, KeyT r);

ARGUMENTS
  k   -  Keycode to Bind.
  f   -  Function to Call When Key is Pressed.
  r   -  Keycode to Return to Caller After 'f' is Completed.  If zero,
      then nothing will be returned, and execution will resume as if no
      key had been pressed.

RETURNS
  0 on success, 1 on allocation failure.

EXAMPLE
     FILE: HLP\HLPSHOW.C......Line: 184, 186, 187
     FILE: TCXLDEMO.C.........Line: 748, 2311

---------------------------------------------------------------------------

                            Input With No Echo

---------------------------------------------------------------------------

NAME.........KeyClear          <TcxlKey.H>    Macro

DESCRIPTION
     Clears the keyboard buffer.

PROTOTYPE....VOID KeyClear(NOARG);

  #define KeyClear() while(_KeyHit()) _KeyGet()

ARGUMENTS....None

RETURNS......None

EXAMPLE
     FILE: INP\KEYTIME.C......Line: 27
     FILE: TCXLDEMO.C.........Line: 1037, 1047, 1144, 1182, 1231, 1381,
                              1485







Page 120                                   TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------

NAME.........KeyEvent          <TcxlKey.H>

DESCRIPTION
     Determines if a key or mouse button has been pressed.  If no events
     are pending,  calls the  Idle  function  (if  defined)  as  set  by
     KbndIdle() (Page 119)

PROTOTYPE....IntT CTYP KeyEvent(NOARG);

ARGUMENTS....None

RETURNS
  TRUE if event pending, FALSE otherwise.

EXAMPLE
     FILE: INP\KEYTIME.C......Line: 30

---------------------------------------------------------------------------

NAME.........KeyGetc           <TcxlKey.H>

DESCRIPTION
     Gets a  keycode (ASCII/ScanCode)  from  the  keyboard,  mouse,  and
     internal queue.

PROTOTYPE....KeyT CTYP KeyGetc(NOARG);

ARGUMENTS....None

RETURNS
  Keycode of the event.

EXAMPLE
     FILE: MNU\MNUSHOW.C......Line: 121
     FILE: ENT\ENTSHOW.C......Line: 118
     FILE: HLP\HLPSHOW.C......Line: 228
     FILE: SEL\SELATTR.C......Line: 53
     FILE: SEL\_SELECT.C......Line: 133
     FILE: INP\KEYTIME.C......Line: 35
     FILE: INP\KVGETCF.C......Line: 26
     FILE: INP\KVGETCH.C......Line: 23
     FILE: INP\KVGETFMT.C.....Line: 54
     FILE: INP\KVGETSN.C......Line: 27
     FILE: INP\KWGETCF.C......Line: 32
     FILE: INP\KWGETCH.C......Line: 28
     FILE: INP\KWGETFMT.C.....Line: 60
     FILE: INP\KWGETSN.C......Line: 30
     FILE: TCXLDEMO.C.........Line: 1733








TesSeRact CXL V5.5 Documentation                                   Page 121
---------------------------------------------------------------------------

NAME.........KeyPeek           <TcxlKey.H>    Macro

DESCRIPTION
     Looks at  the next  keystroke in  the  BIOS  keyboard  buffer,  and
     returns its ASCII/ScanCode value.

PROTOTYPE....KeyT KeyPeek(NOARG);

  #define KeyPeek() (_KeyHit())

ARGUMENTS....None

RETURNS
  KeyCode of the next key in buffer, or zero if nothing available.

---------------------------------------------------------------------------

NAME.........KeyStat           <TcxlKey.H>    Macro

DESCRIPTION
     Returns the status of the keyboard control keys.

PROTOTYPE....WrdT KeyStat(NOARG);

  #define KeyStat() (_KeySta())

ARGUMENTS....None

RETURNS
  Status Word of the Keyboard Flag

---------------------------------------------------------------------------

NAME.........KeyTime           <TcxlKey.H>

DESCRIPTION
     Flushes the  input buffers,  and waits  for a keyboard/mouse event.
     This function  will time  out and return after the passed number of
     timer ticks.

PROTOTYPE....KeyT CTYP KeyTime(IntT t);

ARGUMENTS
  t   -  Timer Ticks to Wait Before Timing Out, or -1 to never time out.

RETURNS
  KeyCode of the event, or -1 if timed out.

EXAMPLE
     FILE: TCXLDEMO.C.........Line: 1137, 1249, 1613, 1624, 2351






Page 122                                   TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------

NAME.........KeyWait           <TcxlKey.H>    Macro

DESCRIPTION
     Flushes the input buffers, and waits for a keyboard/mouse event.

PROTOTYPE....KeyT KeyWait(NOARG);

  #define KeyWait() (KeyTime(-1))

ARGUMENTS....None

RETURNS
  KeyCode of the event.

EXAMPLE
     FILE: HLP\HLPSHOW.C......Line: 116, 324
     FILE: WIN\WPERROR.C......Line: 50
     FILE: TCXLDEMO.C.........Line: 1131, 2227, 2348

---------------------------------------------------------------------------


                              Strings System


                                 Trimming

---------------------------------------------------------------------------

NAME..........strbtrim         <TcxlStr.H>    Macro

DESCRIPTION
     Trims both leading and trailing spaces off of a string.

PROTOTYPE....ChrP strbtrim(ChrP s);

  #define strbtrim(s) strtrim(strltrim(s))

ARGUMENTS
  s   -  String to Modify

RETURNS
  The address of the input string.

EXAMPLE
     FILE: TCXLDEMO.C.........Line: 1816










TesSeRact CXL V5.5 Documentation                                   Page 123
---------------------------------------------------------------------------

NAME.........strltrim          <TcxlStr.H>

DESCRIPTION
     Trims the leading spaces off of a string.

PROTOTYPE....ChrP CTYP strltrim(ChrP s);

ARGUMENTS
  s   -  String to Modify

RETURNS
  Address of the modified string.

EXAMPLE
     FILE: TCXLDEMO.C.........Line: 1483, 1808

---------------------------------------------------------------------------

NAME.........strrtrim          <TcxlStr.H>    Macro

DESCRIPTION
     Trims trailing spaces off of a string.

PROTOTYPE....ChrP strrtrim(ChrP s);

  #define strrtrim(s) strtrim(s)

ARGUMENTS
  s   -  String to Modify

RETURNS
  Address of the modified string

EXAMPLE
     FILE: TCXLDEMO.C.........Line: 1812

---------------------------------------------------------------------------

NAME.........strtrim           <TcxlStr.H>

DESCRIPTION
     Trims trailing spaces off of a string.

PROTOTYPE....ChrP CTYP strtrim(ChrP s);

ARGUMENTS
  s   -  String to Modify

RETURNS
  Address of the modified string

EXAMPLE
     FILE: ENT\ENTSHOW.C......Line: 166
     FILE: TCXLDEMO.C.........Line: 1474, 1475, 1476, 1477, 1478, 1479,
                              1480, 1481, 1482, 1812

Page 124                                   TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------

                                 Changing

---------------------------------------------------------------------------

NAME.........strchg            <TcxlStr.H>

DESCRIPTION
     Finds all  letters in  a string matching one character and replaces
     them with another.

PROTOTYPE....IntT CTYP strchg(ChrP s, IntT a, IntT b);

ARGUMENTS
  s   -  String to Search
  a   -  Character to Search For
  b   -  Character to Replace With

RETURNS
  The number of matches found

EXAMPLE
     FILE: HLP\HLPSHOW.C......Line: 90, 91, 92
     FILE: TCXLDEMO.C.........Line: 1832

---------------------------------------------------------------------------

NAME.........strichg           <TcxlStr.H>

DESCRIPTION
     Finds all  letters in  a string matching one character and replaces
     them with another.  Ignores case of letters.

PROTOTYPE....IntT CTYP strichg(ChrP s, IntT a, IntT b);

ARGUMENTS
  s   -  String to Search
  a   -  Character to Search For
  b   -  Character to Replace With

RETURNS
  The number of matches found

EXAMPLE
     FILE: TCXLDEMO.C.........Line: 1836












TesSeRact CXL V5.5 Documentation                                   Page 125
---------------------------------------------------------------------------

NAME.........strischg          <TcxlStr.H>

DESCRIPTION
     Changes all  occurrences of one string to another.  Ignores case of
     letters.

PROTOTYPE....ChrP CTYP strischg(ChrP s, ChrP a, ChrP b);

ARGUMENTS
  s   -  String to Search
  a   -  String to Search For
  b   -  String To Replace Found Strings With

RETURNS
  The address of the modified string, or NULL if no matches were found.

EXAMPLE
     FILE: STR\STRISCHG.C.....Line: 21
     FILE: TCXLDEMO.C.........Line: 1840

---------------------------------------------------------------------------

NAME.........strschg           <TcxlStr.H>

DESCRIPTION
     Changes all occurrences of one string to another.

PROTOTYPE....ChrP CTYP strschg(ChrP s, ChrP a, ChrP b);

ARGUMENTS
  s   -  String to search
  a   -  String to search for
  r   -  String to replace

RETURNS
  The address of the modified string, or NULL if no matches were found.

EXAMPLE
     FILE: TCXLDEMO.C.........Line: 1844

















Page 126                                   TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------

                                 Checksum

---------------------------------------------------------------------------

NAME.........strchksum         <TcxlStr.H>

DESCRIPTION
     Returns the  checksum of  a string.   The checksum is calculated by
     adding up the ASCII values of each character in the string.

PROTOTYPE....DwdT CTYP strchksum(ChrP s);

ARGUMENTS
  s   -  String to Checksum

RETURNS
  The checksum of the input string

EXAMPLE
     FILE: TCXLDEMO.C.........Line: 1856

---------------------------------------------------------------------------

NAME.........strichksum        <TcxlStr.H>

DESCRIPTION
     Returns the  checksum of  a string.   The checksum is calculated by
     adding up  the ASCII  values of  each character in the string.  All
     lowercase letters will be counted as uppercase.

PROTOTYPE....DwdT CTYP strichksum(ChrP s);

ARGUMENTS
  s   -  String to Checksum

RETURNS
  The checksum of the input string.

EXAMPLE
     FILE: TCXLDEMO.C.........Line: 1856
















TesSeRact CXL V5.5 Documentation                                   Page 127
---------------------------------------------------------------------------

                               Delete/Insert

---------------------------------------------------------------------------

NAME.........strdel            <TcxlStr.H>

DESCRIPTION
     Deletes a substring from within a string.

PROTOTYPE....ChrP CTYP strdel(ChrP a, ChrP s);

ARGUMENTS
  a   -  Substring to Delete
  s   -  String to Delete From

RETURNS
  Address of the modified string, or NULL if substring not found.

EXAMPLE
     FILE: STR\STRDELA.C......Line: 26
     FILE: STR\STRSREP.C......Line: 25
     FILE: TCXLDEMO.C.........Line: 1868

---------------------------------------------------------------------------

NAME.........strdela           <TcxlStr.H>

DESCRIPTION
     Deletes all occurrences of a substring from within a string.

PROTOTYPE....ChrP CTYP strdela(ChrP a, ChrP s);

ARGUMENTS
  a   -  Substring to Delete
  s   -  String to Delete From

RETURNS
  Address of the modified string, or NULL if substring not found.

EXAMPLE
     FILE: TCXLDEMO.C.........Line: 1872















Page 128                                   TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------

NAME.........stridel           <TcxlStr.H>

DESCRIPTION
     Deletes a substring from within a string.  Ignores case of letters.

PROTOTYPE....ChrP CTYP stridel(ChrP a, ChrP b);

ARGUMENTS
  a   -  Substring to Delete
  s   -  String to Delete From

RETURNS
  Address of the modified string, or NULL if substring not found.

EXAMPLE
     FILE: STR\STRIDELA.C.....Line: 26
     FILE: STR\STRISREP.C.....Line: 26
     FILE: TCXLDEMO.C.........Line: 1876

---------------------------------------------------------------------------

NAME.........stridela          <TcxlStr.H>

DESCRIPTION
     Deletes all  occurrences of  a  substring  from  within  a  string.
     Ignores case of letters.

PROTOTYPE....ChrP CTYP stridela(ChrP a, ChrP b);

ARGUMENTS
  a   -  Substring to Delete
  s   -  String to Delete From

RETURNS
  Address of the modified string, or NULL if substring not found.

EXAMPLE
     FILE: TCXLDEMO.C.........Line: 1880


















TesSeRact CXL V5.5 Documentation                                   Page 129
---------------------------------------------------------------------------

NAME.........strins            <TcxlStr.H>

DESCRIPTION
     Inserts one string into another.  Make sure the receiving buffer is
     large enough to hold the combined new string!

PROTOTYPE....ChrP CTYP strins(ChrP a, ChrP s, IntT p);

ARGUMENTS
  a   -  String to Insert
  s   -  String to Receive Insertion
  p   -  Starting position

RETURNS
  The address of the modified string.

EXAMPLE
     FILE: STR\STRISREP.C.....Line: 28
     FILE: STR\STRSREP.C......Line: 27
     FILE: TCXLDEMO.C.........Line: 1884

---------------------------------------------------------------------------

                                 Inclusion

---------------------------------------------------------------------------

NAME.........strinc            <TcxlStr.H>

DESCRIPTION
     Determines if and where one string is included within another.

PROTOTYPE....ChrP CTYP strinc(ChrP a, ChrP s);

ARGUMENTS
  a   -  String to search for
  s   -  String to search

RETURNS
  A pointer to the location in 's' that contains 'a', or NULL if not
  found.

EXAMPLE
     FILE: STR\STRDEL.C.......Line: 24
     FILE: STR\STRDELA.C......Line: 25
     FILE: STR\STRSOCC.C......Line: 27, 31
     FILE: STR\STRSREP.C......Line: 24
     FILE: TCXLDEMO.C.........Line: 1897








Page 130                                   TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------

NAME.........striinc           <TcxlStr.H>

DESCRIPTION
     Determines if  and where  one string  is included  within  another.
     Ignores case of letters.

PROTOTYPE....ChrP CTYP striinc(ChrP a, ChrP s);

ARGUMENTS
  a   -  String to search for
  s   -  String to search

RETURNS
  A pointer to the location in 's' that contains 'a', or NULL if not
  found.

EXAMPLE
     FILE: STR\STRIDEL.C......Line: 24
     FILE: STR\STRIDELA.C.....Line: 25
     FILE: STR\STRISOCC.C.....Line: 28, 32
     FILE: STR\STRISREP.C.....Line: 25
     FILE: TCXLDEMO.C.........Line: 1900

---------------------------------------------------------------------------

NAME.........strocc            <TcxlStr.H>

DESCRIPTION
     Counts occurrences of a character in a string.

PROTOTYPE....IntT CTYP strocc(ChrP s, IntT c);

ARGUMENTS
  s   -  String to Search
  c   -  Character to search for

RETURNS
  The number of occurrences of the character in the string.

EXAMPLE
     FILE: ENT\ENTSHOW.C......Line: 427, 432, 443, 448, 481, 483, 637,
                              639, 665, 667
     FILE: TCXLDEMO.C.........Line: 1903













TesSeRact CXL V5.5 Documentation                                   Page 131
---------------------------------------------------------------------------

NAME.........striocc           <TcxlStr.H>

DESCRIPTION
     Returns the  number of  occurrences of  a character  in  a  string.
     Ignores case of letters.

PROTOTYPE....IntT CTYP striocc(ChrP s, IntT c);

ARGUMENTS
  s   -  String to Search
  c   -  Character to search for

RETURNS
  The number of occurrences of the character in the string.

EXAMPLE
     FILE: TCXLDEMO.C.........Line: 1906

---------------------------------------------------------------------------

NAME.........strsocc           <TcxlStr.H>

DESCRIPTION
     Counts the occurrences of one string within another.

PROTOTYPE....IntT CTYP strsocc(ChrP a, ChrP s);

ARGUMENTS
  a   -  String to Search For
  s   -  String to Search

RETURNS
  The number of times that string 'a' occurs in string 's'.

EXAMPLE
     FILE: TCXLDEMO.C.........Line: 1909




















Page 132                                   TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------

NAME.........strisocc          <TcxlStr.H>

DESCRIPTION
     Counts occurrences  of one  string within another.  Ignores case of
     letters.

PROTOTYPE....IntT CTYP strisocc(ChrP a, ChrP s);

ARGUMENTS
  a   -  String to search for
  s   -  String to search

RETURNS
  The number of times that string 'a' occurs in string 's'.

EXAMPLE
     FILE: TCXLDEMO.C.........Line: 1911

---------------------------------------------------------------------------

                                Replacement

---------------------------------------------------------------------------

NAME.........strsrep           <TcxlStr.H>

DESCRIPTION
     Searches for, and replaces one string within another.

PROTOTYPE....ChrP CTYP strsrep(ChrP s, ChrP a, ChrP b);

ARGUMENTS
  s   -  String to Search
  a   -  String to Search For
  b   -  String to Replace With

RETURNS
  The address of the modified string, or NULL if the search string
  wasn't found.

EXAMPLE
     FILE: STR\STRSCHG.C......Line: 29
     FILE: TCXLDEMO.C.........Line: 1923













TesSeRact CXL V5.5 Documentation                                   Page 133
---------------------------------------------------------------------------

NAME.........strisrep          <TcxlStr.H>

DESCRIPTION
     Searches for, *and replaces one string within another. Ignores case
     of letters.

PROTOTYPE....ChrP CTYP strisrep(ChrP s, ChrP a, ChrP b);

ARGUMENTS
  s   -  String to search
  a   -  String to search for
  r   -  String to replace

RETURNS
  The address of the modified string, or NULL if the search string
  wasn't found.

EXAMPLE
     FILE: STR\STRISCHG.C.....Line: 29
     FILE: TCXLDEMO.C.........Line: 1927

---------------------------------------------------------------------------

                                Substrings

---------------------------------------------------------------------------

NAME.........strmid            <TcxlStr.H>

DESCRIPTION
     Takes a  section from  input string  starting at given position and
     taking the given amount of characters creating a new string.

PROTOTYPE....ChrP CTYP strmid(ChrP s, IntT p, IntT n);

ARGUMENTS
  s   -  Input String
  p   -  Position to start copying
  n   -  Number of characters to copy

RETURNS
  Address of the newly created string or a NULL if a memory allocation
  error occurred.  Be sure to free() the string when or if you are
  finished with it.

EXAMPLE
     FILE: TCXLDEMO.C.........Line: 1940









Page 134                                   TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------

NAME.........strleft           <TcxlStr.H>    Macro

DESCRIPTION
     Takes a  specified portion  of a string from its left and creates a
     new string.

PROTOTYPE....ChrP strleft(ChrP s, IntT n);

  #define strleft(s,n) strmid(s,0,n)

ARGUMENTS
  s   -  Input String
  n   -  Number of Character to Copy

RETURNS
  Address of the newly created string or a NULL if a memory allocation
  error occurred.  Be sure to free() this string if or when you don't
  need it anymore.

EXAMPLE
     FILE: TCXLDEMO.C.........Line: 1943

---------------------------------------------------------------------------

NAME.........strright          <TcxlStr.H>    Macro

DESCRIPTION
     Takes a specifed portion from the right side of a string creating a
     new string.

PROTOTYPE....ChrP strright(ChrP s, IntT n);

  #define strright(s,n) strmid(s,strlen(s)-n,n)

ARGUMENTS
  s   -  Input String
  n   -  Number of Characters to Copy

RETURNS
  Address of the newly created string or a NULL if a memory allocation
  error occurred.  Be sure to free() the string when or if you are
  finished with it.

EXAMPLE
     FILE: TCXLDEMO.C.........Line: 1946











TesSeRact CXL V5.5 Documentation                                   Page 135
---------------------------------------------------------------------------

                               Justification

---------------------------------------------------------------------------

NAME.........strljust          <TcxlStr.H>

DESCRIPTION
     Left justifies a text string.

PROTOTYPE....ChrP CTYP strljust(ChrP s);

ARGUMENTS
  s   -  String to Justify

RETURNS
  Address of the modified string.

EXAMPLE
     FILE: ENT\ENTSHOW.C......Line: 299
     FILE: TCXLDEMO.C.........Line: 1960

---------------------------------------------------------------------------

NAME.........strrjust          <TcxlStr.H>

DESCRIPTION
     Right justifies a text string.

PROTOTYPE....ChrP CTYP strrjust(ChrP s);

ARGUMENTS
  s   -  String to Justify

RETURNS
  Address of modified string.

EXAMPLE
     FILE: ENT\ENTSHOW.C......Line: 301
     FILE: HDW\CVTIC.C........Line: 32
     FILE: TCXLDEMO.C.........Line: 1964
















Page 136                                   TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------

NAME.........strrol            <TcxlStr.H>

DESCRIPTION
     Rotates a  string specified number of characters left.  The rotated
     characters wrap around to the right side of the string.

PROTOTYPE....ChrP CTYP strrol(ChrP s, IntT n);

ARGUMENTS
  s   -  String to Rotate
  n   -  Count to Rotate

RETURNS
  Address of the modified string

EXAMPLE
     FILE: TCXLDEMO.C.........Line: 1968

---------------------------------------------------------------------------

NAME.........strror            <TcxlStr.H>

DESCRIPTION
     Rotates a string specified number of characters right.  The rotated
     characters wrap around to the left side of the string.

PROTOTYPE....ChrP CTYP strror(ChrP s, IntT n);

ARGUMENTS
  s   -  String to Rotate
  n   -  Count to Rotate

RETURNS
  Address of the modified string

EXAMPLE
     FILE: TCXLDEMO.C.........Line: 1972



















TesSeRact CXL V5.5 Documentation                                   Page 137
---------------------------------------------------------------------------

NAME.........strshl            <TcxlStr.H>

DESCRIPTION
     Shifts a  string a specified number of characters left.  Characters
     that shift  past the  beginning of the string "drop off" and spaces
     are added to the right of the string.

PROTOTYPE....ChrP CTYP strshl(ChrP s, IntT n);

ARGUMENTS
  s   -  String to Shift
  n   -  Character Count to Shift

RETURNS
  Address of the Modified String

EXAMPLE
     FILE: ENT\ENTSHOW.C......Line: 400, 453
     FILE: TCXLDEMO.C.........Line: 1976

---------------------------------------------------------------------------

NAME.........strshr            <TcxlStr.H>

DESCRIPTION
     Shifts a string a specified number of characters right.  Characters
     that shift  past the  end of  the string  "drop off" and spaces are
     added to the left of the string.

PROTOTYPE....ChrP CTYP strshr(ChrP s, IntT n);

ARGUMENTS
  s   -  String to Shift
  n   -  Character Count to Shift

RETURNS
  Address of the Modified String

EXAMPLE
     FILE: ENT\ENTSHOW.C......Line: 500
     FILE: TCXLDEMO.C.........Line: 1980















Page 138                                   TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------

                                 Matching

---------------------------------------------------------------------------

NAME.........strbmatch         <TcxlStr.H>

DESCRIPTION
     Returns the best match of a string in an array of strings.

PROTOTYPE....ChrP CTYP strbmatch(ChrP s, ChrP a[]);

ARGUMENTS
  s   -  String to Match
  a   -  Array of pointers.  The last pointer in the array must be NULL.

RETURNS
  Address of the string in the array that best matched the given string.

EXAMPLE
     FILE: TCXLDEMO.C.........Line: 345
     FILE: TCXLDEMO.C.........Line: 1796

---------------------------------------------------------------------------

NAME.........strmatch          <TcxlStr.H>

DESCRIPTION
     Compares 2 strings and returns a match score.

PROTOTYPE....IntT CTYP strmatch(ChrP a, ChrP b);

ARGUMENTS
  a   -  First String
  b   -  Second String

RETURNS
  A match score.  The higher the score, the better they match.  The
  maximum possible score is strlen(a) + strlen(b).

EXAMPLE
     FILE: STR\STRBMATC.C.....Line: 26
     FILE: STR\STRBMATC.C.....Line: 28
     FILE: TCXLDEMO.C.........Line: 1792













TesSeRact CXL V5.5 Documentation                                   Page 139
---------------------------------------------------------------------------

                               Miscellaneous

---------------------------------------------------------------------------

NAME.........strblank          <TcxlStr.H>

DESCRIPTION
     Determines if a given string is blank (whitespace).

PROTOTYPE....IntT CTYP strblank(ChrP s);

ARGUMENTS
  s   -  String to Check

RETURNS
  TRUE if string is blank, FALSE otherwise

EXAMPLE
     FILE: ENT\ENTSHOW.C......Line: 387, 516, 530, 798
     FILE: TCXLDEMO.C.........Line: 1348, 1647, 1995, 1996

---------------------------------------------------------------------------

NAME.........strcode           <TcxlStr.H>

DESCRIPTION
     Encodes/decodes a  string.   Call this function to encode a string,
     then call  again using  the same key to decode it.  When reading or
     writing from a disk file, be sure to open the file in binary mode.

PROTOTYPE....ChrP CTYP strcode(ChrP s, ChrP k);

ARGUMENTS
  s   -  String to encode
  k   -  Key String

RETURNS
  The address of the input string

EXAMPLE
     FILE: TCXLDEMO.C.........Line: 1999, 2001















Page 140                                   TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------

NAME.........strsetsz          <TcxlStr.H>

DESCRIPTION
     Adjusts the  length of  a string,  either by  truncation or padding
     with spaces.   Make  sure the  string is  large enough  to hold the
     entire buffer if it is expanded!

PROTOTYPE....ChrP CTYP strsetsz(ChrP s, IntT n);

ARGUMENTS
  s   -  Input String
  n   -  New Length

RETURNS
  Address of the modified string.

SEE ALSO
  strtrim (Page 124)

EXAMPLE
     FILE: MNU\ITMSET.C.......Line: 31
     FILE: ENT\ENTFLD.C.......Line: 85
     FILE: TCXLDEMO.C.........Line: 2006, 2008

---------------------------------------------------------------------------

NAME.........struplow          <TcxlStr.H>

DESCRIPTION
     Converts a string to mixed upper & lowercase characters. Characters
     are forced  to upper  or  lowercase  depending  upon  the  previous
     character in the string.

PROTOTYPE....ChrP CTYP struplow(ChrP s);

ARGUMENTS
  s   -  String to Convert

RETURNS
  Address of the modified string

SEE ALSO
  touplow (Page 191)

EXAMPLE
     FILE: TCXLDEMO.C.........Line: 1474, 1475, 1476, 1477, 1478, 1479,
                              1480, 1481, 1482, 1812









TesSeRact CXL V5.5 Documentation                                   Page 141
---------------------------------------------------------------------------


                         Hardware Level Functions


                           Information Subsystem


                            Library Information

---------------------------------------------------------------------------

NAME.........TcxlInit          <TcxlDef.H>

DESCRIPTION
     This is  the initialization  function for the TCXL library.  Within
     this function, the low-level video, keyboard and mouse routines are
     initialized.   In future  versions, all add-in modules will also be
     initialized here, as well as user-defined functions.  This function
     also sets  the TcxlTerm() function as a termination function, using
     the compiler's atexit() procedure.

PROTOTYPE....VOID CTYP TcxlInit(NOARG);

ARGUMENTS....None

RETURNS......None

SEE ALSO
  TcxlTerm (Page 142)

---------------------------------------------------------------------------

NAME.........TcxlTerm          <TcxlDef.H>

DESCRIPTION
     TcxlTerm() is currently a NULL function; in addition, a user should
     NEVER  CALL   IT  UNDER   ANY  CIRCUMSTANCES.    This  function  is
     automatically installed  as an  atexit() routine,  and is  provided
     with this release to maintain upward compatibility.

PROTOTYPE....VOID CDC TcxlTerm(NOARG);

ARGUMENTS....None

RETURNS......None

SEE ALSO
  TcxlInit (Page 142)








Page 142                                   TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------

NAME.........TcxlVer           <TcxlDef.H>

DESCRIPTION
     This function returns a unsigned integer that describes the version
     number of the TCXL library.

PROTOTYPE....WrdT TcxlVer(NOARG);

ARGUMENTS....None

RETURNS
  An unsigned integer, with the high byte equal to the major version of
  TCXL, and the low byte equal to the minor version.

EXAMPLE
  printf("This is Version %d.%d of TCXL\n",
            TcxlVer() >> 8, TcxlVer & 0x00ff);

---------------------------------------------------------------------------

                           Hardware Information


Please note  that the functions gameport(), mathchip(), numflop(), numpar()
and numser() are no longer used in TCXL.  They have been replaced by macros
accessing the _HdwCtl structure (See User's Guide). The old names have been
aliased to  the new macros; however, we recommend you change your source to
conform with the new naming conventions.

---------------------------------------------------------------------------

NAME........._BioEqp           <TcxlHdw.h>

DESCRIPTION
     Initializes the  global _HdwCtl  object with  BIOS  equipment  flag
     data.  Automatically called during TcxlInit() (Page 142).

PROTOTYPE....VOID PAS _BioEqp(NOARG);

ARGUMENTS....None

RETURNS......None

SEE ALSO
  The various Hdw...() macros











TesSeRact CXL V5.5 Documentation                                   Page 143
---------------------------------------------------------------------------

NAME.........BiosVer           <TcxlHdw.h>

DESCRIPTION
     Returns the ROM BIOS version date.  May not work on some compatible
     machines.

PROTOTYPE....ChrP CTYP BiosVer(NOARG);

ARGUMENTS....None

RETURNS
  The address of the static string containing the ROM BIOS version date.

SEE ALSO
  machid (Page 145)

---------------------------------------------------------------------------

NAME.........ClockCal          <TcxlHdw.h>

DESCRIPTION
     Determines if  a clock-calendar  board is  installed.  This usually
     will only work with the clock-calendar boards in XT-style machines.

PROTOTYPE....IntT CTYP ClockCal(NOARG);

ARGUMENTS....None

RETURNS
  Nonzero if a clock-calendar board is present.


























Page 144                                   TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------

NAME.........MachId            <TcxlHdw.h>

DESCRIPTION
     Returns the value of the machine ROM ID byte.

PROTOTYPE....IntT CTYP MachId(NOARG)

ARGUMENTS....None

RETURNS
  The value of the machine ROM ID byte.  Will usually be one of
  thefollowing values.  Any other value is unknown.

  IBMPC    -  IBM PC
  IBMPCXT  -  IBM PC/XT
  IBMPCJR  -  IBM PCjr
  IBMPCAT  -  IBM PC/AT
  IBMPCXT2 -  IBM PC/XT-2
  IBMPS30  -  IBM PS/2 Model 30
  IBMCONV  -  IBM PC Convertible
  IBMPS80  -  IBM PS/2 Model 80
  SPERRYPC -  Sperry PC
  CPQPORT  -  Compaq Portable
  CPQPLUS  -  Compaq Portable Plus
  HP110    -  HP 110 Portable

SEE ALSO
  biosver (Page 144)

---------------------------------------------------------------------------

NAME.........HdwFlg            <TcxlHdw.h>    Macro

DESCRIPTION
     Returns the full flag word of the BIOS hardware settings.

PROTOTYPE....IntT HdwFlg(NOARG)

ARGUMENTS....None

RETURNS
  The Full Flag Word Of The BIOS Hardware Settings














TesSeRact CXL V5.5 Documentation                                   Page 145
---------------------------------------------------------------------------

NAME.........HdwGam            <TcxlHdw.h>    Macro
.............gameport

DESCRIPTION
     Determines if a game port is installed.

PROTOTYPE....IntT HdwGam(NOARG)

  #define HdwGam() (0 != (HdwFlg() & 0x01))
  #define gameport() HdwGam()

ARGUMENTS....None

RETURNS
  TRUE if game port is installed
  FALSE otherwise

---------------------------------------------------------------------------

NAME.........HdwNdp            <TcxlHdw.h>    Macro
.............mathchip

DESCRIPTION
     Determines if a math coprocesser is installed.

PROTOTYPE....IntT HdwNdp(NOARG)

  #define HdwNdp() (0 != (HdwFlg() & 0x02))
  #define mathchip() HdwNdp()

ARGUMENTS....None

RETURNS
  TRUE if math chip is installed
  FALSE otherwise

---------------------------------------------------------------------------

NAME.........HdwMou            <TcxlHdw.h>    Macro

DESCRIPTION
     Determines if the PS/2 (Microchannel) BUS mouse is installed.

PROTOTYPE....IntT HdwMou(NOARG)

  #define HdwMou() (0 != (HdwFlg() & 0x04))

ARGUMENTS....None

RETURNS
  TRUE if Mouse installed
  FALSE otherwise




Page 146                                   TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------

NAME.........HdwMdm            <TcxlHdw.h>    Macro

DESCRIPTION
     Determines if the PS/2 (Microchannel) modem is installed.

PROTOTYPE....IntT HdwMdm(NOARG)

  #define HdwMdm() (0 != (HdwFlg() & 0x08))

ARGUMENTS....None

RETURNS
  TRUE if mdoem installed
  FALSE otherwise

---------------------------------------------------------------------------

NAME.........HdwC40            <TcxlHdw.h>    Macro

DESCRIPTION
     Determines if  the initial  video mode  when the machine booted was
     Color, 40 columns by 25 rows.

PROTOTYPE....IntT HdwC40(NOARG)

  #define HdwC40() (0 != (HdwFlg() & 0x10))

ARGUMENTS....None

RETURNS
  TRUE if machine booted in 40x25 color
  FALSE otherwise

---------------------------------------------------------------------------

NAME.........HdwC80            <TcxlHdw.h>    Macro

DESCRIPTION
     Determines if  the initial  video mode  when the machine booted was
     Color, 80 columns by 25 rows.

PROTOTYPE....IntT HdwC80(NOARG)

  #define HdwC80() (0 != (HdwFlg() & 0x20))

ARGUMENTS....None

RETURNS
  TRUE if machine booted in 80x25 color
  FALSE otherwise






TesSeRact CXL V5.5 Documentation                                   Page 147
---------------------------------------------------------------------------

NAME.........HdwM80            <TcxlHdw.h>    Macro

DESCRIPTION
     Determines if  the initial  video mode  when the machine booted was
     Monochrome, 80 columns by 25 rows.

PROTOTYPE....IntT HdwM80(NOARG)

  #define HdwM80() (0 != (HdwFlg() & 0x40))

ARGUMENTS....None

RETURNS
  TRUE if machine booted in 80x25 monochrome
  FALSE otherwise

---------------------------------------------------------------------------

NAME.........HdwDrv            <TcxlHdw.h>    Macro
.............numflop

DESCRIPTION
     Returns the number of floppy disk drives installed.

PROTOTYPE....IntT HdwDrv(NOARG)

  #define HdwDrv() (_HdwCtl.hdrv)
  #define numflop() HdwDrv()

ARGUMENTS....None

RETURNS
  The number of floppy disk drives installed.

---------------------------------------------------------------------------

NAME.........HdwPar            <TcxlHdw.h>    Macro
.............numpar

DESCRIPTION
     Returns the number of parallel ports.

PROTOTYPE....IntT HdwPar(NOARG)

  #define HdwPar() (_HdwCtl.hser)
  #define numpar() HdwPar()

ARGUMENTS....None

RETURNS
  The number of parallel ports installed.





Page 148                                   TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------

NAME.........HdwSer            <TcxlHdw.h>    Macro
.............numser

DESCRIPTION
     Returns the number of serial ports installed.

PROTOTYPE....IntT HdwSer(NOARG)

  #define HdwSer() (_HdwCtl.hser)
  #define numser() HdwSer()

ARGUMENTS....None

RETURNS
  The number of serial ports installed.

---------------------------------------------------------------------------

                             Utility Routines

---------------------------------------------------------------------------

NAME.........Beep              <TcxlDef.H>    Macro

DESCRIPTION
     Sounds a beep in the speaker.

PROTOTYPE....VOID Beep(NOARG);

  #define Beep() _StdOut(BEL)

ARGUMENTS....None

RETURNS......None

SEE ALSO
  _StdOut (Page 152)

---------------------------------------------------------------------------

NAME.........RandFile          <TcxlDef.H>

DESCRIPTION
     Creates a random file name.

PROTOTYPE....ChrP CTYP RandFile(NOARG);

ARGUMENTS....None

RETURNS
  Address of the static string containing the random file name.





TesSeRact CXL V5.5 Documentation                                   Page 149
---------------------------------------------------------------------------

NAME.........Sound             <TcxlDef.H>

DESCRIPTION
     Sounds a tone of specified pitch and duration.

PROTOTYPE....VOID CTYP Sound(WrdT pv, WrdT dt);

ARGUMENTS
  pv  -  Pitch (0-65535)
  dt  -  Duration (in timer ticks; 182=10 seconds)

RETURNS......None

---------------------------------------------------------------------------

NAME.........SysDate           <TcxlDef.H>

DESCRIPTION
     Returns a string containing the current system date.

PROTOTYPE....ChrP CTYP SysDate(IntT d);

ARGUMENTS
  d   -  Date Time Code.  One of the following:

  Code     Example
  ----     -------
   0       December 3, 1988
   1       3 Dec 88
   2       12-3-88
   3       12/3/88
   4       3/12/88
   5       12/03/88

RETURNS
  Address of the static string containing the system date.

SEE ALSO
  SysTime (Page 151)

















Page 150                                   TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------

NAME.........SysTime           <TcxlDef.H>

DESCRIPTION
     Returns a string containing the current system time.

PROTOTYPE....ChrP CTYP SysTime(IntT t);

ARGUMENTS
  t   -  Time Type Code.  Can be one of the following:

  Code     Example
  ----     -------
   0       16:30:57.89
   1       16:30:57
   2       4:30 PM
   3       4:30p
   4       4:30
   5       04:30

RETURNS
  Address of the static string containing the system date.

SEE ALSO
  SysDate (Page 150)

---------------------------------------------------------------------------

NAME.........TabNxt            <TcxlDef.H>

DESCRIPTION
     Calculates the next tab stop from given column and tab width.

PROTOTYPE....IntT PAS TabNxt(IntT c, IntT w);

ARGUMENTS
  c   -  Column
  w   -  Tab Width

RETURNS
  The column of the next tab stop
















TesSeRact CXL V5.5 Documentation                                   Page 151
---------------------------------------------------------------------------

NAME........._Delay            <TcxlDef.H>

DESCRIPTION
     Delays program execution for a specified duration.

PROTOTYPE....VOID PAS _Delay(WrdT d);

ARGUMENTS
  d   -  Duration (In Timer Ticks; 182 = 10 seconds)

RETURNS......None

SEE ALSO
  _Timer (Page 153)
  KeyTime (Page 122)
  _WaitMs (Page 153)

---------------------------------------------------------------------------

NAME........._StdOut           <TcxlDef.H>

DESCRIPTION
     Outputs a character to the DOS Standard Output Device.

PROTOTYPE....VOID PAS _StdOut(ArgT ch);

ARGUMENTS
  ch  -  Character to Output

RETURNS......None

SEE ALSO
  _StdOutS (Page 152)
  Beep (Page 149)

---------------------------------------------------------------------------

NAME........._StdOutS          <TcxlDef.H>

DESCRIPTION
     Outputs a string through the DOS Standard Output Device.

PROTOTYPE....VOID PAS _StdOutS(ChrP s);

ARGUMENTS
  s   -  String to output.

RETURNS......None

SEE ALSO
  _StdOut (Page 152)





Page 152                                   TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------

NAME........._Timer            <TcxlDef.H>

DESCRIPTION
     Returns the  value of the BIOS timer.  This value is incremented by
     one every 18.2 seconds.

PROTOTYPE....DwdT PAS _Timer(NOARG);

ARGUMENTS....None

RETURNS
  Current value of the BIOS timer.

SEE ALSO
  _Delay (Page 152)
  _WaitMs (Page 153)

---------------------------------------------------------------------------

NAME........._WaitMs           <TcxlDef.H>

DESCRIPTION
     This is  a millisecond-resolution  delay function.   Waits  for the
     specified number of milliseconds before returning control.

PROTOTYPE....VOID PAS _WaitMs(IntT ms)

ARGUMENTS
  ms  -  Number of milliseconds to wait

RETURNS......None

SEE ALSO
  _Delay (Page 152)
  _Timer (Page 153)





















TesSeRact CXL V5.5 Documentation                                   Page 153
---------------------------------------------------------------------------

                             Memory Subsystem

---------------------------------------------------------------------------

NAME.........MemInit           <TcxlMem.H>

DESCRIPTION
     This routine  initializes the  Memory  Subsystem.    It  is  called
     automatically from inside TcxlInit().

PROTOTYPE....VOID PAS MemInit(NOARG);

ARGUMENTS....None

RETURNS......None

---------------------------------------------------------------------------

NAME.........MemTerm           <TcxlMem.H>    Macro

DESCRIPTION
     This routine  currently does  nothing.   It is  provided for future
     compatibility.

PROTOTYPE....VOID MemTerm(NOARG);

  #define MemTerm()

ARGUMENTS....None

RETURNS......None

---------------------------------------------------------------------------

                         Expanded Memory Routines

---------------------------------------------------------------------------

NAME.........EMSalloc          <TcxlMem.H>

DESCRIPTION
     This function allocates Expanded Memory pages.

PROTOTYPE...._HdlT PAS EMSalloc(IntT np);

ARGUMENTS
  np  -  Number of 16K Pages to allocate

RETURNS
  The EMS handle associate with this block of pages.
  On error, returns FALSE and sets MemEerr to the error code.





Page 154                                   TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------

NAME.........EMSfree           <TcxlMem.H>

DESCRIPTION
     Frees a block of EMS pages.

PROTOTYPE....IntT PAS EMSfree(_HdlT eh);

ARGUMENTS
  eh  -  EMS Handle

RETURNS
  TRUE on success, FALSE on failure, and sets MemEerr.

---------------------------------------------------------------------------

NAME.........EMSgetnam         <TcxlMem.H>

DESCRIPTION
     Returns the  "name" of  the EMS  block associated  with the  passed
     handle.

PROTOTYPE....ChrFP PAS EMSgetnam(_HdlT eh, ChrFP np);

ARGUMENTS
  eh  -  EMS Handle
  np  -  Pointer to 9-byte buffer area

RETURNS
  Pointer to Buffer

---------------------------------------------------------------------------

NAME.........EMScount          <TcxlMem.H>

DESCRIPTION
     Gets the number of EMS handles previously allocated.

PROTOTYPE....IntT PAS EMScount(NOARG);

ARGUMENTS....None

RETURNS
  Handle Count on success, FALSE on failure, and sets MemEerr.













TesSeRact CXL V5.5 Documentation                                   Page 155
---------------------------------------------------------------------------

NAME.........EMSpages          <TcxlMem.H>

DESCRIPTION
     Gets the number of EMS pages associated with the passed handle.

PROTOTYPE....IntT PAS EMSpages(_HdlT eh);

ARGUMENTS
  eh  -  EMS Handle

RETURNS
  Page Count on success, FALSE on failure, and sets MemEerr.

---------------------------------------------------------------------------

NAME.........EMSmap            <TcxlMem.H>

DESCRIPTION
     Maps a "logical" EMS page into a "physical" hardware location

PROTOTYPE....IntT PAS EMSmap(_HdlT eh, IntT pp, IntT lp);

ARGUMENTS
  eh  -  EMS Handle
  pp  -  Physical Page
  lp  -  Logical Page

RETURNS
  TRUE on success, FALSE on failure, and sets MemEerr.

---------------------------------------------------------------------------

NAME.........EMSquery          <TcxlMem.H>

DESCRIPTION
     Get the number of free EMS pages.  Also sets the size parameters in
     _MemCtl.

PROTOTYPE....IntT PAS EMSquery(NOARG);

ARGUMENTS....None

RETURNS
  Number of Free Pages; FALSE on failure, and sets MemEerr.












Page 156                                   TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------

NAME.........EMSrest           <TcxlMem.H>

DESCRIPTION
     Restores the EMS Page Map.

PROTOTYPE....IntT PAS EMSrest(_HdlT eh);

ARGUMENTS
  eh  -  EMS Handle

RETURNS
  TRUE on success, FALSE on error, and sets MemEerr.

---------------------------------------------------------------------------

NAME.........EMSsave           <TcxlMem.H>

DESCRIPTION
     Saves the EMS Page Map.

PROTOTYPE....IntT PAS EMSsave(_HdlT eh);

ARGUMENTS
  eh  -  EMS Handle

RETURNS
  TRUE on success, FALSE on error, and sets MemEerr.

---------------------------------------------------------------------------

NAME.........EMSsetnam         <TcxlMem.H>

DESCRIPTION
     Assigns a "name" to be associated with the particular EMS handle.

PROTOTYPE....IntT PAS EMSsetnam(_HdlT eh, ChrFP np);

ARGUMENTS
  eh  -  EMS Handle
  np  -  NULL-terminated Handle "name"

RETURNS
  TRUE on success, FALSE on error, and sets MemEerr.













TesSeRact CXL V5.5 Documentation                                   Page 157
---------------------------------------------------------------------------

NAME.........EMSstat           <TcxlMem.H>

DESCRIPTION
     Checks the status of the EMS driver.

PROTOTYPE....IntT PAS EMSstat(NOARG);

ARGUMENTS....None

RETURNS
  TRUE if EMS is installed and active, FALSE on error, and sets MemEerr.

---------------------------------------------------------------------------

                         Extended Memory Routines

---------------------------------------------------------------------------

NAME.........XMSalloc          <TcxlMem.H>

DESCRIPTION
     Allocates a  block of  the given  size out  of  the  pool  of  free
     extended memory.

PROTOTYPE...._HdlT PAS XMSalloc(WrdT nk);

ARGUMENTS
  nk  -  K bytes to allocate

RETURNS
  XMS Handle if successful, FALSE on error, and sets MemXerr.

---------------------------------------------------------------------------

NAME.........XMScopy           <TcxlMem.H>

DESCRIPTION
     Copy from  a block  of memory  to another  block of memory.  May be
     used for copys between "normal" and XMS memory in either direction,
     between two  different XMS  areas, or  between two  blocks  of  DOS
     memory.

PROTOTYPE....IntT PAS XMScopy(_XmsFP xp);

ARGUMENTS
  xp  -  Correctly Defined XMS_Move structure (see the XMS
      documentation for details)

RETURNS
  TRUE if successful, FALSE on error, and sets MemXerr.






Page 158                                   TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------

NAME.........XMSfree           <TcxlMem.H>

DESCRIPTION
     Free a block of extended memory previously allocated.

PROTOTYPE....IntT PAS XMSfree(_HdlT xh);

ARGUMENTS
  xh  -  XMS Handle

RETURNS

RETURNS
  TRUE if successful, FALSE on error, and sets MemXerr.

---------------------------------------------------------------------------

NAME.........XMSavail          <TcxlMem.H>

DESCRIPTION
     Get amount of free XMS available.

PROTOTYPE....IntT PAS XMSavail(NOARG);

ARGUMENTS....None

RETURNS
  Largest available block of XMS memory.  Also updates globals in
  _MemCtl.

---------------------------------------------------------------------------

NAME.........XMSquery          <TcxlMem.H>

DESCRIPTION
     Determine the amount of memory used by the passed XMS handle.

PROTOTYPE....IntT PAS XMSquery(_HdlT xh);

ARGUMENTS
  xh  -  XMS Handle

RETURNS
  Length of the XMS block.  FALSE on error, and sets MemXerr.












TesSeRact CXL V5.5 Documentation                                   Page 159
---------------------------------------------------------------------------

NAME.........XMSlock           <TcxlMem.H>

DESCRIPTION
     This function  locks an extended memory block, and returns its base
     address as  a 32-bit  linear address.   Locked  memory  blocks  are
     guaranteed not to move, but should be unlocked as soon as possible.
     A block  does NOT  have to  be locked in order to use the XMSCopy()
     function.

PROTOTYPE...._AdrT PAS XMSlock(_HdlT xh);

ARGUMENTS
  xh  -  XMS Handle

RETURNS
  32-bit linear pointer to base of memory block.  0 if error.

---------------------------------------------------------------------------

NAME.........XMSrealloc        <TcxlMem.H>

DESCRIPTION
     Changes the  size of  a block  of extended  memory  that  has  been
     previously allocated.

PROTOTYPE....IntT PAS XMSrealloc(_HdlT xh, WrdT ns);

ARGUMENTS
  xh  -  XMS Handle
  ns  -  New Size (in K)

RETURNS
  TRUE if successful, FALSE on error, and sets MemXerr.

---------------------------------------------------------------------------

NAME.........XMSunlock         <TcxlMem.H>

DESCRIPTION
     Unlocks a previously-locked Extended Memory block.

PROTOTYPE....IntT PAS XMSunlock(_HdlT xh);

ARGUMENTS
  xh  -  XMS Handle

RETURNS
  TRUE if successful, FALSE on error, and sets MemXerr.








Page 160                                   TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------

NAME........._A20_LD           <TcxlMem.H>
............._A20_LE
............._A20chk
............._A20dis
............._A20ena

DESCRIPTION
     This functions  manipulate the  A20 line  on 286 processors.  Under
     normal conditions,  it is  not necessary to manipulate this line to
     access XMS;  consult the  XMS documentation  for details  on  these
     functions.

PROTOTYPE....IntT PAS _A20_LD(NOARG);
.............IntT PAS _A20_LE(NOARG);
.............IntT PAS _A20chk(NOARG);
.............IntT PAS _A20dis(NOARG);
.............IntT PAS _A20ena(NOARG);

ARGUMENTS....None

RETURNS
  TRUE if successful, FALSE on error, and sets MemXerr.

---------------------------------------------------------------------------

NAME.........UMBalloc          <TcxlMem.H>

DESCRIPTION
     This function  allocates an  Upper Memory  Block.  To determine the
     largest available  UMB block,  call this  function  with  the  size
     parameter set to 0xFFFF.

PROTOTYPE....IntT PAS UMBalloc(WrdT np, _SegFP ps);

ARGUMENTS
  np  -  Number of Paragraphs to Allocate
  ps  -  FAR Pointer to location to store returned segment address

RETURNS
  If the returned segment address is zero, this function returns the
  largest available UMB area.  If the returned segment is non-zero, the
  memory is allocated, and this function returns the actual amount
  allocated.













TesSeRact CXL V5.5 Documentation                                   Page 161
---------------------------------------------------------------------------

NAME.........UMBfree           <TcxlMem.H>

DESCRIPTION
     Frees a previously allocated UMB.

PROTOTYPE....IntT PAS UMBfree(_SegT ps);

ARGUMENTS
  ps  -  Segment address to free

RETURNS
  TRUE if successful, FALSE on error, and sets MemXerr.

---------------------------------------------------------------------------

NAME.........HMAalloc          <TcxlMem.H>

DESCRIPTION
     Reserves the High Memory Area for use by this application program.

PROTOTYPE....IntT PAS HMAalloc(NOARG);

ARGUMENTS....None

RETURNS
  TRUE if successful, FALSE on error, and sets MemXerr.

---------------------------------------------------------------------------

NAME.........HMAfree           <TcxlMem.H>

DESCRIPTION
     Frees the HMA area for use by other programs.

PROTOTYPE....IntT PAS HMAfree(NOARG);

ARGUMENTS....None

RETURNS
  TRUE if successful, FALSE on error, and sets MemXerr.
















Page 162                                   TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------

                             Printer Subsystem

---------------------------------------------------------------------------

NAME........._LPputC           <TcxlPrn.H>

DESCRIPTION
     This is  an internal  routine to  output a character to the printer
     port, expanding a single "\n" to "\r\n".

PROTOTYPE....VOID PAS _LPputC(IntT ch);

ARGUMENTS
  ch  -  Char to Output

---------------------------------------------------------------------------

NAME.........lcrlf             <TcxlPrn.H>    Macro

DESCRIPTION
     Prints a carriage return and line feed on the printer (PRN).

PROTOTYPE....VOID lcrlf(NOARG);

  #define lcrlf() lprintc(0x0A)

ARGUMENTS....None

---------------------------------------------------------------------------

NAME.........lprintc           <TcxlPrn.H>    Macro

DESCRIPTION
     Prints a character on the printer (PRN).

PROTOTYPE....VOID lprintc(IntT ch);

  #define lprintc(c) _LPputC(c);

ARGUMENTS
  ch  -  Character to print

---------------------------------------------------------------------------

NAME.........lprintf           <TcxlPrn.H>

DESCRIPTION
     Sends formatted  output to the printer (PRN).  Works similar to the
     standard C printf() function.

PROTOTYPE....VOID CDC lprintf(ChrP fs, ...);

ARGUMENTS
  fs  -  Format String
  ... -  Additional Arguments

TesSeRact CXL V5.5 Documentation                                   Page 163
---------------------------------------------------------------------------

NAME.........lprintn           <TcxlPrn.H>

DESCRIPTION
     Prints a fixed width buffer on the printer (PRN).

PROTOTYPE....VOID CTYP lprintn(ChrP ps, IntT nc);

ARGUMENTS
  ps  -  Buffer to Print
  nc  -  Number of Bytes to Print

---------------------------------------------------------------------------

NAME.........lprintns          <TcxlPrn.H>

DESCRIPTION
     Prints a string to a fixed width on the printer (PRN).

PROTOTYPE....VOID CTYP lprintns(ChrP ps, IntT nc);

ARGUMENTS
  ps  -  String to Print
  nc  -  Number of Characters to Print

---------------------------------------------------------------------------

NAME.........lprints           <TcxlPrn.H>

DESCRIPTION
     Prints a string on the printer (PRN).

PROTOTYPE....VOID CTYP lprints(ChrP ps);

ARGUMENTS
  ps  -  String to Print

---------------------------------------------------------------------------

NAME.........lprintsb          <TcxlPrn.H>

DESCRIPTION
     Prints a bold-faced string on the printer (PRN).

PROTOTYPE....VOID CTYP lprintsb(ChrP ps, IntT nr);

ARGUMENTS
  ps  -  String to Print
  nr  -  Number of Repetions








Page 164                                   TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------

NAME.........lprintsu          <TcxlPrn.H>

DESCRIPTION
     Prints an underlined string on the printer (PRN).

PROTOTYPE....VOID CTYP lprintsu(ChrP ps);

ARGUMENTS
  ps  -  String to Print

---------------------------------------------------------------------------

NAME.........scrndump

DESCRIPTION
     Dumps the current screen to the printer (PRN).

PROTOTYPE....VOID CTYP scrndump(NOARG);

ARGUMENTS....None

---------------------------------------------------------------------------

NAME.........windump           <TcxlPrn.H>

DESCRIPTION
     Dumps a screen window to the printer (PRN).

PROTOTYPE....VOID CTYP windump(IntT sr, IntT sc, IntT er, IntT ec);

ARGUMENTS
  sr  -  Start Row
  sc  -  Start Column
  er  -  End Row
  ec  -  End Column

---------------------------------------------------------------------------

                              OpSys Subsystem

---------------------------------------------------------------------------

NAME........._ChgDir           <TcxlDos.H>

DESCRIPTION
     DOS Change Current Directory Routine.

PROTOTYPE....IntT PAS _ChgDir(ChrP p);

ARGUMENTS
  p   -  New Directory Name

RETURNS
  0 on success, 1 on failure.


TesSeRact CXL V5.5 Documentation                                   Page 165
---------------------------------------------------------------------------

NAME........._ChgDrv           <TcxlDos.H>

DESCRIPTION
     DOS Change Current Drive Routine.

PROTOTYPE....IntT PAS _ChgDrv(IntT d);

ARGUMENTS
  d   -  New Drive Letter

RETURNS
  Last Drive in System as an upper-case letter

---------------------------------------------------------------------------

NAME........._FndFst           <TcxlDos.H>

DESCRIPTION
     DOS FindFirst Routine.

PROTOTYPE....IntT PAS _FndFst(ChrP p, FfbP f, IntT a);

ARGUMENTS
  p   -  FileSpec to match
  f   -  DTA structure
  a   -  Attribute to match

RETURNS
  0 on success, 1 on failure.

---------------------------------------------------------------------------

NAME........._FndNxt           <TcxlDos.H>

DESCRIPTION
     DOS FindNext Routine.

PROTOTYPE....IntT PAS _FndNxt(FfbP f);

ARGUMENTS
  f   -  DTA structure

RETURNS
  0 on success, 1 on failure.












Page 166                                   TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------

NAME........._GetDir           <TcxlDos.H>

DESCRIPTION
     DOS Get Directory Routine.

PROTOTYPE....VOID PAS _GetDir(IntT d, ChrP p);

ARGUMENTS
  d   -  Drive Letter
  p   -  Return Buffer

RETURNS......None

---------------------------------------------------------------------------

NAME........._GetDrv           <TcxlDos.H>

DESCRIPTION
     DOS Get Current Drive Routine

PROTOTYPE....IntT PAS _GetDrv(NOARG);

ARGUMENTS....None

RETURNS
  The current drive as an upper-case letter.

---------------------------------------------------------------------------

NAME........._InpByt           <TcxlDos.H>

DESCRIPTION
     Read a byte from a hardware port.

PROTOTYPE....IntT PAS _InpByt(WrdT p);

ARGUMENTS
  p   -  Port to Read

RETURNS
  The returned value.















TesSeRact CXL V5.5 Documentation                                   Page 167
---------------------------------------------------------------------------

NAME........._InpWrd           <TcxlDos.H>

DESCRIPTION
     Read a word from a hardware port.

PROTOTYPE....WrdT PAS _InpWrd(WrdT p);

ARGUMENTS
  p   -  Port to Read

RETURNS
  The returned value

---------------------------------------------------------------------------

NAME........._IntDis           <TcxlDos.H>

DESCRIPTION
     Disable Interrupts.

PROTOTYPE....VOID PAS _IntDis(NOARG);

ARGUMENTS....None

RETURNS......None

---------------------------------------------------------------------------

NAME........._IntEna           <TcxlDos.H>

DESCRIPTION
     Enable Interrupts.

PROTOTYPE....VOID PAS _IntEna(NOARG);

ARGUMENTS....None

RETURNS......None


















Page 168                                   TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------

NAME........._OutByt           <TcxlDos.H>

DESCRIPTION
     Output a byte to a hardware port.

PROTOTYPE....VOID PAS _OutByt(WrdT p, IntT b);

ARGUMENTS
  p   -  Port to Write
  b   -  Byte to Write

RETURNS......None

---------------------------------------------------------------------------

NAME........._OutWrd           <TcxlDos.H>

DESCRIPTION
     Output a word to a hardware port.

PROTOTYPE....VOID PAS _OutWrd(WrdT p, WrdT w);

ARGUMENTS
  p   -  Port to Write
  w   -  Word to Write

RETURNS......None





























TesSeRact CXL V5.5 Documentation                                   Page 169
---------------------------------------------------------------------------


                          Bottom Level Functions


                          Video Access Subsystem


                          Direct Hardware Access

---------------------------------------------------------------------------

NAME.........VidOfs            <TcxlVid.H>    Macro

DESCRIPTION
     Convert a row/column coordinate to an offset into the video buffer.

PROTOTYPE....WrdT VidOfs(IntT r, IntT c);

  #define VidOfs(r,c) ((((r)*VidWid)+(c))<<1)

ARGUMENTS
  r   -  Row
  c   -  Column

RETURNS
  Offset into video buffer

---------------------------------------------------------------------------

NAME.........VgetDvb           <_TcxlVid.H>

DESCRIPTION
     Returns alternate buffer segment, if it exists.

PROTOTYPE....WrdT PAS VgetDvb(WrdT v);

ARGUMENTS
  v   -  Assumed Video Buffer

RETURNS
  Actual Video Buffer

---------------------------------------------------------------------------

NAME.........VisaEga           <_TcxlVid.H>

DESCRIPTION
     Determines whether video is an EGA/VGA card.

PROTOTYPE....IntT PAS VisaEga(NOARG);

ARGUMENTS....None

RETURNS
  -1 if not EGA/VGA BIOS, 0 if EGA/VGA/Color, or 1 if EGA/VGA/Mono

Page 170                                   TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------

NAME.........VisaPs2           <_TcxlVid.H>

DESCRIPTION
     Determines whether we have a PS/2 BIOS

PROTOTYPE....IntT PAS VisaPs2(NOARG);

ARGUMENTS....None

RETURNS
  -1 if not a PS/2 bios, else adapter/monitor type.
  Monitor types returned:
      0  - No Display
      1  - Mono/Mono
      2  - CGA/Color
      3  - Reserved
      4  - EGA/Color
      5  - EGA/Mono
      6  - PGA/Color
      7  - VGA/Analog Mono
      8  - VGA/Analog Color

---------------------------------------------------------------------------

NAME.........VsetChr           <_TcxlVid.H>

DESCRIPTION
     Select/load EGA/VGA character-set using AX=<f>

PROTOTYPE....VOID PAS VsetChr(WrdT f);

ARGUMENTS
  f   -  AX value for call

RETURNS......None





















TesSeRact CXL V5.5 Documentation                                   Page 171
---------------------------------------------------------------------------

                            Ultravision Support

---------------------------------------------------------------------------

NAME........._VuvDis           <_TcxlVid.H>

DESCRIPTION
     Disables UltraVision  Video Control.   Restores  video  display  to
     default settings.

PROTOTYPE....VOID PAS _VuvDis(NOARG);

ARGUMENTS....None

RETURNS......None

---------------------------------------------------------------------------

NAME........._VuvEna           <_TcxlVid.H>

DESCRIPTION
     Enables UltraVision, restoring previous UV video parameters.

PROTOTYPE....VOID PAS _VuvEna(NOARG);

ARGUMENTS....None

RETURNS......None

---------------------------------------------------------------------------

NAME........._VuvGet           <_TcxlVid.H>

DESCRIPTION
     Get Ultravision  Mode, initialize  flags.    Called  internally  by
     VidInit().

PROTOTYPE....IntT PAS _VuvGet(NOARG);

ARGUMENTS....None

RETURNS
  UV Text Mode













Page 172                                   TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------

NAME........._VuvSet           <_TcxlVid.H>

DESCRIPTION
     Sets UltraVision text mode.

PROTOTYPE....VOID PAS _VuvSet(IntT md);

ARGUMENTS
  md  -  UV Mode

RETURNS......None

---------------------------------------------------------------------------

NAME........._VuvVal           <_TcxlVid.H>

DESCRIPTION
     Validates UltraVision  text mode.   Used  to determine  whether the
     passed mode  is  valid  for  the  installed  card  and  version  of
     UltraVision.

PROTOTYPE....VOID PAS _VuvVal(IntT md);

ARGUMENTS
  md  -  UV Mode

RETURNS
  0 if mode is valid, -1 if invalid

---------------------------------------------------------------------------

                          Internal Hardware Calls

---------------------------------------------------------------------------

NAME........._VgetN            <_TcxlVid.H>   Macro
............._VgetN_

DESCRIPTION
     Get <n> VcelTs at VposT <v> to <d> via BIOS or DMA,

PROTOTYPE....VOID _VgetN(VcelP p, VposT v, IntT n);
.............VOID PAS _VgetN_(VcelP p, WrdT v, IntT n);

  #define _VgetN(p,v,n) (_VgetN_((p),VposW(v),(n)))











TesSeRact CXL V5.5 Documentation                                   Page 173
---------------------------------------------------------------------------

NAME........._VgetS            <_TcxlVid.H>   Macro
............._VgetS_

DESCRIPTION
     Get <n> chars at VposT <v> to <d>, skipping attrs, via BIOS or DMA.

PROTOTYPE....VOID _VgetS(BytP p, VposT v, IntT n);
.............VOID PAS _VgetS_(BytP p, WrdT v, IntT n);

  #define _VgetS(p,v,n) (_VgetS_((p),VposW(v),(n)))

---------------------------------------------------------------------------

NAME........._VgetW            <_TcxlVid.H>   Macro
............._VgetW_

DESCRIPTION
     Get VcelT at VposT <v> via BIOS or DMA.

PROTOTYPE....VOID _VgetW(VposT v, VcelT x);
.............WrdT PAS _VgetW_(WrdT v);

  #define _VgetW(v,x) (VcelW(x)=_VgetW_(VposW(v)))

---------------------------------------------------------------------------

NAME........._VgetX            <_TcxlVid.H>   Macro
............._VgetX_

DESCRIPTION
     Get VcelT at cursor (BIOS)

PROTOTYPE....VOID _VgetX(VcelT x);
.............WrdT PAS _VgetX_(NOARG);

  #define _VgetX(x) (VcelW(x)=_VgetX_())

---------------------------------------------------------------------------

NAME........._VputA            <_TcxlVid.H>   Macro
............._VputA_

DESCRIPTION
     Put <n>  dup attrs  <a> at  VposT <v>,  skipping chars, via BIOS or
     DMA.

PROTOTYPE....VOID _VputA(VposT v, IntT a, IntT n);
.............VOID PAS _VputA_(WrdT v, IntT a, IntT n);

  #define _VputA(v,a,n) (_VputA_(VposW(v),(a),(n)))






Page 174                                   TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------

NAME........._VputB            <_TcxlVid.H>   Macro
............._VputB_

DESCRIPTION
     Put <n> dup chars <c> and attrs <a> at VposT <v> via BIOS or DMA.

PROTOTYPE....VOID _VputB(VposT v, IntT c, IntT a, IntT n);
.............VOID PAS _VputB_(WrdT v, IntT c, IntT a, IntT n);

  #define _VputB(v,c,a,n) (_VputB_(VposW(v),(c),(a),(n)))

---------------------------------------------------------------------------

NAME........._VputC            <_TcxlVid.H>   Macro
............._VputC_

DESCRIPTION
     Put <n>  dup chars  <c> at  VposT <v>,  skipping attrs, via BIOS or
     DMA.

PROTOTYPE....VOID _VputC(VposT v, IntT c, IntT n);
.............VOID PAS _VputC_(WrdT v, IntT c, IntT n);

  #define _VputC(v,c,n) (_VputC_(VposW(v),(c),(n)))

---------------------------------------------------------------------------

NAME........._VputN            <_TcxlVid.H>   Macro
............._VputN_

DESCRIPTION
     Put <n> VcelTs from <p> at VposT <v> via BIOS or DMA.

PROTOTYPE....VOID _VputN(VposT v, VcelP p, WrdT n);
.............VOID PAS _VputN_(WrdT v, VcelP p, IntT n);

  #define _VputN(v,p,n) (_VputN_(VposW(v),(p),(n)))

---------------------------------------------------------------------------

NAME........._VputS            <_TcxlVid.H>   Macro
............._VputS_

DESCRIPTION
     Put string at <p> with attr <a> at VposT <v> via BIOS or DMA.

PROTOTYPE....VOID _VputS(VposT v, ChrP p,  IntT a);
.............VOID PAS _VputS_(WrdT v, ChrP p, IntT a);

  #define _VputS(v,p,a) (_VputS_(VposW(v),(p),(a)))






TesSeRact CXL V5.5 Documentation                                   Page 175
---------------------------------------------------------------------------

NAME........._VputW            <_TcxlVid.H>   Macro
............._VputW_

DESCRIPTION
     Put <n> dup VcelTs <c> at VposT <v> via BIOS or DMA.

PROTOTYPE....VOID _VputW(VposT v, VcelT c, IntT n);
.............VOID PAS _VputW_(WrdT v, WrdT c, IntT n);

  #define _VputW(v,c,n) (_VputW_(VposW(v),VcelW(c),(n)))

---------------------------------------------------------------------------

NAME........._VputX            <_TcxlVid.H>   Macro
............._VputX_

DESCRIPTION
     Put VcelT <x> at cursor (BIOS)

PROTOTYPE....VOID _VputX(VcelT x);
.............VOID PAS _VputX_(WrdT x);

  #define _VputX(x) (_VputX_(VcelW(x)))

---------------------------------------------------------------------------


                         Keyboard Access Subsystem

---------------------------------------------------------------------------

NAME.........KscnCod           <TcxlKey.H>

DESCRIPTION
     This function  returns the  appropriate scan  code for  the  passed
     ASCII character.

PROTOTYPE....IntT CTYP KscnCod(IntT c);

ARGUMENTS
  c   -  Character to Translate

RETURNS
  Scan code for the character

---------------------------------------------------------------------------

NAME.........KcapOff           <TcxlKey.H>    Macro

DESCRIPTION
     This function turns CapsLock off.

PROTOTYPE....VOID KcapOff(NOARG);

  #define KcapOff() (_KeySet(KEY_CAP, 0))

Page 176                                   TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------

NAME.........KcapOn            <TcxlKey.H>    Macro

DESCRIPTION
     This function turns CapsLock on.

PROTOTYPE....VOID KcapOn(NOARG);

  #define KcapOn() (_KeySet(KEY_CAP, 1))

---------------------------------------------------------------------------

NAME.........KextOff           <TcxlKey.H>    Macro

DESCRIPTION
     This function  turns off support for the enhanced keyboard, if such
     support has already been enabled.

PROTOTYPE....VOID KextOff(NOARG);

  #define KextOff() (KctlFlg &= ~KEY_EXT)

---------------------------------------------------------------------------

NAME.........KextOn            <TcxlKey.H>    Macro

DESCRIPTION
     This function  enables enhanced  keyboard support, if TCXL was able
     to autodetect  the presence of an enhanced keyboard AND an enhanced
     BIOS.

PROTOTYPE....VOID KextOn(NOARG);

  #define KextOn() if(TcxlKey) KctlFlg |= KEY_EXT

---------------------------------------------------------------------------

NAME.........KinsOff           <TcxlKey.H>    Macro

DESCRIPTION
     This function turns Insert off.

PROTOTYPE....VOID KinsOff(NOARG);

  #define KinsOff() (_KeySet(KEY_INS, 0))

---------------------------------------------------------------------------

NAME.........KinsOn            <TcxlKey.H>    Macro

DESCRIPTION
     This function turns Insert on.

PROTOTYPE....VOID KinsOn(NOARG);

  #define KinsOn() (_KeySet(KEY_INS, 1))

TesSeRact CXL V5.5 Documentation                                   Page 177
---------------------------------------------------------------------------

NAME.........KnumOff           <TcxlKey.H>    Macro

DESCRIPTION
     This function turns Numlock off.

PROTOTYPE....VOID KnumOff(NOARG);

  #define KnumOff() (_KeySet(KEY_NUM, 0))

---------------------------------------------------------------------------

NAME.........KnumOn            <TcxlKey.H>    Macro

DESCRIPTION
     This function turns Numlock on.

PROTOTYPE....VOID KnumOn(NOARG);

  #define KnumOn() (_KeySet(KEY_NUM, 1))

---------------------------------------------------------------------------

NAME........._KeyExt           <TcxlKey.H>

DESCRIPTION
     Determine if the machine supports extended BIOS keyboard codes.

PROTOTYPE....IntT PAS _KeyExt(NOARG);

ARGUMENTS....None

RETURNS
  Zero if BIOS doesn't support extended codes
  One if BIOS support exists; also updates _KeyCtl.kflg

---------------------------------------------------------------------------

NAME........._KeyGet           <TcxlKey.H>

DESCRIPTION
     Get the next keystroke from the BIOS.

PROTOTYPE....KeyT PAS _KeyGet(NOARG);

ARGUMENTS....None

RETURNS
  ASCII/ScanCode Pair as returned by INT 16h








Page 178                                   TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------

NAME........._KeyHit           <TcxlKey.H>

DESCRIPTION
     Check to see if a key is waiting from BIOS

PROTOTYPE....IntT PAS _KeyHit(NOARG);

ARGUMENTS....None

RETURNS
  1 if a key is waiting
  0 if no key is waiting

---------------------------------------------------------------------------

NAME........._KeySet           <TcxlKey.H>

DESCRIPTION
     Toggle Keyboard Shift-State

PROTOTYPE....VOID PAS _KeySet(IntT b, IntT s);

ARGUMENTS
  b   -  State to toggle
  s   -  0 means turn off, 1 means turn on

RETURNS......NONE

---------------------------------------------------------------------------

NAME........._KeySta           <TcxlKey.H>

DESCRIPTION
     Returns the status of the keyboard control keys.

PROTOTYPE....WrdT PAS _KeySta(NOARG);

ARGUMENTS....None

RETURNS
  Status Word of the Keyboard Flag















TesSeRact CXL V5.5 Documentation                                   Page 179
---------------------------------------------------------------------------

NAME.........KqueChk           Macro

DESCRIPTION
     This function  determines if  any keystrokes  are  waiting  in  the
     internal keyboard queue.

PROTOTYPE....IntT KqueChk(NOARG);

  #define KqueChk() (KctlCnt > 0)

ARGUMENTS....None

RETURNS
  TRUE if keys are waiting, FALSE otherwise

---------------------------------------------------------------------------

NAME.........KqueClr           <TcxlKey.H>

DESCRIPTION
     Clears the internal keyboard queue.

PROTOTYPE....VOID PAS KqueClr(NOARG);

ARGUMENTS....None

RETURNS......None

---------------------------------------------------------------------------

NAME.........KqueGet           <TcxlKey.H>

DESCRIPTION
     Returns the next keycode from the internal queue.

PROTOTYPE....KeyT PAS KqueGet(NOARG);

ARGUMENTS....None

RETURNS
  Next keycode; 0 if no keys are in queue















Page 180                                   TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------

NAME.........KquePut           <TcxlKey.H>

DESCRIPTION
     Inserts the passed keystroke into the internal keyboard queue.

PROTOTYPE....IntT PAS KquePut(KeyT k);

ARGUMENTS
  k   -  Keystroke to Enqueue

RETURNS
  0 on success, 1 if queue is full

---------------------------------------------------------------------------

NAME.........KqueStr           <TcxlKey.H>

DESCRIPTION
     Inserts the  passed string  into the internal keyboard queue.  This
     is an  ASCII-only string;  scan codes  are inserted  based  on  the
     KscnCod() (Page 176) function.

PROTOTYPE....IntT CTYP KqueStr(ChrP s);
  s   -  String to Enqueue

RETURNS
  0 on success, 1 if queue is full





























TesSeRact CXL V5.5 Documentation                                   Page 181
---------------------------------------------------------------------------

                          Mouse Access Subsystem

---------------------------------------------------------------------------

NAME.........MSclear           <TcxlMou.H>

DESCRIPTION
     Clear mouse button presses and releases and update _MouCtl.

PROTOTYPE....VOID PAS MSclear(NOARG);

ARGUMENTS....None

RETURNS......None










































Page 182                                   TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------

NAME.........MScurs            <TcxlMou.H>

DESCRIPTION
     Sets the  mouse text  cursor type.   The  mouse  cursor  can  be  a
     hardware or softare cursor.  The hardware cursor is the same as the
     normal cursor  you see when you are at the DOS prompt.  Because the
     mouse's hardware  cursor is the same as the normal cursor, they can
     interfere with each other, making this method impractical to use in
     most cases.   The  software mouse  cursor is  a text  box that  can
     reveal the  underlying character.   This is the cursor most used by
     programs including other TCXL mouse support functions.

PROTOTYPE....VOID PAS MScurs(WrdT t, WrdT s, WrdT c);

ARGUMENTS
  t   -  Cursor Type (0=software, 1=hardware)
  s   -  Screen Mask (Software) or Start Scan Line (Hardware)
  c   -  Cursor Mask (Software) or End Scan Line (Hardware)

  If using  a software  cursor, the  screen mask determines which of the
  characters attributes  are preserved.  It is  ANDed  with  the  screen
  character and  attribute (See Appendix A).  The cursor mask is used to
  determine which of the characteristics are changed by the cursor.  The
  cmask is  XORed with  the result  of (smask  AND character-attribute).
  The bit format for both smask and cmask are:

  Bit............Content
  ---............-------
  0-7............ASCII character code
  8-10...........foreground color
  11.............0=intensity off, 1=intensity on
  12-14..........background color
  15.............0=no blink, 1=blink

  The default mouse cursor is "Software, Smask=0xFFFF, Cmask=0x7700".

RETURNS......None



















TesSeRact CXL V5.5 Documentation                                   Page 183
---------------------------------------------------------------------------

NAME.........MSgoto            <TcxlMou.H>

DESCRIPTION
     Sets the mouse cursor coordinates.

PROTOTYPE....VOID PAS MSgoto(IntT r, IntT c);

ARGUMENTS
  r   -  Mouse Row
  c   -  Mouse Column

RETURNS......None

---------------------------------------------------------------------------

NAME.........MShide            <TcxlMou.H>

DESCRIPTION
     Hides the mouse cursor.

PROTOTYPE....VOID PAS MShide(NOARG);

ARGUMENTS....None

RETURNS......None

---------------------------------------------------------------------------

NAME.........MShome            <TcxlMou.H>

DESCRIPTION
     Home the  mouse to  the center of the screen and clear the internal
     counters.

PROTOTYPE....VOID PAS MShome(NOARG);

ARGUMENTS....None

RETURNS......None

---------------------------------------------------------------------------

NAME.........MSinit            <TcxlMou.H>

DESCRIPTION
  Determines if a mouse is present.  If so, initializes mouse to the
  default type, and clears all counters.  This function is automatically
  called during TcxlInit().

PROTOTYPE....IntT PAS MSinit(NOARG);

ARGUMENTS....None

RETURNS
  Nonzero if mouse is present.

Page 184                                   TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------

NAME.........MSkeys            <TcxlMou.H>

DESCRIPTION
     Assigns  key-bindings  to  mouse  buttins,  for  use  with  MOU_KEY
     support.

PROTOTYPE....VOID PAS MSkeys(KeyT l, KeyT r, KeyT m);

ARGUMENTS
  l   -  KeyCode for Left Button (Default [Enter])
  r   -  KeyCode for Right Button (Default [Esc])
  m   -  KeyCode for Middle Button (Default [F1])

RETURNS......None

---------------------------------------------------------------------------

NAME.........MSlimit           <TcxlMou.H>

DESCRIPTION
     Sets the  mouse's upper  and lower  horizontal boundaries, and also
     sets the left and right vertical boundaries.

PROTOTYPE....VOID PAS MSlimit(IntT sr, IntT sc, IntT er, IntT ec);

ARGUMENTS
  sr  -  Upper Row Boundary
  sc  -  Left Column Boundary
  er  -  Bottom Row Boundary
  ec  -  Right Column Boundary

RETURNS......None

---------------------------------------------------------------------------

NAME.........MSmove            <TcxlMou.H>

DESCRIPTION
     Update _MouCtl with info about the movement of the mouse.

PROTOTYPE....VOID PAS MSmove(NOARG);

ARGUMENTS....None

RETURNS......None











TesSeRact CXL V5.5 Documentation                                   Page 185
---------------------------------------------------------------------------

NAME.........MSpop             <TcxlMou.H>

DESCRIPTION
     Pop and  return pushed mouse support level and cursor position from
     _MouCtl.

PROTOTYPE....IntT PAS MSpop(NOARG);

ARGUMENTS....None

RETURNS......None

---------------------------------------------------------------------------

NAME.........MSpress           <TcxlMou.H>

DESCRIPTION
     Update _MouCtl with info about mouse button presses.

PROTOTYPE....VOID PAS MSpress(IntT b);

ARGUMENTS
  b   -  Button (0=left, 1=right, 2=middle)

RETURNS......None

---------------------------------------------------------------------------

NAME.........MSpush            <TcxlMou.H>

DESCRIPTION
     Push current mouse support-level and cursor position in _MouCtl and
     replace with passed parameter.

PROTOTYPE....VOID PAS MSpush(IntT m);

ARGUMENTS
  m   -  New Mouse Support-Level
      (See Appendix C [Mouse Access Subsystem])

RETURNS......None















Page 186                                   TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------

NAME.........MSreles           <TcxlMou.H>

DESCRIPTION
     Update _MouCtl with info about mouse button releases.

PROTOTYPE....VOID PAS MSreles(IntT b);

ARGUMENTS
  b   -  Button (0=left, 1=right, 2=middle)

RETURNS......None

---------------------------------------------------------------------------

NAME.........MSshow            <TcxlMou.H>    Macro

DESCRIPTION
     Reveals the hidden mouse cursor.

PROTOTYPE....VOID MSshow(VOID);

  #define MSshow() (_MSsho(0))

ARGUMENTS....None

RETURNS......None

---------------------------------------------------------------------------

NAME.........MSspeed           <TcxlMou.H>

DESCRIPTION
     Adjusts the mouse's speed by changing its sensitivity.

PROTOTYPE....VOID PAS MSspeed(IntT x, IntT y);

ARGUMENTS
  x   -  Horizontal Speed (higher numbers are slower)
  y   -  Vertical Speed (higher numbers are slower)

RETURNS......None















TesSeRact CXL V5.5 Documentation                                   Page 187
---------------------------------------------------------------------------

NAME.........MSstat            <TcxlMou.H>

DESCRIPTION
     Update _MouCtl with current mouse position and status.

PROTOTYPE....VOID PAS MSstat(NOARG);

ARGUMENTS....None

RETURNS......None

---------------------------------------------------------------------------

NAME.........MSterm            <TcxlMou.H>

DESCRIPTION
     This function  is called  automatically by TcxlTerm() (Page 142) to
     reset the mouse before terminating the program.

PROTOTYPE....VOID PAS MSterm(NOARG);

ARGUMENTS....None

RETURNS......None

---------------------------------------------------------------------------

NAME.........MSupdat           <TcxlMou.H>

DESCRIPTION
     Conditionally hide  mouse cursor  for conditional  update of screen
     area.

PROTOTYPE....VOID PAS MSupdat(IntT sr, IntT sc, IntT er, IntT ec);

ARGUMENTS
  sr  -  Upper Row Boundary
  sc  -  Left Column Boundary
  er  -  Bottom Row Boundary
  sc  -  Right Column Boundary

RETURNS......None














Page 188                                   TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------

NAME........._MSget            <TcxlMou.H>

DESCRIPTION
     Internal routine to get current cursor position and update _MouCtl.

PROTOTYPE....VOID PAS _MSget(NOARG);

ARGUMENTS....None

RETURNS......None

---------------------------------------------------------------------------

NAME........._MSpos            <TcxlMou.H>

DESCRIPTION
     Internal routine  to position mouse cursor at coordinates stored in
     _MouCtl.

PROTOTYPE....VOID PAS _MSpos(NOARG);

ARGUMENTS....None

RETURNS......None

---------------------------------------------------------------------------

NAME........._MSset            <TcxlMou.H>

DESCRIPTION
     Internal routine  to call  mouse software-reset,  and force  cursor
     limits to full size of screen as deliminated in BIOS data area.

PROTOTYPE....VOID PAS _MSset(NOARG);

ARGUMENTS....None

RETURNS......None


















TesSeRact CXL V5.5 Documentation                                   Page 189
---------------------------------------------------------------------------

NAME........._MSsho            <TcxlMou.H>

DESCRIPTION
     Internal routine  to reveal  the hidden  mouse cursor.   If  passed
     parameter is  non-zero, only  show cursor  if MOU_CURS.    Also  if
     MOU_CURS,  update cursor mask.

PROTOTYPE....VOID PAS _MSsho(IntT s);

ARGUMENTS
  s   -  Flag value (see description)

RETURNS......None

---------------------------------------------------------------------------


                         Internal Level Functions


                           Conversion Subsystem

---------------------------------------------------------------------------

NAME.........cvtcf             <TcxlCvt.H>

DESCRIPTION
     Converts a TCXL field string to a floating point number.

PROTOTYPE....DblT CTYP cvtcf(ChrP fp);

ARGUMENTS
  fp  -  Pointer to TCXL field string with embedded decimal

RETURNS
  A double precision floating point number.

---------------------------------------------------------------------------

NAME.........cvtci             <TcxlCvt.H>

DESCRIPTION
     Converts a TCXL field string to an integer.

PROTOTYPE....IntT CTYP cvtci(ChrP fp);

ARGUMENTS
  fp  -  Pointer to TCXL field string

RETURNS
  An integer number.





Page 190                                   TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------

NAME.........cvtfc             <TcxlCvt.H>

DESCRIPTION
     Converts a floating point number to a TCXL field string.

PROTOTYPE....VOID CTYP cvtfc(ChrP fp, DblT dv, IntT fw, IntT nd);

ARGUMENTS
  fp  -  Pointer to TCXL field string
  dv  -  Floating point number to convert
  ws  -  field width
  nd  -  number of decimal places to convert

RETURNS......None

---------------------------------------------------------------------------

NAME.........cvtic             <TcxlCvt.H>

DESCRIPTION
     Converts an integer to a TCXL field string.

PROTOTYPE....VOID CTYP cvtic(ChrP fp, IntT iv, IntT fs);

ARGUMENTS
  fp  -  Pointer to TCXL field string
  iv  -  integer value to convert
  fs  -  field size

RETURNS......None

---------------------------------------------------------------------------

NAME.........touplow           <TcxlCvt.H>

DESCRIPTION
     Converts a  character to  upper or  lowercase depending on previous
     character.    This  function  is  used  internally  by  other  TCXL
     functions.

PROTOTYPE....IntT CTYP touplow(ChrP s, ChrP p, IntT c);

ARGUMENTS
  s   -  Pointer to string to base conversion on
  p   -  Pointer to current position in string
  c   -  Character to convert

RETURNS
  The converted character.

SEE ALSO
  struplow (Page 141)




TesSeRact CXL V5.5 Documentation                                   Page 191
---------------------------------------------------------------------------

                         Format Control Subsystem

---------------------------------------------------------------------------

NAME.........FmtBack           <TcxlFmt.H>

DESCRIPTION
     Backspace TCXL format string and output pointer.

PROTOTYPE....VOID CTYP FmtBack(ChrI f, ChrI o);

ARGUMENTS
  f   -  Pointer to Format String (See Appendix E)
  o   -  Pointer to Output String

RETURNS......None

---------------------------------------------------------------------------

NAME.........FmtChar           <TcxlFmt.H>

DESCRIPTION
     Checks given  character against  a given  TCXL character type code,
     and determines  if that  character is  valid for  that type.   This
     function is used internally by several TCXL functions.

PROTOTYPE....IntT CTYP FmtChar(IntT c, IntT f);

ARGUMENTS
  c   -  character to test
  f   -  character type code to compare with (See Appendix E)

RETURNS
  0  - character is not valid for given type code
  1  - character is valid for given type code

---------------------------------------------------------------------------

NAME.........FmtExcl           <TcxlFmt.H>

DESCRIPTION
     Search  TCXL  format-string  "[]"  exclusion  set  for  the  passed
     character.  Update   passed  pointer  past  ']'  and  return  1  if
     character is  not in  set, else return 0 and leave pointer for next
     char. Assumes  valid format-string.

PROTOTYPE....IntT CTYP FmtExcl(ChrI f, IntT c);

ARGUMENTS
  f   -  Exclusion Set
  c   -  Character to search for

RETURNS
  1   -  Character Not Found In Set; 'f' updated past validation list
  0   -  Character Found

Page 192                                   TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------

NAME.........FmtFlip           <TcxlFmt.H>

DESCRIPTION
     Modifies a format option bit.

PROTOTYPE....VOID CTYP FmtFlip(IntT c);

ARGUMENTS
  c   -  Format option to change.

RETURNS......None

---------------------------------------------------------------------------

NAME.........FmtIncl           <TcxlFmt.H>

DESCRIPTION
     Search  TCXL  format-string  "<>"  inclusion  set  for  the  passed
     character.  Update   passed  pointer  past  ']'  and  return  1  if
     character is in set, else return 0 and leave pointer for next char.
     Assumes  valid format-string.

PROTOTYPE....IntT CTYP FmtIncl(ChrI f, IntT c);

ARGUMENTS
  f   -  Inclusion Set
  c   -  Character To Search For

RETURNS
  1   -  Character Found In Set; 'f' updated past validation list
  0   -  Character Not Found

---------------------------------------------------------------------------

NAME.........FmtInit           <TcxlFmt.H>

DESCRIPTION
     Verify TCXL  format string  against passed  usage.    Return  0  on
     failure, else set globals FmtOpt and FmtUse and return field length
     on success.

PROTOTYPE....IntT CTYP FmtInit(ChrP f, IntT u);

ARGUMENTS
  f   -  Format String (See Appendix E)
  u   -  Usage

RETURNS
  Field length, or Zero on failure







TesSeRact CXL V5.5 Documentation                                   Page 193
---------------------------------------------------------------------------

NAME.........FmtPutF           <TcxlFmt.H>    Macro

DESCRIPTION
     Sets internal backspace function for FmtBack();

PROTOTYPE....VOID FmtPutF(VfiCP f);

  #define FmtPutF(f) (FmtPut = (f))

ARGUMENTS
  f   -  Backspace Function

RETURNS......None

---------------------------------------------------------------------------

                            Near/Far Subsystem


There are  three basic  functions  used  here.  _FarCpy(),  _FarGet(),  and
_FarPut().   Each function  is  aliased  to  allow  direct  access  by  far
pointers, rather  than just  through segment:offset combinations.  There is
no additional  code used  for the aliases, so feel free to use whichever is
most convenient for your purposes.

---------------------------------------------------------------------------

NAME.........MK_FP             <TcxlFar.H>    Macro
.............MK_FPT            Macro

DESCRIPTION
     These macros  are used  to create  far pointers from segment/offset
     combinations.   MK_FP creates  an anonymous  pointer (void  far *),
     while MK_FPT  creats a "typed" far pointer, necessary in C++, since
     C++ does not permit assigning a VOID to a typed pointer.

PROTOTYPE....MK_FP(s, o)
.............MK_FPT(t, s, o)

ARGUMENTS
  s   -  Segment Value
  o   -  Offset Value
  t   -  Type to cast return pointer

RETURNS
  FAR pointer to object










Page 194                                   TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------

NAME........._FarCpy           <TcxlFar.H>
............._CpyFar
     These functions  are used  to copy  data from  one far  pointer  to
     another.

PROTOTYPE....VOID PAS _FarCpy(WrdT st, WrdT ot, WrdT sf, WrdT of, WrdT n);
  VOID PAS _CpyFar(BytFP t, BytFP f, WrdT n);

ARGUMENTS
  st  -  Destination Segment
  ot  -  Destination Offset
  t   -  Far Pointer to Destination
  sf  -  Source Segment
  of  -  Source Offset
  f   -  Far Pointer to Source
  n   -  Number of Bytes to copy

RETURNS......None

---------------------------------------------------------------------------

NAME........._FarGet           <TcxlFar.H>
............._GetFar

DESCRIPTION
     These functions  will copy  the specified  number of  bytes from an
     explicit far  pointer to  a pointer  of the  correct size  for  the
     current memory model (either near or far).

PROTOTYPE....VOID PAS _FarGet(BytP p, WrdT s, WrdT o, WrdT n);
  VOID PAS _GetFar(BytP p, BytFP f, WrdT n);

ARGUMENTS
  p   -  Destination Pointer
  s   -  Source Segment
  o   -  Source Offset
  f   -  Far Pointer to Source
  n   -  Number of Characters to copy

RETURNS......None
















TesSeRact CXL V5.5 Documentation                                   Page 195
---------------------------------------------------------------------------

NAME........._FarPut           <TcxlFar.H>
............._PutFar

DESCRIPTION
     These functions  will copy  the specified  number of  bytes from  a
     pointer of  the correct  size for  the current memory model (either
     near or far) to an explicit far pointer.

PROTOTYPE....VOID PAS _FarPut(WrdT s, WrdT o, BytP p, WrdT n);
  VOID PAS _PutFar(BytFP t, BytP p, WrdT n);

ARGUMENTS
  s   -  Destination Segment
  o   -  Destination Offset
  t   -  Far Pointer to Destination
  p   -  Source Pointer
  n   -  Number of Characters to copy

RETURNS......None





































Page 196                                   TesSeRact CXL V5.5 Documentation

[ RETURN TO DIRECTORY ]