SPYDERX

8baacf30a349a5fd62541ddf0184ae513366b7f794ceb58da856d1b7d619f318

README
README.TXT for SPYDERX Version 1.4 DEFINITION OF SHAREWARE Shareware distribution gives users a chance to try software before buying it. If you try a Shareware program and continue using it, you are required to register it. Copyright laws apply to both Shareware and retail software, and the copyright holder retains all rights, with a few specific exceptions as stated below. Shareware authors are accomplished programmers, just like retail authors, and the programs are of comparable quality. (In both cases, there are good programs and bad ones!) The main difference is in the method of distribution. The author specifically grants the right to copy and distribute the software, either to all and sundry or to a specific group. For example, some authors require written permission before a commercial disk vendor may copy their Shareware. Shareware is a distribution method, not a type of software. You should find software that suits your needs and pocketbook, whether it's retail or Shareware. The Shareware system makes fitting your needs easier, because you can try before you buy. And because the overhead is lower, prices are lower also. Shareware has the ultimate money-back guarantee -- if you don't use the product, you don't pay for it. WHAT IS SPYDERX? SpyderX provides you with the ability to create hyptertext webs of cells containing text and mathematical expressions; and to use those webs to store data, solve problems, and support your own creative process. A few of the many possible applications for SpyderX are: hypertext notepad and database, job cost estimator, scheduling tool, financial modeling tool, dynamic system simulator, user interface design tool, numerical differential equation solver, semantic network modeler, requirements analysis tool, contingency planner, decision support system, taxonomy assistant, and help system host. Each cell in a SpyderX web contains a name, a text field, a value field, and a formula field. References to other cells, which appear in any field of a cell, may be used as hot-links to those cells. Cells may refer to themselves, making possible cycles of hypertext reference, and iterative calculations. Output of the program includes results of calculations and reports of cell contents, and may be directed to the LCD display, the text field of a cell, or to a file in memory, which may be uploaded to a desktop computer for further analysis or printing. This version of SpyderX, version 1.1, runs on a Psion Series 3 or 3a. WHOM IS SPYDERX FOR? SpyderX was developed by an engineer and software developer for engineers, scientists, and software developers. It supports, on a palmtop computer, common design, modeling, estimating, scheduling, and computing needs of people who deal with complex subjects, systems, and interactions. A certain amount of practice is necessary to realize the maximum benefit from the program. This practice develops skills for navigating hypertext webs, and promotes a cellular perspective on problems and systems. NEW IN VERSION 1.3 Version 1.3 fixes a bug that cropped up in version 1.2, which prevented the registration key from having an effect on the display of reminders to register. Also in version 1.3, the reporting function is expanded to include InPointer and OutPointer reports, and well as a Trail report. The pointer reports are vital for cross referencing complex webs, such as program structure charts, hierarchic state machine descriptions, and Pert graphs. The trail report allows the user to obtain a history of the cells which have been entered via a Linkto command. SpyderX now can serve as a link/paste client via the "bring" command. Unfortunately, it cannot yet be a server. That feature must wait on a change of underlying software libraries. Finally, the size of SpyderX was reduced by 15%, and its speed was increased somewhat. Current users will probably notice the difference. VERSION 1.3a -- MAINTENANCE RELEASE Fixed a bug which caused the formula field of the home cell to be cleared when a web was loaded. VERSION 1.4 -- MAINTENANCE RELEASE Fixes a bug introduced in version 1.3a which made new cells invisible to formulas until the formulas were changed. INSTALLING SPYDERX 1. Before installing SpyderX on your Psion 3 or 3a, create a \web\ directory. This is where the program will keep its data files, unless you direct it to store them elsewhere. 2. If you have no \app\ directory on your Psion, create one to hold the Spyder executable. 3. Use PKUNZIP or equivalent to decompress the SpydrX.zip file into SpyderX.app, this Readme.txt file, and a collection of sample webs, labeled *.web. 4. Use MCLINK, WINLink3, PsiWin or some other PSION remote file transfer program to copy SpyderX.app to the \app\ directory on your chosen solid state disk drive. 5. Then transfer the sample webs to the \web\ directory that you created in step 1. 6. Choose Install from the Apps menu of the system screen, and select SpyderX for installation. 7. If all goes well, the SpyderX icon will appear on the desktop, along with sample webs which you copied to the \web\ directory. 8. Try the simple tutorial in the next section of this Readme file. FIRST TUTORIAL If SpyderX was sucessfully installed, there will be several sample webs to choose from under the SpyderX icon (A spider hanging from a thread). ====Piggy Select the web called "Piggy" and press return. Your Psion should display a window divided into two panes by a horizontal line. The top pane, the narrow one, contains the words "PIGGY--home". This is the name pane, a read-only pane, whose leftmost word is the name of the web, and whose rightmost word is the the cellname (home). The larger pane is the text pane. It contains an edit box in which text may be entered into the text field of the currently displayed cell. Every SpyderX web contains a "home" cell, which is diplayed on entry to the web; and which cannot be deleted. The text area of the home cell is frequently used to describe the purpose of the web, and to present a simple map of its contents. This information is supplied for the Piggy web, as you can verify by using the arrow keys to scroll through the text field of the cell. ====|====Browsing the Web Press the menu button and you will see in the menu bar an entry called 'Browse'. Select that entry and the two choices 'Prev' and 'Next' are displayed with their accelerators PSION+ and PSION-. Use the accelerators to browse the Piggy web, returning to the point from which you began. You will notice that the cells in the web appear in alphabetic order when browsed, and that browsing forward from the last cell in sequence returns you to the first cell in sequence. ====|====Changing the Current Cell Aside from browsing, there are three other methods of moving from one cell to another. These methods are: 'Linking' to a cell, 'Going' to a cell, and following a hypertext link. The next three short paragraphs describe how to perform each operation. ====|====|====Linking to a Cell When you 'link' to a cell, you transfer to that cell with the expectation of returning to the current cell. To try this, choose 'Linkto' from the Cell menu, and enter the name of the cell 'pennies' into the dialog box that appears. When you press enter, the screen should show the 'pennies' cell. Return to the cell you left by pressing Esc, or choosing 'Unlink' from the Cell menu. ====|====|====Going to a Cell When you 'go' to a cell, you transfer to that cell with no expectation of returning to the current cell. To try this, choose 'Goto' from the Cell menu, and enter the cell name 'dimes' into the dialog box that appears. When you press enter, the screen should show the 'dimes' cell. You will have to 'browse' your way back to the cell you left. ====|====|====Hypertext Links Wherever the name of another cell appears in the text pane of the current cell, you can use that name as a hypertext link to the other cell. In Piggy, hypertext links to other cells are marked by preceding them with ampersands (&). This convention is unnecessary for the functioning of the links, but it makes it easier to navigate the web. To follow a hypertext link, position the cursor in the text stream a bit before the link, and select 'Hunt' from the Cell menu. SpyderX will scan forward within the current cell until it finds a valid link, and then transfer to the cell named in that link. The destination cell will replace the one currently shown. To return to the previous cell, press the Esc key, or select 'Unlink' from the Cell menu. NOTE: Whenever the name of a cell is typed into an edit pane, it automatically becomes a hypertext link to that cell. ====|====The Math Window In addition to the text window, each cell also has a math window, which you may see by choosing 'Math' from the Edit menu, or by using the diamond key on the 3a. The math window is divided into three panes. The top one, as before, is the name pane, a read-only pane which contains the name of the web followed by the name of the currently displayed cell. The middle pane is the value pane. Into this pane are entered values which one wishes to associate with the cell; and from this pane may be read the results of calculation, the latest value of the cell. The bottom pane is the formula pane. It contains an edit box, into which a formula may be entered for the calculation of the value of this cell. The formula is an arithmetic expression which may employ cell names and built-in functions to compute a new value for the cell in which it appears. NOTE: You can transfer between panes with the TAB key. NOTE: Cell names in formulas may be used as hypertext links to other cells in the say way as cell names in text fields. ====|====Calculating a Result Next we will see how a web can be used to calculate values of interest. In this case, our net worth, or the sum of the coins in our piggy bank is the value of interest. Select the Math window, and use the browse accelerators PSION+ or PSION- to traverse the cells of the PIGGY web. Notice that most of the cells have names corresponding to the names of denominations of US coinage. Enter into the value field of each cell whose name is a denomination of coinage, the total number of coins of that denomination which you have on hand. (Use TAB to position the cursor to the value field). Then choose 'Evaluate' from the Special Menu. Unless the Calculation options have been changed since you installed PIGGY, you should see a line of text such as the one below: Piggy contains $74.13 The format of the output is controlled by the Calculation Preferences which may be reached from the 'Preferences' selection in the Special menu. Notice also that the value in the cell 'piggy' has changed to the same value as the one listed. ====|====Reporting on Cell Contents To see an alphabetic list of all the cells in the PIGGY web, together with the value of each cell, you may select 'Report' from the Special menu. The following list should appear (your values may be different): dimes 231 half_dollars 43 home nickels 242 pennies 1343 piggy 74.13 quarters 0 silver_dollars 4 If you did not get such a list, it may be because you changed the Report preferences accessible from the 'Preferences' entry of the Special menu. SECOND TUTORIAL Our goal for this tutorial is to create a new, empty web, to add cells to it, and to create links between the cells. To this end we will make a web which lists the names and addresses of several people we know, and also add a bit of useful information not usually found in such a list. ====Making an Empty Web Enter SpyderX with an existing web. Then choose 'New' from the File menu. SpyderX will respond by showing you the home cell of a web named NEW. Browsing forward or backward, you will see that home is the only cell in the web. ====Adding Cells A new cell may be inserted into our web by using the 'Add', 'Linkto', or 'Goto' commands in the Cell menu. For now choose 'Add', and answer the dialog with the name of someone with whom you are friendly or acquainted. If the "Bad Cell Name" dialog appears, it is probably because you left a space between the person's first and last name. Cell names may not have spaces in them; but it is OK to use the underscore character in place of the space you would normally use. (Some software types like to jam words up together and indicate separate words by the use of capitalization, as in WhatsInAName). If you repair this defect, and still get the "Bad Cell Name" dialog, it may be because your friend's name begins with a number, such as '3Cpo', or a special character, as in '#Sterling'. All cell names must begin with an alphabetic character. If there is no cell which has the name you entered, one is created. You may type in whatever information you wish about this person, including, for example: address, phone number, height, weight, and number of outstanding parking tickets. Keep in mind that you will be able to use the 'Find' command in the Edit menu to search your web on the information which you have entered. Repeat the process of adding cells with names of associates until you have entered several persons into the little database. Next we will enter connections between the people in the web. ====Connecting the Cells Goto, Linkto, or Browse to the cell for the first person you entered, and enter the text field for that person. Scroll down to the bottom of the text field, start a new line, and enter the words: TALKS TO: Then enter the names of persons with whom you know that this person communicates on a daily basis. If the person involved is already in your database, make sure you spell the name the same way as it appears in the cell name. If the person involved is not already in your database, you may want to considering entering the person. Go through the cells of the database, adding the links wherever you know them to exist, and adding persons where it seems appropriate. When you finish, you will not only have a list of acquaintances and whatever information you wish to keep about them; you will also have a map of information flow among your associates. By setting the report preferences to InPointers or OutPointers and choosing Report from the Special menu, you can see a report on this information flow. If you are like many engineers, you probably don't care how information travels among your associates. Nevertheless, the exercise can be useful. If you tell a fascinating fact to one of the persons in your database, you can use the connections to predict who will know that fact after a day or so. The point here is that we are in the habit of thinking about the objects in our databases, whereas we might benefit from thinking as well about the connections between them. With SpyderX, this is easy to do. ====Searching the Web In addition to following chains of links which you type into the text field of the web, you can use the 'Find' function in the Edit menu to go to the next cell having a specified text string, or to the closest previous cell having a specified text string. Your search may be case sensitive or not. You may set default search preferences by obtaining the Preferences dialog (choose Preferences from the Special menu), and then choosing 'Searching' from that dialog. ====Saving the Web To save the database you have made, choose 'Save As' from the File menu, and answer the dialog with the name you have chosen for your web. You may include, or not include the suffix 'web', as you wish. If you use another suffix, the web will be saved with that suffix. SPYDERX OUTPUT ====Purpose of SpyderX's Output SpyderX is a personal, portable scratchpad for thinking about complex phenomenon, systems, and relationships. It is not intended to communicate the results of that thought to others. SpyderX does not generate elaborate reports, or visualize the result of mathematical calculations. Instead it provides flexible, primitive tools to format output and results in a way that can be understood by the user, and transferred to other programs or computers for further analysis. ====Kinds of Output The next two subsections describe the kinds of output generated by the SpyderX program. Subsequent sections will introduce further information on the mechanics of controlling that output. ====Report Output The SpyderX 'Report' entry, in the Special menu, permits the user to select some or all of the name, text, formula, or value information in some or all of the cells, and format it into simple ASCII text streams which are conveyed to the current output destination of the program. This feature permits the user to create indexes of webs, list for analysis the formulas involved in a web, perform complex recombinations of cell contents, dump web contents to files for upload to a host computer, and to generate so-called "comma-separated text" files for exporting SpyderX data to databases and other programs. Also available are cross-reference reports called "InPointers" and "OutPointers", which assist in understanding the structure of a web; and the report called "Trail", which may be used to keep track of your current hierarchic position resulting from a sequence of "linkto" or "hunt" requests. ====Calculation Output For calculations, the user may choose between no output, generic output, and formatted output. ====|====No Output If the user chooses no output, no results will be directed to the current output destination, although the value fields of affected cells will change. ====|====Generic Output Generic output consists of a title line containing a list of all the cells accessed in a calculation; followed by one line for each iteration of the values of each of those cells at the end of the iteration. Below is a sample of generic output for an iterative calculation: apr,month,itm,prin,pmyt 0.075,1,137.09,21593.41,481 0.075,2,134.96,21249.51,481 0.075,3,132.81,20903.46,481 0.075,4,130.65,20555.27,481 0.075,5,128.47,20204.92,481 0.075,6,126.28,19852.39,481 0.075,7,124.08,19497.67,481 ........................... ====|====Formatted Output Formatted output consists of a title line derived from a format string, followed by one line per iteration of the values of cells specified in the format list, separated by other characters included in the format list for the purpose of clarifying the meaning of the values. One might format the output for the calculation whose generic output is shown above, to read as follows: for month 1, principal remaining is 21593.41 for month 2, principal remaining is 21249.51 for month 3, principal remaining is 20903.46 for month 4, principal remaining is 20255.27 for month 5, principal remaining is 20204.92 for month 6, principal remaining is 19852.39 ............................................ ====Choosing Output Destinations Output of reports or calculations may be directed to the screen, to a cell within the web, or to a file in the Psion's memory. To set the output destination, select the 'Preferences' entry in the Special menu. A dialog menu with the following contents will appear: Preferences for: * Output * Numbers * Calculation * Searching * Report Choose the 'Output' choice to reach the Output Preferences dialog, which contains the following contents: Output Preferences: * Destination <- File -> * Dest Name mugga * Newline Type <- CRLF -> When output is directed to the screen, it is displayed one screen at a time, with a prompt required before the next screen is displayed. When output is directed to a file or to a cell, the name of the file or cell is entered by typing it into the Dest Name field of the dialog. When output is directed to a file, the type of newline generated can be controlled by the third entry in the Output Preferences dialog. If the output will be exported to an IBM compatible computer, it is a good idea to use the 'CRLF' option for newline. If the output will remain on the Psion, or will be exported to a Macintosh or Unix computer, the LF option works better. TIP: By choosing 'Cell' for the destination, and by carefully setting the report format, the user can generate a handy index of the web within the cell named in the dialog box. The index will be particularly useful since all cell names output by the report are automatically hypertext links to the cells which they represent. REPORTING CELL CONTENTS ====Specifying Report Output To specify what information will appear in Report output; select the Special menu, and choose the 'Preferences' entry. The Preferences dialog (shown above) will appear. Select 'Report' from that dialog, and the Report Preferences dialog will appear: Report Preferences * Report on All Cells? <-Yes-> * Report Type <- Formatted -> * Report Format \n\N\n\V\n\F\n\T The first question in the dialog tells SpyderX whether or not to report on all cells. The second tells it what kind of report to generate. The third tells it which information to include for each cell in a formatted report, if that is the type of report that is selected. ====|====Report Cell Selection Answering Yes to the "Report on All Cells?" question will assure that when the user elects to generate a report, all of the cells in the web will be reported, according to the format specified. Answering No will cause the report function to select a subset of the cells in the web. The subset of cells selected for reporting depends upon an algorithm executed by the report function. If there is a highlighted text selection in the active edit box at the time a report is requested, SpyderX will scan that selection for valid cell names, and generate a report on all the cells named in that selection, in the order in which they appear. If there is no highlighted selection in the active edit box, SpyderX will generate a report on the current cell only. ====|====Report Type There are four types of reports. They are the Formatted report, the InPointers report, the OutPointers report, and the Trail report. ====|====|====The Formatted Report The appearance of a formatted report depends upon the content of the Report Format string in the Report Preferences dialog. If nothing is entered in the report format string, no output will be generated when Report is chosen from the Special menu. If the report format string is not empty, then choosing Report from the Special menu will cause that string to be scanned and interpreted for each cell in the selected cell list. When the report format string is interpreted for a cell, most characters in the string are copied directly to the output destination. Substitutions are made; however, for character pairs which begin with the backslash (\). The substituted text is copied to the output in the place of those character pairs. Character pairs for which substitutions are made during interpretation of the report format string are: '\n' A newline sequence is copied to the output in the place of a backslash followed by a lower case n. '\N' When upper case N appears in the report format after the backslash character, the report generator substitutes for the pair of characters the name of the cell for which the format string is being interpreted. '\V' Backslash-V causes the value of the cell to be substituted for the two characters. '\F' Backslash-F is replaced in the report by the formula field of the cell being interpreted by the report formatter. '\T' Backslash-T results in the outputting of the text field of the cell being reported. Any other two character sequence beginning with a backslash will cause the second character only to be output to the report. This includes the string '\\' which is replaced in the output by a single backslash. If the report format string is not empty, but neither does it contain any of the character sequences above, it will be copied verbatim to the output once for each cell which has been selected. ====|====|====InPointers Report For each cell in the report cell selection, this report outputs a list of all the other cells in the web which refer to the cell. ====|====|====OutPointers Report For each cell in the report cell selection, this report outputs a list of all the other cells to which this cell refers. ====|====|====Trail Report The Trail Report merely lists from most recent to most ancient, all of the cells placed on the Trail by Linkto requests, that have not yet been popped off by Unlink requests. ====Sample Reports Below you will find described the way in which reports are formatted for some of the sample webs included with the SpyderX distribution. ====|====Websites The web called "Websites" is a model of some of the World Wide Web sites accessible from Netcom's Netcruiser Home Port. Each cell contains a description of a single WWW home page, and links to other home pages which are accessible from that page. SpyderX allows the user to produce a map or index of WWW home pages that is structured in the same way as the WWW itself. The report format string for 'Websites' is "\n\N". The report preference dialog question about whether to report all cells is answered "Yes". When you choose 'Report' from the Special menu, what you get is a list of the names of all the cells in the Websites web: CERNWebServersList ClickableMapOfEurope ClickableMapOfWorld Colorado GovernmentAndLawDestinations GuidedTour .......... If you used the output preferences to direct that list into the home cell, your report creates an instant hypertext index of the Websites web within its home cell. ====|====Finance The web called "Finance" allows you to compute the monthly payment necessary to pay off a loan of a given amount, at a prescribed interest rate, in a specified number of monthly payments. Sometimes, when you are working on a calculation, it helps to see all of the formulas on the same screen or page. The report format string of the Finance web is: \n\N:=\F When a report of all cells is generated from the Finance web using this string, the result is: apr:= home:= i:=apr/12 n:= power:=pow(1+i,n) prin:= pymt:=prin*power*i/(1-power) ====|====Quotes The web called Quotes has a report fomat string that can be used to copy the contents of the web, except for the value field, into a single stream, which may be saved into a file for upload, or scanned as it goes by on the LCD screen. The format string reads: "\n\T\n --\N\n\F\n" Here is a selection of the output: My work is being destroyed almost as soon as it is printed. One day it is being read; the next day someone's wrapping fish in it. --Al_Capp Author of Li'l Abner. If we had no faults, we should not take so much pleasure in noticing them in others. --Duc_De_La_Rochefoucauld 1613-1680 Surely you're joking Mr. Feynman! --Eisenhart On the occasion of Mr Feynman requesting both creme and lemon in his tea at the Princeton Dean's tea. He who knows does not speak. He who speaks does not know. --Lao_Tzu And yet he speaks. ====|====Pert This web computes the critical path time to completion of a construction project. The report format string has been arranged to print a comma-separated text file of the task name, and completion time for every cell in the web. The report format string is: \n"\N","\V" The resulting report is: "BuildFoundation","3.3" "BuildUpperStructure","17.5" "ClearLand","1.5" "CompleteExterior","12" ......... To change the order in which the cells come out, answer No to the question in the report preferences dialog about whether you want to report on all cells. Then create a list of the cell names in the order in which you want them to appear, select the list and choose 'Report' from the Special menu. The Pert web is also a good example of the utility of the InPointers report. If we request an InPointers report for the text fields of all the cells in Pert, we obtain: BuildFoundation <ClearLand <path1 <path2 <path3 BuildUpperStructure <BuildFoundation <path1 <path2 <path3 ClearLand <home <path1 <path2 <path3 CompleteExterior <BuildUpperStructure <path3 CompleteInterior <ElectricalWork <path1 <path2 <PlumbingWork .... .... Not only does this report show us the prerequisites for beginning each task in the construction project, it shows to which path or paths each task in the project belongs. CALCULATING WITH SPYDERX In this section will be described the method of specifying calculation output, the rules of evaluation used by the SpyderX calculator, and examples which illustrate the use of those rules. ====Specifying Calculation Output To specify what information will appear in Calculation output; select the Special menu, and choose the 'Preferences' entry. The Preferences dialog (shown previously) will appear. Select 'Calculation' from that dialog, and the 'Calculation Preferences' dialog will appear: Calculation Preferences * Recalc All Cells <-No-> * Calculation Results <-FormattedList-> * List Format %month,%prin * Default Evaluation Rule <-Propagate-> The first item in the dialog tells SpyderX whether or not to select all cells for calculation. The second item in the dialog lets the user select whether results will be output at all, and if so whether the format will be generic, or specified by the string which is entered in the third dialog item. The fourth item tells SpyderX the default evaluation rule to use: Propagate or Iterate (more on this later). ====|====Selection of Cells to Calculate The first choice list in 'Calculation Preferences' allows the user to answer Yes or No to the question whether to recalculate all cells in the web. This affects not only the choice of results to output, but also the amount of time taken for the calculation. The more cells calculated, the longer each iteration will take. If the user answers Yes to the first question, all cells in the web are selected for calculation. If the user answers No, a selection of cells will be calculated the next time the user chooses 'Evaluate' from the Special menu. The particular selection, in the latter case, will depend upon whether there is an edit box selection, and which cell is currently showing in the window. If there is a highlighted edit box selection when the user chooses Evaluate, all of the valid cell names in that selection will be calculated at each iteration. If there is no highlighted edit box selection, only the currently visible cell will be calculated at each iteration. (In reality more cells may be calculated at each iteration than are selected for calculation. The formula fields of selected cells may refer to cell names not in the selection. If so, those selected cells may be calculated as well as any cells referred to in THEIR formula fields, and so on). ====|====Calculation Results One of three possible choices may be selected in this dialog item: ====|====|====Don't List No output is listed as a result of calculations. This choice provides the shortest time of calculation. Even though no calculation output is generated, you may view the results (at the end of the last iteration) by choosing to "Report" the values of cells of interest, or by viewing each cell for which a value is required. ====|====|====Generic List Calculated results are presented for each cell calculated. This may be more than the number of cells selected, since it may be necessary to calculate more cells than those selected in order to obtain values for the selected cells. Typical generic list output looks that that shown below: apr,month,itm,prin,pmyt 0.075,1,137.09,21593.41,481 0.075,2,134.96,21249.51,481 0.075,3,132.81,20903.46,481 0.075,4,130.65,20555.27,481 0.075,5,128.47,20204.92,481 0.075,6,126.28,19852.39,481 0.075,7,124.08,19497.67,481 ........................... ====|====|====Formatted List For formatted listing, a header may or may not be presented, depending upon the content of the List Format (line 3 of the dialog). The content of the formatted result chunk generated for each iteration depends upon rules described in 'Formatting Calculation Results', which is the next section. ====|====|====Formatting Calculation Results ====|====|====|====Format of the Header Line If the first character of the List Format is a tilde ('~'), no header line is generated for the calculation. If it is not a tilde, the header line is generated in accordance with the following rule: A newline is output. Then the contents of the List Format string are copied directly to the output, except that any percent signs in the format string are ignored. Wherever the character pair '\n' appears in the List Format, it is replaced with a newline sequence. ====|====|====|====Format of Each Iteration Chunk The output generated at each iteration of a calculation depends upon the content of the List Format string. The manner of this dependence is described in the rule below: The contents of the List Format string are scanned, and copied to the output until a percent ('%') sign is encountered. The next word after the percent sign is read to determine if it is a valid cell name. If it is, the current value associated with that cell is substituted for the cell name in the output string. Scanning and outputting of the List Format string is then resumed until the next percent sign or the end of the string is reached. Wherever the character pair '\n' appears in the List Format, it is replaced with a newline sequence. It is important to notice that the selection of cells for formatted output is controlled entirely by the format string, and has nothing to do with the selection of cells for calculation. This is necessary so that you can view only certain cells at each iteration, regardless of how many cells are calculated. ====|====|====Calculation Format Examples ====|====|====|====Example 1 The List Format string in the Calculation Preferences shown above, "%month,%prin" will cause the following type of output to be generated if both cells are either selected for calculation or included in the calculation by reference: month,prin 1,159820.00 2,159638.88 3,159456.62 4,159273.22 5,159088.68 6,159902.98 ........... If, on the other hand, the cell called 'month' was accidentally left out of the calculation, but not the format, the output would look more like: month,prin 1,159820.00 1,159638.88 1,159456.62 1,159273.22 1,159088.68 1,159902.98 ........... ====|====|====|====Example 2 The web called 'Pert' provides an example of a List Format string used for a calculation when there is only one iteration, and the outcome is to be displayed for only one cell: "~The Critical Path takes %CriticalPath days." In this case, the starting tilde eliminates the header chunk, and the output looks like: The Critical Path takes 43.5 days. Were the tilde removed from the front of the Format List, the output would look like: The Critical Path takes CriticalPath days The Critical Path takes 43.5 days ====|====|====|====Example 3 Use of the '\n' character pair in the format string can cause multiple lines to be output for each iteration. Consider the format string: "Mtrx: %a1,%a2,%a3\n %b1,%b2,%b3\n %c1,%c2,%c3" If we assume that all of the matrix elements are scheduled for recalculation or included by reference, the output of two iterations with this Format List might look like: Mtrx: a1,a2,a3 b1,b2,b3 c1,c2,c3 Mtrx:32.0,31.5,14.1 21.1,17.5,21.4 3.5,1.2,2.3 Mtrx:32.0,21.1,3.5 31.5,17.5,1.2 14.1,21.4,2.3 ====Rules of Evaluation SpyderX allows the formula of one cell to contain references to other cells. Such references can be resolved in one of two ways. One method is to compute the values of the other cells and substitute them into the formula being computed. In SpyderX, this is called a propagative rule of evaluation, because the calculation is propagated from one cell to another. Another method is to substitute the last computed value for the referenced cell into the formula being computed. The referenced cell is not computed, or if it is computed, the resulting value is not used at this time. This is called an iterative rule of evaluation, because it is frequently used in iterative calculations. ====|====Propagative Evaluation The example below illustrates a simple application of the propagative rule of evaluation: The web Example1 has two cells, a and b. Their values and formulas are shown below: Web Example 1 Cell a value:3 Cell a formula:b-4 Cell b value:blank Cell b formula:13+4 When cell a is calculated using propagative evaluation, the b in its formula is resolved by computing a value for b, and substituting it into the formula for a. When the computation is done, the value in b is 17, and the value in a is 13. The new values of a and b are independent of their previous values. In the web Example2, the formula in cell a contains a reference to the formula in cell b, and the formula in cell b contains a reference to the formula in cell a. Web Example 2 Cell a value:4 Cell a formula:b-1 Cell b value:14 Cell b formula:a+2 When the formula for cell a is evaluated, the reference to b causes the program to first attempt to evaluate the formula in cell b. The formula in cell b, in turn, requires an evaluation of the formula in cell a. This computation cannot be carried out under the propagative evaluation rule. This situation is called a circular reference error, and represents a built-in limitation of the propagative evaluation rule. ====|====Iterative Evaluation The example below illustrates the iterative evaluation rule: The web Example3 also has two cells, a and b, whose values and formulas are shown below: Web Example 3 Cell a value:14 Cell a formula:b-7 Cell b value:21 Cell b formula:a+4 When these cells are evaluated using an iterative evaluation rule, the calculation proceeds as follows: The old values of each cell are set aside for reference during the calculation. To compute the value of cell a, the old value of cell b, 21, is substituted into the formula for cell a to give 21-7 or 14. The new value is the same as the old value. To compute the value of cell b, the old value of cell a, 14, is substituted into the formula for cell b to give 14+4 or 18. The new value of b differs from its old value. There is no circular reference problem since the old values of each cell do not change during the course of the calculation. ====|====Specifying the Evaluation Rule The user must choose a default evaluation rule for each web. To set the default evaluation rule, choose the 'Preferences' selection in the Special menu. The Preferences dialog will appear: Preferences for: * Output * Numbers * Calculation * Searching * Report Choose 'Calculation' from the dialog and the 'Calculation Preferences' dialog will appear: Calculation Preferences * Recalc All Cells <-No-> * Calculation Results <-FormattedList-> * List Format %month,%prin * Default Evaluation Rule <-Propagate-> Position to the fourth item in the dialog, and use the arrow keys choose between 'Propagate' and 'Iterate'. TIP: Use the propagative rule of evaluation unless you are sure that you want to perform an iterative calculation. ====SamplePropagative Rule Calculations The examples which follow employ a propagative evaluation rule. ====|====Circle The area of a circle is easily computed in two cells: cellname formula r (no formula...put value of radius in value field) AreaCirc pi*r*r The calculation is performed by positioning to the cell r, and entering a value for the radius, and then positioning to the cell AreaCirc, and choosing 'Evaluate' from the Special menu . The user could avoid having to position to the AreaCirc cell by utilizing the 'Calculation Preferences' dialog to specify that all cells be computed. It is not necessary to include a cell with the value of pi since this value (as well as the value for the base of the natural logarithm e) is built into the SpyderX program. ====|====Finance The web called "Finance" allows you to compute the monthly payment necessary to pay off a loan of a given amount, at a prescribed interest rate, in a specified number of payments. The Finance web uses cells with the following formulas to compute the monthly payment: cellname formula apr (no formula... enter annual periodic interest rate) i apr/12 n (no formula... enter number of monthly payments) power pow(1+i,n) prin (no formula... enter the beginning balance) pymt prin*power*i/(1-power) The user may use the following procedure to obtain a result from the Finance web: 1) Put the annual periodic interest rate into the value field of the apr cell. Make sure that you use the decimal fraction (such as 0.075 for 7.5%). 2) Put the beginning balance into the value field of the prin cell. 3) Set the value of n to the total number of monthly payments. This is twelve times the number of years that the loan is to run. 4) Position to the pymt cell and select Evaluate from the Special menu. ====|====Pert One of the sample webs provided on the SpyderX distribution disk is called Pert. The Pert web describes the tasks involved in building a small house, and organizes those tasks according to which may be carried out concurrently. There are three different paths through the web of tasks, from start to completion. The three different paths may be browsed in the web by following hypertext links. They are also described in three summary cells called path1, path2, and path3. Those cells contain formulas which compute the total time required to traverse the associated paths. cellname formula path1 ClearLand+BuildFoundation+BuildUpperStructure+ PlumbingWork+CompleteInterior path2 ClearLand+BuildFoundation+BuildUpperStructure+ ElectricalWork+CompleteInterior path3 ClearLand+BuildFoundation+BuildUpperStructure+ CompleteExterior+Landscaping By entering the estimated time it takes to complete each of the tasks into each task's cell, the times taken for each path through the process may be computed from the formulas. Pert has another cell and formula: CriticalPath max(path1,path2,path3) When the web is positioned to the CriticalPath cell, and the 'Evaluate' function is chosen from the Special menu, the time necessary to build the house is placed into the value field of the cell CriticalPath. ====Iterative Rule Calculations In addition to the 'Calculation Preferences' dialog which is filled in for propagative calculations, the user fills in an additional dialog box when he or she selects the iterative evaluation rule. If the user has chosen to recalculate all cells, and selected the iterative evaluation rule, then the following dialog box appears immediately after the Calculation Preferences dialog is dismissed: Iterative Calc Preferences: Number of Iterations 17 The box allows the user to enter the number of iterations that he or she wishes to perform. If the user chose not to recalculate all cells, and selected the iterative evaluation rule, then the following dialog box appears immediately after the Calculation Preferences dialog is dismissed: Iterative Calc Preferences: Number of Iterations 17 Recalc Referenced Cells <-Yes-> In an iterative calculation, it is not necessary; and not always desirable, to recalculate the value of every cell referenced from a formula whose value is computed. If you chose not to recalculate the value of all cells, this dialog box gives you a further oportunity to fine tune the selection of cells to be calculated. The following sample webs illustrate the use of the iterative evaluation rule: ====|====Logistic The emergence of chaotic dynamics from simpler behavior may be observed in this example called the logistic map: cellname formula r (no formula...set this parameter to alter dynamics) x r*x*(1-x) To explore the behavior of this calculation, set the number of iterations to 20 or so, set different values for r and x (make sure x is between zero and one), go to cell x, and chose 'Evaluate' from the Special menu. For a value of the parameter r of 0.4, and an initial x value of 0.7, successive values of x approach zero and stay there. For an r value of 2.4, and initial x value of 0.7, successive values of x approach a constant 0.583 For r=3.0, and an initial x of 0.5, an extended damped oscillation takes place between two values of x. For r=3.5, initial x=0.7; an extended oscillation among four numbers takes place. For r=3.8, initial x=0.7; a chaotic sequence of numbers is the result. ====|====Model This web uses a simplistic mathematical model to simulate the way the population of cougars and deer might vary over time in the Rocky Mountain region. The value pane of the cell Cougars gives the number of mountain lions in a study area in a given period of time. The value pane of the cell Deer gives the simultaneous population of Deer in the same area during that period. The value of the cell period counts the number of iterations computed. cellname formula CConst (no formula... simulation parameter) Cougars Cougars+(CConst*Deer-DeathRate)*Cougars*StepSize DConst (no formula... simulation parameter) DeathRate (no formula... simulation parameter) Deer Deer+(DGrowthRate-DConst*Cougars)*Deer*StepSize DGrowthRate (no formula... simulation parameter) period period+1 (initialize to zero) StepSize (no formula... simulation parameter) To use this simulation model, select initial values for Deer and Cougars and simulation parameters, set up the web for an ample number of iterations, and choose Evaluate from the Special menu. A good place to start with the simulation parameters is the values which came with the web. Altering them by substantial amounts might lead to results difficult to interpret. ====Overriding the Default Evaluation Rule ====|====Motivation for Overriding One of the primary reasons for using cellular calculation is that it modularizes the computation. Logically connected pieces of a formula are grouped together in separate cells for easier understanding. A propagative rule of evaluation combines the formulas from separate cells into a seamless expression that is evaluated as if it were all contained within one cell. An iterative calculation has an entirely different purpose. It aims to use the same formula, applied repeatedly, to evolve or grow a numeric result over time (or over the iterated parameter). It is possible to take advantage of the modularization afforded by the propagative rule, within a fundamentally iterative calculation. SpyderX allows the user to do this by overriding the default iterative rule in the evaluation of certain cell references. ====|====How to Override To force a cell reference to be evaluated using the propagative rule, regardless of the default rule, place an exclamation point ('!') immediately after the cell reference in a formula. This will cause that reference to the cell, and that reference only, to be evaluated using the propagative rule. ====|====An Instance Where Overriding is Useful Consider the two cells described below: Web Example 4 Cell x value:-30 Cell x formula:x+10 Cell y value:blank Cell y formula:sign(x) The sign function returns a -1 if its argument is negative, a +1 if its argument is positive, and zero, if its argument is 0. What would you suppose the values of x and y would be through six iterations if the default rule was iterative. (a propagative rule wouldn't work since the formula for x refers to itself). For the first iteration, the value for x is computed to be -20, and the value for y is computed to by sign(-30) or -1. In the second iteration, the value for x is -20+10 or -10, and the value for y is sign(-20) or -1. Continuing in this vein, the output will be found to look something like: x,y -20,-1 -10,-1 0,-1 10,0 20,1 30,1 This doesn't fit our picture of what the output of the function y=sign(x) should look like. The problem is that the new value of x is being printed next to the value of y computed from the old value of x. To remedy this situation, and make the output better fit our idea of the function y=sign(x), we can override the evaluation rule for x in the formula for y: Web Example 5 Cell x value:-30 Cell x formula:x+10 Cell y value:blank Cell y formula:sign(x!) Now when we compute six iterations, the new value of x is sent to the sign function each time, and so the results show the newest value of x along with the sign function computed from that value of x. x,y -20,-1 -10,-1 0,0 10,1 20,1 30,1 Although there need be no confusion in the user's mind resulting from the output of the untweaked calculation, the second form of the output might be more useful for export to other programs or computers. ====Mixed Rule Calculations The following are examples of iterative calculations in which certain formulas use exclamtion points to override the default rule when evaluating some cell references: ====|====Amort This sample web uses an iterative technique to compute the approximate principal balance, and amount paid in interest each month, given an annual periodic interest rate, and the principal balance the previous month. The cells of the web (in addition to home), and the formulas they contain are: cellname formula apr (No formula....constant entered by user) itm mi!*prin (monthly interest rate times last months principal) mi apr/12 (annual periodic interest rate/12) month month+1 (number of the month...start at 0) prin prin+itm!-pymt (principal at start of month) pymt (No formula....constant payment amt entered by user) The reference to mi in the formula itm, and the reference to itm in the formula prin are overridden with the propagative evaluation rule to make sure that the values of mi and itm are computed before they are used on the first iteration of the calculation. To use this web, put the beginning principal in prin, the annual periodic interest rate, as a decimal fraction, into apr, the monthly payment into pymt, and initialize the month to 0. Set the number of iterations somewhat larger than you expect the number of months required to be, position to the prin cell, and choose 'Evaluate' from the Special menu. The monthly change in principal will be displayed as the calculation progresses. Negative amounts indicate money accumulating rather than money being paid out. It should be possible to verify the results created by the web Finance by using the web Amort. ====|====RKutta There is a method of iteratively solving second order differential equations which is called Runge-Kutta, probably named for a Mr. Runge and a Ms. Kutta. Whether they knew each other is not certain. In any event, if one applies their methods of solution to the equation for simple harmonic motion; y''=-ay one may obtain the following formulas, which we can program into a web: cellname formula h (no formula...value is set to stepsize) a constant parameter chosen by user y y+(k1!+4*k2!+k3!)/6 yp yp+(k1p!+4*k2p!+k3p!)/6 k1 h*yp k2 h*(yp+k1p!/2) k3 h*(yp+2*k2p!-k1p!) k1p -a*h*y k2p -a*h*(y+k1!/2) k3p -a*h*(y+2*k2!-k1!) The default evaluation rule for the calculation should be set to 'Iterate', and initial values chosen for y and yp. Set a to a positive value, and choose 'Evaluate' from the Special menu to see a computed solution to this differential equation. This method could be implemented, without overriding the default evaluation rule, in just four cells: h, a, y, and yp. First the expression for k1 would have to be substituted into the expressions for y, k2p and k3p. Then the expression for k2 would be substituted into the expressions y and k3p, and the expression for k3 substituted into the expression for y. Finally, all the expressions for kNp's (N=1,2,3) would be substituted into the formulas for y and yp. If the resulting formulae did not exceed the 512 byte limit on formulas, the calculation could be performed without any k cells. It is simpler, though probably less efficient, to have a cell for each of the k's, and to override the default iterative evaluation rule with exclamation points after all of the k's wherever they appear in formulas. BUILT IN FUNCTIONS We have seen in the examples some of the built-in functions supplied by SpyderX. In this section we list each built-in function, and any information necessary for its use. ====min(expr1,expr2,expr3,...) This function returns the minimum of the values of the expressions denoted by expr1, expr2, expr3, ...etc. ====max(expr1,expr2,expr3,...) This function returns the maximum of the values of the expressions denoted by expr1, expr2, expr3, ...etc. ====mean(expr1,expr2,expr3,...) This function returns the arithmetic mean of the values of the expressions denoted by expr1, expr2, expr3, ...etc. ====abs(expr) This function returns the absolute value of the expression denoted by expr. ====sign(expr) This function returns +1 if the expression expr evaluates to a positive value, -1 if it evaluates to a negative value, and 0 if it evaluates to 0. ====step(expr) This function returns +1 if the expression expr evaluates to a non-negative value (including 0), and 0 if it evaluates to a negative value. ====sig(expr) This function returns the sigmoid logistic function of its single expression argument: sig(expr):= 1/(1+exp(-expr)) ====sin(expr) This function returns the value of the sine of expr. The value of expr is assumed to be in the trigonometric units chosen in the trigonometric units choice list of the 'Numbers Preferences' dialog reached from the 'Preferences' choice in the Special menu. ====cos(expr) This function returns the value of the cosine of expr. The value of expr is assumed to be in the trigonometric units chosen in the trigonometric units choice list of the 'Numbers Preferences' dialog reached from the 'Preferences' choice in the Special menu. ====tan(expr) This function returns the value of the tangent of expr. The value of expr is assumed to be in the trigonometric units chosen in the trigonometric units choice list of the 'Numbers Preferences' dialog reached from the 'Preferences' choice in the Special menu. ====asin(expr) This function returns the value of the arcsine of expr. The value is returned in the trigonometric units chosen in the trigonometric units choice list of the 'Numbers Preferences' dialog reached from the 'Preferences' choice in the Special menu. An invalid argument will cause the value returned to be flagged "Not A Number". ====acos(expr) This function returns the value of the arccosine of expr. The value is returned in the trigonometric units chosen in the trigonometric units choice list of the 'Numbers Preferences' dialog reached from the 'Preferences' choice in the Special menu. An invalid argument will cause the value returned to be flagged "Not A Number". ====atan(expr) This function returns the value of the arctangent of expr. The value is returned in the trigonometric units chosen in the trigonometric units choice list of the 'Numbers Preferences' dialog reached from the 'Preferences' choice in the Special menu. An invalid argument will cause the value returned to be flagged "Not A Number". ====sqrt(expr) This function returns the non-negative square root of the value of expr. ====ln(expr) This function returns the value of the natural logarithm of expr. An invalid argument will cause the value returned to be flagged "Not A Number". ====exp(expr) This function returns the value of e ( the base of natural logarithms) raised to the power of expr. An invalid argument or overflow will cause the value returned to be flagged "Not A Number". ====log(expr) This function returns the value of the logarithm to the base 10 of expr. An invalid argument will cause the value returned to be flagged "Not A Number". ====pow(expr1,expr2) This function returns the value of the first argument raised to the power of the second. ====rand(expr) This function returns a random number seeded by the value supplied in expr. The result will be a number in the interval [0,1). MENUS AND PREFERENCES ====SpyderX Menus There are five SpyderX menus, called File, Edit, Cell, Browse, and Special. The dialogs and functions invoked from these menus are described below: ====|====File Menu The File menu has three entries: New, Open, and SaveAs: * New saves the contents of the current web, and creates a new, empty web with the name NEW. * Open displays a dialog box into which the name of the file to be opened can be entered. If the desired file is not in the \web\ directory, press TAB to enter the extended file open dialog. * SaveAs displays a dialog box into which the name is entered under which the current web will be saved. To save into a directory other than the current one, press TAB to enter the extended file dialog. Once the target directory is located, press return to re-enter the dialog box for the file name. ====|====Edit Menu The entries in the Edit menu are Copy, Paste, Math, Text, and Find: * Copy saves the current selection in the edit box to the clipboard. (Make a selection by holding down the shift key and moving the cursor to cover the text to be selected). * Insert pastes the contents of the clipboard into the current cursor position. There is no Delete in the edit menu. To delete the current selection in the edit window, press the Delete key. The selected text will be removed from the edit window and saved in the clipboard. * Bring checks to see if any other application capable of exporting text has a block of text selected. If so, the most recent such selection is copied into the cursor position of the current pane of the current cell. The selection is also pasted into to the clipboard for future Insert operations. * Math causes the Math window of the current cell to be displayed. * Text causes the Text window of the current cell to be displayed. On the S3a, pressing the diamond button toggles between the Text and Math windows. * Find searches forward or backward for the next occurrence of the currently selected text. If no text is selected, a dialog box appears, which allows the entry of the text to search for, as well as the preferred direction of search. ====|====Cell Menu The entries in the cell menu are Add, Delete, Goto, Linkto, Hunt, and Unlink: * Add asks for the name of the cell to add. Press Esc to cancel the request. Otherwise, enter the new cell name and press enter. If a cell with the new name already exists, a dialog will inform you of the fact, and ask if you wish to see that cell. Otherwise, the new, empty cell will be displayed. * Delete causes the current cell and its contents to be deleted, unless it is the home cell. The home cell cannot be deleted. * Goto transfers to a different cell, without saving the current cell into the backtrack(see Unlink). If there is a cell name selected in the current edit window, that is the cell to which a transfer is made. If not, a dialog appears, asking for the name of the cell to go to. * Linkto saves the current cell into the backtrack, and transfers to a different cell. If there is a cell name selected in the current edit window, that is the cell to which a transfer is made. If not, a dialog appears, asking for the name of the cell to go to. * Hunt scans from the current cursor position forward, looking for a cell name. If it finds one, it saves the current cell in the backtrack, and transfers to the cell whose name was found. * Unlink returns to the cell most recently added to the backtrack. If there is no cell on the backtrack, Unlink goes to the home cell. ====|====Browse Menu The cells in a web can be browsed in alphabetical sequence or reverse alphabetical sequence by choosing Prev or Next from the Browse menu. ====|====Special Menu The entries in the Special menu are About, Evaluate, Report, Preferences, and Exit. * About displays information about SpyderX. * Evaluate causes a calculation to take place. Output destination, Number format, and type of calculation are controlled by options reached from the Option entry of the Special menu. * Report causes a report of the contents of the cells to be issued. The destination of the report output, and the content and format of the report are controlled by the Report entry of the Preferences dialog. * Preferences provides the means to control destination of output, format of numbers, type of calculation, Search direction, and report format. * Zoom allows the user to adjust the font size on the S3a. * Exit causes the SpyderX program to stop executing and return to the system screen. SPYDERX PREFERENCES The 'Preferences' entry in the Special menu opens a dialog box that gives the user the opportunity to set five different classes of parameters to control the operation of the program. The five categories are: Output, Numbers, Calculation, Searching, and Report. ====Output Preferences Output preferences govern the destination, and to some extent, the format of the output of calculations and reports. The three output options are: Destination, Destination Name, and Newline Type. ====|====Destination Output destination can be set to Screen, Cell, or File. * If the Destination is set to Screen, output from reports and calculations appears one screen at a time on the LCD. After each screen the user is prompted to enter ESC to abort the calculation or report, or any other key to continue it. * If the Destination is set to Cell, output from the calculation or report is copied to the end of the text area of the cell specified in the Destination Name option. Since the capacity of the text area of a cell is limited to 2048 bytes, the text area only retains the last 2048 bytes of any output directed to it. * When the destination is set to File, the output from calculations and reports is directed to the file named in Destination name. ====|====Destination Name The Destination Name option provides a place for the user to enter the cell or file name into which output from calculations or reports is directed. If the Destination name option is empty, or does not contain a valid cell name when the Cell or File destination is selected, output is directed to a cell or file called OUTPUT (or OUTPUT.TXT). If there is no cell (or file) called OUTPUT, one is created. ====|====Newline Type The third Output Option is the Newline Type Option, which applies only when the output destination is File. The option lets the user choose between newlines composed of linefeeds, or newlines composed of carriage returns, followed by linefeeds. The former option is preferred when the files will not be exported to other computers. The latter option is preferable if the files will be exported to a PC-compatible computer. ====Numbers Preferences Numbers options govern the format of calculation results, number of decimal places, and units of angular measure.. The three Number options are: Format, Number Of Digits, and Trigonometry Units. ====|====Format The three Formats of numbers are General, Fixed, and Exponent: * General numbers are floating point numbers with up to 15 significant digits (a maximum of 24 digits overall) * Fixed Numbers are fixed point numbers with the number of decimal places selected in the Number Of Digits option. * Exponent Numbers are displayed in scientific notation with the number of significant digits specified in the Number of Digits option. ====|====Number of Digits The number of digits option describes the maximum number of significant digits in General and Exponent numbers, and the number of decimal places in the Fixed format numbers. ====|====Trigonometry Units The Trigonometry Units option can have the values of Degrees or Radians. It governs the interpretation of arguments of trigonometric functions and the presentation of results of inverse trigonometric functions. ====Calculation Preferences The Calculation Options are called: RecalcAllCells?, Calculation Results, List Format, Default Evaluation Rule, Number of Iterations, and Recalc Referenced Cells. These preferences are thoroughly discussed elsewhere in this manual. They are mentioned here only briefly. ====|====Recalc All Cells? This preference allows the user to choose between calculating all cells or a selected subset of the cells in a web. For details on selection of the cells to calculate, see the section of this file entitled "Selection of Cells to Calculate". ====|====Calculation Results The CalculationResults Option refers to the manner in which results are conveyed to the user. The possibilities are GenericList, FormattedList, and DontList. The section entitled "Specifying Calculation Output" contains a description of the differences between these choices. ====|====List Format The List Format string is used to describe how to present the output of each iteration to the user. See the section entitled "Specifying Calculation Output" for complete information on the List Format. ====|====Default Evaluation Rule This is the preference which controls whether the iterative evaluation rule is employed or not. See the section entitled "Rules of Evaluation" for a thorough discussion of this preference. ====|====Number of Iterations Number of Iterations is applicable only when Default Evaluation Rule is set to Iterate. It may be set to any value between 1 and 65535. ====|====Recalc Referenced Cells Choose yes if it is desired to recalculate all cells referenced by a formula when the iterative evaluation rule is in effect. Choose no if this is unnecessary. ====Search Preferences When the user selects Find from the Edit menu, a search is performed for selected text, or text specified in a dialog box. The Search preferences apply to the operation of the Find Request. The available options are: Search For, Search Direction, and Case Sensitive? ====|====Search For This is the string for which a search is made when the Find choice is selected from the Edit menu. No wild card characters or regular expression specifiers are accepted here. Enter just the character string for which you are looking. ====|====Search Direction The choices here are Forward and Backward. When a direction is chosen, the next search (Find) operation proceeds from the current cursor position in the current field of the current cell, in the direction indicated. If a match is not found in the current cell, the search continues into the next cell in the direction indicated. The search ends when either a match is found, or the search returns in a giant circle to the beginning or end of the field in the cell in which it began. NOTE: When searching backward, an instance of the target which is the last string in the text of formula field of a cell may be missed. This problem will be repaired in a future release. ====|====Case Sensitive? If -Yes- is selected for this option, a match is declared only when text matches as to characters and case of each character. Otherwise, a character match alone is sufficient. ====Report Preferences Report Preferences are Report On All Cells?, Report Type, and ReportFormat: ====|====Report On All Cells? This option allows the user to choose whether to apply the report function to all cells in the web, or to a selection of cells. See the section entitled "Specifying Report Output" for a complete discussion of this preference and its application. ====|====Report Type This option allows the user to choose between four different types of reports: Formatted, InPointers, OutPointers, and Trail reports. ====|====Report Format The Report Format string allows the user to specify the contents of the formatted report generated for each selected cell. The rules governing the syntax and interpretation of the report format string are discussed in the section entitled "Specifying Report Output". ERROR CONDITIONS ===="Not A Number" Results Any time a calculation is performed, which results in a condition that cannot be expressed as a numeric result, the value {NAN} is returned to the value field of the formula being calculated. To see this for yourself, enter the formula 12/0, and evaluate the cell containing the formula. If a cell contains a reference to a cell which returns a {NAN} result, the referring cell will also have a {NAN} result after it is evaluated. ====Expression Syntax Formulas are parsed whenever you exit a formula field, either to go to another field within the same cell, or to go to another cell. If there are blatant violations of the lexical rules at this time, a message "Formula Error" will appear at the lower right hand corner of the LCD screen. When a formula is evaluated, there are several error messages that can result. These messages are listed below: BAD IDENTIFIER IN FORMULA xxxx One of the identifiers in the formula for the cell named xxxx is neither a cell name nor a built-in function. ILLEGAL CHARACTER IN FORMULA xxxx There is a character in formula xxxx that is not permitted. CIRCULAR REFERENCE IN FORMULA xxxx The formula in cell xxxx contains a cell reference which is part of a circular chain of cell references, which is not permissable when the propagative evaluation rule is in effect. MISSING PAREN IN FORMULA xxxx There is a missing parenthesis in the formula of cell xxxx. INVALID EXPRESSION IN FORMULA xxxx Expression syntax is violated in the formula field of cell xxxx. BUILTIN FUNCTION CALL ERROR IN FORMULA xxxx There is a problem with a comma or parenthesis in a built-in function reference in the formula field of cell xxxx. BUILTIN FUNCTION ARG ERROR IN FORMULA xxxx There is a problem with the number or type of arguments to a built-in function in the formula field of cell xxxx. PREMATURE TRUNCATION OF FORMULA xxxx The formula field of cell xxxx ended before a complete expression was parsed. ====Out of Memory When SpyderX writes a web to a disk, it writes it first as a temporary file, called temp.tmp, and then renames the temporary file to the name of the web. If a memory shortage prevents the entire web from being written, the update is not completed, and the old version of the web remains on the disk. When SpyderX cannot obtain needed memory from the operating system, it issues the message below: Out of Memory-- To Insure web is saved, free space before exiting. and gives the user two options: EXIT NOW or I'LL FREE SPACE If you choose EXIT NOW, SpyderX will attempt to save the web, and then exit. With good luck, the web will be saved in its entirety. If there is not sufficient memory, the contents of the web will be lost. If you choose I'LL FREE SPACE, SpyderX allows the program to continue running to give you an opportunity to create space on your internal disk drive by deleting files that are not associated with the current web. If you know of some storage you can liberate, choose the latter option, but be careful. SpyderX will be running in a memory-limited condition, and could crash at any time. Exit as soon as you have freed enough memory. LIMITS, WARRANTIES, AND SUPPORT ====Program Limits The following limits apply to version 1.1 of SpyderX: Maximum Size of a Cell Name: 128 Maximum Characters in a Text Pane: 2047 Maximum Characters in a Value Pane: 255 Maximum Characters in a Formula Pane: 511 Maximum Number of digits in a number: 24 Maximum Significant digits in a number: 15 Maximum Number of Cells: limited by 64K program data data segment size. ====Warranty, License, Registration, and Distribution LIMITED WARRANTY AND DISCLAIMER OF WARRANTY THIS SOFTWARE AND ACCOMPANYING WRITTEN MATERIALS (INCLUDING INSTRUCTIONS FOR USE) ARE PROVIDES "AS IS" WITHOUT WARRANTY OF ANY KIND. FURTHER, NEITHER EIEIO NOR DAVID CLIFTON PROVIDES ANY WARRANT, GUARANTEE, OR MAKES ANY REPRESENTATIONS REGARDING THE USE, OR THE RESULTS OF USE, OF THE SOFTWARE OR WRITTEN MATERIALS IN TERMS OF CORRECTNESS, ACCURACY, RELIABILITY, CURRENTNESS, OR OTHERWISE. THE ENTIRE RISK AS TO THE RESULTS AND PERFORMANCE OF THE SOFTWARE IS ASSUMED BY YOU. IF THE SOFTWARE OR WRITTEN MATERIALS ARE DEFECTIVE YOU, AND NOT EIEIO OR ITS DEALERS, DISTRIBUTORS, AGENTS, OR EMPLOYEES, ASSUME THE ENTIRE COST OF ALL NECESSARY SERVICING, REPAIR, OR CORRECTION. THE ABOVE IS THE ONLY WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, THAT IS MADE BY EIEIO OR DAVID CLIFTON, ON THIS PRODUCT. NO ORAL OR WRITTEN INFORMATION OR ADVICE GIVEN BY DAVID CLIFTON, EIEIO, ITS DEALERS, DISTRIBUTORS, AGENTS OR EMPLOYEES SHALL CREATE A WARRANTY OR IN ANY WAY INCREASE THE SCOPE OF THIS WARRANTY AND YOU MAY NOT RELY ON ANY SUCH INFORMATION OR ADVICE. YOU MAY HAVE OTHER RIGHTS WHICH VARY FROM STATE TO STATE. NEITHER EIEIO NOR ANYONE ELSE WHO HAS BEEN INVOLVED IN THE CREATION, PRODUCTION OR DELIVERY OF THIS PRODUCT SHALL BE LIABLE FOR ANY DIRECT, INDIRECT, CONSEQUENTIAL OR INCIDENTAL DAMAGES (INCLUDING DAMAGES FOR LOSS OF BUSINESS PROFITS, BUSINESS INTERRUPTION, LOSS OF BUSINESS INFORMATION, AND THE LIKE) ARISING OUT OF THE USE OR INABILITY TO USE SUCH PRODUCT EVEN IF EIEIO OR DAVID CLIFTON HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. This Limited Warranty shall be governed and construed in accordance with the laws of the State of Colorado. ACKNOWLEDGMENT BY USING THE SHAREWARE VERSION OF SPYDERX YOU ACKNOWLEDGE THAT YOU HAVE READ THIS LIMITED WARRANTY, UNDERSTAND IT, AND AGREE TO BE BOUND BY ITS' TERMS AND CONDITIONS. YOU ALSO AGREE THAT THE LIMITED WARRANTY IS THE COMPLETE AND EXCLUSIVE STATEMENT OF AGREEMENT BETWEEN THE PARTIES AND SUPERSEDES ALL PROPOSALS OR PRIOR AGREEMENTS, ORAL OR WRITTEN, AND ANY OTHER COMMUNICATIONS BETWEEN THE PARTIES RELATING TO THE SUBJECT MATTER OF THE LIMITED WARRANTY. LICENSE You may use the shareware version of SpyderX for a 30 day trial period. If you would like to continue to use SpyderX after the 30 day trial period, you are required to register as a user of SpyderX, and pay the registration fee. If you choose not to register or pay, you must remove SpyderX from your computer. You may distribute evaluation copies of SpyderX to other persons or organizations, provided such distribution takes place in accordance with the provisions of the DISTRIBUTION paragraphs below. REGISTRATION The registration fee for SpyderX is $33. For this price, you will receive a diskette with the latest shareware version of SpyderX, the printed user's manual, a key to disable registration reminders, a phone number to call for support during specified hours, and a collection of sample webs. In addition, when you register version 1.3 of SpyderX, you will receive a copy of SpyderT, the world's simplest hypertext notepad. SpyderT provides the hypertext editing and reporting capability of SpyderX, without the ability to perform calculations. At 30 K bytes, SpyderT is considerably smaller than SpyderX, yet it still allows the user to take linked notes, cross-reference them, and report on their contents. Like SpyderX, SpyderT runs on both the Psion 3 and the Psion 3a. You can register SpyderX using the Compuserve shareware registration service, via credit card through North Star Solutions' shareware registration service, or by sending cash to the author. For details on ordering and payment, see below: ORDERING AND PAYMENT METHOD 1: Compuserve shareware registration service Log onto Compuserve and go to shareware registration under the computers menu (GO SWREG). Access the registration database with the program name, SpyderX, or the registration number 5574. Indicate the desired diskette type (MAC or PC) by including the words '(MAC)' or '(PC)' on one of the address lines you enter. (The parenthesized word will be removed from the address line when your registration packet is mailed). METHOD 2: By credit card through North Star Solution's Shareware Registration Service You can order registration packets with Visa or MasterCard credit cards from North Star Solutions shareware registration service. Simply contact North Star Solutions via any of the following methods: Voice: 1-800-699-6395(10:00am-10:00pm,EST. Calls from US only.) 1-800-699-6395(10:00am-10:00pm, Eastern Standard Time) FAX: 1-803-699-5465(Available 24 hours. (International and Business Orders encouraged) E-mail: CIS 71561,2751 Internet 71561.2751@compuserve.com (International and Business Orders encouraged) Please have the following information ready: * The program and version number ( SpyderX v1.3 ) * Where the registration packet should be mailed * Your VISA or MasterCard number and expiration date * Whether you want a MAC or a PC diskette (3.5 inch drives only) IMPORTANT NOTES: 1) North Star processes registrations only, please contact the author at 71270.1441@compuserve.com or eieio@ix.netcom.com for any product information or technical support. 2) E-mailed and FAXed registrations are encouraged, but all registrations are very much appreciated! METHOD 3: By sending cash to the author. Send your mailing address, whether you want a MAC or a PC diskette, and $33 to the address below: EIEIO P.O. Box 1086 Niwot, CO 80544 U.S.A. Send cash in the form of U.S. dollars, a check drawn on a U.S. bank (MICR code on the bottom), or International Money Orders for $33 (U.S.). Add a 25% premium over the exchange rate if you send Canadian checks in Canadian dollars, or major currencies (Pounds, Marks, Francs, or Yen). DISTRIBUTION You are encouraged to pass a copy of the shareware version of SpyderX along to your friends for evaluation. If you do so, you must provide them with the entire set of SpyderX shareware version files. These include: README.TXT SPYDERX.APP VENDOR.DOC FILE_ID.DIZ AMORT.WEB CIRCLE.WEB FINANCE.WEB LOGISTIC.WEB MODEL.WEB PERT.WEB PIGGY.WEB QUOTES.WEB RKUTTA.WEB HEBB.WEB WEBSITES.WEB Alternatively, you may provide the .ZIP file which contains the files listed above in compressed format. If you intend to charge for distribution, you must adhere to the requirements of the vendor.doc file. The SpyderT program is given away as a premium for registering SpyderX. It is neither shareware, nor public domain. If you have a copy of the SpyderT program, please do not upload or give it away. Distribute the SpyderX program instead. It has all of the features of the SpyderT program, plus the ability to perform iterative, cellular calculations. OBTAINING SUPPORT You may send messages, reports, and requests for information to David Clifton at either of the two E-Mail addresses below: eieio@ix.netcom.com 71270.1441@compuserve.com In addition, registered users may obtain phone support during a selection of evening hours on weeknights.

Unknown

SPYDERX
8baacf30a349a5fd62541ddf0184ae513366b7f794ceb58da856d1b7d619f318