The following is documentation for the calculator macros found
under the settings directory of JFW.

This is documentation for the macros I wrote for the scientific
calculator. These macros are intended to be consistent with those
written for the standard calculator.  Where possible, I tried to
keep the hot keys used by WINDOWS as macro keys.  When this was not
possible, I added alt, shift, and/or control keys.

     Another issue that I encountered while writing these macros
was the fact that, when in Beginner and Intermediate modes, JAWS
doesn't tell you whether the Hex, Dec, Oct, and Bin radio buttons
are checked with either cursor. Also, in these modes, these buttons
can't be accessed individually. They can only be accessed as an
entire row.
To overcome this problem, I took advantage of the WINDOWS hot keys
that check these radio buttons. In fact, these macros rely entirely
on the hot keys that WINDOWS provides for scientific functions.

     Also, some Mathematical functions can't be performed with all
values Examples of such functions are that you can't get the square
root of a negative number, the arc sine of 2, etc.  What I couldn't
do with the macro language was to verify that the value in the
display was incompatible with the macro being invoked.
     Finally, I discovered that there was no way to determine which
calculator mode you were currently using, standard or scientific. 
To handle this, I took advantage of the fact that certain character
strings are unique to the scientific calculator.  Thus, I searched
for a specific character string.  If found, the calculator is in
scientific mode.  This facilitated a test whereby, if the
calculator wasn't in scientific mode, a scientific function
couldn't be performed.  Since the hot key shift+2 does the square
root in standard, and the square in scientific mode, the shift+2
macro can literally decide for itself which function will be
performed.  Changes had to be made to the q macro to accommodate
both modes.  This also facilitated the creation of an insert+t
macro, which tells you which calculator is active.  
     These are my standard and scientific macros.
d reads the value in the display.
= performs the equals function.
e performs the equals function as well.
This was done so that, after a calculation, the user has an easily
accessable key to get the answer.
c clears the display.  
Control+c clears the calculator.  
Alt+c clears the memory.
S stores displayed value in memory.
a adds display to memory.  
Alt+r recalls value from memory.
N changes the sign of the display.
R gets the reciprocal of displayed value.
Q gets the square root of the displayed value.
Shift+2 squares, or does the square root, of  the displayed value, 
    depending on whether the calculator is in standard or
     scientific mode.
z toggles the calculator between standard and scientific modes.
The following are the scientific macros.  It is very important to
note that, if you try to invoke these macros in the standard
calculator, you will get a message stating that you must be in
scientific mode in order to perform this macro.  this is why I
wrote the z macro.  The exception to this is the
insert+t macro, since it tells you where you are.
Shift+d converts a value to decimal.
     Please note that, when entering a value to convert, it is    
 up to the user to know which number system the value is     
currently in.  I thought of having the macro see which      radio
button was checked, but found that this wasn't
     possible.  So, I created macros to switch number systems,    
 (described later), which the user should invoke prior to     
invoking the conversion macros.
     Since the letters A through F are used for some macros in the
standard calculator, and since I wanted to preserve the standard
macros, I created six macros to enter the values A through F in the
hexadecimal mode.  These macros are:
insert+a enters the value A into the calculator.
insert+b enters the value B into the calculator.
insert+c enters the value c into the calculator.
insert+d enters the value d into the calculator.
insert+e enters the value e into the calculator.
insert+f enters the value f into the calculator.
Shift+h converts a value to hexadecimal.  The same statements apply 
    to the Hex macro as mentioned above.
Shift+o converts to octal, with the same provisions.
Finally, shift+b converts to binary.
F5 puts the calculator in hexadecimal mode.  This means that, when 
    invoked, the calculator will accept the values A through     
F as valid numeric values.  After this macro is invoked,      the
four described above may be used for conversion.
F6 puts the calculator in decimal mode, allowing you to convert   
  from decimal. 
