{
  "disks": {
    "1": {
      "dirs": [
        {
          "path": "/",
          "files": [
            {
              "name": "INSTALL  EXE",
              "size": 40706,
              "date": "1992-02-18",
              "time": "3:00"
            },
            {
              "name": "UNZIP    EXE",
              "size": 23044,
              "date": "1992-02-18",
              "time": "3:00"
            },
            {
              "name": "README   COM",
              "size": 4217,
              "date": "1992-02-18",
              "time": "3:00"
            },
            {
              "name": "CLASSINC ZIP",
              "size": 54720,
              "date": "1992-02-18",
              "time": "3:00"
            },
            {
              "name": "CLASSSRC ZIP",
              "size": 32831,
              "date": "1992-02-18",
              "time": "3:00"
            },
            {
              "name": "CMDLINE  CA2",
              "size": 133324,
              "date": "1992-02-18",
              "time": "3:00"
            },
            {
              "name": "DISK1    DSK",
              "size": 5,
              "date": "1992-02-18",
              "time": "3:00"
            },
            {
              "name": "FILELIST DOC",
              "size": 18055,
              "date": "1992-02-18",
              "time": "3:00"
            },
            {
              "name": "HELP     CA2",
              "size": 361472,
              "date": "1992-02-18",
              "time": "3:00"
            },
            {
              "name": "HELP     CA3",
              "size": 30240,
              "date": "1992-02-18",
              "time": "3:00"
            },
            {
              "name": "README",
              "size": 15481,
              "date": "1992-02-18",
              "time": "3:00"
            }
          ]
        }
      ],
      "volume": "DISK 1"
    },
    "2": {
      "dirs": [
        {
          "path": "/",
          "files": [
            {
              "name": "CLASSDBL ZIP",
              "size": 6752,
              "date": "1992-02-18",
              "time": "3:00"
            },
            {
              "name": "CLASSEXM ZIP",
              "size": 13441,
              "date": "1992-02-18",
              "time": "3:00"
            },
            {
              "name": "DISK2    DSK",
              "size": 5,
              "date": "1992-02-18",
              "time": "3:00"
            },
            {
              "name": "IDE      CA1",
              "size": 361472,
              "date": "1992-02-18",
              "time": "3:00"
            },
            {
              "name": "IDE      CA2",
              "size": 278651,
              "date": "1992-02-18",
              "time": "3:00"
            },
            {
              "name": "INCLUDE  ZIP",
              "size": 58457,
              "date": "1992-02-18",
              "time": "3:00"
            }
          ]
        }
      ],
      "volume": "DISK 2"
    },
    "3": {
      "dirs": [
        {
          "path": "/",
          "files": [
            {
              "name": "CLASSL   ZIP",
              "size": 6724,
              "date": "1992-02-18",
              "time": "3:00"
            },
            {
              "name": "CLASSLIB ZIP",
              "size": 62471,
              "date": "1992-02-18",
              "time": "3:00"
            },
            {
              "name": "CLASSS   ZIP",
              "size": 6721,
              "date": "1992-02-18",
              "time": "3:00"
            },
            {
              "name": "CMDLINE  CA1",
              "size": 361472,
              "date": "1992-02-18",
              "time": "3:00"
            },
            {
              "name": "DISK3    DSK",
              "size": 5,
              "date": "1992-02-18",
              "time": "3:00"
            },
            {
              "name": "DOC      ZIP",
              "size": 146538,
              "date": "1992-02-18",
              "time": "3:00"
            },
            {
              "name": "EXAMPLES ZIP",
              "size": 96089,
              "date": "1992-02-18",
              "time": "3:00"
            },
            {
              "name": "XLIB     ZIP",
              "size": 41831,
              "date": "1992-02-18",
              "time": "3:00"
            }
          ]
        }
      ],
      "volume": "DISK 3"
    },
    "4": {
      "dirs": [
        {
          "path": "/",
          "files": [
            {
              "name": "BIN      ZIP",
              "size": 149130,
              "date": "1992-02-18",
              "time": "3:00"
            },
            {
              "name": "CLASSDBS ZIP",
              "size": 6745,
              "date": "1992-02-18",
              "time": "3:00"
            },
            {
              "name": "DISK4    DSK",
              "size": 5,
              "date": "1992-02-18",
              "time": "3:00"
            },
            {
              "name": "HELP     CA1",
              "size": 361472,
              "date": "1992-02-18",
              "time": "3:00"
            },
            {
              "name": "HLIB     ZIP",
              "size": 132936,
              "date": "1992-02-18",
              "time": "3:00"
            },
            {
              "name": "TCALC    ZIP",
              "size": 23700,
              "date": "1992-02-18",
              "time": "3:00"
            }
          ]
        }
      ],
      "volume": "DISK 4"
    },
    "5": {
      "dirs": [
        {
          "path": "/",
          "files": [
            {
              "name": "BGI      ZIP",
              "size": 122261,
              "date": "1992-02-18",
              "time": "3:00"
            },
            {
              "name": "CLIB     ZIP",
              "size": 127235,
              "date": "1992-02-18",
              "time": "3:00"
            },
            {
              "name": "DISK5    DSK",
              "size": 5,
              "date": "1992-02-18",
              "time": "3:00"
            },
            {
              "name": "LLIB     ZIP",
              "size": 128022,
              "date": "1992-02-18",
              "time": "3:00"
            },
            {
              "name": "MLIB     ZIP",
              "size": 124788,
              "date": "1992-02-18",
              "time": "3:00"
            },
            {
              "name": "SLIB     ZIP",
              "size": 127421,
              "date": "1992-02-18",
              "time": "3:00"
            }
          ]
        }
      ],
      "volume": "DISK 5"
    }
  },
  "desc_file": "README",
  "desc_text": "\t\t   Welcome to Turbo C++ Version 3.0\r\n\t\t   --------------------------------\r\n\r\n  This README file contains important information about Turbo C++.\r\n  For the latest information about Turbo C++ and its accompanying\r\n  programs and manuals, read this file in its entirety.\r\n\r\nTABLE OF CONTENTS\r\n-----------------\r\n1.  How to Get Help\r\n2.  Installation\r\n3.  Features\r\n4.  Important Information\r\n5.  Testing Your Expanded Memory\r\n6.  Corrections to the On-line Help\r\n\r\n\r\n 1. HOW TO GET HELP\r\n-------------------\r\n  If you have any problems, please read this file, the\r\n  HELPME!.DOC and other files in your DOC subdirectory, and the\r\n  Turbo C++ manuals first. If you still have a question and need\r\n  assistance, help is available from the following sources:\r\n\r\n  1. Type GO BPROGB on the CompuServe bulletin board system for\r\n     instant access to the Borland forums with their libraries of\r\n     technical information and answers to common questions.\r\n\r\n     If you are not a member of CompuServe, see the enclosed\r\n     special offer, and write for full details on how to receive\r\n     a free IntroPak containing a $15 credit toward your first\r\n     month's on-line charges.\r\n\r\n  2. Check with your local software dealer or users' group.\r\n\r\n  3. Borland's TECHFAX service. Call (800) 822-4269 for a FAX \r\n     catalog of entries.\r\n\r\n  4. If you have an urgent problem that cannot wait and you have\r\n     sent in the license agreement that came with the package,\r\n     you may call the Borland Technical Support Department at\r\n     (408) 438-5300. Please have the following information ready\r\n     before calling:\r\n\r\n     a. Product name and serial number on your original\r\n        distribution disk.  Please have your serial number ready\r\n        or we will be unable to process your call.\r\n\r\n     b. Product version number. The version number for Turbo\r\n        C++ can be displayed by pressing Alt-H/A.\r\n\r\n     c. Computer brand, model, and the brands and model numbers of\r\n        any additional hardware.\r\n\r\n     d. Operating system and version number. (The version number\r\n        can be determined by typing VER at the DOS prompt.)\r\n\r\n     e. Contents of your AUTOEXEC.BAT file.\r\n\r\n     f. Contents of your CONFIG.SYS file.\r\n\r\n\r\n\r\n 2. INSTALLATION\r\n----------------\r\n\r\n  You MUST use the INSTALL program to install Turbo C++. The\r\n  files on the distribution disks are all archived and have to be\r\n  properly assembled.  You cannot do this by hand!\r\n\r\n     IMPORTANT!\r\n\r\n     If you want to create backup copies of your disks, make sure \r\n     that you put the backup on the same type of disk as the \r\n     source. If you're backing up the 5 1/4 inch 1.2 Mb disk set, \r\n     use only blank 5 1/4 inch 1.2 Mb disks for backup, etc. The \r\n     installation will not work correctly if you do not use the \r\n     same media type for the backup disks.\r\n\r\n  To start the installation, change your current drive to the one\r\n  that has the install program on it and type INSTALL.  You will\r\n  be given instructions in a box at the bottom of the screen for\r\n  each prompt. For example, if you will be installing from drive\r\n  A:, type:\r\n\r\n    A:\r\n    INSTALL\r\n\r\n  -  This INSTALL handles the installation of both the compiler\r\n     and tools in one operation, and allows several new \r\n     configuration options.\r\n\r\n  -  After installation, make sure you insert \\TC\\BIN - or\r\n     whatever you selected as your BIN directory - into\r\n     your DOS path so the executable files can be found.\r\n\r\n  -  Note: The list of files is contained in a separate file\r\n     called FILELIST.DOC, which will appear in the target\r\n     directory you specify during installation.\r\n\r\n  -  After your initial installation, you can run INSTALL again to\r\n     add elements you omitted the first time. Just select the\r\n     items you want to add in the INSTALL options screen. Because\r\n     some things you may want to save could be overwritten, review\r\n     the following items to make sure you don't lose important\r\n     information:\r\n\r\n     1.  Selecting CMD (the Command-line compiler) causes an\r\n\t overwrite of any existing turboc.cfg & tlink.cfg file\r\n\t with path information provided in that INSTALL session.\r\n\t Any switches other than -L (library path) and -I\r\n\t (include path) will not be preserved.\r\n\r\n     2.  Selecting IDE will reset the include and library paths \r\n         to those provided in that INSTALL session.\r\n\r\n     3.  By selecting any one of the following, the help file\r\n\t paths and choices for THELP.CFG will reflect the current\r\n\t session's installation choices:\r\n\r\n\t      a. CMD - command-line compiler\r\n\t      b. IDE - integrated environment\r\n\r\n     4.  Alterations to headers or startup files will be\r\n\t overwritten if any library models are selected.\r\n\r\n     In general, any selection you make of something installed\r\n     earlier will cause an overwrite of the earlier version\r\n     without prompting.\r\n\r\n\r\n  You should read the rest of this README file to get further\r\n  information about this release before you do the installation.\r\n\r\n\r\n 3. FEATURES\r\n------------\r\n\r\n  Turbo C++ 3.0 includes big speed and capacity gains.  Here are\r\n  some important features found in this version:\r\n\r\n  - DPMI services for increased capacity\r\n\r\n  - C++ 2.1 support, including the new nested class specifications,\r\n    and support of C++ 3.0 templates.\r\n\r\n  - Support for pre-compiled headers for substantial time savings\r\n    during subsequent recompiles.\r\n\r\n  - Color syntax highlighting\r\n\r\n  - Unlimited Undo/Redo replacing previous 'restore line' capability\r\n\r\n  - Added library functions for compatibility with other runtime\r\n    libraries, and addition of support for long double parameters\r\n    in math functions. (Please refer to On-line Help for details.)\r\n\r\n  - New MAKE features. (Please see the MAKE chapter in the User's \r\n    Guide for details.)\r\n\r\n  - Added BGI (Borland Graphics Interface) fonts and support. (See\r\n    \"New BGI fonts\" below.)\r\n\r\n  - A resident DPMI kernel program, DPMIRES.EXE. (See \"DPMI\" below.)\r\n\r\n  - THELP now allows you to switch between help files without\r\n    unloading and reloading. (Please see UTIL.DOC for details.)\r\n\r\n\r\nNEW BGI FONTS\r\n-------------\r\n\r\nSeveral new fonts have been added to the Borland Graphics Interface:\r\n\r\n\r\nName            Value   Description\r\n-------------------------------------------\r\nSCRIPT_FONT     5       Stroked script font\r\nSIMPLEX_FONT    6       Stroked simplex font\r\nTRIP_SCR_FONT   7       Stroked triplex script font\r\nCOMPLEX_FONT    8       Stroked complex font\r\nEURO_FONT       9       Stroked European font\r\nBOLD_FONT       10      Stroked bold font\r\n\r\nThe fonts in the BGI now support the full ASCII character set.\r\n\r\nDPMI\r\n----\r\n\r\nTC.EXE, TCC.EXE, and TLINK.EXE are now hosted under DPMI.  These files\r\nsupport protected-mode compilation and replace the files of the same\r\nname in Turbo C++ Second Edition.  Turbo C++ Second Edition should\r\ncontinue to be used in instances where real-mode compilation is desired.\r\n\r\nIf you encounter a \"machine not in database\" message while attempting\r\nto run the compiler, run the DPMIINST program to add your machine\r\nconfiguration to the DPMI server database.\r\n\r\nThis version includes a resident DPMI host program, DPMIRES.EXE, that\r\nallows you to preload the server before invoking TC, TCC, or any other\r\nDPMI-hosted executables.  If you want to run such hosted EXEs in a\r\nWindows Standard Mode DOS window, you should run DPMIRES.EXE before\r\nloading Windows. To do this, enter the following commands at DOS:\r\n \r\n  set DPMIMEM=MAXMEM 2000\r\n  dpmires\r\n  win /s\r\n\r\nIf you want to limit the amount of extended memory used by the\r\nDPMI-hosted executables, an environment variable called DPMIMEM\r\ncan be set to do so. For instance, the command\r\n\r\n  set DPMIMEM=MAXMEM 2000\r\n\r\nreserves about 2 Mb of memory for DPMIRES. The number after MAXMEM\r\ncan be adjusted, but cannot be lower than 1000.\r\n\r\nThe hosted executables cannot spawn each other when SHARE is loaded.\r\nFor instance, if you run MAKE on a file which in turn calls MAKE\r\nagain, you will get a sharing violation. In this specific case,\r\nyou can call the real mode version, MAKER, within the given makefile,\r\nand a sharing violation won't occur.\r\n\r\n\r\n 4. IMPORTANT INFORMATION\r\n-------------------------\r\n\r\n  - When using Brief with THELP, make sure to use Brief's -p\r\n    switch to ensure that the thelp window will be visible.\r\n\r\n  - We recommend that you use the following mouse drivers with\r\n    this product:\r\n\r\n       Microsoft Mouse version 7.04 or later;\r\n       Logitech Mouse version 5.01 or later;\r\n       Genius Mouse version 9.06 or later.\r\n\r\n  - If you get a \"floating point formats not linked\" message at\r\n    runtime, put the following somewhere in your source files:\r\n\r\n\textern void _floatconvert();\r\n\t#pragma extref _floatconvert\r\n\r\n    This will force inclusion of floating point formats, which\r\n    may not be linked to reduce executable size.\r\n\r\n\r\n  COMPILER\r\n\r\n  - The default extension for source files to the command-line\r\n    compiler is .CPP; that is, if you enter\r\n\r\n       TCC -c test\r\n\r\n    the compiler will search for test.cpp, and give an error if a\r\n    file of that name cannot be found. If you want to have the\r\n    command-line compiler assume a .c extension and C language\r\n    source, use the command-line option -P-c. For more\r\n    information, see \"The command-line compiler\" in the User's\r\n    Guide.\r\n\r\n  - Note that the Generate COMDEFs choice under\r\n    Options|Compiler|Advanced Code Generation and the -Fc command-\r\n    line option are only supported in the C language. Linker errors\r\n    will result if you attempt to use a communal variable in C++.\r\n\r\n  - The macros min() and max() are not defined when stdlib.h is\r\n    compiled as C++ (to allow their use in 3rd party libraries,\r\n    etc.).\r\n\r\n  - Note that SYMDEB creates .SYM files for use in debugging;\r\n    Turbo C++ creates .SYM files for pre-compiled headers. They\r\n    are not compatible and collisions should be avoided by\r\n    setting the name of the pre-compiled header file (using -\r\n    H=filename).\r\n\r\n  - There is now full support of distance modifiers (near and\r\n    far) used for class member pointers. Here are two sample\r\n    declarations and their meanings:\r\n\r\n       void (A::* far var) ();\r\n\r\n    this is a far variable 'var' of type 'void (A::*)()';\r\n\r\n       void (far A::* var) ();\r\n\r\n    this is a 'default distance' variable 'var' of type\r\n\t'void (far A::*)()'\r\n\r\n  - If you use C++ templates, and use a separate TLINK command\r\n    line rather than letting TCC invoke TLINK, you should make\r\n    sure that you turn on case-sensitive links with the /c switch.\r\n\r\n  - Incorrect code will be generated if you have a statement of\r\n    the type \"A op B\" where either A or B is an enum and the \r\n    other operand is a long, and \"op\" is one of the following \r\n    operators: \r\n  \r\n       +=  -=  *=  /=  |  ^\r\n\r\n    The same problem applies when the operands are a non-integer\r\n    enum and an int.  Cast the enum to long or int respectively\r\n    to solve the problem.\r\n\r\n\r\n  IDE\r\n\r\n  - When debugging a mouse application the Options|Debugger|Display\r\n    Swapping option should be set to \"Always\" for best results.\r\n\r\n  - In the IDE, the mouse cursor is turned off during compilation\r\n    for performance improvements.\r\n\r\n  - To run or debug an overlaid application in the IDE when DOS\r\n    SHARE is loaded, the .EXE file must first be marked as\r\n    read-only.  Otherwise, unload SHARE.\r\n\r\n  - Pressing Control-Break twice while running or stepping a\r\n    program from the IDE may cause unexpected results.  In\r\n    particular, avoid pressing Control-Break twice in response\r\n    to any function requiring input (scanf, getch, etc.).  To\r\n    break out of a program during such interaction, press\r\n    Control-Break and enter a valid input string.  Control will\r\n    be returned to the IDE.\r\n\r\n\r\n  EXAMPLE PROGRAMS\r\n\r\n  - When you are running any example programs that come with .PRJ\r\n    files, if you didn't use the standard directories when you\r\n    installed Turbo C++ you will have to change the .PRJ file\r\n    to reflect your actual directory setup.  Do this from inside\r\n    Turbo C++ with Alt-O/D.\r\n\r\n\r\n  LINKING C++ WITH C\r\n\r\n  - Linking C++ modules with C modules requires the use of a\r\n    linkage specification.  Prototypes for C functions within C++\r\n    modules must be in one of the following forms:\r\n\r\n\textern \"C\" declaration\r\n\textern \"C\" { declarations }\r\n\r\n    For example, if a C module contains these functions:\r\n\r\n\tchar *SCopy(char*, char*);\r\n\tvoid ClearScreen(void)\r\n\r\n    they must be declared in a C++ module in one of the\r\n    following ways:\r\n\r\n\textern \"C\" char *SCopy(char*, char*);\r\n\textern \"C\" void ClearScreen(void);\r\n\r\n      or\r\n\r\n\t extern \"C\" {\r\n\t    char *SCopy(char*, char*);\r\n\t    void ClearScreen(void);\r\n\t }\r\n\r\n    Failure to do so will result in \"Undefined symbol\" errors\r\n    during link. For further examples, see the standard header\r\n    files.\r\n\r\n\r\n  CLASS LIBRARY\r\n\r\n  - Two versions of the class libraries are provided; one that \r\n    includes debug information and one that does not. Small \r\n    versions of each are provided, and project files are \r\n    provided to build other models.  Note that the non-debug \r\n    versions are used by default.  If you would like to use the\r\n    debug version, copy it to the non-debug file.  For instance, \r\n    in the CLASSLIB\\LIB directory, copy TCLASDBS.LIB to \r\n    TCLASSS.LIB for the small model version.\r\n\r\n  - In some places the User's Guide incorrectly refers to the \r\n    online documentation for the Container Class Libraries as \r\n    CONTAIN.DOC.  The correct file name is CLASSLIB.DOC, located\r\n    in the ..\\DOC directory.\r\n\r\n\r\n 5. TESTING YOUR EXPANDED MEMORY: EMSTEST.COM\r\n---------------------------------------------\r\n\r\n  Included with Turbo C++ is a program to test your Expanded\r\n  Memory hardware and software. If you have problems using\r\n  Turbo C++ with your EMS, type EMSTEST at the DOS prompt and\r\n  follow the instructions.\r\n\r\n 6. CORRECTIONS TO THE ON-LINE HELP\r\n-----------------------------------\r\n\r\n  The information for alloca is not available in on-line help.\r\n  The correct help screen should read as follows:\r\n\r\n  ------------------------------------------------------------------\r\n  Function: alloca\r\n  Allocates temporary stack space\r\n\r\n  Syntax:\r\n  #include <malloc.h>\r\n  void *alloca(size_t size);\r\n\r\n  Remarks:\r\n  alloca allocates bytes on the stack.  The allocated space is \r\n  automatically freed up when the calling function exits.\r\n\r\n  Return value:\r\n    o On success (if enough stack space is available), returns a\r\n      pointer to the allocated stack area.\r\n    o On error, returns null.\r\n\r\n  Argument size is the number of bytes allocated on the stack.\r\n\r\n  Because alloca modifies the stack pointer, do no place calls to \r\n  alloca in an expression that is an argument to a function.\r\n\r\n  NOTE: If the calling function does not contain any references to \r\n  local variables in the stack, the stack won't be resotored \r\n  correctly when the function exits and your program will crash.\r\n  To ensure that the stack is restored correctly, use this code in \r\n  your calling function:\r\n\r\n    char *p;\r\n    char dummy[1];\r\n\r\n    dummy[0] := 0;;\r\n      ...\r\n    p = alloca(nbytes);\r\n\r\n  Because alloca is not defined in ANSI C, you should use malloc \r\n  instead.\r\n\r\n  See also:\r\n  malloc\r\n  ------------------------------------------------------------------\r\n\r\n\r\n\r\n\u001a"
}