home *** CD-ROM | disk | FTP | other *** search
/ The Datafile PD-CD 3 / PDCD_3.iso / pocketbk / utilsr / spydrx / README.TXT < prev    next >
Text File  |  1995-08-20  |  84KB  |  1,990 lines

  1.                                 README.TXT
  2.                                    for
  3.                                  SPYDERX
  4.                                Version 1.4                            
  5.  
  6.  
  7. DEFINITION OF SHAREWARE
  8.  
  9. Shareware distribution gives users a chance to try software before
  10. buying it. If you try a Shareware program and continue using it, you
  11. are required to register it.
  12.  
  13. Copyright laws apply to both Shareware and retail software, and the
  14. copyright holder retains all rights, with a few specific exceptions
  15. as stated below. Shareware authors are accomplished programmers, just
  16. like retail authors, and the programs are of comparable quality. (In
  17. both cases, there are good programs and bad ones!) The main difference
  18. is in the method of distribution. The author specifically grants the right
  19. to copy and distribute the software, either to all and sundry or to a
  20. specific group. For example, some authors require written permission
  21. before a commercial disk vendor may copy their Shareware.
  22.  
  23. Shareware is a distribution method, not a type of software. You should
  24. find software that suits your needs and pocketbook, whether it's retail
  25. or Shareware. The Shareware system makes fitting your needs easier,
  26. because you can try before you buy. And because the overhead is lower,
  27. prices are lower also. Shareware has the ultimate money-back guarantee --
  28. if you don't use the product, you don't pay for it.
  29.  
  30.  
  31. WHAT IS SPYDERX?
  32.  
  33. SpyderX provides you with the ability to create hyptertext webs
  34. of cells containing text and mathematical expressions; and to
  35. use those webs to store data, solve problems, and support your
  36. own creative process. 
  37.  
  38. A few of the many possible applications for SpyderX are:
  39. hypertext notepad and database, job cost estimator, scheduling tool,
  40. financial modeling tool, dynamic system simulator, user interface
  41. design tool, numerical differential equation solver, semantic network
  42. modeler, requirements analysis tool, contingency planner, decision
  43. support system, taxonomy assistant, and help system
  44. host.
  45.  
  46. Each cell in a SpyderX web contains a name, a text field, a value field,
  47. and a formula field. References to other cells, which appear in any field
  48. of a cell, may be used as hot-links to those cells.  Cells may refer to
  49. themselves, making possible cycles of hypertext reference, and iterative
  50. calculations.
  51.  
  52. Output of the program includes results of calculations and reports of
  53. cell contents, and may be directed to the LCD display, the text field
  54. of a cell, or to a file in memory, which may be uploaded to a desktop
  55. computer for further analysis or printing.  This version of SpyderX,
  56. version 1.1, runs on a Psion Series 3 or 3a.
  57.  
  58. WHOM IS SPYDERX FOR?
  59.  
  60. SpyderX was developed by an engineer and software developer for
  61. engineers, scientists, and software developers.  It supports, on a
  62. palmtop computer, common design, modeling, estimating, scheduling, and
  63. computing needs of people who deal with complex subjects, systems,
  64. and interactions.  A certain amount of practice is necessary to
  65. realize the maximum benefit from the program.  This practice develops
  66. skills for navigating hypertext webs, and promotes a cellular
  67. perspective on problems and systems.
  68.  
  69. NEW IN VERSION 1.3
  70.  
  71. Version 1.3 fixes a bug that cropped up in version 1.2, which prevented
  72. the registration key from having an effect on the display of reminders
  73. to register.
  74.  
  75. Also in version 1.3, the reporting function is expanded to include
  76. InPointer and OutPointer reports, and well as a Trail report. The
  77. pointer reports are vital for cross referencing complex webs, such
  78. as program structure charts, hierarchic state machine descriptions,
  79. and Pert graphs.  The trail report allows the user to obtain
  80. a history of the cells which have been entered via a Linkto command.
  81.  
  82. SpyderX now can serve as a link/paste client via the "bring" command.
  83. Unfortunately, it cannot yet be a server.  That feature must wait
  84. on a change of underlying software libraries.
  85.  
  86. Finally, the size of SpyderX was reduced by 15%, and its speed was
  87. increased somewhat.  Current users will probably notice the difference.
  88.  
  89. VERSION 1.3a -- MAINTENANCE RELEASE
  90. Fixed a bug which caused the formula field of the home cell
  91. to be cleared when a web was loaded.
  92.  
  93. VERSION 1.4 -- MAINTENANCE RELEASE
  94. Fixes a bug introduced in version 1.3a which made new cells invisible
  95. to formulas until the formulas were changed.
  96.  
  97. INSTALLING SPYDERX
  98.  
  99. 1.  Before installing SpyderX on your Psion 3 or 3a, create a \web\
  100. directory. This is where the program will keep its data files, unless
  101. you direct it to store them elsewhere.
  102.  
  103. 2.  If you have no \app\ directory on your Psion, create one
  104. to hold the Spyder executable.
  105.  
  106. 3.  Use PKUNZIP or equivalent to decompress the SpydrX.zip file into
  107. SpyderX.app, this Readme.txt file, and a collection of sample webs,
  108. labeled *.web.
  109.  
  110. 4.  Use MCLINK, WINLink3, PsiWin or some other PSION remote file transfer
  111. program to copy SpyderX.app to the \app\ directory on your chosen solid
  112. state disk drive.
  113.  
  114. 5.  Then transfer the sample webs to the \web\ directory that
  115. you created in step 1.
  116.  
  117. 6.  Choose Install from the Apps menu of the system screen, and
  118. select SpyderX for installation.
  119.  
  120. 7.  If all goes well, the SpyderX icon will appear on the desktop,
  121. along with sample webs which you copied to the \web\ directory.
  122.  
  123. 8.  Try the simple tutorial in the next section of this Readme file.
  124.  
  125. FIRST TUTORIAL
  126.  
  127. If SpyderX was sucessfully installed, there will be several sample webs
  128. to choose from under the SpyderX icon (A spider hanging from a thread).
  129.  
  130. ====Piggy
  131.  
  132. Select the web called "Piggy" and press return.  Your Psion should
  133. display a window divided into two panes by a horizontal line.
  134.  
  135. The top pane, the narrow one, contains the words "PIGGY--home".  This is
  136. the name pane, a read-only pane, whose leftmost word is the name of the
  137. web, and whose rightmost word is the the cellname (home).
  138.  
  139. The larger pane is the text pane.  It contains an edit box in which
  140. text may be entered into the text field of the currently displayed
  141. cell. 
  142.  
  143. Every SpyderX web contains a "home" cell, which is diplayed on entry to
  144. the web; and which cannot be deleted. The text area of the home cell is
  145. frequently used to describe the purpose of the web, and to present a
  146. simple map of its contents.  This information is supplied for the Piggy
  147. web, as you can verify by using the arrow keys to scroll through the text
  148. field of the cell.
  149.  
  150. ====|====Browsing the Web
  151. Press the menu button and you will see in the menu bar an entry called
  152. 'Browse'.  Select that entry and the two choices 'Prev' and 'Next' are
  153. displayed with their accelerators PSION+ and PSION-.  Use the
  154. accelerators to browse the Piggy web, returning to the point from which
  155. you began.
  156.  
  157. You will notice that the cells in the web appear in alphabetic order
  158. when browsed, and that browsing forward from the last cell in sequence
  159. returns you to the first cell in sequence.
  160.  
  161. ====|====Changing the Current Cell
  162. Aside from browsing, there are three other methods of moving from
  163. one cell to another.  These methods are: 'Linking' to a cell, 'Going'
  164. to a cell, and following a hypertext link.  The next three short
  165. paragraphs describe how to perform each operation.
  166.  
  167. ====|====|====Linking to a Cell
  168. When you 'link' to a cell, you transfer to that cell with the
  169. expectation of returning to the current cell.  To try this, choose
  170. 'Linkto' from the Cell menu, and enter the name of the cell
  171. 'pennies' into the dialog box that appears.  When you press enter,
  172. the screen should show the 'pennies' cell.  Return to the cell you
  173. left by pressing Esc, or choosing 'Unlink' from the Cell menu.
  174.  
  175. ====|====|====Going to a Cell
  176. When you 'go' to a cell, you transfer to that cell with no
  177. expectation of returning to the current cell.  To try this, choose
  178. 'Goto' from the Cell menu, and enter the cell name 'dimes' into
  179. the dialog box that appears.  When you press enter, the screen
  180. should show the 'dimes' cell.  You will have to 'browse' your
  181. way back to the cell you left.
  182.  
  183. ====|====|====Hypertext Links
  184. Wherever the name of another cell appears in the text pane
  185. of the current cell, you can use that name as a hypertext link
  186. to the other cell.  In Piggy, hypertext links to other cells
  187. are marked by preceding them with ampersands (&).  This convention
  188. is unnecessary for the functioning of the links, but it makes
  189. it easier to navigate the web.
  190.  
  191. To follow a hypertext link, position the cursor in the text stream
  192. a bit before the link, and select 'Hunt' from the Cell menu.
  193. SpyderX will scan forward within the current cell until it finds
  194. a valid link, and then transfer to the cell named in that link.
  195. The destination cell will replace the one currently shown.  To
  196. return to the previous cell, press the Esc key, or select 'Unlink'
  197. from the Cell menu.
  198.  
  199. NOTE:  Whenever the name of a cell is typed into an edit pane,
  200. it automatically becomes a hypertext link to that cell.
  201.  
  202. ====|====The Math Window
  203. In addition to the text window, each cell also has a math window,
  204. which you may see by choosing 'Math' from the Edit menu, or by
  205. using the diamond key on the 3a.
  206.  
  207. The math window is divided into three panes.  The top one, as
  208. before, is the name pane, a read-only pane which contains the
  209. name of the web followed by the name of the currently displayed
  210. cell.
  211.  
  212. The middle pane is the value pane.  Into this pane are entered
  213. values which one wishes to associate with the cell; and from this
  214. pane may be read the results of calculation, the latest value of
  215. the cell.
  216.  
  217. The bottom pane is the formula pane.  It contains an edit box, into
  218. which a formula may be entered for the calculation of the value of
  219. this cell.  The formula is an arithmetic expression which may employ
  220. cell names and built-in functions to compute a new value for the
  221. cell in which it appears.
  222.  
  223. NOTE:  You can transfer between panes with the TAB key.
  224. NOTE:  Cell names in formulas may be used as hypertext links to other
  225. cells in the say way as cell names in text fields.
  226.  
  227. ====|====Calculating a Result
  228. Next we will see how a web can be used to calculate values of interest.
  229. In this case, our net worth, or the sum of the coins in our piggy bank
  230. is the value of interest.
  231.  
  232. Select the Math window, and use the browse accelerators PSION+ or
  233. PSION- to traverse the cells of the PIGGY web.  Notice that most of
  234. the cells have names corresponding to the names of denominations
  235. of US coinage.
  236.  
  237. Enter into the value field of each cell whose name is a denomination
  238. of coinage, the total number of coins of that denomination which you
  239. have on hand. (Use TAB to position the cursor to the value field).
  240.  
  241. Then choose 'Evaluate' from the Special Menu.  Unless the Calculation
  242. options have been changed since you installed PIGGY, you should see
  243. a line of text such as the one below:
  244.  
  245.       Piggy contains $74.13
  246.  
  247. The format of the output is controlled by the Calculation Preferences
  248. which may be reached from the 'Preferences' selection in the Special
  249. menu.  Notice also that the value in the cell 'piggy' has changed to
  250. the same value as the one listed.
  251.  
  252. ====|====Reporting on Cell Contents
  253. To see an alphabetic list of all the cells in the PIGGY web, together
  254. with the value of each cell, you may select 'Report' from the 
  255. Special menu.  The following list should appear (your values may
  256. be different):
  257.  
  258.     dimes 231
  259.     half_dollars 43
  260.     home
  261.     nickels 242
  262.     pennies 1343
  263.     piggy 74.13
  264.     quarters 0
  265.     silver_dollars 4
  266.  
  267. If you did not get such a list, it may be because you changed the
  268. Report preferences accessible from the 'Preferences' entry of
  269. the Special menu.
  270.  
  271. SECOND TUTORIAL
  272.  
  273. Our goal for this tutorial is to create a new, empty web, to add
  274. cells to it, and to create links between the cells.  To this end we
  275. will make a web which lists the names and addresses of several people
  276. we know, and also add a bit of useful information not usually found
  277. in such a list.
  278.  
  279. ====Making an Empty Web
  280. Enter SpyderX with an existing web.  Then choose 'New' from the File
  281. menu.  SpyderX will respond by showing you the home cell of a web
  282. named NEW.  Browsing forward or backward, you will see that home
  283. is the only cell in the web.
  284.  
  285. ====Adding Cells
  286. A new cell may be inserted into our web by using the 'Add', 'Linkto',
  287. or 'Goto' commands in the Cell menu.  For now choose 'Add', and answer
  288. the dialog with the name of someone with whom you are friendly or
  289. acquainted.
  290.  
  291.     If the "Bad Cell Name" dialog appears, it is probably because you
  292.     left a space between the person's first and last name.  Cell names
  293.     may not have spaces in them; but it is OK to use the underscore
  294.     character in place of the space you would normally use.
  295.     (Some software types like to jam words up together and indicate
  296.     separate words by the use of capitalization, as in WhatsInAName).
  297.  
  298.     If you repair this defect, and still get the "Bad Cell Name" dialog,
  299.     it may be because your friend's name begins with a number, such as
  300.     '3Cpo', or a special character, as in '#Sterling'.  All cell names
  301.     must begin with an alphabetic character.
  302.  
  303. If there is no cell which has the name you entered, one is created.
  304. You may type in whatever information you wish about this person,
  305. including, for example: address, phone number, height, weight, and
  306. number of outstanding parking tickets.  Keep in mind that you will be
  307. able to use the 'Find' command in the Edit menu to search your web on
  308. the information which you have entered.
  309.  
  310. Repeat the process of adding cells with names of associates until
  311. you have entered several persons into the little database.  Next we
  312. will enter connections between the people in the web.
  313.  
  314. ====Connecting the Cells
  315. Goto, Linkto, or Browse to the cell for the first person you entered,
  316. and enter the text field for that person.  Scroll down to the bottom
  317. of the text field, start a new line, and enter the words:
  318.  
  319.       TALKS TO:
  320.  
  321. Then enter the names of persons with whom you know that this person
  322. communicates on a daily basis.  If the person involved is already
  323. in your database, make sure you spell the name the same way as it
  324. appears in the cell name.  If the person involved is not already
  325. in your database, you may want to considering entering the person.
  326.  
  327. Go through the cells of the database, adding the links wherever you
  328. know them to exist, and adding persons where it seems appropriate.
  329. When you finish, you will not only have a list of acquaintances and
  330. whatever information you wish to keep about them; you will also have
  331. a map of information flow among your associates.
  332.  
  333. By setting the report preferences to InPointers or OutPointers and
  334. choosing Report from the Special menu, you can see a report on this
  335. information flow.
  336.  
  337. If you are like many engineers, you probably don't care how information
  338. travels among your associates.  Nevertheless, the exercise can be useful.
  339. If you tell a fascinating fact to one of the persons in your database,
  340. you can use the connections to predict who will know that fact after a
  341. day or so.
  342.  
  343. The point here is that we are in the habit of thinking about the objects
  344. in our databases, whereas we might benefit from thinking as well about
  345. the connections between them.  With SpyderX, this is easy to do.
  346.  
  347. ====Searching the Web
  348. In addition to following chains of links which you type into the text
  349. field of the web, you can use the 'Find' function in the Edit menu to
  350. go to the next cell having a specified text string, or to the closest
  351. previous cell having a specified text string.  Your search may be case
  352. sensitive or not.  You may set default search preferences by obtaining
  353. the Preferences dialog (choose Preferences from the Special menu), and
  354. then choosing 'Searching' from that dialog.
  355.  
  356. ====Saving the Web
  357. To save the database you have made, choose 'Save As' from the File menu,
  358. and answer the dialog with the name you have chosen for your web.  You
  359. may include, or not include the suffix 'web', as you wish.  If you use
  360. another suffix, the web will be saved with that suffix.
  361.  
  362. SPYDERX OUTPUT
  363. ====Purpose of SpyderX's Output
  364. SpyderX is a personal, portable scratchpad for thinking about complex
  365. phenomenon, systems, and relationships.  It is not intended to communicate
  366. the results of that thought to others.  SpyderX does not generate
  367. elaborate reports, or visualize the result of mathematical calculations.
  368. Instead it provides flexible, primitive tools to format output and
  369. results in a way that can be understood by the user, and transferred
  370. to other programs or computers for further analysis.
  371.  
  372. ====Kinds of Output
  373. The next two subsections describe the kinds of output generated by the
  374. SpyderX program.  Subsequent sections will introduce further information
  375. on the mechanics of controlling that output.
  376.  
  377. ====Report Output
  378. The SpyderX 'Report' entry, in the Special menu, permits the user to
  379. select some or all of the name, text, formula, or value information
  380. in some or all of the cells, and format it into simple ASCII text streams
  381. which are conveyed to the current output destination of the program.
  382. This feature permits the user to create indexes of webs, list for analysis
  383. the formulas involved in a web, perform complex recombinations of cell
  384. contents, dump web contents to files for upload to a host computer,
  385. and to generate so-called "comma-separated text" files for exporting
  386. SpyderX data to databases and other programs.
  387.  
  388. Also available are cross-reference reports called "InPointers" and 
  389. "OutPointers", which assist in understanding the structure of a web;
  390. and the report called "Trail", which may be used to keep track of
  391. your current hierarchic position resulting from a sequence of
  392. "linkto" or "hunt" requests.
  393.  
  394. ====Calculation Output
  395. For calculations, the user may choose between no output, generic output,
  396. and formatted output.
  397.  
  398. ====|====No Output
  399. If the user chooses no output, no results will be directed to the
  400. current output destination, although the value fields of affected
  401. cells will change.
  402.  
  403. ====|====Generic Output
  404. Generic output consists of a title line containing a list of all the
  405. cells accessed in a calculation; followed by one line for each iteration
  406. of the values of each of those cells at the end of the iteration. Below
  407. is a sample of generic output for an iterative calculation:
  408.  
  409.     apr,month,itm,prin,pmyt
  410.     0.075,1,137.09,21593.41,481
  411.     0.075,2,134.96,21249.51,481
  412.     0.075,3,132.81,20903.46,481
  413.     0.075,4,130.65,20555.27,481
  414.     0.075,5,128.47,20204.92,481
  415.     0.075,6,126.28,19852.39,481
  416.     0.075,7,124.08,19497.67,481
  417.     ...........................
  418.  
  419. ====|====Formatted Output
  420. Formatted output consists of a title line derived from a format string,
  421. followed by one line per iteration of the values of cells specified in
  422. the format list, separated by other characters included in the format
  423. list for the purpose of clarifying the meaning of the values.  One might
  424. format the output for the calculation whose generic output is shown
  425. above, to read as follows:
  426.  
  427.     for month 1, principal remaining is 21593.41
  428.     for month 2, principal remaining is 21249.51
  429.     for month 3, principal remaining is 20903.46
  430.     for month 4, principal remaining is 20255.27
  431.     for month 5, principal remaining is 20204.92
  432.     for month 6, principal remaining is 19852.39
  433.     ............................................
  434.  
  435. ====Choosing Output Destinations
  436. Output of reports or calculations may be directed to the screen, to a
  437. cell within the web, or to a file in the Psion's memory.  To set the
  438. output destination, select the 'Preferences' entry in the Special menu.
  439. A dialog menu with the following contents will appear:
  440.  
  441.     Preferences for:
  442.     * Output
  443.     * Numbers
  444.     * Calculation
  445.     * Searching
  446.     * Report
  447.  
  448. Choose the 'Output' choice to reach the Output Preferences dialog,
  449. which contains the following contents:
  450.  
  451.     Output Preferences:
  452.     * Destination   <- File ->
  453.     * Dest Name       mugga
  454.     * Newline Type  <- CRLF ->
  455.  
  456. When output is directed to the screen, it is displayed one screen at a
  457. time, with a prompt required before the next screen is displayed.  
  458.  
  459. When output is directed to a file or to a cell, the name of the file or
  460. cell is entered by typing it into the Dest Name field of the dialog. 
  461.  
  462. When output is directed to a file, the type of newline generated can be
  463. controlled by the third entry in the Output Preferences dialog. If the
  464. output will be exported to an IBM compatible computer, it is a good idea
  465. to use the 'CRLF' option for newline.  If the output will remain on the
  466. Psion, or will be exported to a Macintosh or Unix computer, the LF option
  467. works better.
  468.  
  469. TIP:  By choosing 'Cell' for the destination, and by carefully setting
  470. the report format, the user can generate a handy index of the web within
  471. the cell named in the dialog box.  The index will be particularly useful
  472. since all cell names output by the report are automatically hypertext
  473. links to the cells which they represent.
  474.  
  475. REPORTING CELL CONTENTS
  476.  
  477. ====Specifying Report Output
  478. To specify what information will appear in Report output; select the
  479. Special menu, and choose the 'Preferences' entry. The Preferences
  480. dialog (shown above) will appear.  Select 'Report' from that dialog,
  481. and the Report Preferences dialog will appear:
  482.  
  483.     Report Preferences
  484.     * Report on All Cells?  <-Yes->
  485.     * Report Type          <- Formatted ->
  486.     * Report Format       \n\N\n\V\n\F\n\T
  487.  
  488. The first question in the dialog tells SpyderX whether or not to report
  489. on all cells.  The second tells it what kind of report to generate.  The
  490. third tells it which information to include for each cell in a formatted
  491. report, if that is the type of report that is selected.
  492.  
  493. ====|====Report Cell Selection
  494. Answering Yes to the  "Report on All Cells?" question will assure that
  495. when the user elects to generate a report, all of the cells in the web
  496. will be reported, according to the format specified.  Answering No will
  497. cause the report function to select a subset of the cells in the web.
  498.  
  499. The subset of cells selected for reporting depends upon an algorithm
  500. executed by the report function.  If there is a highlighted text selection
  501. in the active edit box at the time a report is requested, SpyderX will
  502. scan that selection for valid cell names, and generate a report on all
  503. the cells named in that selection, in the order in which they appear.
  504. If there is no highlighted selection in the active edit box, SpyderX
  505. will generate a report on the current cell only.
  506.  
  507. ====|====Report Type
  508. There are four types of reports.  They are the Formatted report,
  509. the InPointers report, the OutPointers report, and the Trail
  510. report.
  511.  
  512. ====|====|====The Formatted Report
  513. The appearance of a formatted report depends upon the content of the
  514. Report Format string in the Report Preferences dialog.  If nothing is
  515. entered in the report format string, no output will be generated when
  516. Report is chosen from the Special menu.
  517.  
  518. If the report format string is not empty, then choosing Report from
  519. the Special menu will cause that string to be scanned and interpreted
  520. for each cell in the selected cell list.
  521.  
  522. When the report format string is interpreted for a cell, most
  523. characters in the string are copied directly to the output destination.
  524. Substitutions are made; however, for character pairs which begin with
  525. the backslash (\).  The substituted text is copied to the output in the
  526. place of those character pairs.
  527.  
  528. Character pairs for which substitutions are made during interpretation
  529. of the report format string are:
  530.  
  531. '\n'    A newline sequence is copied to the output in the place of
  532.         a backslash followed by a lower case n.
  533.  
  534. '\N'    When upper case N appears in the report format after the
  535.         backslash character, the report generator substitutes for the
  536.         pair of characters the name of the cell for which the format
  537.         string is being interpreted.
  538.  
  539. '\V'    Backslash-V causes the value of the cell to be substituted for
  540.         the two characters.
  541.  
  542. '\F'    Backslash-F is replaced in the report by the formula field of
  543.         the cell being interpreted by the report formatter.
  544.  
  545. '\T'    Backslash-T results in the outputting of the text field of the
  546.         cell being reported.
  547.  
  548. Any other two character sequence beginning with a backslash will cause
  549. the second character only to be output to the report.  This includes
  550. the string '\\' which is replaced in the output by a single backslash.
  551.  
  552. If the report format string is not empty, but neither does it contain
  553. any of the character sequences above, it will be copied verbatim to
  554. the output once for each cell which has been selected.
  555.  
  556. ====|====|====InPointers Report
  557. For each cell in the report cell selection, this report outputs a
  558. list of all the other cells in the web which refer to the cell.
  559.  
  560. ====|====|====OutPointers Report
  561. For each cell in the report cell selection, this report outputs
  562. a list of all the other cells to which this cell refers.
  563.  
  564. ====|====|====Trail Report
  565. The Trail Report merely lists from most recent to most ancient,
  566. all of the cells placed on the Trail by Linkto requests, that have
  567. not yet been popped off by Unlink requests.
  568.  
  569. ====Sample Reports
  570. Below you will find described the way in which reports are formatted
  571. for some of the sample webs included with the SpyderX distribution.
  572.  
  573. ====|====Websites
  574. The web called "Websites" is a model of some of the World Wide Web sites
  575. accessible from Netcom's Netcruiser Home Port.  Each cell contains a
  576. description of a single WWW home page, and links to other home pages
  577. which are accessible from that page.  SpyderX allows the user to
  578. produce a map or index of WWW home pages that is structured in the
  579. same way as the WWW itself.
  580.  
  581. The report format string for 'Websites' is  "\n\N".  The report
  582. preference dialog question about whether to report all cells is
  583. answered "Yes".
  584.  
  585. When you choose 'Report' from the Special menu, what you get is a list
  586. of the names of all the cells in the Websites web:
  587.  
  588.     CERNWebServersList
  589.     ClickableMapOfEurope
  590.     ClickableMapOfWorld
  591.     Colorado
  592.     GovernmentAndLawDestinations
  593.     GuidedTour
  594.     ..........
  595.  
  596. If you used the output preferences to direct that list into the home
  597. cell, your report creates an instant hypertext index of the Websites
  598. web within its home cell.
  599.     
  600. ====|====Finance
  601. The web called "Finance" allows you to compute the monthly payment
  602. necessary to pay off a loan of a given amount, at a prescribed
  603. interest rate, in a specified number of monthly payments.
  604.  
  605. Sometimes, when you are working on a calculation, it helps to see all
  606. of the formulas on the same screen or page.  The report format string
  607. of the Finance web is:
  608.  
  609.     \n\N:=\F
  610.  
  611. When a report of all cells is generated from the Finance web using this
  612. string, the result is:
  613.  
  614.     apr:=
  615.     home:=
  616.     i:=apr/12
  617.     n:=
  618.     power:=pow(1+i,n)
  619.     prin:=
  620.     pymt:=prin*power*i/(1-power)
  621.  
  622. ====|====Quotes
  623. The web called Quotes has a report fomat string that can be used to
  624. copy the contents of the web, except for the value field, into a single
  625. stream, which may be saved into a file for upload, or scanned as it
  626. goes by on the LCD screen.  The format string reads:
  627.  
  628.     "\n\T\n                   --\N\n\F\n"
  629.  
  630. Here is a selection of the output:
  631.  
  632.      My work is being destroyed almost as soon as it is printed.
  633.      One day it is being read; the next day someone's wrapping fish in it.
  634.                            --Al_Capp
  635.      Author of Li'l Abner.
  636.  
  637.      If we had no faults, we should not take so much pleasure in
  638.      noticing them in others.
  639.                            --Duc_De_La_Rochefoucauld
  640.      1613-1680
  641.  
  642.      Surely you're joking Mr. Feynman!
  643.                            --Eisenhart
  644.      On the occasion of Mr Feynman requesting both creme and lemon
  645.      in his tea at the Princeton Dean's tea.
  646.  
  647.      He who knows does not speak.
  648.      He who speaks does not know.
  649.                            --Lao_Tzu
  650.      And yet he speaks.
  651.  
  652. ====|====Pert
  653. This web computes the critical path time to completion of a
  654. construction project.  The report format string has been arranged to
  655. print a comma-separated text file of the task name, and completion time
  656. for every cell in the web.  The report format string is:
  657.  
  658.     \n"\N","\V"
  659.  
  660. The resulting report is:
  661.     "BuildFoundation","3.3"
  662.     "BuildUpperStructure","17.5"
  663.     "ClearLand","1.5"
  664.     "CompleteExterior","12"
  665.      .........
  666.  
  667. To change the order in which the cells come out, answer No to the
  668. question in the report preferences dialog about whether you want
  669. to report on all cells.  Then create a list of the cell names in
  670. the order in which you want them to appear, select the list and
  671. choose 'Report' from the Special menu.
  672.  
  673. The Pert web is also a good example of the utility of the InPointers
  674. report.  If we request an InPointers report for the text fields of all
  675. the cells in Pert, we obtain:
  676.     BuildFoundation
  677.         <ClearLand
  678.         <path1
  679.         <path2
  680.         <path3
  681.     BuildUpperStructure
  682.         <BuildFoundation
  683.         <path1
  684.         <path2
  685.         <path3
  686.     ClearLand
  687.         <home
  688.         <path1
  689.         <path2
  690.         <path3
  691.     CompleteExterior
  692.         <BuildUpperStructure
  693.         <path3
  694.     CompleteInterior
  695.         <ElectricalWork
  696.         <path1
  697.         <path2
  698.         <PlumbingWork
  699.     ....
  700.     ....
  701.  
  702. Not only does this report show us the prerequisites for beginning each
  703. task in the construction project, it shows to which path or paths each
  704. task in the project belongs.
  705.     
  706. CALCULATING WITH SPYDERX
  707.  
  708. In this section will be described the method of specifying calculation
  709. output, the rules of evaluation used by the SpyderX calculator, and
  710. examples which illustrate the use of those rules.
  711.  
  712. ====Specifying Calculation Output
  713. To specify what information will appear in Calculation output;
  714. select the Special menu, and choose the 'Preferences' entry. The
  715. Preferences dialog (shown previously) will appear.  Select 'Calculation'
  716. from that dialog, and the 'Calculation Preferences' dialog will appear:
  717.  
  718.     Calculation Preferences
  719.     * Recalc All Cells           <-No->
  720.     * Calculation Results   <-FormattedList->
  721.     * List Format             %month,%prin
  722.     * Default Evaluation Rule <-Propagate-> 
  723.  
  724. The first item in the dialog tells SpyderX whether or not to select all
  725. cells for calculation.    The second item in the dialog lets the user
  726. select whether results will be output at all, and if so whether the
  727. format will be generic, or specified by the string which is entered in
  728. the third dialog item.  The fourth item tells SpyderX the default
  729. evaluation rule to use: Propagate or Iterate (more on this later).
  730.  
  731. ====|====Selection of Cells to Calculate
  732. The first choice list in 'Calculation Preferences' allows the user to
  733. answer Yes or No to the question whether to recalculate all cells in
  734. the web.  This affects not only the choice of results to output, but
  735. also the amount of time taken for the calculation.  The more cells
  736. calculated, the longer each iteration will take.
  737.  
  738. If the user answers Yes to the first question, all cells in the web
  739. are selected for calculation.  If the user answers No, a selection of
  740. cells will be calculated the next time the user chooses 'Evaluate' from
  741. the Special menu.  The particular selection, in the latter case, will
  742. depend upon whether there is an edit box selection, and which cell is
  743. currently showing in the window.
  744.  
  745. If there is a highlighted edit box selection when the user chooses
  746. Evaluate, all of the valid cell names in that selection will be
  747. calculated at each iteration.  If there is no highlighted edit box
  748. selection, only the currently visible cell will be calculated at
  749. each iteration.
  750.  
  751. (In reality more cells may be calculated at each iteration than are
  752. selected for calculation.  The formula fields of selected cells may
  753. refer to cell names not in the selection.  If so, those selected
  754. cells may be calculated as well as any cells referred to in THEIR
  755. formula fields, and so on).
  756.  
  757. ====|====Calculation Results
  758. One of three possible choices may be selected in this dialog item:
  759.  
  760. ====|====|====Don't List
  761. No output is listed as a result of calculations.  This choice provides
  762. the shortest time of calculation.  Even though no calculation output
  763. is generated, you may view the results (at the end of the last
  764. iteration) by choosing to "Report" the values of cells of interest,
  765. or by viewing each cell for which a value is required.
  766.  
  767. ====|====|====Generic List
  768. Calculated results are presented for each cell calculated.  This may
  769. be more than the number of cells selected, since it may be necessary
  770. to calculate more cells than those selected in order to obtain values
  771. for the selected cells.  Typical generic list output looks that that
  772. shown below:
  773.  
  774.     apr,month,itm,prin,pmyt
  775.     0.075,1,137.09,21593.41,481
  776.     0.075,2,134.96,21249.51,481
  777.     0.075,3,132.81,20903.46,481
  778.     0.075,4,130.65,20555.27,481
  779.     0.075,5,128.47,20204.92,481
  780.     0.075,6,126.28,19852.39,481
  781.     0.075,7,124.08,19497.67,481
  782.     ...........................
  783.  
  784. ====|====|====Formatted List
  785. For formatted listing, a header may or may not be presented, depending
  786. upon the content of the List Format (line 3 of the dialog).
  787.  
  788. The content of the formatted result chunk generated for each iteration
  789. depends upon rules described in 'Formatting Calculation Results',
  790. which is the next section.
  791.  
  792. ====|====|====Formatting Calculation Results
  793. ====|====|====|====Format of the Header Line
  794. If the first character of the List Format is a tilde ('~'), no header
  795. line is generated for the calculation.  If it is not a tilde, the
  796. header line is generated in accordance with the following rule:
  797.  
  798.     A newline is output.  Then the contents of the List Format string
  799.     are copied directly to the output, except that any percent signs
  800.     in the format string are ignored.  Wherever the character pair
  801.     '\n' appears in the List Format, it is replaced with a newline
  802.     sequence.
  803.  
  804. ====|====|====|====Format of Each Iteration Chunk
  805. The output generated at each iteration of a calculation depends upon
  806. the content of the List Format string.  The manner of this dependence
  807. is described in the rule below:
  808.  
  809.     The contents of the List Format string are scanned,
  810.     and copied to the output until a percent ('%') sign is
  811.     encountered.  The next word after the percent sign is
  812.     read to determine if it is a valid cell name.  If it is,
  813.     the current value associated with that cell is substituted
  814.     for the cell name in the output string.  Scanning and outputting
  815.     of the List Format string is then resumed until the next percent
  816.     sign or the end of the string is reached.  Wherever the character
  817.     pair '\n' appears in the List Format, it is replaced with a
  818.     newline sequence.
  819.  
  820. It is important to notice that the selection of cells for formatted
  821. output is controlled entirely by the format string, and has nothing
  822. to do with the selection of cells for calculation.  This is necessary
  823. so that you can view only certain cells at each iteration, regardless
  824. of how many cells are calculated.
  825.  
  826. ====|====|====Calculation Format Examples
  827. ====|====|====|====Example 1
  828. The List Format string in the Calculation Preferences shown above,
  829.  
  830.     "%month,%prin"
  831.  
  832. will cause the following type of output to be generated if both
  833. cells are either selected for calculation or included in the
  834. calculation by reference:
  835.  
  836.     month,prin
  837.     1,159820.00
  838.     2,159638.88
  839.     3,159456.62
  840.     4,159273.22
  841.     5,159088.68
  842.     6,159902.98
  843.     ...........
  844.  
  845. If, on the other hand, the cell called 'month' was accidentally left
  846. out of the calculation, but not the format, the output would look
  847. more like:
  848.  
  849.     month,prin
  850.     1,159820.00
  851.     1,159638.88
  852.     1,159456.62
  853.     1,159273.22
  854.     1,159088.68
  855.     1,159902.98
  856.     ...........
  857.  
  858. ====|====|====|====Example 2
  859. The web called 'Pert' provides an example of a List Format string used
  860. for a calculation when there is only one iteration, and the outcome
  861. is to be displayed for only one cell:
  862.  
  863.     "~The Critical Path takes %CriticalPath days."
  864.  
  865. In this case, the starting tilde eliminates the header chunk, and the
  866. output looks like:
  867.  
  868.     The Critical Path takes 43.5 days.
  869.  
  870. Were the tilde removed from the front of the Format List, the output
  871. would look like:
  872.  
  873.     The Critical Path takes CriticalPath days
  874.     The Critical Path takes 43.5 days
  875.  
  876. ====|====|====|====Example 3
  877. Use of the '\n' character pair in the format string can cause multiple
  878. lines to be output for each iteration.  Consider the format string:
  879.  
  880.    "Mtrx: %a1,%a2,%a3\n           %b1,%b2,%b3\n           %c1,%c2,%c3"
  881.  
  882. If we assume that all of the matrix elements are scheduled for
  883. recalculation or included by reference, the output of two iterations
  884. with this Format List might look like:
  885.  
  886.      Mtrx: a1,a2,a3
  887.            b1,b2,b3
  888.            c1,c2,c3
  889.  
  890.      Mtrx:32.0,31.5,14.1
  891.           21.1,17.5,21.4
  892.           3.5,1.2,2.3
  893.  
  894.      Mtrx:32.0,21.1,3.5
  895.           31.5,17.5,1.2
  896.           14.1,21.4,2.3
  897.  
  898.  
  899. ====Rules of Evaluation
  900. SpyderX allows the formula of one cell to contain references to other
  901. cells.  Such references can be resolved in one of two ways.
  902.  
  903. One method is to compute the values of the other cells and substitute
  904. them into the formula being computed.  In SpyderX, this is called a
  905. propagative rule of evaluation, because the calculation is propagated
  906. from one cell to another.
  907.  
  908. Another method is to substitute the last computed value for the referenced
  909. cell into the formula being computed.  The referenced cell is not computed,
  910. or if it is computed, the resulting value is not used at this time. This
  911. is called an iterative rule of evaluation, because it is frequently used
  912. in iterative calculations.
  913.  
  914. ====|====Propagative Evaluation
  915. The example below illustrates a simple application of the propagative
  916. rule of evaluation:
  917.  
  918. The web Example1 has two cells, a and b.  Their values and formulas
  919. are shown below:
  920.  
  921.     Web Example 1
  922.     Cell a value:3
  923.     Cell a formula:b-4
  924.  
  925.     Cell b value:blank
  926.     Cell b formula:13+4
  927.  
  928. When cell a is calculated using propagative evaluation, the b in its
  929. formula is resolved by computing a value for b, and substituting it
  930. into the formula for a.  When the computation is done, the value in
  931. b is 17, and the value in a is 13.  The new values of a and b are
  932. independent of their previous values.
  933.  
  934. In the web Example2, the formula in cell a contains a reference to
  935. the formula in cell b, and the formula in cell b contains a reference
  936. to the formula in cell a.
  937.  
  938.     Web Example 2
  939.     Cell a value:4
  940.     Cell a formula:b-1
  941.  
  942.     Cell b value:14
  943.     Cell b formula:a+2
  944.  
  945. When the formula for cell a is evaluated, the reference to b causes
  946. the program to first attempt to evaluate the formula in cell b.  The
  947. formula in cell b, in turn, requires an evaluation of the formula in
  948. cell a.  This computation cannot be carried out under the propagative
  949. evaluation rule.  This situation is called a circular reference error,
  950. and represents a built-in limitation of the propagative evaluation
  951. rule.
  952.  
  953. ====|====Iterative Evaluation
  954. The example below illustrates the iterative evaluation rule:
  955.  
  956. The web Example3 also has two cells, a and b, whose values and
  957. formulas are shown below:
  958.  
  959.     Web Example 3
  960.     Cell a value:14
  961.     Cell a formula:b-7
  962.  
  963.     Cell b value:21
  964.     Cell b formula:a+4
  965.  
  966.  
  967. When these cells are evaluated using an iterative evaluation rule,
  968. the calculation proceeds as follows:
  969.  
  970.     The old values of each cell are set aside for reference during
  971.     the calculation.
  972.  
  973.     To compute the value of cell a, the old value of cell b, 21, is
  974.     substituted into the formula for cell a to give 21-7 or 14.  The
  975.     new value is the same as the old value.
  976.  
  977.     To compute the value of cell b, the old value of cell a, 14, is
  978.     substituted into the formula for cell b to give 14+4 or 18.
  979.     The new value of b differs from its old value.
  980.  
  981. There is no circular reference problem since the old values of each cell
  982. do not change during the course of the calculation.
  983.  
  984. ====|====Specifying the Evaluation Rule
  985. The user must choose a default evaluation rule for each web.  To set
  986. the default evaluation rule, choose the 'Preferences' selection in
  987. the Special menu.  The Preferences dialog will appear:
  988.  
  989.     Preferences for:
  990.     * Output
  991.     * Numbers
  992.     * Calculation
  993.     * Searching
  994.     * Report
  995.  
  996. Choose 'Calculation' from the dialog and the 'Calculation
  997. Preferences' dialog will appear:
  998.  
  999.     Calculation Preferences
  1000.     * Recalc All Cells           <-No->
  1001.     * Calculation Results   <-FormattedList->
  1002.     * List Format             %month,%prin
  1003.     * Default Evaluation Rule <-Propagate-> 
  1004.  
  1005. Position to the fourth item in the dialog, and use the arrow
  1006. keys choose between 'Propagate' and 'Iterate'.
  1007.  
  1008. TIP: Use the propagative rule of evaluation unless you are sure
  1009. that you want to perform an iterative calculation.
  1010.  
  1011. ====SamplePropagative Rule Calculations
  1012. The examples which follow employ a propagative evaluation rule.
  1013.  
  1014. ====|====Circle
  1015. The area of a circle is easily computed in two cells:
  1016.  
  1017.     cellname           formula
  1018.      r                 (no formula...put value of radius in value field)
  1019.      AreaCirc          pi*r*r
  1020.  
  1021. The calculation is performed by positioning to the cell r, and entering
  1022. a value for the radius, and then positioning to the cell AreaCirc,
  1023. and choosing 'Evaluate' from the Special menu .  The user could avoid
  1024. having to position to the AreaCirc cell by utilizing the 'Calculation
  1025. Preferences' dialog to specify that all cells be computed.  It is not
  1026. necessary to include a cell with the value of pi since this value
  1027. (as well as the value for the base of the natural logarithm e) is built
  1028. into the SpyderX program.
  1029.  
  1030. ====|====Finance
  1031. The web called "Finance" allows you to compute the monthly payment
  1032. necessary to pay off a loan of a given amount, at a prescribed
  1033. interest rate, in a specified number of payments.
  1034.  
  1035. The Finance web uses cells with the following formulas to compute the
  1036. monthly payment:
  1037.  
  1038.     cellname       formula
  1039.      apr         (no formula... enter annual periodic interest rate)
  1040.      i           apr/12
  1041.      n           (no formula... enter number of monthly payments)
  1042.      power       pow(1+i,n)
  1043.      prin        (no formula... enter the beginning balance)
  1044.      pymt        prin*power*i/(1-power)
  1045.  
  1046. The user may use the following procedure to obtain a result from the
  1047. Finance web:
  1048.  
  1049.     1) Put the annual periodic interest rate into the value field
  1050.        of the apr cell.  Make sure that you use the decimal fraction
  1051.        (such as 0.075 for 7.5%).
  1052.  
  1053.     2) Put the beginning balance into the value field of the prin cell.
  1054.  
  1055.     3) Set the value of n to the total number of monthly payments.  This
  1056.        is twelve times the number of years that the loan is to run.
  1057.  
  1058.     4) Position to the pymt cell and select Evaluate from the Special menu.
  1059.  
  1060.  
  1061. ====|====Pert
  1062. One of the sample webs provided on the SpyderX distribution disk is
  1063. called Pert.  The Pert web describes the tasks involved in building
  1064. a small house, and organizes those tasks according to which may be
  1065. carried out concurrently.  There are three different paths through
  1066. the web of tasks, from start to completion.  The three different
  1067. paths may be browsed in the web by following hypertext links.  They
  1068. are also described in three summary cells called path1, path2, and
  1069. path3.  Those cells contain formulas which compute the total time
  1070. required to traverse the associated paths.
  1071.  
  1072.     cellname       formula
  1073.     path1            ClearLand+BuildFoundation+BuildUpperStructure+
  1074.                           PlumbingWork+CompleteInterior
  1075.     path2            ClearLand+BuildFoundation+BuildUpperStructure+
  1076.                           ElectricalWork+CompleteInterior
  1077.     path3            ClearLand+BuildFoundation+BuildUpperStructure+
  1078.                           CompleteExterior+Landscaping
  1079.  
  1080. By entering the estimated time it takes to complete each of the tasks
  1081. into each task's cell, the times taken for each path through the process
  1082. may be computed from the formulas.
  1083.  
  1084. Pert has another cell and formula:
  1085.  
  1086.     CriticalPath     max(path1,path2,path3)
  1087.  
  1088. When the web is positioned to the CriticalPath cell, and the 'Evaluate'
  1089. function is chosen from the Special menu, the time necessary to build
  1090. the house is placed into the value field of the cell CriticalPath.
  1091.  
  1092. ====Iterative Rule Calculations
  1093. In addition to the 'Calculation Preferences' dialog which is filled in
  1094. for propagative calculations, the user fills in an additional dialog
  1095. box when he or she selects the iterative evaluation rule.
  1096.  
  1097. If the user has chosen to recalculate all cells, and selected the
  1098. iterative evaluation rule, then the following dialog box appears
  1099. immediately after the Calculation Preferences dialog is dismissed:
  1100.  
  1101.     Iterative Calc Preferences:
  1102.      Number of Iterations  17
  1103.  
  1104. The box allows the user to enter the number of iterations that he or
  1105. she wishes to perform.
  1106.  
  1107. If the user chose not to recalculate all cells, and selected the
  1108. iterative evaluation rule, then the following dialog box appears 
  1109. immediately after the Calculation Preferences dialog is dismissed:
  1110.  
  1111.     Iterative Calc Preferences:
  1112.      Number of Iterations  17
  1113.      Recalc Referenced Cells  <-Yes->
  1114.  
  1115. In an iterative calculation, it is not necessary; and not always desirable,
  1116. to recalculate the value of every cell referenced from a formula whose
  1117. value is computed.  If you chose not to recalculate the value of all
  1118. cells, this dialog box gives you a further oportunity to fine tune the
  1119. selection of cells to be calculated.
  1120.  
  1121. The following sample webs illustrate the use of the iterative
  1122. evaluation rule:
  1123.  
  1124. ====|====Logistic
  1125. The emergence of chaotic dynamics from simpler behavior may be observed
  1126. in this example called the logistic map:
  1127.  
  1128.     cellname        formula
  1129.      r             (no formula...set this parameter to alter dynamics)
  1130.      x              r*x*(1-x)
  1131.  
  1132. To explore the behavior of this calculation, set the number of iterations
  1133. to 20 or so, set different values for r and x (make sure x is between
  1134. zero and one), go to cell x, and chose 'Evaluate' from the Special menu.
  1135.  
  1136. For a value of the parameter r of 0.4, and an initial x value of 0.7,
  1137. successive values of x approach zero and stay there.
  1138.  
  1139. For an r value of 2.4, and initial x value of 0.7, successive values
  1140. of x approach a constant 0.583
  1141.  
  1142. For r=3.0, and an initial x of 0.5, an extended damped oscillation
  1143. takes place between two values of x.
  1144.  
  1145. For r=3.5, initial x=0.7; an extended oscillation among four numbers
  1146. takes place.
  1147.  
  1148. For r=3.8, initial x=0.7; a chaotic sequence of numbers is the result.
  1149.  
  1150. ====|====Model
  1151. This web uses a simplistic mathematical model to simulate the way
  1152. the population of cougars and deer might vary over time in the
  1153. Rocky Mountain region.  The value pane of the cell Cougars gives
  1154. the number of mountain lions in a study area in a given period of
  1155. time.  The value pane of the cell Deer gives the simultaneous
  1156. population of Deer in the same area during that period.  The value
  1157. of the cell period counts the number of iterations computed.
  1158.  
  1159.     cellname       formula
  1160.      CConst         (no formula... simulation parameter)
  1161.      Cougars       Cougars+(CConst*Deer-DeathRate)*Cougars*StepSize
  1162.      DConst         (no formula... simulation parameter)
  1163.      DeathRate      (no formula... simulation parameter)
  1164.      Deer          Deer+(DGrowthRate-DConst*Cougars)*Deer*StepSize
  1165.      DGrowthRate    (no formula... simulation parameter)
  1166.      period        period+1     (initialize to zero)
  1167.      StepSize       (no formula... simulation parameter)
  1168.      
  1169. To use this simulation model, select initial values for Deer and
  1170. Cougars and simulation parameters, set up the web for an ample number
  1171. of iterations, and choose Evaluate from the Special menu.
  1172.  
  1173. A good place to start with the simulation parameters is the values
  1174. which came with the web.  Altering them by substantial amounts might
  1175. lead to results difficult to interpret. 
  1176.  
  1177. ====Overriding the Default Evaluation Rule
  1178. ====|====Motivation for Overriding
  1179. One of the primary reasons for using cellular calculation is that it
  1180. modularizes the computation.  Logically connected pieces of a formula
  1181. are grouped together in separate cells for easier understanding.
  1182. A propagative rule of evaluation combines the formulas from separate
  1183. cells into a seamless expression that is evaluated as if it were all
  1184. contained within one cell.
  1185.  
  1186. An iterative calculation has an entirely different purpose.  It aims
  1187. to use the same formula, applied repeatedly, to evolve or grow a numeric
  1188. result over time (or over the iterated parameter).
  1189.  
  1190. It is possible to take advantage of the modularization afforded by
  1191. the propagative rule, within a fundamentally iterative calculation.
  1192. SpyderX allows the user to do this by overriding the default iterative
  1193. rule in the evaluation of certain cell references.
  1194.  
  1195. ====|====How to Override
  1196. To force a cell reference to be evaluated using the propagative rule,
  1197. regardless of the default rule, place an exclamation point ('!')
  1198. immediately after the cell reference in a formula.  This will cause
  1199. that reference to the cell, and that reference only, to be evaluated
  1200. using the propagative rule.
  1201.  
  1202. ====|====An Instance Where Overriding is Useful
  1203. Consider the two cells described below:
  1204.  
  1205.     Web Example 4
  1206.     Cell x value:-30
  1207.     Cell x formula:x+10
  1208.  
  1209.     Cell y value:blank
  1210.     Cell y formula:sign(x)
  1211.  
  1212.  
  1213. The sign function returns a -1 if its argument is negative, a +1 if
  1214. its argument is positive, and zero, if its argument is 0.
  1215.  
  1216. What would you suppose the values of x and y would be through six
  1217. iterations if the default rule was iterative. (a propagative rule wouldn't
  1218. work since the formula for x refers to itself).
  1219.  
  1220.     For the first iteration, the value for x is computed to be -20, and
  1221.     the value for y is computed to by sign(-30) or -1.
  1222.  
  1223.     In the second iteration, the value for x is -20+10 or -10, and the
  1224.     value for y is sign(-20) or -1.
  1225.  
  1226.     Continuing in this vein, the output will be found to look
  1227.     something like:
  1228.  
  1229.         x,y
  1230.       -20,-1
  1231.       -10,-1
  1232.         0,-1
  1233.        10,0
  1234.        20,1
  1235.        30,1
  1236.  
  1237. This doesn't fit our picture of what the output of the function
  1238. y=sign(x) should look like.  The problem is that the new value of x
  1239. is being printed next to the value of y computed from the old value
  1240. of x.  To remedy this situation, and make the output better fit our
  1241. idea of the function y=sign(x), we can override the evaluation rule
  1242. for x in the formula for y:
  1243.  
  1244.     Web Example 5
  1245.     Cell x value:-30
  1246.     Cell x formula:x+10
  1247.  
  1248.     Cell y value:blank
  1249.     Cell y formula:sign(x!)
  1250.  
  1251. Now when we compute six iterations, the new value of x is sent to the
  1252. sign function each time, and so the results show the newest value
  1253. of x along with the sign function computed from that value of x.
  1254.  
  1255.       x,y
  1256.     -20,-1
  1257.     -10,-1
  1258.       0,0
  1259.      10,1
  1260.      20,1
  1261.      30,1
  1262.  
  1263. Although there need be no confusion in the user's mind resulting from
  1264. the output of the untweaked calculation, the second form of the
  1265. output might be more useful for export to other programs or computers.
  1266.  
  1267. ====Mixed Rule Calculations
  1268. The following are examples of iterative calculations in which
  1269. certain formulas use exclamtion points to override the default
  1270. rule when evaluating some cell references: 
  1271.  
  1272. ====|====Amort
  1273. This sample web uses an iterative technique to compute the approximate
  1274. principal balance, and amount paid in interest each month, given an
  1275. annual periodic interest rate, and the principal balance the previous
  1276. month.  The cells of the web (in addition to home), and the formulas
  1277. they contain are:
  1278.  
  1279.     cellname       formula
  1280.      apr            (No formula....constant entered by user)
  1281.      itm           mi!*prin
  1282.                     (monthly interest rate times last months principal)
  1283.      mi            apr/12  (annual periodic interest rate/12)
  1284.      month         month+1   (number of the month...start at 0)
  1285.      prin          prin+itm!-pymt  (principal at start of month)
  1286.      pymt           (No formula....constant payment amt entered by user)
  1287.  
  1288. The reference to mi in the formula itm, and the reference to itm
  1289. in the formula prin are overridden with the propagative evaluation rule
  1290. to make sure that the values of mi and itm are computed before they
  1291. are used on the first iteration of the calculation.
  1292.  
  1293. To use this web, put the beginning principal in prin, the annual
  1294. periodic interest rate, as a decimal fraction, into apr, the
  1295. monthly payment into pymt, and initialize the month to 0.  Set the
  1296. number of iterations somewhat larger than you expect the number of
  1297. months required to be, position to the prin cell, and choose 'Evaluate'
  1298. from the Special menu.  The monthly change in principal will be
  1299. displayed as the calculation progresses.  Negative amounts indicate
  1300. money accumulating rather than money being paid out.
  1301.  
  1302. It should be possible to verify the results created by the web
  1303. Finance by using the web Amort.
  1304.  
  1305.  
  1306. ====|====RKutta
  1307. There is a method of iteratively solving second order differential
  1308. equations which is called Runge-Kutta, probably named for a Mr. Runge
  1309. and a Ms. Kutta.  Whether they knew each other is not certain.  In
  1310. any event, if one applies their methods of solution to the
  1311. equation for simple harmonic motion;
  1312.  
  1313.     y''=-ay
  1314.  
  1315. one may obtain the following formulas, which we can program into a web:
  1316.  
  1317.     cellname      formula
  1318.       h             (no formula...value is set to stepsize)
  1319.       a             constant parameter chosen by user
  1320.       y             y+(k1!+4*k2!+k3!)/6
  1321.       yp           yp+(k1p!+4*k2p!+k3p!)/6
  1322.       k1           h*yp
  1323.       k2           h*(yp+k1p!/2)
  1324.       k3           h*(yp+2*k2p!-k1p!)
  1325.       k1p        -a*h*y
  1326.       k2p        -a*h*(y+k1!/2)
  1327.       k3p        -a*h*(y+2*k2!-k1!)
  1328.  
  1329. The default evaluation rule for the calculation should be set to
  1330. 'Iterate', and initial values chosen for y and yp.  Set a to
  1331. a positive value, and choose 'Evaluate' from the Special menu to
  1332. see a computed solution to this differential equation.
  1333.  
  1334. This method could be implemented, without overriding the default
  1335. evaluation rule, in just four cells: h, a, y, and yp.  First
  1336. the expression for k1 would have to be substituted into the
  1337. expressions for y, k2p and k3p.  Then the expression for k2 would
  1338. be substituted into the expressions y and k3p, and the expression
  1339. for k3 substituted into the expression for y.  Finally, all the
  1340. expressions for kNp's (N=1,2,3) would be substituted into the
  1341. formulas for y and yp.  If the resulting formulae did not exceed
  1342. the 512 byte limit on formulas, the calculation could be performed
  1343. without any k cells.
  1344.  
  1345. It is simpler, though probably less efficient, to have a cell for
  1346. each of the k's, and to override the default iterative evaluation
  1347. rule with exclamation points after all of the k's wherever they
  1348. appear in formulas.  
  1349.  
  1350. BUILT IN FUNCTIONS
  1351.  
  1352. We have seen in the examples some of the built-in functions supplied
  1353. by SpyderX.  In this section we list each built-in function, and any
  1354. information necessary for its use.
  1355.  
  1356. ====min(expr1,expr2,expr3,...)
  1357. This function returns the minimum of the values of the expressions
  1358. denoted by expr1, expr2, expr3, ...etc.
  1359.  
  1360. ====max(expr1,expr2,expr3,...)
  1361. This function returns the maximum of the values of the expressions
  1362. denoted by expr1, expr2, expr3, ...etc.
  1363.  
  1364. ====mean(expr1,expr2,expr3,...)
  1365. This function returns the arithmetic mean of the values of the
  1366. expressions denoted by expr1, expr2, expr3, ...etc.
  1367.  
  1368. ====abs(expr)
  1369. This function returns the absolute value of the expression denoted
  1370. by expr.
  1371.  
  1372. ====sign(expr)
  1373. This function returns +1 if the expression expr evaluates to a
  1374. positive value, -1 if it evaluates to a negative value, and 0 if
  1375. it evaluates to 0.
  1376.  
  1377. ====step(expr)
  1378. This function returns +1 if the expression expr evaluates to a
  1379. non-negative value (including 0), and 0 if it evaluates to a
  1380. negative value.
  1381.  
  1382. ====sig(expr)
  1383. This function returns the sigmoid logistic function of its
  1384. single expression argument:
  1385.  
  1386.                  sig(expr):= 1/(1+exp(-expr))
  1387.  
  1388. ====sin(expr)
  1389. This function returns the value of the sine of expr.  The value of
  1390. expr is assumed to be in the trigonometric units chosen in the
  1391. trigonometric units choice list of the 'Numbers Preferences' dialog
  1392. reached from the 'Preferences' choice in the Special menu.
  1393.  
  1394. ====cos(expr)
  1395. This function returns the value of the cosine of expr.  The value of
  1396. expr is assumed to be in the trigonometric units chosen in the
  1397. trigonometric units choice list of the 'Numbers Preferences' dialog
  1398. reached from the 'Preferences' choice in the Special menu.
  1399.  
  1400. ====tan(expr)
  1401. This function returns the value of the tangent of expr.  The value of
  1402. expr is assumed to be in the trigonometric units chosen in the
  1403. trigonometric units choice list of the 'Numbers Preferences' dialog
  1404. reached from the 'Preferences' choice in the Special menu.
  1405.  
  1406. ====asin(expr)
  1407. This function returns the value of the arcsine of expr.  The value
  1408. is returned in the trigonometric units chosen in the trigonometric
  1409. units choice list of the 'Numbers Preferences' dialog reached from
  1410. the 'Preferences' choice in the Special menu.  An invalid argument
  1411. will cause the value returned to be flagged "Not A Number".
  1412.  
  1413. ====acos(expr)
  1414. This function returns the value of the arccosine of expr.  The value
  1415. is returned in the trigonometric units chosen in the trigonometric
  1416. units choice list of the 'Numbers Preferences' dialog reached from the
  1417. 'Preferences' choice in the Special menu.    An invalid argument will
  1418. cause the value returned to be flagged "Not A Number".
  1419.  
  1420. ====atan(expr)
  1421. This function returns the value of the arctangent of expr.  The value
  1422. is returned in the trigonometric units chosen in the trigonometric
  1423. units choice list of the 'Numbers Preferences' dialog reached from
  1424. the 'Preferences' choice in the Special menu.  An invalid argument
  1425. will cause the value returned to be flagged "Not A Number".
  1426.  
  1427. ====sqrt(expr)
  1428. This function returns the non-negative square root of
  1429. the value of expr.
  1430.  
  1431. ====ln(expr)
  1432. This function returns the value of the natural logarithm of expr.
  1433. An invalid argument will cause the value returned to be flagged
  1434. "Not A Number".
  1435.  
  1436. ====exp(expr)
  1437. This function returns the value of e ( the base of natural logarithms)
  1438. raised to the power of expr.  An invalid argument or overflow will
  1439. cause the value returned to be flagged "Not A Number".
  1440.  
  1441. ====log(expr)
  1442. This function returns the value of the logarithm to the base 10
  1443. of expr.  An invalid argument will cause the value returned to be
  1444. flagged "Not A Number".
  1445.  
  1446. ====pow(expr1,expr2)
  1447. This function returns the value of the first argument raised to
  1448. the power of the second.
  1449.  
  1450. ====rand(expr)
  1451. This function returns a random number seeded by the value supplied
  1452. in expr.  The result will be a number in the interval [0,1).
  1453.  
  1454. MENUS AND PREFERENCES
  1455.  
  1456. ====SpyderX Menus
  1457. There are five SpyderX menus, called File, Edit, Cell, Browse, and Special.  The dialogs and functions invoked from these menus are described below:
  1458.  
  1459. ====|====File Menu
  1460. The File menu has three entries: New, Open, and SaveAs:
  1461.     *    New saves the contents of the current web, and creates a new,
  1462.          empty web with the name NEW.
  1463.     *    Open displays a dialog box into which the name of the file to
  1464.          be opened can be entered.  If the desired file is not in the
  1465.          \web\ directory, press TAB to enter the extended file open
  1466.          dialog.
  1467.     *    SaveAs displays a dialog box into which the name is entered
  1468.          under which the current web will be saved.  To save into a
  1469.          directory other than the current one, press TAB to enter
  1470.          the extended file dialog.  Once the target directory is
  1471.          located, press return to re-enter the dialog box for the
  1472.          file name.
  1473.  
  1474. ====|====Edit Menu
  1475. The entries in the Edit menu are Copy, Paste, Math, Text, and Find:
  1476.     *    Copy saves the current selection in the edit box to the
  1477.          clipboard. (Make a selection by holding down the shift key
  1478.          and moving the cursor to cover the text to be selected).
  1479.     *    Insert pastes the contents of the clipboard into the current
  1480.          cursor position.  There is no Delete in the edit menu.
  1481.          To delete the current selection in the edit window, press
  1482.          the Delete key.  The selected text will be removed from the
  1483.          edit window and saved in the clipboard.
  1484.     *    Bring checks to see if any other application capable of exporting
  1485.          text has a block of text selected.  If so, the most recent such
  1486.          selection is copied into the cursor position of the current
  1487.          pane of the current cell.  The selection is also pasted into
  1488.          to the clipboard for future Insert operations.
  1489.     *    Math causes the Math window of the current cell to be displayed.
  1490.     *    Text causes the Text window of the current cell to be displayed.
  1491.          On the S3a, pressing the diamond button toggles between the
  1492.          Text and Math windows.
  1493.     *    Find searches forward or backward for the next occurrence of
  1494.          the currently selected text.  If no text is selected, a dialog
  1495.          box appears, which allows the entry of the text to search for,
  1496.          as well as the preferred direction of search.
  1497.  
  1498. ====|====Cell Menu
  1499. The entries in the cell menu are Add, Delete, Goto, Linkto, Hunt, and
  1500. Unlink:
  1501.     *    Add asks for the name of the cell to add.  Press Esc to cancel
  1502.          the request.  Otherwise, enter the new cell name and press
  1503.          enter.  If a cell with the new name already exists, a dialog
  1504.          will inform you of the fact, and ask if you wish to see that
  1505.          cell.  Otherwise, the new, empty cell will be displayed.
  1506.     *    Delete causes the current cell and its contents to be deleted,
  1507.          unless it is the home cell.  The home cell cannot be deleted.
  1508.     *    Goto transfers to a different cell, without saving the current
  1509.          cell into the backtrack(see Unlink).  If there is a cell name
  1510.          selected in the current edit window, that is the cell to which
  1511.          a transfer is made.  If not, a dialog appears, asking for the
  1512.          name of the cell to go to.
  1513.     *    Linkto saves the current cell into the backtrack, and transfers
  1514.          to a different cell.   If there is a cell name selected in the
  1515.          current edit window, that is the cell to which a transfer is
  1516.          made.  If not, a dialog appears, asking for the name of the
  1517.          cell to go to.
  1518.     *    Hunt scans from the current cursor position forward, looking
  1519.          for a cell name. If it finds one, it saves the current cell
  1520.          in the backtrack, and transfers to the cell whose name was
  1521.          found.
  1522.     *    Unlink returns to the cell most recently added to the backtrack.
  1523.          If there is no cell on the backtrack, Unlink goes to the home
  1524.          cell.
  1525.  
  1526. ====|====Browse Menu
  1527. The cells in a web can be browsed in alphabetical sequence or reverse
  1528. alphabetical sequence by choosing Prev or Next from the Browse menu.
  1529.  
  1530. ====|====Special Menu
  1531. The entries in the Special menu are About, Evaluate, Report, Preferences, and Exit.
  1532.     *    About displays information about SpyderX.
  1533.     *    Evaluate causes a calculation to take place. Output destination,
  1534.          Number format, and type of calculation are controlled by options
  1535.          reached from the Option entry of the Special menu.
  1536.     *    Report causes a report of the contents of the cells to be issued.
  1537.          The destination of the report output, and the content and format
  1538.          of the report are controlled by the Report entry of the
  1539.          Preferences dialog.
  1540.     *    Preferences provides the means to control destination of output,
  1541.          format of numbers, type of calculation, Search direction, and
  1542.          report format.
  1543.     *    Zoom allows the user to adjust the font size on the S3a.
  1544.     *    Exit causes the SpyderX program to stop executing and return to
  1545.          the system screen.
  1546.  
  1547. SPYDERX PREFERENCES
  1548.  
  1549. The 'Preferences' entry in the Special menu opens a dialog box that
  1550. gives the user the opportunity to set five different classes of
  1551. parameters to control the operation of the program.  The five categories
  1552. are: Output, Numbers, Calculation, Searching, and Report.
  1553.  
  1554. ====Output Preferences
  1555. Output preferences govern the destination, and to some extent, the format
  1556. of the output of calculations and reports.  The three output options
  1557. are: Destination, Destination Name, and Newline Type.
  1558.  
  1559. ====|====Destination
  1560. Output destination can be set to Screen, Cell, or File.
  1561.     *    If the Destination is set to Screen, output from reports
  1562.          and calculations appears one screen at a time on the LCD.
  1563.          After each screen the user is prompted to enter ESC to abort
  1564.          the calculation or report, or any other key to continue it.
  1565.     *    If the Destination is set to Cell, output from the calculation
  1566.          or report is copied to the end of the text area of the cell
  1567.          specified in the Destination Name option.  Since the capacity
  1568.          of the text area of a cell is limited to 2048 bytes, the text
  1569.          area only retains the last 2048 bytes of any output directed
  1570.          to it.
  1571.     *    When the destination is set to File, the output from
  1572.          calculations and reports is directed to the file named in
  1573.          Destination name.
  1574.  
  1575. ====|====Destination Name
  1576. The Destination Name option provides a place for the user to enter
  1577. the cell or file name into which output from calculations or reports
  1578. is directed.  If the Destination name option is empty, or does not
  1579. contain a valid cell name when the Cell or File destination is
  1580. selected, output is directed to a cell or file called OUTPUT
  1581. (or OUTPUT.TXT).  If there is no cell (or file) called OUTPUT, one
  1582. is created.
  1583.  
  1584. ====|====Newline Type
  1585. The third Output Option is the Newline Type Option, which applies only
  1586. when the output destination is File.  The option lets the user choose
  1587. between newlines composed of linefeeds, or newlines composed of
  1588. carriage returns, followed by linefeeds.  The former option is
  1589. preferred when the files will not be exported to other computers.  The
  1590. latter option is preferable if the files will be exported to a
  1591. PC-compatible computer.
  1592.  
  1593. ====Numbers Preferences
  1594. Numbers options govern the format of calculation results, number of
  1595. decimal places, and units of angular measure..  The three Number
  1596. options are:  Format, Number Of Digits, and Trigonometry Units.
  1597.  
  1598. ====|====Format
  1599. The three Formats of numbers are General, Fixed, and Exponent:
  1600.     *    General numbers are floating point numbers with up to 15
  1601.          significant digits (a maximum of 24 digits overall)
  1602.     *    Fixed Numbers are fixed point numbers with the number of
  1603.          decimal places selected in the Number Of Digits option.
  1604.     *    Exponent Numbers are displayed in scientific notation with
  1605.          the number of significant digits specified in the Number of
  1606.          Digits option.
  1607.  
  1608. ====|====Number of Digits
  1609. The number of digits option describes the maximum number of significant
  1610. digits in General and Exponent numbers, and the number of decimal places
  1611. in the Fixed format numbers.
  1612.  
  1613. ====|====Trigonometry Units
  1614. The Trigonometry Units option can have the values of Degrees or Radians.
  1615. It governs the interpretation of arguments of trigonometric functions
  1616. and the presentation of results of inverse trigonometric functions.
  1617.  
  1618. ====Calculation Preferences
  1619. The Calculation Options are called: RecalcAllCells?, Calculation Results,
  1620. List Format, Default Evaluation Rule, Number of Iterations, and Recalc
  1621. Referenced Cells.  These preferences are thoroughly discussed elsewhere
  1622. in this manual.  They are mentioned here only briefly.
  1623.  
  1624. ====|====Recalc All Cells?
  1625. This preference allows the user to choose between calculating all cells
  1626. or a selected subset of the cells in a web.  For details on selection of
  1627. the cells to calculate, see the section of this file entitled
  1628. "Selection of Cells to Calculate".
  1629.  
  1630. ====|====Calculation Results
  1631. The CalculationResults Option refers to the manner in which results are
  1632. conveyed to the user.  The possibilities are GenericList, FormattedList,
  1633. and DontList.  The section entitled "Specifying Calculation Output"
  1634. contains a description of the differences between these choices.
  1635.  
  1636. ====|====List Format
  1637. The List Format string is used to describe how to present the output
  1638. of each iteration to the user.  See the section entitled "Specifying
  1639. Calculation Output" for complete information on the List Format.
  1640.  
  1641. ====|====Default Evaluation Rule
  1642. This is the preference which controls whether the iterative evaluation
  1643. rule is employed or not.  See the section entitled "Rules of Evaluation"
  1644. for a thorough discussion of this preference.
  1645.  
  1646. ====|====Number of Iterations
  1647. Number of Iterations is applicable only when Default Evaluation Rule
  1648. is set to Iterate.  It may be set to any value between 1 and 65535.
  1649.  
  1650. ====|====Recalc Referenced Cells
  1651. Choose yes if it is desired to recalculate all cells referenced by a
  1652. formula when the iterative evaluation rule is in effect.  Choose no if
  1653. this is unnecessary.
  1654.  
  1655. ====Search Preferences
  1656. When the user selects Find from the Edit menu, a search is performed
  1657. for selected text, or text specified in a dialog box.  The Search
  1658. preferences apply to the operation of the Find Request.  The available
  1659. options are:  Search For, Search Direction, and Case Sensitive?
  1660.  
  1661. ====|====Search For
  1662. This is the string for which a search is made when the Find choice
  1663. is selected from the Edit menu.  No wild card characters or regular
  1664. expression specifiers are accepted here.  Enter just the character
  1665. string for which you are looking.
  1666.  
  1667. ====|====Search Direction
  1668. The choices here are Forward and Backward.  When a direction is chosen,
  1669. the next search (Find) operation proceeds from the current cursor
  1670. position in the current field of the current cell, in the direction
  1671. indicated.  If a match is not found in the current cell, the search
  1672. continues into the next cell in the direction indicated.  The search
  1673. ends when either a match is found, or the search returns in a giant
  1674. circle to the beginning or end of the field in the cell in which it
  1675. began.
  1676. NOTE: When searching backward, an instance of the target which is
  1677. the last string in the text of formula field of a cell may be missed.
  1678. This problem will be repaired in a future release.
  1679.  
  1680.  
  1681. ====|====Case Sensitive?
  1682. If -Yes- is selected for this option, a match is declared only when
  1683. text matches as to characters and case of each character.  Otherwise,
  1684. a character match alone is sufficient.
  1685.  
  1686. ====Report Preferences
  1687. Report Preferences are Report On All Cells?, Report Type, and
  1688. ReportFormat:
  1689.  
  1690. ====|====Report On All Cells?
  1691. This option allows the user to choose whether to apply the report
  1692. function to all cells in the web, or to a selection of cells.  See
  1693. the section entitled "Specifying Report Output" for a complete
  1694. discussion of this preference and its application.
  1695.  
  1696. ====|====Report Type
  1697. This option allows the user to choose between four different types
  1698. of reports: Formatted, InPointers, OutPointers, and Trail reports.
  1699.  
  1700. ====|====Report Format
  1701. The Report Format string allows the user to specify the contents of
  1702. the formatted report generated for each selected cell.  The rules
  1703. governing the syntax and interpretation of the report format string
  1704. are discussed in the section entitled "Specifying Report Output".
  1705.  
  1706. ERROR CONDITIONS
  1707.  
  1708. ===="Not A Number" Results
  1709. Any time a calculation is performed, which results in a condition
  1710. that cannot be expressed as a numeric result, the value {NAN}
  1711. is returned to the value field of the formula being calculated.
  1712.  
  1713. To see this for yourself, enter the formula 12/0, and evaluate the
  1714. cell containing the formula.
  1715.  
  1716. If a cell contains a reference to a cell which returns a {NAN}
  1717. result, the referring cell will also have a {NAN} result after
  1718. it is evaluated.
  1719.  
  1720. ====Expression Syntax
  1721. Formulas are parsed whenever you exit a formula field, either to
  1722. go to another field within the same cell, or to go to another cell.
  1723. If there are blatant violations of the lexical rules at this time,
  1724. a message "Formula Error" will appear at the lower right hand
  1725. corner of the LCD screen.
  1726.  
  1727. When a formula is evaluated, there are several error messages that
  1728. can result.  These messages are listed below:
  1729.  
  1730. BAD IDENTIFIER IN FORMULA xxxx
  1731. One of the identifiers in the formula for the cell named xxxx is
  1732. neither a cell name nor a built-in function.
  1733.  
  1734. ILLEGAL CHARACTER IN FORMULA xxxx
  1735. There is a character in formula xxxx that is not permitted.
  1736.  
  1737. CIRCULAR REFERENCE IN FORMULA xxxx
  1738. The formula in cell xxxx contains a cell reference which is part
  1739. of a circular chain of cell references, which is not permissable
  1740. when the propagative evaluation rule is in effect.
  1741.  
  1742. MISSING PAREN IN FORMULA xxxx
  1743. There is a missing parenthesis in the formula of cell xxxx.
  1744.  
  1745. INVALID EXPRESSION IN FORMULA xxxx
  1746. Expression syntax is violated in the formula field of cell xxxx.
  1747.  
  1748. BUILTIN FUNCTION CALL ERROR IN FORMULA xxxx
  1749. There is a problem with a comma or parenthesis in a built-in function
  1750. reference in the formula field of cell xxxx.
  1751.  
  1752. BUILTIN FUNCTION ARG ERROR IN FORMULA xxxx
  1753. There is a problem with the number or type of arguments to
  1754. a built-in function in the formula field of cell xxxx.
  1755.  
  1756. PREMATURE TRUNCATION OF FORMULA xxxx
  1757. The formula field of cell xxxx ended before a complete
  1758. expression was parsed.
  1759.  
  1760. ====Out of Memory
  1761. When SpyderX writes a web to a disk, it writes it
  1762. first as a temporary file, called temp.tmp, and then
  1763. renames the temporary file to the name of the web.
  1764.  
  1765. If a memory shortage prevents the entire web from 
  1766. being written, the update is not completed, and the
  1767. old version of the web remains on the disk.
  1768.  
  1769. When SpyderX cannot obtain needed memory from the
  1770. operating system, it issues the message below:
  1771.  
  1772.        Out of Memory-- To Insure web is saved,
  1773.              free space before exiting.
  1774.  
  1775. and gives the user two options:
  1776.  
  1777.        EXIT NOW    or    I'LL FREE SPACE
  1778.  
  1779. If you choose EXIT NOW, SpyderX will attempt to save
  1780. the web, and then exit.  With good luck, the web
  1781. will be saved in its entirety.  If there is not
  1782. sufficient memory, the contents of the web will
  1783. be lost.  If you choose I'LL FREE SPACE, SpyderX
  1784. allows the program to continue running to give you
  1785. an opportunity to create space on your internal disk
  1786. drive by deleting files that are not associated with
  1787. the current web.  If you know of some storage you can
  1788. liberate, choose the latter option, but be careful.
  1789. SpyderX will be running in a memory-limited condition,
  1790. and could crash at any time. Exit as soon as you have
  1791. freed enough memory.
  1792.  
  1793.  
  1794. LIMITS, WARRANTIES, AND SUPPORT
  1795.  
  1796. ====Program Limits
  1797. The following limits apply to version 1.1 of SpyderX:
  1798.  
  1799.     Maximum Size of a Cell Name:           128        
  1800.     Maximum Characters in a Text Pane:        2047
  1801.     Maximum Characters in a Value Pane:        255
  1802.     Maximum Characters in a Formula Pane:      511 
  1803.     Maximum Number of digits in a number:       24
  1804.     Maximum Significant digits in a number:     15
  1805.     Maximum Number of Cells:                 limited by 64K
  1806.                                              program data
  1807.                                              data segment size.
  1808.  
  1809. ====Warranty, License, Registration, and Distribution
  1810.  
  1811.  
  1812.          LIMITED WARRANTY AND DISCLAIMER OF WARRANTY 
  1813.  
  1814. THIS SOFTWARE AND ACCOMPANYING WRITTEN MATERIALS (INCLUDING
  1815. INSTRUCTIONS FOR USE) ARE PROVIDES "AS IS" WITHOUT WARRANTY OF
  1816. ANY KIND. FURTHER, NEITHER EIEIO NOR DAVID CLIFTON PROVIDES ANY
  1817. WARRANT, GUARANTEE, OR MAKES ANY REPRESENTATIONS REGARDING THE
  1818. USE, OR THE RESULTS OF USE, OF THE SOFTWARE OR WRITTEN MATERIALS
  1819. IN TERMS OF CORRECTNESS, ACCURACY, RELIABILITY, CURRENTNESS,
  1820. OR OTHERWISE. THE ENTIRE RISK AS TO THE RESULTS AND PERFORMANCE
  1821. OF THE SOFTWARE IS ASSUMED BY YOU. IF THE SOFTWARE OR WRITTEN
  1822. MATERIALS ARE DEFECTIVE YOU, AND NOT EIEIO OR ITS DEALERS,
  1823. DISTRIBUTORS, AGENTS, OR EMPLOYEES, ASSUME THE ENTIRE COST OF ALL
  1824. NECESSARY SERVICING, REPAIR, OR CORRECTION.
  1825.  
  1826. THE ABOVE IS THE ONLY WARRANTY OF ANY KIND, EITHER EXPRESS OR
  1827. IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES
  1828. OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, THAT
  1829. IS MADE BY EIEIO OR DAVID CLIFTON, ON THIS PRODUCT.  NO ORAL OR
  1830. WRITTEN INFORMATION OR ADVICE GIVEN BY DAVID CLIFTON, EIEIO, ITS
  1831. DEALERS, DISTRIBUTORS, AGENTS OR EMPLOYEES SHALL CREATE A WARRANTY
  1832. OR IN ANY WAY INCREASE THE SCOPE OF THIS WARRANTY AND YOU MAY NOT
  1833. RELY ON ANY SUCH INFORMATION OR ADVICE. YOU MAY HAVE OTHER RIGHTS
  1834. WHICH VARY FROM STATE TO STATE. 
  1835.  
  1836. NEITHER EIEIO NOR ANYONE ELSE WHO HAS BEEN INVOLVED IN THE CREATION,
  1837. PRODUCTION OR DELIVERY OF THIS PRODUCT SHALL BE LIABLE FOR ANY DIRECT,
  1838. INDIRECT, CONSEQUENTIAL OR INCIDENTAL DAMAGES (INCLUDING DAMAGES FOR
  1839. LOSS OF BUSINESS PROFITS, BUSINESS INTERRUPTION, LOSS OF BUSINESS
  1840. INFORMATION, AND THE LIKE) ARISING OUT OF THE USE OR INABILITY TO USE
  1841. SUCH PRODUCT EVEN IF EIEIO OR DAVID CLIFTON HAS BEEN ADVISED OF THE
  1842. POSSIBILITY OF SUCH DAMAGES.
  1843.  
  1844. This Limited Warranty shall be governed and construed in accordance
  1845. with the laws of the State of Colorado. 
  1846.  
  1847.                            ACKNOWLEDGMENT
  1848.  
  1849. BY USING THE SHAREWARE VERSION OF SPYDERX YOU ACKNOWLEDGE THAT YOU HAVE
  1850. READ THIS LIMITED WARRANTY, UNDERSTAND IT, AND AGREE TO BE BOUND BY ITS'
  1851. TERMS AND CONDITIONS. YOU ALSO AGREE THAT THE LIMITED WARRANTY IS THE
  1852. COMPLETE AND EXCLUSIVE STATEMENT OF AGREEMENT BETWEEN THE PARTIES AND
  1853. SUPERSEDES ALL PROPOSALS OR PRIOR AGREEMENTS, ORAL OR WRITTEN, AND ANY
  1854. OTHER COMMUNICATIONS BETWEEN THE PARTIES RELATING TO THE SUBJECT MATTER
  1855. OF THE LIMITED WARRANTY.
  1856.  
  1857.                              LICENSE
  1858.  
  1859. You may use the shareware version of SpyderX for a 30 day trial period.
  1860. If you would like to continue to use SpyderX after the 30 day trial
  1861. period, you are required to register as a user of SpyderX, and pay the
  1862. registration fee.  If you choose not to register or pay, you must 
  1863. remove SpyderX from your computer.
  1864.  
  1865. You may distribute evaluation copies of SpyderX to other persons or
  1866. organizations, provided such distribution takes place in accordance
  1867. with the provisions of the DISTRIBUTION paragraphs below.
  1868.  
  1869.  
  1870.                             REGISTRATION
  1871.  
  1872. The registration fee for SpyderX is $33.  For this price, you will
  1873. receive a diskette with the latest shareware version of SpyderX, the
  1874. printed user's manual, a key to disable registration reminders,
  1875. a phone number to call for support during specified hours, and a
  1876. collection of sample webs.
  1877.  
  1878. In addition, when you register version 1.3 of SpyderX, you will
  1879. receive a copy of SpyderT, the world's simplest hypertext notepad.
  1880. SpyderT provides the hypertext editing and reporting capability
  1881. of SpyderX, without the ability to perform calculations.  At 30 K bytes,
  1882. SpyderT is considerably smaller than SpyderX, yet it still allows
  1883. the user to take linked notes, cross-reference them, and report on
  1884. their contents.  Like SpyderX, SpyderT runs on both the Psion 3
  1885. and the Psion 3a.
  1886.  
  1887. You can register SpyderX using the Compuserve shareware registration
  1888. service, via credit card through North Star Solutions' shareware 
  1889. registration service, or by sending cash to the author.  For details
  1890. on ordering and payment, see below:
  1891.  
  1892.                        ORDERING AND PAYMENT
  1893.  
  1894. METHOD 1:  Compuserve shareware registration service
  1895.  
  1896. Log onto Compuserve and go to shareware registration under the 
  1897. computers menu (GO SWREG).  Access the registration database with
  1898. the program name, SpyderX, or the registration number 5574.  Indicate
  1899. the desired diskette type (MAC or PC) by including the words '(MAC)'
  1900. or '(PC)' on one of the address lines you enter.  (The parenthesized
  1901. word will be removed from the address line when your registration
  1902. packet is mailed).
  1903.  
  1904.  
  1905. METHOD 2:  By credit card through North Star Solution's
  1906.            Shareware Registration Service
  1907.  
  1908. You can order registration packets with Visa or MasterCard credit cards
  1909. from North Star Solutions shareware registration service.  Simply contact
  1910. North Star Solutions via any of the following methods:
  1911. Voice: 1-800-699-6395(10:00am-10:00pm,EST. Calls from US only.)
  1912.        1-800-699-6395(10:00am-10:00pm, Eastern Standard Time)
  1913. FAX: 1-803-699-5465(Available 24 hours.
  1914.     (International and Business Orders encouraged)
  1915. E-mail: CIS   71561,2751    Internet 71561.2751@compuserve.com
  1916.     (International and Business Orders encouraged)
  1917. Please have the following information ready:
  1918. *  The program and version number ( SpyderX v1.3 )
  1919. *  Where the registration packet should be mailed
  1920. *  Your VISA or MasterCard number and expiration date
  1921. *  Whether you want a MAC or a PC diskette (3.5 inch drives only)
  1922.  
  1923. IMPORTANT NOTES:
  1924. 1)  North Star processes registrations only, please contact the
  1925. author at 71270.1441@compuserve.com or eieio@ix.netcom.com for any
  1926. product information or technical support.
  1927. 2)  E-mailed and FAXed registrations are encouraged, but all registrations
  1928. are very much appreciated!
  1929.  
  1930.  
  1931. METHOD 3:  By sending cash to the author.
  1932.  
  1933. Send your mailing address, whether you want a MAC or a PC diskette,
  1934. and $33 to the address below:
  1935.     EIEIO
  1936.     P.O. Box 1086
  1937.     Niwot, CO 80544
  1938.     U.S.A.
  1939. Send cash in the form of U.S. dollars, a check drawn on a U.S. bank
  1940. (MICR code on the bottom), or International Money Orders for $33 (U.S.).
  1941. Add a 25% premium over the exchange rate if you send Canadian checks
  1942. in Canadian dollars, or major currencies (Pounds, Marks, Francs, or Yen).
  1943.  
  1944.  
  1945.                              DISTRIBUTION
  1946.  
  1947. You are encouraged to pass a copy of the shareware version of SpyderX
  1948. along to your friends for evaluation.  If you do so, you must provide
  1949. them with the entire set of SpyderX shareware version files. These include:
  1950.  
  1951.     README.TXT
  1952.     SPYDERX.APP
  1953.     VENDOR.DOC
  1954.     FILE_ID.DIZ
  1955.     AMORT.WEB
  1956.     CIRCLE.WEB
  1957.     FINANCE.WEB
  1958.     LOGISTIC.WEB
  1959.     MODEL.WEB
  1960.     PERT.WEB
  1961.     PIGGY.WEB
  1962.     QUOTES.WEB
  1963.     RKUTTA.WEB
  1964.     HEBB.WEB
  1965.     WEBSITES.WEB
  1966.  
  1967. Alternatively, you may provide the .ZIP file which contains the files
  1968. listed above in compressed format.
  1969.  
  1970. If you intend to charge for distribution, you must adhere to the
  1971. requirements of the vendor.doc file.
  1972.  
  1973. The SpyderT program is given away as a premium for registering SpyderX.
  1974. It is neither shareware, nor public domain.  If you have a copy of the
  1975. SpyderT program, please do not upload or give it away. Distribute the
  1976. SpyderX program instead.  It has all of the features of the SpyderT
  1977. program, plus the ability to perform iterative, cellular calculations.
  1978.  
  1979.                         OBTAINING SUPPORT
  1980.  
  1981. You may send messages, reports, and requests for information
  1982. to David Clifton at either of the two E-Mail addresses below:
  1983.  
  1984.     eieio@ix.netcom.com
  1985.     71270.1441@compuserve.com
  1986.  
  1987. In addition, registered users may obtain phone support during
  1988. a selection of evening hours on weeknights.
  1989.  
  1990.