{
  "disks": {
    "1": {
      "dirs": [
        {
          "path": "/",
          "files": [
            {
              "name": "README   DOC",
              "size": 28389,
              "date": "1989-03-31",
              "time": "6:00"
            },
            {
              "name": "PACKING  LST",
              "size": 7805,
              "date": "1989-03-31",
              "time": "6:00"
            },
            {
              "name": "ISRESERV DOC",
              "size": 2424,
              "date": "1989-03-31",
              "time": "6:00"
            },
            {
              "name": "INCLUDE",
              "dir": true,
              "date": "1991-05-15",
              "time": "19:27"
            },
            {
              "name": "LIB",
              "dir": true,
              "date": "1991-05-15",
              "time": "19:27"
            },
            {
              "name": "EXAMPLES",
              "dir": true,
              "date": "1991-05-15",
              "time": "19:30"
            },
            {
              "name": "UTILITY",
              "dir": true,
              "date": "1991-05-15",
              "time": "19:31"
            }
          ]
        },
        {
          "path": "/INCLUDE",
          "files": [
            {
              "name": "BEDIT    H",
              "size": 8547,
              "date": "1989-03-31",
              "time": "6:00"
            },
            {
              "name": "BFILES   H",
              "size": 2245,
              "date": "1989-03-31",
              "time": "6:00"
            },
            {
              "name": "BGENWIN  H",
              "size": 738,
              "date": "1989-03-31",
              "time": "6:00"
            },
            {
              "name": "BHELP    H",
              "size": 9098,
              "date": "1989-03-31",
              "time": "6:00"
            },
            {
              "name": "BINTERV  H",
              "size": 10195,
              "date": "1989-03-31",
              "time": "6:00"
            },
            {
              "name": "BINTRUPT H",
              "size": 7067,
              "date": "1989-03-31",
              "time": "6:00"
            },
            {
              "name": "BKEYBRD  H",
              "size": 7164,
              "date": "1989-03-31",
              "time": "6:00"
            },
            {
              "name": "BKEYS    H",
              "size": 22757,
              "date": "1989-03-31",
              "time": "6:00"
            },
            {
              "name": "BLAISE   H",
              "size": 1551,
              "date": "1989-03-31",
              "time": "6:00"
            },
            {
              "name": "BMEM     H",
              "size": 1513,
              "date": "1989-03-31",
              "time": "6:00"
            },
            {
              "name": "BMENU    H",
              "size": 13649,
              "date": "1989-03-31",
              "time": "6:00"
            },
            {
              "name": "BMOUSE   H",
              "size": 8808,
              "date": "1989-03-31",
              "time": "6:00"
            },
            {
              "name": "BNATVWN  H",
              "size": 729,
              "date": "1989-03-31",
              "time": "6:00"
            },
            {
              "name": "BPRINT   H",
              "size": 3110,
              "date": "1989-03-31",
              "time": "6:00"
            },
            {
              "name": "BSCREENS H",
              "size": 10863,
              "date": "1989-03-31",
              "time": "6:00"
            },
            {
              "name": "BSTRINGS H",
              "size": 1650,
              "date": "1989-03-31",
              "time": "6:00"
            },
            {
              "name": "BUTIL    H",
              "size": 17459,
              "date": "1989-03-31",
              "time": "6:00"
            },
            {
              "name": "BVIDEO   H",
              "size": 2820,
              "date": "1989-03-31",
              "time": "6:00"
            },
            {
              "name": "BWINDOW  H",
              "size": 34538,
              "date": "1989-03-31",
              "time": "6:00"
            },
            {
              "name": "INCLUDE  FIL",
              "size": 155,
              "date": "1989-03-31",
              "time": "6:00"
            }
          ]
        },
        {
          "path": "/LIB",
          "files": [
            {
              "name": "TCT_T2S  LIB",
              "size": 134144,
              "date": "1989-03-31",
              "time": "6:00"
            },
            {
              "name": "BNOMOUSE OBJ",
              "size": 261,
              "date": "1989-03-31",
              "time": "6:00"
            },
            {
              "name": "NW_T2S   OBJ",
              "size": 937,
              "date": "1989-03-31",
              "time": "6:00"
            },
            {
              "name": "NW_T2M   OBJ",
              "size": 951,
              "date": "1989-03-31",
              "time": "6:00"
            },
            {
              "name": "NW_T2C   OBJ",
              "size": 1001,
              "date": "1989-03-31",
              "time": "6:00"
            },
            {
              "name": "NW_T2L   OBJ",
              "size": 1039,
              "date": "1989-03-31",
              "time": "6:00"
            },
            {
              "name": "TCT_T2M  LIB",
              "size": 138240,
              "date": "1989-03-31",
              "time": "6:00"
            },
            {
              "name": "TCT_T2C  LIB",
              "size": 151040,
              "date": "1989-03-31",
              "time": "6:00"
            },
            {
              "name": "TCT_T2L  LIB",
              "size": 155136,
              "date": "1989-03-31",
              "time": "6:00"
            }
          ]
        },
        {
          "path": "/EXAMPLES",
          "files": [
            {
              "name": "CMKEY    C",
              "size": 9352,
              "date": "1989-03-31",
              "time": "6:00"
            },
            {
              "name": "CRITERR  C",
              "size": 7000,
              "date": "1989-03-31",
              "time": "6:00"
            },
            {
              "name": "CTLBRK   C",
              "size": 2728,
              "date": "1989-03-31",
              "time": "6:00"
            },
            {
              "name": "DEMOEDT  C",
              "size": 1819,
              "date": "1989-03-31",
              "time": "6:00"
            },
            {
              "name": "ENTRYEDT C",
              "size": 10423,
              "date": "1989-03-31",
              "time": "6:00"
            },
            {
              "name": "ISCLOCK  C",
              "size": 7789,
              "date": "1989-03-31",
              "time": "6:00"
            },
            {
              "name": "IVCLOCK  C",
              "size": 6724,
              "date": "1989-03-31",
              "time": "6:00"
            },
            {
              "name": "KEYCTRL  C",
              "size": 2569,
              "date": "1989-03-31",
              "time": "6:00"
            },
            {
              "name": "MENU     C",
              "size": 20993,
              "date": "1989-03-31",
              "time": "6:00"
            },
            {
              "name": "MNEXAMPL C",
              "size": 2991,
              "date": "1989-03-31",
              "time": "6:00"
            },
            {
              "name": "MOUSEHAN C",
              "size": 6987,
              "date": "1989-03-31",
              "time": "6:00"
            },
            {
              "name": "NOANSI   C",
              "size": 6064,
              "date": "1989-03-31",
              "time": "6:00"
            },
            {
              "name": "NORMFILE C",
              "size": 3355,
              "date": "1989-03-31",
              "time": "6:00"
            },
            {
              "name": "PULLMENU C",
              "size": 15984,
              "date": "1989-03-31",
              "time": "6:00"
            },
            {
              "name": "SHOWHELP C",
              "size": 1475,
              "date": "1989-03-31",
              "time": "6:00"
            },
            {
              "name": "SHOWHELP TXT",
              "size": 2263,
              "date": "1989-03-31",
              "time": "6:00"
            },
            {
              "name": "SHOWHELP HLP",
              "size": 2116,
              "date": "1989-03-31",
              "time": "6:00"
            },
            {
              "name": "TCWIN    C",
              "size": 3182,
              "date": "1989-03-31",
              "time": "6:00"
            },
            {
              "name": "MAKTCWIN BAT",
              "size": 1325,
              "date": "1989-03-31",
              "time": "6:00"
            },
            {
              "name": "WINKEY   C",
              "size": 8895,
              "date": "1989-03-31",
              "time": "6:00"
            },
            {
              "name": "WNEXAMPL C",
              "size": 2300,
              "date": "1989-03-31",
              "time": "6:00"
            },
            {
              "name": "EXAMPLES FIL",
              "size": 196,
              "date": "1989-03-31",
              "time": "6:00"
            },
            {
              "name": "MAKEXPLS",
              "size": 1517,
              "date": "1989-03-31",
              "time": "6:00"
            },
            {
              "name": "NOANSI   EXE",
              "size": 16970,
              "date": "1989-03-31",
              "time": "6:00"
            },
            {
              "name": "EXAMPLES",
              "dir": true,
              "date": "1991-06-07",
              "time": "10:03"
            }
          ]
        },
        {
          "path": "/UTILITY",
          "files": [
            {
              "name": "BUILDHLP EXE",
              "size": 62156,
              "date": "1989-03-31",
              "time": "6:00"
            },
            {
              "name": "CONCAT   COM",
              "size": 28402,
              "date": "1989-03-31",
              "time": "6:00"
            },
            {
              "name": "EXPAND   COM",
              "size": 12829,
              "date": "1989-03-31",
              "time": "6:00"
            },
            {
              "name": "CONCAT   PRT",
              "size": 1,
              "date": "1989-02-20",
              "time": "0:24"
            }
          ]
        }
      ]
    },
    "2": {
      "dirs": [
        {
          "path": "/",
          "files": [
            {
              "name": "TCTSRC1  EXE",
              "size": 360783,
              "date": "1989-03-31",
              "time": "6:00"
            },
            {
              "name": "TCTSRC2  EXE",
              "size": 167877,
              "date": "1989-03-31",
              "time": "6:00"
            },
            {
              "name": "INSDBTCT EXE",
              "size": 304083,
              "date": "1989-03-31",
              "time": "6:00"
            },
            {
              "name": "EXAMPLES",
              "dir": true,
              "date": "1991-06-10",
              "time": "15:12"
            }
          ]
        },
        {
          "path": "/EXAMPLES",
          "files": [
            {
              "name": "ISCLOCK  EXE",
              "size": 26498,
              "date": "1989-03-31",
              "time": "6:00"
            },
            {
              "name": "IVCLOCK  EXE",
              "size": 26375,
              "date": "1989-03-31",
              "time": "6:00"
            },
            {
              "name": "MENU     EXE",
              "size": 49710,
              "date": "1989-03-31",
              "time": "6:00"
            },
            {
              "name": "MNEXAMPL EXE",
              "size": 38681,
              "date": "1989-03-31",
              "time": "6:00"
            },
            {
              "name": "PULLMENU EXE",
              "size": 43833,
              "date": "1989-03-31",
              "time": "6:00"
            },
            {
              "name": "WNEXAMPL EXE",
              "size": 25334,
              "date": "1989-03-31",
              "time": "6:00"
            },
            {
              "name": "TCWIN    EXE",
              "size": 27140,
              "date": "1989-03-31",
              "time": "6:00"
            }
          ]
        }
      ]
    }
  },
  "desc_file": "README.DOC",
  "desc_text": "\r\n\r\nTurbo C TOOLS/2.0                                                Version 6.00\r\n\r\n\r\n                             Turbo C TOOLS/2.0\r\n\r\n                               Version 6.00\r\n                              March 31, 1989\r\n\r\n\r\nThis document provides information on the installation and  use  of  Turbo  C\r\nTOOLS/2.0.  It should be used as a supplement to the manual.  Please read the \r\nIntroduction  and  \"Using  Turbo C TOOLS\" in the manual.  Then read this file\r\nfor information specific to your C compiler and to this version  of  Turbo  C\r\nTOOLS.  \r\n\r\nCopyright (C) Blaise Computing Inc. 1989.  All rights reserved.  \r\n\r\nThe  PACKING.LST  file  lists  the  files  supplied  and  the  diskettes  and\r\nsubdirectories where they reside.  \r\n\r\n                           OUTLINE OF THIS FILE\r\n\r\nCompiler Versions and Memory Models Supported\r\nManual Changes\r\nWarnings and Usage Notes\r\nTroubleshooting\r\nExtracting the Source Code\r\nPrinting the Source Code\r\nRemoving Tabs From the Source Code\r\nRebuilding the Libraries\r\nRebuilding the Sample Programs\r\nC and Assembly Modules and Macros\r\nConstruction Notes\r\n\r\n               COMPILER VERSIONS AND MEMORY MODELS SUPPORTED\r\n\r\nThis version of Turbo C TOOLS supports Turbo C versions 1.00, 1.50, and 2.00.  \r\nFor information about later versions of  the  Turbo  C  compiler,  check  the\r\nbulletins enclosed with Turbo C TOOLS or contact Blaise Computing.  \r\n\r\nTiny  (T)  model:   Turbo  C  TOOLS  does not officially support the T model.\r\nHowever, many  modules  in  the  S  model  library  (TCT_T2S.LIB)  will  work\r\ncorrectly in T model programs.  \r\n\r\nHuge (H) model:  For many programs using the H model, you can use the L model \r\nlibrary  (TCT_T2L.OBJ),  especially  if  they  contain  no  interrupt service\r\nroutines (ISRs) or intervention code.  However, if you need support for  data\r\nobjects  larger  than  65,535  bytes  or  if  your program malfunctions, then\r\nrecompile the  library  using  the  H  memory  model.   See  \"Rebuilding  the\r\nLibraries\" below.  \r\n\r\nThe following files are specific to particular memory models.  The same files \r\nsupport  Turbo  C versions 1.00, 1.50, and 2.00, with a few exceptions listed\r\nbelow under \"Warnings and  Usage  Notes\".   The  columns  of  the  table  are\r\nexplained below.  \r\n\r\n\r\n\r\n\r\n\r\n\r\nBlaise Computing Inc.         March 31, 1989                          Page  1\r\n\r\n\r\n\r\n\r\nTurbo C TOOLS/2.0                                                Version 6.00\r\n\r\n\r\n                               \"Native                   \"No Mouse\r\n   Memory Model  Library       Windows\"   COMPILER.MAC    Support\"\r\n   ------------  -----------  ----------  ------------  ------------\r\n   S             TCT_T2S.LIB  NW_T2S.OBJ  COMP_T2S.MAC  BNOMOUSE.OBJ\r\n   M             TCT_T2M.LIB  NW_T2M.OBJ  COMP_T2M.MAC  BNOMOUSE.OBJ\r\n   C             TCT_T2C.LIB  NW_T2C.OBJ  COMP_T2C.MAC  BNOMOUSE.OBJ\r\n   L             TCT_T2L.LIB  NW_T2L.OBJ  COMP_T2L.MAC  BNOMOUSE.OBJ\r\n\r\nMemory  Model:   This  affects the maximum data and code size in your program\r\n   and the nature of data and code  pointers.   In  the  Turbo  C  Integrated\r\n   Environment   (TC.EXE),   the   memory   model   is   specified   via  the\r\n   Options/Compiler/Model switch; the default is S model unless  you  save  a\r\n   different  configuration.   With  the  command-line version (TCC.EXE), the\r\n   memory model is specified via the /m command line switch; the default is S \r\n   model.  \r\nLibrary:  These files are precompiled versions  of  all  the  Turbo  C  TOOLS\r\n   functions.   To  link  them into your programs, specify the proper library\r\n   file on the compiler or linker command line or in your project file.  \r\n\"Native Windows\" file:   Programs  linked  with  this  optional  object  file\r\n   coordinate all their Turbo C TOOLS window operations with the Turbo C text \r\n   window.   This  object  file requires Turbo C version 1.50 or later.  Read\r\n   the section on \"Turbo C's Text Window\" in the chapter on window  functions\r\n   (prefix WN).  \r\nCOMPILER.MAC  file:   This  specifies  the  memory  model for Turbo C modules\r\n   written in assembly language.  If you reassemble  any  Turbo  C  assembler\r\n   modules, first copy the correct file to COMPILER.MAC.  \r\n\"No  Mouse  Support\"  file:   Programs linked with BNOMOUSE.OBJ are prevented\r\n   from including the mouse functions MOCHECK, MOHIDE, and MOPRECLK.  If your \r\n   program uses menus, WNREAD, or the help system, and if you don't  want  to\r\n   use  the  mouse,  then  linking  with  BNOMOUSE.OBJ will make your program\r\n   slightly smaller.  Notice that the same  BNOMOUSE.OBJ  file  supports  all\r\n   memory models.  \r\n\r\n                              MANUAL CHANGES\r\n\r\nThe  following are important changes to the manual.  The changes have already\r\nbeen made in the online reference database.  \r\n\r\nPages 36 (WNEXAMPL.C) and 54 (MNEXAMPL.C) -- The constants CYAN  and  MAGENTA\r\n   should be replaced by SC_CYAN and SC_MAGENTA, respectively.  \r\nPage 60 -- The MN_NOWRAP action bit has been added.  Its bit value is 0x4000.  \r\n   It  has  the  effect  of  suppressing  wraparound  for the MN_UP, MN_DOWN,\r\n   MN_RIGHT, MN_LEFT, MN_NEXT, and MN_PREVIOUS motions.  \r\n\r\n   The following motions have been added:  \r\n\r\n      Symbol      Value  Motion\r\n      ----------  -----  ------------------------------------------\r\n      MN_PGUP     0x00a  Move upward    the height of the viewport.\r\n      MN_PGDN     0x00b  Move downward  the height of the viewport.\r\n      MN_PGRIGHT  0x00c  Move rightward the width  of the viewport.\r\n      MN_PGLEFT   0x00d  Move leftward  the width  of the viewport.\r\n\r\n\r\n\r\n\r\n\r\n\r\nBlaise Computing Inc.         March 31, 1989                          Page  2\r\n\r\n\r\n\r\n\r\nTurbo C TOOLS/2.0                                                Version 6.00\r\n\r\n\r\nPage 61 -- The following default key assignments have been added:  \r\n\r\n      Keystroke          ASCII value  Key code  Action(s)    Motion\r\n      ----------------   -----------  --------  ---------    -----------\r\n      PgUp                    0          73                  MN_PGUP\r\n      PgDn                    0          81                  MN_PGDN\r\n      Ctrl-right arrow        0         116                  MN_PGRIGHT\r\n      Ctrl-left arrow         0         115                  MN_PGLEFT\r\n      \r\n      Enhanced Keyboard:\r\n      \r\n      PgUp                  224          73                  MN_PGUP\r\n      PgDn                  224          81                  MN_PGDN\r\n      Ctrl-right arrow      224         116                  MN_PGRIGHT\r\n      Ctrl-left arrow       224         115                  MN_PGLEFT\r\n      Enter                  13         224                  MN_TRANSMIT\r\n\r\nPage 75 -- The sample help source file  you  should  study  is  SHOWHELP.TXT.\r\n   SHOWHELP.HLP is its binary version.  \r\nPage  126 -- To use malloc() inside a TSR program, you can use a new function\r\n   called ISRESERV instead of the cumbersome method described in the  manual.\r\n   Read the description of ISRESERV in the ISRESERV.DOC file or in the online \r\n   reference database.  \r\n\r\n   ISRESERV  is useful for the near heap in the T, S, and M memory models and\r\n   the far heap in the C, L, and H models.  To reserve space on the far  heap\r\n   in  the  T, S, and M models, create a new function based on ISRESERV.C and\r\n   in the new function replace  malloc()  and  free()  with  farmalloc()  and\r\n   farfree(), respectively.  \r\nPage  156 (EDFIELD) -- There is an additional fifth argument:  \"pfinal\".  The\r\n   calling sequence now is:  \r\n\r\n      int edfield(const char       *pinitstr,\r\n                  char             *pretstr,\r\n                  int               retsize,\r\n                  const ED_CONTROL *pctrl,\r\n                  KEY_SEQUENCE     *pfinal);\r\n\r\n   \"pfinal\" is the address of a  structure  in  which  to  report  the  final\r\n   keystroke, or NIL if no report is desired.  \r\nPages  183  (HLDISP)  and 190 (HLREAD) -- If the \"pfinal\" argument is the NIL\r\n   pointer, then no information is returned via \"pfinal\",  and  the  returned\r\n   value  of  the  function  is always NIL, regardless of whether an error is\r\n   detected.  \r\nPages 231 (KBQUERY) and 467 (WNQUERY) -- The  value  returned  in  *pkey  has\r\n   changed:   now  it  is  always the key code (scan code) of the terminating\r\n   keystroke.  The value of the function is always the character code of  the\r\n   terminating keystroke.  \r\nPages  254  (MNDSTROY)  and  480  (WNREMOVE) -- When setting the Turbo C text\r\n   window to the entire screen, the text color is not changed.  Therefore the \r\n   text color may remain the same as the last selected window.  \r\nPage 371 (STPEXPAN)  --  None  of  its  arguments  should  have  the  \"const\"\r\n   modifier.  \r\nPage  412 (UTSQZSCN) -- The data type of the \"psource\" argument is now \"const\r\n   char far *\".  \r\n\r\n\r\n\r\nBlaise Computing Inc.         March 31, 1989                          Page  3\r\n\r\n\r\n\r\n\r\nTurbo C TOOLS/2.0                                                Version 6.00\r\n\r\n\r\nPage 421 (UTUNSQZ) -- The data type of the \"psource\" argument is  now  \"const\r\n   char *\".  \r\nPage  454  (WNFIELD)  -- WNFIELD returns an immediate error if any portion of\r\n   the window's viewport is covered by  any  other  viewport.   There  is  an\r\n   additional sixth argument:  \"pfinal\".  The calling sequence now is:  \r\n\r\n      int wnfield(BWINDOW          *pwin,\r\n                  const char       *pinitstr,\r\n                  char             *pretstr,\r\n                  int               retsize,\r\n                  const ED_CONTROL *pctrl,\r\n                  KEY_SEQUENCE     *pfinal);\r\n\r\n   \"pfinal\"  is  the  address  of  a  structure  in which to report the final\r\n   keystroke, or NIL if no report is desired.  \r\nPage 472 (WNREAD) -- A new argument called  \"pfinal\"  has  been  added.   The\r\n   calling sequence is now as follows:  \r\n\r\n      WN_EVENT *wnread(BWINDOW      *pwin,\r\n                       const WHERE  *pwhere,\r\n                       int           view_ht, int view_wid,\r\n                       int           org_row, int org_col,\r\n                       const BORDER *pbord,\r\n                       WN_EVENT     *pfinal,\r\n                       int           option);\r\n\r\n   \"pfinal\"  is  the  address  of  a structure to receive a copy of the final\r\n   event the user performed, or NIL if no  copy  is  desired.   The  returned\r\n   value  of  the function is also changed:  it is a copy of \"pfinal\", or NIL\r\n   if failure.  \r\nPage 533 -- Change in behavior for global variable  b_ega:   After  you  call\r\n   SCEQUIP,  the  b_ega global variable will contain the value SC_ABSENT (-2)\r\n   if a Video Graphics Array (VGA) or  PS/2  Display  Adapter  is  installed.\r\n   Under Turbo C TOOLS version 5, b_ega would contain SC_MONO (0) or SC_COLOR \r\n   (1)  if  a  VGA  was  present  because  the  VGA  emulates  all  the EGA's\r\n   functionality.  \r\nPage 534  --  Internal  functions  with  changed  calling  sequences  include\r\n   MNTRUNC, WNNUPBLK, WNPIMBLK, and WNPUTIMG.  \r\nPage 538 -- The \"EB\" notation marks new keystrokes that are translated by the \r\n   traditional  BIOS  services into their traditional equivalents, as well as\r\n   keystrokes that are discarded by the traditional BIOS services.  \r\nPage 556 -- The  global  variables  b_mnmohoriz  and  b_mnmovert  report  the\r\n   character  column  and row (respectively) where the final mouse event took\r\n   place under MNREAD or MNLREAD.  They are expressed in terms  of  character\r\n   cells,  not  pixels.   They  contain  0xffff  if  the  final  event  was a\r\n   keystroke.  \r\nPage 562 -- New internal function:  WNSETATR sets the Turbo C  text  window's\r\n   attribute.  \r\n\r\n                         WARNINGS AND USAGE NOTES\r\n\r\nSTACK  CHECKING IN ISRs -- Stack overflow checking is not permitted in either\r\n   interrupt service routines (ISRs) or intervention functions in the  T,  S,\r\n   and  M memory models of Turbo C version 2.00 and later.  Stack checking is\r\n   also  prohibited  in  all  functions  called  by  the  affected  ISRs  and\r\n   intervention functions.  (Note:  Stack checking occurs only if you set the \r\n\r\n\r\nBlaise Computing Inc.         March 31, 1989                          Page  4\r\n\r\n\r\n\r\n\r\nTurbo C TOOLS/2.0                                                Version 6.00\r\n\r\n\r\n   O/C/Code/Test Stack  option (in the Integrated Environment) or specify the\r\n   -N command line option when compiling your program.) \r\nFLPROMPT AND MOCHECK UNDER TURBO C 1.0 -- If your program  uses  FLPROMPT  or\r\n   MOCHECK  under  Turbo  C version 1.0, then you should recompile FLPROMPT.C\r\n   and/or MOCHECK.C under version  1.0  and  link  with  the  resulting  .OBJ\r\n   file(s).   (MOCHECK  is used to detect mouse clicks and is used in HLDISP,\r\n   HLREAD, MNREAD, and WNREAD.   MOCHECK  is  suppressed  if  you  link  with\r\n   BNOMOUSE.OBJ.) \r\nINTERVENTION  CODE ON DOS VERSION 2 -- Please read \"Foreground and Background\r\n   Programs and Their Privileges\" on page 122 of the Turbo C TOOLS  Reference\r\n   Manual.   The  intervention  scheduler does not set the current process on\r\n   DOS version 2.  Therefore, intervention functions in  background  programs\r\n   on  DOS  version  2 should avoid DOS memory allocation.  In addition, they\r\n   should open and reclose their files each time they are invoked.  \r\nINTERVENTION CODE ON NON-IBM VERSIONS OF DOS -- If  you  specify  IV_DOS_NEED\r\n   when  installing  an  intervention  function,  the scheduler will postpone\r\n   invoking the intervention function if an interrupt 0x24  (critical  error)\r\n   is  in  progress.   The  location  of  the interrupt 0x24 busy flag varies\r\n   between different versions of DOS.   If  you  encounter  a  problem  using\r\n   intervention  code  on  a  non-IBM  version  of DOS, please contact Blaise\r\n   Computing.  \r\nSCROLLING MONOCHROME DISPLAY PAGES  --  The  BIOS  scroll  function  normally\r\n   obtains  the  attribute  for  the new blank rows by examining the previous\r\n   location of the cursor.  The Enhanced Graphics Adapter  supports  multiple\r\n   display  pages  on  the  Monochrome  Display.  On monochrome display pages\r\n   beyond page 0, BIOS scrolling works improperly in that  the  attribute  of\r\n   the  new  blank  rows  is obtained from page 0 instead of the active page.\r\n   This affects SCTTYWIN, SCTTYWRT, and VISCROLL.  \r\n\r\n                              TROUBLESHOOTING\r\n\r\nPlease also read Appendix A in the manual.  Here are some additional symptoms \r\nand explanations to consider when diagnosing problems:  \r\n\r\nAbnormal program termination.  \r\n   This can occur if the startup module cannot allocate sufficient space  for\r\n   the stack and the near heap.  If you are initializing the global variables \r\n   \"_stklen\" and \"_heaplen\", try smaller values.  \r\nText appears in incorrect color.  \r\n   When  MNDSTROY  and  WNREMOVE  set  the  Turbo C text window to the entire\r\n   screen, they do not change the text color.  Therefore text  later  emitted\r\n   via  the  Turbo  C  text  window functions may have the colors of the last\r\n   selected window.  \r\nAsynch overruns during mouse operations.  \r\n   Since the Microsoft mouse operates via hardware interrupts, it is possible \r\n   that mouse movements and button presses and releases  will  cause  overrun\r\n   errors during the arrival of data at the serial ports.  First test whether \r\n   overruns  occur  without  the use of Turbo C TOOLS.  The internal function\r\n   MOCATCH disables  interrupts  for  a  significant  period  of  time;  this\r\n   function  is  installed  when  you use HLDISP, HLREAD, MOCHECK, MNREAD, or\r\n   WNREAD.  If overruns are a severe problem, contact Blaise Computing.  \r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nBlaise Computing Inc.         March 31, 1989                          Page  5\r\n\r\n\r\n\r\n\r\nTurbo C TOOLS/2.0                                                Version 6.00\r\n\r\n\r\n                        EXTRACTING THE SOURCE CODE\r\n\r\nThe  source  code  for  the  library  is  supplied  in  the   form   of   two\r\nself-extracting  archive  programs:   TCTSRC1.EXE  and TCTSRC2.EXE.  The full\r\ncontents of both files are listed in the PACKING.LST file.  \r\n\r\nTo extract the contents of either file, set the current drive  and  directory\r\nto the drive and directory where you want to put the files.  Then execute the \r\nself-extracting archive program, as in the following example:  \r\n\r\n   a:tctsrc1\r\n\r\nTo extract only a selection of the files in an archive, you can use ambiguous \r\nfilenames,  as  in  the following example, which extracts all the source code\r\nfor the window (WN) functions:  \r\n\r\n   a:tctsrc2 wn*.*\r\n\r\n\r\n                         PRINTING THE SOURCE CODE\r\n\r\nThe CONCAT.COM utility for printing the  source  code  is  described  in  the\r\nmanual's  chapter  on \"Using Turbo C TOOLS\".  As an additional aid, lists are\r\nprovided for each category of source files.  For  example,  the  ST.FIL  file\r\nlists  all  the source files for the string (ST) functions.  You can use this\r\nfile when formatting all the ST files as follows:  \r\n\r\n   concat st.prt <st.fil\r\n\r\n\r\n                    REMOVING TABS FROM THE SOURCE CODE\r\n\r\nThe source modules were saved with consecutive blank spaces compressed to tab \r\ncharacters, with tab stops every eight characters.  The EXPAND.COM utility is \r\nprovided to expand the tabs back to blank spaces if you  wish.   It  is  also\r\nuseful for removing tabs from help source files.  \r\n\r\nEXPAND  is a filter:  it obtains its input from the standard input device and\r\nwrites  its  output  to  standard  output.   Therefore  you  can  use  it  by\r\nredirecting standard input and output, as in the following example:  \r\n\r\n   expand <wnexampl.c >wnexampl.ntb\r\n\r\nThe  resulting  file  WNEXAMPL.NTB  has tab characters expanded to strings of\r\nblanks.  \r\n\r\n                         REBUILDING THE LIBRARIES\r\n\r\nA batch file, BUILDLIB.BAT, and  a  librarian  response  file,  LIBRESP,  are\r\nprovided  to  make  it  easy to reconstruct the Turbo C TOOLS libraries.  The\r\nbatch file makes a number of assumptions.  If these are not  appropriate  for\r\nyour  environment, you should alter the batch file to match your system.  The\r\nassumptions are:  \r\n\r\n   All source files (.C and .ASM) and the LIBRESP file  are  in  the  current\r\n      directory; \r\n\r\n\r\nBlaise Computing Inc.         March 31, 1989                          Page  6\r\n\r\n\r\n\r\n\r\nTurbo C TOOLS/2.0                                                Version 6.00\r\n\r\n\r\n   BEGINASM.MAC and COMP_T2?.MAC are in the MAC subdirectory; \r\n   The C language header files (.H) are in the \\TURBOC\\INCLUDE directory; \r\n   The   Turbo   C  command-line  compiler  (TCC.EXE),  the  Turbo  Assembler\r\n      (TASM.EXE), and the  Turbo  Librarian  (TLIB.EXE)  are  either  in  the\r\n      current  directory  or in one of the directories specified in the PATH=\r\n      environment entry.  \r\n\r\nBUILDLIB is invoked with the command \r\n\r\n   buildlib model\r\n\r\nwhere \"model\" is either s, m, c, l, or h (in  lower  case)  to  indicate  the\r\nmemory  model.   The  batch file compiles and assembles all source modules by\r\ncategory (to make it easy for you to recompile  just  some  categories),  and\r\nthen   invokes  the  librarian  to  create  the  library.   For  example,  to\r\nreconstruct the small memory model library, issue the command \r\n\r\n   buildlib s\r\n\r\n\r\n                      REBUILDING THE SAMPLE PROGRAMS\r\n\r\nThe MAKEXPLS file is designed for use with the Turbo MAKE utility to  rebuild\r\nthe eighteen sample programs.  It makes the following assumptions:  \r\n\r\n   The sample program source files are in the current directory.  \r\n   All  Turbo  C  and  Turbo  C TOOLS header files are in the \\TURBOC\\INCLUDE\r\n      directory.  \r\n   All libraries are in the \\TURBOC\\LIB directory.  \r\n   The  Turbo  C  command-line  compiler  (TCC.EXE)  and  the  Turbo   Linker\r\n      (TLINK.EXE)  are  either  in  the  current  directory  or in one of the\r\n      directories listed in the PATH= environment entry.  \r\n   For rebuilding TCWIN.EXE, the batch file MAKTCWIN.BAT must  be  either  in\r\n      the  current directory or in one of the directories listed in the PATH=\r\n      environment entry; also the proper  NW_T2?.OBJ  file  must  be  in  the\r\n      \\TURBOC\\LIB directory.  \r\n\r\nInvoke  the  make  file  by issuing the following command to rebuild a single\r\nexample program \r\n\r\n   make -fmakexpls mnexampl.exe\r\n\r\nor the following command to rebuild all eighteen:  \r\n\r\n   make -fmakexpls\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nBlaise Computing Inc.         March 31, 1989                          Page  7\r\n\r\n\r\n\r\n\r\nTurbo C TOOLS/2.0                                                Version 6.00\r\n\r\n\r\n                     C AND ASSEMBLY MODULES AND MACROS\r\n\r\nThe following tables list which functions are  implemented  in  C,  which  in\r\nassembly  language,  and  which  are macros defined in the header files.  The\r\ntables also list certain anomalous source files.  \r\n\r\nThe following functions are implemented as ordinary C functions, each in  its\r\ncorresponding .C file:  \r\n\r\n   edbase    isprep    mnhilit0  mospeed   scttywin  wnchgevn  wnremevn\r\n   edbuffer  isremove  mnhilite  mostat    scttywrt  wncover   wnremove\r\n   edchgkey  isreserv  mnitem    prcancel  scwrap    wncreat0  wnresprv\r\n   edinitky  issense   mnitmkey  prerror   scwrite   wncurmov  wnretevn\r\n   edreduce  ivdetect  mnkey     prgetq    stpcvt    wncurpos  wnretinf\r\n   edremkey  ivdisabl  mnlitem   prinstld  stpexpan  wncurset  wnrevupd\r\n   edretinf  ivinstal  mnlitkey  prspool   stpjust   wncursor  wnscrblk\r\n   edretkey  ivsense   mnmchitm  scapage   stptabfy  wncurtrk  wnscrlbr\r\n   edsetcur  ivvecs    mnmchkey  scattrib  stpxlate  wndstroy  wnscroll\r\n   edwrap    kbequip   mnmouse   scblink   stschind  wnerror   wnseldev\r\n   edwrrect  kbextend  mnmstyle  scborder  utansi    wnforget  wnselect\r\n   edzapkey  kbflush   mnread    scbox     utcrit    wngetimg  wnsetbuf\r\n   fldolock  kbgetkey  mnvalmn0  scchgdev  utctlbrk  wngetopt  wnsetcur\r\n   flflush   kbkcflsh  mnvdisp   scclrmsg  utgetclk  wnhide    wnsetopt\r\n   flgetdta  kbpoll    moavoid   sccurset  utmovmem  wnhoriz   wnshoblk\r\n   fllock    kbquery   mobutton  sccurst   utnulchk  wninitev  wnunhide\r\n   flnorm    kbqueue   mocheck   scequip   utsafcpy  wnneedup  wnupdate\r\n   flprompt  kbset     mocurmov  scgetvid  utsleep   wnnupblk  wnvalev0\r\n   flputdta  kbstuff   moequip   scmode    utspkr    wnorigin  wnvalno0\r\n   flremvol  kbwait    mogate    scmode4   utsqzscn  wnovrlap  wnvalwi0\r\n   flretvol  mmctrl    mogetmov  scnewdev  uttim2tk  wnpgadd   wnvdisp\r\n   flsetvol  mmfirst   mograph   scpages   uttk2tim  wnpgrem   wnwrap\r\n   hlclose   mmsize    mohandlr  scpal1    utunsqz   wnpimblk  wnwrbuf\r\n   hldisp    mnatr     mohard    scpalett  viatrect  wnpoll    wnwrrect\r\n   hlfrindx  mncreat0  mohide    scpclr    vihoriz   wnprintf  wnwrstrn\r\n   hllookup  mndefkey  moinst    scpgcur   viptr     wnputbor  wnwrttyx\r\n   hlopen    mndisabl  mojump    scread    virdsect  wnputsen  wnzapevn\r\n   hlpas2c   mndlitms  molitpen  screstpg  viscroll  wnquery   wnzapsen\r\n   hlread    mndlkeys  mopreclk  scrows    viwrsect  wnrdbuf\r\n   iscurprc  mndstroy  morange   scsavepg  wnatrblk  wnread\r\n   isinstal  mnfindsl  mosoft    scsetvid  wnatrstr  wnredraw\r\n\r\nThe  following  functions  are  implemented in assembly language, each in its\r\ncorresponding .ASM file:  \r\n\r\n   iscall    ivctrl    kbready   utamove   utmodel\r\n   isdispat  kbplace   mocatch   utintflg  vidirec0\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nBlaise Computing Inc.         March 31, 1989                          Page  8\r\n\r\n\r\n\r\n\r\nTurbo C TOOLS/2.0                                                Version 6.00\r\n\r\n\r\nThe following routines are implemented as macros, defined in the header files \r\nshown here:  \r\n\r\n   Macro     Definition  |  Macro       Definition  |  Macro     Definition\r\n   --------  ----------  |  ----------  ----------  |  --------  ----------\r\n   edfield   bedit.h     |  utdosmajor  butil.h     |  utpokeb   butil.h\r\n   isgetvec  bintrupt.h  |  utdosminor  butil.h     |  utpoken   butil.h\r\n   isputvec  bintrupt.h  |  utdosrdy    butil.h     |  utpokew   butil.h\r\n   isresext  bintrupt.h  |  utdosver    butil.h     |  utpspseg  butil.h\r\n   kbscanof  bkeybrd.h   |  uthibyte    butil.h     |  utrange   butil.h\r\n   kbstatus  bkeybrd.h   |  uthinyb     butil.h     |  utseg     butil.h\r\n   max       butil.h     |  uthiword    butil.h     |  utsign    butil.h\r\n   min       butil.h     |  utinp       butil.h     |  utskip    butil.h\r\n   mncreate  bmenu.h     |  utintoff    butil.h     |  utsound   butil.h\r\n   mndsplay  bmenu.h     |  utinton     butil.h     |  utspkoff  butil.h\r\n   mnlread   bmenu.h     |  utlobyte    butil.h     |  utspkon   butil.h\r\n   moreset   bmouse.h    |  utlonyb     butil.h     |  uttofar   butil.h\r\n   prchar    bprint.h    |  utlowlim    butil.h     |  uttofaru  butil.h\r\n   prinit    bprint.h    |  utloword    butil.h     |  utuplim   butil.h\r\n   prstatus  bprint.h    |  utmax       butil.h     |  utwdlong  butil.h\r\n   scclrmsg  bscreens.h  |  utmin       butil.h     |  vidspmsg  bvideo.h\r\n   scpage    bscreens.h  |  utnorm      butil.h     |  virdrect  bvideo.h\r\n   utabs     butil.h     |  utnybbyt    butil.h     |  viwrrect  bvideo.h\r\n   utalarm   butil.h     |  utoff       butil.h     |  wnattr    bwindow.h\r\n   utalloc   butil.h     |  utoutp      butil.h     |  wncreate  bwindow.h\r\n   utbound   butil.h     |  utpeekb     butil.h     |  wndsplay  bwindow.h\r\n   utbyword  butil.h     |  utpeekn     butil.h     |  wnfield   bwindow.h\r\n   utchknil  butil.h     |  utpeekw     butil.h     |  wnwrstr   bwindow.h\r\n   utcopy    butil.h     |  utplong     butil.h     |  wnwrtty   bwindow.h\r\n\r\nThe following functions do not have their own source files, but  are  defined\r\nin the source files shown here:  \r\n\r\n   Function  Defined     |  Function  Defined\r\n   --------  ----------  |  --------  ----------\r\n   b_vidcpy  scnewdev.c  |  ivdisk    ivctrl.asm\r\n   ivbiosky  ivctrl.asm  |  ivdos     ivctrl.asm\r\n   ivcbreak  ivctrl.asm  |  ividle    ivctrl.asm\r\n   ivcom1    ivctrl.asm  |  ivkeybd   ivctrl.asm\r\n   ivcom2    ivctrl.asm  |  ivtimer   ivctrl.asm\r\n\r\nThe following source files are not named for any individual function:  \r\n\r\n   BNOMOUSE.ASM defines substitute versions of MOCHECK, MOHIDE, and MOPRECLK.  \r\n      See  the  section  \"Excluding  Mouse  Support\"  in the chapter on mouse\r\n      support functions (prefix MO).  \r\n   NW.C  defines  versions  of  WNCHKDM,  WNCMOVE,  WNGETATR,  WNSETATR,  and\r\n      WNSETWIN  that  make contact with the Turbo C text window.  NW.C is the\r\n      source module for the NW_T2?.OBJ files.  \r\n   WNNATVWN.C defines versions of WNCHKDM, WNCMOVE, WNGETATR,  WNSETATR,  and\r\n      WNSETWIN  that  do  not  use the Turbo C text window.  It is the source\r\n      file for the WNNATVWN.OBJ modules in the libraries.  \r\n\r\n\r\n\r\n\r\n\r\n\r\nBlaise Computing Inc.         March 31, 1989                          Page  9\r\n\r\n\r\n\r\n\r\nTurbo C TOOLS/2.0                                                Version 6.00\r\n\r\n\r\n\r\nThe following source files define no functions:  \r\n\r\n   KBSCANOF.C defines the  b_keycod[]  array,  which  is  referenced  by  the\r\n      KBSCANOF macro.  \r\n   MOVARS.C  defines the global variables b_mocatch, b_modispat, b_mohanmask,\r\n      and b_momask.  \r\n   SCPAGE.C defines the b_curpage global variable, which is referenced by the \r\n      SCPAGE macro.  \r\n\r\n                            CONSTRUCTION NOTES\r\n\r\nAll C modules and example programs were compiled  with  version  2.0  of  the\r\nTurbo  C  command-line  compiler  (TCC)  using  the  following  switches:  -c\r\n(compile only), -m (memory model), -O (optimize jumps), and  -w  (enable  all\r\nwarnings).   All  assembler  modules  were  assembled with version 1.0 of the\r\nTurbo Assembler (TASM) using the /mx and /w+ switches.   The  libraries  were\r\nbuilt  with  version  2.0  of the Turbo Librarian (TLIB) using the /0 switch.\r\n(The /0 librarian  switch  omits  unnecessary  debugging  and  autodependency\r\ninformation.) \r\n\r\nThe example programs were linked with TLINK version 2.0 using no switches.  \r\n\r\n\r\n(For a list of supplied files and the diskettes and subdirectories where they \r\nreside, see the PACKING.LST file.) \r\n\r\n                         === End of README.DOC ===\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nBlaise Computing Inc.         March 31, 1989                          Page 10"
}