home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD1.mdf / basic / tools / cbsf / cbsf.doc next >
Text File  |  1987-10-03  |  24KB  |  595 lines

  1.  
  2.  
  3.             CBSF - DEFINITIVE DATA SYSTEMS  (C) 1987
  4.  
  5.                           INTRODUCTION
  6.                           ------------
  7.  
  8. Programming with the new integrated basic languages, such as 
  9. Microsofts QuickBASIC* and Borlands Turbo Basic*, are a pleasure 
  10. in comparison with programming in interpreted basic.  However, 
  11. having only line labels in a program can cause a lot of headaches 
  12. when extensive error trapping/correcting, and/or event trapping 
  13. are required.  And if end users of your programs are asked to 
  14. report problems, then the error type and line number are 
  15. indispensable.  The solution is to write the source code using 
  16. labels as usual (which helps structure and readability) and let 
  17. CBSF convert the file to line numbers for you.  Even if you use 
  18. interpreted basic CBSF will be of help.  CBSF does much more than 
  19. just number or renumber a given source file.
  20.  
  21. * NUMBER or RENUMBER any compilable or interpreted basic program.
  22.  
  23. * FLEXIBLE - allows file to be numbered almost any way desired.
  24.  
  25. * CONVERT multiple statement lines to single statement per line
  26.           for improved readability and easier debugging.
  27.  
  28. * RESERVED words can be left as is, or converted to upper or
  29.            lower case for quick identification.
  30.  
  31. * VARIABLES can be left as is, or converted to upper or lower
  32.             case.  (Does not affect remarks or quoted text)
  33.  
  34. * REMARKS can be left as is, deleted, or numbered.
  35.  
  36. * NULL LINES can be left in source, or deleted.
  37.  
  38. * REFERENCE file is created to tell what original line/label
  39.             was and what it is now.
  40.  
  41. * NO LIMIT on size of file that can be processed.  Limited to
  42.    5000 converted line #'s or labels and available disk space.
  43.  
  44. * CONVERSION from compiled to interpreted basic.  Although CBSF
  45.        is not a compiler to interpreter converter, it can be
  46.        invaluable in this function.
  47.  
  48. We hope you find CBSF as valuable an aid in developing programs 
  49. as many others have.  If you will take the time to read the 
  50. following instructions carefully CBSF can be a great time and 
  51. labor saving tool.
  52.  
  53. Should you have any questions, suggestions, or complaints about 
  54. CBSF, please send them to: Definitive Data Systems
  55.                            18451 SE 38th St.
  56.                            Newalla, OK 74857   
  57.  
  58. CBSF requires 256K, and at least one floppy drive.
  59.  
  60. * NOTE - Microsoft is a registered trademark of Microsoft Corp.
  61.           and throughout the rest of this manual MIcrosoft's
  62.           QuickBASIC will be referred to simply as QB.
  63.          Turbo Basic is a trademark of Borland International,
  64.           and throughout the rest of this manual will be referred
  65.           to simply as TB.
  66.  
  67.  
  68.  
  69.      INPUT AREA ONE - FILE SPECIFIERS AND PROCESSING VALUES
  70.      ------------------------------------------------------
  71.  
  72. Input area one is the entry point for the following items:
  73.  
  74. Input File: 
  75.      This is the name of the file to be processed.
  76.  
  77. Output File:
  78.      This is the name the processed file will be stored under.
  79.  
  80. Reference File:
  81.      This is the name of the file that will contain the cross      
  82.      reference of the original label/line number to the new line      
  83.      number.
  84.  
  85. Starting Line Number:
  86.      This is the number which the first line in the new source      
  87.      file will begin with.
  88.  
  89. Line Number Increment:
  90.      This is the amount that each line number will increase by.
  91.  
  92. Tab Stop Value:
  93.      This is the value (number of columns) that the tab key moves      
  94.      the cursor on your system.  If you are using QB then it is      
  95.      the value under the view/options menu selection in QB.  For 
  96.      TB tab stop should be set to 8.
  97.  
  98. Notes on File Name Input:
  99.      File names can contain a drive specifier (i.e. A:), path 
  100.      specifiers (i.e. \basic\myprog\myprog.bas), and any valid 
  101.      file name.  To enter a file name without an extension the 
  102.      period must be the last character in the file name.  For 
  103.      example, the name "myprog." is the file name "myprog" 
  104.      without an extension.  If you do not specify an extension, 
  105.      the extension in brackets will be appended to the file name.  
  106.      For example, the name "myprog" will default to "myprog.bas" 
  107.      at the Input File prompt.  When entering file names only the 
  108.      Input File name need be specified.  The .CNV file and the 
  109.      the .REF file will assume the file name specified as the 
  110.      Input File if these inputs are left blank.  All file name 
  111.      inputs are limited to 50 chars..
  112.  
  113. CBSF supports the following editing keys:
  114.      Cursor Up-moves cursor up one field.
  115.      Cursor Down-moves cursor down one field.
  116.      Cursor Left-moves cursor left one character.
  117.      Cursor Right-moves cursor right one character.
  118.      Backspace-deletes character to left of cursor.
  119.      Delete-deletes character cursor is on.
  120.      Insert-inserts character at cursor.
  121.      Home-moves cursor to beginning of line.
  122.      End-moves cursor to end of line.
  123.      Page Up/Page Down-change input areas.  Use them at any time.
  124.  
  125.  
  126.  
  127.  
  128.  
  129.  
  130.  
  131.  
  132.  
  133.  
  134.  
  135.                INPUT AREA TWO - PROCESSING OPTIONS
  136.                -----------------------------------
  137. Input area two is the selection point for the following options:
  138.  
  139. Number/Renumber Source
  140.      This option tells CBSF to add line numbers or renumber the 
  141.      source file specified.
  142.  
  143. Line Numbers In Source
  144.      This option tells CBSF if the source file contains any lines 
  145.      that begin with line numbers.  If the source has lines that 
  146.      begin with numbers this option must be selected.
  147.  
  148. Single Statement/Line
  149.      This option tells CBSF to convert the source file to a 
  150.      single basic statement per each line.  This makes the source 
  151.      file much easier to read and debug.
  152.  
  153. Basic Source Format
  154.      This option tells CBSF the type of basic it is processing, 
  155.      either compiled or interpreted.
  156.  
  157. Reserved Word Case
  158.      This option tells CBSF how to handle basic reserved words.  
  159.      CBSF will convert reserved words to upper case, lower case, 
  160.      or leave them as is, depending on the selection.
  161.  
  162. Text Case
  163.      This option is the same as the reserved word option except 
  164.      that "text" is defined as all "words" that do not match a 
  165.      reserved word.  Text generally is all labels and variables.  
  166.      Note that text in quotes and remarks are not converted by 
  167.      either reserved or text options.
  168.  
  169. Remark Action
  170.      This option tells CBSF how to handle remarks.  The choices 
  171.      are none (no action), delete (deletes the remark), or number 
  172.      (if remark is on a line by itself, it will be numbered).
  173.  
  174. Null Line Action
  175.      This option tells CBSF how to handle "null" or blank lines 
  176.      in a source file.  The choices are none (no action), or 
  177.      delete (null lines deleted).
  178.  
  179. Input Area Two Option Selection
  180.      Use the arrow keys to highlight the option desired and the 
  181.      spacebar to select the action or setting.
  182.  
  183. Note: If "F1" is pressed while in either input area you will be
  184.       returned to DOS.
  185.  
  186. General Information On Input
  187.      If an option is selected that requires another option 
  188.      to be selected, and it is not, CBSF will enable it 
  189.      automatically.  For example, if the Basic Source Format 
  190.      option is set to "INTERPRETED", but the Line Numbers In 
  191.      Source option is set to "NO", CBSF will automatically enable 
  192.      the Line Numbers In Source option (set to "YES").  The Page 
  193.      Up/Page Down keys are used to change input areas and can be 
  194.      used at any time.
  195.  
  196.  
  197.  
  198.  
  199.  
  200.  
  201.                         BEGIN PROCESSING
  202.                         ----------------
  203.  
  204. After all inputs and options are entered as desired, there are 
  205. two choices to start processing:
  206.  
  207. F9 - If F9 is pressed all option settings in Area Two will be 
  208.      saved in the file CBSF.OPT, and processing will begin.  
  209.      These will be the default options on each successive 
  210.      execution of CBSF, until the .OPT file is deleted or F9 is 
  211.      used again. If F9 is never used there will be no .OPT file.
  212.  
  213. F10 - If F10 is pressed, processing will begin but the Area Two 
  214.      options will not be saved.
  215.  
  216. As processing takes place, status is indicated on the screen by 
  217. the conversion and process counters.  Note that not all 
  218. conversions will require both passes, if this is the case a 
  219. message indicating so will be printed.  Processing may be ended 
  220. at any time by pressing the F1 key to abort and return to input 
  221. status, or F2 to abort and return to DOS.
  222.  
  223.  
  224.  
  225.                      PROCESSING METACOMMANDS
  226.                      -----------------------
  227.  
  228. CBSF supports six processing metacommands, they will help to 
  229. format and number source code, and are described in detail in 
  230. this section.
  231.  
  232. General Format
  233.      Processing Metacommands use the following syntax:
  234.  
  235.           REM |command=integer value
  236.  
  237. Processing Metacommands must appear on a line by themselves.  
  238. There MUST be a space between the word "REM" and the character 
  239. "|".  Case does not matter. "REM" is the same as "rem".  After 
  240. the "|" comes the command.  Although it is suggested that the 
  241. command follows the "|", it can be separated by spaces as long as 
  242. it is on the same line and ONLY spaces separate it.  After the 
  243. command comes the value (three of the commands do not require 
  244. values), the value MUST be separated by either a space, or by an 
  245. equal sign.
  246.  
  247. STEP Metacommand
  248.      The STEP metacommand instructs CBSF to "step" the next line 
  249.      number "up" to the specified amount.  For example, if the 
  250.      current line number assigned by CBSF is 165, (with 
  251.      Number/Renumber Source option) with a step amount of 100, 
  252.      when a STEP command is executed the next line will start at 
  253.      200.  This is because STEP is calculated by the following 
  254.      formula:
  255.  
  256.   NEWLINE = (INT (CURRENT LINE / STEP AMOUNT) + 1) * STEP AMOUNT
  257.       200 = (INT (    165      /    100     ) + 1) * 100
  258.  
  259.      Basically, STEP can be thought of as a way to force the next 
  260.      line number to the next "tens", "hundreds", "thousands", 
  261.      etc. depending on the value of STAM. (10,100,1000).
  262.      The exact syntax for STEP is:  "REM |STEP".
  263.  
  264.  
  265.  
  266.  
  267.                   PROCESSING METACOMMANDS cont.
  268.                   -----------------------------
  269.  
  270. STAM Metacommand    (STep AMount)
  271.      The STAM metacommand sets the step amount (see the 
  272.      explanation for STEP above) used to compute the STEP.  STAM 
  273.      can be any integer number from 1 to 5000.  STAM may be used 
  274.      as many times as desired.  The exact syntax for STAM is: 
  275.      "REM |STAM=value" or "REM |STAM=100".  STAM defaults to 100 
  276.      when CBSF is started.
  277.  
  278. STAB Metacommand    (Step Absolute)
  279.      The STAB metacommand tells CBSF that the next line processed 
  280.      will assume the absolute value specified by STAB.  If the 
  281.      value set by STAB is 5000, then the next line after the STAB 
  282.      command will be line number 5000.  STAB may be used as many 
  283.      times as desired.  STAB can be any integer number from 1 to 
  284.      65529.  The exact syntax for STAB is:  "REM |STAB=5000" or  
  285.      "REM |STAB=value".
  286.  
  287. INAM Metacommand    (INcrement AMount)
  288.      The INAM metacommand is the same as the Increment value in 
  289.      Input Area one.  However, INAM allows the line number 
  290.      increment value to be changed during processing and at 
  291.      selected points in the source file.  After the INAM command 
  292.      is executed, subsequent lines will use this value as the 
  293.      increment.  INAM may be used as many times as desired.  INAM 
  294.      can be any integer number from 1 to 5000.  The exact syntax 
  295.      for INAM is:  "REM |INAM=10" or "REM |INAM=value".
  296.  
  297. SRWD Metacommand    (Special Reserved WorD)
  298.      The SRWD metacommand tells CBSF to use the file CBSF.SRW 
  299.      when processing.  This file is discussed in detail later in 
  300.      this manual.  Subsequent appearances of SRWD have no effect.  
  301.      The syntax for SRWD is: "REM |SRWD".
  302.  
  303. SAMC Metacommand    (SAve MetaCommand)
  304.      The SAMC metacommand tells CBSF to write all processing 
  305.      metacommands to the .CNV file.  This option is off by 
  306.      default, and processing metacommands are discarded after 
  307.      execution of the command.  Note that this option does not 
  308.      effect compiler metacommands (REM $command or $command).  
  309.      Subsequent appearances of SAMC have no effect.  The syntax 
  310.      for SAMC is:  "REM |SAMC".
  311.  
  312. General Information on Processing Metacommands
  313.      The metacommands SRWD and SAMC should be placed at the start 
  314.      of the source file.  If SAMC is to be used in the source 
  315.      file, then it should be first or any metacommands before it 
  316.      will not be written to the destination (.CNV) file.  If SRWD 
  317.      is used it must appear before any labels that look like 
  318.      reserved words.  Note that compiler metacommands are handled 
  319.      by CBSF differently depending on whether they are QB or TB.  
  320.      In the case of TB they are handled as standard lines, that 
  321.      is, if the Number/Renumber Source option is YES, they are 
  322.      numbered as any other line would be.  In the case of QB, 
  323.      metacommands will NOT be affected as long as they are 
  324.      entered in the form "REM $xxxx".  They must have only ONE 
  325.      space between the word "REM" and the "$".
  326.  
  327.  
  328.  
  329.  
  330.  
  331.  
  332.  
  333.                         THE CBSF.RWD FILE
  334.                         -----------------
  335.  
  336. This file should contain all the reserved words for the 
  337. particular version of basic to be processed.  The file supplied 
  338. contains all the reserved words for QB version 3.0.  The required 
  339. changes for QB ver. 2.xx and TB ver. 1.0 follow. (All .RWD and 
  340.  .SRW files are supplied when you register CBSF).
  341. Modification of this file is very simple, but there are a few 
  342. rules which MUST be followed for CBSF to operate properly.
  343.  
  344. 1. ALL reserved words MUST be upper case (all capital letters).
  345.      example:"goto" will not work, "GOTO" is correct.
  346. 2. There can be only ONE word per line.
  347.      example:"PRINT USING" will not work. "PRINT" should be
  348.      entered on a line by itself, as should "USING".
  349. 3. Any characters that are not alpha-numeric should not be
  350.      entered. example:"INPUT" not "INPUT#", "CHAR" not "CHAR$".
  351. 4. Reserved words are in alphabetical order by FIRST character.
  352.      They do not have to be in exact alphabetical order, but must
  353.      be grouped by the first character in the word.  All words
  354.      beginning with "A" must come first, all words with "B" next,
  355.      and so on.  Look at the file CBSF.RWD for an example.
  356.  
  357. Modifications can be made with any text processor that produces
  358. ASCII output, such as the editors in QB or TB.
  359.  
  360. Modifications for QB ver. 2.XX
  361.  
  362. If QB ver 2.xx is being used then the CBSF.RWD file needs to be 
  363. modified for that version.  In this case the change needed is the 
  364. deletion of the following reserved words:
  365.  
  366.     CASE               CONST            CVDMBF            CVSMBF
  367.     DO                 ELSEIF           LOOP              MKDMBF
  368.     MKSMBF             SELECT           UNTIL
  369.  
  370. Delete these from the CBSF.RWD file and CBSF will be ready to
  371. process QB ver. 2.xx files.
  372.  
  373. Modifications for TB ver. 1.0
  374.  
  375. If TB is being used then the CBSF.RWD file needs to be modified
  376. for TB.  The changes needed are as follows:
  377.  
  378. Delete the following:
  379.     ACCESS             AUTO             LOCK              REDIM
  380.     SADD               UNLOCK           EDIT              LLIST
  381.     MERGE              MOTOR            NEW               RENUM
  382.  
  383. Add the following:
  384.     BIN                BINARY           CASE              CEIL
  385.     CLNG               CVMD             CVMS              DECR
  386.     DEFLNG             DEFSTR           DELAY             DO
  387.     DYNAMIC            ELSEIF           ENDMEM            ERADR
  388.     EXP10              EXP2             INCR              INLINE
  389.     INSTAT             INTERRUPT        LCASE             LOG10
  390.     LOG2               LOOP             MEMSET            MKL
  391.     MKMD               MKMS             MTIMER            REG
  392.     SEEK               SELECT           SERVICE           UCASE
  393.     UNTIL              VARSEG
  394.  
  395.  
  396.  
  397.  
  398.  
  399.                    THE CBSF.RWD FILE  (cont.)
  400.                    --------------------------
  401.  
  402. In order to use CBSF with other Basic programming languages 
  403. simply compare the list of reserved words for that language with 
  404. the CBSF.RWD file and make any necessary changes.  Or a new 
  405. CBSF.RWD file can be made following the above rules, with any 
  406. text processor that produces ASCII output.
  407.  
  408.  
  409.  
  410.                         THE CBSF.SRW FILE
  411.                         -----------------
  412.  
  413. The CBSF.SRW file contains a list of all reserved words that may 
  414. also be used as labels.  These words are ONLY those words that 
  415. end with a "$", and like the reserved words described above, are 
  416. entered without trailing symbols (no "$").  To find out if a 
  417. reserved word can be used as a label, write a short program such 
  418. as:
  419.  
  420.          CHR:    PRINT "TEST"  (for QB)   or:
  421.  
  422.          CHR:
  423.                  PRINT "TEST"  (for TB)
  424.  
  425. If this code will compile and run (prints "TEST") then the word 
  426. "CHR" which looks to CBSF like "CHR$" is a special reserved word.  
  427. The file supplied contains all the special reserved words for QB 
  428. ver. 3.0.  To use CBSF with QB ver. 2.xx or TB make the following 
  429. changes:
  430.  
  431. Delete these words:
  432.  
  433.     MKDMBF          MKSMBF
  434.  
  435. CBSF.SRW is now ready for QB ver. 2.xx.  To complete changes 
  436. required for TB add the following words:
  437.  
  438.     BIN             LCASE          MKL            MKMD
  439.     MKMS            UCASE
  440.  
  441. CBSF.SRW is now ready for TB.
  442.  
  443. As with CBSF.RWD this file can also be modified for whatever type 
  444. of basic being used, or a new file can be created.
  445.  
  446. General Information for CBSF.RWD and CBSF.SRW
  447.  
  448. All entries in both files MUST be capital letters only.  There 
  449. should be no spaces in the word or on the line with the word.  
  450. CBSF will only use the files with the exact names of "CBSF.RWD" 
  451. and "CBSF.SRW".  If more than one type of basic is being used, 
  452. then separate files for each type can be created, such as 
  453. "TB.RWD" and "QB3.RWD".  A batch file can then be made to rename 
  454. the file to the proper name, load CBSF, and then change the name 
  455. back at completion of the session.  Although it is not 
  456. recommended to use reserved word as labels, this will help if you 
  457. must.  Do not use the "SRWD" metacommand if there are no labels 
  458. that look like reserved words in the source file as processing 
  459. speed is slightly reduced with this option.
  460.  
  461.  
  462.  
  463.  
  464.  
  465.                         OTHER CBSF FILES
  466.                         ----------------
  467.  
  468. The Input File
  469.  
  470. The file to be processed by CBSF must be an ASCII file.  Both the 
  471. QB and TB editors produce ASCII files, and interpreted basic can 
  472. write files in ASCII by appending an ",a" to the end of the SAVE 
  473. command (i.e. SAVE "MYPROG.BAS",A).  If the file is not an ASCII 
  474. file CBSF will still try to process it, but the resulting output 
  475. file will not be usable.
  476.  
  477. The Reference File (.REF)
  478.  
  479. The reference file is the file that contains a list of labels or 
  480. line numbers from the input file, and what they are in the output 
  481. file.  For example, if the label in the input file is 
  482. "INPUT.ROUTINE" and the Number/Renumber Source option is on, then 
  483. CBSF will assign a number to this label.  This will be stored in 
  484. the .REF file.  If CBSF assigns the number 500 to this label, the 
  485. reference file entry will be: "INPUT.ROUTINE", 500.  If the 
  486. Number/Renumber Source option is not selected, a .REF file will 
  487. not be produced.
  488.  
  489. The Option File  (CBSF.OPT)
  490.  
  491. The CBSF.OPT file contains the options from input area two, if 
  492. the F9 key is used to start processing.  This file does not come 
  493. with CBSF, but is created by CBSF.  If F9 is never used, then 
  494. CBSF.OPT will not be created.
  495.  
  496. The Temporary File (CBSF.TMP)
  497.  
  498. The CBSF.TMP is the file that CBSF uses to store the converted 
  499. file, to be read for processing.  Because certain options in CBSF 
  500. require two passes through the source file, CBSF needs a place to 
  501. store the temporary information.  This file is always stored on 
  502. the same drive, and in the same directory (if applicable) as CBSF 
  503. and its associated files.  Therefore, there must be sufficient 
  504. space on the disk being used for CBSF to create and store this 
  505. file (usually about the same size as the file being processed).  
  506. This file is never seen by the user except in certain error 
  507. conditions, discussed later.
  508.  
  509. The Output File
  510.  
  511. The output file is an ASCII file with the conversions as 
  512. selected.  The only rule is that for the output file to run, the 
  513. input file should be able to run also.
  514.  
  515. General File Information
  516.  
  517. All files created and used by CBSF are standard ASCII files.
  518. All information stored is in string format.
  519. Hint: when using CBSF, best results can be obtained by doing all
  520. processing on a ram disk.  This provides the fastest processing
  521. as well as reducing wear on disk drives.
  522. Also note that the original source file is NEVER changed by CBSF.
  523.  
  524.  
  525.  
  526.  
  527.  
  528.  
  529.  
  530.  
  531.                         PROCESSING ERRORS
  532.                         -----------------
  533.  
  534. Errors during processing are displayed and processing stops.
  535. Follow the instructions on the screen when an error occurs to
  536. start processing again.
  537.  
  538. "PROCESSING ERRORS". If an "Illegal Function Call" or a 
  539. "Subscript Out of Range" error occurs (error #'s 5 and 9), the 
  540. message "PROCESSING ERROR - X   LINE - XXX" is printed on the 
  541. screen. In this case the CBSF.TMP file will not be deleted, and 
  542. can be listed to determine if the error is in the source file by 
  543. examining the line in the input file immediately following the 
  544. last line printed in the CBSF.TMP file.  If these errors persist 
  545. (especially in the case of error code 9), then a copy of the last 
  546. few lines of the CBSF.TMP file and a few lines before and after 
  547. the line causing the error in the input file, should be sent to 
  548. our office for evaluation.  Also, please include the error number 
  549. and line number printed in the error message.
  550.  
  551. "UNEXPECTED ERROR" If this occurs, please send the line number 
  552. and error number for evaluation. (If these errors are persistent) 
  553. Note that on an "UNEXPECTED ERROR" there will be no CBSF.TMP file 
  554. to examine.
  555.  
  556. "INPUT PAST END" error.  If this error occurs, the output file 
  557. should be examined.  Generally, these errors are caused by a bad 
  558. end-of-file marker, but the resulting output file may still be 
  559. usable.
  560.  
  561. "GENERAL INPUT/OUTPUT" errors are lumped under the same error 
  562. message, and the type (number) of the error will be printed, 
  563. refer to your basic manual for a description of this error.
  564.  
  565. "SYMBOL TABLE OVERFLOW" error.  CBSF does not have a limit on how 
  566. many lines it can process (except for the demo ver.), it does 
  567. however, have a limit on the number of labels and/or line numbers 
  568. it can convert.  This maximum is 5000.  For example, if the 
  569. source file has 10,000 lines in it, but only has 1800 labels, 
  570. then the limit of 5000 is not exceeded.  However, if a source 
  571. file has 10,000 lines, and they are all numbered, CBSF will 
  572. process until it reaches line 5001, at which time a "SYMBOL TABLE 
  573. OVERFLOW" error will occur.  Note that this error is only valid 
  574. if the Number/Renumber Source option is selected.  It may be 
  575. easier to think of the 5000 maximum as the maximum number of 
  576. entries in the file .REF.
  577.  
  578. "CBSF.SRW FILE NOT FOUND" error.  This error has no effect if the 
  579. SRWD metacommand is not used.  If SRWD is used, then if CBSF 
  580. encounters a label that looks like a reserved word, it will be 
  581. treated as a reserved word.
  582.  
  583. "CBSF.RWD FILE NOT FOUND" error.  Processing should not really be 
  584. attempted if this error occurs (although the option to continue 
  585. is available) because, depending on options selected, processing 
  586. results can be unpredictable at best.
  587.  
  588. All other errors are explained by the message on the screen.
  589.  
  590. When writing to us about errors, please include the error line 
  591. number, error code, type and ver. of file being processed (QB 
  592. v1,v2,v3 or TB v1, Basica, GWbasic, etc.)  Also include the 
  593. version of CBSF and serial number from your CBSF disk.
  594.  
  595.