F7 puts the calculator in octal mode.
F8 puts the calculator in binary mode.
When these macros are invoked, JAWS says "decimal mode", "binary
mode", etc. Another approach would have been to create 12 macros,
one for each combination, since there are four number systems from
which to pick combinations of two.  But I thought that this would
be to hard to remember. In fact, it was too confusing for me.

     There are also macros for trigonometric functions.  As with
the number system macros, it is necessary to put the calculator in
degree, radian, or gradient mode.
F2 puts the calculator in degree mode.  When invoked, JAWS Says   
  "degree mode". 
F3 puts the calculator in radian mode, and JAWS verifies these    
 settings. 
F4 puts the calculator in gradient mode, with verification. Please 
    note that to use these macros, and the trigonometric
     macros described below, the calculator must be in decimal    
 mode.
The trigonometric functions are as follows:
m converts from degree format to degree-minute-second format. That 
    is, 30.125 would become 30.073 for 30 degrees, 7 minutes,     
and 30 seconds.
Alt+m converts from degree-minute-second format back to degrees. 
    Thus, as in the previous example, 30.073 would become
     30.125. 
Shift+s displays and speaks the sine of the display.
alt+s displays and speaks the arc sine of the display.
control+s displays and speaks the hyperbolic sine of the display.
shift+control+s displays and speaks the arc hyperbolic sine of the 
    display. Although control was used for hyperbolic, and      alt
for arc, I didn't want to use control+alt for arc
     hyperbolic, since WINDOWS uses this combination for
     shortcut keys
o displays and speaks the cosine of the display.
alt+o displays and speaks the arc cosine of the display.
control+o displays and speaks the hyperbolic cosine of the display.
shift+control+o displays and speaks the arc hyperbolic cosine of  
   the display. 
t displays and speaks the tangent of the display. 
alt+t displays and speaks the arc tangent of the display.
control+t displays and speaks the hyperbolic tangent of the     
display. 
shift+control+t displays and speaks the arc hyperbolic tangent of 
    the display.

     There are also logarithm and power function macros.
These macros all use 10 and e as their bases, since these are the
most commonly used ones.
l speaks and displays the common logarithm of the displayed value.
alt+l speaks and displays 10 to the x power, where x is the value 
    in the display when the macro is invoked.
shift+e speaks and displays e to the x power, where x is the value 
    in the display when the macro is invoked.
alt+e speaks and displays the natural logarithm of the value in the 
    display.

     Finally, there are some macros that perform miscellaneous
numeric functions useful in many Mathematical applications. 
shift+1 (!) performs the factorial of the displayed value, and    
     speaks it. Note that only integers can be used.  If you      
enter a nonintegral value, the fractional portion will be     
ignored, and only the integer part will be used.  Thus,     
7.1225! is the same as 7! or 5040.  I feel that this is      an
enhancement, since the WINDOWS hot key "!", when
     handling this situation, says "result is too large to
     display". 
shift+f speaks and displays the
     fractional part of the display. Thus, 45.771 would become    
 0.771.  In like manner, there is an i macro. 
i speaks and displays the integer part of the displayed value.  In 
    the previous example, 45.771 would become 45.
q performs the square root of the displayed value, and speaks it.
alt+q squares the displayed value, and it is spoken.
Similarly, shift+3 gets the cube root of the display, and alt+3
performs and speaks the cube.
insert+t tells you which calculator is active.  Previously,
insert+t gave the same result regardless of which calculator was
active.

     In closing, I hope that these macros find their way to other
users who would benefit from them.  In setting up the macro key
definitions, I tried to keep a few guidelines.  First, I wanted to
make the macro keys easy to remember, such as D for decimal, i for
integer, and f for fraction. Another guideline I tried to use was
the Mathematical notation, such as ! for factorial.  Finally, an
attempt was made to be consistent with multiple and inverse
functions.  Wherever possible, I tried to use alt for inverse,
although this wasn't possible at times.

