home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Dream 52
/
Amiga_Dream_52.iso
/
Amiga
/
Applications
/
Mathematiques
/
IntCalc_1_11.lha
/
IntCalc
/
IntCalc.DOC
< prev
next >
Wrap
Text File
|
1993-02-01
|
27KB
|
841 lines
Documentation to the Program
IntCalc / IntCalcDeutsch
Version 1.11 February 1993
******** ** ** ******** ****** ****** ** ******
******** *** ** ******** ******** ******** ** ********
** **** ** ** ** ** ** ** **
** ** ** ** ** ** ******** ** **
** ** **** ** ** ** ** ** **
******** ** *** ** ******** ** ** ******** ********
******** ** ** ** ****** ** ** ******** ******
Written by Stefan Schulz
Copyright (c) 1992/93 by Stefan Schulz (StS)
All rights reserved
CONTENTS
IntCalc-Documentation
Version 1.11
0 Contents I
1 Introduction 1
1.1 About this Documentation 1
1.2 Systemrequirement 1
1.3 What is IntCalc 1
1.4 The History of IntCalc 1
1.5 About the Author 2
1.6 Distribution 2
1.6.1 Copyrights 2
1.6.2 Updates 3
1.6.3 A little request 3
2 Functions-description 4
2.1 Starting up 4
2.2 Usage 4
2.2.1 The Gadgets 4
2.2.1.1 Close-Gadget 5
2.2.1.2 Depth-Gadget 5
2.2.1.3 Gadgets "0" to "9" and "A" to "F" 6
2.2.1.4 Mode-Gadget 6
2.2.1.5 Functions-Gadgets 6
2.2.1.6 Bracket-Gadgets 6
2.2.1.7 "CLR"-Gadget 6
2.2.1.8 "CE"-Gadget 6
2.2.1.9 "<-"-Gadget 6
2.2.1.10 Memory-Gadgets 7
2.2.2 The Displays 7
2.2.2.1 Main-Display 7
2.2.2.2 OpCode-Field 7
2.2.2.3 Memory-Field 7
2.2.3 Calculator-Attributes 8
2.2.3.1 Notation, Priorities and Limits 8
2.2.3.2 Special case: Power-function 8
2.2.3.3 Errormessages during calculation 8
2.2.3.4 End of program 9
2.2.4 The Sleep-Mode 10
2.2.4.1 HotKeys 10
2.2.4.2 Just gone sleep if called 10
2.2.5 Keyboard-usage 10
Appendix
A Update-Story 11
B Future-Story 11
C References 11
C.1 Equipment 11
D Acknowledgements 11
E Address 12
F Sorry 12
- I -
V1.10 IntCalc Documentation Page 1
º 1 - Introduction
IntCalc is a 32-Bit-Integer-Calculator operating to the typical
bases 2 (Binary), 8 (Octal), 10 (Decimal) and 16 (Sedecimal). It
supports the four standartoperations addition, subtraction, divi-
sion and multiplication as well as the operations power, negation
and modulo. Further a simple memory and infinite bracketlevels are
implemented.
o 1.1 - About this Documentation
This document consists of two parts. The first part (this on)
will tell you about general informations áto the program. In the
second part follows a detailed explanation of functions etc.
o 1.2 - System-Requirements
IntCalc should run at any Amiga system with Kickstart 1.2 or
higher and with any configuration. If it does not, please approach
me. My Address follows at the end of this documentation.
IntCalc needs in the actual version no additional programs or
libraries not included by original Operating System.
o 1.3 - What is IntCalc
IntCalc opens a pocket-calculator-like surface you can ..er..
well.. calculate on. Both mouse and keyboard may be used for every
action. The order of gadgets refers to the order of a Keyboard,
except of Amiga 600 ones.
An additional feature is the "Sleep-Mode", whereby the program
will be switched to the background. Awaking the program it will
appear at the first screen if possible. Because of this it is well
qualified for programming, since you can open it anytime at your
editor-screen, or probably let it disappear.
o 1.4 - The history of IntCalc
Programming around I noticed often to use my pocket calculator
computing something or just transforming decimal to sedecimal re-
presentation of numbers. Working with a computer I asked myself
why not using a computer for computations, even my pocket calcula-
tor has got no 32-Bit-Integers using the binary mode.
I never found a usable program, which could be used at any
screen. So I began to write a program on my own, and here it is.
V1.10 IntCalc Documentation Page 2
o 1.5 - About the Author
I, Stefan Schulz - Author of this program - am 23 years old and
at present I study Informatic at the University of Kaiserslautern.
Starting study I thought about it like most of the people think,
even Informatic is an expanded course of programming, never failed
so much again. In real life less time programming rather learning
theoretic or mathematic things about algorithms and so on.
About a few years I am programming at Amiga using the M2Amiga-
Development-System by A+L AG. It has not to be Assembler writing
programs, even it is not worth-while programming greater software
in low-level-languages, either prefering structured programming.
Freeware means to me placing software to anybodys disposal free
for charge. Furthermore I think every programmer must get the
possibility to learn new things or compare with own programs, may
be a learning effect appears. So I also pass all the sources with
the program living in hope of responses.
Well, just because of this here follows the section 1.6 where
I tell you about the Distribution, since somebody is out there and
wants to make money whithout permission.
o 1.6 - Distribution
1.6.1 - Copyrights
(c) Copyright 1992/93 byStefan Schulz (StS)
This program is FREEWARE.
That means, you can spread this program as long as no fee is
made except to meet your charges.
!! Through this I forbid the DISTRIBUTION of this program at
!! PD-One-Program-Disks and also at PD-Series where the price
!! exceeds 5 $ respectivly the equivalent amount in the currency
!! of your country.
!! Exceptions are ONLY possible owning a (hand)written Permission
!! of the Author (hey that's me!).
If anybody found this program having above attributes, please
tell me.
Any other PD-Serie may embed it without any question when they
tell it to me with well detailed informations. If there exists a
new version, I can inform you avoiding spreading an old version of
my program.
V1.10 IntCalc Documentation Page 3
If this program is not still for using at disk or harddisk this
textfile HAS TO BE with the program at this medium even in an UN-
CHANGED FORM. So, please, if possible, do not copy this program
single, because there may be anyone who does not understand the
program to use without any documentation.
I have never had one, I have never heared about and I am very
sure that there is none, nevertheless:
! The Author is not liable for any direct or indirect caused
! damage using this program.
1.6.2 - Updates
To get the newest version of this program just send an complete
addressed and sufficient stamped envelope and a disk.
For Comments, Questions, Errors or whatever: My Address follows
at the end of this Documentation.
1.6.3 - A little request
Just a little request: If you got this program, please send me
a postcard, may be anonymus. Please tell me how and where you got
this program and which version it is. Thank you for doing.
V1.10 IntCalc Documentation Page 4
º 2 - Functions-description
This is the part of the documentation, where all the functions
and attributes of IntCalc will be explained as detailed as need-
ful.
o 2.1 - Starting up
IntCalc could be started up by CLI as well as by Workbench.
Neither any parameters nor ToolTypes are required or will be used.
The wholy operations are only accessable about the opened Window.
There are at present two similar versions of IntCalc. The eng-
lish one named IntCalc and the german one called IntCalcDeutsch.
The only difference between both versions is the language used for
communication.
To run the program from CLI just call:
IntCalc
respectively
IntCalcDeutsch
To run it from Workbench just double-click the program-icon.
There can only be ONE IntCalc at the same Time!! Running more
than one times the user got a message-requester which announce
this fact to him. This limitation based upon the intention that it
does not make sense running a program twice or more times which
anyway runs in the background and is portable to (nearly) any of
the screens used by other programs. Just wasting memory.
o 2.2 - Usage
If the program starts and no Requester containing an Error-
message appears, a window with a lot of Gadgets and Texts will be
opened.
2.2.1 - The Gadgets
The descriptions following in this second part of documentation
refer to the following schematic representation.
V1.10 IntCalc Documentation Page 5
The window looks nearly like this:
DepthGadgets ------------------\-\
(since Kick 2.0 still one) | |
+---------------------------------------------+v+v+
CloseGadget -->¡|IntCalc V1.11 |#|#|
+---------------------------------------------+-+-+
|+-----------------------------------------------+|
Main-Display ---> 0||
|+-----------------------------------------------+|
|+---++---+ +---++---++---++---++---++---+|
OpCode -------> || | | A || B || C || D || E || F ||
|+---++-^-+ +---++---++---++---++---++---+|
| | +---++-----++-----++---++---++---++---+|
Memory -----+------/ |<- || CLR || CE || ( || ) || ≈ || ╫ ||
| +---++-----++-----++---++---++---++---+|
| +---++---++---++---+|
| | 7 || 8 || 9 || - ||
| +---++---++---++---+|
|+-----+ +---+ +---++---++---++---+|
|| x^y | |MR | | 4 || 5 || 6 || + ||
|+-----+ +---+ +---++---++---++---+|
|+-----++-----++---++---++---++---++---++---++---+|
|| +/- || MOD ||M+ ||MS ||M- || 1 || 2 || 3 || ||
|+-----++-----++---++---++---++---++---++---+| = ||
|+---------------------------++--------+ | ||
Mode ------->|@| Decimal || 0 | | ||
|+---------------------------++--------+ +---+|
+-------------------------------------------------+
2.2.1.1 - Close-Gadget
The Close-Gadget has more than one functions. First it may be
used setting the program into the "Sleep"-Mode. This will be done
just by clicking the Close-Gadget. The window will be closed and
the program still waits in the background for receiving the re-
activating Hot-Keys (-╗2.2.4). All actual entered values and
operations are recognized and wont get lost. When reactivating the
program the actual status before sleeping will be recovered.
Holding down any Shift-Key during clicking the Close-Gadget the
program will be stopped. The window will be closed and all resour-
ces being used will be freed.
Another function of the Close-Gadget is described in the later
following section 2.2.3.2, because only in that special case it
has the effect which is declared then.
V1.10 IntCalc Documentation Page 6
2.2.1.2 - Depth-Gadget
The Depth-Gadget has got the usual function. It lets you switch
the window between fore- and background of a couple of windows, if
there are any (with Kickstart 1.x there are two Gadgets).
2.2.1.3 - Gadgets "0" to "9" and "A" to "F"
These 16 Gadgets are usable to enter the number you want to
calculate with. The effect of using one of these Gadgets demands
upon the actual base you are computing with. For simplicity the
Gadgets wont be deactivated.
Therefore in binary mode only the numbers "0" and "1", in octal
mode the numbers "0" to "7", in decimal mode the numbers "0" to
"9" and in sedecimal mode all numbers have got an effect.
2.2.1.4 - Mode-Gadget
Using this Gadget you can choose the mode you want to compute
with. See also section 2.2.3.1
2.2.1.5 - Functions-Gadgets
The Gadgets "+", "-", "╫" and "≈" have got the usual function
as pocket computer have got. Remember that all operations working
with integers, so "≈" is an Integer-Division.
The gadget "x^y" corresponds to the Power-Function, the "+/-"-
Gadget to the Negation and the "MOD"-Gadget to the Modulo- or also
Remainder-Function.
2.2.1.6 - Bracket-Gadgets
Well, these Gadgets have got the usual functionality brackets
have got when computing.
2.2.1.7 - "CLR"-Gadget
Using the "CLR"-Gadget (Clear) the calucator will be resetted,
i.e., all entered functions and numbers will be killed out of me-
mory, except the memory of course.
2.2.1.8 - "CE"-Gadget
The "CE"-Gadget (ClearEntry) clears the actual entry.
2.2.1.9 - "<-"-Gadget
Removes the last digit of an entered number.
V1.10 IntCalc Documentation Page 7
2.2.1.10 - Memory-Gadgets
To memorize a number the usual four pocket calculator functions
are implemented.
The "MR"-Gadget (Memory Recall) gets the memorized value and
puts it to the display.
The "MS"-Gadget (Memory Store) stores the actual value into the
memory-buffer.
The "M+"-Gadget (Memory Add) adds the actual value to the memo-
rized one.
The "M-"-Gadget (Memory Sub) subtracts the actuial value from
the memorized one.
2.2.2 - The Displays
The description of the display refer to the presentation in
section 2.2.1.
2.2.2.1 - Main-Display
The Main-Display is 32 Character long and will be used totally
only in binary mode. Here the actual (inter-)results, the actual
input of a number and errors, coming up during calculation, will
be displayed.
2.2.2.2 - OpCode-Field
In this field the actual OpCode of next to be calculated
operation will be displayed. Herefore the following symbols will
be used:
+ Addition
- Subtraction
* Multiplication
/ Division
\ Modulo
^ Power
2.2.2.3 - Memory-Field
If a "M" is displayed in this field, then there is a not null
value memorized. Else the memory is empty.
V1.10 IntCalc Documentation Page 8
2.2.3 - Calculator-Attributes
2.2.3.1 - Notation, Priorities and Limits
IntCalc works with the usual infix-notation. That means the or-
der of entering a calculation is operand operator operand.
For Example: To calculate the product of 3 and 0 the following
actions may be performed:
Gadget 3 Gadget * Gadget 0 Gadget =
The Result will appear at the main-display.
All calculations are done with the usual priority. That means
brackets before point- before stroke-calculations. The only ex-
ception of any priority is the negation-operation, because of this
function only needs one operand, even the actual one, it will be
performed DIRECTLY.
The representation of negative numbers is ONLY possible while
decimal mode. Any other mode negative numbers will be displayed in
computer-intern presentation with a leading 1.
During computing IntCalc does NOT care about limit-overflows.
These limits using 32-Bit-Numbers are:
for Binary: 0 bis 11111111111111111111111111111111
for Octal: 0 bis 37777777777
for Decimal: -2147483648 bis 2147483647
for Sedecimal: 0 bis FFFFFFFF
For Example in decimal mode:
2147483647 + 1 = -2147483648
2.2.3.2 - Special-case: Power-function
The power-function needs at present with great numbers a lot of
time to calculate the result (if there is no turbo). Therefore you
can break computing using the Close-Gadget (NOT the equivalent
key). After this a message appears at main-display which has to
be answered by the "CLR"-Gadget.
2.2.3.3 - Errormessages during calculation
If any error appears during computing a message will be shown
at main-display. This message must be answered by using the "CLR"-
Gadget.
The following Errors may appear:
V1.10 IntCalc Documentation Page 9
a) "ERROR: Divide by 0"
During computation has been devided by 0.
( Comes up using "≈" and "MOD" when the second operand
is equal to 0 )
b) "ERROR: Undefined Power"
Two Powers are not defined
- 0 to the 0 power
- negative exponents (this is an integer-calculator)
c) "ERROR: Calculator-Stack-Overflow"
The Number of operations is so high, that no memory is
available for further Entries.
This Error appears only if memory is filled up with
foreign programs and datas or thousands of bracket-
levels being used.
2.2.3.4 - End of program
Finishing the program first all needed resources being freed.
Possibly the program itself cannot be removed, because of the
Screen-Patch cannot be removed.
The sense of the Screen-Patch:
In active mode the IntCalc-Window is anywhere at a foreign
screen. If anyone want to close this screen, probably the owner
of the screen, the Screen-Patch safes that the window will be
closed before closing the screen.
May be other programs patched the CloseScreen-Routine too,
the correct address before patching could not re-set. So IntCalc
waits upon it could do.
In this case a requester appears at the screen containing the
refering message.
If the program finally could be removed another requester shows
this to you.
2.2.4 - The Sleep-Mode
2.2.4.1 - HotKeys
Mentioned in 2.2.1.1 IntCalc may be switched to Sleep-mode by
using the Close-Gadget. The window disappears and IntCalc runs in
the background.
To awake the program there a HotKeys, IntCalc is waiting for
when sleeping. These Hotkeys are still a combination of Keys,
the program is looking for.
IntCalc looks for two of these HotKeys:
V1.10 IntCalc Documentation Page 10
a) <Ctrl>-<Alt>-<C> :
This combination of keys awakes the program. The status
of before going to sleep will be recovered.
The window appears at the first screen!
b) <Ctrl>-<Alt>-<Shift>-<C> :
The program stops. See 2.2.3.4 for further information
about finishing the program.
2.2.4.2 - Just gone sleep if called
In case just a requester appears by calling up IntCalc with the
following contents: "Have to go sleep...", the window could not be
opened at the first screen. The program does not abort but just
enter the Sleep-Mode.
2.2.5 - Keyboard-usage
Instead of gadgets you can use keys to use the calculator. To
any gadget there are one or more keys with the similar function
the gadget performes. REMARK: The window must be activated!!
Here follows a list of all gadgets and equivalent Keys:
Gadget(s) | Key(s)
----------------+----------------------------------------------
0 to 9 | 0 to 9 (also Numerik Pad)
A to F | A to F (also lower case and F5 to F10)
( | (,[,{ (also Numerik Pad)
) | ),],} (also Numerik Pad)
≈ | / (also Numerik Pad)
╫ | * (also Numerik Pad)
- | - (also Numerik Pad)
+ | + (also Numerik Pad)
= | <Return> (also <Enter>)
x^y | H (also lower case)
MOD | M (also lower case and \)
+/- | N (also lower case)
CE | <Help>
CLR | <Del>
<- | Backspace < <- >
MR | Cursorkey: Arrow up
MS | Cursorkey: Arrow down
M+ | Cursorkey: Arrow right
M- | Cursorkey: Arrow left
Mode | <Spacebar>
Close | <Esc> (except special case 2.2.3.2)
<Shift>-Close | <Shift>-<Esc>
V1.10 IntCalc Documentation Page 11
Appendix A - Update Story
Version 1.00 done in august 1992 (old name CalcBoy)
Version 1.01 done in september 1992 (old name CalcBoy
removed a little bug still producing a guru
Version 1.10 done in january 1993
created two-language-version, rewritten docu-
mentation (totally new)
new screenpatch-routine
Version 1.11 done in february 1993
no longer ugly mistakes using other fonts than
topaz under kick since 2.0
Appendix B - Future Story
What I want to do in future with IntCalc:
- Supporting locale.library (when appears)
- Speed up the Power-Function
- Signed AND unsigned numbers
Anhang C - References
C.1 - Equipment
To create this program there where some instruments used:
+ M2Amiga Development-System Version 4.0
by A+L AG, Swiss
+ CygnusEd Professional release 2.12
by CygnusSoft Software developed by ASDG Inc.
+ DirectoryOpus v3.41
by Jonathan Potter developed by INOVAtronics
+ Commodore Amiga 500 revision 5.2, Kickstart 1.2, 1.3
and 2.0
+ Kickstart-Switch by HK/Vector, Cologne
+ SUPRA 500XP - Hard-Disk with 2 MByte external memory
+ Golden Image GI-6000
+ MMBShift by Preben Nielsen (Public Domain - FF547)
Appendix D - Acknowledgments
Thanks go to:
* Marting Buch and Heiko Schulz
- discovering nearly at the same time an error
in the program
V1.10 IntCalc Documentation Page 12
Appendix E - Address
This is my actual address, mentioned some times before in this
documentation:
Stefan Schulz
Kurt-Schumacher-Stra▀e 48
D-6750 Kaiserlautern (Germany)
This address is probably valid until September 1994!
Even E-Mail is possible as long as my address is valid:
s_schul@poker.informatik.uni-kl.de
Appendix F - Sorry
Yes, I am very very sorry about my ugly english. Please do not
curse me about it.