{
  "disks": {
    "1": {
      "dirs": [
        {
          "path": "/",
          "files": [
            {
              "name": "INSTALL  EXE",
              "size": 71178,
              "date": "1992-06-10",
              "time": "3:10"
            },
            {
              "name": "UNZIP    EXE",
              "size": 23044,
              "date": "1992-06-10",
              "time": "3:10"
            },
            {
              "name": "README   COM",
              "size": 4217,
              "date": "1992-06-10",
              "time": "3:10"
            },
            {
              "name": "CLIBSRC  ZIP",
              "size": 60158,
              "date": "1992-06-10",
              "time": "3:10"
            },
            {
              "name": "CLIBSRC1 ZIP",
              "size": 83090,
              "date": "1992-06-10",
              "time": "3:10"
            },
            {
              "name": "CMDLG31  ZIP",
              "size": 7736,
              "date": "1992-06-10",
              "time": "3:10"
            },
            {
              "name": "DISK1    DSK",
              "size": 5,
              "date": "1992-06-10",
              "time": "3:10"
            },
            {
              "name": "FILELIST DOC",
              "size": 123806,
              "date": "1992-06-10",
              "time": "3:10"
            },
            {
              "name": "INCLUDE  ZIP",
              "size": 61610,
              "date": "1992-06-10",
              "time": "3:10"
            },
            {
              "name": "TD       CA2",
              "size": 228559,
              "date": "1992-06-10",
              "time": "3:10"
            },
            {
              "name": "TDW      CA2",
              "size": 75828,
              "date": "1992-06-10",
              "time": "3:10"
            },
            {
              "name": "WHELP2   CAB",
              "size": 330131,
              "date": "1992-06-10",
              "time": "3:10"
            },
            {
              "name": "WINLBSRC ZIP",
              "size": 82217,
              "date": "1992-06-10",
              "time": "3:10"
            },
            {
              "name": "README",
              "size": 56343,
              "date": "1992-06-10",
              "time": "3:10"
            }
          ]
        }
      ],
      "volume": "DISK 1"
    },
    "10": {
      "dirs": [
        {
          "path": "/",
          "files": [
            {
              "name": "DISK10   DSK",
              "size": 6,
              "date": "1992-06-10",
              "time": "3:10"
            },
            {
              "name": "DLOBJ    ZIP",
              "size": 36744,
              "date": "1992-06-10",
              "time": "3:10"
            },
            {
              "name": "DRAG     ZIP",
              "size": 7235,
              "date": "1992-06-10",
              "time": "3:10"
            },
            {
              "name": "IDE      ZIP",
              "size": 43927,
              "date": "1992-06-10",
              "time": "3:10"
            },
            {
              "name": "IOSTRSRC ZIP",
              "size": 41025,
              "date": "1992-06-10",
              "time": "3:10"
            },
            {
              "name": "MFILEAPP ZIP",
              "size": 4414,
              "date": "1992-06-10",
              "time": "3:10"
            },
            {
              "name": "OWLHELP  ZIP",
              "size": 13642,
              "date": "1992-06-10",
              "time": "3:10"
            },
            {
              "name": "OWLLIB   CA1",
              "size": 361472,
              "date": "1992-06-10",
              "time": "3:10"
            },
            {
              "name": "OWLPEN   ZIP",
              "size": 5328,
              "date": "1992-06-10",
              "time": "3:10"
            },
            {
              "name": "OWLPRINT ZIP",
              "size": 17118,
              "date": "1992-06-10",
              "time": "3:10"
            },
            {
              "name": "PROGTALK ZIP",
              "size": 7415,
              "date": "1992-06-10",
              "time": "3:10"
            },
            {
              "name": "SCRNSAVE ZIP",
              "size": 6905,
              "date": "1992-06-10",
              "time": "3:10"
            },
            {
              "name": "SHELLAPI ZIP",
              "size": 4672,
              "date": "1992-06-10",
              "time": "3:10"
            },
            {
              "name": "SOUNDPLY ZIP",
              "size": 51235,
              "date": "1992-06-10",
              "time": "3:10"
            },
            {
              "name": "STEPS    ZIP",
              "size": 32303,
              "date": "1992-06-10",
              "time": "3:10"
            },
            {
              "name": "SYSINFO  ZIP",
              "size": 4355,
              "date": "1992-06-10",
              "time": "3:10"
            },
            {
              "name": "TCALC    ZIP",
              "size": 23700,
              "date": "1992-06-10",
              "time": "3:10"
            },
            {
              "name": "TTT      ZIP",
              "size": 6404,
              "date": "1992-06-10",
              "time": "3:10"
            },
            {
              "name": "TVSRC    ZIP",
              "size": 170986,
              "date": "1992-06-10",
              "time": "3:10"
            },
            {
              "name": "WHELP1   CA1",
              "size": 361472,
              "date": "1992-06-10",
              "time": "3:10"
            },
            {
              "name": "WLOBJ    ZIP",
              "size": 3074,
              "date": "1992-06-10",
              "time": "3:10"
            },
            {
              "name": "WSOBJ    ZIP",
              "size": 2867,
              "date": "1992-06-10",
              "time": "3:10"
            }
          ]
        }
      ],
      "volume": "DISK 10"
    },
    "11": {
      "dirs": [
        {
          "path": "/",
          "files": [
            {
              "name": "BIN      ZIP",
              "size": 253788,
              "date": "1992-06-10",
              "time": "3:10"
            },
            {
              "name": "DISK11   DSK",
              "size": 6,
              "date": "1992-06-10",
              "time": "3:10"
            },
            {
              "name": "SOUNDER  ZIP",
              "size": 53230,
              "date": "1992-06-10",
              "time": "3:10"
            },
            {
              "name": "TRUETYPE ZIP",
              "size": 11379,
              "date": "1992-06-10",
              "time": "3:10"
            },
            {
              "name": "TVLIB    ZIP",
              "size": 168992,
              "date": "1992-06-10",
              "time": "3:10"
            },
            {
              "name": "WHELP2   CA1",
              "size": 361472,
              "date": "1992-06-10",
              "time": "3:10"
            },
            {
              "name": "WHELP3   CA1",
              "size": 361472,
              "date": "1992-06-10",
              "time": "3:10"
            }
          ]
        }
      ],
      "volume": "DISK 11"
    },
    "12": {
      "dirs": [
        {
          "path": "/",
          "files": [
            {
              "name": "CMDLINE  CA2",
              "size": 128849,
              "date": "1992-06-10",
              "time": "3:10"
            },
            {
              "name": "DISK12   DSK",
              "size": 6,
              "date": "1992-06-10",
              "time": "3:10"
            },
            {
              "name": "TASM     CA2",
              "size": 20955,
              "date": "1992-06-10",
              "time": "3:10"
            },
            {
              "name": "TD       CA1",
              "size": 361472,
              "date": "1992-06-10",
              "time": "3:10"
            },
            {
              "name": "TDW      CA1",
              "size": 361472,
              "date": "1992-06-10",
              "time": "3:10"
            },
            {
              "name": "WHELP3   CA5",
              "size": 334049,
              "date": "1992-06-10",
              "time": "3:10"
            },
            {
              "name": "WMOBJ    ZIP",
              "size": 2952,
              "date": "1992-06-10",
              "time": "3:10"
            }
          ]
        }
      ],
      "volume": "DISK 12"
    },
    "13": {
      "dirs": [
        {
          "path": "/",
          "files": [
            {
              "name": "BC       CA2",
              "size": 275021,
              "date": "1992-06-10",
              "time": "3:10"
            },
            {
              "name": "BINSRC   ZIP",
              "size": 8067,
              "date": "1992-06-10",
              "time": "3:10"
            },
            {
              "name": "DISK13   DSK",
              "size": 6,
              "date": "1992-06-10",
              "time": "3:10"
            },
            {
              "name": "DRAGDROP ZIP",
              "size": 7190,
              "date": "1992-06-10",
              "time": "3:10"
            },
            {
              "name": "INDEPSRC ZIP",
              "size": 10502,
              "date": "1992-06-10",
              "time": "3:10"
            },
            {
              "name": "QUEUE    ZIP",
              "size": 8057,
              "date": "1992-06-10",
              "time": "3:10"
            },
            {
              "name": "TDUTIL   ZIP",
              "size": 279939,
              "date": "1992-06-10",
              "time": "3:10"
            },
            {
              "name": "TPROFW   ZIP",
              "size": 243446,
              "date": "1992-06-10",
              "time": "3:10"
            },
            {
              "name": "WHELP3   CA4",
              "size": 361472,
              "date": "1992-06-10",
              "time": "3:10"
            }
          ]
        }
      ],
      "volume": "DISK 13"
    },
    "14": {
      "dirs": [
        {
          "path": "/",
          "files": [
            {
              "name": "BC       CA1",
              "size": 361472,
              "date": "1992-06-10",
              "time": "3:10"
            },
            {
              "name": "DISK14   DSK",
              "size": 6,
              "date": "1992-06-10",
              "time": "3:10"
            },
            {
              "name": "TPROF    ZIP",
              "size": 356727,
              "date": "1992-06-10",
              "time": "3:10"
            },
            {
              "name": "WHELP3   CA3",
              "size": 361472,
              "date": "1992-06-10",
              "time": "3:10"
            },
            {
              "name": "WIN31DEV CA2",
              "size": 94725,
              "date": "1992-06-10",
              "time": "3:10"
            }
          ]
        }
      ],
      "volume": "DISK 14"
    },
    "15": {
      "dirs": [
        {
          "path": "/",
          "files": [
            {
              "name": "DISK15   DSK",
              "size": 6,
              "date": "1992-06-10",
              "time": "3:10"
            },
            {
              "name": "WBIN     CA2",
              "size": 361472,
              "date": "1992-06-10",
              "time": "3:10"
            },
            {
              "name": "WBIN     CA3",
              "size": 361472,
              "date": "1992-06-10",
              "time": "3:10"
            },
            {
              "name": "WBIN     CA4",
              "size": 361472,
              "date": "1992-06-10",
              "time": "3:10"
            },
            {
              "name": "WBIN     CA5",
              "size": 87294,
              "date": "1992-06-10",
              "time": "3:10"
            }
          ]
        }
      ],
      "volume": "DISK 15"
    },
    "16": {
      "dirs": [
        {
          "path": "/",
          "files": [
            {
              "name": "DISK16   DSK",
              "size": 6,
              "date": "1992-06-10",
              "time": "3:10"
            },
            {
              "name": "OWLLIB   CA2",
              "size": 53086,
              "date": "1992-06-10",
              "time": "3:10"
            },
            {
              "name": "TDDLL    ZIP",
              "size": 73685,
              "date": "1992-06-10",
              "time": "3:10"
            },
            {
              "name": "WHELP1   CA2",
              "size": 361472,
              "date": "1992-06-10",
              "time": "3:10"
            },
            {
              "name": "WHELP1   CA3",
              "size": 361472,
              "date": "1992-06-10",
              "time": "3:10"
            },
            {
              "name": "WHELP3   CA2",
              "size": 361472,
              "date": "1992-06-10",
              "time": "3:10"
            }
          ]
        }
      ],
      "volume": "DISK 16"
    },
    "17": {
      "dirs": [
        {
          "path": "/",
          "files": [
            {
              "name": "DISK17   DSK",
              "size": 6,
              "date": "1992-06-10",
              "time": "3:10"
            },
            {
              "name": "RW       CA2",
              "size": 361472,
              "date": "1992-06-10",
              "time": "3:10"
            },
            {
              "name": "RW       CA3",
              "size": 189727,
              "date": "1992-06-10",
              "time": "3:10"
            },
            {
              "name": "TVDOCDEM ZIP",
              "size": 70414,
              "date": "1992-06-10",
              "time": "3:10"
            },
            {
              "name": "WIN31BIN CA2",
              "size": 325113,
              "date": "1992-06-10",
              "time": "3:10"
            },
            {
              "name": "WINLIB   CA2",
              "size": 202434,
              "date": "1992-06-10",
              "time": "3:10"
            }
          ]
        }
      ],
      "volume": "DISK 17"
    },
    "18": {
      "dirs": [
        {
          "path": "/",
          "files": [
            {
              "name": "DISK18   DSK",
              "size": 6,
              "date": "1992-06-10",
              "time": "3:10"
            },
            {
              "name": "WHELP1   CA4",
              "size": 179348,
              "date": "1992-06-10",
              "time": "3:10"
            }
          ]
        }
      ],
      "volume": "DISK 18"
    },
    "2": {
      "dirs": [
        {
          "path": "/",
          "files": [
            {
              "name": "ACLOCK   ZIP",
              "size": 23386,
              "date": "1992-06-10",
              "time": "3:10"
            },
            {
              "name": "BGI      ZIP",
              "size": 123039,
              "date": "1992-06-10",
              "time": "3:10"
            },
            {
              "name": "CLASSINC ZIP",
              "size": 58277,
              "date": "1992-06-10",
              "time": "3:10"
            },
            {
              "name": "CLASSSRC ZIP",
              "size": 33692,
              "date": "1992-06-10",
              "time": "3:10"
            },
            {
              "name": "CLIBSRC3 ZIP",
              "size": 200274,
              "date": "1992-06-10",
              "time": "3:10"
            },
            {
              "name": "DISK2    DSK",
              "size": 5,
              "date": "1992-06-10",
              "time": "3:10"
            },
            {
              "name": "GDIDEMO  ZIP",
              "size": 20049,
              "date": "1992-06-10",
              "time": "3:10"
            },
            {
              "name": "MATHSRC  ZIP",
              "size": 114751,
              "date": "1992-06-10",
              "time": "3:10"
            },
            {
              "name": "OLESRVR  ZIP",
              "size": 27597,
              "date": "1992-06-10",
              "time": "3:10"
            },
            {
              "name": "OWL      ZIP",
              "size": 306,
              "date": "1992-06-10",
              "time": "3:10"
            },
            {
              "name": "OWLSRC   ZIP",
              "size": 98363,
              "date": "1992-06-10",
              "time": "3:10"
            },
            {
              "name": "RTLINSRC ZIP",
              "size": 29863,
              "date": "1992-06-10",
              "time": "3:10"
            },
            {
              "name": "TVDEMOS  ZIP",
              "size": 77801,
              "date": "1992-06-10",
              "time": "3:10"
            },
            {
              "name": "TVINC    ZIP",
              "size": 41367,
              "date": "1992-06-10",
              "time": "3:10"
            },
            {
              "name": "WHELP2   CAA",
              "size": 361472,
              "date": "1992-06-10",
              "time": "3:10"
            }
          ]
        }
      ],
      "volume": "DISK 2"
    },
    "3": {
      "dirs": [
        {
          "path": "/",
          "files": [
            {
              "name": "CHESS    ZIP",
              "size": 81189,
              "date": "1992-06-10",
              "time": "3:10"
            },
            {
              "name": "DISK3    DSK",
              "size": 5,
              "date": "1992-06-10",
              "time": "3:10"
            },
            {
              "name": "OWLINC   ZIP",
              "size": 45376,
              "date": "1992-06-10",
              "time": "3:10"
            },
            {
              "name": "WBIN     CA1",
              "size": 361472,
              "date": "1992-06-10",
              "time": "3:10"
            },
            {
              "name": "WHELP2   CA8",
              "size": 361472,
              "date": "1992-06-10",
              "time": "3:10"
            },
            {
              "name": "WHELP2   CA9",
              "size": 361472,
              "date": "1992-06-10",
              "time": "3:10"
            }
          ]
        }
      ],
      "volume": "DISK 3"
    },
    "4": {
      "dirs": [
        {
          "path": "/",
          "files": [
            {
              "name": "BATSRC   ZIP",
              "size": 10669,
              "date": "1992-06-10",
              "time": "3:10"
            },
            {
              "name": "CMDLINE  CA1",
              "size": 361472,
              "date": "1992-06-10",
              "time": "3:10"
            },
            {
              "name": "CURSOR   ZIP",
              "size": 5323,
              "date": "1992-06-10",
              "time": "3:10"
            },
            {
              "name": "DISK4    DSK",
              "size": 5,
              "date": "1992-06-10",
              "time": "3:10"
            },
            {
              "name": "TDEXMPL  ZIP",
              "size": 41188,
              "date": "1992-06-10",
              "time": "3:10"
            },
            {
              "name": "WHELP2   CA7",
              "size": 361472,
              "date": "1992-06-10",
              "time": "3:10"
            },
            {
              "name": "WHEREIS  ZIP",
              "size": 70986,
              "date": "1992-06-10",
              "time": "3:10"
            },
            {
              "name": "WINLIB   CA1",
              "size": 361472,
              "date": "1992-06-10",
              "time": "3:10"
            }
          ]
        }
      ],
      "volume": "DISK 4"
    },
    "5": {
      "dirs": [
        {
          "path": "/",
          "files": [
            {
              "name": "BINDLL   ZIP",
              "size": 181704,
              "date": "1992-06-10",
              "time": "3:10"
            },
            {
              "name": "CHECKERS ZIP",
              "size": 27321,
              "date": "1992-06-10",
              "time": "3:10"
            },
            {
              "name": "CLASSBLD ZIP",
              "size": 2317,
              "date": "1992-06-10",
              "time": "3:10"
            },
            {
              "name": "CLASSLIB ZIP",
              "size": 275898,
              "date": "1992-06-10",
              "time": "3:10"
            },
            {
              "name": "CLIBSRC2 ZIP",
              "size": 116330,
              "date": "1992-06-10",
              "time": "3:10"
            },
            {
              "name": "DISK5    DSK",
              "size": 5,
              "date": "1992-06-10",
              "time": "3:10"
            },
            {
              "name": "EXAMPLES ZIP",
              "size": 25034,
              "date": "1992-06-10",
              "time": "3:10"
            },
            {
              "name": "RWCDEMO  ZIP",
              "size": 56102,
              "date": "1992-06-10",
              "time": "3:10"
            },
            {
              "name": "TDWEXMPL ZIP",
              "size": 165399,
              "date": "1992-06-10",
              "time": "3:10"
            },
            {
              "name": "WHELP2   CA6",
              "size": 361472,
              "date": "1992-06-10",
              "time": "3:10"
            }
          ]
        }
      ],
      "volume": "DISK 5"
    },
    "6": {
      "dirs": [
        {
          "path": "/",
          "files": [
            {
              "name": "CALC     ZIP",
              "size": 6580,
              "date": "1992-06-10",
              "time": "3:10"
            },
            {
              "name": "DISK6    DSK",
              "size": 5,
              "date": "1992-06-10",
              "time": "3:10"
            },
            {
              "name": "DOC      ZIP",
              "size": 186021,
              "date": "1992-06-10",
              "time": "3:10"
            },
            {
              "name": "HLIB     ZIP",
              "size": 132402,
              "date": "1992-06-10",
              "time": "3:10"
            },
            {
              "name": "TASMEXMP ZIP",
              "size": 46328,
              "date": "1992-06-10",
              "time": "3:10"
            },
            {
              "name": "WEXAMPLE ZIP",
              "size": 117849,
              "date": "1992-06-10",
              "time": "3:10"
            },
            {
              "name": "WHELP2   CA4",
              "size": 361472,
              "date": "1992-06-10",
              "time": "3:10"
            },
            {
              "name": "WHELP2   CA5",
              "size": 361472,
              "date": "1992-06-10",
              "time": "3:10"
            }
          ]
        }
      ],
      "volume": "DISK 6"
    },
    "7": {
      "dirs": [
        {
          "path": "/",
          "files": [
            {
              "name": "BWCC     ZIP",
              "size": 48880,
              "date": "1992-06-10",
              "time": "3:10"
            },
            {
              "name": "CHELP31  ZIP",
              "size": 11850,
              "date": "1992-06-10",
              "time": "3:10"
            },
            {
              "name": "CLASSEXM ZIP",
              "size": 13441,
              "date": "1992-06-10",
              "time": "3:10"
            },
            {
              "name": "CLIB     ZIP",
              "size": 126451,
              "date": "1992-06-10",
              "time": "3:10"
            },
            {
              "name": "CLIOLE   ZIP",
              "size": 11407,
              "date": "1992-06-10",
              "time": "3:10"
            },
            {
              "name": "DDEML    ZIP",
              "size": 13539,
              "date": "1992-06-10",
              "time": "3:10"
            },
            {
              "name": "DDEML31  ZIP",
              "size": 14737,
              "date": "1992-06-10",
              "time": "3:10"
            },
            {
              "name": "DISK7    DSK",
              "size": 5,
              "date": "1992-06-10",
              "time": "3:10"
            },
            {
              "name": "FILEAPP  ZIP",
              "size": 2817,
              "date": "1992-06-10",
              "time": "3:10"
            },
            {
              "name": "LLIB     ZIP",
              "size": 127283,
              "date": "1992-06-10",
              "time": "3:10"
            },
            {
              "name": "OWLDEMOS ZIP",
              "size": 96438,
              "date": "1992-06-10",
              "time": "3:10"
            },
            {
              "name": "OWLDOC   ZIP",
              "size": 26946,
              "date": "1992-06-10",
              "time": "3:10"
            },
            {
              "name": "RWDOC    ZIP",
              "size": 41280,
              "date": "1992-06-10",
              "time": "3:10"
            },
            {
              "name": "STARTUP  ZIP",
              "size": 17618,
              "date": "1992-06-10",
              "time": "3:10"
            },
            {
              "name": "SWAT     ZIP",
              "size": 20884,
              "date": "1992-06-10",
              "time": "3:10"
            },
            {
              "name": "TFEXMPL  ZIP",
              "size": 87124,
              "date": "1992-06-10",
              "time": "3:10"
            },
            {
              "name": "WIN31DEV CA1",
              "size": 361472,
              "date": "1992-06-10",
              "time": "3:10"
            },
            {
              "name": "WINCLUDE ZIP",
              "size": 187038,
              "date": "1992-06-10",
              "time": "3:10"
            }
          ]
        }
      ],
      "volume": "DISK 7"
    },
    "8": {
      "dirs": [
        {
          "path": "/",
          "files": [
            {
              "name": "DISK8    DSK",
              "size": 5,
              "date": "1992-06-10",
              "time": "3:10"
            },
            {
              "name": "HEAP     ZIP",
              "size": 20590,
              "date": "1992-06-10",
              "time": "3:10"
            },
            {
              "name": "TASM     CA1",
              "size": 361472,
              "date": "1992-06-10",
              "time": "3:10"
            },
            {
              "name": "WHELP2   CA3",
              "size": 361472,
              "date": "1992-06-10",
              "time": "3:10"
            },
            {
              "name": "WIN31BIN CA1",
              "size": 361472,
              "date": "1992-06-10",
              "time": "3:10"
            },
            {
              "name": "XLIB     ZIP",
              "size": 107753,
              "date": "1992-06-10",
              "time": "3:10"
            }
          ]
        }
      ],
      "volume": "DISK 8"
    },
    "9": {
      "dirs": [
        {
          "path": "/",
          "files": [
            {
              "name": "CMDLGAP  ZIP",
              "size": 7593,
              "date": "1992-06-10",
              "time": "3:10"
            },
            {
              "name": "DISK9    DSK",
              "size": 5,
              "date": "1992-06-10",
              "time": "3:10"
            },
            {
              "name": "EMUSRC   ZIP",
              "size": 20608,
              "date": "1992-06-10",
              "time": "3:10"
            },
            {
              "name": "FILT     ZIP",
              "size": 54797,
              "date": "1992-06-10",
              "time": "3:10"
            },
            {
              "name": "IOSTRSR1 ZIP",
              "size": 65311,
              "date": "1992-06-10",
              "time": "3:10"
            },
            {
              "name": "MLIB     ZIP",
              "size": 124279,
              "date": "1992-06-10",
              "time": "3:10"
            },
            {
              "name": "OLE      ZIP",
              "size": 13959,
              "date": "1992-06-10",
              "time": "3:10"
            },
            {
              "name": "PAINT    ZIP",
              "size": 9587,
              "date": "1992-06-10",
              "time": "3:10"
            },
            {
              "name": "RW       CA1",
              "size": 361472,
              "date": "1992-06-10",
              "time": "3:10"
            },
            {
              "name": "SLIB     ZIP",
              "size": 125169,
              "date": "1992-06-10",
              "time": "3:10"
            },
            {
              "name": "TTFONT   ZIP",
              "size": 8513,
              "date": "1992-06-10",
              "time": "3:10"
            },
            {
              "name": "TVHELP   ZIP",
              "size": 57064,
              "date": "1992-06-10",
              "time": "3:10"
            },
            {
              "name": "WHELP2   CA2",
              "size": 361472,
              "date": "1992-06-10",
              "time": "3:10"
            }
          ]
        }
      ],
      "volume": "DISK 9"
    }
  },
  "desc_file": "README",
  "desc_text": "          Welcome to Borland C++ & Application Frameworks 3.1\r\n          ---------------------------------------------------\r\n\r\n  This README file contains important information about Borland C++.\r\n  For the latest information about Borland C++ and its accompanying\r\n  programs and manuals, read this file in its entirety.\r\n\r\nTABLE OF CONTENTS\r\n-----------------\r\n1.  How to Get Help\r\n2.  Installation\r\n3.  Features\r\n4.  Important Information\r\n5.  Testing Your Expanded Memory\r\n6.  Corrections to the Documents\r\n\r\n\r\n 1. HOW TO GET HELP\r\n-------------------\r\n  If you have any problems, please read this file, the\r\n  HELPME!.DOC and other files in your DOC subdirectory, and the\r\n  Borland C++ manuals first. If you still have a question and\r\n  need assistance, help is available from the following sources:\r\n\r\n  1. 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     on the CompuServe bulletin board system for\r\n     instant access to the Borland forums with their libraries of\r\n     technical information and answers to common questions.\r\n\r\n     If you are not a member of CompuServe, see the enclosed\r\n     special offer, and write for full details on how to receive\r\n     a free IntroPak containing a $15 credit toward your first\r\n     month's on-line charges.\r\n\r\n  2. Check with your local software dealer or users' group.\r\n\r\n  3. Borland's TECHFAX service. Call (800) 822-4269 for a FAX \r\n     catalog of entries.\r\n\r\n  4. If you have an urgent problem that cannot wait and you have\r\n     sent in the license agreement that came with the package,\r\n     you may call the Borland Technical Support Department at\r\n     (408) 461-9133. Please have the following information ready\r\n     before calling:\r\n\r\n     a. Product name and serial number on your original\r\n        distribution disk.  Please have your serial number ready\r\n        or we will be unable to process your call.\r\n\r\n     b. Product version number. The version number for Borland\r\n        C++ can be displayed by pressing Alt-H/A in the IDE.\r\n\r\n     c. Computer brand, model, and the brands and model numbers of\r\n        any additional hardware.\r\n\r\n     d. Operating system and version number. (The version number\r\n        can be determined by typing VER at the DOS prompt.)\r\n\r\n     e. Contents of your AUTOEXEC.BAT file.\r\n\r\n     f. Contents of your CONFIG.SYS file.\r\n\r\n 2. INSTALLATION\r\n----------------\r\n\r\n  You MUST use the INSTALL program to install Borland C++. The\r\n  files on the distribution disks are all archived and have to be\r\n  properly assembled.  You cannot do this by hand!\r\n\r\n  Installing to the same directory structure as a previous version\r\n  without erasing the directories is not recommended; you may\r\n  encounter problems due to old header files, libraries, memory\r\n  managers, or configuration files.\r\n\r\n  To start the installation, change your current drive to the one\r\n  that has the install program on it and type INSTALL.  You will\r\n  be given instructions in a box at the bottom of the screen for\r\n  each prompt. For example, if you will be installing from drive\r\n  A:, type:\r\n\r\n    A:\r\n    INSTALL\r\n\r\n  -  This INSTALL handles the installation of both the compiler\r\n     and debugger and tools in one operation, and allows several\r\n     new configuration options.\r\n\r\n  -  Note: The list of files is contained in a separate file\r\n     called FILELIST.DOC, which will appear in the target\r\n     directory you specify during installation.\r\n\r\n  -  After installation, make sure you insert \\BORLANDC\\BIN - or\r\n     whatever you selected as your BIN directory - into\r\n     your DOS path so the DLL and executable files can be found.\r\n\r\n  -  If you have previously installed Resource Workshop, make sure\r\n     that you remove the directory of that version from your path. The\r\n     version included on these disks supercedes previous versions.\r\n\r\n  -  If you use a Windows command shell other than Program Manager,\r\n     you may not get a Borland C++ group installed for Windows. If\r\n     you don't, use File|Run in Program Manager to run the following\r\n     command:\r\n\r\n          GROUPS GROUPS.B$$\r\n\r\n     You will then have a new group for Borland C++.\r\n\r\n  -  After your initial installation, you can run INSTALL again to\r\n     add elements you omitted the first time. Select only the\r\n     things you want to add in the INSTALL options screen. Because\r\n     some things you may want to save could be overwritten, review\r\n     the following items to make sure you don't lose important\r\n     information:\r\n\r\n     1.  Selecting CMD (the Command-line compiler) causes an \r\n         overwrite of any existing TURBOC.CFG & TLINK.CFG file\r\n         with path information provided in that INSTALL session.\r\n         Any switches that you have added will not be preserved.\r\n\r\n     2.  By selecting any one of the following, the help file\r\n         paths and choices for THELP.CFG will reflect the current\r\n         session's installation choices: \r\n         \r\n              a. CMD - command-line compiler \r\n              b. IDE - integrated environment\r\n              c. TD - Turbo Debugger\r\n              d. TASM - Turbo Assembler \r\n              e. TV - Turbo Vision\r\n              f. OWL - ObjectWindows library\r\n\r\n     3.  If you have made any alterations to headers or startup files\r\n         they will be overwritten if any library models are selected.\r\n\r\n     4.  Selecting the Create BorlandC++ Group option will add a\r\n         group to the desktop and insert the appropriate icons\r\n         into that group if this is a first time installation. If\r\n         this is a re-installation this option will insert the\r\n         appropriate icons into the existing group.\r\n\r\n     In general, any selection you make of something installed\r\n     earlier will cause an overwrite of the earlier version\r\n     without prompting.\r\n\r\n     An attempt to install to a network directory for which you\r\n     don't have delete rights will fail with the message \"Invalid\r\n     directory.\" Make sure delete rights are secured before\r\n     attempting an installation to a network.\r\n\r\n  You should read the rest of this README file to get further\r\n  information about this release before you do the installation.\r\n  See also the files in the DOC subdirectory after installation\r\n  for general information not included in the manuals.\r\n\r\n\r\n 3. NEW FEATURES\r\n----------------\r\n\r\n  - Borland C++ for Windows: A Windows-hosted IDE which produces\r\n    Optimized code. The same Optimization options available in BC.EXE \r\n    are in BCW.EXE.\r\n\r\n  - Color syntax highlighting: All IDEs now highlight your source\r\n    according to syntax. See the choices under Options|Environment|\r\n    Colors|Edit Window in the DOS IDE and Options|Environment|\r\n    Highlight in the Windows IDEs. This option is enabled by\r\n    Options|Environment|Editor|Syntax Highlighting.\r\n\r\n  - 386 code generation: An option has been added to produce 386\r\n    instructions in the generated code. Use -3 at the command line,\r\n    or Options|Compiler|Advanced Code Generation|80386 in the IDEs.\r\n\r\n  - The Object Data calling convention for improved efficiency of C++\r\n    code. See the User's Guide chapter, \"The Command-line Compiler\",\r\n    under the option -po for more information. This option is also\r\n    available under Options|Compiler|Optimizations|Object data calling\r\n    in the IDE.\r\n\r\n  - Windows 3.1 support: All executables and DLLs have been modified\r\n    appropriately for compatibility with Version 3.1 of Windows.\r\n    The ObjectWindows Library header files have been modified for\r\n    compatibility with the new Windows header files as well.\r\n\r\n    NOTE CONCERNING USE OF MICROSOFT WINDOWS 3.1 REDISTRIBUTABLES FOR\r\n    APPLICATIONS RUNNING ON MICROSOFT WINDOWS 3.0\r\n\r\n    This Borland language product contains everything you need to develop\r\n    applications to run on the most recent version of Microsoft Windows,\r\n    version 3.1.  In some cases, you may need to copy and include in your\r\n    application one or more Microsoft \"redistributable\" files from a copy\r\n    of version 3.1 so that your application will also run on version 3.0.\r\n    Microsoft informs us that you may copy the redistributable files from\r\n    from Microsoft Windows 3.1 for this purpose.  If you do so, you must\r\n    comply with the conditions stated in the Borland No-Nonsense License\r\n    Statement included in this package as if the redistributable files you\r\n    copy were a part of this Borland language product.  Microsoft's\r\n    redistributable files in Windows 3.1 are:\r\n\r\n       winhelp.exe, winhelp.hlp, commdlg.dll, ddeml.dll, toolhelp.dll,\r\n       vtd.386, olecli.dll, olesvr.dll, ver.dll, lzexpand.dll,\r\n       expand.exe, regload.exe, stress.dll, dib.drv, markmidi.exe,\r\n       penwin.dll, and shell.dll.\r\n\r\n    If you do not find any of these files in the BIN directory, they\r\n    are also included in the Windows retail distribution, and installed\r\n    in your Windows directories.\r\n\r\n  - WinSpector, a postmortem Windows debugging tool that traps\r\n    general protection faults and provides information on where \r\n    the fault occurred and the state of the machine at the time.\r\n\r\n  - You can now increase the number of files that can be open\r\n    at one time in a DOS program by a simple modification of the\r\n    runtime library.\r\n\r\n    First, modify _NFILE.H in your INCLUDE directory by changing\r\n    the #define for _NFILE_:\r\n\r\n       #define _NFILE_ n\r\n\r\n    where n is the number of files you want to open. Make sure the\r\n    FILES statement in your CONFIG.SYS file specifies at least\r\n    this number.\r\n\r\n    Then compile the two files FILES.C and FILES2.C in the LIB\r\n    directory:\r\n\r\n       BCC -c -m<model> files.c files2.c\r\n\r\n    where <model> is the memory model you're using.\r\n\r\n    Then link them directly with the program which opens the files,\r\n    for instance:\r\n\r\n       BCC myfile.c files.obj files2.obj\r\n\r\n    If you want the change to apply to all modules, add\r\n    FILES.OBJ and FILES2.OBJ created above to the libraries\r\n    you use; from the LIB directory, type:\r\n\r\n       TLIB c<model> +-files.obj +-files2.obj\r\n\r\n    where <model> matches what you used for the BCC command\r\n    above.\r\n\r\n\r\nDPMI\r\n----\r\n\r\nBC.EXE, BCC.EXE, MAKE.EXE, and TLINK.EXE are now hosted under\r\nDPMI. These files replace both the files with the same name in\r\nBorland C++ 2.0 and the BCX.EXE, BCCX.EXE, and TLINKX.EXE files\r\nin the same product. There is no longer a TKERNEL.EXE file.\r\n\r\nImportant!\r\n----------\r\nYou must have at least 1Mb of extended memory to run these programs.\r\n\r\nIf you encounter a \"machine not in database\" message while attempting\r\nto run the compiler, run the DPMIINST program to add your machine\r\nconfiguration to the DPMI server database.\r\n\r\nThis version includes a resident DPMI host program, DPMIRES.EXE,\r\nthat allows you to preload the server before invoking BC, BCC, or\r\nany other DPMI-hosted executables. If you want to run such hosted\r\nEXEs in a Windows Standard Mode DOS window, you should run\r\nDPMIRES.EXE before loading Windows. To do this, enter the\r\nfollowing commands at DOS:\r\n \r\n  set DPMIMEM=MAXMEM 2000\r\n  dpmires\r\n  win /s\r\n\r\nIf you want to limit the amount of extended memory used by the\r\nDPMI-hosted executables, an environment variable called DPMIMEM\r\ncan be set to do so. For instance, the command\r\n\r\n  set DPMIMEM=MAXMEM 2000\r\n\r\nreserves about 2 Mb of memory for DPMIRES. The number after MAXMEM\r\ncan be adjusted, but cannot be lower than 1000.\r\n\r\nDPMIRES should not be run before running Windows in Enhanced Mode.\r\nWindows requires its own DPMI services.\r\n\r\nThe hosted executables cannot spawn each other when SHARE is loaded.\r\nFor instance, if you run MAKE on a file which in turn calls MAKE\r\nagain, you will get a sharing violation. In this specific case,\r\nyou can call the real mode version, MAKER, within the given makefile,\r\nand a sharing violation won't occur.\r\n\r\nNote to OS/2 users: To run any DPMI-hosted executables, like BC, BCC,\r\nor TLINK, in a DOS Window, you need to enable DPMI for that window:\r\n\r\n   - Click the right mouse button on a DOS window icon in Command\r\n     Prompts\r\n\r\n   - Select Open|Settings|Session|DOS Settings|DPMI_DOS_API and select\r\n     ENABLED.\r\n\r\nNote to EMM386.SYS users: To run DPMI-hosted EXEs, under the EMM386\r\nincluded with Windows 3.1, you need to apply a patch to our files\r\nas follows:\r\n\r\n   - Go to the BIN directory\r\n   - Type the following command:\r\n\r\n          patch server.dif dpmi16bi.ovl\r\n\r\nYou will now be able to run BC, BCC, etc.\r\n\r\n\r\n 4. IMPORTANT INFORMATION\r\n-------------------------\r\n\r\n  - There is now only one version of the DOS IDE, BC.EXE, and\r\n    of the command-line compiler program, BCC.EXE. Because the\r\n    BCX and BCCX files are no longer in Borland C++,  you'll need\r\n    to alter batch or make files that use those names.\r\n\r\n  - Borland C++ only supports Protected Mode Windows target\r\n    files. Make sure to use the /t option when using the Resource\r\n    Compiler if you want to enforce Protected Mode usage.\r\n\r\n  - When using Brief with THELP, make sure to use Brief's -p\r\n    switch to ensure that the THELP window will be visible.\r\n\r\n  - We recommend that you use the following mouse drivers with\r\n    this product:\r\n\r\n       Microsoft Mouse version 7.04 or later;\r\n       Logitech Mouse version 5.01 or later;\r\n       Genius Mouse version 9.06 or later.\r\n\r\n  - If you use MAKE or the IDE's Project Make to invoke the Resource\r\n    Compiler, the .RC files you wish to compile MUST be in the same \r\n    directory as your project or makefile.  This is because the Microsoft\r\n    Resource Compiler does not properly handle relative path names, and\r\n    returns a misleading error message that refers to an incorrectly\r\n    spelled version of your .RC file.\r\n\r\n  - If you get a \"floating point formats not linked\" message at\r\n    runtime, put the following somewhere in your source files:\r\n\r\n        extern void _floatconvert();\r\n        #pragma extref _floatconvert\r\n\r\n    This will force inclusion of floating point formats, which\r\n    may not be linked to reduce executable size.\r\n\r\n  - Make sure that you use the -WE switch (Options|Compiler|Entry|\r\n    Windows <DLL> explicit functions exported in the IDE) when\r\n    using the fastcall modifier. The same applies when using the\r\n    fastcall compilation option (-pr on the command line,\r\n    Options|Compiler|Entry|Register in the IDE.) Also see the first\r\n    entry on using fastcall with main() in \"COMPILER\" below.\r\n\r\n  - If the Windows 3.0 home directory precedes the Borland C++ BIN\r\n    directory in your path, attempting to access Help will result in the\r\n    message \"This version of Help file not supported.\" To enable\r\n    Help, either reorder your path or copy WINHELP.EXE to your Windows\r\n    3.0 directory.\r\n\r\n  - This compiler uses more strict checking of C++ syntax and argument\r\n    matching than previous versions. You can expect more warning\r\n    and error messages based on the ANSI C++ version 3.0 standard.\r\n\r\n  - If you receive a \"bad object record\" message from the linker when\r\n    building OWL or container class library applications, you are\r\n    probably using the Borland C++ version 3.0 class libraries and/or\r\n    OWL libraries. Make sure your library path specifies version 3.1\r\n    libraries for those applications.\r\n\r\n  COMPILER\r\n\r\n  - When using fastcalls (-pr command line option) you are\r\n    required to explicitly use the C calling convention, \"cdecl\",\r\n    for main. For example:\r\n\r\n        int cdecl main( )\r\n\r\n    In Borland C++ 3.0 the compiler did not correctly name main when\r\n    fastcalls were used, with the result that you were not\r\n    required to cdecl main (in all cases).  This is a dangerous\r\n    condition and the compiler now (correctly) names main,\r\n    resulting in a linker error in Borland C++ 3.1 for those Borland C++\r\n    3.0 compiled programs that didn't cdecl main.\r\n\r\n    Please correct any \"non-cdecl main\" definitions, if compiled\r\n    with fastcalls.\r\n\r\n  - In Borland C++ 3.0 the compiler allowed conversions from \"const void*\"\r\n    to \"void *\", contrary to ANSI; for Borland C++ 3.1 this is no\r\n    longer allowed.  In addition, several other conversions\r\n    regarding const variables have also been restricted.  If you\r\n    are a user of the const keyword, expect that you may have\r\n    conversions that were allowed to exist with Borland C++ 3.0 that\r\n    will need to be changed in order to compile using Borland C++ 3.1.\r\n\r\n  - In Borland C++ 3.0 the following syntax was allowed-\r\n\r\n            class foo{\r\n            ...\r\n            }       // note that the semicolon is missing here\r\n\r\n            f(){\r\n            ...\r\n            }\r\n\r\n    The new compiler now requires the semicolon to be added after\r\n    the class declaration. The compiler would interpret the\r\n    example above as an attempt to return a class declaration to\r\n    f().\r\n\r\n  - A new implicit conversion rule is now enforced for constructors.\r\n\r\n    From page 573 of The C++ Programming Language 2nd Edition:\r\n\r\n\r\n      \"When no constructor for class X accepts the given type, no\r\n       attempt is made to find other constructors or conversion\r\n       functions to convert the assigned value into a type acceptable\r\n       to a constructor for class X.\"\r\n\r\n    For example,\r\n\r\n            class X { /* ... */ X(int); };\r\n            class Y { /* ... */ Y(X); };\r\n            Y a = 1;  // illegal: Y(X(1)) not tried\r\n\r\n    Note that this rule only applies to constructors with ONE parameter.\r\n\r\n  - The inport/outport functions have been changed to accept an\r\n    unsigned parameter instead of an int. The new prototypes are:\r\n\r\n     unsigned      inport(unsigned)\r\n     unsigned char inportb(unsigned)\r\n     void          outport(unsigned, unsigned)\r\n     void          outportb(unsigned, unsigned char)\r\n\r\n  - We have new resource compiler and linker components:\r\n\r\n    BRCC is the Borland Resource Compiler. RLINK is the resource \r\n    linker/binder. BRC.EXE calls BRCC.EXE and RLINK.EXE, and is an \r\n    equivalent to Microsoft's Windows 3.1 RC. New features that \r\n    may not be found in other products include:\r\n\r\n       - Binding of multiple RES files is supported under RLINK.\r\n\r\n       - Resource ID conflicts are detected and resolved during\r\n         binding.\r\n\r\n    For more information, see the file MANUAL.RW located in your\r\n    \\BORLANDC\\DOC directory.  \r\n\r\n  - There is currently support in ObjectWindows for STRICT and\r\n    non-STRICT versions of OWL programs for Borland C++ versions\r\n    3.0 and 3.1. Simply define the macros WIN30 or WIN31, and add a\r\n    definition for STRICT if you need STRICT compliance. For\r\n    more details see WIN31.DOC in the DOC directory and\r\n    OWL31.DOC in the OWL\\DOC directory.\r\n\r\n  - The default extension for source files to the command-line\r\n    compiler is .CPP; that is, if you enter\r\n\r\n       BCC -c test\r\n\r\n    the compiler will search for test.cpp, and give an error if a\r\n    file of that name cannot be found. If you want to have the\r\n    command-line compiler assume a .c extension and C language\r\n    source, use the command-line option -P-c. For more\r\n    information, see \"The command-line compiler\" in the User's\r\n    Guide.\r\n\r\n  - Note that the Generate COMDEFs choice under\r\n    Options|Compiler|Code Generation and the -Fc command-line\r\n    option are only supported in the C language. Linker errors\r\n    will result if you attempt to use a communal variable in C++.\r\n\r\n  - The macros min() and max() are not defined when stdlib.h is\r\n    compiled as C++ (to allow their use in 3rd party libraries,\r\n    etc.).\r\n\r\n  - Note that files with the extension .SYM can come from at least\r\n    two different sources: Borland's precompiled headers, and the\r\n    output of Microsoft's MAPSYM or Borland's TMAPSYM programs,which\r\n    can also be used by SYMDEB and other debuggers.\r\n\r\n    These files do not have compatible formats, so collisions\r\n    should be avoided by renaming the precompiled header file\r\n    with -H=<filename> on the BCC command line, or as a BCC transfer\r\n    option in the IDE.\r\n\r\n  - There is now full support of distance modifiers (near and\r\n    far) used for class member pointers. Here are two sample\r\n    declarations and their meanings:\r\n\r\n       void (A::* far var) ();\r\n\r\n    this is a far variable 'var' of type 'void (A::*)()';\r\n\r\n       void (far A::* var) ();\r\n\r\n    this is a 'default distance' variable 'var' of type\r\n   'void (far A::*)()'\r\n\r\n  - You must use \"smart callbacks\" - -WS from the command line,\r\n    Options| Compiler|Entry/Exit Code|Windows smart callbacks in\r\n    the IDE - if your application uses classes whose code is in a\r\n    DLL. This applies especially in the case of a class\r\n    implemented in an EXE which is derived from another\r\n    implemented in a DLL, which normally applies for users of OWL\r\n    and other object-oriented class libraries.\r\n\r\n  - If you use C++ templates, and use a separate TLINK command\r\n    line rather than letting BCC invoke TLINK, you should make\r\n    sure that you turn on case-sensitive links with the /c switch.\r\n\r\n\r\n  IDE\r\n\r\n  - When debugging a mouse application the Options|Debugger|Display\r\n    Swapping option should be set to \"Always\" for best results.\r\n\r\n  - Defines entered under Options|Compiler|Code Generation entered\r\n    with semicolons don't apply to RC project items. If you need to\r\n    make multiple definitions for resource compilation in the IDE,\r\n    enter separate defines in the Project Local Options, for example:\r\n\r\n        -dDEF1 -dDEF2=1\r\n\r\n  - In the DOS IDE, the mouse cursor is turned off during compilation\r\n    for performance improvements.\r\n\r\n  - If you run File|Printer setup from BCW.EXE (or another Windows\r\n    application which has printer setup support) under the Windows\r\n    3.0 debugging kernel, you will get a System Error from Windows.\r\n    You must switch to the NODEBUG version to run this option.\r\n\r\n  - The initial block marking behavior in the IDE is determined\r\n    by which version of the IDE is used first after installation.\r\n    Invoking BCW.EXE first will cause Windows-style block marking\r\n    conventions to be in effect; otherwise the standard DOS IDE\r\n    behavior will be used. You can change the behavior by\r\n    selecting Options|Environment| Editor and changing the\r\n    settings for Persistent blocks and Overwrite blocks.\r\n\r\n  - The first time you open certain projects in Borland C++ for\r\n    Windows (BCW), you will get a dialog indicating that one or\r\n    more items will be converted. This will occur for all Windows\r\n    projects existing prior to BC 3.1 and for all DOS projects\r\n    that you open in BCW.  The purpose of the dialog is to\r\n    indicate to you that certain changes need to be made to the\r\n    project to allow it to compile properly for Windows. DOS\r\n    projects that are opened in BCW will need to be changed to\r\n    target Windows, and many projects will need to generate 80286\r\n    code rather than 8088 code.  You have several options\r\n    regarding saving the changes:\r\n\r\n      Don't auto save project\r\n      Warn before saving project\r\n      Save project now\r\n\r\n    The first option will be the most likely choice for DOS C++\r\n    programs that you bring up in BCW in order to browse classes.\r\n    When you close the project, it won't be saved, so that you don't\r\n    lose the options you have already set.\r\n\r\n    If you select the second option, you will be given the choice of\r\n    saving the project when you close it.\r\n\r\n    The last option saves the project with the new settings\r\n    immediately.  For your current Windows projects, you will\r\n    probably want to choose this option so that this dialog will no\r\n    longer come up for the project.\r\n\r\n  - The RC.EXE included in this release targets Windows 3.1. You\r\n    will need to include the -30 option for RC files in any project\r\n    intended to run under Windows 3.0. Use Options|Transfer|Resource\r\n    Compiler|Edit|Command line, and change the entry to:\r\n\r\n       -30 $RC\r\n\r\n    If you use PRJ2MAK on a project which uses this option,\r\n    you will need to edit the resulting .MAK file, and move\r\n    the \"-30\" option to the RC line which links the .RES\r\n    file to the .EXE file. For instance, the line output by\r\n    PRJ2MAK may look like:\r\n\r\n            rc filename.res filename.exe\r\n            ..\r\n            rc -30 <other options> filename.res filename.rc\r\n\r\n    Change this to\r\n\r\n            rc -30 filename.res filename.exe\r\n            ..\r\n            rc  <other options> filename.res filename.rc\r\n\r\n  Resource Workshop\r\n\r\n  - 256-Color bitmaps and RLE4 compression:\r\n\r\n    Due to problems with many 256-color display drivers for Windows\r\n    3.x, saving a bitmap with the RLE4 compression feature of\r\n    Resource Workshop enabled can fail to produce valid output files.\r\n\r\n    Under Windows, the display driver is responsible for providing\r\n    RLE compression when it is requested. However, because many\r\n    display drivers do not implement this feature correctly, we\r\n    recommend that you take the following steps when attempting to\r\n    use RLE4 compression:\r\n\r\n    1. Save the bitmap with the compression option set to \"None\".\r\n       This ensures that you will have a usable copy of your bitmap\r\n       if the remaining steps are not successful.\r\n\r\n    2. Set the compression option to \"RLE4\".\r\n\r\n    3. Select Resource|Save Resource As and save the bitmap under a\r\n       different file name.\r\n\r\n    4. Select File|Open Project and load the compressed version of\r\n       the bitmap.\r\n\r\n    If you cannot load the compressed bitmap, you must use the\r\n    uncompressed bitmap file you saved in step 1.\r\n\r\n    If your 256-color driver fails to compress the bitmap correctly,\r\n    contact the display driver vendor.\r\n\r\n\r\n    Flood-fill with the paint bucket tool\r\n    -------------------------------------\r\n\r\n    Because of problems inherent to display drivers, flood-filling a\r\n    section of a bitmap using the paint bucket tool can fail to\r\n    produce the desired result.\r\n\r\n    Resource Workshop provides an alternate version of the flood-fill\r\n    algorithm that is slower but more reliable than the version\r\n    provided by most Windows 3.x display drivers.\r\n\r\n    You can enable Resource Workshop's flood-fill algorithm by adding\r\n    a flag called \"RWS_OwnFloodFill\" to the Icon editor section\r\n    ([RWS_Icon]) of WORKSHOP.INI. Set the flag to 1.\r\n\r\n    The edited section of WORKSHOP.INI should look something like\r\n    this:\r\n\r\n        [RWS_Icon]\r\n        RWS_OwnFloodFill=1\r\n        PercentLeft=50\r\n        ZoomLeft=8\r\n        ZoomRight=1\r\n        bVert=1\r\n\r\n    Contact the display driver vendor if you experience flood-fill\r\n    problems.\r\n\r\n\r\n  WinSight\r\n\r\n  - WinSight traces messages received by GetMessage or SendMessage. It\r\n    does not trace messages sent directly by function call such as\r\n    WM_INITDIALOG.\r\n\r\n  - Please note that messages displayed as \"dispatched\" are actually\r\n    intercepted at the time of GetMessage, not DispatchMessage.\r\n\r\n\r\n  EXAMPLE PROGRAMS\r\n\r\n  - When you are running any example programs that come with .PRJ\r\n    files, if you didn't use the standard directories when you\r\n    installed Borland C++ you will have to change the .PRJ file\r\n    to reflect your actual directory setup.  Do this from inside\r\n    Borland C++ with Alt-O/D.\r\n\r\n  - When run under the Windows 3.1 debug kernel, many OWL examples will\r\n    cause a message to be displayed like these:\r\n\r\n        USER: Invalidation with fErase==FALSE prevents WM_ERASEBKGND\r\n        Kernel: GlobalCompact(FFFFFFFF), discarding segments\r\n\r\n    These messages are valid runtime warnings, but they don't\r\n    indicate improper implementation; they are supplied for the\r\n    information of the user or programmer under the debug kernel.\r\n\r\n  - To build the help file for the HELPEX example, go to the\r\n    EXAMPLES\\WIN30 directory and type\r\n\r\n         hc helpex\r\n\r\n\r\n  LINKING C++ WITH C\r\n\r\n  - Linking C++ modules with C modules requires the use of a\r\n    linkage specification.  Prototypes for C functions within C++\r\n    modules must be in one of the following forms:\r\n\r\n        extern \"C\" declaration\r\n        extern \"C\" { declarations }\r\n\r\n    For example, if a C module contains these functions:\r\n\r\n        char *SCopy(char*, char*);\r\n        void ClearScreen(void)\r\n\r\n    they must be declared in a C++ module in one of the\r\n      following ways:\r\n\r\n        extern \"C\" char *SCopy(char*, char*);\r\n        extern \"C\" void ClearScreen(void);\r\n\r\n      or\r\n\r\n         extern \"C\" {\r\n            char *SCopy(char*, char*);\r\n            void ClearScreen(void);\r\n         }\r\n\r\n    Failure to do so will result in \"Undefined symbol\" errors\r\n    during link. For further examples, see the standard header\r\n    files.\r\n\r\n  OPTIMIZATIONS\r\n\r\n  - When Ignore Aliasing is used - Options|Compiler|Optimization|\r\n    Assume no pointer aliasing , or -Oa from the command line -\r\n    some initializations could be skipped. This applies\r\n    only when Copy propagation -Op or Options|Compiler|Optimization|\r\n    Copy propagation is used as well (which is the case when\r\n    using -O2 or Options|Compiler|Optimization|Fastest Code.) The\r\n    following case illustrates the issue:\r\n\r\n        len = 0;\r\n        read(help_file, (char *)&len, 1);\r\n        read(help_file, (char *)title, len);\r\n\r\n    The initializion of len to the value 0 above will probably\r\n    not be reflected in the first call to read() if aliases are\r\n    ignored. If the initialization of len were guaranteed by the\r\n    call to read(), the first line would be unnecessary, and the\r\n    value in len would be assigned and passed to the second read\r\n    correctly. We recommend that you avoid using these options\r\n    together when explicit initializations are used in code\r\n    sequences like these.\r\n\r\n\r\n  TURBO DEBUGGER AND TOOLS\r\n\r\n\r\n  Debugging Multiple Applications under Turbo Debugger for Windows\r\n  ================================================================\r\n     You can debug multiple applications under TDW as follows:\r\n\r\n     1. Load the first program to be debugged into TDW.\r\n\r\n     2. Once the application is loaded, press the F3 key to\r\n        display the Load Module Source or DLL Symbols dialog box.\r\n\r\n     3. In the DLL Name text entry box, enter the name of the\r\n        .EXE or  DLL to add. If the .EXE or DLL resides in\r\n        another directory, you need to provide the full path.\r\n\r\n     4. Press the Enter key. TDW adds the program name to the \r\n        DLLs & Programs list box and puts the !! symbol after it.\r\n\r\n     5. Close the Load Module Source or DLL dialog box, return to\r\n        the Module window, and set any necessary breakpoints in\r\n        the first program.\r\n\r\n     6. Press F9 to run the first program.\r\n\r\n     7. Switch to the Windows Program Manager while the first\r\n        program is running and run the second program in the\r\n        usual way.\r\n\r\n     8. You see the display switch back to TDW with the CPU\r\n        window showing the start-up information of the second\r\n        application. Close the CPU window.\r\n\r\n     9. In the Module window, set any necessary breakpoints in\r\n        the second application, then press the F9 key to run it.\r\n\r\n     This method is useful for debugging DDE conversations or any\r\n     other inter-program communication in the Windows\r\n     environment.\r\n\r\n\r\n  TDW.INI, the Windows initialization file for TDW and TPROFW\r\n  ===========================================================\r\n    TDW.INI is located in your local Windows directory. It is the\r\n    Windows initialization file used by TDW, TPROFW, and WREMOTE.\r\n    TDW.INI specifies the name and location of the Debugger DLL and\r\n    the video driver DLL (if any)  in the [TurboDebugger] section.\r\n    It can also contain two other sections:\r\n\r\n    o [VideoOptions], where you put settings for the video DLL, if any\r\n\r\n    o [WRemote], where WRSETUP puts settings for remote debugging\r\n      and profiling\r\n\r\n   [TurboDebugger] section\r\n   -----------------------\r\n   WINDEBUG.DLL has been replaced by TDWIN.DLL. TDWIN.DLL can be\r\n   located anywhere you wish (usually the main Windows directory).\r\n   The DebuggerDLL entry must specify the full path to TDWIN.DLL.\r\n  \r\n   For example, if TDWIN.DLL is in the WINDOWS3.1 directory, its\r\n   TDW.INI entry is\r\n  \r\n   [TurboDebugger]\r\n   DebuggerDLL=c:\\windows3.1\\tdwin.dll\r\n  \r\n   The VideoDLL entry indicates a video support DLL for 8514 or\r\n   Super VGA, because TDW doesn't support these video modes by\r\n   default. This entry must specify the full path to the DLL. You\r\n   can set various video options for the DLL in the\r\n   [VideoOptions] section.  See the next section for a complete\r\n   explanation of video DLL and options settings.\r\n\r\n\r\n  SVGA support, the VideoDLL entry, and the [VideoOptions] section\r\n  ----------------------------------------------------------------\r\n   TDW and TPROFW handle most of the popular 2, 4, 16, and 256-color\r\n   high-resolution Super VGA modes. If your card isn't supported\r\n   correctly, you need to use a special Super VGA (SVGA) DLL.\r\n\r\n   Currently, six DLLs are supplied with your language compiler to\r\n   support various SVGA and 8514 video cards and modes. These DLLs are\r\n   described in the next section. For information on how to specify the\r\n   Video DLL or its options, see the sections \"The VideoDLL entry\" and\r\n   \"The [VideoOptions] section,\" which follow the \"Video DLLs\" section.\r\n\r\n\r\n     Video DLLs\r\n     ----------\r\n     All the video DLLs described in this section are designed to work\r\n     with the most current Windows screen drivers for your video card.  If\r\n     you're not sure if you're using the latest drivers, contact your video\r\n     card manufacturer for more information.\r\n\r\n     From time to time we have new DLLs for new video cards. These DLLs,\r\n     when available, can be downloaded from Compuserve, BIX, GEnie, and our\r\n     local BBS (408-439-9096). As new video cards and modes appear on the\r\n     market, we will be creating new DLLs for them. If the card you use\r\n     isn't supported by one of our DLLs, please contact Tech Support for\r\n     the latest video DLL information. Our main Tech Support phone number\r\n     is 408-461-9133.\r\n\r\n\r\n       ATI.DLL\r\n       -------\r\n       Works with the ATI VGA Wonder and XL cards in certain video modes.\r\n\r\n       The latest ATI Drivers from ATI Technologies Inc. require the\r\n       following TDW.INI file entries:\r\n\r\n\r\n            Resolution   ATI.DLL  Int2FAssist\r\n          -----------------------------------\r\n          | 640X480    | Yes     |   Yes    |\r\n          -----------------------------------\r\n          | 800X600    | Yes     |   Yes    |\r\n          -----------------------------------\r\n          | 1024X768   | No      |    No    |\r\n          -----------------------------------\r\n\r\n       EXPLANATION: ATI.DLL is required in all video modes except\r\n       1024 X 768 (this mode is directly supported by TDW and TPROFW).\r\n       When the DLL is used (VideoDLL=ATI.DLL), Int2FAssist should be\r\n       set to \"yes\" in the [VideoOptions] section.\r\n\r\n\r\n       TSENG.DLL\r\n       ---------\r\n       Supports TSENG ET-3000 /ET-4000 based cards in certain\r\n       video modes.\r\n\r\n       The latest TSENG drivers are available from the Microsoft\r\n       Windows Driver Library on CompuServe. They require the\r\n       following TDW.INI file settings:\r\n\r\n\r\n           Resolution   TSENG.DLL   Int2FAssist\r\n          -------------------------------------\r\n          | 640X480    | Yes       |   Yes    |\r\n          -------------------------------------\r\n          | 800X600    | No        |    No    |\r\n          -------------------------------------\r\n          | 1024X768   | No        |    No    |\r\n          -------------------------------------\r\n\r\n       EXPLANATION: TSENG.DLL should only be used with 640 X 480 X 256\r\n       resolution (set VideoDLL=TSENG.DLL and put a \"Int2FAssist=Yes\"\r\n       entry in the [VideoOptions] section). TDW and TPROFW directly\r\n       support the other TSENG resolutions.\r\n\r\n\r\n\r\n       TDVESA.DLL\r\n       ----------\r\n       Supports any video card that does VESA emulation, whether\r\n       through a TSR or video card firmware. Use this DLL with\r\n       all resolution settings.\r\n\r\n           NOTE: You can run VESATEST.EXE from either DOS or\r\n           Windows to see if your system provides the proper\r\n           VESA functions. If the emulation is not loaded, TDW\r\n           (or TPROFW) will display an error message indicating that\r\n           the video DLL isn't supported by the current configuration.\r\n\r\n       The TDVESA.DLL has been tested with the following video\r\n       cards:\r\n\r\n         o Video Seven VRAM II--uses V7VESA TSR supplied with card\r\n\r\n         o Weitek Power Windows--emulates VESA with firmware.\r\n\r\n\r\n       DUAL8514.DLL\r\n       -------------\r\n       Supports any dual-screen 8514 cards. This DLL is only for\r\n       systems that have two-color monitors, one attached to the VGA\r\n       card and one attached to the 8415/A card. It speeds up\r\n       performance by preventing TDW (or TPROFW) from doing some\r\n       things that aren't required in dual-monitor mode.\r\n\r\n           NOTE: Using this DLL is not the same as invoking TDW\r\n           with the -do parameter, which only specifies using a\r\n           monochrome screen.\r\n\r\n\r\n       STB.DLL\r\n       -------\r\n       Supports the MVP2 series of multi-screen video cards.\r\n\r\n\r\n       ULTRA.DLL\r\n       ---------\r\n       Supports ATI Graphics cards, 8514 Ultra and Vantage cards\r\n       (8514/Ultra, 8514/Vantage, Graphics/Ultra, and Graphics/Vantage),\r\n       and 8514-based cards configured for a single monitor (including\r\n       most IBM 8514/A cards). If you use this DLL with an IBM 8514/A\r\n       card, set \"ATI=no\" in the [VideoOptions] section of TDW.INI.\r\n\r\n\r\n   The VideoDLL entry\r\n   ------------------\r\n   To use an SVGA DLL, simply edit the TDW.INI file that the installation\r\n   program puts in your main Windows directory. You can modify TDW.INI\r\n   with any ASCII text editor. Under the section heading [TurboDebugger]\r\n   there is an option called \"VideoDLL\". This entry should equal the\r\n   path and filename of the DLL you want to use for SVGA support (see the\r\n   example later in this file).\r\n\r\n   If there's an error loading the DLL or if the DLL doesn't support\r\n   the selected card or mode, TDW (or TPROFW) reports the error in a\r\n   Windows dialog box. When this happens, TDW (or TPROFW) unloads the\r\n   DLL and exits. If this situation occurs, remove the DLL's name from\r\n   the VideoDLL line in the TDW.INI file or select a video mode that is\r\n   supported by that DLL.\r\n\r\n\r\n   The [VideoOptions] section\r\n   --------------------------\r\n   There are options you can set for the current video DLL. You list\r\n   these options under the [VideoOptions] heading in any order you like.\r\n\r\n   The following list shows all the video options:\r\n\r\n     o SaveWholeScreen    --    default = no\r\n     o Int2FAssist        --    default = no\r\n     o DebugFile          --    default = <blank>\r\n     o IgnoreMode         --    default = no\r\n     o ATI                --    default = yes\r\n     o Rows               --    default = 25\r\n     o RestoreTextScreen  --    default = yes\r\n\r\n   DebugFile can be either blank or set to a specific filename. The other\r\n   four settings must be either \"yes\" or \"no\". Rows must be 25 or 50.\r\n\r\n\r\n     SaveWholeScreen   (ATI, TSENG, TDVESA)\r\n     ---------------\r\n     This option, normally set to \"no\", determines whether the entire\r\n     screen (512k - 64k from 8 planes) is saved (the entire graphics\r\n     screen is cleared when switching to it) or if only the top 32K of\r\n     planes 0 through 3 is saved (the entire screen is NOT cleared when\r\n     switching modes.)\r\n\r\n     Saving the whole screen is not usually necessary, but is provided\r\n     in case you're using a nonstandard card that requires that the whole\r\n     screen be saved. It also provides support for the Alt-F5 key\r\n     combination under Int2FAssist mode.\r\n\r\n\r\n     Int2FAssist  (ATI, TSENG)\r\n     -----------\r\n     This option, normally set to \"no\", tells the DLL to make a special\r\n     Int 2F call before switching video modes. This call tells the current\r\n     Windows screen driver what's happening. The desired side-effect of this\r\n     call is to make Windows tell all its child windows to repaint\r\n     themselves. This option is provided mainly to support some ATI Wonder\r\n     and TSENG chip set video modes.\r\n\r\n\r\n     DebugFile   (ALL DLLs)\r\n     ---------\r\n     The video DLL normally doesn't log any debugging information. If\r\n     you're having problems using a particular DLL, you can use the\r\n     DebugFile option to specify the path and filename of a log file.\r\n     You can use the information logged to this file if you need to\r\n     contact Borland's Technical Support.\r\n\r\n     The information logged is:\r\n\r\n       o the date and time you ran TDW or TPROFW\r\n       o the version & location of the DLL\r\n       o the name of the current Windows screen driver\r\n       o the state of all TDW.INI options\r\n       o a listing of all calls and parameters to the DLL's functions\r\n\r\n\r\n     IgnoreMode   (ATI, TSENG)\r\n     ----------\r\n     This option only applies when the video DLL is ATI.DLL or TSENG.DLL.\r\n     It tells the DLL to not do any mode or card checking and to force the\r\n     Int2FAssist option on. This option is useful for cards that aren't\r\n     directly supported by an official DLL yet, such as Paradise, Video-7,\r\n     Trident, or any other video card without a graphics coprocessor.\r\n     (With this option enabled, the functionality is identical to the\r\n     temporary ALL.DLL that we offered in the past.)\r\n\r\n\r\n     ATI   (ULTRA)\r\n     ---\r\n     This option is only used by ULTRA.DLL and is on by default. If you\r\n     disable it, you can use ULTRA.DLL on regular IBM 8514/A cards.\r\n\r\n\r\n     ROWS  (ALL DLLs)\r\n     ----\r\n     This option is only used if you use a configuration file to change\r\n     the number of rows to 43/50 from 25. If you choose to have TDW\r\n     start in 50-line mode, set the Rows option to 50 in the TDW.INI file.\r\n\r\n\r\n     RestoreTextScreen   (DUAL8514, STB)\r\n     -----------------\r\n     This option is valid only with DUAL8514.DLL and STB.DLL. The\r\n     settings are:\r\n\r\n       o Yes    - restores TDW's (or TPROFW's) screen after exiting.\r\n       o No     - does not touch TDW's (or TPROFW's) screen at all.\r\n       o Clear  - forces the screen to clear upon exiting TDW (or TPROFW).\r\n\r\n\r\n   Video DLL example\r\n   -----------------\r\n   If you have an ATI VGA Wonder card and you want it to save\r\n   the entire screen and log information to a file named\r\n   C:\\WINDOWS\\TDVIDEO.LOG, the TDW.INI file will look something\r\n   like this:\r\n\r\n       [TurboDebugger]\r\n       DebuggerDLL=c:\\windows3.1\\tdwin.dll\r\n       VideoDLL=c:\\borlandc\\bin\\ati.dll\r\n\r\n       [VideoOptions]\r\n       SaveWholeScreen=yes\r\n       DebugFile=c:\\windows\\tdvideo.log\r\n\r\n\r\n   Technical information\r\n   ---------------------\r\n   TDW, upon loading, looks for the video DLL in the following\r\n   locations in the following order:\r\n\r\n     1. The same directory TDW (or TPROFW) is running from\r\n\r\n     2. The Windows main directory\r\n\r\n     3. The location specified in TDW.INI\r\n\r\n\r\n   If it finds the file, TDW (or TPROFW) accesses the DLL as needed.\r\n   TDW (or TPROFW) makes calls to the DLL to handle the entire video\r\n   screen-switching context. The DLL accomplishes the screen switching\r\n   by allocating a buffer as it gets loaded. Graphics screen contents\r\n   are then saved to this buffer when TDW (or TPROFW)_enters text mode.\r\n   The DLL restores the graphics screen from this buffer when TDW\r\n   (or TPROFW) exits text mode. Memory allocated for the buffer is freed\r\n   when the DLL is unloaded.\r\n\r\n\r\n   Seeing the user screen of an application\r\n   ----------------------------------------\r\n   Some video modes might require some special handling. The Int2FAssist\r\n   option allows these modes to work correctly on most systems. The\r\n   behavior is as follows:\r\n\r\n   When you set \"Int2FAssist=yes\", the DLL notifies Windows to tell\r\n   all sub-windows on the screen to repaint themselves while the user\r\n   application is running. This allows the user screen to be viewed\r\n   when stepping, tracing, or running your application. It will not,\r\n   however, switch to the user screen when you press the Alt-F5 key\r\n   combination because TDW is still in control (TDW doesn't allow Windows\r\n   to process any messages at this point.)\r\n\r\n   If you also set \"SaveWholeScreen=yes\", pressing the Alt-F5 key\r\n   combination shows the user screen. (The DLL will now copy the screen\r\n   back for you.) The drawback to enabling SaveWholeScreen is that it\r\n   will take longer to step or trace if TDW needs to switch back to\r\n   the user screen for that particular instruction. Also, extra messages\r\n   will be passed to your application that normally wouldn't be passed.\r\n   This may affect the debugging of certain pieces of code (like finding\r\n   a bug in an owner-draw control). In these cases, you won't want to use\r\n   this option on the current video mode.\r\n\r\n\r\n  Using TDW in Dual Monitor Monochrome Mode\r\n  ----------------------------------------\r\n   If TDW is activated using the -do switch, there is no need for\r\n   a video DLL or a value in the VideoDLL section of TDW.INI. The\r\n   value in VideoDLL should be removed as follows:\r\n\r\n    [Debugger]\r\n    VideoDll=\r\n\r\n\r\n   The [WRemote] section\r\n   ---------------------\r\n   If you run WRSETUP to configure WREMOTE, the settings are\r\n   saved in the WRemote section of TDW.INI. In previous versions,\r\n   these settings were saved in the WRemote section of\r\n   WREMOTE.INI. If you have a previous version of TDW or TPROFW\r\n   and want to preserve your WREMOTE settings, you can append the\r\n   contents of WREMOTE.INI into TDW.INI. Be sure to include the\r\n   [WRemote] section heading.\r\n\r\n   The settings for the [WRemote] section are described in the\r\n   \"Turbo Debugger User's Guide\" in Appendix E, \"Remote\r\n   Debugging\" starting on page 386.\r\n\r\n\r\n  Known Problems\r\n  ==============\r\n\r\n  - TD386 and TF386 currently do not support machines with over\r\n    16M of memory.  You must disable any extra memory to use\r\n    these programs.\r\n\r\n  - On page 10 in Chapter 1 of the \"Turbo Profiler User's Guide,\"\r\n    there is a statement that Pascal versions of the PRIMEn.C\r\n    programs are included on disk. Only the C versions of these\r\n    sample programs are included on the distribution disks.\r\n\r\n  - Some mouse drivers are incompatible with TD and will\r\n    cause the mouse cursor to get scrambled when debugging DOS\r\n    graphics applications on a second monitor (-do option).  If\r\n    that happens, you can try a different driver or turn off the\r\n    mouse in TD by using the -p- option on the TD command line.\r\n    The mouse will still be active in the target application.\r\n\r\n  - If you have any lines in your SYSTEM.INI that rename DLLs, such as\r\n    \"sound.dll=mysound.drv\", TDW might display the error \"Can't find \r\n    sound.dll\" when it loads a program that uses the DLL.  To solve this \r\n    problem, use the -wd command switch to disable TDW's DLL checking when \r\n    you load such a program.\r\n\r\n  - The first time a program is run under TDW or TPROFW, mouse\r\n    messages are processed normally. However, on every subsequent\r\n    execution of that program, you must press a key on the\r\n    keyboard before mouse messages can be processed.\r\n\r\n  - TSENG ET-4000 video chip set and Windows 3.1 problems\r\n\r\n    Under Windows 3.1, if you use the standard Windows VGA or\r\n    SuperVga  driver with a video card that uses the TSENG\r\n    ET-4000 chip set, you might encounter a number of problems\r\n    with running TDW on a single monitor.\r\n\r\n    o The hardware cursor (the white cursor displayed in all\r\n      dialog boxes that require text input) is invisible, but\r\n      you can still debug your program.\r\n\r\n    o On certain TSENG 4000-based cards (such as the Diamond\r\n      Speedstar VGA card), when you launch TDW the default\r\n      character set is replaced by graphic characters.\r\n\r\n   To overcome this problem please contact Microsoft Corp and ask\r\n   for the updated TSENG drivers that were NOT shipped with\r\n   Windows 3.1. They are also located in the Microsoft Forum (GO\r\n   MSOFT) under the Microsoft Software Library heading in\r\n   CompuServe.\r\n  \r\n        Filenames      Date\r\n        ---------      ----\r\n\r\n        TSENG1.EXE     4/6/92\r\n        TSENG2.EXE     4/6/92\r\n        TSENG3.EXE     4/6/92\r\n        TSENG4.EXE     4/6/92\r\n  \r\n  \r\n   In the meantime, you can use one of the following alternatives:\r\n  \r\n   - Run Windows Setup and replace your Windows 3.1 VGA or SVGA driver\r\n     with the Version 3.0 VGA driver supplied with Windows 3.1.\r\n  \r\n   - Start TDW from the DOS command line. For example,\r\n  \r\n     WIN TDW myprog\r\n  \r\n   - Each time you launch Windows, run a full screen DOS session\r\n     and type \"exit\" to close it. After you do this, when you run\r\n     TDW, it will use the correct character set.\r\n\r\n\r\n  CLASS LIBRARY\r\n\r\n  - If you used the add(), addAt(), or getItemsInContainer()\r\n    member functions of the Array class in Borland C++ 2.0\r\n    applications, note that their behavior has changed slightly.\r\n    The following rules apply to these and related functions:\r\n\r\n      1. add() will insert its argument at the lowest available\r\n         location in the Array.  This location is known as the\r\n         \"insertion point\".\r\n\r\n      2. detach() will remove its argument from the Array, and if\r\n         that Object is located below the insertion point, it\r\n         will move the elements above the Object being removed\r\n         and below the insertion point down one position, so that\r\n         the elements below the insertion point remain\r\n         contiguous.  The insertion point, of course, moves down\r\n         one.\r\n\r\n      3. if the location specified in a call to addAt() is below\r\n         or at the insertion point, the elements above the\r\n         specified location and below the insertion point are\r\n         moved up one position, and the Object is inserted.  The\r\n         insertion point moves up one.\r\n\r\n      4. if the location specified in a call to addAt() is above\r\n         the insertion point, the Object is inserted at that\r\n         location, replacing any Object that may have been placed\r\n         there previously.\r\n\r\n      5. getItemsInContainer() returns the number of elements\r\n         below the current insertion point.  If you use addAt()\r\n         to add elements above the insertion point, they will not\r\n         affect the value returned by getItemsInContainer(). \r\n         This is a change from the behavior in the previous\r\n         version of the class library.\r\n\r\n  - Two versions of the class library sources are provided; one\r\n    using an implementation using C++ templates, and one not using\r\n    templates. The small and dynamic link libraries are provided, and\r\n    a makefile is provided to build other models.\r\n\r\n\r\n  ObjectWindows Library\r\n\r\n  - You must rebuild the class libraries in the appropriate model\r\n    for the intended OWL model if they don't already exist - see\r\n    paragraph above.\r\n\r\n  - Due to restrictions on code size, compact model is no longer\r\n    supported for OWL applications.\r\n\r\n  - Note that you must use the TWindow member function AssignMenu\r\n    to assign a window's Attr.Menu member and to load a menu for\r\n    that window.\r\n\r\n  - You must alter project files and makefiles to indicate\r\n    compatibility with either Borland C++ version 3.0 or 3.1.\r\n    Add WIN30 for OWL projects from Borland C++ 3.0, or WIN31\r\n    for projects created under Borland C++ 3.1, to the defines\r\n    under Options|Compiler|Code Generation in the IDE, or passing\r\n    -DWIN30 or -DWIN31 to MAKE.\r\n\r\n  - World of ObjectWindows video users need to make modifications\r\n    to their Borland C++ 3.0 make or project files in order to\r\n    successfully compile their OWL code with Borland C++ 3.1. You\r\n    must define the WIN30 flag when compiling the OWL Video code.\r\n    In MAKEFILE.INC add the text, \"-DWIN30\" to the four 'CFLAGS'/\r\n    'CFLAGSD' lines.  In all project files, you must go to Options|\r\n    Compiler|Code Generation and put WIN30 in the Defines combo box\r\n    field (at the bottom of this dialog).\r\n\r\n\r\n  Please see OWL31.DOC for additional information on ObjectWindows\r\n  Library.\r\n\r\n  TURBO VISION\r\n\r\n  - For information on the Help compiler, and how to build a help\r\n    document, please refer to the comments in the file TVHC.CPP in\r\n    the help directory.  Also, see TVDemo for an example of how to\r\n    add help to your applications.\r\n\r\n  - Due to the complex interactions among the Turbo Vision classes,\r\n    certain situations can arise involving deletion of objects that\r\n    cannot be properly handled through destructors.  Therefore, we\r\n    provide a static member function void destroy( TObject * ) to\r\n    the class TObject.  Whenever an object of a type derived from\r\n    TObject is to be deleted, the function destroy() should be called\r\n    instead.  This will take care of terminating the object,\r\n    correctly freeing the memory that it occupied.  For example:\r\n    \r\n             TDialog *dlg = new TDialog( ... );\r\n             //delete dlg;    // DON'T DO THIS\r\n             destroy( dlg );  // DO IT THIS WAY\r\n\r\n  - The Turbo Vision Source Code is provided for your use and\r\n    modification.  IMPORTANT: Borland Technical Support will not\r\n    answer questions or provide any assistance relating to this\r\n    product.  Essentially, the Sources are provided \"as is\" and you\r\n    are on your own.\r\n\r\n  - In order to build the library, you must have Tasm available.\r\n\r\n  - When building or modifying the library it is better to place\r\n    debug info in only those modules in which you are interested.\r\n    If you place debug info all the modules, Tlink may not be able\r\n    to link your application.\r\n\r\n  - In order to build an overlayed Turbo Vision application with\r\n    Borland C++ 3.1, make sure you observe the following:\r\n\r\n      1. You need to rebuild the Turbo Vision library with\r\n         overlays. Change to the SOURCE directory under TVISION\r\n         and enter the command\r\n\r\n                 make -DOVERLAY -B\r\n\r\n         This will produce a new version of TV.LIB which will\r\n         support overlays. It will also produce two .OBJ files,\r\n         SYSINT.OBJ and TEVENT.OBJ.  These two files contain code\r\n         for TV's interrupt handlers, so they cannot be \r\n         overlayed.\r\n\r\n      2. When building an overlayed application, you must be sure\r\n         to link with the three files SYSINT.OBJ, TEVENT.OBJ, and\r\n         TV.LIB.  The two .OBJ files must not be in overlays.\r\n         You also need to specify local virtual tables.\r\n         Your command line should look something like this:\r\n\r\n         bcc -ml -Vs -B -Yo myfile -Yo- sysint.obj tevent.obj -Yo tv.lib\r\n\r\n         See the Programmer's Guide for details on the meanings\r\n         of the various -Yo switches.\r\n\r\n     3. To improve performance, increase the size of the global\r\n         variable __ovrbuffer to 0x2000 or greater.\r\n\r\n\r\n  RUNTIME LIBRARY SOURCE\r\n\r\n  The Borland C++ Runtime Library Source Code is provided for\r\n  your use and modification.  IMPORTANT: Borland Technical\r\n  Support will not answer questions or provide any assistance\r\n  relating to this product.  Essentially, the Sources are\r\n  provided \"as is\" and you are on your own. If you find what you\r\n  think is a genuine problem with the source code, however, we\r\n  would like to hear about it. See \"How to Get Help\" above.\r\n\r\n  See CRTL.DOC for more information on building the Runtime\r\n  Library from source.\r\n\r\n 5. TESTING YOUR EXPANDED MEMORY: EMSTEST.COM\r\n---------------------------------------------\r\n\r\n  Included with Borland C++ is a program to test your Expanded\r\n  Memory hardware and software. If you have problems using\r\n  Borland C++ with your EMS, type EMSTEST at the DOS prompt and\r\n  follow the instructions.\r\n\r\n\r\n 6.  CORRECTIONS TO THE DOCUMENTS\r\n---------------------------------\r\n\r\nPlease see the MANUAL.XXX files in the DOC subdirectory for corrections\r\nto the documents."
}