home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 5 / 05.iso / a / a114 / 1.img / README < prev    next >
Encoding:
Text File  |  1990-08-25  |  51.6 KB  |  1,035 lines

  1.                          WELCOME TO PARADOX 3.5
  2.                          ----------------------
  3.  
  4.      This file contains important information that is not contained in the
  5. documentation for Paradox 3.5.  All information in this file supersedes
  6. information in the Paradox 3.5 documentation.
  7.  
  8.  
  9. TABLE OF CONTENTS
  10. -----------------
  11.  
  12.  
  13.      1. Resolving Hardware and Software Compatibility Issues
  14.      2. Notes on Interactive Paradox
  15.      3. Notes on PAL
  16.      4. Starting and Running Paradox in Special Configurations
  17.      5. Notes on the Custom Configuration Program
  18.      6. Notes on the Personal Programmer
  19.      7. Files on the Disks
  20.  
  21.  
  22. 1. RESOLVING HARDWARE AND SOFTWARE COMPATIBILITY ISSUES
  23. -------------------------------------------------------
  24.  
  25. Hardware/Software Compatibility:
  26.      Paradox is designed to follow memory management standards where they
  27. exist, to make the best possible use of your computer, and to allow you
  28. maximum flexibility to tune the program the way you want.  When Paradox
  29. loads, it tries to detect any EMS emulation, RAM disks, and caches you
  30. have, and configures itself to run optimally in that environment.  Some-
  31. times you will want or need to modify the default configuration.  You can
  32. override Paradox's installation defaults with the Custom Configuration
  33. Program (CCP) or with command-line options.  See Chapter 14 of the
  34. "Paradox User's Guide" for details.
  35.      Unfortunately, standards have been slow to evolve for memory
  36. management.  Paradox conforms to the major standards that do exist:  the
  37. VDISK standard for RAM disks, the VCPI standard for EMS emulation, and the
  38. XMS standard for extended memory.  If you use software that conforms to
  39. some other standard, you may have to make adjustments to run Paradox.
  40. Please check the list that follows for known compatibility problems.
  41.  
  42.      Some specific compatibility problems are:
  43.  
  44.      -  If you're running your machine in fast or "turbo" mode, it may be
  45.         running faster than the hardware was designed to run.  This may
  46.         cause it to drop instructions occasionally at its fastest speed.
  47.         While some of your software may run just fine in turbo mode,
  48.         Paradox sometimes makes heavier demands on the hardware than
  49.         other software packages.  If you experience difficulty, try
  50.         running Paradox in slower or "safe" mode.  (This is not to say
  51.         that all machines offering a choice of speeds are suspect; Paradox
  52.         will not have trouble on any machine's highest speed as long as
  53.         all the machine's components are designed to run at that speed.)
  54.     Machines that may experience this problem include 6Mhz IBM ATs
  55.         that have been sped up to 8Mhz or faster, the WYSEpc 286 in its
  56.         12.5Mhz mode, and the Rose Hill 286 at its faster speed.
  57.  
  58.      -  The Tall Tree JRAM EMS card is not supported by Paradox.
  59.  
  60.      -  A 286 machine with an old BIOS might not be able to run in
  61.         protected mode.
  62.  
  63.      -  A disk cache called VCache is known to be incompatible with
  64.         Paradox.  Do not run VCache with Paradox.
  65.  
  66.      -  Some EMS emulators can run without allocating an EMS page frame.
  67.         This lets you use their many extra features, particularly the
  68.         ability to relocate drivers above 640K, even if you don't want to
  69.         use EMS.  QEMM's FRAME=NONE option has this effect, as does
  70.         386Max's NOFRAME option.  If you use your EMS emulator this way,
  71.         you must run Paradox in real mode (this is the mode it will run
  72.         in by default).  Attempting to force Paradox into protected mode
  73.         in this situation might hang your machine.
  74.  
  75.      -  If you use a version of PC LAN that includes a cache and you locate
  76.         the cache in the network server's extended memory, you cannot run
  77.         Paradox on the server - there isn't enough memory below 640K left
  78.         for Paradox to run in real mode, and the PC LAN cache does not
  79.         allow any other program to use extended memory.
  80.  
  81.      -  The AST REX.SYS driver, which converts EEMS expanded memory back to
  82.         extended memory, is not compatible with Paradox 3.5.  To obtain
  83.         extended memory with an EEMS board, don't let the REMM.SYS expanded
  84.         memory driver use some or all of the memory on the board.  (In some
  85.         cases, you will have to set switches on the board to accomplish
  86.         this.)
  87.  
  88.      -  Under DOS 2.x, Paradox 3.5 runs only in real mode, not in protected
  89.         mode.
  90.  
  91. Testing Your CPU and EMS:
  92.      If you experience intermittent failures, they may be due to a
  93. processor that's running too fast or memory that is defective or runs too
  94. slowly.  Paradox  3.5 includes two small programs to test for problems of
  95. this sort.  Although they cannot detect all machine problems, they do test
  96. machine components that Paradox 3.5 stresses; as a result, they
  97. often help pinpoint problem areas.  The programs are CPUTEST.EXE and
  98. EMSTEST.COM.  Both are installed in your Paradox 3.5 program directory
  99. automatically.  If you have any reason to suspect that your hardware may
  100. not be able to keep up with Paradox, you should run both programs (run only
  101. CPUTEST if you don't have expanded memory).  Even if your computer is
  102. running flawlessly, feel free to try them out.  CPUTEST runs just a few
  103. seconds, and EMSTEST just a few minutes.
  104.      To run CPUTEST, just move to your Paradox directory (usually \PDOX35)
  105. and type
  106.           CPUTEST
  107. You should see the message "This CPU Tests OK."  A message like "2
  108. instructions skipped" probably indicates that your computer's processor is
  109. running too fast.
  110.      To run EMSTEST, move to your Paradox directory, type
  111.           EMSTEST
  112. and press keys as instructed.  The test will verify that your Expanded
  113. Memory Specification (EMS) hardware and software are working correctly.
  114. You should see descriptions of a number of tests, each followed by the
  115. status "OK."  Any other status message indicates a probable EMS failure.
  116.  
  117.  
  118. 2. NOTES ON INTERACTIVE PARADOX
  119. -------------------------------
  120.  
  121. Incremental Menu Selection:
  122.      In Paradox 3.0, you can type a letter when choosing from a menu to
  123. narrow your selection down to choices starting with that letter, then make
  124. your final selection using the arrow keys.  In Paradox 3.5, you can type a
  125. second letter to narrow your choices down further, then a third letter, and
  126. so on.  As you type each letter, it will be colored differently in the
  127. current menu item.  Whenever there is only one choice that matches the
  128. letters typed, it will be selected immediately, just as is done in Paradox
  129. 3.0 when the first letter of a choice is unique.  You can still use the
  130. arrow keys to select, as before; as soon as you do, the incremental
  131. selection in process is abandoned, so you must start from the beginning of
  132. the desired choice to select it using incremental type in.
  133.      Incremental menu selection works wherever you select from a menu:  in
  134. Paradox's own menus; in application menus created by SHOWMENU; in lists of
  135. tables, scripts, forms, and other objects; and in lists produced by
  136. SHOWARRAY, SHOWTABLES, and SHOWFILES.  In interactive use, the new
  137. incremental selection capability is completely compatible with existing
  138. menu interaction.  Scripts that use InstantRecord, SHOWMENU, or braced menu
  139. selections will also be compatible with Paradox 3.5.  Scripts that use
  140. KEYPRESS and TYPE IN to select from menus might behave differently:
  141. keystrokes that did not cause a menu item to be selected now can, depending
  142. on the contents of the menu list.
  143.  
  144. Tools|Copy|JustFamily:
  145.      Previous versions of Tools|Copy|JustFamily could copy corrupt or
  146. out-of-date family members from the source to the target table.  Although
  147. this was clearly the wrong action for corrupt family members, it did allow
  148. you to "re-attach" a correct but out-of-date object to its table.
  149. Copy|JustFamily now checks that each object is a valid member of the source
  150. table's family before copying it.  As a result, you will no longer be able
  151. to use it to attach out-of-date family members to their tables.
  152.  
  153. Tools|Info|Lock:
  154.      The LIST table that Tools|Info|Lock produces now gives more infor-
  155. mation when there is a form-lock on a multi-table form.  When a table is
  156. form-locked, Paradox displays "Form Lock" in the lock type field, followed
  157. by the type of lock that pre-Paradox 3.0 users will see.  (These earlier
  158. versions of Paradox cannot use a form-locked table because they don't
  159. support multi-table forms.)  For example, if you are coediting a multi-
  160. table form, the type field will show "Form Lock-WL", where WL stands for
  161. Write Lock.  The other abbreviations are PFL (Prevent Full Lock) and PWL
  162. (Prevent Write Lock).  Paradox no longer adds a second record saying "Write
  163. Lock" in the LIST table.
  164.  
  165. Undo:
  166.      In a multi-table form, Undo works differently than in Paradox 3.0 in
  167. one minor case:  After a form toggle, it now takes two Undo operations to
  168. back up as far as one Undo did previously.
  169.  
  170. Number Rounding Issues:
  171.      Paradox 3.5 uses the Turbo C math library, which provides greater
  172. precision than the one used in Paradox 3.0.  This will cause some numeric
  173. and dollar values that were entered using an earlier version of Paradox to
  174. be rounded differently in Paradox 3.5.  Data entered in Paradox 3.5 will
  175. not exhibit this problem.  (Because of the way Paradox represents numbers,
  176. there will always be occasional round-off errors when manipulating numbers
  177. with many decimal digits of precision.  Unfortunately, other methods of
  178. representing numbers also have disadvantages.)
  179.      Because data entered in Paradox 3.5 works fine, the solution is to
  180. export the existing Paradox file to an ASCII file, then import the data
  181. back into Paradox 3.5.  You can put your data back into the same table it
  182. started in, leaving the table's family unaltered.  The steps to follow are:
  183.  
  184.      1. Make a backup of the table to be processed (if you don't have one)
  185.         in case any problems arise.
  186.  
  187.      2. Export the table to ASCII format.  If your table is named CUSTOMER
  188.         and you want to call the temporary ASCII file TEMP_30, use:
  189.              Tools|ExportImport|Export|Ascii|Delimited
  190.         and enter CUSTOMER as the table name and TEMP_30 as the exported
  191.         file's name.
  192.  
  193.      3. Empty the CUSTOMER table, using Tools|More|Empty.
  194.  
  195.      4. Import your data back into CUSTOMER, using the AppendDelimited
  196.         command (not the Delimited command):
  197.              Tools|ExportImport|Import|Ascii|AppendDelimited
  198.         Type in TEMP_30 when you are prompted for a file name and CUSTOMER
  199.         when you are prompted for a table name.
  200.  
  201. Norwegian/Danish Sort Order:
  202.      Minor corrections have been made to the NORDAN.SOR sort file.  The
  203. table in Chapter 14 of the "Paradox User's Guide" labeled "Swedish/Finnish
  204. and Norwegian/Danish Sort Order" is accurate only for the SWEDFIN.SOR sort
  205. order.  The order of alphabetic characters according to NORDAN.SOR is shown
  206. below.  (Note that ASCII characters 155 and 157 appear as slashed "O"s if
  207. you have the Norwegian/Danish video ROM.)
  208.  
  209.       ASCII             ASCII             ASCII             ASCII
  210. Char  Code        Char  Code        Char  Code        Char  Code
  211. -----------       -----------       -----------       -----------
  212.  a      97         i     105         Q      81         ä     132
  213.  á     160         ï     139         r     114         Æ     146
  214.  à     133         í     161         R      82         Ä     142
  215.  â     131         ì     141         s     115         ¢     155
  216.  A      65         î     140         S      83         ö     148
  217.  b      98         I      73         t     116         ¥     157
  218.  B      66         j     106         T      84         Ö     153
  219.  c      99         J      74         u     117         å     134
  220.  ç     135         k     107         ú     163         Å     143
  221.  C      67         K      75         ù     151         α     224
  222.  Ç     128         l     108         û     150         ß     225
  223.  d     100         L      76         U      85         Γ     226
  224.  D      68         m     109         v     118         π     227
  225.  e     101         M      77         V      86         Σ     228
  226.  ë     137         n     110         w     119         σ     229
  227.  é     130         ñ     164         W      87         µ     230
  228.  è     138         N      78         x     120         τ     231
  229.  ê     136         Ñ     165         X      88         Φ     232
  230.  E      69         o     111         y     121         Θ     233
  231.  É     144         ó     162         ü     129         Ω     234
  232.  f     102         ò     149         ÿ     152         δ     235
  233.  F      70         ô     147         Y      89         ∞     236
  234.  g     103         O      79         Ü     154         φ     237
  235.  G      71         p     112         z     122         ε     238
  236.  h     104         P      80         Z      90         ∩     239
  237.  H      72         q     113         æ     145         ≡     240
  238.  
  239. Compatibility with Paradox 3.0:
  240.      Paradox 3.5 is compatible with previous versions of Paradox.  However,
  241. if you will be running existing applications under Paradox 3.5 or want your
  242. Paradox 3.5 development to coexist with previous versions, there are a few
  243. points you should consider:
  244.  
  245.      -  Although tables from previous versions of Paradox are completely
  246.         compatible with Paradox 3.5, tables created in Paradox 3.5 exhibit
  247.         better performance in almost all cases.  For best performance in
  248.         Paradox 3.5, you should restructure existing tables in Paradox 3.5.
  249.         To do this, choose Modify|Restructure, then press Do-It (without
  250.         making any changes to the table's structure).  However, if some
  251.         users will continue to use these tables with earlier versions of
  252.         Paradox, be aware that these restructured tables will require more
  253.         memory when placed on the workspace - up to 2K more for each table
  254.         and for each index on the table.  (Paradox 3.5 doesn't use more
  255.         memory per image on the workspace for tables built with the
  256.         new structure; only earlier versions of Paradox do.)
  257.  
  258.      -  As explained in the "Upgrade Guide," Paradox 3.5 uses a new format
  259.         for procedure library files.  Paradox 3.5 can read existing
  260.         libraries, but previous versions cannot read Paradox 3.5 libraries.
  261.         In addition, although Paradox 3.5 can read procedures from a
  262.         Paradox 3.0 library, you cannot write such procedures directly from
  263.         memory into a Paradox 3.5 library.  You must play a script
  264.         containing the procedures in source code form, then use WRITELIB
  265.         to write them to the new library.
  266.  
  267.      -  You might notice that previous Paradox versions can often use forms
  268.         and reports that contain functions and variables in calculated
  269.         fields.  However, there are some functions (DOW, for example) that
  270.         Paradox versions before 3.5 will not accept in calculated fields.
  271.         In addition, these Paradox versions cannot modify Paradox 3.5 forms
  272.         and reports that use functions or variables.  If you attempt either
  273.         operation, you will see a message like "Invalid calculation..." or
  274.         "Invalid fields removed from form...".  Select Cancel from the menu
  275.         to back out of Forms|Change or Report|Change mode, then use Paradox
  276.         3.5 to modify the form or report; otherwise, you will lose all the
  277.         calculated expressions that the earlier version of Paradox doesn't
  278.         understand.
  279.  
  280.      -  A few messages have been changed.  Although most of the changes
  281.         just correct spelling and punctuation errors, applications that
  282.         test for the exact text of a message will not recognize the new
  283.         messages.  Applications should avoid testing messages whenever
  284.         possible.
  285.  
  286.      -  Minor changes have been made to the Tools|ExportImport menus to
  287.         include Quattro PRO import and export.  There are other menu
  288.         changes, but they do not introduce compatibility issues; for
  289.         example, Paradox 3.5 accepts "QuerySpeedup" and "QuerySpeed"
  290.         interchangeably.
  291.  
  292. Printing Graphs:
  293.      Paradox (by default) does not do a page-eject after printing a graph.
  294. This allows you to place more than one graph on a page.  On a PostScript
  295. printer or other laser printer, it may seem that your graph was not sent to
  296. the printer properly, since there is often no sign of activity until a page
  297. is ejected.  To override the default temporarily, enter the Graph subsystem
  298. (using Image|Graph|Modify), then choose Overall|PrinterLayout and set
  299. "Break Page" to "Y".  To override it permanently, play Custom and go
  300. through the same steps.
  301.  
  302. 3. NOTES ON PAL
  303. ---------------
  304.  
  305. RUN ([Ctrl][O]) and RUN BIG ([Alt][O]):
  306.      Paradox 3.5 uses Borland's VROOMM memory management, which loads
  307. modules of program code into memory dynamically as they are needed.  As a
  308. result, the amount of memory available when you execute PAL's RUN or RUN
  309. BIG command (or their keyboard equivalents, [Ctrl][O] and [Alt][O]) will
  310. vary more in the course of a session than it did in Paradox 3.0.  Exactly
  311. how much memory is available depends on many factors, but neither RUN nor
  312. RUN BIG will always give you as much memory as Paradox 3.0 did.
  313.      In both real and protected mode, RUN always gives 140K or more; if it
  314. can't free up that much, Paradox automatically converts the RUN to a RUN
  315. BIG.  In real mode, RUN BIG can usually free up all but about 25K of the
  316. memory available when you started Paradox.  In protected mode, it can
  317. usually free up all but about 75K of the memory available at Paradox
  318. startup.
  319.      For most users, RUN and RUN BIG will work just as before.  If you are
  320. using RUN BIG to run a memory-intensive program from within Paradox, check
  321. that the operation will still work in your configuration.
  322.  
  323. PRINT FILE:
  324.      PAL's PRINT FILE command is much faster now because Paradox keeps the
  325. file open as long as possible and buffers the output.  If you previously
  326. optimized PRINT FILE by concatenating output into long strings, you'll find
  327. that this is no longer necessary.  Paradox knows to write the buffer and
  328. close the file almost any time it could be necessary:  when you exit
  329. Paradox, execute a RUN command, print to another file, use the FILESIZE
  330. function to test the size of the file just written, play the script just
  331. written, etc.  If you want to close the file before Paradox does so
  332. automatically - if you use it as a semaphore to other network users, for
  333. example - use something like
  334.  
  335.           DUMMY = ISFILE("filename.txt")
  336.  
  337. (where "filename.txt" is the name of your file) to force it to be closed.
  338.  
  339. RECORDSTATUS Function:
  340.      In several cases, RECORDSTATUS may return a result that is not what
  341. you expect.  It's helpful to be aware of these cases and know why
  342. RECORDSTATUS reports what it does:
  343.  
  344.      -  Using RESYNCKEY to show Many-one and Many-many details matching the
  345.         current record has the effect of posting your changes (though the
  346.         record remains locked.)  As a result, RECORDSTATUS ("Modified")
  347.         returns False.
  348.  
  349.      -  RECORDSTATUS ("KeyViol") returns False if you've inserted a
  350.         duplicate record but haven't yet tried to post it, since Paradox
  351.         doesn't detect the key violation until then.
  352.  
  353.      -  RECORDSTATUS ("KeyViol") also returns false if you enter a
  354.         duplicate key in a multi-table form in CoEdit and try to post it.
  355.         This looks like a key violation, but really isn't from Paradox's
  356.         point of view:  you don't have the existing record that the new
  357.         one conflicts with locked, you can't use [Alt][K] to toggle
  358.         between the two, and [Alt][L] won't force posting of the new record.
  359.  
  360. Error Procedures and Error Codes:
  361.      The complete list of error codes and their causes is given below.  If
  362. you have a Paradox 3.5 manual set, you'll also find this table in your "PAL
  363. User's Guide."  There are two other small points about error procedures and
  364. error codes to note:
  365.  
  366.      -  If you attempt to modify a table that is write-protected, Paradox
  367.         sets errorcode to 22, not to 35 as in previous versions.
  368.  
  369.      -  When an error procedure is called because a low memory warning is
  370.         issued, Paradox always retries the current statement on return from
  371.         the error procedure, even if the return value from the procedure
  372.         specifies that it should be skipped.  This makes it easier to run
  373.         existing applications under Paradox 3.5.
  374.  
  375.      PARADOX ERROR CODES
  376.  
  377.      Code      Meaning
  378.      ----      -------------------------------------
  379.      0         No error (for example, record was not
  380.                 changed or key was found)
  381.  
  382.      File or directory errors
  383.      1         Drive not ready
  384.      2         Directory not found
  385.      3*        Table in use by another user
  386.      4*        Full lock placed on table by another user
  387.      5         File not found
  388.      6         File corrupted
  389.      7         Index file corrupted
  390.      8         Object version mismatch
  391.      9*        Record locked by another user
  392.      10        Directory in use by another user
  393.      11*       Directory is private directory of another user
  394.      12        No access to directory at operating system level
  395.      13        Index inconsistent with sort order
  396.      14        Multiuser access denied
  397.      15        PARADOX.NET file conflict
  398.  
  399.      General script errors
  400.      20        Invalid context for operation
  401.      21        Insufficient password rights
  402.      22        Table is write-protected
  403.      23        Invalid field value
  404.      24        Obsolete procedure library
  405.      25        Insufficient image rights
  406.      26**      Invalid PAL context
  407.      27        Operation not completed
  408.      28        Too many nested closed procedures
  409.      29        Table is remote (on an SQL server)
  410.  
  411.      Argument errors
  412.      30        Data type mismatch
  413.      31        Argument out of range
  414.      32        Wrong number of arguments
  415.      33        Invalid argument
  416.      34        Variable or procedure not assigned
  417.      35        Invalid menu command
  418.  
  419.      Resource errors
  420.      40**      Not enough memory to complete operation
  421.      41        Not enough disk space to complete operation
  422.      42**      Not enough stack space to complete operation
  423.      43        Printer not ready
  424.      44        Low memory warning
  425.  
  426.      Record-oriented operation errors
  427.      50**      Record was deleted by another user
  428.      51**      Record was changed by another user
  429.      52**      Record was inserted by another user
  430.      53**      Record with that key already exists
  431.      54**      Record or table was not locked
  432.      55**      Record is already locked by you
  433.      56**      Lookup key not found
  434.  
  435.      Multi-table operation errors
  436.      60        Referential integrity check
  437.      61        Invalid multi-table form
  438.      62**      Form locked
  439.      63        Link locked
  440.  
  441.       * For this code, ERRORUSER() returns the name of the user who locked
  442.         the resource
  443.      ** This code does not invoke a designated error procedure
  444.  
  445.  
  446. 4. STARTING AND RUNNING PARADOX IN SPECIAL CONFIGURATIONS
  447. ---------------------------------------------------------
  448.  
  449. Running Paradox 3.5 under Windows 3.0:
  450.      You can run Paradox 3.5 and the Paradox Personal Programmer (PProg)
  451. under Windows 3.0.  If you plan to do this, you need to do four things, in
  452. this order:
  453.  
  454.      1. Copy the .PIF and .GRP files from the \WINDOWS subdirectory on your
  455.         Paradox Installation\Sample Tables disk into your Windows directory
  456.         (usually C:\WINDOWS).  The PARADOX.PIF and PPROG.PIF files allow
  457.         Paradox and the Personal Programmer to run optimally under Windows.
  458.         If you choose to modify them or define your own .PIF files, you
  459.         should always include the -win command-line option.  PARADOX.GRP
  460.         gives Windows a program manager icon for Paradox 3.5 that contains
  461.         icons for Paradox 3.5 and the Paradox Personal Programmer.
  462.  
  463.      2. Make sure your Paradox system directory is in your DOS PATH
  464.         statement, so Windows can find the files.  For information on the
  465.         PATH statement, see your DOS manual.
  466.  
  467.      3. Run the DOS SHARE program.  Type SHARE at any DOS prompt to do
  468.         this, or add a SHARE statement to your AUTOEXEC.BAT file.  SHARE
  469.         must be resident to run Paradox 3.5 under Windows.
  470.  
  471.      4. Set up a program group in Windows to put a Paradox icon on the
  472.         Windows Program Manager screen.  To create this program group,
  473.  
  474.         a. Choose File from the Windows Program Manager.
  475.         b. Choose New, then choose Program Group.
  476.         c. Fill in a description of the group to appear under the icon (for
  477.            example, PARADOX 3.5).
  478.         d. Fill in the full path name of the group file (for example,
  479.            C:\WINDOWS\PARADOX.GRP).
  480.         e. Click OK.  Two new icons appear in your Paradox 3.5 window: one
  481.            for Paradox 3.5 and one for the Paradox Personal Programmer.
  482.  
  483. Windows is now set up to run either Paradox 3.5 or the Personal Programmer
  484. whenever you want.  Double-click on the appropriate icon to invoke the
  485. program.
  486.      Paradox 3.5 runs in a bordered window when Windows is running in 386
  487. Enhanced Mode.  (You enter this mode by starting Windows with the command
  488. WIN /3).  If you are running Windows on an 8088 or 80286 computer, or on a
  489. 386 in real or standard mode, Paradox and the Personal Programmer run in
  490. full-screen mode and appear as they do when run outside Windows.  In this
  491. full-screen mode, press [ALT][ESC] to switch from Paradox to another
  492. Windows application.  The Paradox (or PProg) icon appears at the lower
  493. left corner of the Program Manager window; double-click on it to return
  494. to Paradox (or PProg).
  495.      After you press a mouse button in a window, its title bar says Select.
  496. This means that Windows has taken over control of the keyboard and mouse so
  497. you can cut or paste, operations Paradox does not support.  Press [ESC]
  498. to return control to Paradox.
  499.      To close files properly and prevent data loss, always exit Paradox
  500. using the keyboard (press [F10] and choose Exit|Yes), not the mouse.  If you
  501. try to exit Windows with Paradox still running, a warning appears and you
  502. are given a chance to exit Paradox properly; Windows will not let you exit
  503. without closing applications.
  504.  
  505. Running Paradox 3.5 under DESQview:
  506.      You can run Paradox 3.5 under DESQview in either real or protected mode
  507. on a 286 or higher machine.  Here's how to configure DESQview to run
  508. Paradox 3.5:
  509.  
  510.      1. Install Paradox 3.5 according to the installation instructions in
  511.         the "Introduction to Paradox" manual or the "Upgrade Guide."
  512.  
  513.      2. From the DESQview Main menu, choose Open Window.
  514.  
  515.      3. If you are upgrading from Paradox 3.0 to 3.5, select Paradox3 from
  516.         the file list, then choose Change a Program.  If you are installing
  517.         Paradox for the first time, you'll first have to use Add a Program
  518.         to add the program name to this list.
  519.  
  520.      4. Press [F1] to see the Standard Options screen. Type the program
  521.         name, any batch file name you use to invoke it, the full path
  522.         name (including file name), and any command-line parameters you
  523.         use. Set Memory Size (in K) to 440. Set the Standard Options
  524.         switches as follows:
  525.                       Writes Text To Screen      [N]*
  526.                       Displays Graphics Info     [Y]
  527.                       Virtualize Text/Graphics   [N]**
  528.                       Uses Serial Ports          [N]
  529.                       Requires Floppy            [N]
  530.  
  531.      5. Press [F1] again for the Advanced Options screen. Set the following
  532.         parameters:
  533.                       System memory                0
  534.                       Max Program Size (in K)    640
  535.                       Script Buffer Size        1000
  536.                       Max Expanded Memory       1024***
  537.  
  538.         Set the switches as follows:
  539.                       Close On Exit              [ ](leave blank)
  540.                       Allow Close Window Command [N]
  541.                       Uses Math Coprocessor      [Y]
  542.                       Share CPU When Foreground  [Y]
  543.                       Can Be Swapped Out         [ ](leave blank)
  544.                       Use Its Own Colors         [Y]
  545.                       Run In Background          [ ](leave blank)
  546.                       Keyboard Conflict          [0]
  547.                       Share EGA When Foreground  [Y]
  548.                       Protection Level           [0]
  549.  
  550.      *   On a 286 machine, set this switch to Yes.
  551.      **  On a 286 machine or on a 386 or higher machine running in
  552.          protected mode, set this switch to Yes.
  553.      *** Max Expanded Memory can be set higher.
  554.  
  555.      6. Exit Change a Program or Add a Program and start Paradox in the
  556.         usual way under DESQview.
  557.  
  558. Use the same procedure to configure DESQview to run the Paradox Personal
  559. Programmer.
  560.      If you plan to run multiple Paradox sessions under DESQview, you
  561. should make the Paradox program files read-only.  You'll also  need one
  562. Paradox serial number for each session.
  563.  
  564. Multiple Paradox Sessions:
  565.      When you run Paradox on a network, the network operating system ensures
  566. that you can share program and data files with other users whenever sharing
  567. is appropriate.  On a standalone machine, DOS's SHARE command and Paradox's
  568. -share command-line option have the same effect.  Without them, DOS assumes
  569. that no file sharing is required.  Applications that might share files on a
  570. standalone computer include
  571.  
  572.      -  Windows
  573.      -  DESQview
  574.      -  Add-in programs for Paradox, such as Kallista's KMemo
  575.      -  In-house applications that use the RUN command to execute Paradox
  576.         Engine programs.  These programs in turn might perform special
  577.         processing on the applications' tables.
  578.  
  579.      If you will be sharing files on a standalone machine, you should use
  580. the -share command-line option.  The -share option now requires that DOS
  581. SHARE be loaded (and this in turn means that you will need to use DOS 3.0 or
  582. higher).   Using -share causes Paradox to write a PARADOX.NET file in the
  583. root directory on your hard disk and to put an entry in it for each session
  584. or program that runs Paradox.  This guarantees that file sharing works
  585. correctly.
  586.  
  587. Software EMS Drivers:
  588.      This note is an addition to the notes about XMS-compliant EMS drivers
  589. in the "Upgrade Guide" and the "Paradox User's Guide."
  590.      If your system has extended memory that an XMS-compliant EMS driver is
  591. converting to expanded memory, Paradox handles this memory at startup in
  592. the following ways:
  593.      In real mode with neither the -extk or -emk command-line options set,
  594. Paradox asks the driver for all the available extended memory, then uses
  595. that memory as a swap device.  To keep Paradox from using all the expanded
  596. memory in this way, use the -extk command-line option.  For example, if you
  597. normally have 4MB of extended memory being converted to expanded memory,
  598. and you want Paradox to take only 1MB of that memory, type
  599.  
  600.               paradox -real -extk 1024
  601.  
  602. (You usually need to include the -real option, since Paradox attempts to
  603. run in protected mode by default.)  The rest of the memory remains as
  604. expanded memory, which Paradox also uses as a swap device.  To save some of
  605. that expanded memory for another (concurrent) program, you must also set an
  606. -emk option.  For instance, if you have 4MB, and you want to have Paradox
  607. use 1MB as extended, 1MB as expanded, and leave 2MB of expanded for another
  608. program, type
  609.  
  610.               paradox  -extk 1024 -emk 1024
  611.  
  612.      When you start Paradox in protected mode, the options are evaluated
  613. differently.   In protected mode, Paradox takes all the XMS-compliant EMS
  614. memory as extended memory before it evaluates the -ext or -emk options.  If
  615. the EMS driver is set up in your CONFIG.SYS file so that only some of the
  616. extended memory is available to the EMS driver, Paradox uses only that
  617. memory configured as expanded, but changes it to extended.  Paradox does
  618. not use the non-EMS configured extended memory at all.  For instance, if you
  619. have 1MB left as extended and 3MB configured as expanded, Paradox takes 3MB
  620. and uses it as extended.
  621.  
  622. Novell NetWare 386:
  623.      NetWare 386 allows you to define a virtual root.   This means that it
  624. allows you to map a drive letter to a subdirectory in such a way that the
  625. user of that mapping can only access the mapped subdirectory and its child
  626. directories.  (Ordinarily, NetWare mappings are just shortcuts; you can
  627. still use the DOS CHDIR command to access any directory on the volume.)
  628. Virtual roots are created with the 'MAP ROOT' command.
  629.      Since virtual roots allow different users to access different
  630. subdirectories of a volume with the same network drive path, Paradox might
  631. not enforce locking correctly if two users specify paths to the PARADOX.NET
  632. file which do not indicate the same subdirectory on the server.  For
  633. example, if one user maps S: using the command
  634.  
  635.           MAP ROOT S: server\sys:pdoxdata
  636.  
  637. and another user maps S: using
  638.  
  639.           MAP S: server\sys:pdoxdata
  640.  
  641. then the \PDOXDATA directory will be S:\ for the first user and
  642. S:\pdoxdata for the second user.  Similarly, if one user maps S: using
  643.  
  644.           MAP ROOT S: server\sys:pdoxdata
  645.  
  646. and another maps S: using
  647.  
  648.           MAP ROOT S: server\sys:pdox
  649.  
  650. then S:\ for the first user will be different than S:\ for the second user.
  651. Both of these situations can lead to severe data corruption.
  652.      Be sure to observe the warning in the Network Administrator's Guide
  653. that "All Paradox users must have the directory containing the PARADOX.NET
  654. file mapped to the same logical drive and directory."  Suppose your
  655. PARADOX.NET file is in server\sys:pdoxdata and you use your system login
  656. script to map S: to server\sys:pdoxdata as a virtual root.  Then you should
  657. specify when you install Paradox that PARADOX.NET is in S:\.  Once
  658. you've done this, it is essential that no one override the mapping of S:.
  659. In this way, all active users share the PARADOX.NET file, each recognizes
  660. the others as active users, and all respect the others' lock files.
  661.  
  662.  
  663. 5. NOTES ON THE CUSTOM CONFIGURATION PROGRAM
  664. --------------------------------------------
  665.  
  666. Configuration Issues:
  667.      When discussing Custom's new handling of color settings, the "Upgrade
  668. Guide" says that when you're in Video|Colors, you will recognize your
  669. existing color settings by their names.  Ordinarily, this won't be true;
  670. when you run Custom with Paradox 3.5, you will start with the default
  671. configuration file.  Even users of earlier Paradox versions who have
  672. chosen to override only a few of Paradox's defaults are better off
  673. redefining their configurations from scratch.  But if your existing
  674. configuration file is highly customized - if you've modified the default
  675. report or graph specification, or selected several graph printers, or added
  676. report setup strings or color settings - you may want to retain your
  677. existing configuration.  To do so, copy your PARADOX3.CFG file (or another
  678. .CFG file from a previous version of Paradox) to PARADOX.CFG and move it to
  679. your Paradox 3.5 directory.  (You may want to save a copy of the current
  680. PARADOX.CFG first.)  You can now use Paradox 3.5's Custom program to
  681. further customize your configuration.
  682.  
  683. B&W Monitors:
  684.      On monochrome and B&W monitors, Paradox uses only the built-in color
  685. setting.  (A B&W monitor is a monochrome monitor attached to a color video
  686. card.)  If you want to modify the color setting on a B&W monitor, you must
  687. set your monitor type to "Color" (using the Video|Monitor command);
  688. otherwise, Paradox ignores the changes you make to the color setting.  The
  689. effect, of course, will be to change the shades of gray or orange that your
  690. monitor uses to show different elements of the Paradox display.
  691.  
  692. Graph Printers:
  693.      The list of graph printers you can choose from in Custom's
  694. Graphs|Printers command has been updated and expanded, and a few older
  695. printers have been removed from the list.  If you want to use a printer
  696. that was available in Paradox 3.0 but is not available in Paradox 3.5,
  697. here's how:
  698.  
  699.      -  If you haven't already done so, run Paradox 3.0 and Paradox 3.0's
  700.         version of Custom to select the printer.
  701.  
  702.      -  Rename your PARADOX3.CFG file to PARADOX.CFG and move it to your
  703.         Paradox 3.5 directory.  (You may want to save a copy of the current
  704.         PARADOX.CFG first.)
  705.  
  706.      -  Run Paradox 3.5 as usual.  The printer defined in Paradox 3.0 will
  707.         be available.
  708.  
  709. Directories and Paths:
  710.      Previous versions of Paradox installed Custom in the program directory
  711. by default, but did not require that it be there.  With Paradox 3.5, you
  712. must store Custom in the system directory or in a directory on your path in
  713. order to use the Tune|ProtectedMode|MachineInfo and Configure options.
  714. This ensures that Paradox can find the machine configuration information
  715. that Custom writes out.  If the Paradox system directory on your
  716. network is normally read-only, you will need to log on as the network
  717. administrator to write to it.  For more information, see the "Upgrade
  718. Guide."
  719.  
  720. The MachineInfo Report:
  721.      Custom's MachineInfo report displays basic information about your
  722. machine configuration.  Because computers vary widely, the report is
  723. sometimes incomplete or slightly inaccurate.  For example, not every BIOS
  724. contains an ID at the "standard" address, but MachineInfo can't determine
  725. what's a valid ID string and what isn't.  Don't be alarmed if you see random
  726. characters, or even a message like "fatal error" in the "BIOS ID String"
  727. field.  It's just extraneous text that MachineInfo mistook for the BIOS ID.
  728.  
  729.  
  730. 6. NOTES ON THE PERSONAL PROGRAMMER
  731. -----------------------------------
  732.  
  733.      There have been some minor changes to the Personal Programmer. Other
  734. than the changes noted below, all parts of the program operate just as
  735. they did in Paradox 3.0.
  736.  
  737.      1. Paradox 3.5 uses a slightly modified way of reading
  738.         and writing libraries.  Although Paradox 3.5 will read the
  739.         old libraries in exactly the same way as it did before,
  740.         the Personal Programmer can not directly modify libraries
  741.         in the old format. If you are modifying an application
  742.         that was originally created in 3.0, you will see a new
  743.         menu the first time you modify the application in 3.5. It
  744.         will appear immediately after you enter the name of the
  745.         application, and will offer you the option of updating
  746.         your libraries to 3.5 format.
  747.  
  748.         If you choose Cancel, you will return to the Personal
  749.         Programmer Main menu. If you choose Update, the Personal
  750.         Programmer will rebuild your libraries in the new 3.5
  751.         format. Be aware that if you update the libraries, the
  752.         application will not be usable in Paradox 3.0. If you need
  753.         to modify an application that will be used with both 3.5
  754.         and 3.0, you should modify the application using only
  755.         Personal Programmer 3.0.
  756.  
  757.      2. The Personal Programmer was not designed to be used on a
  758.         network and will not generate a multiuser application. In
  759.         Paradox 3.0, the large amount of memory needed to create
  760.         an application made it very difficult to execute the
  761.         Personal Programmer with the network software loaded.
  762.  
  763.         Now that the Personal Programmer can access Extended RAM,
  764.         it would have been possible to run while the network
  765.         drivers are loaded. However, running the Personal
  766.         Programmer on a network drive with other users working
  767.         interactively could result in the failure of the program
  768.         and a loss of work. To prevent this loss of data, the
  769.         Personal Programmer has been modified to prevent the use
  770.         of a network drive.
  771.  
  772.      3. The Personal Programmer allows you to set validation checks on
  773.         fields, requiring that they be filled with valid data.
  774.         There is one case where a combination of validity checks
  775.         will cause a problem. If you use the "TableLookup/HelpAndFill"
  776.         and the "RequiredField" options together, users may get
  777.         "stuck" in the field. In this case, pressing F1 to bring
  778.         up the Lookup will result in the message "A value must be
  779.         provided in this field."  The user doesn't know what a
  780.         valid value is, and can't check to find out.  This
  781.         combination should be avoided.
  782.  
  783.  
  784. 7. FILES ON THE DISKS
  785. ---------------------
  786.  
  787.      This is the configuration for 5.25" disks.  Each 3.5" disk except
  788. Personal Programmer Disk 3 contains the directories and files from two
  789. 5.25" disks, as indicated by its disk label.
  790.  
  791. DISK 1:  INSTALLATION/SAMPLE TABLES DISK
  792. ----------------------------------------
  793. INSTALL    EXE    - Paradox installation program
  794. README     COM    - Program to display README file
  795. INSTALL    CFG    - Installation parameters
  796. UNZIP      EXE    - Program to "unzip" compressed files
  797. ASCII      SOR    - ASCII sort order
  798. INTL       SOR    - International sort order
  799. NORDAN     SOR    - Norwegian/Danish sort order
  800. SWEDFIN    SOR    - Swedish/Finnish sort order
  801.  
  802. SYS        ZIP    - Zip file containing:
  803.   NUPDATE    EXE  - Program to update serial numbers, net type
  804.   PARADOXK   EXE  - Protected mode driver program
  805.   PARADOX    CFG  - Default Paradox configuration settings
  806.   PARADOX    SOM  - Paradox program file
  807.  
  808. In \UTIL:
  809. UTIL       ZIP    - Zip file containing:
  810.   FLIMPORT   EXE  - Fixed-length Import utility program
  811.   FLIMPORT   DOC  - Documentation for Fixed-length Import program
  812.   VOUCH      EXE  - Checksum utility program
  813.  
  814. In \SAMPAPP:
  815. SAMPAPP    ZIP    - Zip file containing sample application:
  816.   BOARD      SC   - Script to display Price table
  817.   DOFEED     SC   - Script to generate stock Price changes
  818.   FEED       SC   - Script to call procedures in DOFEED.SC
  819.   GRAPHS     SC   - Script to display graphs
  820.   HOLDINGS   SC   - Script to display holdings
  821.   MKLIB      SC   - Script to build procedure library
  822.   PORTFOL    SC   - Script to display portfolios
  823.   STOCKS     SC   - Main menu script
  824.   TICKER     SC   - Script to display "ticker tape"
  825.   HOLDING    DB   - Holdings table
  826.   HOLDING    PX   - Holdings table - primary index
  827.   PRICE      DB   - Stock Price table
  828.   PRICE      PX   - Stock Price table - primary index
  829.   PRICE      SET  - Stock Price table - settings file
  830.   GRAPH1     G    - Sample application Bar & Marker graph spec
  831.   GRAPH2     G    - Sample application 3-D Bar graph spec
  832.   GRAPH3     G    - Stacked Bar graph spec
  833.   GRAPH4     G    - Sample application Pie chart spec
  834.  
  835. In \TABLES:
  836. TABLES     ZIP    - Zip file containing sample files:
  837.   DEBUGTST   SC   - Sample PAL code (with intentional errors)
  838.   PIES       SC   - Recorded script to create sample graphs
  839.   RECAP      SC   - Script to do work done manually during tutorial
  840.   BOOKORD    DB   - Sample Book orders table
  841.   BOOKORD    F1   - Sample Book orders table - form 1
  842.   BOOKORD    PX   - Sample Book orders table - primary index
  843.   CUSTOMER   DB   - Sample Customer table
  844.   CUSTOMER   F1   - Sample Customer table - form 1
  845.   CUSTOMER   F2   - Sample Customer table - form 2
  846.   CUSTOMER   F3   - Sample Customer table - form 3
  847.   CUSTOMER   PX   - Sample Customer table - primary index
  848.   CUSTOMER   R1   - Sample Customer table - report 1
  849.   CUSTOMER   R2   - Sample Customer table - report 2
  850.   CUSTOMER   SET  - Sample Customer table - image settings
  851.   DISTRICT   WQ1  - Sample Quattro PRO worksheet
  852.   EMPLOYEE   DB   - Sample Employee table
  853.   EMPLOYEE   F1   - Sample Employee table - form 1
  854.   EMPLOYEE   PX   - Sample Employee table - primary index
  855.   EMPLOYEE   SET  - Sample Employee table - image settings
  856.   HOMEGRP    DB   - Sample Home group table
  857.   MAIL       DB   - Sample Mail table
  858.   MAIL       PX   - Sample Mail table - primary index
  859.   MAIL       R1   - Sample Mail table - report 1
  860.   MASTERBK   DB   - Sample Master book table
  861.   NEWRECS    DB   - Sample New records table
  862.   PRODUCTS   DB   - Sample Products table
  863.   PRODUCTS   SET  - Sample Products table - image settings
  864.   PROMO      DB   - Sample Promotion table
  865.   PROMO      PX   - Sample Promotion table - primary index
  866.   REPPERF    DB   - Sample Repperf table
  867.   REPPERF    PX   - Sample Repperf table - primary index
  868.   SALES      DB   - Sample Sales table
  869.   SALES      SET  - Sample Sales table - image settings
  870.   SUBGROUP   DB   - Sample Subgroup table
  871.   VOLS       DB   - Sample Volumes table
  872.   VOLS       PX   - Sample Volumes table - primary index
  873.   XCHANGE    DB   - Sample Xchange table
  874.  
  875. In \WINDOWS:
  876. PARADOX   PIF     - Windows 3.0 PIF file for Paradox
  877. PPROG     PIF     - Windows 3.0 PIF file for PProg
  878. PDOXRUN   PIF     - Windows 3.0 PIF file for Runtime
  879. PARADOX   GRP     - Windows 3.0 group file for Paradox
  880.  
  881. README            - This file
  882.  
  883. DISK 2:  SYSTEM DISK 1
  884. ----------------------
  885. in \SYSTEM1:
  886. PDOX1     ZI1     - First part of main Paradox executable file
  887.  
  888. DISK 3:  SYSTEM DISK 2
  889. ----------------------
  890. in \SYSTEM2:
  891. PDOX1     ZI2     - Second part of main Paradox executable file
  892. PDOX2     ZI1     - First part of zip file for other Paradox files
  893.  
  894. DISK 4:  SYSTEM DISK 3
  895. ----------------------
  896. in \SYSTEM3:
  897. PDOX2     ZI2     - Second part of zip file for other Paradox files
  898.  
  899. DISK 5:  CUSTOM CONFIGURATION DISK
  900. ----------------------------------
  901. In \CUSTOM:
  902. CUSTOM     ZIP    - Zip file containing:
  903.   CUSTOM     SC   - Custom Configuration - main script
  904.   COLORS     LIB  - Custom Configuration - color procedures library
  905.   CUSTOM     LIB  - Custom Configuration - main procedure library
  906.   CUSTOM     OV1  - Custom Configuration - Tune menu command
  907.  
  908. DISK 6:  DATA ENTRY TOOLKIT DISK
  909. --------------------------------
  910. In \TOOLKIT:
  911. TOOLKIT    ZIP    - Zip file containing Data Entry Toolkit:
  912.   BORROW0    SC   - Borrow script for CUSTDPA.SC
  913.   BORROW1    SC   - Borrow script for MINIDPA.SC
  914.   BORROW2    SC   - Borrow script for INVDPA.SC
  915.   BORROW3    SC   - Borrow script for ORDRDPA.SC
  916.   CUSTDEMO   SC   - Custom procedures for Cust table, DoWait demo
  917.   CUSTDPA    SC   - DoWait Procedure Assignment set for Cust
  918.   DEMO       SC   - Starts the DoWait demonstration
  919.   DOW8DEMO   SC   - Builds DOW8DEMO.LIB for DoWait demo
  920.   EDITMENU   SC   - Source code for EditMenu procedure
  921.   ENFORME    SC   - Main Enforme form editor script
  922.   FORMBRDR   SC   - Enforme border drawing routines
  923.   FORMGOTO   SC   - Enforme workspace positioning routines
  924.   FORMHELP   SC   - Enforme help screen
  925.   FORMHOPS   SC   - Enforme workspace movement routines
  926.   FORMMAIN   SC   - Enforme main getkey procedure
  927.   FORMMAKE   SC   - Script to create Enforme procedure library
  928.   FORMSLCT   SC   - Enforme form selection routines
  929.   GETFILE    SC   - Source code for GetFile procedure
  930.   GETPASS    SC   - Source code for GetPassword procedure
  931.   HELPDEMO   SC   - Inactivity proc, help for DoWait demonstration
  932.   INVDEMO    SC   - Custom procedures for Invoice, DoWait demo
  933.   INVDPA     SC   - DoWait Procedure Assignment set for Invoice
  934.   KERNEL     SC   - Source code for DoWait procedures
  935.   KEYCODES   SC   - Source code for SetKeycodes procedure
  936.   LOOKSLCT   SC   - Source code for LookupSelect procedure
  937.   LOOKWAIT   SC   - Source code for LookupWait procedure
  938.   MINIDEMO   SC   - Source code for sample SetUpDoWait session
  939.   MINIDPA    SC   - DoWait Procedure Assignment set for Cust
  940.   ORDRDEMO   SC   - Custom procedures for Orders table, DoWait demo
  941.   ORDRDPA    SC   - DoWait Procedure Assignment set for Orders
  942.   POPUP      SC   - Source code for Popup procedures
  943.   POPUP2     SC   - Source code for Popup2 procedures
  944.   RECURSW8   SC   - Source code for RecurseWait procedure
  945.   RELEASW8   SC   - Source code for ReleaseWait procedure
  946.   RFRSHCNV   SC   - Source code for RefreshCanvas procedure
  947.   TKDEBUG    SC   - Source code for TKDebug procedure
  948.   TKMENU     SC   - TKMenu main script
  949.   TKUPDATE   SC   - Script to update Paradox 2.0 spec files
  950.   TKUPDATE   LIB  - TKUpdate procedure library
  951.   TOOLKIT2   LIB  - TKMenu procedure library
  952.   CARRIERS   DB   - DoWait demo Carrier service table
  953.   CARRIERS   F    - DoWait demo Carrier service table - form 1
  954.   CUST       DB   - DoWait demo Customer table
  955.   CUST       F    - DoWait demo Customer table - form F
  956.   CUST       F1   - DoWait demo Customer table - form 1
  957.   CUST       PX   - DoWait demo Customer table - primary index
  958.   CUST       VAL  - DoWait demo Customer table - validity checks
  959.   INVOICE    DB   - DoWait demo Invoice table
  960.   INVOICE    F    - DoWait demo Invoice table - form F
  961.   INVOICE    PX   - DoWait demo Invoice table - primary index
  962.   INVOICE    VAL  - DoWait demo Invoice table - validity checks
  963.   ORDERS     DB   - DoWait demo Orders table
  964.   ORDERS     F    - DoWait demo Orders table - form F
  965.   ORDERS     PX   - DoWait demo Orders table - primary index
  966.   ORDERS     VAL  - DoWait demo Orders table - validity checks
  967.   PAYMENT    DB   - DoWait demo Payment table
  968.   STOCK      DB   - DoWait demo Stock table
  969.   STOCK      PX   - DoWait demo Stock table - primary index
  970.   TKFIELDS   DB   - TKMenu field-level proc data table
  971.   TKFIELDS   F    - TKMenu field-level proc data table - form F
  972.   TKFLDLVL   DB   - TKMenu field-level procedures - table
  973.   TKFLDLVL   F    - TKMenu field-level procedures - form F
  974.   TKFLDLVL   PX   - TKMenu field-level procedures - primary index
  975.   TKFLDLVL   R    - TKMenu field-level procedures - report R
  976.   TKFLDLVL   SET  - TKMenu field-level procedures - image settings
  977.   TKFLDLVL   VAL  - TKMenu field-level procedures - validity checks
  978.   TKKEYLVL   DB   - TKMenu key-level procedures - table
  979.   TKKEYLVL   PX   - TKMenu key-level procedures - primary index
  980.   TKKEYLVL   R    - TKMenu key-level procedures - report R
  981.   TKKEYLVL   VAL  - TKMenu key-level procedures - validity checks
  982.   TKPRCMAP   DB   - TOOLKIT.LIB procedure mapping - table
  983.   TKPRCMAP   PX   - TOOLKIT.LIB procedure mapping - primary index
  984.   TKPROCS    DB   - TOOLKIT.LIB procedure list - table
  985.   TKPROCS    PX   - TOOLKIT.LIB procedure list - primary index
  986.   TKPROCS    VAL  - TOOLKIT.LIB procedure list - validity checks
  987.   TKTBLLVL   DB   - TKMenu table-level procedures - table
  988.   TKTBLLVL   R    - TKMenu table-level procedures - report R
  989.   TKTBLLVL   VAL  - TKMenu table-level procedures - validity checks
  990.  
  991. In \PROTECT:
  992. PROTECT    ZIP    - Zip file containing:
  993.   PROTECT    SC   - Protection Generator - main script
  994.   PROTECT    LIB  - Protection Generator - procedure library
  995.  
  996. DISK 7:  PERSONAL PROGRAMMER DISK 1
  997. -----------------------------------
  998. in \PPROG1:
  999. PPROG      SOM    - Personal Programmer program file
  1000. PPROG1     ZI1    - First part of main PProg executable file
  1001.  
  1002. In \VIDEO:
  1003. VIDEO      ZIP    - Zip file containing Video demo application:
  1004.   VIDENT     SC   - Data entry script
  1005.   CUSTOMER   DB   - Customer table
  1006.   CUSTOMER   F1   - Customer table - form 1
  1007.   CUSTOMER   PX   - Customer table - primary index
  1008.   FILMCAT    DB   - Film category table
  1009.   FILMCAT    PX   - Film category table - primary index
  1010.   FILMS      DB   - Films table
  1011.   FILMS      F    - Films table - standard form
  1012.   FILMS      PX   - Films table - primary index
  1013.   ORDERS     DB   - Orders table
  1014.   ORDERS     F1   - Orders table - form 1
  1015.   ORDERS     F2   - Orders table - form 2
  1016.   ORDERS     PX   - Orders table - primary index
  1017.   ORDERS     VAL  - Orders table - validity checks
  1018.   ORDTEMP    DB   - Film checkout table
  1019.   ORDTEMP    F1   - Film checkout table - form 1
  1020.   ORDTEMP    VAL  - Film checkout table - validity checks
  1021.   OVERMAP    DB   - Overdue films - map table
  1022.   OVERSRC    DB   - Overdue films - source table
  1023.   OVERSRC    R2   - Overdue films - source table report 2
  1024.  
  1025. DISK 8:  PERSONAL PROGRAMMER DISK 2
  1026. -----------------------------------
  1027. in \PPROG2:
  1028. PPROG1    ZI2     - Second part of main PProg executable file
  1029. PPROG2    ZI1     - First part of zip file for other PProg files
  1030.  
  1031. DISK 9:  PERSONAL PROGRAMMER DISK 3
  1032. -----------------------------------
  1033. in \PPROG3:
  1034. PPROG2    ZI2     - Second part of zip file for other PProg files
  1035.