home *** CD-ROM | disk | FTP | other *** search
- Path: uunet!munnari!basser!richb
- From: richb@sunaus.sun.oz.AU
- Newsgroups: comp.sources.misc
- Subject: Calctool v2.1 - a Sun calculator. Part 2 of 2.
- Message-ID: <1193@basser.oz>
- Date: 22 Feb 88 11:57:43 GMT
- Sender: john@basser.oz
- Lines: 894
- Approved: john@basser.cs.su.oz.AU
-
- This is V2.1 of a desktop calculator for the Sun workstation.
- Currently this version works under SunView, but NeWS and X.11 versions
- will be coming soon.
-
- Rich Burridge, JANET richb%sunaus.oz@uk.ac.ucl.cs
- ACSnet richb@sunaus.oz UUCP {uunet,hplabs,mcvax,ukc}!munnari!sunaus.oz!richb
- PHONE: +61 2 436 4699 ARPAnet rburridge@Sun.COM
- Sun Microsystems, Unit 2, 49-53 Hotham Pde, Artarmon, N.S.W. 2164, AUSTRALIA.
-
- ------CUT HERE------CUT HERE------
- #! /bin/sh
- # this is a shell archive, meaning:
- # 1. Remove everything above the #! /bin/sh line
- # 2. Save the resulting text in a file.
- # 3. Execute the file with /bin/sh to create the files:
- # calctool.h
- # color.h
- # button.icon
- # calctool.icon
- # help.cursor
- # Makefile
- # README
- # calctool.help
- # patchlevel.h
- # This archive created: Fri Feb 19 19:00:00 EST 1988
- #
- #
- export PATH; PATH=/bin:$PATH
- #
- if [ -f calctool.h ]
- then
- echo shar: will not over-write existing file calctool.h
- else
- echo shar: extracting 'calctool.h', 3692 characters
- cat > calctool.h <<'Funky_Stuff'
-
- /* calctool.h
- *
- * This files contains all the global definitions used by the calctool
- * calculator program.
- *
- * Copyright (c) Rich Burridge - February 1988.
- * Sun Microsystems, Australia - All rights reserved.
- *
- * Basic algorithms by Ed Falk, Sun Microsystems, Mountain View.
- *
- * Includes ideas and code from:
- * Rich Baughman, Consumer Financial Institute, Newton, MA
- *
- * Version 2.1.
- *
- * No responsibility is taken for any errors or inaccuracies inherent
- * either to the comments or the code of this program, but if
- * reported to me then an attempt will be made to fix them.
- */
-
- #include <stdio.h>
- #include <strings.h>
- #include <ctype.h>
- #include <math.h>
-
- char *sprintf() ;
-
- #define CLOSE (void) close /* To make lint happy. */
- #define FCLOSE (void) fclose
- #define FGETS (void) fgets
- #define FPRINTF (void) fprintf
- #define IOCTL (void) ioctl
- #define READ (void) read
- #define SPRINTF (void) sprintf
- #define SSCANF (void) sscanf
- #define STRCAT (void) strcat
- #define STRCPY (void) strcpy
- #define STRNCAT (void) strncat
- #define STRNCPY (void) strncpy
- #define WRITE (void) write
-
- #define SMALLFONT "/usr/lib/fonts/fixedwidthfonts/screen.r.7"
- #define NORMALFONT "/usr/lib/fonts/fixedwidthfonts/screen.b.14"
- #define BIGFONT "/usr/lib/fonts/fixedwidthfonts/gallant.r.19"
-
- #define HELPCURSOR 0 /* Cursor types. */
- #define MAINCURSOR 1
-
- #define BIN 0 /* Base definitions. */
- #define OCT 1
- #define DEC 2
- #define HEX 3
-
- #define DEG 0 /* Trigonometric types. */
- #define GRAD 1
- #define RAD 2
-
- #define OP_SET 1 /* Operation text item settings. */
- #define OP_CLEAR 2
- #define OP_NOP 3
-
- #define BBORDER 10 /* No of pixels in border. */
- #define BCOLS 6 /* No of columns of buttons. */
- #define BGAP 5 /* No of pixels between buttons. */
- #define BHEIGHT 52 /* Number of pixels for height. */
- #define BROWS 6 /* No of rows of buttons. */
- #define BWIDTH 44 /* No of pixels for width. */
-
- #define CTRL(n) n - 96 /* Generate control character value. */
- #define DISPLAY 30 /* Calculators numerical display. */
-
- #define EQUAL !strcmp /* For character comparisons. */
- #define EXTRA 4 /* Extra useful character definitions. */
- #define HELPNAME "calctool.help"
- #define MAX_DIGITS 32 /* Maximum displayable number of digits. */
- #define MAXLINE 80 /* Length of character strings. */
- #define MAXREGS 10 /* Maximum number of memory registers. */
- #define MIN(x,y) ((x) < (y) ? (x) : (y))
- #define NOBUTTONS BROWS * BCOLS
- #define THEIGHT (BROWS*BHEIGHT) + ((BROWS-1) * BGAP) + (2*BBORDER)
- #define TITEMS NOBUTTONS*2 + EXTRA /* Total definitions. */
- #define TWIDTH (BCOLS*BWIDTH) + ((BCOLS-1) * BGAP) + (2*BBORDER)
-
- typedef unsigned long BOOLEAN ;
-
- struct button {
- char *str ; /* Button display string. */
- char value ; /* Unique button keyboard equivalent. */
- char opdisp ; /* Display operation code during operation. */
- char color ; /* Color of button portion. */
- int (*func)() ; /* Function to obey on button press. */
- } ;
- Funky_Stuff
- len=`wc -c < calctool.h`
- if [ $len != 3692 ] ; then
- echo error: calctool.h was $len bytes long, should have been 3692
- fi
- fi # end of overwriting check
- if [ -f color.h ]
- then
- echo shar: will not over-write existing file color.h
- else
- echo shar: extracting 'color.h', 2284 characters
- cat > color.h <<'Funky_Stuff'
-
- /* color.h
- *
- * Colormap definitions used by the calctool calculator program.
- *
- * Copyright (c) Rich Burridge - February 1988.
- * Sun Microsystems, Australia - All rights reserved.
- *
- * Basic algorithms by Ed Falk, Sun Microsystems, Mountain View.
- *
- * Includes ideas and code from:
- * Rich Baughman, Consumer Financial Institute, Newton, MA
- *
- * Version 2.1.
- *
- * No responsibility is taken for any errors or inaccuracies inherent
- * either to the comments or the code of this program, but if
- * reported to me then an attempt will be made to fix them.
- */
-
- #define CALC_COLOR "calcolor"
- #define CALC_COLORSIZE 16
-
- #define WHITE 0
- #define RED 1
- #define ORANGE 2
- #define YELLOW 3
- #define LGREEN 4
- #define BLUE 5
- #define MAUVE 6
- #define GREEN 7
- #define PINK 8
- #define LBLUE 9
- #define GREY 10
- #define LGREY 11
- #define LPURPLE 12
- #define BLACK 13
- #define SPARE14 14
- #define SPARE15 15
-
- #define calc_colorsetup(r,g,b) \
- (r)[WHITE] = 255 ; (g)[WHITE] = 255 ; (b)[WHITE] = 255 ; \
- (r)[RED] = 255 ; (g)[RED] = 50 ; (b)[RED] = 0 ; \
- (r)[ORANGE] = 255 ; (g)[ORANGE] = 128 ; (b)[ORANGE] = 0 ; \
- (r)[YELLOW] = 255 ; (g)[YELLOW] = 255 ; (b)[YELLOW] = 0 ; \
- (r)[LGREEN] = 128 ; (g)[LGREEN] = 255 ; (b)[LGREEN] = 128 ; \
- (r)[BLUE] = 50 ; (g)[BLUE] = 128 ; (b)[BLUE] = 255 ; \
- (r)[MAUVE] = 128 ; (g)[MAUVE] = 128 ; (b)[MAUVE] = 255 ; \
- (r)[GREEN] = 0 ; (g)[GREEN] = 158 ; (b)[GREEN] = 158 ; \
- (r)[PINK] = 255 ; (g)[PINK] = 192 ; (b)[PINK] = 192 ; \
- (r)[LBLUE] = 50 ; (g)[LBLUE] = 178 ; (b)[LBLUE] = 255 ; \
- (r)[GREY] = 128 ; (g)[GREY] = 128 ; (b)[GREY] = 128 ; \
- (r)[LGREY] = 200 ; (g)[LGREY] = 200 ; (b)[LGREY] = 200 ; \
- (r)[LPURPLE] = 225 ; (g)[LPURPLE] = 225 ; (b)[LPURPLE] = 255 ; \
- (r)[BLACK] = 0 ; (g)[BLACK] = 0 ; (b)[BLACK] = 0 ; \
- (r)[SPARE14] = 0 ; (g)[SPARE14] = 0 ; (b)[SPARE14] = 0 ; \
- (r)[SPARE15] = 0 ; (g)[SPARE15] = 0 ; (b)[SPARE15] = 0 ;
- Funky_Stuff
- len=`wc -c < color.h`
- if [ $len != 2284 ] ; then
- echo error: color.h was $len bytes long, should have been 2284
- fi
- fi # end of overwriting check
- if [ -f button.icon ]
- then
- echo shar: will not over-write existing file button.icon
- else
- echo shar: extracting 'button.icon', 1933 characters
- cat > button.icon <<'Funky_Stuff'
- /* Format_version=1, Width=64, Height=64, Depth=1, Valid_bits_per_item=16
- */
- 0xFFFF,0xFFFF,0xFFF0,0x0000,0x8000,0x0000,0x0010,0x0000,
- 0x8000,0x0000,0x0010,0x0000,0x8000,0x0000,0x0010,0x0000,
- 0x8000,0x0000,0x0010,0x0000,0x8000,0x0000,0x0010,0x0000,
- 0x8000,0x0000,0x0010,0x0000,0x8000,0x0000,0x0010,0x0000,
- 0x8000,0x0000,0x0010,0x0000,0x8000,0x0000,0x0010,0x0000,
- 0x8000,0x0000,0x0010,0x0000,0x8000,0x0000,0x0010,0x0000,
- 0x8000,0x0000,0x0010,0x0000,0x8000,0x0000,0x0010,0x0000,
- 0x8000,0x0000,0x0010,0x0000,0x8000,0x0000,0x0010,0x0000,
- 0x8000,0x0000,0x0010,0x0000,0x8000,0x0000,0x0010,0x0000,
- 0x8000,0x0000,0x0010,0x0000,0x8000,0x0000,0x0010,0x0000,
- 0x8000,0x0000,0x0010,0x0000,0x8000,0x0000,0x0010,0x0000,
- 0x8000,0x0000,0x0010,0x0000,0x8000,0x0000,0x0010,0x0000,
- 0x8000,0x0000,0x0010,0x0000,0x8000,0x0000,0x0010,0x0000,
- 0x87FF,0xFFFF,0xFE10,0x0000,0x8400,0x0000,0x0210,0x0000,
- 0x85FF,0xFFFF,0xFA10,0x0000,0x85FF,0xFFFF,0xFA10,0x0000,
- 0x85FF,0xFFFF,0xFA10,0x0000,0x85FF,0xFFFF,0xFA10,0x0000,
- 0x85FF,0xFFFF,0xFA10,0x0000,0x85FF,0xFFFF,0xFA10,0x0000,
- 0x85FF,0xFFFF,0xFA10,0x0000,0x85FF,0xFFFF,0xFA10,0x0000,
- 0x85FF,0xFFFF,0xFA10,0x0000,0x85FF,0xFFFF,0xFA10,0x0000,
- 0x85FF,0xFFFF,0xFA10,0x0000,0x85FF,0xFFFF,0xFA10,0x0000,
- 0x85FF,0xFFFF,0xFA10,0x0000,0x85FF,0xFFFF,0xFA10,0x0000,
- 0x85FF,0xFFFF,0xFA10,0x0000,0x85FF,0xFFFF,0xFA10,0x0000,
- 0x85FF,0xFFFF,0xFA10,0x0000,0x8400,0x0000,0x0210,0x0000,
- 0x87FF,0xFFFF,0xFE10,0x0000,0x8000,0x0000,0x0010,0x0000,
- 0x8000,0x0000,0x0010,0x0000,0x8000,0x0000,0x0010,0x0000,
- 0x8000,0x0000,0x0010,0x0000,0xFFFF,0xFFFF,0xFFF0,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000
- Funky_Stuff
- len=`wc -c < button.icon`
- if [ $len != 1933 ] ; then
- echo error: button.icon was $len bytes long, should have been 1933
- fi
- fi # end of overwriting check
- if [ -f calctool.icon ]
- then
- echo shar: will not over-write existing file calctool.icon
- else
- echo shar: extracting 'calctool.icon', 1933 characters
- cat > calctool.icon <<'Funky_Stuff'
- /* Format_version=1, Width=64, Height=64, Depth=1, Valid_bits_per_item=16
- */
- 0x1555,0x5555,0x5540,0x0000,0x2AAA,0xAAAA,0xAA80,0x0000,
- 0x5555,0x5555,0x5540,0x0000,0xFFFF,0xFFFF,0xFE80,0x0000,
- 0x8000,0x0000,0x0340,0x0000,0xBFFF,0xFFFF,0xFA80,0x0000,
- 0xA000,0x0000,0x0B40,0x0000,0xA000,0x0000,0x0A80,0x0000,
- 0xA003,0x0030,0xCB40,0x0000,0xA004,0x8049,0x2A80,0x0000,
- 0xA005,0x8059,0x6B40,0x0000,0xA006,0x8069,0xAA80,0x0000,
- 0xA004,0x8449,0x2B40,0x0000,0xA003,0x0430,0xCA80,0x0000,
- 0xA000,0x0000,0x0B40,0x0000,0xA000,0x0000,0x0A80,0x0000,
- 0xBFFF,0xFFFF,0xFB40,0x0000,0x8000,0x0000,0x0280,0x0000,
- 0x8000,0x0000,0x0340,0x0000,0xBFDF,0xEFF7,0xFA80,0x0000,
- 0xA050,0x2814,0x0B40,0x0000,0xAF53,0x2994,0x0A80,0x0000,
- 0xA154,0xAA55,0x1340,0x0000,0xA253,0x2A54,0xAA80,0x0000,
- 0xA254,0xA9D4,0x4B40,0x0000,0xA454,0xA854,0xAA80,0x0000,
- 0xA453,0x2995,0x1B40,0x0000,0xA050,0x2814,0x0A80,0x0000,
- 0xBFDF,0xEFF7,0xFB40,0x0000,0x8000,0x0000,0x0280,0x0000,
- 0xBFDF,0xEFF7,0xFB40,0x0000,0xA050,0x2814,0x0A80,0x0000,
- 0xA257,0xA994,0x2B40,0x0000,0xA654,0x2A14,0x4A80,0x0000,
- 0xAA57,0x2B94,0x4B40,0x0000,0xAF50,0xAA54,0x8A80,0x0000,
- 0xA254,0xAA54,0x8B40,0x0000,0xA253,0x2995,0x0A80,0x0000,
- 0xA050,0x2814,0x0B40,0x0000,0xBFDF,0xEFF7,0xFA80,0x0000,
- 0x8000,0x0000,0x0340,0x0000,0xBFDF,0xEFF7,0xFA80,0x0000,
- 0xA050,0x2814,0x0B40,0x0000,0xA253,0x2994,0x0A80,0x0000,
- 0xA654,0xAA54,0x0B40,0x0000,0xA250,0xA895,0xEA80,0x0000,
- 0xA253,0x2854,0x0B40,0x0000,0xA254,0x2A54,0x0A80,0x0000,
- 0xA757,0xA994,0x0B40,0x0000,0xA050,0x2814,0x0A80,0x0000,
- 0xBFDF,0xEFF7,0xFB40,0x0000,0x8000,0x0000,0x0280,0x0000,
- 0xBFDF,0xEFF7,0xFB40,0x0000,0xA050,0x2814,0x0A80,0x0000,
- 0xA650,0x2814,0x0B40,0x0000,0xA950,0x2814,0x4A80,0x0000,
- 0xAB50,0x2BD4,0x4B40,0x0000,0xAD50,0x2815,0xFA80,0x0000,
- 0xA951,0x2BD4,0x4B40,0x0000,0xA651,0x2814,0x4A80,0x0000,
- 0xA050,0x2814,0x0B40,0x0000,0xBFDF,0xEFF7,0xFA80,0x0000,
- 0x8000,0x0000,0x0300,0x0000,0xFFFF,0xFFFF,0xFE00,0x0000
- Funky_Stuff
- len=`wc -c < calctool.icon`
- if [ $len != 1933 ] ; then
- echo error: calctool.icon was $len bytes long, should have been 1933
- fi
- fi # end of overwriting check
- if [ -f help.cursor ]
- then
- echo shar: will not over-write existing file help.cursor
- else
- echo shar: extracting 'help.cursor', 193 characters
- cat > help.cursor <<'Funky_Stuff'
- /* Format_version=1, Width=16, Height=16, Depth=1, Valid_bits_per_item=16
- */
- 0x0000,0x03C0,0x07E0,0x0E70,0x0830,0x0030,0x0030,0x0060,
- 0x00C0,0x0180,0x0300,0x0300,0x0000,0x0000,0x0300,0x0300
- Funky_Stuff
- len=`wc -c < help.cursor`
- if [ $len != 193 ] ; then
- echo error: help.cursor was $len bytes long, should have been 193
- fi
- fi # end of overwriting check
- if [ -f Makefile ]
- then
- echo shar: will not over-write existing file Makefile
- else
- echo shar: extracting 'Makefile', 1300 characters
- cat > Makefile <<'Funky_Stuff'
- #
- # Makefile for calctool, a calculator program.
- #
- # Copyright (c) Rich Burridge - February 1988.
- # Sun Microsystems, Australia - All rights reserved.
- #
- # Includes code and ideas from:
- # Rich Baughman, Consumer Financial Institute, Newton, MA
- #
- # Version 2.1.
- #
- # No responsibility is taken for any errors inherent either in the comments
- # or the code of this program, but if reported to me then an attempt will
- # be made to fix them.
- #
-
- BINARIES = calctool
- BINDIR = .
- CFLAGS = -O
- HEADERS = calctool.h color.h
- OBJS = calctool.o functions.o sunview.o
- OTHERS = Makefile README calctool.help patchlevel.h
- SRCS = calctool.c functions.c sunview.c
- IMAGES = button.icon calctool.icon help.cursor
- LIBS = -lm -lsuntool -lsunwindow -lpixrect
-
- all: $(BINARIES)
-
- install: $(BINARIES)
- strip $(BINARIES)
- -mv $(BINARIES) $(BINDIR)
-
- clean:
- rm -f *.o core
-
- lint:
- lint $(SRCS) $(LIBS)
-
- shar:
- shar.sh $(SRCS) > archive.1
- shar.sh $(HEADERS) $(IMAGES) $(OTHERS) > archive.2
-
- calctool: $(OBJS)
- cc -o calctool $(OBJS) $(LIBS)
-
- calctool.o: calctool.c $(HEADERS) patchlevel.h
- functions.o: functions.c $(HEADERS)
- sunview.o: sunview.c $(HEADERS) $(IMAGES)
- Funky_Stuff
- len=`wc -c < Makefile`
- if [ $len != 1300 ] ; then
- echo error: Makefile was $len bytes long, should have been 1300
- fi
- fi # end of overwriting check
- if [ -f README ]
- then
- echo shar: will not over-write existing file README
- else
- echo shar: extracting 'README', 1018 characters
- cat > README <<'Funky_Stuff'
-
- calctool - README - 19th February 1988.
-
- This is V2.1 of a desktop calculator for the Sun workstation.
- Currently this version works under SunView, but NeWS and X.11 versions
- will be coming soon.
-
- This is a complete rehash from the v1.x series, and now includes
- many more mathematical and trigonometrical functions. Memory register
- manipulation has been extended, the user interface tidied up and color
- is now supported.
-
- See the online help or the manual pages for more details.
-
- Thankyou to everybody who has sent me mail suggesting enhancements.
-
- Thanks to Ed Falk at Sun Microsystems (Mountain View) for some of the
- basic algorithms used.
-
- Suggestions for furthur improvement would be most welcome plus bugs,
- comments and flames.
-
- Rich.
-
- Rich Burridge, JANET richb%sunaus.oz@uk.ac.ucl.cs
- ACSnet richb@sunaus.oz UUCP {uunet,hplabs,mcvax,ukc}!munnari!sunaus.oz!richb
- PHONE: +61 2 436 4699 ARPAnet rburridge@Sun.COM
- Sun Microsystems, Unit 2, 49-53 Hotham Pde, Artarmon, N.S.W. 2164, AUSTRALIA.
- Funky_Stuff
- len=`wc -c < README`
- if [ $len != 1018 ] ; then
- echo error: README was $len bytes long, should have been 1018
- fi
- fi # end of overwriting check
- if [ -f calctool.help ]
- then
- echo shar: will not over-write existing file calctool.help
- else
- echo shar: extracting 'calctool.help', 9284 characters
- cat > calctool.help <<'Funky_Stuff'
- _calctool.help_
- _< _
- Left shift n ( < ).
-
- This must be followed by a digit
- in the range 0 to 9 to indicate
- how many places to shift.
- _> _
- Right shift n ( > ).
-
- This must be followed by a digit
- in the range 0 to 9 to indicate
- how many places to shift.
- _BIN _
- Change base to binary ( B ).
-
- The display value is shown in
- binary. A maximum of 32 digits
- are allowed.
- _MEM _
- Toggle register window ( M ).
-
- Display popup window with the
- values of the ten memory
- registers given in the current
- base, to the current accuracy.
- _OCT _
- Change base to octal ( O ).
-
- The display value is shown in
- octal. A maximum of 15 digits
- are allowed.
- _D _
- Hex D (decimal 13) ( d ).
-
- This selection is only valid if
- the current base is hexidecimal.
- _DEC _
- Change base to decimal ( D ).
-
- The display value is shown in
- decimal. This is the default
- base. A maximum of 12 digits
- are allowed.
- _E _
- Hex E (decimal 14) ( e ).
-
- This selection is only valid if
- the current base is hexidecimal.
- _HEX _
- Change base to hexidecimal ( H ).
-
- The display value is shown in
- hexidecimal. A maximum of 12
- digits are allowed.
- _F _
- Hex F (decimal 15) ( f ).
-
- This selection is only valid if
- the current base is hexidecimal.
- _KEYS_
- Toggle button labels ( K ).
-
- Toggle the labels on the calctool
- buttons between the mouse and
- keyboard equivalents.
- _? _
- Calctool Help v2.1. ( ? ).
-
- All calculations performed as
- doubles. The display can be used
- with the [Get] and [Put] function
- keys with other Sunview windows.
- Equivalent keystrokes can be
- found by selecting the KEYS
- button.
-
- If an error condition occurs, you
- must clear the calculator.
-
- >From now on when you select [?]
- you will get help on the next
- selection you make.
- _&32 _
- Get 32 bit unsigned int ( i ).
-
- This is a logical function, that
- will truncate the given number to
- return a 32 bit unsigned integer.
- _STO _
- Store memory register n ( s ).
-
- This must be followed by an
- arithmetic operation (addition,
- subtraction, multiplication or
- division), then a digit in the
- range 0 to 9 to indicate which
- memory register to store the
- current display value in. The
- arithmetic operator is optional
- in which case the current display
- is stored in the memory register.
- _&16 _
- Get 16 bit unsigned int ( h ).
-
- This is a logical function, that
- will truncate the given number to
- return a 16 bit unsigned integer.
- _RCL _
- Retrieve memory register n ( r ).
-
- This must be followed by a digit
- in the range 0 to 9 to indicate
- which memory register to retrieve
- the value from.
- _PI _
- Value of pi ( P ).
-
- Enter the value of pi into the
- calculator.
- _A _
- Hex A (decimal 10) ( a ).
-
- This selection is only valid if
- the current base is hexidecimal.
- _e _
- Value of e ( E ).
-
- Enter the value of e into the
- calculator.
- _B _
- Hex B (decimal 11) ( b ).
-
- This selection is only valid if
- the current base is hexidecimal.
- _% _
- Percentage ( % ).
-
- This calculation takes the last
- number enter and the next number
- given, and performs a percentage
- calculation on them.
- _C _
- Hex C (decimal 12) ( c ).
-
- This selection is only valid if
- the current base is hexidecimal.
- _clr _
- Clear display ( Delete ).
-
- This will clear the value of the
- calculators display.
- _bsp _
- Erase character ( BackSpace ).
-
- The right most character of the
- current calculator display value
- is removed, and the value of the
- display is recalculated. Note,
- internal accuracy is lost with
- this operation.
- _OR _
- Logical OR ( | ).
-
- This operation takes the last
- number and the next number
- entered, and performs a logical
- OR operation on them, treating
- both numbers as unsigned long
- integers.
- _AND _
- Logical AND ( & ).
-
- This operation takes the last
- number and the next number
- entered, and performs a logical
- AND operation on them, treating
- both numbers as unsigned long
- integers.
- _ASIN_
- Arc Sin ( } ).
-
- Return the trigonometric Arc Sin
- of the current value, in the
- current units, degrees, radians
- or gradients.
- _SIN _
- Sin ( { ).
-
- Return the trigonometric Sin of
- the current value, in the current
- units, degrees, radians or
- gradients.
- _e^x _
- e to the x power ( # ).
-
- Return e raised to the power of
- the current display value.
- _7 _
- Numeric 7 ( 7 ).
-
- This selection is ignored if
- the current base is binary.
- _10^x_
- 10 to the x power ( $ ).
-
- Return 10 raised to the power of
- the current display value.
- _8 _
- Numeric 8 ( 8 ).
-
- This selection is ignored if
- the current base is octal or
- binary.
- _y^x _
- y to the power of x ( Y ).
-
- The operation takes the last
- number and raises it to the power
- of the next number given.
- _9 _
- Numeric 9 ( 9 ).
-
- This selection is ignored if
- the current base is octal or
- binary.
- _INT _
- Integer portion ( I ).
-
- Return the integer portion of the
- current displayed value.
- _X _
- Multiplication ( * or x or X ).
-
- This operation takes the last
- number and the next number
- entered, and performs an
- arithmetic multiplication on
- them.
- _XNOR_
- Logical XNOR ( n or N ).
-
- This operation takes the last
- number and the next number
- entered, and performs a logical
- XNOR operation on them, treating
- both numbers as unsigned long
- integers.
- _XOR _
- Logical XOR ( ^ ).
-
- This operation takes the last
- number and the next number
- entered, and performs a logical
- XOR operation on them, treating
- both numbers as unsigned long
- integers.
- _ACOS_
- Arc Cos ( ) ).
-
- Return the trigonometric Arc Cos
- of the current value, in the
- current units, degrees, radians
- or gradients.
- _COS _
- Cos ( ( ).
-
- Return the trigonometric Cos of
- the current value, in the current
- units, degrees, radians or
- gradients.
- _ln _
- Natural log ( N ).
-
- This operation returns the
- natural logarithm of the current
- displayed value.
- _4 _
- Numeric 4 ( 4 ).
-
- This selection is ignored if
- the current base is binary.
- _log _
- Base 10 log ( G ).
-
- This operation returns the base
- 10 logarithm of the current
- displayed value.
- _5 _
- Numeric 5 ( 5 ).
-
- This selection is ignored if
- the current base is binary.
- _SQRT_
- Square root ( S ).
-
- This operation will perform a
- square root operation on the
- current value of the calculator
- display.
- _6 _
- Numeric 6 ( 6 ).
-
- This selection is ignored if
- the current base is binary.
- _FRAC_
- Fractional portion ( F ).
-
- Return the fractional portion of
- the current displayed value.
- _/ _
- Division ( / ).
-
- This operation takes the last
- number and performs an
- arithemetic division by the
- next number entered.
- _NOT _
- Logical NOT ( ~ ).
-
- This operation will perform the
- logical NOT operation of the
- current value of the calculators
- display.
- _ACC _
- Accuracy n ( A ).
-
- This must be followed by a digit
- in the range 0 to 9 to indicate
- how many digits of precision are
- to be displayed.
- _ATAN
- Arc Tan ( T ).
-
- Return the trigonometric Arc Tan
- of the current value, in the
- current units, degrees, radians
- or gradients.
- _TAN _
- Tan ( t ).
-
- Return the trigonometric Tan of
- the current value, in the current
- units, degrees, radians or
- gradients.
- _1/x _
- Reciprocal ( R ).
-
- The will return the current the
- value of 1 divided by the current
- display value.
- _1 _
- Numeric 1 ( 1 ).
- _x! _
- Factorial ( ! ).
-
- This will return the factorial of
- the current displayed value.
- _2 _
- Numeric 2 ( 2 ).
-
- This selection is ignored if
- the current base is binary.
- _x^2 _
- Square ( @ ).
-
- This will reurn the square of the
- current displayed value.
- _3 _
- Numeric 3 ( 3 ).
-
- This selection is ignored if
- the current base is binary.
- _CHS _
- Change sign ( C ).
-
- Change the arithmetic sign of the
- current displayed value.
- _- _
- Subtraction ( - ).
-
- This operation takes the last
- number and performs an
- arithemetic subtraction of the
- next number entered.
- _QUIT_
- Quit calctool ( q or Q ).
-
- The calctool program is exited,
- without user verification.
- _OFF _
- Turn calctool iconic ( o ).
- _ _
- This key is current not used.
- It will be implemented in a
- future version.
- _DEG _
- Trig base to degrees ( ^d ).
-
- Change the current trigonometrical
- base to degrees.
- _0 _
- Numeric 0 ( 0 ).
- _RAD _
- Trig base to radians ( ^r ).
-
- Change the current trigonometrical
- base to radians.
- _. _
- Numeric point ( . ).
-
- Selecting this starts the
- fractional part of the numeric
- entry.
- _GRAD_
- Trig base to gradients ( ^g ).
-
- Change the current trigonometrical
- base to gradients.
- _= _
- Calculate result ( = or Return ).
-
- The result of the current
- calculation is displayed in
- the current base.
- _ABS _
- Absolute value. ( U ).
-
- Return the absolute value of the
- current displayed value.
- _+ _
- Addition ( + ).
-
- This operation takes the last
- number and the next number
- entered, and performs an
- arithmetic addition on them.
- ______
- Funky_Stuff
- len=`wc -c < calctool.help`
- if [ $len != 9284 ] ; then
- echo error: calctool.help was $len bytes long, should have been 9284
- fi
- fi # end of overwriting check
- if [ -f patchlevel.h ]
- then
- echo shar: will not over-write existing file patchlevel.h
- else
- echo shar: extracting 'patchlevel.h', 614 characters
- cat > patchlevel.h <<'Funky_Stuff'
-
- /* patchlevel.h
- *
- * This is the current patch level for the calctool calculator program.
- *
- * Copyright (c) Rich Burridge - February 1988.
- * Sun Microsystems, Australia - All rights reserved.
- *
- * Basic algorithms by Ed Falk, Sun Microsystems, Mountain View.
- *
- * Includes ideas and code from:
- * Rich Baughman, Consumer Financial Institute, Newton, MA
- *
- * Version 2.1.
- *
- * No responsibility is taken for any errors or inaccuracies inherent
- * either to the comments or the code of this program, but if
- * reported to me then an attempt will be made to fix them.
- */
-
- #define PATCHLEVEL 0
- Funky_Stuff
- len=`wc -c < patchlevel.h`
- if [ $len != 614 ] ; then
- echo error: patchlevel.h was $len bytes long, should have been 614
- fi
- fi # end of overwriting check
-