{
  "disks": {
    "1": {
      "dirs": [
        {
          "path": "/",
          "files": [
            {
              "name": "BCINSTAL LZ",
              "size": 274095,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "DISK1    DSK",
              "size": 5,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "FILEINFO INI",
              "size": 8901,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "FILELIST PAK",
              "size": 15149,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "HELP     ICO",
              "size": 1086,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "HLP_API  CA6",
              "size": 114653,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "HLP_BCW  CA2",
              "size": 348762,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "INSTALL  EXE",
              "size": 9888,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "INSTALL  TXT",
              "size": 46248,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "LIB_CTL3 PAK",
              "size": 1342,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "README   TXT",
              "size": 45771,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "RTLDLL16 PAK",
              "size": 86575,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "UNPAK    EXE",
              "size": 26566,
              "date": "1994-02-15",
              "time": "4:00"
            }
          ]
        }
      ],
      "volume": "DISK1"
    },
    "10": {
      "dirs": [
        {
          "path": "/",
          "files": [
            {
              "name": "DISK10   DSK",
              "size": 6,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "INTLDEMO PAK",
              "size": 43855,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "OWLLIB16 PAK",
              "size": 1407354,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "WILD16   PAK",
              "size": 5162,
              "date": "1994-02-15",
              "time": "4:00"
            }
          ]
        }
      ],
      "volume": "DISK10"
    },
    "11": {
      "dirs": [
        {
          "path": "/",
          "files": [
            {
              "name": "COLORDLG PAK",
              "size": 17524,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "DISK11   DSK",
              "size": 6,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "HLP_OWL  PAK",
              "size": 1195999,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "OWLSRC   PAK",
              "size": 242898,
              "date": "1994-02-15",
              "time": "4:00"
            }
          ]
        }
      ],
      "volume": "DISK11"
    },
    "12": {
      "dirs": [
        {
          "path": "/",
          "files": [
            {
              "name": "CLASSINC PAK",
              "size": 65607,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "DISK12   DSK",
              "size": 6,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "H_CTL3   PAK",
              "size": 698,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "SHAREBIN PAK",
              "size": 834582,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "WDEVHELP PAK",
              "size": 548551,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "WILD32   PAK",
              "size": 6017,
              "date": "1994-02-15",
              "time": "4:00"
            }
          ]
        }
      ],
      "volume": "DISK12"
    },
    "13": {
      "dirs": [
        {
          "path": "/",
          "files": [
            {
              "name": "CMD32    PAK",
              "size": 675805,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "DISK13   DSK",
              "size": 6,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "HLP_CTL3 PAK",
              "size": 35464,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "RW       PAK",
              "size": 744675,
              "date": "1994-02-15",
              "time": "4:00"
            }
          ]
        }
      ],
      "volume": "DISK13"
    },
    "14": {
      "dirs": [
        {
          "path": "/",
          "files": [
            {
              "name": "DISK14   DSK",
              "size": 6,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "FILTER   PAK",
              "size": 28941,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "GENINC   PAK",
              "size": 370991,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "OWLLIB32 PAK",
              "size": 528840,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "WINLIB32 PAK",
              "size": 527865,
              "date": "1994-02-15",
              "time": "4:00"
            }
          ]
        }
      ],
      "volume": "DISK14"
    },
    "15": {
      "dirs": [
        {
          "path": "/",
          "files": [
            {
              "name": "CMD16    PAK",
              "size": 437880,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "DISK15   DSK",
              "size": 6,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "GDIDEMO  PAK",
              "size": 23700,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "TD32BIT  PAK",
              "size": 513866,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "TDDOS16  PAK",
              "size": 480021,
              "date": "1994-02-15",
              "time": "4:00"
            }
          ]
        }
      ],
      "volume": "DISK15"
    },
    "16": {
      "dirs": [
        {
          "path": "/",
          "files": [
            {
              "name": "DISK16   DSK",
              "size": 6,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "HLP_RW   PAK",
              "size": 361130,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "TDW16    PAK",
              "size": 474233,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "WIN31BIN PAK",
              "size": 406643,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "WIN31DEV PAK",
              "size": 209928,
              "date": "1994-02-15",
              "time": "4:00"
            }
          ]
        }
      ],
      "volume": "DISK16"
    },
    "17": {
      "dirs": [
        {
          "path": "/",
          "files": [
            {
              "name": "BCSUPRT  PAK",
              "size": 296340,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "CMDLINE  PAK",
              "size": 276054,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "DISK17   DSK",
              "size": 6,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "HLP_WIN  PAK",
              "size": 328569,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "KBDSRC   PAK",
              "size": 28087,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "OWLDLL16 PAK",
              "size": 227965,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "SLIB     PAK",
              "size": 296760,
              "date": "1994-02-15",
              "time": "4:00"
            }
          ]
        }
      ],
      "volume": "DISK17"
    },
    "18": {
      "dirs": [
        {
          "path": "/",
          "files": [
            {
              "name": "BWCC32   PAK",
              "size": 197698,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "CLIB     PAK",
              "size": 178570,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "DISK18   DSK",
              "size": 6,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "EXPERT   PAK",
              "size": 82758,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "HLIB     PAK",
              "size": 185127,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "HLP_MDEX PAK",
              "size": 266884,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "LLIB     PAK",
              "size": 180158,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "MLIB     PAK",
              "size": 176197,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "RTLDLL32 PAK",
              "size": 182573,
              "date": "1994-02-15",
              "time": "4:00"
            }
          ]
        }
      ],
      "volume": "DISK18"
    },
    "19": {
      "dirs": [
        {
          "path": "/",
          "files": [
            {
              "name": "CLASSLIB PAK",
              "size": 158772,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "DISK19   DSK",
              "size": 6,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "DPMI     PAK",
              "size": 148028,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "OWLINC   PAK",
              "size": 136178,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "WBIN     PAK",
              "size": 166571,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "WCLIB    PAK",
              "size": 173966,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "WLLIB    PAK",
              "size": 176530,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "WMLIB    PAK",
              "size": 171551,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "WSLIB    PAK",
              "size": 169018,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "XLIB     PAK",
              "size": 150871,
              "date": "1994-02-15",
              "time": "4:00"
            }
          ]
        }
      ],
      "volume": "DISK19"
    },
    "2": {
      "dirs": [
        {
          "path": "/",
          "files": [
            {
              "name": "BCW      CA2",
              "size": 1268481,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "DISK2    DSK",
              "size": 5,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "GENSYS   PAK",
              "size": 1718,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "OWLDLL32 PAK",
              "size": 185919,
              "date": "1994-02-15",
              "time": "4:00"
            }
          ]
        }
      ],
      "volume": "DISK2"
    },
    "20": {
      "dirs": [
        {
          "path": "/",
          "files": [
            {
              "name": "APPLAUNC PAK",
              "size": 36386,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "BGI      PAK",
              "size": 111457,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "BIVBX    PAK",
              "size": 36861,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "BMPVIEW  PAK",
              "size": 42817,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "BWCC     PAK",
              "size": 98830,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "CLASS32  PAK",
              "size": 37714,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "CLOBSH   PAK",
              "size": 27913,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "CLOBSS   PAK",
              "size": 26917,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "DIAGXPRT PAK",
              "size": 32732,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "DISK20   DSK",
              "size": 6,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "DOC      PAK",
              "size": 102312,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "DOCVIEW  PAK",
              "size": 42738,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "GENINC32 PAK",
              "size": 144176,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "HLP_GUI  PAK",
              "size": 52174,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "OLDFILEW PAK",
              "size": 19809,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "OWLPORTE PAK",
              "size": 129823,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "OWLPORTH PAK",
              "size": 26526,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "OWLPORTO PAK",
              "size": 125609,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "PSTREAMS PAK",
              "size": 38258,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "SOUNDER  PAK",
              "size": 54030,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "TDDLL    PAK",
              "size": 105750,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "TDDOC    PAK",
              "size": 32245,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "TSTAPP   PAK",
              "size": 36610,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "TUTOROOT PAK",
              "size": 52664,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "XLIB16   PAK",
              "size": 37683,
              "date": "1994-02-15",
              "time": "4:00"
            }
          ]
        }
      ],
      "volume": "DISK20"
    },
    "21": {
      "dirs": [
        {
          "path": "/",
          "files": [
            {
              "name": "ACLOCK   PAK",
              "size": 25320,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "BCEXAMS  PAK",
              "size": 7739,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "BUTTON   PAK",
              "size": 8989,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "CALC     PAK",
              "size": 11654,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "CHELP    PAK",
              "size": 12072,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "CLASSSRC PAK",
              "size": 23372,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "CLS32DLL PAK",
              "size": 19251,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "CLSDLL16 PAK",
              "size": 22143,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "CMDLG    PAK",
              "size": 13361,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "COMBOBOX PAK",
              "size": 11664,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "COMMDLG  PAK",
              "size": 10804,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "CURSOR   PAK",
              "size": 10878,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "DDEML    PAK",
              "size": 16575,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "DDEMLWIN PAK",
              "size": 18311,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "DELIVER  PAK",
              "size": 16105,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "DISK21   DSK",
              "size": 6,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "DLLDEMO  PAK",
              "size": 19740,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "DLLHELLO PAK",
              "size": 12329,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "DLL_CT32 PAK",
              "size": 9447,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "DLL_CTL3 PAK",
              "size": 10447,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "DRAGDROP PAK",
              "size": 11871,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "DRAGDRP  PAK",
              "size": 13373,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "DRAW     PAK",
              "size": 10386,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "EDIT     PAK",
              "size": 12576,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "EDITSEAR PAK",
              "size": 8688,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "EMU      PAK",
              "size": 11836,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "EXAMPLES PAK",
              "size": 16183,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "FFIND    PAK",
              "size": 17232,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "FILEBROW PAK",
              "size": 12359,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "GAUGE    PAK",
              "size": 9597,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "GENEXM   PAK",
              "size": 18472,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "GROUPBOX PAK",
              "size": 9574,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "HDUMP    PAK",
              "size": 17648,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "HELLO    PAK",
              "size": 8220,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "HELP     PAK",
              "size": 12317,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "HELPEX   PAK",
              "size": 24938,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "HELPME   PAK",
              "size": 25323,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "HLPSTUB  PAK",
              "size": 19046,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "INSTANCE PAK",
              "size": 8500,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "LABELS   PAK",
              "size": 11950,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "LAYOUT   PAK",
              "size": 14811,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "LISTBOX  PAK",
              "size": 12449,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "LOOKUP   PAK",
              "size": 8547,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "MCISOUND PAK",
              "size": 13092,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "MCSUPRT  PAK",
              "size": 17213,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "MDI      PAK",
              "size": 8896,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "MDIFILE  PAK",
              "size": 14559,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "MDISTRM  PAK",
              "size": 10889,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "MTHREAD  PAK",
              "size": 18933,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "MULTITRG PAK",
              "size": 12252,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "NOTIFY   PAK",
              "size": 10271,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "OWLBWCC  PAK",
              "size": 15851,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "OWLCMD   PAK",
              "size": 10942,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "OWLPRINT PAK",
              "size": 10661,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "OWLTTYPE PAK",
              "size": 14017,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "OWNERDRA PAK",
              "size": 9746,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "PAINT    PAK",
              "size": 22555,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "PALLET   PAK",
              "size": 10160,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "PEEPER   PAK",
              "size": 14441,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "POPUP    PAK",
              "size": 10294,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "PRNTPREV PAK",
              "size": 12868,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "PROGMAN  PAK",
              "size": 11696,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "QUEUETST PAK",
              "size": 8228,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "REVERSE  PAK",
              "size": 8280,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "SCRNSAVE PAK",
              "size": 13599,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "SCROLLBA PAK",
              "size": 8734,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "SCROLLER PAK",
              "size": 8771,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "SDIFILE  PAK",
              "size": 9040,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "SLIDER   PAK",
              "size": 10177,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "SRCPOOL  PAK",
              "size": 10253,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "START16  PAK",
              "size": 16470,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "STATIC   PAK",
              "size": 8659,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "STRNGMAX PAK",
              "size": 8316,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "STYLESHT PAK",
              "size": 16384,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "SWAT     PAK",
              "size": 23237,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "SYSINFO  PAK",
              "size": 10934,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "TDW      PAK",
              "size": 22931,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "TESTDIR  PAK",
              "size": 9733,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "TODO     PAK",
              "size": 21472,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "TRANSFER PAK",
              "size": 12537,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "TRUETYPE PAK",
              "size": 16978,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "TVPXOBJ  PAK",
              "size": 10562,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "VALIDATE PAK",
              "size": 9641,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "VBDIALOG PAK",
              "size": 11715,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "VBXCTL   PAK",
              "size": 12083,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "VBXCTRL  PAK",
              "size": 15406,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "WHELLO   PAK",
              "size": 11415,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "XREF     PAK",
              "size": 11708,
              "date": "1994-02-15",
              "time": "4:00"
            }
          ]
        }
      ],
      "volume": "DISK21"
    },
    "22": {
      "dirs": [
        {
          "path": "/",
          "files": [
            {
              "name": "32SINST  INF",
              "size": 5880,
              "date": "1993-07-24",
              "time": "5:11"
            },
            {
              "name": "32SINST  IN_",
              "size": 1485,
              "date": "1993-07-24",
              "time": "5:11"
            },
            {
              "name": "32SINST  MST",
              "size": 12590,
              "date": "1993-07-24",
              "time": "5:11"
            },
            {
              "name": "ADVAPI32 DL_",
              "size": 4074,
              "date": "1993-07-24",
              "time": "5:11"
            },
            {
              "name": "CARDS    DL_",
              "size": 44964,
              "date": "1993-07-24",
              "time": "5:11"
            },
            {
              "name": "COMDLG32 DL_",
              "size": 1704,
              "date": "1993-07-24",
              "time": "5:11"
            },
            {
              "name": "CRTDLL   DL_",
              "size": 145633,
              "date": "1993-07-24",
              "time": "5:11"
            },
            {
              "name": "C_1252   NL_",
              "size": 9970,
              "date": "1993-07-24",
              "time": "5:11"
            },
            {
              "name": "C_437    NL_",
              "size": 10152,
              "date": "1993-07-24",
              "time": "5:11"
            },
            {
              "name": "C_850    NL_",
              "size": 10133,
              "date": "1993-07-24",
              "time": "5:11"
            },
            {
              "name": "DISK22   DSK",
              "size": 6,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "FREECELL EX_",
              "size": 24458,
              "date": "1993-07-24",
              "time": "5:11"
            },
            {
              "name": "FREECELL HL_",
              "size": 12844,
              "date": "1993-07-24",
              "time": "5:11"
            },
            {
              "name": "GDI32    DL_",
              "size": 7919,
              "date": "1993-07-24",
              "time": "5:11"
            },
            {
              "name": "INIUPD   DLL",
              "size": 13824,
              "date": "1993-07-24",
              "time": "5:11"
            },
            {
              "name": "KERNEL32 DL_",
              "size": 47769,
              "date": "1993-07-24",
              "time": "5:11"
            },
            {
              "name": "LZ32     DL_",
              "size": 1660,
              "date": "1993-07-24",
              "time": "5:11"
            },
            {
              "name": "MPR      DL_",
              "size": 1289,
              "date": "1993-07-24",
              "time": "5:11"
            },
            {
              "name": "MSCOMSTF DLL",
              "size": 74528,
              "date": "1993-07-24",
              "time": "5:11"
            },
            {
              "name": "MSCUISTF DLL",
              "size": 23872,
              "date": "1993-07-24",
              "time": "5:11"
            },
            {
              "name": "MSDETECT INC",
              "size": 22097,
              "date": "1993-07-24",
              "time": "5:11"
            },
            {
              "name": "MSDETSTF DLL",
              "size": 24544,
              "date": "1993-07-24",
              "time": "5:11"
            },
            {
              "name": "MSINSSTF DLL",
              "size": 65440,
              "date": "1993-07-24",
              "time": "5:11"
            },
            {
              "name": "MSSHLSTF DLL",
              "size": 14928,
              "date": "1993-07-24",
              "time": "5:11"
            },
            {
              "name": "MSUILSTF DLL",
              "size": 6144,
              "date": "1993-07-24",
              "time": "5:11"
            },
            {
              "name": "NETAPI32 DL_",
              "size": 3708,
              "date": "1993-07-24",
              "time": "5:11"
            },
            {
              "name": "NTDLL    DL_",
              "size": 2534,
              "date": "1993-07-24",
              "time": "5:11"
            },
            {
              "name": "OLECLI   DL_",
              "size": 45404,
              "date": "1993-07-24",
              "time": "5:11"
            },
            {
              "name": "OLECLI32 DL_",
              "size": 6747,
              "date": "1993-07-24",
              "time": "5:11"
            },
            {
              "name": "OLESVR32 DL_",
              "size": 3534,
              "date": "1993-07-24",
              "time": "5:11"
            },
            {
              "name": "REM      EXE",
              "size": 7168,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "SCK16THK DL_",
              "size": 4563,
              "date": "1993-07-24",
              "time": "5:11"
            },
            {
              "name": "SETUP    LST",
              "size": 611,
              "date": "1993-07-24",
              "time": "5:11"
            },
            {
              "name": "SETUP    EXE",
              "size": 24624,
              "date": "1993-07-24",
              "time": "5:11"
            },
            {
              "name": "SETUPAPI INC",
              "size": 55620,
              "date": "1993-07-24",
              "time": "5:11"
            },
            {
              "name": "SHELL32  DL_",
              "size": 1732,
              "date": "1993-07-24",
              "time": "5:11"
            },
            {
              "name": "UNICODE  NL_",
              "size": 4496,
              "date": "1993-07-24",
              "time": "5:11"
            },
            {
              "name": "USER32   DL_",
              "size": 15735,
              "date": "1993-07-24",
              "time": "5:11"
            },
            {
              "name": "VERSION  DL_",
              "size": 1449,
              "date": "1993-07-24",
              "time": "5:11"
            },
            {
              "name": "W32S     38_",
              "size": 18705,
              "date": "1993-07-24",
              "time": "5:11"
            },
            {
              "name": "W32SKRNL DL_",
              "size": 43844,
              "date": "1993-07-24",
              "time": "5:11"
            },
            {
              "name": "W32SYS   DL_",
              "size": 7598,
              "date": "1993-07-24",
              "time": "5:11"
            },
            {
              "name": "WIN32S   EX_",
              "size": 422,
              "date": "1993-07-24",
              "time": "5:11"
            },
            {
              "name": "WIN32S16 DL_",
              "size": 72462,
              "date": "1993-07-24",
              "time": "5:11"
            },
            {
              "name": "WINMM    DL_",
              "size": 24535,
              "date": "1993-07-24",
              "time": "5:11"
            },
            {
              "name": "WINMM16  DL_",
              "size": 11761,
              "date": "1993-07-24",
              "time": "5:11"
            },
            {
              "name": "WINSPOOL DR_",
              "size": 2227,
              "date": "1993-07-24",
              "time": "5:11"
            },
            {
              "name": "WSOCK32  DL_",
              "size": 4238,
              "date": "1993-07-24",
              "time": "5:11"
            },
            {
              "name": "_MSSETUP EXE",
              "size": 9813,
              "date": "1993-07-24",
              "time": "5:11"
            },
            {
              "name": "_MSTEST  EXE",
              "size": 89504,
              "date": "1993-07-24",
              "time": "5:11"
            }
          ]
        }
      ],
      "volume": "DISK22"
    },
    "3": {
      "dirs": [
        {
          "path": "/",
          "files": [
            {
              "name": "DEF_FILE PAK",
              "size": 126,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "DISK3    DSK",
              "size": 5,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "HLP_API  CA1",
              "size": 1456640,
              "date": "1994-02-15",
              "time": "4:00"
            }
          ]
        }
      ],
      "volume": "DISK3"
    },
    "4": {
      "dirs": [
        {
          "path": "/",
          "files": [
            {
              "name": "DISK4    DSK",
              "size": 5,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "HLP_API  CA2",
              "size": 1456640,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "OWLINI   PAK",
              "size": 176,
              "date": "1994-02-15",
              "time": "4:00"
            }
          ]
        }
      ],
      "volume": "DISK4"
    },
    "5": {
      "dirs": [
        {
          "path": "/",
          "files": [
            {
              "name": "DISK5    DSK",
              "size": 5,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "HELPICON PAK",
              "size": 476,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "HLP_API  CA3",
              "size": 1456640,
              "date": "1994-02-15",
              "time": "4:00"
            }
          ]
        }
      ],
      "volume": "DISK5"
    },
    "6": {
      "dirs": [
        {
          "path": "/",
          "files": [
            {
              "name": "DISK6    DSK",
              "size": 5,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "HLP_API  CA4",
              "size": 1456640,
              "date": "1994-02-15",
              "time": "4:00"
            }
          ]
        }
      ],
      "volume": "DISK6"
    },
    "7": {
      "dirs": [
        {
          "path": "/",
          "files": [
            {
              "name": "DISK7    DSK",
              "size": 5,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "HLP_API  CA5",
              "size": 1456640,
              "date": "1994-02-15",
              "time": "4:00"
            }
          ]
        }
      ],
      "volume": "DISK7"
    },
    "8": {
      "dirs": [
        {
          "path": "/",
          "files": [
            {
              "name": "BCW      CA1",
              "size": 1456640,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "DISK8    DSK",
              "size": 5,
              "date": "1994-02-15",
              "time": "4:00"
            }
          ]
        }
      ],
      "volume": "DISK8"
    },
    "9": {
      "dirs": [
        {
          "path": "/",
          "files": [
            {
              "name": "DISK9    DSK",
              "size": 5,
              "date": "1994-02-15",
              "time": "4:00"
            },
            {
              "name": "HLP_BCW  CA1",
              "size": 1456640,
              "date": "1994-02-15",
              "time": "4:00"
            }
          ]
        }
      ],
      "volume": "DISK9"
    }
  },
  "desc_file": "README.TXT",
  "desc_text": "\t\t\t\tWELCOME TO BORLAND C++ 4.0\r\n\r\n\r\nThis README file contains important information about Borland C++.\r\nFor the latest information about Borland C++ and its accompanying\r\nprograms and manuals, read this entire file.\r\n\r\n\r\nTABLE OF CONTENTS\r\n-----------------\r\n1.  How to Get Help\r\n     -Sources of information\r\n2.  Installation\r\n3.  Features\r\n     -Compiler\r\n     -Linker\r\n     -IDE\r\n     -Turbo Debugger\r\n     -Resource Workshop\r\n     -ObjectWindows Library (OWL)\r\n     -VBX Support\r\n     -Documentation\r\n4.  Important Information\r\n\t -Object File Format\r\n\t -Make\r\n\t -Out of Memory and MAKESWAP\r\n\t -Threads\r\n     -New Tools\r\n\t -DDVT functions and RTTI\r\n\t -Inline assembly and interrupts\r\n\t -BC4 path name\r\n\t -Creating 16-bit import libraries from .DEF files\r\n\t -Debugging DDE applications\r\n     -Running from a Windows 3.1 DOS Prompt\r\n\t -Developing under NT\r\n     -C/C++ Language Changes\r\n     -Developing for NT\r\n     -Libraries and Startup Code\r\n     -Compiler and Linker Switch Changes\r\n     -Creating .COM files\r\n     -Converting Borland C++ 3.1 Windows Code to Borland C++ 4.0\r\n     -Changes to the Class Libraries\r\n     -Casting Macros\r\n     -IDE/Integrated Debugging\r\n     -Floating Point Formats\r\n     -Turbo Debugger for Windows\r\n     -Using Tools with NTFS\r\n     -Run-time Type Information and Virtual Destructors\r\n\r\n------------------\r\n1. HOW TO GET HELP\r\n------------------\r\n\r\nSOURCES OF INFORMATION\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\r\n  check the on-line help and the Borland C++ manuals first.\r\n  If you still have a question and need assistance, help is\r\n  available from the following sources:\r\n\r\n  1. For instant on-line access to the Borland forums with\r\n     their libraries of technical information and answers\r\n     to common questions, type\r\n\r\n        GO BCPPDOS     - for questions pertaining to DOS\r\n\r\n         or\r\n\r\n        GO BCPPWIN     - for questions pertaining to Windows\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. Borland offers a wide variety of Technical Support plans\r\n     providing a range of assistance from installation and general\r\n     usage of Borland C++ to language syntax, programming, and\r\n     debugging help. For information about these support programs,\r\n     call 1-800-523-7070.\r\n\r\n  3. Borland's TECHFAX service. Call (800) 822-4269 for a FAX\r\n      catalog of technical document entries.\r\n\r\n  4. Borland DLBBS. Dial (408) 431-5096 (up to 9600 baud, 8-N-1)\r\n      for a host of free technical documents and example programs.\r\n\r\n  5. For immediate assistance with everything from configuring Borland C++\r\n      to programming or debugging, call our C++ Programmer's\r\n      Advisor Lines ($2/minute, first minute free):\r\n            * Windows / Win32:     1-900-555-1002  or 1-800-782-5558 (MC/Visa)\r\n            * DOS :      1-900-555-1004  or 1-800-368-3366 (MC/Visa)\r\n\r\n---------------\r\n2. INSTALLATION\r\n---------------\r\n\r\nIMPORTANT!\r\nDo not install Borland C++ 4.0 files over previously installed Borland\r\nC++ directories. The files in this distribution will not work\r\nwith previously shipped tools and libraries.  This is particularly\r\ntrue for configuration files from previous shipping\r\nreleases, like TDCONFIG.TDW and BCCONFIG.BCW.\r\n\r\nAlso, be especially careful when using object files and libraries\r\nfrom Borland C++ 3.1 with binaries created with this release. There are\r\nseveral potential problems when linking with old objects or libraries.\r\nExceptions won't work correctly (destructors won't get called) when a\r\npre-BC4 stack frame is unwound due to an exception. Also, if a constructor\r\nor destructor compiled with a pre-BC4 compiler is involved in exception\r\nunwinding, trouble may occur. Another potential problem is when an RTTI class\r\nis shared with pre-BC4 code; some cases of that will be caught by the linker,\r\nbut others may fail mysteriously. Try using the -K2 switch to get pre-BC4 code\r\nto link. Note: these problems are C++ specific. C objects between versions\r\nshould be more readily compatible.\r\n\r\n\r\nInstalling Borland C++ 4.0 on your hard disk:\r\n--------------------------------------\r\nInstalling from floppy disks:\r\n     1. Select File|Run from Windows 3.1, Windows for Workgroups 3.1x,\r\n        or Windows NT.\r\n     2. Enter A:INSTALL (or B:INSTALL) on the input line.\r\n     3. Under \"Installation Options\", you have the option of not\r\n        installing Win32s, which should be turned off if you are\r\n        installing under Windows NT.\r\n          (NOTE that BCW does not run under NT, so if you are only using\r\n          NT, you may wish to not install it.)\r\n     4. Fill in directories as appropriate, and INSTALL will create\r\n          appropriate Windows groups, install Win32s, and install the\r\n        new Borland C++ 4.0 software according to the directories you select.\r\n\r\nInstalling from the CD-ROM:\r\n     1. Go to the CD-ROM, and change directories to INSTALL.\r\n     2. Select File|Run from Windows 3.1, Windows for Workgroups 3.1x,\r\n        or Windows NT.\r\n     3. Enter X:INSTALL on the input line (where X: is your CD-ROM drive).\r\n     4. Under \"Installation Options\", you have the option of not\r\n        installing Win32s, which should be turned off if you are\r\n        installing under Windows NT.\r\n     5. Fill in directories as appropriate, and INSTALL will create\r\n        appropriate Windows groups, install Win32s, and install the\r\n        new Borland C++ 4.0 software according to the directories you select.\r\n\r\nTo use the built-in transfer tools and Help, make sure their location is\r\nin your path (the \\BIN directory for Borland C++ 4.0).\r\n\r\nAfter installing, make sure your path is set correctly, and restart\r\nWindows before using Borland C++ 4.0.\r\n\r\nNOTE: If you want to install the Win32s debug kernel, use the\r\nSWITCH.BAT file provided with the Microsoft Win32s tools, found on the\r\nNT SDK CD-ROM distribution.  This will ensure that the proper files\r\nare copied to the appropriate places.  Not copying the files correctly\r\nwill result in obscure load errors.\r\n\r\n\r\nConfiguring Borland Pascal and Borland C++\r\n------------------------------------------\r\nThe install program for Borland C++ 4.0 will configure your system to\r\nallow the use of Borland C++ 4.0 and Borland Pascal 7.0 on the same\r\nmachine.  As long as you have installed Borland Pascal prior to\r\n(rather than after) installing Borland C++ there are very few\r\nguidelines you must follow:\r\n\r\n- The two Windows hosted IDEs may not be run simultaneously.\r\n\r\n- Each must use their respective copies of tools and utilities that\r\n  depend on debug information, most notably Turbo Debugger for Windows\r\n  (TDW).  You may find it useful to rename the Borland Pascal version\r\n  of TDW.EXE to something like BPTDW.EXE to avoid confusing filenames\r\n  in your path.\r\n\r\n- Both versions of TDW may not be run simultaneously.\r\n\r\n- Make sure that old copies of TDW.INI are removed from your system.\r\n  (Running the utility TDWINI.EXE will make sure that this takes\r\n  place.)\r\n\r\nTo reduce disk space requirements, you may wish to remove duplicate\r\nversions of utilities that do not require debug information, such as\r\nWinSight and Resource Workshop.  Use the versions that came with\r\nBorland C++ 4.0 so that you will have the latest features.\r\n\r\nTo use TDWGUI.DLL with TDW version 3.1 you need to add UseTimer=Yes\r\nto the VideoOptions section of TDW.INI.  This option should not be\r\nset when using TDW version 4.0.  This means that you would need to\r\nchange your TDW.INI file by hand each time you switched between\r\nversions of TDW.  For this reason, we recommend the non-windowed\r\nvideo DLLs (such as SVGA.DLL) for customers who debug both BP and BC\r\napplications.\r\n\r\nIf you are installing Borland Pascal 7.0 AFTER Borland C++ 4.0 has\r\nbeen installed, you will have to change by hand the system settings\r\nthat allow these products to coexist:\r\n\r\nIn your SYSTEM.INI file, check your [386Enh] section for multiple\r\nentries for the device TDDEBUG.386.  Remove duplicate entries of\r\nTDDEBUG.386 so that only the version from Borland C++ is loaded.  On\r\ndisk, you may also want to rename or remove the BP7 versions of\r\nTDDEBUG.386 and TDWIN.DLL to avoid their accidental loading.  You\r\nmust restart Windows after making changes to SYSTEM.INI.\r\n\r\n\r\nWin32s and minimum swap file size\r\n---------------------------------\r\nBorland recommends that you have a minimum of 12 MB of memory available to\r\nrun Win32s applications.  For example, if your machine has 8 MB of memory\r\navailable to Windows, you should configure your \"Virtual Memory\" (swapfile)\r\nto at least 4 MB.  This will reduce the risk of out-of-memory errors\r\noccuring in Win32s.\r\n\r\n\r\nNT console applications and Win32s\r\n----------------------------------\r\nThere is no Win32s console, so attempting to run a Win32 console\r\napplication without NT loaded will result in an error.\r\n\r\n\r\nChanges to SYSTEM.INI file\r\n--------------------------\r\nThe install program makes these changes to the SYSTEM.INI file:\r\n\r\n  1) Adds \"device=c:\\bc4\\bin\\windpmi.386\" to support our 32-bit tools.\r\n  2) Adds \"device=c:\\bc4\\bin\\tddebug.386\" to support our debugger.\r\n\r\n\r\nConfiguring the Windows NT command prompt\r\n-----------------------------------------\r\nTo run 16-bit protected-mode programs (bcc, tlink) under an NT command prompt\r\nyou need to add the following line to CONFIG.NT:\r\n\r\n  ntcmdprompt\r\n\r\nUnder the default NT command-line prompt, DOS COMMAND.COM is run after\r\nreturning from a TSR (such as RTM.EXE which bcc and tlink load). Adding the\r\nabove line will cause the original NT CMD.EXE to be run.\r\n\r\n\r\nOutdated versions of Win32s\r\n---------------------------\r\nIf you are running an outdated version of Win32s, the INSTALL program will\r\ninstruct you to remove it before installation.  To remove an old\r\nversion of Win32s perform the following steps:\r\n\r\n  1. Change directory to the WINDOWS directory on your hard drive.  This\r\n     is most likely C:\\WINDOWS.\r\n\r\n  2. Edit the SYSTEM.INI file and remove the line in the [386Enh]\r\n     section that reads:\r\n\r\n       device=C:\\WINDOWS\\SYSTEM\\WIN32S\\W32S.386\r\n\r\n     (The actual path in the above line may be different to reflect your\r\n      configuration.)\r\n\r\n  3. Change directory to the SYSTEM subdirectory.\r\n\r\n  4. Remove the following files:\r\n\r\n       W32SYS.DLL\r\n       WIN32S.INI\r\n       WIN32S16.DLL\r\n\r\n  5. Change directory to the WIN32S subdirectory.\r\n\r\n  6. Remove all files here.\r\n\r\n  7. Change directory back to SYSTEM and remove the WIN32S subdirectory.\r\n\r\nYou will now be ready to run the INSTALL program.  Be sure to select\r\n<Install Win32s> in the INSTALL program so that the newer version of Win32s\r\nwill be installed.\r\n\r\n-----------\r\n3. FEATURES\r\n-----------\r\n\r\nCompiler:\r\n---------\r\n  - Support for writing 16 and 32-bit Windows applications that target\r\n    Windows 3.1, Win32s and Windows NT, and 16-bit DOS applications.\r\n  - Pentium support.\r\n  - Support for ANSI C++ exception handling, structured exception handling\r\n    under C, and mixed C/C++ exception handling. All exception handling\r\n    constructs are available for both 16- and 32-bit.\r\n  - Additional optimizations and faster compile time.\r\n  - Support for ANSI C++ operator new[] and operator delete[].\r\n  - Runtime Library support for the ANSI C++ string class.\r\n  - Support for ANSI C++ runtime type identification (RTTI).\r\n  - Support for ANSI C++ new style casts dynamic_cast, static_cast, const_cast,\r\n    and  reinterpret_cast.\r\n  - Support for three character types as provided in ANSI C++.\r\n\r\nLinker (16-bit and 32-bit):\r\n---------------------------\r\n  - Now handles binding of resources; no need for a separate RC or\r\n    RLINK step.\r\n  - Linker debug capacity expanded.\r\n\r\nIDE\r\n---\r\n  - 16-bit DOS and Windows plus 32-bit Windows targeting from a single IDE.\r\n  - Integrated GUI debugging for 16-bit Windows applications.\r\n  - Includes both 16- and 32-bit tools (compiler, linker, resource\r\n    compiler, resource binder, and library manager)\r\n  - A new project manager that supports multiple targets, drag-and-drop,\r\n    and Style Sheets for associating options.\r\n  - AppExpert, which simplifies the process of creating\r\n    ObjectWindows applications through code generation.\r\n  - ClassExpert, which simplifies adding and managing classes in\r\n    your AppExpert application.\r\n  - Transfers, Settings Notebook, SpeedMenus, and a configurable SpeedBar.\r\n  - Expanded editor support, including column blocking and window\r\n    splitting.  TEMC now called KEYMAPR.\r\n\r\nTurbo Debugger:\r\n---------------\r\n  - Turbo Debugger (TD32) for Win32s and Windows NT.\r\n  - Support for OS exception handling.\r\n  - Support C/C++ exception handling.\r\n  - Windows NT thread support.\r\n  - Video DLL to run TDW in a window.\r\n  - Remote debugging with TDW.\r\n  - Session state saving.\r\n  - Process attach for Windows NT.\r\n  - Turbo Debugger Video Configuration Utility (TDWINI.EXE).\r\n  - Built in large model for greater capacity.\r\n\r\nResource Workshop:\r\n------------------\r\n  - Support for Win32s, Win32.\r\n  - Resource preview\r\n  - DialogExpert\r\n  - Auto ID numbering\r\n  - Auto mapping of accelerators and help hints to menu items\r\n  - Support for VBX controls\r\n  - SpeedMenus\r\n  - Dialog editor property inspector\r\n  - Integrated with ClassExpert and IDE project manager\r\n\r\nObjectWindows Library (OWL)\r\n---------------------------\r\n  - Complete coverage of Windows API, including GDI\r\n  - Single source for Win 3.1, Win 32s, and NT\r\n  - Built in exception handling using standard C++ exceptions for robust error\r\n    handling\r\n  - Built-in type safety using standard C++ templates\r\n  - Toolbars, status lines, and print preview\r\n  - Flexible Document/View architecture\r\n  - Supports VBX 1.0 controls in a dialog or window\r\n  - Layout Windows\r\n  - Mix-in architecture\r\n  - Support for 3d controls\r\n  - Support for BWCC controls\r\n  - Gadgets and Widgets\r\n  - Multi threading support\r\n  - Printing and print previewing support\r\n\r\nVBX Support\r\n-----------\r\nBorland's visual tools, such as Resource Workshop, provide support of VBX 1.0\r\ncontrols via a DLL called BIVBX10.DLL. You can freely distrubute this DLL\r\nwith programs you create that use VBX controls.\r\n\r\nBIVBX10.DLL has been tested with a large number of VBX controls written to the\r\nMicrosoft Visual Basic 1.0 CDK specification. If you have a problem with a\r\nspecific control, make sure that it does not require VB 2.0 or VB 3.0 CDK\r\nfunctionality. VBX 2.0 and 3.0 controls will usually display a message saying\r\nthat they require VB 2.0 or 3.0 support. In some cases, though, the control may\r\nappear to work but exhibit instability. Please contact the control vendor and\r\nexplain the problem. They may have an updated control or may be able to contact\r\nBorland to find a solution.\r\n\r\nDocumentation:\r\n--------------\r\nThis distribution includes printed books and online help to assist\r\nyou in understanding and using the new features of Borland C++ 4.0.\r\n\r\nFor C++ Language and Programming information:\r\n     See the Library Reference, the\r\n     Programmer's Guide, and the DOS Reference.\r\n     See also the online Help.\r\n\r\nFor information on using MAKE, TLINK, and resource tools:\r\n     See the User's Guide.\r\n     See also the online Help.\r\n\r\nFor information on keyboard mapping and KEYMAPR (used to be called TEMC):\r\n     See the online Help.\r\n\r\nFor information on using the IDE, AppExpert & ClassExpert, the Integrated\r\nDebugger, and compiling options:\r\n     See the User's Guide.\r\n     See also the online Help.\r\n\r\nFor information on using the new Project Manager:\r\n     See the online Help.\r\n\r\nFor information on converting your ObjectWindows 1.0 code to\r\nObjectWindows 2.0:\r\n     See the ObjectWindows Programmer's Guide.\r\n     See also the online text file owldoc.wri.\r\n\r\nFor information on programming in ObjectWindows 2.0:\r\n     See the ObjectWindows Reference Guide, and the\r\n     ObjectWindows Programmer's Guide.\r\n     See also the online text file, owldoc.wri.\r\n\r\nFor help using Turbo Debugger:\r\n     See the online text files helpme!.tdw and hints.tdw.\r\n     See also the online Help.\r\n\r\nTo use the online Help, make sure the Borland C++ 4.0 \\BIN directory is\r\non your path.\r\n\r\n\r\n------------------------\r\n4. IMPORTANT INFORMATION\r\n------------------------\r\n\r\nObject File Format\r\n------------------\r\nThis product is designed to use and generate only object files which\r\nadhere to the Intel OMF (Object Module Format) specification. TLINK32\r\nand TLIB only accept files of this format, and all provided libraries\r\nuse this format. There is no support in the linker or librarian for\r\nCOFF object modules produced by Microsoft C tools.\r\n\r\n\r\nMAKE\r\n----\r\nMAKE will not put a space between two sets of file list macros as in BC++ 3.1\r\nand before.  The example makefile below illustrates this; simply execute MAKE\r\nin the directory containing the makefile. The output is:\r\n\r\n   ALLOBJS1 = one onetwo two\r\n   ALLOBJS2 = one one two two\r\n\r\nmakefile:\r\n\r\nOBJS1 = \\\r\n   one \\\r\n   one\r\n\r\nOBJS2 = \\\r\n   two \\\r\n   two\r\n\r\nALLOBJS1 = $(OBJS1)$(OBJS2)\r\nALLOBJS2 = $(OBJS1) $(OBJS2)\r\n\r\n..:\r\n\r\n   @@echo ALLOBJS1 = $(ALLOBJS1)\r\n   @@echo ALLOBJS2 = $(ALLOBJS2)\r\n\r\n\r\nOut of Memory and MAKESWAP \r\n-------------------------- \r\n\r\nIf you get \"Out of Memory\" errors from DOS when running the\r\ncommand-line tools, or if you have only 8 MB of RAM and have\r\nout-of-memory problems building and using 32-bit applications,\r\nthen create a swap file with the MAKESWAP utility.  (Note that\r\nthis applies to DOS only, not to DOS boxes opened under\r\nWindows.) MAKESWAP takes the size of the file to create in\r\nKBytes, for example\r\n\r\n  MAKESWAP 12000\r\n\r\nwill create a 12MB swap file in the current directory called EDPMI.SWP\r\nfor use by Borland command-line tools.  To enable the swap file, use\r\nthe DPMI32 environment variable by issuing the following command at\r\nthe DOS prompt:\r\n\r\n  set DPMI32=SWAPFILE <location of swap file>\\EDPMI.SWP\r\n\r\nYou must clear this environment variable by issuing the command\r\n\r\n  set DPMI32=\r\n\r\nbefore running Paradox or other 16-bit DPMI-hosted executables,\r\nsuch as Borland C++ 3.1 command-line tools.\r\n\r\n\r\nThreads\r\n-------\r\nWhen creating secondary threads, the _beginthread or _beginthreadNT\r\nand _endthread() RTL functions must be used to ensure the proper RTL\r\ninitialization and cleanup. Using NT's CreateThread and ExitThread\r\nfunctions will result in undefined behavior if an implicit or\r\nexplicit call is made to the RTL. Both exception handling and RTTI\r\ncan lead to implicit RTL calls.\r\n\r\n\r\nDDVT functions and RTTI\r\n-----------------------\r\nWhen compiling code that contains DDVT functions, do not use run-time\r\ntype information or you will receive an error message. In order to\r\ncompile without using run-time type information, compile all code\r\nthat uses DDVTs (for instance OWL 1.0x libraries and applications)\r\nwith the -RT- switch (Options|Project|C++ Options|Exception\r\nhandling\\RTTI in the IDE).\r\n\r\n\r\nInline assembly and interrupts\r\n------------------------------\r\nIf your inline assembly code includes an interrupt call, the compiler does not\r\npreserve any registers altered by the call. You must write code to save and\r\nrestore registers when using interrupt calls within inline assembly code.\r\n\r\n\r\nBC4 path name\r\n------------------\r\nAny occurrence of BORLANDC in the BC++ 4.0 path should be replaced with BC4.\r\n\r\n\r\nCreating 16-bit import libraries from .DEF files\r\n------------------------------------------------\r\nUse the /o implib switch when creating 16-bit import libraries from .DEF files\r\nto prevent implib from generating extensions for import entry module names.\r\n\r\n\r\nDebugging DDE applications\r\n--------------------------\r\nDDE applications must be debugged in hard mode.\r\n\r\n\r\nNew Tools\r\n----------\r\nThe 16-bit linker has been modified in this version to allow for more than 64K\r\nsymbols in the executable's symbol table. The following tools have changed to\r\nconform to the resulting new debug information format:\r\n\r\n  TDW\r\n  TDUMP\r\n  Turbo Debugger (standalone)\r\n  IDE Debugger\r\n  IDE Browser\r\n\r\nThese tools have versioning information, so that if you attempt to use any of\r\nthem with executables created in prior versions, an error message will result.\r\nYou will then need to relink your executables.\r\n\r\nIf you don't see correct dump information when using TDUMP version 4.1 on your\r\nexecutables, check the header at the top of the output. If it does not indicate\r\nversion 4.0 debug information, the associated .EXE file must be recompiled with\r\nversion 4.0 tools.\r\n\r\n\r\nRunning from a Windows 3.1 DOS Prompt\r\n-------------------------------------\r\nIf you run BCC or TLINK from a Windows DOS box and you get\r\nout of memory errors, increase the XMS memory (in the 'Maximum'\r\nsetting) allocated for the DOS box by editing the appropriate .PIF\r\nfile (usually DOSPRMPT.PIF). BCC.EXE needs about 4MB to compile\r\nmedium-sized .CPP files, and might need more memory for large .CPP\r\nfiles with debugging information.\r\n\r\nNOTE: You must set the 'Maximum:' setting to the amount needed, not\r\n      the 'Required:' setting.  Using the 'Required:' setting only\r\n      sets aside memory for XMS, NOT for DPMI services and hence\r\n      any amount set in the 'Required:' setting box is unavailable.\r\n\r\n\r\nDeveloping under NT\r\n-------------------\r\nTo do development on NT, use the command-line tools, Resource\r\nWorkshop, and TD32. The IDE is not currently supported under Windows\r\nNT.\r\n\r\n\r\nC/C++ Language Changes\r\n----------------------\r\nMany changes were made to the compiler in compliance with the\r\nlatest changes proposed by the ANSI C++ committee.  These include\r\nthree distinct char types, enhancements to templates, support for\r\nvirtual functions differing in return types, and other improvements\r\nlisted here.  See the Library Reference and the Programmer's Guide\r\nfor complete details on these changes and how they affect your\r\ncode.\r\n\r\nwchar_t is a fundamental data type in C++ programs. In C programs it\r\ncontinues to be a typedef defined in stddef.h. See online Help.\r\n\r\nEnum operator overloading is also supported.\r\n\r\nThe runtime library now supports the ANSI C++ string class.  If you\r\nalready have a string class, it must be renamed for Borland C++ 4.0.\r\n\r\nIn addition, operator new and operator new[] now throw an\r\nexception (xalloc), as specified by the ANSI C++ committee.\r\nTo get the old behavior, you can issue set_new_handler(0). \r\n(set_new_handler(0), however, does not work with ObjectWindows\r\nor string classes.) See Chapter 3 of the Programmer's Guide.\r\n\r\nArrays are now being allocated through operator new[]() and deleted\r\nby operator delete[](). An example is provided in Chapter 3 of the\r\nProgrammer's Guide.\r\n\r\nBorland C++ 4.0 implements ANSI C++ runtime type identification (RTTI). See\r\nthe Library Reference, \"C++ runtime support\",  for a description of\r\nclass Type_info. RTTI and operator typeid() are fully described in\r\nChapter 3 of the Programmer's Guide.\r\n\r\nBorland C++ 4.0 provides a full implementation of exception handling\r\nunder C++ and C.  C exceptions can be handled in C or C++ code;\r\nC++ exceptions can be handled only in C++ code. The C++ exceptions are\r\ndescribed in the Library Reference, \"C++ run-time support.\" See Chapter 4\r\nof the Programmer's Guide for a full description of how to use exception\r\nhandling.\r\n\r\nBorland C++ 4.0 also implements the accepted ANSI C++ new style casts.\r\nSee the Chapter 3 of the Programmer's Guide for information and\r\nexamples.\r\n\r\n\r\nLibraries and Startup Code\r\n--------------------------\r\nThe contents of the LIB directory are described in the online Help.\r\nSee the DOS Reference for a description of DOS-only libraries and\r\nstart-up code.\r\n\r\nThere are two new functions that provide access to 32-bit operating system\r\nfile handles. See online Help for a description of _open_osfhandle and\r\n_get_osfhandle.\r\n\r\nMember function Type_info::fname() is not available.\r\n\r\nSeveral global variables and library functions have been renamed. See the\r\nLibrary Reference, Chapter 1.\r\n\r\n\r\nCompiler and Linker Switch Changes\r\n----------------------------------\r\nSee the User's Guide for information on new compiler and linker switches.\r\n\r\nYou may get this 32-bit Linker warning:\r\n     Warning: External symbol <XX> was not qualified with __import in\r\n       module <YY>\r\nIf the symbol <XX> is a function, you can ignore this warning.  If\r\nthe symbol <XX> is data, then you must qualify the symbol with __import.\r\n\r\nBCC32 provides support for the Pentium processor. This support is enabled\r\nby the -5 compiler switch.\r\n\r\n\r\nCreating .COM Files\r\n-------------------\r\nCreating .COM files requires setting the compiler to the tiny memory\r\nmodel, telling the linker to make a .COM file, and linking to the\r\nCT.LIB library.  The IDE does not generate .COM files but the\r\ncommand-line tools do.  For example:\r\n\r\n     bcc -mt -lt file.cpp ct.lib\r\n\r\n\r\nConverting Borland C++ 3.1 Windows Code to Borland C++ 4.0\r\n----------------------------------------------------------\r\nTo get your BC++ 3.1 code to compile and run under Borland C++ 4.0,\r\nmodify your code to reflect three character types where compiler\r\nerrors occur when using the Borland C++ 4.0 RTL includes.\r\nAlternatively, you can use the -K2 compiler option with the RTL\r\nincludes from BC++ 3.1. This option provides for only two character\r\ntypes. (Note that -K2, a backward compatibility switch, is supported\r\nonly in the 16-bit compiler.) Also, use operator new[]() and\r\ndelete[]() syntax for class arrays.\r\n\r\nCertain 32-bit to 8-bit conversions allowed by ANSI are flagged by\r\nBCC32 with \"Conversion may lose significant digits in function\r\nXXXXX\".  You can safely ignore this message if you are doing certain\r\ntypes of 32-bit to 8-bit casts (for instance, int to char) and you're\r\nnot worried about losing significant digits in those cases.\r\n\r\n\r\nChanges to the Class Libraries\r\n------------------------------\r\nOnly the version of the class library implemented with C++ templates\r\nis distributed and directly supported in Borland C++ 4.0.\r\n\r\nThe class library \"object-based\" include files are provided in the\r\n\\BC4\\INCLUDE\\CLASSLIB\\OBSOLETE subdirectory.  The object-based\r\nlibraries themselves are not supplied, but can be built using the\r\ninstructions found in the \\BC4\\SOURCE\\CLASSLIB makefile (see the\r\ncomments located there).\r\n\r\nTSArray and TSArrayIterator classes have been added to the class libraries.\r\nThey are aliases for TSArrayAsVector and TSArrayAsVectorIterator.\r\n\r\nThe Flush and Delete member functions for direct containers (except\r\ndictionaries) no longer take a delete parameter (this parameter had been\r\nignored since direct containers have their own copy of the contained element).\r\nFor example:\r\n\r\n  TMArrayAsVector<double> arr(10);\r\n  arr.Flush(); // legal\r\n  arr.Flush(1);     // illegal - causes syntax error\r\n  arr.Detach(index);     // legal\r\n  arr.Detach(index,1);   // illegal - causes syntax error\r\n\r\n  TMIArrayAsVector<double> arr1(10);\r\n  arr1.Flush();     // legal\r\n  arr1.Flush(1);    // legal.\r\n  arr1.Detach(index); // legal\r\n  arr1.Detach(index,1); // legal\r\n\r\nBag and set container member function FindMember is now called Find.\r\nIt takes the same parameters.\r\n\r\nAssociation containers now have a member function called DeleteElements:\r\n\r\n  void DeleteElements()\r\n\r\nThe dictionary containing the associations determines whether pointed-to\r\nobjects should be deleted, and, if so, calls DeleteElements for each of\r\nthe associations it holds. The Detach and Flush member functions for the\r\nTMDictionaryAsHashTable template (and all templates derived from it)\r\nhave been changed to the following:\r\n\r\n  int Detach( const T &t, DeleteType dt = DefDelete )\r\n\r\n  void Flush( DeleteType dt = DefDelete )\r\n\r\nThese changes to the direct versions of the dictionary templates make\r\nthem similar to an indirect container in how they handle object\r\nownership. Here is an example:\r\n\r\n  TDIAssociation<int,int> assoc( 3, new int(4) ); //create an association\r\n  TDictionaryAsHashTable<int,int> dict; //create a dictionary\r\n  dict.Add( assoc ); //copy assoc into the dictionary\r\n  dict.OwnsElements(); //tell dict that it should delete pointed-to objects\r\n  dict.Flush(); //delete the int created by new in the first line\r\n\r\nAll list and double-list containers now have the DetachAtHead member\r\nfunction.  This function removes items from the head of a list\r\nwithout searching for a match. The syntax is\r\n\r\n  int DetachAtHead() // for direct lists\r\n\r\n  int DetachAtHead( int del = 0 ) //for indirect lists\r\n\r\nExample:\r\n\r\n  TMListImp<MyObject>list; //create list to hold MyObjects\r\n  list.Add(MyObject()); //construct a MyObject, add to list\r\n  list.Add(MyObject()); //add second MyObject\r\n  list.DetachAtHead(); //remove MyObject at head of list\r\n\r\n\r\nChanges to class diagnostics\r\n----------------------------\r\nPreviously, in order to create a diagnostic group you had to declare it\r\nand define it in the same file:\r\n\r\n  DIAG_DECLARE_GROUP(Sample);\r\n  DIAG_DEFINE_GROUP(Sample, 1, 0);\r\n\r\nWe also provided a macro that did both together:\r\n\r\n  DIAG_CREATE_GROUP(Sample, 1, 0);\r\n\r\nA change in the diagnostic software makes it illegal to have both\r\nDECLARE and DEFINE in the same file. So code that creates a diagnostic\r\ngroup now does it in one step:\r\n\r\n  DIAG_DEFINE_GROUP(Sample, 1, 0);\r\n\r\nDIAG_CREATE_GROUP has been removed. DIAG_DECLARE_GROUP still creates an\r\nextern declaration for a diagnostic group (see file CHECKS.H and CHECKS.CPP).\r\n\r\nCode that uses both DIAG_DECLARE_GROUP and DIAG_DEFINE_GROUP in the same\r\nfile must be changed to remove DIAG_DECLARE_GROUP.\r\n\r\nOld code:\r\n\r\n  DIAG_DECLARE_GROUP(Sample);\r\n  DIAG_DEFINE_GROUP(Sample, 1, 0);\r\n\r\nNew code:\r\n\r\n  DIAG_DEFINE_GROUP(Sample, 1, 0);\r\n\r\nAny use of DIAG_CREATE_GROUP must be changed to DIAG_DEFINE_GROUP.\r\n\r\nOld code:\r\n  DIAG_CREATE_GROUP(Sample, 1, 0);\r\n\r\nNew code:\r\n\r\n  DIAG_DEFINE_GROUP(Sample, 1, 0);\r\n\r\nAlso if a header file uses DIAG_DECLARE_GROUP (so that the group\r\ndeclaration is automatically available to files that #include the\r\nheader) the source file that contains the DIAG_DEFINE_GROUP\r\ninvocation for that group will generate a redefinition error (this\r\nisn't done anywhere in OWL or class lib). The solution here is to\r\nconditionalize the header file so that the declaration goes away when\r\nthe source file with the DIAG_DEFINE_GROUP invocation is built:\r\n\r\n     foo.h\r\n     -----\r\n     #if !defined( BUILD_FOO_GROUP )\r\n     DIAG_DECLARE_GROUP( Foo );\r\n     #endif\r\n\r\n     foo.cpp\r\n     -------\r\n     #define BUILD_FOO_GROUP\r\n     #include \"foo.h\"\r\n\r\n\r\nChanges to Object Streaming\r\n---------------------------\r\nThe implementation of Object Streaming formerly used in ObjectWindows\r\nand Turbo Vision has been moved into the class library. Several \r\nchanges have been made to the streaming mechanism, but they should be\r\ntransparent to existing class library code.  See the Programmer's\r\nGuide for details on streaming.\r\n\r\nThe header file OBJSTRM.H defines several macros that will make creating\r\nstreamable objects easier. See that header file for details.\r\n\r\nThere are two types of streamable objects:\r\n - Resident objects which may be streamed out but which are not reconstructed\r\n   when streamed back in\r\n - Dynamic objects which are reconstructed when streamed in\r\n\r\nResident objects include static objects and objects present when an\r\napplication starts, such as its main window. These objects must be streamed\r\nout via a reference rather than via a pointer.\r\n\r\nDynamic objects, on the other hand, must be streamed out via pointers,\r\ncausing them to be reconstructed when streamed back in.\r\n\r\nResident objects must be streamed out before any objects which stream out\r\npointers to the resident objects, else duplicate objects will be constructed\r\nwhen streaming in.\r\n\r\nWhen streaming objects in, Streamer::Read must insure that all data fields\r\nare initialized because the streaming constructor doesn't initialize any of\r\nthe data fields. Any data members not streamed in must be set to meaningful\r\nvalues. Care must be taken to initialize the members before streaming in base\r\nclass data or pointers to objects which have pointers back to the current\r\nobject. Virtual functions are enabled in Streamer::Read.\r\n\r\n\r\nChanges to the string class\r\n---------------------------\r\nThe following sections correct string class member function definitions.\r\n\r\n  size_t find_first_of( const string _FAR &s ) const\r\nLocates the first occurrence in the target string of any character contained\r\nin string s. If the search is successful find_first_of returns the character\r\nlocation. If the search fails it returns NPOS.\r\n\r\n  size_t find_first_of( const string _FAR &s, size_t pos ) const\r\nLocates the first occurrence in the target string of any character contained\r\nin string s after position pos. If the search is successful, it returns the\r\ncharacter position within the target string. If the search fails or if\r\npos > length(), it returns NPOS.\r\n\r\n  size_t find_first_not_of( const string _FAR &s) const\r\nLocates the first occurrence in the target string of any character not\r\ncontained in string s. If the search is successful, find_first_not_of returns\r\nthe character position within the target string. If the search fails it\r\nreturns NPOS.\r\n\r\n  size_t find_first_not_of( const string _FAR &s, size_t pos ) const\r\nLocates the first occurrence in the target string of any character not\r\ncontained in string s after position pos. If the search is successful\r\nfind_first_not_of returns the character position within the target string.\r\nIf the search fails or if pos > length(), find_first_not_of returns NPOS.\r\n\r\n  size_t find_last_of( const string _FAR &s ) const\r\nLocates the last occurrence in the target string of any character contained in\r\nstring s. If the search is successful find_last_of returns the character\r\nposition within the target string. If the search fails it returns 0.\r\n\r\n  size_t find_last_of( const string _FAR &s, size_t pos ) const\r\nLocates the last occurrence in the target string of any character contained in\r\nstring s after position pos. If the search is successful find_last_of returns\r\nthe character position within the target string. If the search fails or if\r\npos > length(), find_last_of returns NPOS.\r\n\r\n  size_t find_last_not_of( const string _FAR &s ) const\r\nLocates the last occurrence in the target string of any character not\r\ncontained in string s. If the search is successful find_last_not_of returns\r\nthe character position within the target string. If the search fails it\r\nreturns NPOS.\r\n\r\n  size_t find_last_not_of( const string _FAR &s, size_t pos ) const\r\nLocates the last occurrence in the target string of any character not\r\ncontained in string s after position pos. If the search is successful\r\nfind_last_not_of returns the character position within the target string. If\r\nthe search fails or if pos > length(), find_last_not_of returns NPOS.\r\n\r\nThe assign member funtion\r\n\r\n     assign(const string&, size_t = NPOS);\r\n\r\nwas changed to\r\n\r\n     assign(const string&, size_t = 0, size_t = NPOS);\r\n\r\nThe size_t parameter in the old version was the number of characters\r\nto copy. In the new version that is the second size_t parameter; the\r\nfirst one is the position in the passed string to start copying.\r\nFor example:\r\n\r\n     string s1 = \"abcdef\";\r\n     string s2;\r\n     s2.assign( s1, 2, 3 );\r\n\r\nAfter executing this code, s2 should contain \"cde\".\r\n\r\nThe same change was made in several other functions. \r\n\r\n     string(const string _FAR &, size_t, size_t);\r\n     string(const char _FAR *, size_t, size_t);\r\n     string(const char __far *, size_t, size_t);\r\n     assign(const string _FAR &, size_t, size_t);\r\n     append(const string _FAR &, size_t, size_t);\r\n     append(const char _FAR *, size_t, size_t);\r\n     prepend(const string _FAR&, size_t, size_t);\r\n     prepend(const char _FAR*, size_t, size_t);\r\n     compare(const string _FAR&, size_t, size_t);\r\n     insert(size_t, const string _FAR&, size_t, size_t);\r\n     replace(size_t, size_t, const string _FAR&, size_t, size_t);\r\n\r\n\r\nCasting Macros\r\n--------------\r\nThe following casting macros have been provided, and are defined in\r\n\\BC4\\INCLUDE\\CLASSLIB\\DEFS.H:\r\n\r\n  TYPESAFE_DOWNCAST(object,toClass)\r\nConverts the pointer referred to by 'object' into a pointer to an object of\r\ntype 'toClass'. The macro parameters to TYPESAFE_DOWNCAST are in the\r\nopposite order from the rest of the macros here. When using a compiler that\r\nsupports new style casts and runtime type information this is done with\r\ndynamic_cast<> and will return 0 if the cast cannot be done. When using a\r\ncompiler that does not support new-style casts and runtime type information\r\nthis is done with fake runtime type information generated by the\r\nIMPLEMENT_CASTABLE macro.\r\n\r\n  STATIC_CAST(targetType,object)\r\nConverts the data object referred to by 'object' into the type referred to\r\nby 'targetType'. When using a compiler that supports new style casts, this is\r\ndone with static_cast<> and will fail if the cast cannot be done without\r\nruntime type information. When using a compiler that does not support new-style\r\ncasts, this is done with an old-style dangerous cast.\r\n\r\n  CONST_CAST(targetType,object)\r\nConverts the data object referred to by 'object' into the type referred to\r\nby 'targetType'. When using a compiler that supports new style casts, this\r\nis done with const_cast<> and will fail if the cast changes the type of the\r\nobject in any way other than adding or removing const and volatile qualifiers.\r\nWhen using a compiler that does not support new-style casts, this is done with\r\nan old-style dangerous cast.\r\n\r\n  REINTERPRET_CAST(targetType,object)\r\nConverts the data object referred to by 'object' into the type referred to\r\nby 'targetType'. When using a compiler that supports new style casts, this\r\nis done with reinterpret_cast<>. When using a compiler that does not support\r\nnew-style casts, this is done with an old-style dangerous cast.\r\n\r\n\r\nIDE/Integrated Debugging\r\n------------------------\r\nUsing the IDE under NT is not currently supported.\r\n\r\nThe default extension for Borland C++ 4.0 project files is .IDE.\r\n\r\nUsing the Microsoft DBWIN utility interferes with the Event log's\r\nability to display those same messages. To see those messages in\r\nthe Event log, either quit DBWIN or select Options|No Output in DBWIN.\r\n\r\nProject style sheets are inherited from the default project when you select\r\nProject|New. You can set inheritance using the following option in the BCW.INI\r\nfile:\r\n   [projects]\r\n   inherit=0\r\nwhere 0 inherits from the default project, 1 from the previous project,\r\nand 2 from the shipping defaults (which are unchangeable).\r\n\r\nThe following listing explains some of the more useful BCW.INI settings:\r\n\r\n[ToolDir]              ;BCW's default paths\r\nBcInclude=\\bc4\\include ;Default Include path, MPD Directories\r\nBcLib=\\bc4\\lib         ;Default Lib path, MPD Directories\r\n\r\n[Project]\r\nsaveastext=1 ;PDL file with Style Sheets and Modified tools\r\nreadastext=1 ;Read Style Sheets and Tools\r\n\r\n[IDE]\r\nHelpDir=C:\\BC4\\BIN            ;where to find the help files\r\nDefaultDesktopDir=C:\\BC4\\BIN\\ ;where to find bcconfig.bcw,\r\n                              ;bcwdef.bcw/dsw,*.tok,*.ckb\r\n\r\nIf you step over or into a throw() call, the application will run\r\nuntil it reaches a breakpoint or program termination, instead of\r\nstopping at the appropriate catch() function. To debug catch()\r\nfunctions, you must set breakpoints within them.\r\n\r\nRun to Cursor (F4) will do nothing if the source line you wish to run\r\nto is the same source line that the execution point is on. Thus,\r\nusing F4 to iterate through any loop structure will not work.\r\nInstead, set a breakpoint on a line in the loop and use Ctrl-F9\r\n(Debug|Run) to iterate through the loop. Once finished with the loop,\r\nthe breakpoint can be removed.\r\n\r\nThe following combination of events will cause unusual behavior:\r\n\r\n  - Placing breakpoints in Windows procedures or OWL event handler which will\r\n    receive WM_KILLFOCUS or WM_WINDOWPOSCHANGED messages.\r\n  - Shifting focus from this application while debugging, directly to the IDE.\r\n\r\nWhen focus is changed from the application being debugged to the IDE,\r\nWindows initiates an intertask SendMessage from the IDE to the\r\napplication. But the breakpoint prevents SendMessage from completing,\r\nputting Windows into an unstable state. Many GUI debuggers silently\r\nignore a breakpoint in this situation. The Borland Integrated\r\nDebugger displays a message box warning of this situation giving you\r\nthe choice of ignoring the breakpoint and continuing the application\r\nor aborting the application so you can make further changes to the\r\ncode or placement of breakpoints before running again. The best way\r\nto avoid this situation is to not click on the IDE when you have a\r\nbreakpoint in the Window procecure or OWL event handler that could\r\nstop due to an intertask SendMessage from the IDE. Instead click on\r\nsome other application like the Program Manager. This will still\r\nresult in the WM_KILLFOCUS and related messages and the intertask\r\nSendMessage, but the initiating task will not be the IDE and thus\r\ncompletely avoids the Windows instability.\r\n\r\nA further note: the first click of the mouse on the IDE immediately\r\ninitiates the MessageBox and the click in the OK box is the next\r\nmouse event captured, so interesting visual effects may occur\r\ndepending on where that first mouse click occurred. For example, if\r\nthe first click was in the title bar of the IDE, the second click (in\r\nthe MessageBox OK) will result in a move of the IDE Window from its\r\noriginal location to the location of the OK mouse click. If this\r\nhappens, move the IDE back to where you want it.\r\n\r\n\r\nFloating Point Formats\r\n----------------------\r\nFloating point formats are a collection of formatting information used to\r\nmanipulate floating point numbers in certain runtime library functions such as\r\nscanf() and atof().\r\n\r\nThis section discusses why you might get the error\r\nFLOATING POINT FORMATS NOT LINKED : ABNORMAL PROGRAM TERMINATION and tells\r\nyou how to resolve it.\r\n\r\nThere are no current plans to fix this because it is not a bug. The\r\nintent is to avoid linking the floating point formats (about 1K of\r\noverhead) when they are not required.  The tradeoff is that the\r\nprogrammer must explicitly request that the floating point formats be\r\nlinked in for some programs that manipulate floats in a limited and\r\nspecific fashion.\r\n\r\nBecause you can get the error in a number of different ways, check the\r\nfollowing list of potential causes to find out how to resolve the error.\r\nThese are listed in order of most common to least common causes.\r\n\r\n  1.  CAUSE:  Floating point set to <None>.  You have your\r\n      floating point option set to None when it should be set to\r\n      either Fast or Normal.\r\n\r\n      FIX:  Set Floating Point to Fast or Normal.\r\n\r\n  2.  CAUSE:  Either the compiler is overoptimizing, or the\r\n      floating point formats really do need to be linked in because\r\n      your program manipulates floats in a limited and specific\r\n      fashion.  Under certain obscure conditions, the compiler will\r\n      ignore floating point usage in scanf().  (e.g., trying to\r\n      read into a float variable that is part of an array contained\r\n      in a structure.)\r\n\r\n      FIX: Add the following to one source module:\r\n\r\n              extern _floatconvert;\r\n              #pragma extref _floatconvert\r\n\r\n  3.  CAUSE:  Forgetting to put the address operator & on the scanf\r\n      variable expression.  For example,\r\n          float foo;\r\n          scanf(\"%f\", foo);\r\n\r\n      FIX:  Change the code so that the & operator is used where it\r\n      is needed.  For example, the above code should be\r\n          float foo;\r\n          scanf(\"%f\", &foo);\r\n\r\n\r\nTurbo Debugger for Windows\r\n--------------------------\r\nYou can use TD32 to debug under Win32s. However, to do so, you must\r\nensure you use SVGA.DLL or equivalent support in the VideoDLL entry\r\nin the [TurboDebugger] section of TDW.INI.\r\n\r\nTD32 can support dual monitor debugging under Win32s. Ensure that\r\na monochrome adapter is installed in your machine and set the\r\nMono=yes flag in the [VideoOptions] section of TDW.INI:\r\n\r\n     [VideoOptions]\r\n     MONO=yes\r\n\r\nSee the online text file called td_help!.txt for more information on\r\nusing TD32 and TDW.\r\n\r\n\r\nUsing Tools with NTFS\r\n---------------------\r\nWhen using Borland C++ 4.0 tools under NTFS, be aware of assumptions\r\nabout file extensions. If Borland C++ 4.0 tools see an extension,\r\nthey assume no default. Therefore, with \"bcc32 test.1.cpp\", BCC32\r\nspawns TLINK32 with \"-ap c0x32.obj test.1, test.1, import32 cw32\".\r\nAs TLINK32 sees an extension on test.1, it makes NO assumptions about\r\na .obj or .exe extension.  It attempts to look for test.1 (instead of\r\ntest.1.obj) and to create test. (instead of test.1.exe).\r\n\r\nEmbedded blanks in filenames are not currently supported. For\r\ninstance, under the Windows NT NTFS file system it is legal to have a\r\nfile named \"This is an interesting file name.cpp\". The response file\r\nprocessing in our 32-bit tools cannot handle this type of file.\r\n\r\n16-bit tools running on NT cannot use NTFS filenames.\r\n\r\n\r\nRun-time Type Information and Virtual Destructors\r\n-------------------------------------------------\r\nWhen -xd is enabled, a pointer to a class with a virtual destructor can't\r\nbe deleted if that class is not compiled with -RT. The -RT and -xd options\r\nare on by default.\r\n\r\nEXAMPLE\r\n\r\n  // Compiled with -RT- and -xd\r\n  class A {\r\n  public:\r\n     virtual ~A() {}\r\n  };\r\n\r\n  void func(A *Aptr ) {\r\n     delete Aptr;  // Error. 'A' is not a polymorphic class type\r\n  }"
}