{
  "disks": {
    "1": {
      "dirs": [
        {
          "path": "/",
          "files": [
            {
              "name": "INSTALL  EXE",
              "size": 59486,
              "date": "1990-08-25",
              "time": "3:50"
            },
            {
              "name": "README   COM",
              "size": 4217,
              "date": "1990-08-25",
              "time": "3:50"
            },
            {
              "name": "INSTALL  CFG",
              "size": 19,
              "date": "1990-08-25",
              "time": "3:50"
            },
            {
              "name": "UNZIP    EXE",
              "size": 23044,
              "date": "1990-08-25",
              "time": "3:50"
            },
            {
              "name": "ASCII    SOR",
              "size": 1637,
              "date": "1990-08-25",
              "time": "3:50"
            },
            {
              "name": "INTL     SOR",
              "size": 1637,
              "date": "1990-08-25",
              "time": "3:50"
            },
            {
              "name": "NORDAN   SOR",
              "size": 1637,
              "date": "1990-08-25",
              "time": "3:50"
            },
            {
              "name": "SWEDFIN  SOR",
              "size": 1637,
              "date": "1990-08-25",
              "time": "3:50"
            },
            {
              "name": "SYS      ZIP",
              "size": 78793,
              "date": "1990-08-25",
              "time": "3:50"
            },
            {
              "name": "README",
              "size": 52801,
              "date": "1990-08-25",
              "time": "3:50"
            },
            {
              "name": "SERIAL   NUM",
              "size": 84,
              "date": "1990-10-10",
              "time": "22:58"
            },
            {
              "name": "UTIL",
              "dir": true,
              "date": "1991-12-17",
              "time": "18:43"
            },
            {
              "name": "SAMPAPP",
              "dir": true,
              "date": "1991-12-17",
              "time": "18:43"
            },
            {
              "name": "TABLES",
              "dir": true,
              "date": "1991-12-17",
              "time": "18:43"
            },
            {
              "name": "WINDOWS",
              "dir": true,
              "date": "1991-12-17",
              "time": "18:43"
            },
            {
              "name": "SYSTEM1",
              "dir": true,
              "date": "1991-12-17",
              "time": "18:43"
            },
            {
              "name": "SYSTEM2",
              "dir": true,
              "date": "1991-12-17",
              "time": "18:44"
            }
          ]
        },
        {
          "path": "/UTIL",
          "files": [
            {
              "name": "UTIL     ZIP",
              "size": 58401,
              "date": "1990-08-25",
              "time": "3:50"
            }
          ]
        },
        {
          "path": "/SAMPAPP",
          "files": [
            {
              "name": "SAMPAPP  ZIP",
              "size": 18880,
              "date": "1990-08-25",
              "time": "3:50"
            }
          ]
        },
        {
          "path": "/TABLES",
          "files": [
            {
              "name": "TABLES   ZIP",
              "size": 29117,
              "date": "1990-08-25",
              "time": "3:50"
            }
          ]
        },
        {
          "path": "/WINDOWS",
          "files": [
            {
              "name": "PARADOX  PIF",
              "size": 545,
              "date": "1990-08-25",
              "time": "3:50"
            },
            {
              "name": "PPROG    PIF",
              "size": 545,
              "date": "1990-08-25",
              "time": "3:50"
            },
            {
              "name": "PDOXRUN  PIF",
              "size": 545,
              "date": "1990-08-25",
              "time": "3:50"
            },
            {
              "name": "PARADOX  GRP",
              "size": 1495,
              "date": "1990-08-25",
              "time": "3:50"
            }
          ]
        },
        {
          "path": "/SYSTEM1",
          "files": [
            {
              "name": "PDOX1    ZI1",
              "size": 345000,
              "date": "1990-08-25",
              "time": "3:50"
            }
          ]
        },
        {
          "path": "/SYSTEM2",
          "files": [
            {
              "name": "PDOX1    ZI2",
              "size": 172431,
              "date": "1990-08-25",
              "time": "3:50"
            },
            {
              "name": "PDOX2    ZI1",
              "size": 80000,
              "date": "1990-08-25",
              "time": "3:50"
            }
          ]
        }
      ],
      "volume": "PARADOX"
    },
    "2": {
      "dirs": [
        {
          "path": "/",
          "files": [
            {
              "name": "SYSTEM3",
              "dir": true,
              "date": "1991-12-17",
              "time": "18:45"
            },
            {
              "name": "CUSTOM",
              "dir": true,
              "date": "1991-12-17",
              "time": "18:45"
            },
            {
              "name": "TOOLKIT",
              "dir": true,
              "date": "1991-12-17",
              "time": "18:45"
            },
            {
              "name": "PROTECT",
              "dir": true,
              "date": "1991-12-17",
              "time": "18:45"
            }
          ]
        },
        {
          "path": "/SYSTEM3",
          "files": [
            {
              "name": "PDOX2    ZI2",
              "size": 323158,
              "date": "1990-08-25",
              "time": "3:50"
            }
          ]
        },
        {
          "path": "/CUSTOM",
          "files": [
            {
              "name": "CUSTOM   ZIP",
              "size": 200791,
              "date": "1990-08-25",
              "time": "3:50"
            }
          ]
        },
        {
          "path": "/TOOLKIT",
          "files": [
            {
              "name": "TOOLKIT  ZIP",
              "size": 241791,
              "date": "1990-08-25",
              "time": "3:50"
            }
          ]
        },
        {
          "path": "/PROTECT",
          "files": [
            {
              "name": "PROTECT  ZIP",
              "size": 66673,
              "date": "1990-08-25",
              "time": "3:50"
            }
          ]
        }
      ],
      "volume": "PARADOX35"
    },
    "3": {
      "dirs": [
        {
          "path": "/",
          "files": [
            {
              "name": "PPROG1",
              "dir": true,
              "date": "1991-12-17",
              "time": "18:47"
            },
            {
              "name": "VIDEO",
              "dir": true,
              "date": "1991-12-17",
              "time": "18:47"
            },
            {
              "name": "PPROG2",
              "dir": true,
              "date": "1991-12-17",
              "time": "18:47"
            },
            {
              "name": "PPROG3",
              "dir": true,
              "date": "1991-12-17",
              "time": "18:47"
            }
          ]
        },
        {
          "path": "/PPROG1",
          "files": [
            {
              "name": "PPROG    SOM",
              "size": 1113,
              "date": "1990-08-25",
              "time": "3:50"
            },
            {
              "name": "PPROG1   ZI1",
              "size": 330000,
              "date": "1990-08-25",
              "time": "3:50"
            }
          ]
        },
        {
          "path": "/VIDEO",
          "files": [
            {
              "name": "VIDEO    ZIP",
              "size": 12097,
              "date": "1990-08-25",
              "time": "3:50"
            }
          ]
        },
        {
          "path": "/PPROG2",
          "files": [
            {
              "name": "PPROG1   ZI2",
              "size": 229455,
              "date": "1990-08-25",
              "time": "3:50"
            },
            {
              "name": "PPROG2   ZI1",
              "size": 100000,
              "date": "1990-08-25",
              "time": "3:50"
            }
          ]
        },
        {
          "path": "/PPROG3",
          "files": [
            {
              "name": "PPROG2   ZI2",
              "size": 329566,
              "date": "1990-08-25",
              "time": "3:50"
            }
          ]
        }
      ],
      "volume": "PARADOX"
    }
  },
  "desc_file": "README",
  "desc_text": "                         WELCOME TO PARADOX 3.5\r\n                         ----------------------\r\n\r\n     This file contains important information that is not contained in the\r\ndocumentation for Paradox 3.5.  All information in this file supersedes\r\ninformation in the Paradox 3.5 documentation.\r\n\r\n\r\nTABLE OF CONTENTS\r\n-----------------\r\n\r\n\r\n     1. Resolving Hardware and Software Compatibility Issues\r\n     2. Notes on Interactive Paradox\r\n     3. Notes on PAL\r\n     4. Starting and Running Paradox in Special Configurations\r\n     5. Notes on the Custom Configuration Program\r\n     6. Notes on the Personal Programmer\r\n     7. Files on the Disks\r\n\r\n\r\n1. RESOLVING HARDWARE AND SOFTWARE COMPATIBILITY ISSUES\r\n-------------------------------------------------------\r\n\r\nHardware/Software Compatibility:\r\n     Paradox is designed to follow memory management standards where they\r\nexist, to make the best possible use of your computer, and to allow you\r\nmaximum flexibility to tune the program the way you want.  When Paradox\r\nloads, it tries to detect any EMS emulation, RAM disks, and caches you\r\nhave, and configures itself to run optimally in that environment.  Some-\r\ntimes you will want or need to modify the default configuration.  You can\r\noverride Paradox's installation defaults with the Custom Configuration\r\nProgram (CCP) or with command-line options.  See Chapter 14 of the\r\n\"Paradox User's Guide\" for details.\r\n     Unfortunately, standards have been slow to evolve for memory\r\nmanagement.  Paradox conforms to the major standards that do exist:  the\r\nVDISK standard for RAM disks, the VCPI standard for EMS emulation, and the\r\nXMS standard for extended memory.  If you use software that conforms to\r\nsome other standard, you may have to make adjustments to run Paradox.\r\nPlease check the list that follows for known compatibility problems.\r\n\r\n     Some specific compatibility problems are:\r\n\r\n     -  If you're running your machine in fast or \"turbo\" mode, it may be\r\n        running faster than the hardware was designed to run.  This may\r\n        cause it to drop instructions occasionally at its fastest speed.\r\n        While some of your software may run just fine in turbo mode,\r\n        Paradox sometimes makes heavier demands on the hardware than\r\n        other software packages.  If you experience difficulty, try\r\n        running Paradox in slower or \"safe\" mode.  (This is not to say\r\n        that all machines offering a choice of speeds are suspect; Paradox\r\n        will not have trouble on any machine's highest speed as long as\r\n        all the machine's components are designed to run at that speed.)\r\n\tMachines that may experience this problem include 6Mhz IBM ATs\r\n        that have been sped up to 8Mhz or faster, the WYSEpc 286 in its\r\n        12.5Mhz mode, and the Rose Hill 286 at its faster speed.\r\n\r\n     -  The Tall Tree JRAM EMS card is not supported by Paradox.\r\n\r\n     -  A 286 machine with an old BIOS might not be able to run in\r\n        protected mode.\r\n\r\n     -  A disk cache called VCache is known to be incompatible with\r\n        Paradox.  Do not run VCache with Paradox.\r\n\r\n     -  Some EMS emulators can run without allocating an EMS page frame.\r\n        This lets you use their many extra features, particularly the\r\n        ability to relocate drivers above 640K, even if you don't want to\r\n        use EMS.  QEMM's FRAME=NONE option has this effect, as does\r\n        386Max's NOFRAME option.  If you use your EMS emulator this way,\r\n        you must run Paradox in real mode (this is the mode it will run\r\n        in by default).  Attempting to force Paradox into protected mode\r\n        in this situation might hang your machine.\r\n\r\n     -  If you use a version of PC LAN that includes a cache and you locate\r\n        the cache in the network server's extended memory, you cannot run\r\n        Paradox on the server - there isn't enough memory below 640K left\r\n        for Paradox to run in real mode, and the PC LAN cache does not\r\n        allow any other program to use extended memory.\r\n\r\n     -  The AST REX.SYS driver, which converts EEMS expanded memory back to\r\n        extended memory, is not compatible with Paradox 3.5.  To obtain\r\n        extended memory with an EEMS board, don't let the REMM.SYS expanded\r\n        memory driver use some or all of the memory on the board.  (In some\r\n        cases, you will have to set switches on the board to accomplish\r\n        this.)\r\n\r\n     -  Under DOS 2.x, Paradox 3.5 runs only in real mode, not in protected\r\n        mode.\r\n\r\nTesting Your CPU and EMS:\r\n     If you experience intermittent failures, they may be due to a\r\nprocessor that's running too fast or memory that is defective or runs too\r\nslowly.  Paradox  3.5 includes two small programs to test for problems of\r\nthis sort.  Although they cannot detect all machine problems, they do test\r\nmachine components that Paradox 3.5 stresses; as a result, they\r\noften help pinpoint problem areas.  The programs are CPUTEST.EXE and\r\nEMSTEST.COM.  Both are installed in your Paradox 3.5 program directory\r\nautomatically.  If you have any reason to suspect that your hardware may\r\nnot be able to keep up with Paradox, you should run both programs (run only\r\nCPUTEST if you don't have expanded memory).  Even if your computer is\r\nrunning flawlessly, feel free to try them out.  CPUTEST runs just a few\r\nseconds, and EMSTEST just a few minutes.\r\n     To run CPUTEST, just move to your Paradox directory (usually \\PDOX35)\r\nand type\r\n          CPUTEST\r\nYou should see the message \"This CPU Tests OK.\"  A message like \"2\r\ninstructions skipped\" probably indicates that your computer's processor is\r\nrunning too fast.\r\n     To run EMSTEST, move to your Paradox directory, type\r\n          EMSTEST\r\nand press keys as instructed.  The test will verify that your Expanded\r\nMemory Specification (EMS) hardware and software are working correctly.\r\nYou should see descriptions of a number of tests, each followed by the\r\nstatus \"OK.\"  Any other status message indicates a probable EMS failure.\r\n\r\n\r\n2. NOTES ON INTERACTIVE PARADOX\r\n-------------------------------\r\n\r\nIncremental Menu Selection:\r\n     In Paradox 3.0, you can type a letter when choosing from a menu to\r\nnarrow your selection down to choices starting with that letter, then make\r\nyour final selection using the arrow keys.  In Paradox 3.5, you can type a\r\nsecond letter to narrow your choices down further, then a third letter, and\r\nso on.  As you type each letter, it will be colored differently in the\r\ncurrent menu item.  Whenever there is only one choice that matches the\r\nletters typed, it will be selected immediately, just as is done in Paradox\r\n3.0 when the first letter of a choice is unique.  You can still use the\r\narrow keys to select, as before; as soon as you do, the incremental\r\nselection in process is abandoned, so you must start from the beginning of\r\nthe desired choice to select it using incremental type in.\r\n     Incremental menu selection works wherever you select from a menu:  in\r\nParadox's own menus; in application menus created by SHOWMENU; in lists of\r\ntables, scripts, forms, and other objects; and in lists produced by\r\nSHOWARRAY, SHOWTABLES, and SHOWFILES.  In interactive use, the new\r\nincremental selection capability is completely compatible with existing\r\nmenu interaction.  Scripts that use InstantRecord, SHOWMENU, or braced menu\r\nselections will also be compatible with Paradox 3.5.  Scripts that use\r\nKEYPRESS and TYPE IN to select from menus might behave differently:\r\nkeystrokes that did not cause a menu item to be selected now can, depending\r\non the contents of the menu list.\r\n\r\nTools|Copy|JustFamily:\r\n     Previous versions of Tools|Copy|JustFamily could copy corrupt or\r\nout-of-date family members from the source to the target table.  Although\r\nthis was clearly the wrong action for corrupt family members, it did allow\r\nyou to \"re-attach\" a correct but out-of-date object to its table.\r\nCopy|JustFamily now checks that each object is a valid member of the source\r\ntable's family before copying it.  As a result, you will no longer be able\r\nto use it to attach out-of-date family members to their tables.\r\n\r\nTools|Info|Lock:\r\n     The LIST table that Tools|Info|Lock produces now gives more infor-\r\nmation when there is a form-lock on a multi-table form.  When a table is\r\nform-locked, Paradox displays \"Form Lock\" in the lock type field, followed\r\nby the type of lock that pre-Paradox 3.0 users will see.  (These earlier\r\nversions of Paradox cannot use a form-locked table because they don't\r\nsupport multi-table forms.)  For example, if you are coediting a multi-\r\ntable form, the type field will show \"Form Lock-WL\", where WL stands for\r\nWrite Lock.  The other abbreviations are PFL (Prevent Full Lock) and PWL\r\n(Prevent Write Lock).  Paradox no longer adds a second record saying \"Write\r\nLock\" in the LIST table.\r\n\r\nUndo:\r\n     In a multi-table form, Undo works differently than in Paradox 3.0 in\r\none minor case:  After a form toggle, it now takes two Undo operations to\r\nback up as far as one Undo did previously.\r\n\r\nNumber Rounding Issues:\r\n     Paradox 3.5 uses the Turbo C math library, which provides greater\r\nprecision than the one used in Paradox 3.0.  This will cause some numeric\r\nand dollar values that were entered using an earlier version of Paradox to\r\nbe rounded differently in Paradox 3.5.  Data entered in Paradox 3.5 will\r\nnot exhibit this problem.  (Because of the way Paradox represents numbers,\r\nthere will always be occasional round-off errors when manipulating numbers\r\nwith many decimal digits of precision.  Unfortunately, other methods of\r\nrepresenting numbers also have disadvantages.)\r\n     Because data entered in Paradox 3.5 works fine, the solution is to\r\nexport the existing Paradox file to an ASCII file, then import the data\r\nback into Paradox 3.5.  You can put your data back into the same table it\r\nstarted in, leaving the table's family unaltered.  The steps to follow are:\r\n\r\n     1. Make a backup of the table to be processed (if you don't have one)\r\n        in case any problems arise.\r\n\r\n     2. Export the table to ASCII format.  If your table is named CUSTOMER\r\n        and you want to call the temporary ASCII file TEMP_30, use:\r\n             Tools|ExportImport|Export|Ascii|Delimited\r\n        and enter CUSTOMER as the table name and TEMP_30 as the exported\r\n        file's name.\r\n\r\n     3. Empty the CUSTOMER table, using Tools|More|Empty.\r\n\r\n     4. Import your data back into CUSTOMER, using the AppendDelimited\r\n        command (not the Delimited command):\r\n             Tools|ExportImport|Import|Ascii|AppendDelimited\r\n        Type in TEMP_30 when you are prompted for a file name and CUSTOMER\r\n        when you are prompted for a table name.\r\n\r\nNorwegian/Danish Sort Order:\r\n     Minor corrections have been made to the NORDAN.SOR sort file.  The\r\ntable in Chapter 14 of the \"Paradox User's Guide\" labeled \"Swedish/Finnish\r\nand Norwegian/Danish Sort Order\" is accurate only for the SWEDFIN.SOR sort\r\norder.  The order of alphabetic characters according to NORDAN.SOR is shown\r\nbelow.  (Note that ASCII characters 155 and 157 appear as slashed \"O\"s if\r\nyou have the Norwegian/Danish video ROM.)\r\n\r\n      ASCII             ASCII             ASCII             ASCII\r\nChar  Code        Char  Code        Char  Code        Char  Code\r\n-----------       -----------       -----------       -----------\r\n a      97         i     105         Q      81         ä     132\r\n á     160         ï     139         r     114         Æ     146\r\n à     133         í     161         R      82         Ä     142\r\n â     131         ì     141         s     115         ¢     155\r\n A      65         î     140         S      83         ö     148\r\n b      98         I      73         t     116         ¥     157\r\n B      66         j     106         T      84         Ö     153\r\n c      99         J      74         u     117         å     134\r\n ç     135         k     107         ú     163         Å     143\r\n C      67         K      75         ù     151         α     224\r\n Ç     128         l     108         û     150         ß     225\r\n d     100         L      76         U      85         Γ     226\r\n D      68         m     109         v     118         π     227\r\n e     101         M      77         V      86         Σ     228\r\n ë     137         n     110         w     119         σ     229\r\n é     130         ñ     164         W      87         µ     230\r\n è     138         N      78         x     120         τ     231\r\n ê     136         Ñ     165         X      88         Φ     232\r\n E      69         o     111         y     121         Θ     233\r\n É     144         ó     162         ü     129         Ω     234\r\n f     102         ò     149         ÿ     152         δ     235\r\n F      70         ô     147         Y      89         ∞     236\r\n g     103         O      79         Ü     154         φ     237\r\n G      71         p     112         z     122         ε     238\r\n h     104         P      80         Z      90         ∩     239\r\n H      72         q     113         æ     145         ≡     240\r\n\r\nCompatibility with Paradox 3.0:\r\n     Paradox 3.5 is compatible with previous versions of Paradox.  However,\r\nif you will be running existing applications under Paradox 3.5 or want your\r\nParadox 3.5 development to coexist with previous versions, there are a few\r\npoints you should consider:\r\n\r\n     -  Although tables from previous versions of Paradox are completely\r\n        compatible with Paradox 3.5, tables created in Paradox 3.5 exhibit\r\n        better performance in almost all cases.  For best performance in\r\n        Paradox 3.5, you should restructure existing tables in Paradox 3.5.\r\n        To do this, choose Modify|Restructure, then press Do-It (without\r\n        making any changes to the table's structure).  However, if some\r\n        users will continue to use these tables with earlier versions of\r\n        Paradox, be aware that these restructured tables will require more\r\n        memory when placed on the workspace - up to 2K more for each table\r\n        and for each index on the table.  (Paradox 3.5 doesn't use more\r\n        memory per image on the workspace for tables built with the\r\n        new structure; only earlier versions of Paradox do.)\r\n\r\n     -  As explained in the \"Upgrade Guide,\" Paradox 3.5 uses a new format\r\n        for procedure library files.  Paradox 3.5 can read existing\r\n        libraries, but previous versions cannot read Paradox 3.5 libraries.\r\n        In addition, although Paradox 3.5 can read procedures from a\r\n        Paradox 3.0 library, you cannot write such procedures directly from\r\n        memory into a Paradox 3.5 library.  You must play a script\r\n        containing the procedures in source code form, then use WRITELIB\r\n        to write them to the new library.\r\n\r\n     -  You might notice that previous Paradox versions can often use forms\r\n        and reports that contain functions and variables in calculated\r\n        fields.  However, there are some functions (DOW, for example) that\r\n        Paradox versions before 3.5 will not accept in calculated fields.\r\n        In addition, these Paradox versions cannot modify Paradox 3.5 forms\r\n        and reports that use functions or variables.  If you attempt either\r\n        operation, you will see a message like \"Invalid calculation...\" or\r\n        \"Invalid fields removed from form...\".  Select Cancel from the menu\r\n        to back out of Forms|Change or Report|Change mode, then use Paradox\r\n        3.5 to modify the form or report; otherwise, you will lose all the\r\n        calculated expressions that the earlier version of Paradox doesn't\r\n        understand.\r\n\r\n     -  A few messages have been changed.  Although most of the changes\r\n        just correct spelling and punctuation errors, applications that\r\n        test for the exact text of a message will not recognize the new\r\n        messages.  Applications should avoid testing messages whenever\r\n        possible.\r\n\r\n     -  Minor changes have been made to the Tools|ExportImport menus to\r\n        include Quattro PRO import and export.  There are other menu\r\n        changes, but they do not introduce compatibility issues; for\r\n        example, Paradox 3.5 accepts \"QuerySpeedup\" and \"QuerySpeed\"\r\n        interchangeably.\r\n\r\nPrinting Graphs:\r\n     Paradox (by default) does not do a page-eject after printing a graph.\r\nThis allows you to place more than one graph on a page.  On a PostScript\r\nprinter or other laser printer, it may seem that your graph was not sent to\r\nthe printer properly, since there is often no sign of activity until a page\r\nis ejected.  To override the default temporarily, enter the Graph subsystem\r\n(using Image|Graph|Modify), then choose Overall|PrinterLayout and set\r\n\"Break Page\" to \"Y\".  To override it permanently, play Custom and go\r\nthrough the same steps.\r\n\r\n3. NOTES ON PAL\r\n---------------\r\n\r\nRUN ([Ctrl][O]) and RUN BIG ([Alt][O]):\r\n     Paradox 3.5 uses Borland's VROOMM memory management, which loads\r\nmodules of program code into memory dynamically as they are needed.  As a\r\nresult, the amount of memory available when you execute PAL's RUN or RUN\r\nBIG command (or their keyboard equivalents, [Ctrl][O] and [Alt][O]) will\r\nvary more in the course of a session than it did in Paradox 3.0.  Exactly\r\nhow much memory is available depends on many factors, but neither RUN nor\r\nRUN BIG will always give you as much memory as Paradox 3.0 did.\r\n     In both real and protected mode, RUN always gives 140K or more; if it\r\ncan't free up that much, Paradox automatically converts the RUN to a RUN\r\nBIG.  In real mode, RUN BIG can usually free up all but about 25K of the\r\nmemory available when you started Paradox.  In protected mode, it can\r\nusually free up all but about 75K of the memory available at Paradox\r\nstartup.\r\n     For most users, RUN and RUN BIG will work just as before.  If you are\r\nusing RUN BIG to run a memory-intensive program from within Paradox, check\r\nthat the operation will still work in your configuration.\r\n\r\nPRINT FILE:\r\n     PAL's PRINT FILE command is much faster now because Paradox keeps the\r\nfile open as long as possible and buffers the output.  If you previously\r\noptimized PRINT FILE by concatenating output into long strings, you'll find\r\nthat this is no longer necessary.  Paradox knows to write the buffer and\r\nclose the file almost any time it could be necessary:  when you exit\r\nParadox, execute a RUN command, print to another file, use the FILESIZE\r\nfunction to test the size of the file just written, play the script just\r\nwritten, etc.  If you want to close the file before Paradox does so\r\nautomatically - if you use it as a semaphore to other network users, for\r\nexample - use something like\r\n\r\n          DUMMY = ISFILE(\"filename.txt\")\r\n\r\n(where \"filename.txt\" is the name of your file) to force it to be closed.\r\n\r\nRECORDSTATUS Function:\r\n     In several cases, RECORDSTATUS may return a result that is not what\r\nyou expect.  It's helpful to be aware of these cases and know why\r\nRECORDSTATUS reports what it does:\r\n\r\n     -  Using RESYNCKEY to show Many-one and Many-many details matching the\r\n        current record has the effect of posting your changes (though the\r\n        record remains locked.)  As a result, RECORDSTATUS (\"Modified\")\r\n        returns False.\r\n\r\n     -  RECORDSTATUS (\"KeyViol\") returns False if you've inserted a\r\n        duplicate record but haven't yet tried to post it, since Paradox\r\n        doesn't detect the key violation until then.\r\n\r\n     -  RECORDSTATUS (\"KeyViol\") also returns false if you enter a\r\n        duplicate key in a multi-table form in CoEdit and try to post it.\r\n        This looks like a key violation, but really isn't from Paradox's\r\n        point of view:  you don't have the existing record that the new\r\n        one conflicts with locked, you can't use [Alt][K] to toggle\r\n        between the two, and [Alt][L] won't force posting of the new record.\r\n\r\nError Procedures and Error Codes:\r\n     The complete list of error codes and their causes is given below.  If\r\nyou have a Paradox 3.5 manual set, you'll also find this table in your \"PAL\r\nUser's Guide.\"  There are two other small points about error procedures and\r\nerror codes to note:\r\n\r\n     -  If you attempt to modify a table that is write-protected, Paradox\r\n        sets errorcode to 22, not to 35 as in previous versions.\r\n\r\n     -  When an error procedure is called because a low memory warning is\r\n        issued, Paradox always retries the current statement on return from\r\n        the error procedure, even if the return value from the procedure\r\n        specifies that it should be skipped.  This makes it easier to run\r\n        existing applications under Paradox 3.5.\r\n\r\n     PARADOX ERROR CODES\r\n\r\n     Code      Meaning\r\n     ----      -------------------------------------\r\n     0         No error (for example, record was not\r\n                changed or key was found)\r\n\r\n     File or directory errors\r\n     1         Drive not ready\r\n     2         Directory not found\r\n     3*        Table in use by another user\r\n     4*        Full lock placed on table by another user\r\n     5         File not found\r\n     6         File corrupted\r\n     7         Index file corrupted\r\n     8         Object version mismatch\r\n     9*        Record locked by another user\r\n     10        Directory in use by another user\r\n     11*       Directory is private directory of another user\r\n     12        No access to directory at operating system level\r\n     13        Index inconsistent with sort order\r\n     14        Multiuser access denied\r\n     15        PARADOX.NET file conflict\r\n\r\n     General script errors\r\n     20        Invalid context for operation\r\n     21        Insufficient password rights\r\n     22        Table is write-protected\r\n     23        Invalid field value\r\n     24        Obsolete procedure library\r\n     25        Insufficient image rights\r\n     26**      Invalid PAL context\r\n     27        Operation not completed\r\n     28        Too many nested closed procedures\r\n     29        Table is remote (on an SQL server)\r\n\r\n     Argument errors\r\n     30        Data type mismatch\r\n     31        Argument out of range\r\n     32        Wrong number of arguments\r\n     33        Invalid argument\r\n     34        Variable or procedure not assigned\r\n     35        Invalid menu command\r\n\r\n     Resource errors\r\n     40**      Not enough memory to complete operation\r\n     41        Not enough disk space to complete operation\r\n     42**      Not enough stack space to complete operation\r\n     43        Printer not ready\r\n     44        Low memory warning\r\n\r\n     Record-oriented operation errors\r\n     50**      Record was deleted by another user\r\n     51**      Record was changed by another user\r\n     52**      Record was inserted by another user\r\n     53**      Record with that key already exists\r\n     54**      Record or table was not locked\r\n     55**      Record is already locked by you\r\n     56**      Lookup key not found\r\n\r\n     Multi-table operation errors\r\n     60        Referential integrity check\r\n     61        Invalid multi-table form\r\n     62**      Form locked\r\n     63        Link locked\r\n\r\n      * For this code, ERRORUSER() returns the name of the user who locked\r\n        the resource\r\n     ** This code does not invoke a designated error procedure\r\n\r\n\r\n4. STARTING AND RUNNING PARADOX IN SPECIAL CONFIGURATIONS\r\n---------------------------------------------------------\r\n\r\nRunning Paradox 3.5 under Windows 3.0:\r\n     You can run Paradox 3.5 and the Paradox Personal Programmer (PProg)\r\nunder Windows 3.0.  If you plan to do this, you need to do four things, in\r\nthis order:\r\n\r\n     1. Copy the .PIF and .GRP files from the \\WINDOWS subdirectory on your\r\n        Paradox Installation\\Sample Tables disk into your Windows directory\r\n        (usually C:\\WINDOWS).  The PARADOX.PIF and PPROG.PIF files allow\r\n        Paradox and the Personal Programmer to run optimally under Windows.\r\n        If you choose to modify them or define your own .PIF files, you\r\n        should always include the -win command-line option.  PARADOX.GRP\r\n        gives Windows a program manager icon for Paradox 3.5 that contains\r\n        icons for Paradox 3.5 and the Paradox Personal Programmer.\r\n\r\n     2. Make sure your Paradox system directory is in your DOS PATH\r\n        statement, so Windows can find the files.  For information on the\r\n        PATH statement, see your DOS manual.\r\n\r\n     3. Run the DOS SHARE program.  Type SHARE at any DOS prompt to do\r\n        this, or add a SHARE statement to your AUTOEXEC.BAT file.  SHARE\r\n        must be resident to run Paradox 3.5 under Windows.\r\n\r\n     4. Set up a program group in Windows to put a Paradox icon on the\r\n        Windows Program Manager screen.  To create this program group,\r\n\r\n        a. Choose File from the Windows Program Manager.\r\n        b. Choose New, then choose Program Group.\r\n        c. Fill in a description of the group to appear under the icon (for\r\n           example, PARADOX 3.5).\r\n        d. Fill in the full path name of the group file (for example,\r\n           C:\\WINDOWS\\PARADOX.GRP).\r\n        e. Click OK.  Two new icons appear in your Paradox 3.5 window: one\r\n           for Paradox 3.5 and one for the Paradox Personal Programmer.\r\n\r\nWindows is now set up to run either Paradox 3.5 or the Personal Programmer\r\nwhenever you want.  Double-click on the appropriate icon to invoke the\r\nprogram.\r\n     Paradox 3.5 runs in a bordered window when Windows is running in 386\r\nEnhanced Mode.  (You enter this mode by starting Windows with the command\r\nWIN /3).  If you are running Windows on an 8088 or 80286 computer, or on a\r\n386 in real or standard mode, Paradox and the Personal Programmer run in\r\nfull-screen mode and appear as they do when run outside Windows.  In this\r\nfull-screen mode, press [ALT][ESC] to switch from Paradox to another\r\nWindows application.  The Paradox (or PProg) icon appears at the lower\r\nleft corner of the Program Manager window; double-click on it to return\r\nto Paradox (or PProg).\r\n     After you press a mouse button in a window, its title bar says Select.\r\nThis means that Windows has taken over control of the keyboard and mouse so\r\nyou can cut or paste, operations Paradox does not support.  Press [ESC]\r\nto return control to Paradox.\r\n     To close files properly and prevent data loss, always exit Paradox\r\nusing the keyboard (press [F10] and choose Exit|Yes), not the mouse.  If you\r\ntry to exit Windows with Paradox still running, a warning appears and you\r\nare given a chance to exit Paradox properly; Windows will not let you exit\r\nwithout closing applications.\r\n\r\nRunning Paradox 3.5 under DESQview:\r\n     You can run Paradox 3.5 under DESQview in either real or protected mode\r\non a 286 or higher machine.  Here's how to configure DESQview to run\r\nParadox 3.5:\r\n\r\n     1. Install Paradox 3.5 according to the installation instructions in\r\n        the \"Introduction to Paradox\" manual or the \"Upgrade Guide.\"\r\n\r\n     2. From the DESQview Main menu, choose Open Window.\r\n\r\n     3. If you are upgrading from Paradox 3.0 to 3.5, select Paradox3 from\r\n        the file list, then choose Change a Program.  If you are installing\r\n        Paradox for the first time, you'll first have to use Add a Program\r\n        to add the program name to this list.\r\n\r\n     4. Press [F1] to see the Standard Options screen. Type the program\r\n        name, any batch file name you use to invoke it, the full path\r\n        name (including file name), and any command-line parameters you\r\n        use. Set Memory Size (in K) to 440. Set the Standard Options\r\n        switches as follows:\r\n                      Writes Text To Screen      [N]*\r\n                      Displays Graphics Info     [Y]\r\n                      Virtualize Text/Graphics   [N]**\r\n                      Uses Serial Ports          [N]\r\n                      Requires Floppy            [N]\r\n\r\n     5. Press [F1] again for the Advanced Options screen. Set the following\r\n        parameters:\r\n                      System memory                0\r\n                      Max Program Size (in K)    640\r\n                      Script Buffer Size        1000\r\n                      Max Expanded Memory       1024***\r\n\r\n        Set the switches as follows:\r\n                      Close On Exit              [ ](leave blank)\r\n                      Allow Close Window Command [N]\r\n                      Uses Math Coprocessor      [Y]\r\n                      Share CPU When Foreground  [Y]\r\n                      Can Be Swapped Out         [ ](leave blank)\r\n                      Use Its Own Colors         [Y]\r\n                      Run In Background          [ ](leave blank)\r\n                      Keyboard Conflict          [0]\r\n                      Share EGA When Foreground  [Y]\r\n                      Protection Level           [0]\r\n\r\n     *   On a 286 machine, set this switch to Yes.\r\n     **  On a 286 machine or on a 386 or higher machine running in\r\n         protected mode, set this switch to Yes.\r\n     *** Max Expanded Memory can be set higher.\r\n\r\n     6. Exit Change a Program or Add a Program and start Paradox in the\r\n        usual way under DESQview.\r\n\r\nUse the same procedure to configure DESQview to run the Paradox Personal\r\nProgrammer.\r\n     If you plan to run multiple Paradox sessions under DESQview, you\r\nshould make the Paradox program files read-only.  You'll also  need one\r\nParadox serial number for each session.\r\n\r\nMultiple Paradox Sessions:\r\n     When you run Paradox on a network, the network operating system ensures\r\nthat you can share program and data files with other users whenever sharing\r\nis appropriate.  On a standalone machine, DOS's SHARE command and Paradox's\r\n-share command-line option have the same effect.  Without them, DOS assumes\r\nthat no file sharing is required.  Applications that might share files on a\r\nstandalone computer include\r\n\r\n     -  Windows\r\n     -  DESQview\r\n     -  Add-in programs for Paradox, such as Kallista's KMemo\r\n     -  In-house applications that use the RUN command to execute Paradox\r\n        Engine programs.  These programs in turn might perform special\r\n        processing on the applications' tables.\r\n\r\n     If you will be sharing files on a standalone machine, you should use\r\nthe -share command-line option.  The -share option now requires that DOS\r\nSHARE be loaded (and this in turn means that you will need to use DOS 3.0 or\r\nhigher).   Using -share causes Paradox to write a PARADOX.NET file in the\r\nroot directory on your hard disk and to put an entry in it for each session\r\nor program that runs Paradox.  This guarantees that file sharing works\r\ncorrectly.\r\n\r\nSoftware EMS Drivers:\r\n     This note is an addition to the notes about XMS-compliant EMS drivers\r\nin the \"Upgrade Guide\" and the \"Paradox User's Guide.\"\r\n     If your system has extended memory that an XMS-compliant EMS driver is\r\nconverting to expanded memory, Paradox handles this memory at startup in\r\nthe following ways:\r\n     In real mode with neither the -extk or -emk command-line options set,\r\nParadox asks the driver for all the available extended memory, then uses\r\nthat memory as a swap device.  To keep Paradox from using all the expanded\r\nmemory in this way, use the -extk command-line option.  For example, if you\r\nnormally have 4MB of extended memory being converted to expanded memory,\r\nand you want Paradox to take only 1MB of that memory, type\r\n\r\n              paradox -real -extk 1024\r\n\r\n(You usually need to include the -real option, since Paradox attempts to\r\nrun in protected mode by default.)  The rest of the memory remains as\r\nexpanded memory, which Paradox also uses as a swap device.  To save some of\r\nthat expanded memory for another (concurrent) program, you must also set an\r\n-emk option.  For instance, if you have 4MB, and you want to have Paradox\r\nuse 1MB as extended, 1MB as expanded, and leave 2MB of expanded for another\r\nprogram, type\r\n\r\n              paradox  -extk 1024 -emk 1024\r\n\r\n     When you start Paradox in protected mode, the options are evaluated\r\ndifferently.   In protected mode, Paradox takes all the XMS-compliant EMS\r\nmemory as extended memory before it evaluates the -ext or -emk options.  If\r\nthe EMS driver is set up in your CONFIG.SYS file so that only some of the\r\nextended memory is available to the EMS driver, Paradox uses only that\r\nmemory configured as expanded, but changes it to extended.  Paradox does\r\nnot use the non-EMS configured extended memory at all.  For instance, if you\r\nhave 1MB left as extended and 3MB configured as expanded, Paradox takes 3MB\r\nand uses it as extended.\r\n\r\nNovell NetWare 386:\r\n     NetWare 386 allows you to define a virtual root.   This means that it\r\nallows you to map a drive letter to a subdirectory in such a way that the\r\nuser of that mapping can only access the mapped subdirectory and its child\r\ndirectories.  (Ordinarily, NetWare mappings are just shortcuts; you can\r\nstill use the DOS CHDIR command to access any directory on the volume.)\r\nVirtual roots are created with the 'MAP ROOT' command.\r\n     Since virtual roots allow different users to access different\r\nsubdirectories of a volume with the same network drive path, Paradox might\r\nnot enforce locking correctly if two users specify paths to the PARADOX.NET\r\nfile which do not indicate the same subdirectory on the server.  For\r\nexample, if one user maps S: using the command\r\n\r\n          MAP ROOT S: server\\sys:pdoxdata\r\n\r\nand another user maps S: using\r\n\r\n          MAP S: server\\sys:pdoxdata\r\n\r\nthen the \\PDOXDATA directory will be S:\\ for the first user and\r\nS:\\pdoxdata for the second user.  Similarly, if one user maps S: using\r\n\r\n          MAP ROOT S: server\\sys:pdoxdata\r\n\r\nand another maps S: using\r\n\r\n          MAP ROOT S: server\\sys:pdox\r\n\r\nthen S:\\ for the first user will be different than S:\\ for the second user.\r\nBoth of these situations can lead to severe data corruption.\r\n     Be sure to observe the warning in the Network Administrator's Guide\r\nthat \"All Paradox users must have the directory containing the PARADOX.NET\r\nfile mapped to the same logical drive and directory.\"  Suppose your\r\nPARADOX.NET file is in server\\sys:pdoxdata and you use your system login\r\nscript to map S: to server\\sys:pdoxdata as a virtual root.  Then you should\r\nspecify when you install Paradox that PARADOX.NET is in S:\\.  Once\r\nyou've done this, it is essential that no one override the mapping of S:.\r\nIn this way, all active users share the PARADOX.NET file, each recognizes\r\nthe others as active users, and all respect the others' lock files.\r\n\r\n\r\n5. NOTES ON THE CUSTOM CONFIGURATION PROGRAM\r\n--------------------------------------------\r\n\r\nConfiguration Issues:\r\n     When discussing Custom's new handling of color settings, the \"Upgrade\r\nGuide\" says that when you're in Video|Colors, you will recognize your\r\nexisting color settings by their names.  Ordinarily, this won't be true;\r\nwhen you run Custom with Paradox 3.5, you will start with the default\r\nconfiguration file.  Even users of earlier Paradox versions who have\r\nchosen to override only a few of Paradox's defaults are better off\r\nredefining their configurations from scratch.  But if your existing\r\nconfiguration file is highly customized - if you've modified the default\r\nreport or graph specification, or selected several graph printers, or added\r\nreport setup strings or color settings - you may want to retain your\r\nexisting configuration.  To do so, copy your PARADOX3.CFG file (or another\r\n.CFG file from a previous version of Paradox) to PARADOX.CFG and move it to\r\nyour Paradox 3.5 directory.  (You may want to save a copy of the current\r\nPARADOX.CFG first.)  You can now use Paradox 3.5's Custom program to\r\nfurther customize your configuration.\r\n\r\nB&W Monitors:\r\n     On monochrome and B&W monitors, Paradox uses only the built-in color\r\nsetting.  (A B&W monitor is a monochrome monitor attached to a color video\r\ncard.)  If you want to modify the color setting on a B&W monitor, you must\r\nset your monitor type to \"Color\" (using the Video|Monitor command);\r\notherwise, Paradox ignores the changes you make to the color setting.  The\r\neffect, of course, will be to change the shades of gray or orange that your\r\nmonitor uses to show different elements of the Paradox display.\r\n\r\nGraph Printers:\r\n     The list of graph printers you can choose from in Custom's\r\nGraphs|Printers command has been updated and expanded, and a few older\r\nprinters have been removed from the list.  If you want to use a printer\r\nthat was available in Paradox 3.0 but is not available in Paradox 3.5,\r\nhere's how:\r\n\r\n     -  If you haven't already done so, run Paradox 3.0 and Paradox 3.0's\r\n        version of Custom to select the printer.\r\n\r\n     -  Rename your PARADOX3.CFG file to PARADOX.CFG and move it to your\r\n        Paradox 3.5 directory.  (You may want to save a copy of the current\r\n        PARADOX.CFG first.)\r\n\r\n     -  Run Paradox 3.5 as usual.  The printer defined in Paradox 3.0 will\r\n        be available.\r\n\r\nDirectories and Paths:\r\n     Previous versions of Paradox installed Custom in the program directory\r\nby default, but did not require that it be there.  With Paradox 3.5, you\r\nmust store Custom in the system directory or in a directory on your path in\r\norder to use the Tune|ProtectedMode|MachineInfo and Configure options.\r\nThis ensures that Paradox can find the machine configuration information\r\nthat Custom writes out.  If the Paradox system directory on your\r\nnetwork is normally read-only, you will need to log on as the network\r\nadministrator to write to it.  For more information, see the \"Upgrade\r\nGuide.\"\r\n\r\nThe MachineInfo Report:\r\n     Custom's MachineInfo report displays basic information about your\r\nmachine configuration.  Because computers vary widely, the report is\r\nsometimes incomplete or slightly inaccurate.  For example, not every BIOS\r\ncontains an ID at the \"standard\" address, but MachineInfo can't determine\r\nwhat's a valid ID string and what isn't.  Don't be alarmed if you see random\r\ncharacters, or even a message like \"fatal error\" in the \"BIOS ID String\"\r\nfield.  It's just extraneous text that MachineInfo mistook for the BIOS ID.\r\n\r\n\r\n6. NOTES ON THE PERSONAL PROGRAMMER\r\n-----------------------------------\r\n\r\n     There have been some minor changes to the Personal Programmer. Other\r\nthan the changes noted below, all parts of the program operate just as\r\nthey did in Paradox 3.0.\r\n\r\n     1. Paradox 3.5 uses a slightly modified way of reading\r\n        and writing libraries.  Although Paradox 3.5 will read the\r\n        old libraries in exactly the same way as it did before,\r\n        the Personal Programmer can not directly modify libraries\r\n        in the old format. If you are modifying an application\r\n        that was originally created in 3.0, you will see a new\r\n        menu the first time you modify the application in 3.5. It\r\n        will appear immediately after you enter the name of the\r\n        application, and will offer you the option of updating\r\n        your libraries to 3.5 format.\r\n\r\n        If you choose Cancel, you will return to the Personal\r\n        Programmer Main menu. If you choose Update, the Personal\r\n        Programmer will rebuild your libraries in the new 3.5\r\n        format. Be aware that if you update the libraries, the\r\n        application will not be usable in Paradox 3.0. If you need\r\n        to modify an application that will be used with both 3.5\r\n        and 3.0, you should modify the application using only\r\n        Personal Programmer 3.0.\r\n\r\n     2. The Personal Programmer was not designed to be used on a\r\n        network and will not generate a multiuser application. In\r\n        Paradox 3.0, the large amount of memory needed to create\r\n        an application made it very difficult to execute the\r\n        Personal Programmer with the network software loaded.\r\n\r\n        Now that the Personal Programmer can access Extended RAM,\r\n        it would have been possible to run while the network\r\n        drivers are loaded. However, running the Personal\r\n        Programmer on a network drive with other users working\r\n        interactively could result in the failure of the program\r\n        and a loss of work. To prevent this loss of data, the\r\n        Personal Programmer has been modified to prevent the use\r\n        of a network drive.\r\n\r\n     3. The Personal Programmer allows you to set validation checks on\r\n        fields, requiring that they be filled with valid data.\r\n        There is one case where a combination of validity checks\r\n        will cause a problem. If you use the \"TableLookup/HelpAndFill\"\r\n        and the \"RequiredField\" options together, users may get\r\n        \"stuck\" in the field. In this case, pressing F1 to bring\r\n        up the Lookup will result in the message \"A value must be\r\n        provided in this field.\"  The user doesn't know what a\r\n        valid value is, and can't check to find out.  This\r\n        combination should be avoided.\r\n\r\n\r\n7. FILES ON THE DISKS\r\n---------------------\r\n\r\n     This is the configuration for 5.25\" disks.  Each 3.5\" disk except\r\nPersonal Programmer Disk 3 contains the directories and files from two\r\n5.25\" disks, as indicated by its disk label.\r\n\r\nDISK 1:  INSTALLATION/SAMPLE TABLES DISK\r\n----------------------------------------\r\nINSTALL    EXE    - Paradox installation program\r\nREADME     COM    - Program to display README file\r\nINSTALL    CFG    - Installation parameters\r\nUNZIP      EXE    - Program to \"unzip\" compressed files\r\nASCII      SOR    - ASCII sort order\r\nINTL       SOR    - International sort order\r\nNORDAN     SOR    - Norwegian/Danish sort order\r\nSWEDFIN    SOR    - Swedish/Finnish sort order\r\n\r\nSYS        ZIP    - Zip file containing:\r\n  NUPDATE    EXE  - Program to update serial numbers, net type\r\n  PARADOXK   EXE  - Protected mode driver program\r\n  PARADOX    CFG  - Default Paradox configuration settings\r\n  PARADOX    SOM  - Paradox program file\r\n\r\nIn \\UTIL:\r\nUTIL       ZIP    - Zip file containing:\r\n  FLIMPORT   EXE  - Fixed-length Import utility program\r\n  FLIMPORT   DOC  - Documentation for Fixed-length Import program\r\n  VOUCH      EXE  - Checksum utility program\r\n\r\nIn \\SAMPAPP:\r\nSAMPAPP    ZIP    - Zip file containing sample application:\r\n  BOARD      SC   - Script to display Price table\r\n  DOFEED     SC   - Script to generate stock Price changes\r\n  FEED       SC   - Script to call procedures in DOFEED.SC\r\n  GRAPHS     SC   - Script to display graphs\r\n  HOLDINGS   SC   - Script to display holdings\r\n  MKLIB      SC   - Script to build procedure library\r\n  PORTFOL    SC   - Script to display portfolios\r\n  STOCKS     SC   - Main menu script\r\n  TICKER     SC   - Script to display \"ticker tape\"\r\n  HOLDING    DB   - Holdings table\r\n  HOLDING    PX   - Holdings table - primary index\r\n  PRICE      DB   - Stock Price table\r\n  PRICE      PX   - Stock Price table - primary index\r\n  PRICE      SET  - Stock Price table - settings file\r\n  GRAPH1     G    - Sample application Bar & Marker graph spec\r\n  GRAPH2     G    - Sample application 3-D Bar graph spec\r\n  GRAPH3     G    - Stacked Bar graph spec\r\n  GRAPH4     G    - Sample application Pie chart spec\r\n\r\nIn \\TABLES:\r\nTABLES     ZIP    - Zip file containing sample files:\r\n  DEBUGTST   SC   - Sample PAL code (with intentional errors)\r\n  PIES       SC   - Recorded script to create sample graphs\r\n  RECAP      SC   - Script to do work done manually during tutorial\r\n  BOOKORD    DB   - Sample Book orders table\r\n  BOOKORD    F1   - Sample Book orders table - form 1\r\n  BOOKORD    PX   - Sample Book orders table - primary index\r\n  CUSTOMER   DB   - Sample Customer table\r\n  CUSTOMER   F1   - Sample Customer table - form 1\r\n  CUSTOMER   F2   - Sample Customer table - form 2\r\n  CUSTOMER   F3   - Sample Customer table - form 3\r\n  CUSTOMER   PX   - Sample Customer table - primary index\r\n  CUSTOMER   R1   - Sample Customer table - report 1\r\n  CUSTOMER   R2   - Sample Customer table - report 2\r\n  CUSTOMER   SET  - Sample Customer table - image settings\r\n  DISTRICT   WQ1  - Sample Quattro PRO worksheet\r\n  EMPLOYEE   DB   - Sample Employee table\r\n  EMPLOYEE   F1   - Sample Employee table - form 1\r\n  EMPLOYEE   PX   - Sample Employee table - primary index\r\n  EMPLOYEE   SET  - Sample Employee table - image settings\r\n  HOMEGRP    DB   - Sample Home group table\r\n  MAIL       DB   - Sample Mail table\r\n  MAIL       PX   - Sample Mail table - primary index\r\n  MAIL       R1   - Sample Mail table - report 1\r\n  MASTERBK   DB   - Sample Master book table\r\n  NEWRECS    DB   - Sample New records table\r\n  PRODUCTS   DB   - Sample Products table\r\n  PRODUCTS   SET  - Sample Products table - image settings\r\n  PROMO      DB   - Sample Promotion table\r\n  PROMO      PX   - Sample Promotion table - primary index\r\n  REPPERF    DB   - Sample Repperf table\r\n  REPPERF    PX   - Sample Repperf table - primary index\r\n  SALES      DB   - Sample Sales table\r\n  SALES      SET  - Sample Sales table - image settings\r\n  SUBGROUP   DB   - Sample Subgroup table\r\n  VOLS       DB   - Sample Volumes table\r\n  VOLS       PX   - Sample Volumes table - primary index\r\n  XCHANGE    DB   - Sample Xchange table\r\n\r\nIn \\WINDOWS:\r\nPARADOX   PIF     - Windows 3.0 PIF file for Paradox\r\nPPROG     PIF     - Windows 3.0 PIF file for PProg\r\nPDOXRUN   PIF     - Windows 3.0 PIF file for Runtime\r\nPARADOX   GRP     - Windows 3.0 group file for Paradox\r\n\r\nREADME            - This file\r\n\r\nDISK 2:  SYSTEM DISK 1\r\n----------------------\r\nin \\SYSTEM1:\r\nPDOX1     ZI1     - First part of main Paradox executable file\r\n\r\nDISK 3:  SYSTEM DISK 2\r\n----------------------\r\nin \\SYSTEM2:\r\nPDOX1     ZI2     - Second part of main Paradox executable file\r\nPDOX2     ZI1     - First part of zip file for other Paradox files\r\n\r\nDISK 4:  SYSTEM DISK 3\r\n----------------------\r\nin \\SYSTEM3:\r\nPDOX2     ZI2     - Second part of zip file for other Paradox files\r\n\r\nDISK 5:  CUSTOM CONFIGURATION DISK\r\n----------------------------------\r\nIn \\CUSTOM:\r\nCUSTOM     ZIP    - Zip file containing:\r\n  CUSTOM     SC   - Custom Configuration - main script\r\n  COLORS     LIB  - Custom Configuration - color procedures library\r\n  CUSTOM     LIB  - Custom Configuration - main procedure library\r\n  CUSTOM     OV1  - Custom Configuration - Tune menu command\r\n\r\nDISK 6:  DATA ENTRY TOOLKIT DISK\r\n--------------------------------\r\nIn \\TOOLKIT:\r\nTOOLKIT    ZIP    - Zip file containing Data Entry Toolkit:\r\n  BORROW0    SC   - Borrow script for CUSTDPA.SC\r\n  BORROW1    SC   - Borrow script for MINIDPA.SC\r\n  BORROW2    SC   - Borrow script for INVDPA.SC\r\n  BORROW3    SC   - Borrow script for ORDRDPA.SC\r\n  CUSTDEMO   SC   - Custom procedures for Cust table, DoWait demo\r\n  CUSTDPA    SC   - DoWait Procedure Assignment set for Cust\r\n  DEMO       SC   - Starts the DoWait demonstration\r\n  DOW8DEMO   SC   - Builds DOW8DEMO.LIB for DoWait demo\r\n  EDITMENU   SC   - Source code for EditMenu procedure\r\n  ENFORME    SC   - Main Enforme form editor script\r\n  FORMBRDR   SC   - Enforme border drawing routines\r\n  FORMGOTO   SC   - Enforme workspace positioning routines\r\n  FORMHELP   SC   - Enforme help screen\r\n  FORMHOPS   SC   - Enforme workspace movement routines\r\n  FORMMAIN   SC   - Enforme main getkey procedure\r\n  FORMMAKE   SC   - Script to create Enforme procedure library\r\n  FORMSLCT   SC   - Enforme form selection routines\r\n  GETFILE    SC   - Source code for GetFile procedure\r\n  GETPASS    SC   - Source code for GetPassword procedure\r\n  HELPDEMO   SC   - Inactivity proc, help for DoWait demonstration\r\n  INVDEMO    SC   - Custom procedures for Invoice, DoWait demo\r\n  INVDPA     SC   - DoWait Procedure Assignment set for Invoice\r\n  KERNEL     SC   - Source code for DoWait procedures\r\n  KEYCODES   SC   - Source code for SetKeycodes procedure\r\n  LOOKSLCT   SC   - Source code for LookupSelect procedure\r\n  LOOKWAIT   SC   - Source code for LookupWait procedure\r\n  MINIDEMO   SC   - Source code for sample SetUpDoWait session\r\n  MINIDPA    SC   - DoWait Procedure Assignment set for Cust\r\n  ORDRDEMO   SC   - Custom procedures for Orders table, DoWait demo\r\n  ORDRDPA    SC   - DoWait Procedure Assignment set for Orders\r\n  POPUP      SC   - Source code for Popup procedures\r\n  POPUP2     SC   - Source code for Popup2 procedures\r\n  RECURSW8   SC   - Source code for RecurseWait procedure\r\n  RELEASW8   SC   - Source code for ReleaseWait procedure\r\n  RFRSHCNV   SC   - Source code for RefreshCanvas procedure\r\n  TKDEBUG    SC   - Source code for TKDebug procedure\r\n  TKMENU     SC   - TKMenu main script\r\n  TKUPDATE   SC   - Script to update Paradox 2.0 spec files\r\n  TKUPDATE   LIB  - TKUpdate procedure library\r\n  TOOLKIT2   LIB  - TKMenu procedure library\r\n  CARRIERS   DB   - DoWait demo Carrier service table\r\n  CARRIERS   F    - DoWait demo Carrier service table - form 1\r\n  CUST       DB   - DoWait demo Customer table\r\n  CUST       F    - DoWait demo Customer table - form F\r\n  CUST       F1   - DoWait demo Customer table - form 1\r\n  CUST       PX   - DoWait demo Customer table - primary index\r\n  CUST       VAL  - DoWait demo Customer table - validity checks\r\n  INVOICE    DB   - DoWait demo Invoice table\r\n  INVOICE    F    - DoWait demo Invoice table - form F\r\n  INVOICE    PX   - DoWait demo Invoice table - primary index\r\n  INVOICE    VAL  - DoWait demo Invoice table - validity checks\r\n  ORDERS     DB   - DoWait demo Orders table\r\n  ORDERS     F    - DoWait demo Orders table - form F\r\n  ORDERS     PX   - DoWait demo Orders table - primary index\r\n  ORDERS     VAL  - DoWait demo Orders table - validity checks\r\n  PAYMENT    DB   - DoWait demo Payment table\r\n  STOCK      DB   - DoWait demo Stock table\r\n  STOCK      PX   - DoWait demo Stock table - primary index\r\n  TKFIELDS   DB   - TKMenu field-level proc data table\r\n  TKFIELDS   F    - TKMenu field-level proc data table - form F\r\n  TKFLDLVL   DB   - TKMenu field-level procedures - table\r\n  TKFLDLVL   F    - TKMenu field-level procedures - form F\r\n  TKFLDLVL   PX   - TKMenu field-level procedures - primary index\r\n  TKFLDLVL   R    - TKMenu field-level procedures - report R\r\n  TKFLDLVL   SET  - TKMenu field-level procedures - image settings\r\n  TKFLDLVL   VAL  - TKMenu field-level procedures - validity checks\r\n  TKKEYLVL   DB   - TKMenu key-level procedures - table\r\n  TKKEYLVL   PX   - TKMenu key-level procedures - primary index\r\n  TKKEYLVL   R    - TKMenu key-level procedures - report R\r\n  TKKEYLVL   VAL  - TKMenu key-level procedures - validity checks\r\n  TKPRCMAP   DB   - TOOLKIT.LIB procedure mapping - table\r\n  TKPRCMAP   PX   - TOOLKIT.LIB procedure mapping - primary index\r\n  TKPROCS    DB   - TOOLKIT.LIB procedure list - table\r\n  TKPROCS    PX   - TOOLKIT.LIB procedure list - primary index\r\n  TKPROCS    VAL  - TOOLKIT.LIB procedure list - validity checks\r\n  TKTBLLVL   DB   - TKMenu table-level procedures - table\r\n  TKTBLLVL   R    - TKMenu table-level procedures - report R\r\n  TKTBLLVL   VAL  - TKMenu table-level procedures - validity checks\r\n\r\nIn \\PROTECT:\r\nPROTECT    ZIP    - Zip file containing:\r\n  PROTECT    SC   - Protection Generator - main script\r\n  PROTECT    LIB  - Protection Generator - procedure library\r\n\r\nDISK 7:  PERSONAL PROGRAMMER DISK 1\r\n-----------------------------------\r\nin \\PPROG1:\r\nPPROG      SOM    - Personal Programmer program file\r\nPPROG1     ZI1    - First part of main PProg executable file\r\n\r\nIn \\VIDEO:\r\nVIDEO      ZIP    - Zip file containing Video demo application:\r\n  VIDENT     SC   - Data entry script\r\n  CUSTOMER   DB   - Customer table\r\n  CUSTOMER   F1   - Customer table - form 1\r\n  CUSTOMER   PX   - Customer table - primary index\r\n  FILMCAT    DB   - Film category table\r\n  FILMCAT    PX   - Film category table - primary index\r\n  FILMS      DB   - Films table\r\n  FILMS      F    - Films table - standard form\r\n  FILMS      PX   - Films table - primary index\r\n  ORDERS     DB   - Orders table\r\n  ORDERS     F1   - Orders table - form 1\r\n  ORDERS     F2   - Orders table - form 2\r\n  ORDERS     PX   - Orders table - primary index\r\n  ORDERS     VAL  - Orders table - validity checks\r\n  ORDTEMP    DB   - Film checkout table\r\n  ORDTEMP    F1   - Film checkout table - form 1\r\n  ORDTEMP    VAL  - Film checkout table - validity checks\r\n  OVERMAP    DB   - Overdue films - map table\r\n  OVERSRC    DB   - Overdue films - source table\r\n  OVERSRC    R2   - Overdue films - source table report 2\r\n\r\nDISK 8:  PERSONAL PROGRAMMER DISK 2\r\n-----------------------------------\r\nin \\PPROG2:\r\nPPROG1    ZI2     - Second part of main PProg executable file\r\nPPROG2    ZI1     - First part of zip file for other PProg files\r\n\r\nDISK 9:  PERSONAL PROGRAMMER DISK 3\r\n-----------------------------------\r\nin \\PPROG3:\r\nPPROG2    ZI2     - Second part of zip file for other PProg files"
}