The Visual Calculator - Version 1.10 The visual calculator was written to be used for quick calculations of the variety that would ordinarily be done with a hand held calculator. There is no allowance for programming loops, or indirect variables, or any of the other facilities of a modern programming language. There are no complications either, and this program should not require more than a few minutes for the experienced com- puter user to learn to use, and only slightly longer for the person inexperienced with computers. It is suggested that you slowly run through the tutor- ial first, performing the operations suggested, then read the following comments for a description of the visual calculator. This program is intended to be much more comp- rehensive than the little on-screen calculators that have become popular, but it is not memory resident. Due to the expected future popularity of such programs as "Windows", this program can be as convenient as the present memory resident programs. The Visual Calculator Tutorial 1. Copy all files to another working diskette with your operating system or to a single directory on your hard disk. 2. Type VC You will get the beginning screen containing the vari- able boxes and the help box at the top. The center of the screen contains the transcript box, and at the bottom you will find the Input box. 3. Type A = 123.45 You will find that the value is displayed in the top box and the value will also be displayed at the left of the input equation in the transcript box. 4. Type B = SQRT(A) You will find the square root of A displayed in both places next to the variable B. You may have noticed that the system doesn't care if you use upper or lower case, it forces it to upper case. You now have defined some values for the variables A and B. 5. Type D = 1.23*SIN(SQRT(1.2345 + B*B/A)) Spaces between variables don't matter and you can put them in where you desire to make it look nice. If you get an error message, simply use the left and right cursor keys along with the delete key to fix up the error and hit the return again. You don't even have to be at the end of the line to hit the return. 6. Hit the F6 key then The F6 requests a file to be read in and if you don't specify a filename, it reads in the file named "HELP". This would be a good place to store a list of your other files in the same manner as this file. 7. Hit the F6 key then type AMORT This reads in the file named "AMORT" and calculates each line as it reads it in. Notice that it also changed the names of the variables that it uses to make them more meaningful to you. 8. Type PRINC = 30000 This changes the amount of the loan. We would like to recalculate the payment which we will in the next few steps. 9. Move the arrow up to the line that starts "PMNT=..." by using the up and down arrow keys. When the arrow is point- ing at the line in question,... 10. Hit the F9 key. This moves the line pointed at, by the little arrow, into the input box where it can be modified or used again as is. 11. Hit the key. This will recalculate the payment based on the new principal and the old interest rates and time of repay- ment. These could also be changed and the payment recalculated. 12. Make sure your printer is ready and hit the F3 key. This will cause a "Print on" message to be printed on your printer and a little "Print" message to be displayed in the upper right of your screen. All equations and the results will be printed for a hardcopy of your calculating session. 13. Hit the F6 key again You will get another prompt for a file name. 14. Type PAYMENT This file will be read in that will give you the results of your mortgage after the first payment. The results will also be printed out. 15. Hit the F6 key again and The last file read in will be reused again and the result of making the second payment will be displayed on the moni- tor and the printer. 16. Repeat step 15 three or four times. 17. Hit the F1 key. A help screen will appear describing the various math functions available. They can be nested to whatever level you desire. 18. Hit the F2 key. A help screen will appear with a very brief description of the system functions available. 19. Hit the "Home" key. You will be immediately transported to the very top of the transcript where the welcome message was originally seen. The Pgup, Pgdn, Home, and End keys will get you through the transcript window very quickly. 20. Move the little arrow to the line that starts "# A-PRINC", and hit the F4 key once. You will see that the asterisk appears in front of the line. This will "mark" the line. Continuing to hit the F4 key will toggle the asterisk on and off. 21. Move the arrow to the line that starts "# E-EQUITY" and mark this line too. 22. Hit the F5 key The system is now prompting you for a file name to output to. 23. Type STUFF This is simply a filename. Any valid filename could be used. All lines in the transcript box that are "marked" will be output to the file "STUFF". 24. Hit the F6 key and type STUFF All of the lines that were just output will be read in and all calculations will be done. 25. Hit the F3 key if the printer is still on. 26. Hit the F6 key and The file will be read in again without printing. 27. Hit the F10 key and answer the prompt with Y to end the session. 28. Type VC again to restart the program. 29. Hit the F6 key, type TEST A file with 50 lines will be read in and all calcu- lations performed as an example of the kinds of equations that can be evaluated. 30. Type the following; # I-D J-O K-H L-X This tells the system that we want the variable "I" to print out in Decimal notation, the variable "J" to print out in Octal notation, and "K" and "L" to print out in HeXadecimal notation. (Note - the # must be in the first column.) 31. Type I = 12345 The variable I will be displayed in all three notations in the top box and in decimal notation in the transcript box. 32. Type J = 12345 The variable J will be displayed in Octal notation in the transcript box and on the printer if it is turned on and ready. 33. Type K = 12345 The variable K will be displayed in Hex notation in the transcript box. 34. Type I = 012345 The value of I is read in as an octal value due to the leading zero, but is still displayed as a decimal value. 35. Type J = 0X12345 The value of J is read in as a hexadecimal value due to the leading 0X. 36. Type M = 0XFFFF The variable M is read in as Hexadecimal and displayed in all three formats in the top box, but as decimal in the transcript box. The default display for the integers is decimal. 37. Type I = SQRT(48) The square root is calculated using 15 significant digits and the result is truncated to the next lower value. All calculations are done this way and the result is truncated to the integer value before display. 38. Type A = FACT(170)/FACT(169) - 170 The very small result will indicate to you a measure of the accuracy of calculations. It may not be apparent to you that we are using a factorial function. Calculate the value of FACT(170) to get an idea of the dynamic range available with this system. 39. Hit the F10 key and answer the prompt with Y. 40. Restart the program and try some of your favorite math exercises. Additional Comments 1. Files on the distribution disk. VC.DOC - The file you are reading. VC.EXE - The executable file for the Visual Calculator. HELP - The users index of files. AMORT - The loan amortization equations. PAYMENT - The monthly payment calculations. TEST - A group of 50 "nonsense" equations. 2. Inputting equations. All equations are typed into the input box in a normal mathematical expression. Only single valued expressions can be evaluated, no simultaneous equations can be solved with this system. To raise "A" to the power of "B", use; C = EXP(B*LOG(A)) $ any variables can be used A dollar sign anywhere in a line renders the remainder of that line as a comment only. Nesting is allowable to any depth but the entire expres- sion must fit in the input window. Longer expressions must be broken down into smaller statements. The variables "I" through "J" can be mixed in with the variables "A" through "F" in any manner. The "I" variables are truncated after evaluation so can only be used to store integer values, but that would be acceptable in many cases, such as the original value of the loan in the above example. 3. Naming variables In order to make the equations easier to read, the names of the variables "A" through "F" can be changed to any names you like with up to 6 characters. The first must be alphabetic and the rest can be alphabetic or numeric. To change the names, use the # sign in the first column of the statement and any order of variable name groups. A variable group is composed of a variable name "A" through "F", then a minus sign, and finally the new name with no blanks any- where in the group. Any number of blanks can be used between the groups, and you can put as many as you like on one input line, and additional groups on other lines. Intermixed with the above, or placed on their own input line, you can put as many "base" groups as you like for the variables "I" through "N". A base group consists of the variable name, a minus sign, and one of the letters, "D", "O", "H", or "X". If, after naming the variables, you wish to rename them to something else, the original names are used for the new name changes. Thus if "A" were named "PLACE" and you wished to rename it to "WHERE" the proper method would be to use "# A-WHERE". 4. Limitations This version of the Visual Calculator has a limit of approximately 800 lines in the transcript box. That should be enough for most applications. If you need more, I would suggest you write the program in a high level language. The limit of numbers is about ten to the plus or minus power of 308. Of course both positive and negative numbers can be used everywhere. The limit for the "I" variables is about 16 million, and can only be zero or positive. The exact number in 2 to the 24th power minus 1. It is the number displayed in the variable "N" when you load the system. The biggest limitation of the system is the limit of your own creativity. It is up to you to use it in a productive manner or simply to allow it to collect dust like so many of your other programs. I might add that I also have many dust collectors that I have failed to learn to use.