home *** CD-ROM | disk | FTP | other *** search
/ Simtel MSDOS - Coast to Coast / simteldosarchivecoasttocoast2.iso / handicap / bcdemo.zip / BCDEMO.DOC next >
Text File  |  1990-02-25  |  43KB  |  821 lines

  1. BigCalc  Copyright (c) 1990 Charles L. Broome
  2.  
  3. WHAT IT IS
  4. ==========
  5.  BigCalc is my first pass at a scientific-calculator program for
  6. computer users who are blind or visually impaired. There are actually
  7. three different BigCalc programs, all with the same calculator
  8. engine. One program has a large-character display that should be
  9. about three inches high in the typical CGA monitor, one is tailored
  10. for Braille Terminals, and one for Voice Synthesizers. Each version
  11. has been optimized a little for it's particular mode of use.
  12.  
  13.   All of the programs together, plus the regular manual, would come
  14. to about 300 kilobytes, which would take forever for someone to
  15. download. So for demo purposes I've resurrected this earlier version
  16. of the program which was written back when I was trying to make one
  17. program handle all three modes. Although the program was a bit rough
  18. back then and it's output isn't ideal in any one mode, overall it
  19. provides a good demonstration of the final BigCalc program. 
  20.  
  21.   The demo version intentionally only does three of the four basic
  22. arithmetic operations - it adds, subtracts, and multiplies, but it
  23. doesn't divide. All of its other fucntions are fully implemented.
  24.  
  25.  The functions performed include about 20 of the usual trigonometric
  26. and other transcendental functions, plus a percent key and 26 storage
  27. registers that are saved to disk.  Most keys identify themselves when
  28. pressed and are subsequently selected using the ENTER key, which
  29. makes it easy to "hunt" for the right function. 
  30.  
  31.   Parentheses levels are theoretically supported to about 50 levels -
  32. I got bored on the 15th level and so haven't tested this feature
  33. farther than that.
  34.  
  35.   A variety of options are offered for displaying numbers in normal,
  36. scientific, or Engineering modes, with or without commas every three
  37. digits, and of course for controlling how many digits are displayed.
  38. Computations are carried out to 15 decimal places and then are
  39. rounded down to twelve. The calculator can display up to 12 digits
  40. and can handle exponents between ten to the two-hundred ninety-ninth
  41. power and ten to the minus-two-hundred-ninety-ninth. 
  42.  
  43.   A tracking feature automatically saves a "list" of your operations
  44. and their results to a standard text file on-disk, and one key allows
  45. you to add short notes to describe what your various results
  46. represent. 
  47.  
  48.   Most keys are user-configurable through a separate configuration
  49. mode, and for those who use the large-letter mode the screen colors
  50. are also configurable.
  51.  
  52.   The large-letter mode currently works only on systems with CGA or
  53. EGA video cards, but I expect to have a version finished shortly that
  54. will also work on Hercules Graphics systems. The calculator works
  55. nicely in the 80 or 40 column modes. The full version offers an
  56. additional 20-column large-letter mode. This demo version's
  57. large-letter mode gives you three lines of ten columns.
  58.  
  59.   If there's enough interest to justify the effort - meaning if this
  60. program generates enough income to pay the bills for three weeks
  61. while I accomplish the task - I intend to turn this into a
  62. programmable calculator eventually. Early customers - even those who
  63. get the program at the $15 price - will of course get that upgrade
  64. either for free or for no more than $5 when and if that time comes.
  65.  
  66.  
  67. ORDER INFORMATION
  68. =================
  69.  
  70.   BigCalc's regular price will be $25, but as usual I'm offering an
  71. introductory price just to get things off the ground fast. If your
  72. order is postmarked no later than March 15, 1989, you can have the
  73. program for $15. That price includes a manual on cassette, all
  74. shipping, handling, taxes, and one free update if any major bugs show
  75. up. Further upgrades are guaranteed to cost no more than $5 each. 
  76. Copies may be ordered be sending a check or money order made out to
  77. Charles Broome to the following address:  Charles L. Broome, P.O. Box
  78. 2270, RockPort, Texas 78382
  79.  
  80.   Although I'll be happy to answer any questions you might have, I'm
  81. not set up for credit-card services. At my low prices, I also must
  82. charge extra to cover COD or other special orders and of course cannot
  83. accept collect calls. You can generally reach me any day of the week
  84. during reasonable hours at (512) 729-1188. 
  85.  
  86.   A better manual accompanies the full program, but as mentioned
  87. earlier I want to keep this file as small as possible to encourage it
  88. to be passed from BBS to BBS, so the rest of this manual is just a
  89. quick, informal run through the BigCalc demo program's features and
  90. just intended to give you a feel for how the full program functions. 
  91.  
  92. RUNNING THE PROGRAM
  93. ===================
  94.  
  95.   Unless you've gotten this program directly from me, the first thing
  96. we need to do is to get it into a known state of configuration.
  97. Unless you're running a DOS version 3.0 or above, it's absolutely
  98. essential that the program be named "BCDEMO.EXE", otherwise the
  99. configuration steps we're about to go through won't work.
  100.  
  101. Simply log onto the drive and directory containing the program, be
  102. sure the disk isn't write-protected, and at the DOS prompt type
  103. "BCDEMO /reset". The program will then change all user-configurable
  104. options back to their default values and exit to DOS.
  105.  
  106.   If you're doing this demo on a hard-disk drive and are running a
  107. DOS version earlier than 3.0, then next you should type "BCDEMO
  108. /path". This will cause the program to read in the current path and
  109. save it, so that the program will always know where to find itself
  110. when you change the configuration. Otherwise you'll always have to
  111. log into the same directory with the program when doing these
  112. configuration steps or the program can't self-modify.
  113.  
  114.  Once the path is installed, BigCalc will exit to DOS again. If you
  115. later change your mind, you can repeat the procedure to install a
  116. different path, or use "BCDEMO /nopath" to "unsave" the path.
  117.  
  118.   Now we're ready to go. If using a braille terminal, it should be
  119. unlocked from the cursor. All output will be to the "HOME" position
  120. of the screen - that is, line 1, column 1. Voice synthesizers should
  121. be placed in their "automatic output" mode so they automatically
  122. speak any changes to the screen. The large-letter mode will NOT work
  123. in conjunction with a braille terminal or voice synthesizer, so if
  124. using either you should run the program in it's normal mode. At the
  125. DOS prompt, simply type "BCDEMO" and press the ENTER key to run the
  126. program. You'll be presented with an abbreviated copyright message,
  127. and after pressing any key (the spacebar works nicely) the calculator
  128. will be ready to use.
  129.  
  130.   If you have a CGA system and want to run the program in it's
  131. large-letter mode, then at the DOS prompt instead of typing just
  132. "BCDEMO" type "BCDEMO /BIG" and press the ENTER key. You can use the
  133. shifted arrow keys on the numeric keypad to adjust foreground and
  134. background colors to your liking. When you exit the program, those
  135. colors will be saved to a file either in the current directory or in
  136. the installed path, called "BIGCALC.REG". All 26 registers will also
  137. be written to that file. If you run the program from the same
  138. directory later, then both the registers and the colors that you
  139. chose will be automatically restored from that file.
  140.  
  141.   BigCalc also works nicely in the 40 column modes. Use the DOS MODE
  142. command to switch into the desired mode.
  143.  
  144.   If you are using a 20-column braille terminal, the number display
  145. will always be shown and will fit exactly into the 20 columns, but
  146. some messages may "spill" over to the right and you'll have to move
  147. over once to read all of them. So that you woon't have to search for
  148. the frequently-appearing "READY" prompt about which I'll speak later,
  149. that prompt is always accompanied by a brief, high-pitched chirp.
  150.  
  151.   It's very important to remember that the only way out of BigCalc is
  152. with Control-C. This will work at any time, in the middle of
  153. anything. Exiting the program will cause two files to be saved to
  154. disk. Those will be "BCDEMO.LST" and "BCDEMO.REG", which store the
  155. trace listing and register values, respectively.  
  156.  
  157.   BCDEMO.LST is a simple text file that you can read or modify with
  158. your word-processor and will ALWAYS be saved to the current
  159. directory. If a file from a previous session is already stored there,
  160. then this latest information will be tacked onto the end of it. Most
  161. lines will be about 30 columns long at most.  
  162.  
  163.   BCDEMO.REG will be saved either to the current directory or to the
  164. path saved via the "/path" configuration command that we used above.
  165. This is a critical file that you shoud under no circumstances attempt
  166. to read, edit, or modify. If you think the file might have been
  167. corrupted, just delete it. If the file IS deleted, then all register
  168. contents and any color customizing you might have done will be lost,
  169. but not other harm will be done.
  170.  
  171.   BigCalc also allows you to customize the keyboard, and we'll cover
  172. that configuration proceduare at the end of the manual.
  173.  
  174.  
  175.  
  176.  
  177. INITIAL DEFINITIONS
  178. ===================
  179.   To simplify things, let's start with a few definitions. A FUNCTION
  180. key is one that requires a single value to operate on and that
  181. returns a single value. For example, the key to "square" a value. On
  182. the other hand, a BINOP key requires two values to operate on and
  183. returns a single value. The familiar operations of adding,
  184. subtracting, multiplying, and dividing are BINOPS, which is my slang
  185. term for "binary operations".  A percent function is also a BINOP -
  186. you feed it two values, and it tells you what percentage one is of
  187. the other. The calculator also raises Y to the Xth power - again a
  188. BINOP - and also returns the Xth root of Y, which is yet another
  189. BINOP. 
  190.  
  191.   Either side of a BINOP can be a value or an expression. A value is
  192. a single number (though that number can have multiple digits, a
  193. decimal, a sign, and an exponent) , whereas an expression is a
  194. combination of numbers, functions, and operators contained within
  195. parentheses. A FUNCTION can operate on either a single number or
  196. an expression.
  197.  
  198.   We also have to distinguish between algebraic notation and
  199. calculator notation. The syntax used by BigCalc is nearly identical
  200. to that used the horde of scientific calculators already out there,
  201. which is to say that it doesn't at all follow the precedence rules of
  202. algebra. In algebra, if you have "6 + 5 * 3" then the multiply takes
  203. precedence over the add, so first you multiply 5*3 to get 15 and then
  204. add 6. But in calculator notation, operations are performed as you
  205. enter them, so in this example we would first add 6 to 5 and only
  206. then multiply by three. Parentheses are necessary to force the proper
  207. levels of precedence.
  208.  
  209. BASIC OPERATIONS:
  210.   Unfortunately, most keyboards totally ignore the keypad-5 key
  211. unless the NUMLOCK is on, so there's no way I can translate that one
  212. key. All other keys on the numeric keypad can automatically be
  213. translated to number keys irregardless of whether the NUMLOCK key is
  214. enabled or not. If you prefer the numeric keypad to the usual number
  215. keys, then you need to be sure that the NUMLOCK is enabled.
  216.  
  217.   Ok, let's add two numbers. Just type in "3.5", press either the
  218. keypad-plus or the keyboard-plus key, then type in "4.8", then press
  219. the equals key and you'll get the answer of "8.3". Note that after
  220. pressing the equals key, the word "READY" appears after the answer to
  221. let you know that the calculator is waiting for your next operation.
  222.  
  223.   Now, what if you wanted to add your answer to itself? Go ahead and
  224. press the "+" key followed by the equals key, and you'll get an
  225. answer of "16.6". This is what I call an "AUTO-OPERATION", because it
  226. involves a "BINOP" that requires two values to operate on, and gets
  227. the second value by automatically copying the first to it.
  228.  
  229.   Automatic operations are permissible using any BINOP. For example,
  230. "*=" to multiply the value by itself, or "-=" to subtract it, etc.
  231. AUTO-OPERATIONS are only permissible when no numbers have been
  232. entered after the first BINOP since the READY display. For example,
  233. if the display shows "3 READY" then you can do a "*=" to get 9.
  234.  
  235.   If the display shows the word "READY" and you type in a number,
  236. then the value currently in the display register will be erased and
  237. replaced with the new number. Try that now - type in "4 + 5 = ". The
  238. moment you type in the "4", the "16.6" was erase and the "4" took
  239. it's place.
  240.  
  241.   Here's one: If you had typed "4+5+=" would an AUTO-OPERATION have
  242. taken place on the 5? The answer is "no". If the word "READY" is
  243. displayed and the display shows the number "4", then you can do a
  244. "+'" to add the four to itself. If the word "READY" is showing then
  245. you can also type in "4+=" to add four to itself. But if you enter
  246. any number after that first BINOP (the "+") then you can no longer do
  247. an AUTO-OPERATION until the word "READY" appears in the display,
  248. which will either be after you complete the current operation by
  249. pressing an equals sign or clear the calculator.
  250.  
  251.   Speaking of clearing: The calculator is cleared using the tilde
  252. key. Unshifted, this is the "reverse apostrophe" as most people call
  253. it. In 84-key AT keyboards, it's just above the "TAB" key.
  254.  
  255.   Go ahead and try this: hold down the shift key and press the tilde.
  256. The display will show "0.0 READY". This just shows that it's been
  257. cleared. Now type in "4+5+=". When you press the equals key, you'll
  258. get a message that says "syntax error", and the calculation will be
  259. aborted. Whenever you get an error message like this, just press any
  260. key afer reading the message and you'll be back at the "READY"
  261. prompt with the calculator cleared and ready to try again.
  262.  
  263. PARENTHESES:
  264.   You can use parentheses to force the order in which operations are
  265. performed. For example, earlier when I was talking about algebraic
  266. notation, I used the example of "6+5*3" to show how calculator
  267. notation differed from algebraic notation, and mentioned that you can
  268. use parentheses to force the desired order of precedence. Let's try
  269. it.
  270.  
  271.   First, try it this way: Type in "6+5*3=". You'll notice that as
  272. soon as you press the "*", the 6 and 5 are added to get 11, and this
  273. subtotal is displayed. Then when you press the "3", the subtotal will
  274. be erased from the display and replaced with the "3". When you press
  275. the equals key, then the final result of "33" will be shown. This is
  276. how calculator notation totals up things. Now lets force the "3" to
  277. be multiplied by the "5".
  278.  
  279.   Type in "6+(5*3)=". You'll notice that when you type in the right
  280. parentheses, the subtotal for "5*3" will be displayed. When you press
  281. the equals key, you'll get an answer of "21".
  282.  
  283.   Now, suppose you want to multiply 5 times 3 and subtract that from
  284. 8 times 9, and then multiply the result by 6? You would type this in
  285. as "6*((5*3)-(8*9))=", in that exact order. This is what is called
  286. NESTED PARENTHESES - that is, one level of parentheses is nested
  287. inside another. In theory, BigCalc can handle 50 levels of
  288. parentheses nested inside each other, but as mentioned earlied I got
  289. kind of bored at fifteen and few people go beyond two on scientific
  290. calculators anyway.
  291.  
  292.   Now clear the calculator and let's try something else. Type in
  293. "6+(5*2) - 4)=". When you press the EQUALS sign, you'll get a message
  294. that says "unbalanced parentheses". This makes sense because for
  295. every left parentheses you should have a right one, and it's just and
  296. example of how BigCalc handles an error when it has no way of knowing
  297. enough about what you'd intended to recover more gracefully. You get
  298. the same thing when trying to divide by zero, take the LOG of a
  299. negative number, etc.
  300.  
  301. FUNCTIONS:
  302.   Now it's time to try a function. Clear the calculator using the
  303. shifted-tilde key. Type in the number "5". Press F5 and it will
  304. announce "square". Then press F1 and it announces "sine". Press F5
  305. again and it announces "square" again. So far all that's happened is
  306. that the keys have named themselves as you pressed them. The last key
  307. we pressed was the one we wanted, so not press the ENTER key to
  308. select this function and you'll get an immediate answer of "25".
  309.  
  310.   Note that the "READY" display has gone away, signifying that we are
  311. now in the middle of a calculation. type in "+4", then press F5
  312. again, followed by the ENTER key to select it. This will square the
  313. "4" to get "16". Press the ENTER key and the "25" will be added to
  314. the "16" to get 41 - and we're back to the "READY" display.
  315.  
  316.   Now, what if you want to square 41? Just press F5, it will announce
  317. "square", and press the ENTER key to get 1681. Once again the "READY"
  318. display is gone, signifying that we're starting another calculation.
  319.  
  320.   Press the "EQUALS", and the word "READY" comes back. This is like
  321. saying just that some number followed by the equals key is itself. 
  322.  
  323.   Now clear the calculator again. Type in "3+4+". The display will
  324. show a subtotal of 7. Now, at this point, press F5, it will announce
  325. "square". Press the ENTER key to select this, and you'll get "49".
  326. Press the EQUALS key, and you'll get "56". This is something like an
  327. AUTO-OPERATION. We hadn't entered a number after the final "+" sign,
  328. so the "square" function used the number that was displayed. 
  329.  
  330.   This is important to remember. When a number hasn't been entered
  331. since the last BINOP and you then use a FUNCTION key, then that
  332. function key will use the currently-displayed number or subtotal in
  333. lieu of a number explicitly supplied by you. I don't like this kind
  334. of feature myself because it's too error-prone, but for consistency
  335. with the way most scientific calculators work I went ahead and
  336. implemented it this way.
  337.  
  338.   Now let's try one more thing. Clear the calculator once again. Type
  339. in "8+2". Press F5 and it will announce "Square". Press the ENTER key
  340. to implement this, and it will square 2 to get 4. Now press F5 again,
  341. and again it will announce "square". Press the ENTER key to select
  342. this again, and it will square the 4 to get 16. So you can apply
  343. functions over and over like this and let their effects on a single
  344. number build. You only leave your current place in things when you
  345. enter another BINOP, an EQUALS sign, or a parentheses. So now press
  346. "+" and the display will show a subtotal of 24, which is eight plus
  347. two squared twice. Now type in a "5" and press the EQUALS key to get
  348. 29.
  349.  
  350.   I've tried to arrange the functions logically. F1 gives the SINE of
  351. a angle, shifted-F1 gives the arc sine, control-shifted F1 gives the
  352. hyperbolic sine, and as soon as I find the equations alt-shifted-F1
  353. will give the arc-hyperbolic sine. F2 works similarly for the COSINE,
  354. and F3 for the TANGENT. You'll also find square, square root, log,
  355. ten to the X, natural log, two to the x, 1/x, Y to the X, the Xth
  356. root of Y, percent, Y factorial, and so on. F4 selects DEGREES,
  357. RADIANS or GRADS for angular units (The default is RADIANS) and we'll
  358. have more to say about F4 and some of it's counterparts later. If you
  359. would prefer to have things arranged differently, then another later
  360. section will tell you how you can do that.
  361.  
  362.   Although the reciprocol key names itself for the demo version of
  363. the program, the key has been disabled for that version. IF you try
  364. to use it, it will simply leave it's argument unaffected.
  365.  
  366.  
  367. FUNCTION BINOPS
  368. ===============
  369.  
  370.   F6 in it's unshifted, shifted, and control-shifted states gives you
  371. Y to the X, the Xth root of Y, and Percent functions respectively. As
  372. mentioned before, these are really BINOPS similar to the add,
  373. subtract, multiply, and divide keys and can be used identically.
  374. However, they're usually thought of as functions and are
  375. rarely-enough used that I placed them with the functions and also
  376. made them self-identifying, so that you can "hunt" for the right key
  377. and then select it using the ENTER key.
  378.  
  379.   Let's try an example. Clear the calculator. Type in "8+5", then
  380. press F5 and it will announce "square". Instead of pressing ENTER,
  381. now press F6. It will announce "Y to the X". Press the ENTER key. The
  382. display will clear and the letters "Y2X" will appear just to confirm
  383. what you are doing and to remind you that now the calculator needs
  384. the "x" part of this operation. Now press "3", then the "plus" key.
  385. You'll get a subtotal of "133" - which is 8 plus 5 to the third - and
  386. type in "4=" to get an answer of 137. 
  387.  
  388.   Now let's do something differently. Clear the calculator. Type in
  389. "3 + 2". Press F6 again,  and it will announce "Y to the X". Press
  390. the ENTER key to select it, then type in "(1+3". So far the Y to the
  391. X function hasn't been performed, because it's waiting for us to
  392. complete our expression. Now type the right parentheses. The 1 will
  393. be added to the 3 to get 4, which will be shown as a subtotal. Press
  394. the EQUALS key and then two will be taken to the fourth power (which
  395. is 16) and added to 3 to get 19.
  396.  
  397.   So just like the add, subtract, multiply, and divide, you can use
  398. these other BINOPS (Y to the X, etc) with individual numbers on each
  399. side or with whole expressions enclosed in parentheses.
  400.  
  401. MEMORY REGISTERS
  402. ================
  403.  
  404.   BigCalc has 26 memory registers, one for each letter of the
  405. alphabet. First, let's store a number. Clear the calculator. Type in
  406. "3.141592654", which the oft-used value of PI. The TAB key stores
  407. numbers, so press it and it will annnounce "STORE". It is now waiting
  408. for you to select a letter key. Prss the letter "a" and the display
  409. will say "STORE A". Press "B" and it will say "STORE B". So far
  410. nothing has happened. The STORE function names off the letter keys so
  411. voice and braille users can be sure they have the desired key. Now
  412. press the letter "P" (which is a handy abbreviation for "PI") and
  413. then press the ENTER key to select this as the proper place to store
  414. the number. 
  415.  
  416.   You'll now be back to the previous display. Clear the calculator
  417. again. Now type in "2*". Tab stores numbers, so shift-tab recalls
  418. them. Press shift-tab and it will announce "RECALL". Like STORE, it's
  419. waiting for you to select the proper letter key. Press the letter  "A"
  420. and it announces "RECALL A", followed by whatever value happens to be
  421. stored un A. Press "B" and it announces "RECALL B", followed once
  422. again by whatever value happens to be stored in "B". Press
  423. "P" and it announces "RECALL P", followed by the value we type in
  424. earlier. Press the ENTER key to select this register. It's contints
  425. have now been substituted exactly as if you had manually typed them
  426. in. So now we have 2 * 3.141592654. Functions keys can now be used on
  427. this value just as if you had manually typed it in. Go ahead and
  428. press F5, and it will announce "square". Press the ENTER key to
  429. select this function and PI will be squared, then press the equals
  430. key and that will be added to the two.
  431.  
  432.   Whenever you exit BigCalc using control-C, these registers will be 
  433. saved to disk. When you run the program again later, they'll be read 
  434. back. No heavy-duty attempts at warnings or error-checking are done. 
  435. If the file can't be read when BigCalc first runs, then all memory
  436. locations will be cleared to zero. If a file can't be written - for
  437. example, because of a write-protected diskette - then the program
  438. just exits to DOS without warning that the registers weren't saved.   
  439.  
  440.  
  441. CALCULATOR MODES:
  442.  
  443.   Depending on the need of the moment, you may wish to have numbers
  444. displayed in different ways. Sometimes you'll want all 12 digits of
  445. precision, other times you'll only be adding up dollars and cents,
  446. and so on. You may also prefer "normal" numbers, or you may wish them
  447. to be expressed in "Scientific" or "Engineering" notation. You also
  448. may prefer to express angles in Degrees, Radians, or Grads. Let's
  449. take these one by one.
  450.  
  451.   First angular units: F4, shifted F4, and control-shifted F4 selects
  452. Degrees, Radians, and Grads in that order. The default is RADIANS.
  453. You use these keys just like you would any other function key. Press
  454. it, it announces it's name, then press the ENTER key to select it.
  455. You can indeed change units in the middle of a calculation. That's
  456. sometimes handy, but it's also error-prone if you aren't well
  457. familiar with BigCalc because of course it only affects operations
  458. that are pending or haven't been entered yet. For safety, you may
  459. wish to only change units when the "READY" prompt is showing.
  460.  
  461.   These are NOT conversion keys. They simply tell the trigonometric
  462. functions, for example, that a "4" means "4 degrees" and not "4
  463. Radians", so you will see no change in numbers.
  464.  
  465.  (The rest of the keys in this section control how numbers are
  466. displayed. Whenever you use these keys, no change will be made to the
  467. number currently displayed but the change will take place with the
  468. next operation. If you're at the READY prompt and make use one of the
  469. following functions, then you can just press the "=" key to get the
  470. current number to be displayed in the new format.)
  471.  
  472.   Next are the NORMAL, SCIENTIFIC, and ENGINEERING modes. NORMAL
  473. displays numbers without using an exponent unless those numbers
  474. exceed 12 digits to the left of the decimal point or are smaller than
  475. about 10 to the minus 11, in which case it switches automatically to
  476. Scientific mode. In Scientific mode, all numbers are expressed as a
  477. single digit to the left of the decimal point, all other digits to
  478. the right, the letter "E", and a power of ten. Engineering mode is a
  479. variation on the Scientific mode in which the decimal point is
  480. shifted to the right until the power of ten is an even multiple of
  481. three - for example, ten to the third, ten to the sixth, ten to the
  482. minus 12th, and so on.
  483.  
  484.   Shifted 2, 3, and 4 ( The "@",. "#", and "$" keys) select these
  485. three modes. Like the other function keys, they announce their names
  486. and are selected using the ENTER key. Although these keys are
  487. primarily intended to be used only at the READY prompt, there are
  488. certain other points in a calculation where you can use them. If you
  489. can't use them at a particular point, they'll just beep at you
  490. instead of identifying themselves and no harm will be done. 
  491.  
  492.   By default, trailing zeroes are always suppressed. If you want
  493. them, you can use the shifted-5 key, which will announce "toggle
  494. zeroes". Selecting this once enables all trailing zeroes and
  495. selecting it again turns them off again. 
  496.  
  497.   Commas make it a lot easier to keep track of the thousands,
  498. millions, billions, and so on. By default, commas are OFF. You can
  499. use shifted-6 to toggle commas off and on. 
  500.  
  501.   Finally, you can control how many digits of precision are
  502. displayed. All calculations will continue to be taken out to 15
  503. decimal places, but you can round the displayed value all the way down
  504. to two digits. This is done with the "fix digits" key, which is the
  505. exclamation point. This key works slightly differently depending on
  506. which display mode the calculator is in.
  507.  
  508.   In the NORMAL mode, it controls how many decimal places are shown
  509. to the right of the decimal point. This is handy when working with
  510. dollar amounts. Only if a number grows so large that significant digits
  511. would be lost will fewer than the selected decimal places be shown to
  512. the right of the decimal point.
  513.  
  514.   In the SCIENTIFIC and ENGINEERING modes, this function instead
  515. controls how many total digits will be displayed. As previously
  516. mentioned, the calculations will continue to be performed to 15
  517. decimal places, but will then be rounded to the specified number of
  518. digits.
  519.  
  520.   Finally, the version of BigCalc which has been optimized for voice
  521. synthesizers throws in one extra trick which isn't in this demo.  A
  522. large number can be broken down and appropriate letter groups
  523. suffixed with the words "trillion", "billion", "million", "thousand"
  524. and so on. In the Engineering mode, numbers are suffixed with the
  525. words "mega", "kilo", "milli", "micro", and so on.
  526.  
  527. RANDOM NUMBERS
  528. ==============
  529.   BigCalc includes a pseudo-random number generator. F9 generates a
  530. 12-digit random number between 0 and 1. The random sequence will be
  531. the same each time you run the program unless you choose to "seed"
  532. the random-number generator. You can randomly seed it - in which case
  533. the "seed" is generated using the computer clock - or you can
  534. manually select the "seed" so that you can repeat the same
  535. pseudo-random sequence later. Shifted-F9 lets you manually select the
  536. seed, and control-F9 selects a time-generated seed.
  537.  
  538. VIEW BUFFER
  539. ===========
  540.  
  541.   The trace buffer was originally installed as a debug tool so I
  542. could develop the syntax for the programmable version of BigCalc. It
  543. worked so nicely for other things that I cleaned it up a little and
  544. left it in place for those who might occasionally need it's features.
  545.  
  546.   As your computations are perrformed, BigCalc generates a list
  547. containing the various operations and values. Each line on the list
  548. is in the form of an operation name or symbol followed by a number
  549. that was operated on. This list contains everything you need to know
  550. to reconstruct a chain of computations, and in addition you can add
  551. your own notes to the list as you go.
  552.  
  553.   To be sure that notes go at the expected places, you can only add
  554. notes at certain points in a computation. At any other point you'll
  555. get beeped at. Otherwise if you tried to annotate a currently
  556. displayed number the note might actually end up several numbers away.
  557. This is a peculiarity of the parser I'm using and unfortunately there
  558. isn't anything that can be done about it without re-writing large
  559. parts of the program. But about 90% of the time you shouldn't be
  560. prevented from adding a note whenever you wish.
  561.  
  562.  To add a note, just press the double-quote key. It will announce
  563. "annotate listing". Press the ENTER key to select this and you'll be
  564. prompted to "type note". Type in your note, press the ENTER key, and
  565. the note will be added to the list. You'll then be taken back to
  566. wherever you were when you pressed the double-quote key and can
  567. proceed with your computation.
  568.  
  569.   To view the list, press the question-mark key. It will announce
  570. "view buffer". Press the ENTER key to select this. Now you can use
  571. the HOME key to go to the start of the list, the END key to go to the
  572. end, and the up and down-arrow keys to go one line at a time. Without
  573. exception, every line starts with either an operator or an
  574. abbreviated function name. Most are self-explanatory and quite closly
  575. resemble what is displayed when performing computations. 
  576.  
  577.   Comments that have been added start with a double quote. If you go
  578. to the very start of the list, you will see the word "RESET", which
  579. was generated when the calculator engine was reset when BigCalc first
  580. started to run. Immediately following that will be the word "CLEAR",
  581. which signifies that the display was cleared. Below that will be a
  582. comment, which will be the time and date reported by the computer,
  583. and then finally a "0.0" which is the number that was displayed right
  584. after the calculator was cleared.
  585.  
  586.   From here on out, you can fairly well follow everything simply by
  587. going from the number to the operator that starts the following line,
  588. the number that follows that, the operator on the line after that,
  589. and so on. Subtotals will be prefixed with the word "SUBTL". Function
  590. keys have names that can be up to five letters long - TAN for
  591. "tangent", "ATAN" for "Arc Tangent", "TANH" for "hyperbolic tangent",
  592. "LOG" for base ten log, "LN" for natural log, and so on. 
  593.  
  594. Occasionally, a number cannot be listed immediately following an
  595. operator. For example, consider "3+5*(2+6)=". We start out with just
  596. a "3", then the next line will have "+ 5". The next line starts with
  597. an asterisk all right - but until the closing parentheses is found,
  598. BigCalc has no idea what number goes here. The rule also is that
  599. every line except the first must start with an operator and there can
  600. be no more than one operator on any one line. So the "*" and the "("
  601. can't be allowed on one line. Rather than just leaving a blank after
  602. the asterisk, I put in three periods where the number would go, to
  603. signify that it is unknown at the moment, and then proceed with the
  604. opening parentheses on the next line.
  605.  
  606.   Just as the arrow-keys go line-by-line, the page-up and page-down
  607. keys take you to the previous or next comment. This is helpful when
  608. you're looking for some value that you've annotated.
  609.  
  610.   If some of that seems a little strange - well, don't forget that
  611. this will hopefully eventually evolve into a language that will allow
  612. users to program their own function keys. This list is basically how
  613. such a program would be stored in memory so that it could be played
  614. back later. 
  615.  
  616. CHANGE SIGN and ENTER EXPONENT
  617. ==============================
  618.    So far we've entered only simple, positive numbers. What if you
  619. need an exponent or need to change the sign of a number? The
  620. UNSHIFTED reverse-apostrophe key is used for entering an exponent,
  621. and the backslash key for changing a number sign while entering the
  622. number. Though this might seem a bizzarre choice of keys, it places
  623. them all on a row with the number keys and in practice has worked
  624. quite well.
  625.  
  626.   Clear the calculator. Now type in "6.23". Press the backslash key
  627. and this will be changed to -6.23. Press the backslash key again and
  628. the negative sign will go away. Enter a the digits "56", and then
  629. press the backslash sign again. So far, you can change the sign of the
  630. number without interfering with the entry of digits.
  631.  
  632.   You can use the rubout key to back up over digits and re-enter the
  633. number, but it won't back up over the negative sign. The only way to
  634. change the sign of that number is with the backslash key.
  635.  
  636.   Now, with the number "-6.2356" entered, press the
  637. reverse-apostrophe key (be sure not to shift this key or you'll just
  638. clear the calculator!). BigCalc will now append a space, a capitol
  639. letter "E", and another space to your previously-entered number. At
  640. this point it's too late to change your mind - you can't go back and
  641. change the number. Go ahead and type in the number "125". What you
  642. should now have is "-6.2356 E 125". Press the backslash key, and
  643. you'll have "-6.2356 E -125". So now the backslash key affects the
  644. sign of the exponent.
  645.  
  646.   Now press the "+" key because we're going to add this to something.
  647. Type in "123.456", press the reverse-apostrophe key, type in "123",
  648. then press the backslash key to get "123.456 E -123". Now press the
  649. equals key and you'll get your total. Don't bother trying to check
  650. this on a pocket calculator - I have yet to see on that can handle
  651. exponents smaller than ten to the minus ninety-ninth!
  652.  
  653.   Anyway, that's how you change the sign of a number while entering
  654. it and also tack on a power of ten.
  655.  
  656.   If you want to change the sign of a number that's already in the
  657. calculator - for example, the result from a previous calculation -
  658. then for now you'll need to use unshifted F10, which will announce
  659. "change sign". You should not, however, use this function key when
  660. actually entering a number unless all digits and the exponent are
  661. already entered to your satisfaction.
  662.  
  663. THE ESCAPE KEY
  664. ==============
  665.  
  666.   The ESCAPE key serves two related purposes. When entering a number,
  667. you can use it as a "clear entry" key to erase the whole number and
  668. start over. If you start searching for a function key and then change
  669. your mind, then you can press the ESCAPE key to get back to where
  670. your were before starting to search for a function.
  671.  
  672.  
  673. CUSTOMIZING KEYS
  674. ================
  675.   Everybody has their own way of organizing keys and functions,and
  676. some of my choices that seem perfectly logical to me will appear
  677. bizzarre to others. By using the /keys configuration mode, you can
  678. re-arrange BigCalc's keys to suit your own preferences.
  679.  
  680.   Be sure the disk containing BCDEMO is not write-protected. Log onto
  681. the disk and at the DOS prompt type "BCDEMO /keys". You'll get a
  682. message that says "configuring keys (any key)". Go ahead and press
  683. any key, and you'll be presented with the name of a function key, a
  684. dash, and the name of the key to which it has been assigned. You can
  685. use the arrow keys to go up and down an entire list of these function
  686. names and key assignments. When you get to one that you want to
  687. assign, then just press the enter key.
  688.  
  689.   At that point, you'll be asked to press the new key. Press the
  690. desired key, the function will be assigned to it, and you'll hear a
  691. rapid-fire triple beep to let you know that the assignment was made.
  692. The function name will then be displayed along with the new key name
  693. and you are ready to use the arrow keys again.
  694.  
  695.   If you want to totally disable a function key, then instead of
  696. pressing a key to assign it to, press the ENTER key. If a function
  697. key has been disabled, then instead of being fillowed by the name of
  698. a key, the function name will be followed by the word "OFF". To
  699. re-enable that function later, all you have to do is assign it to a
  700. key again.
  701.  
  702.   When you are done assigning keys, press the ESCAPE key and you'll
  703. be asked if you want to save the changes to disk. Press "N" if you
  704. don't or "Y" if you do. Next BigCalc will try to update itself on
  705. disk with the new information. If it fails for any reason, it will
  706. continue to beep and inform you until you either correct whatever the
  707. problem may be or decide to give it up.
  708.  
  709.   Rather than spending an hour changing all the keys and then losing
  710. all that work because of a disk problem, you're better off to change
  711. only a half-dozen or a dozen keys at a time and save the work
  712. in-between. Once you exit this routine you will be placed back at the
  713. DOS prompt and will have to re-run the program to change more keys.
  714.  
  715.   There are a few quirks you need to know about. First, BigCalc
  716. doesn't check to see if you've assigned a key to more than one
  717. function. If you've assigned a key to a function and it doesn't seem
  718. to be working, then you may have assigned the key to do something
  719. else. 
  720.  
  721.    Second, you cannot assign any functions to the following keys: The
  722. ENTER key, any of the shift keys, the NumLock, CapsLock, Scroll Lock,
  723. Sys Request, or PrintScreen keys, the ESCAPE key, the numbers 0
  724. through 9, or the punctuation symbols " + - * / = ( )". However, you
  725. CAN assign functions to tha alphabet keys and they will NOT conflict
  726. with the storage registers that are also assigned to the alphabet
  727. keys.
  728.  
  729.   Third, and surprisingly, not every key on the keyboard can be used
  730. with the shift, control-shift,  and alt-shift keys. The computer
  731. simply doesn't pass along the information to user programs, and
  732. though there are tricks to circumvent this limitation they would
  733. likely run into serious problems with some clone computers. Also, the
  734. keypad-5 key in it's unshifted state with the NumLock off isn't
  735. supposed to be a valid key and isn't recognized by most systems.
  736.  
  737.   In both the second and third cases above, when you try to assign a
  738. function to a key that is not allowed or is not recognized by the
  739. computer, then nothing happens at all and you don't hear the fast
  740. triple-beep that signifies that the assignment has been made. You
  741. then have to press a different key to assign the function to.
  742.  
  743.   Fourth, TAB is defined as control-I, and pressing the TAB key is
  744. exactly the same as pressing control-I. If you try to assign
  745. different functions to each key, then the effect will be the same as
  746. if you had assigned the two functions to the same key.
  747.  
  748.   Fifth, certain keys are duplicated. For example, a numeral "1" on
  749. the numeric keypad is the same as a numeral "1" on the alphabetic
  750. keyboard, and a "plus" on the numeric keypad is the same as a "+" on
  751. the alphabetic keyboard, and so on. These are what I call "extra"
  752. keys, and they can be re-assigned right along with the other function
  753. keys. They will be listed as you get towards the end of the list of
  754. functions. You can also disable them as mentioned above, or you can
  755. assign functions over them. With the exception of the keypad-five key
  756. mentioned above, these produce the same results whether or not the
  757. NumLock is turned on.
  758.  
  759.   Sixth, to gain access to some keys that are normally not
  760. recognized but that I think a lot of people will want to use, I did
  761. take a chance on accessing the keyboard on a slightly different than
  762. normal level. In a few cases this will lead to innaccurate
  763. descriptions of what keys the functions are assigned to. If pressing
  764. the indicated key doesn't activate the desired function, and if
  765. you're sure that no other functions are assigned to that key, then
  766. try assigning the function as above. Whether or not the
  767. key-description is accurate, the above procedure assigns functions to
  768. the keys that are actually pressed. 
  769.  
  770.   Seventh, when keys are named, their unshifted name is given
  771. preceded by the word "shift", "alt", or "control". For example, a
  772. percent would be displayed not as a percent symbol, but as "shift 5".
  773. BigCalc may also recognize that a key has been pressed, but may not
  774. know what the name of the key is. In this case the key will be
  775. described as "not recognized", but you can still assign a function to
  776. it if you wish. 
  777.  
  778.   Finally, multiple shift keys - for example, control-alt F10 - are
  779. ignored. Only one level of shift is recognized. The alt key takes
  780. priority, so that holding down the shift key, the control-shift key,
  781. and the alt-shift key simultaneously is the same as holding down just
  782. the alt-shift key. The control-shift takes the next priority, so that
  783. holding down the shift key and the control-shift key is the same as
  784. holding down just the control-shift key.
  785.  
  786.   If you're going to do some major re-arranging, it's wise to plan
  787. very carefully in advance. BigCalc needs most of the keys on the
  788. keyboard at one time or another, so assigning large numbers of keys
  789. wholesale without any prior planning will likely just get you backed
  790. into a corner and waste a lot of time. Be sure to take account in
  791. your planning that not all control- and alt-shift key combinations
  792. will be recognized by the computer. 
  793.  
  794.   To make it easier to learn which keys your system will recognize
  795. and which it won't I've provided one last mode you can enter from the
  796. DOS prompt. Type "BCDEMO /keyboard", or "BCDEMO /big /keyboard" if
  797. you want to use the large-letter display. Then as you press the
  798. various keys only their names will be displayed. If nothing happens
  799. when a key is displayed then that key isn't passed along by the
  800. computer and you can't assign a function to it. Use control-C to exit
  801. when done.
  802.  
  803.   And that is pretty much an informal whirlwind tour through the demo
  804. version of BigCalc. Although I'm happy with the program as it is,
  805. part of the reason for distributing this demo is so people can play
  806. with it and offer up their own suggestions and ideas. Feel free to
  807. suggest changes or extra features whether or not you choose to
  808. purchase the full program.  -- Chuck
  809.  
  810.  
  811.  
  812.   
  813.   
  814.  
  815.  
  816.   
  817.  
  818.  
  819.  
  820.  
  821.