Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
0
------------------*** Shareware-Version ***
by
Volker Erb
Ernst-Reuter-Str.31
D-W6508 Alzey
Germany
Phone: Germany- 6731-8167
(No fax, no modem, I'm still poor.)
Before you read the manual, read this: To run this library you
will need James Donnelly's "The HP 48 Programmer's ToolKit"
(TLLIB and TBLIB) and about 60kB of free Memory !!!!!
All options or commands, which are marked (*) are not available
(*-) or are in a less powerfull shareware version (#).
Please, read the manual from the beginning to the end, you will
like it.
---------------------------------------------------------------------------------------------------------------------------------
CONTENS
0. Prolog
1. Introduction
(#)
2.2 DATUS
(#)
2.3 DIRM
2.4 TABM
2.5 DEL
2.6 Y.N?
2.7 UNIT?
2.8 SELECT
2.9 ASK
2.10 ASK+
2.11 CHECK
2.12 NMENU
2.13 NM+
2.14 COMBI
2.15 TYP
2.16 OBJ
(*-)
2.17 ANDOR
2.18 RF
2.19 RFP
2.20 RFD
2.21 RFQ
2.22 RFU
2.23 DRF
2.24 XUNIT
2.25 EXL
2.26 M->L
2.27 L->M
2.28 S->OB
2.29 DIG
2.30 MULTI
3. Compressed Libraries
3.1 How to compress libraries
5. Disclaimer
---------------------------------------------------------------------------------------------------------------------------------
0. Prolog
What is Aladin ?
Aladin had a magic lamp and this will shine for you.
In this libray is the newest shareware version of ARGUS (V4.0)
and a new data analysis program called DATUS V2.0. Both together
are the best and easiest way of getting from datas a complete error
and data analysis with the possibilities of transfer the results to
a PC or a MAC in three GROB's or print them on an IR-Printer
or another printer. (Well, printing and transfering the results is
possible in a few cases only.)
However, some of the subprograms (TABM (*-), DIRM, ...) are so useful,
that I included them for your use. I hope you can use them.
For fast and good working, I included some genious programs
of some other authors, which are freeware, and it wouldn't be
nice not to mention them:
A very big "Thank you" I have to say to Lutz Vieweg, Frankfurt,
Germany for the Redundance Fighter V1.2 and XUNIT, which are
included in the library. (Because they are partly changed, I
distibute the original files with this library!)
I want to thank Rick Grevelle for a small but essential program
part from his HACKIT.LIB and, of cause, I include this library
herein, too. (Have fun, if you start hacking this library, even,
I couldn't do this without my notes! The source code are 70(!)
pages and about 50kB)
1.Introduction
This program is not only written for the mathamatic purpose but
for the presentation and adaptation to other programs, too. For
example, you can use all data, you have put in for ARGUS directely
for DATUS, too and not only the "input-data", but the result data,
too. Other included features are the conversion of the results
into different unit systems and presentation of the equations in
the equation writer format, the possible print out of the complete
data table to an IR-Printer in vertical format or to a PC or MAC (#).
You can treat your results statistically (See description of
DATUS!) With other words many useful toys. The aim is a really
professional data analysis program, you can use, if you don't have
a computer to your hand and want a fancy data presentation. As far
as I can decide this is the combination of ARGUS and DATUS a first
step in this direction.
One disadvantage of this program is its size. This library is
optimized for space (but still needs more than 25kB to run).
REMARK:
-----------------------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------
Menu label
XLIB-Nr.
COPYR
copyrgt
1111 0
ARGU
ARGUS
1111 1
(#)
DATUS
DATUS
1111 2
(#)
DIRM
DIRM
1111 3
TABM
TABM
1111 4
DEL
DEL
Y.N?
Y.N?
UNIT?
UNIT?
SELEC
SELECT
ASK
ASK
1111 5
1111 6
1111 7
1111 8
1111 9
ASK+
ASK+
1111 10
CHEC
CHECK
1111 11
NMEN
NMENU
NM+
NM+
COMBI
COMBI
1111 12
1111 13
1111 14
TYP
TYP
1111 15
OBJ
OBJ
1111 16
ANDO
ANDOR
1111 17
RF
RF
RFP
RFP
RFD
RFD
1111 20
RFQ
RFQ
1111 21
RFU
RFU
1111 22
DRF
DRF
1111 23
XUNIT
EXL
XUNIT
EXL
1111 18
1111 19
1111 24
1111 25
(*-)
M->L
M->L
1111 26
L->M
L->M
1111 27
S->OB
DIG
S->OB
DIG
MULTI
MULTI
1111 28
1111 29
1111 30
------------------------------------------------------------------
2.0 <copyrgt>
<copyrgt> shows the copy right notice and installs <&&&>. Without
<&&&> the whole library will not work. To reinstall &&&, press
<copyrgt> !
------------------------------------------------------------------
2.1 <ARGUS>
2.1.2
2.1.3
The next display asks to continue your session with ARGUS. If you
made a mistake in your equation and pressed accidentally [ENTER],
or you don't like a data analysis, press <NO> now and leave the
program.
2.1.4
Press <YES>. ARGUS will ask units for each variable. This asking
is supported by the UNIT? command (see chapter 2.7).
Press <NO>. ARGUS will set all unit equal to 1 and won't ask
for them. It is the faster way.
2.1.5
After the preparation for the data analysis, ARGUS wants to know
the values for each variable and its confidence range.
Be careful, if you typed in a wrong value and pressed [ENTER],
there is no possibility to correct this mistake !!!
After the first set of values, you will be asked for another set.
If you are choosing more than 2 sets, you are able to use the
statistic devices of DATUS. Before you can give the second set
of values, you have to define the number of valid digits on the
following displays. I recomment 4 valid digits. The displays
show the actuell variable name, the variable's unit and the last
value. There are two new commands on the menu line:
<KEEP> : keeps the last value for the actuell set
and the value will be asked again at the next set.
<CONS(T)>: keeps the last value for the actuell and all following
set constant and will not be asked again.
A value on the stack has priority before <KEEP> and <CONS> and
will be taken as the actuell value, if you press <KEEP> or <CONS>
and will be asked again at the next set.
After the last set, press <NO>, when you are asked for another
set. Then the 48 will take some time to organize all this stuff.
I'm working out this to make it faster.
2.1.6
Then ARGUS offers you to look at your results and activates the
RVIEW and the EVIEW programs in the actuell A-directory. For
more details look in chapter 2.1.9)
2.1.7
If you have given more than two data sets, you are able to use
DATUS' statistic devices, if you like to look for some correlations of given variables or results. Sometimes it's interesting
to look for the relationship of the final relative or absolute
confidence range of the calculated variable and some mesured
variables. For more details see chapter 2.2.4 and following.
2.1.8 (*-)
1) RTAB (*-)
Program, which shows the result table with all details and the
possibility to print it on an IR-printer. After the run the result
tabel remains as PICT. This program is compressed.
2) GR.x - directories:
3) TBLIST
4) EVIEW
5) RVIEW
6) DSIZE
7) &&D
8) DMAT
9) DLIST
List of lists:
First list: names of variables with their units in the valid order
second list: the units in the valid order
all other lists: values of the variables in the valid order.
10) ASKLIST
11) EEQ
12) EQN
Origin equation
------------------------------------------------------------------
2.2 <DATUS>
2.2.2
All variables of the chosen directory are offered now. Choose with
<TAKE> the variables you like. You don't need to choose the
confidence ranges with the "main"-variables, they will be treated
automatically. If you have chosen confidence ranges as "main"variables, the confidence ranges of the confidence ranges are set
equal to zero (and the c-range of ERROR, too!)
<EXIT> switches to the directory choosing level again and you may
choose another directory or the same again.
This procedure has one disadvantage: You can't correlate data with
the same variable name from different directories !
2.2.3
Now you will be asked for "own" variables. "Own" variables are
variables, which don't come from A- or D-directories and have to
be typed in by hand.
to a):
You pressed <NO>:
DATUS quits, because you obviously don't want a data analysis.
You pressed <YES>:
DATUS asks for new variable names until you gave a minimum of two
and pressed <NO>. For more details of the asking look chapter
2.1.4 .
to b):
You pressed <NO>:
DATUS asked for one more variable name and then asks for new
variable names as long as you don't press <NO>. Then a asking
routine like 2.1.4 asks for units and data values until the new
data matrix has the same number of data sets as the given data
from the directory .
You pressed <YES>:
The same procedure as if you press <NO>.
to c):
You pressed <NO>:
DATUS proceeds with the given data.
You pressed <YES>:
see 2.1.4.
2.2.4
The next display offers you all possible variables, you have
chosen in the directories and/or typed in by hand. You have to
choose now the independent variable (X-Axis), by using the arrow
keys and the [ENTER] key. Then the same display, but without the
chosen independent variable is asking you to choose the dependent
variable. If you have made a mistake when you have chosen your
independent variable, you may correct it now by choosing the empty
field. Then the first (complete) display asks for the independent
variable again.
2.2.5
After choosing the variables, you will be asked for the prefered
regression model. In this version of DATUS only the build in
model are offered. Use the arrow keys and [ENTER].
If you chose <BESTFIT>, a short message shows the best model.
2.2.6
The next option let you decide wether you like the untreated
2.2.6.1 Linearization:
origin.
indep.
linearized
dep.
indep.
EXPFIT:
LOGFIT:
ln(X)
PWRFIT:
ln(X)
ln(Y)
LINFIT:
dep.
ln(Y)
2.2.6.2 Optimization:
The program does the same, as you do, if you try to fit a curve
between the data points in a statistical plot on a sheet of paper:
You try to go with your curve though as many as possible
confidence ranges of the dots. With other words, the program
checks, if the curve touches the confidence range of a data point.
If not, the originally data point is replaced by the nearest
piont of the c-range. This correlates with a devaluation of the
priority of data points, who's c-ranges are not touched by the
regression curve. After all points were checked and a minimum
of one point was not touched, the regression curve is calculated
again and the check starts again. A optimization is not necessary,
if the correlation coefficent is better than 0.999.
The second level of the optimization is the check for out-ofconfidence values. This routine starts, if the correlation
coefficent is smaller than 0,99.
A "out-of-confidence"-value is a value with a distance d from the
curve with:
d >= X^(-1) * Z * SDEV,
Z = 8,557*X^(-0,671) for N < 13
= 2,847*X^(-0,108) for N >=13
X = N-2 , N = number of data sets
SDEV = standard deviation of the distances
from data points to the curve.
This is valid for P = 95% of both sides of the curve. That means,
the probability to find a data point in the calculated ranges is
0,95.
2.2.7
Then DATUS asks for the number of valid digits in the result text
and table. In the result text all important parameters are given.
For a linear or a linearized regression c-ranges for the parameters are calculated, too:
deltaSlope = T * S, deltaIntercept = T * I
2.2.8
The third part of the resolts GROB is the statistical plot, with
all data points and their c-ranges. You are able to choose
line filling or no line filling for your curve.
2.2.9.1
DATUS shows the results GROB. You can scroll around with the arrow
keys and proceed with the [ON] key.
(In a registrated version you will get a single output file, which
contains the whole story and is able to print out or to transfere
the results to a computer. You are able to see the results in a very
fance kind without starting the whole program!!!)
2.2.10
2.2.11
The next upper level asks, if you like to try another analysis
with some other chosen variables. (Then start reading again from
2.2.4)
2.2.12 (*-)
designation
1-7
PPAR
8-12
SIGMPAR
13
deltaIntercept
14
deltaSlope
15
Regression equation
16
17
18
19
20
2) TBLIST
3) &&D
4) DMAT
5) DLIST
6) DSIZE
7) ASKLIST
2) - 7) see 2.1.9
------------------------------------------------------------------
2.3 <DIRM>
into them.
2.3.1 SYNTAX
------------------------------------------------------------------
TABM creates a table from a title string, a list with head lines
(strings, object names, etc) and lists of values. The format of
this table is vertical, because it's better for print outs on an
IR-printer.
2.4.1 Syntax
Input: (Example !)
Output:
1) Empty stack
level 4: { 4 5 6 }
level 3: { 1 2 3 }
level 2: { A B C }
level 1: "Title"
Table:
________________________________
|Title
| 'A'
'B'
'C' |
| 1
| 4
------------------------------------------------------------------
2.5 <DEL>
2.5.1 Syntax:
Input:
level 1: variable name, directory name, objects, and mixed lists
of the named objects and names, except numbers, arrays
and libraries.
------------------------------------------------------------------
2.6 <Y.N?>
2.6.1 Syntax:
Input:
level 1: "Question?"
Output:
level 1:
1 or 0
------------------------------------------------------------------
2.7 <UNIT?>
2.7.1 Syntax:
Input:
level 1:
"A"
or 'A'
level 2:
"A"
or 'A'
level 1:
1_chosen unit
Output:
If you don't want to have a unit with your variable value, press
<NONE>, and UNIT? will give back a 1 in level 1.
The three dots on the last menu label mean, that there is at least
one more page, if you press [NXT].
------------------------------------------------------------------
2.8 <SELECT>
"Text..."
1:
[real number]
"Text..."
"Text..."
2:
1:
SYNTAX 4:
3:
Any Object
2:
1:
{OR-list},single-word String
Test program,...
(complex testing)
1:
RESULT 5:
1: List/Array without "bad Objects", if Any
Object is a "good" Object then it will be
given back on level 1:, else there will
be given back zero (0).
SYNTAX 6:
3:
2:
1:
RESULT 6:
1:
RESULT 5
------------------------------------------------------------------
2.9 <ASK>
RESULTS:
If a valid input was done, it is displayed in level 1, otherwise
ASK will ask until a valid input was done.
You can also use the progams TYP and OBJ to create the test clause
in level 1
(SYNTAX 2:
2
"Text..."
"Text..."
1 {OR-list} {AND-list}
ANDOR )
, which results in true (1) or false (0), which are valid test
clauses, too.
If you give 1 in level 1 any input will pass, otherwise (0)
nothing will pass.
<ASK> doesn't work with lists and arrays, because of the [ENTER]
key assignment with <CONT>. If you want to ask for these objects,
use ASK+. In alpha lock mode press the [ENTER] key two times.
Normally the menu labels are empty, if you would like to assign
the menu labels different, just use one of the following syntaxes:
SYNTAX a:
3:
2:
1:
"Text..."
Test-Options
{Menu-label-list}
or
SYNTAX b:
2:
1:
"Text..."
Test-Options
------------------------------------------------------------------
2.10 <ASK+>
------------------------------------------------------------------
2.11 <CHECK>
Any object
1:
test options
object" is an array, you will be asked how you want to replace bad
values. Any real or complex number is allowed. If the "any object"
is a list, the bad objects will be removed. Anyother object will
be given back on stack (good object) or zero will replace the
object in level one.
------------------------------------------------------------------
2.12 <NMENU>
NMENU oranizes your TMENU or CST menu list. NMENU takes a list
from level one adds in position one CONT and on every sixth
position "...", to show, that there are still some more possible
menu pages. The result is a new list.
Syntax:
Input:
Output:
a)
level 1: { A B C D E F }
level 1: { A B C D E F }
b)
level 1: { A B C D E F G } level 1: { A B C D E { "..."
{<< 440 0.1 BEEP >>
}} F G }
------------------------------------------------------------------
2.13 <NM+>
------------------------------------------------------------------
2.14 <COMBI>
COMBI combinates the OR- and the AND-options with the ANDORprogram.
Syntax:
Input:
level 2: {OR-option list}
level 1: {AND-option list}
Output:
level 1: << {OR-list} {AND-list} ANDOR}
------------------------------------------------------------------
2.15 <TYP>
TYP takes a real number from level one and creates a test clause
program like TYPE 5 SAME . TYP is a subprogram to ANDOR and
SELECT.
------------------------------------------------------------------
2.16 <OBJ>
OBJ is from the same nature as TYP. It takes anything from level
1 and if this is a test clause like 0 > the IFERR clause
avoids a breakdown.
Syntax:
Input:
level 1: Test clause
Output:
level 1: [test clause] EVAL IFERR SAME
THEN END
Subprogram to ANDOR and SELECT.
------------------------------------------------------------------
2.17 <ANDOR>
Your Object
2:
{03}
1:
If you want to test other thing than TYPES, you have to type it as
a string and anything different of a SAME test has to be done in a
program.
This program uses TYP and OBJ as subprograms.
The result is true (1) or false (0) in level 1.
------------------------------------------------------------------
2.18 <RF>
This genious program was written by Lutz Vieweg and modified for
this compressed library. The modification does not touch the
routines, only the names of the sub routines in this file were
changed. The following instructions are originally from Lutz
Vieweg:
"RF a RPL program for more comfortable
compression of either an object in level 1
or an object named in level 1.
Allows conversion of the packed file into
three formats:
.RFF the original string created by RFP
.RFE a self-uncompressing object (uses RFU)
.RFP a self-uncompressing and evaluating
object "
------------------------------------------------------------------
2.19 <RFP>
(ML)"
------------------------------------------------------------------
2.20 <RFD>
Syntax:
Input:
level 1: 'name of direcrory'
Output:
Empty stack
a)
You may chang everything, when the directory is in extracted mode,
but if you don't compress the extracted directory under its former
name again, the compressed direcrory is inert against all changes.
b)
If you are leaving the extracted directory with [UP] (left shift
[']), and finally press <CONT>, the 48 will go back to the origin
directory, where the compressed directory is stored.
c)
You can't decompress the compressed directory with <DRF>.
------------------------------------------------------------------
2.21 <RFQ>
------------------------------------------------------------------
2.22 <RFU>
------------------------------------------------------------------
2.23 <DRF>
------------------------------------------------------------------
2.24 <XUNIT>
If you calculate with units, you will face a monsterous term after
a while, because the 48sx does not "shorten" the unit-fractions.
Your input
Result
---------------------------------------------------2.34_F/V
1:
2.34_nF/mV
UBASE
1: .00000234_A^3*s^7/(kg^2*m^4)
XUNIT
1:
.00000234_F/V
XUNIT
XU.L
XL->A
Creates the XU.A list from the XU.L list. This has to
be done any time you change XU.L
U->A
ARRSUM
XU.A
Remarks:
The library form of this nice and very usable progam was possible
because of fixed standard units. These are in this library the
following: 1_N, 1_J, 1_W, 1_Pa, 1_V, 1_C, 1_Ohm and 1_F.
If you like different units, ship a disk with your licened copy
and a self addressed envelope and enough money for stamps.
U->A is XLIB 1111 203, XU.A is XLIB 1111 40, XU.L is XLIB 1111 42
and ARRSUM is XLIB 1111 41.
Somehow, it works!
------------------------------------------------------------------
2.25 <EXL>
Output:
level 1:
{ACDE}
------------------------------------------------------------------
2.26 <M->L>
2.27 <L->M>
------------------------------------------------------------------
2.28 <S->OB>
------------------------------------------------------------------
2.29 <DIG>
<DIG> coordinates the FIX and SCI mode to get only a specified
number of valid digits on the display. <DIG> is not a new mode,
it works only with a given multi digits number in level two and
a real number in level one and affects the whole display.
(One good advice: store this specified number of digits number
as a string!)
Syntax:
Input:
level 2:
level 1:
number N
Output:
level 1:
------------------------------------------------------------------
2.30 <MULTI>
-----------------------------------------------------------------------------------------------------------------------------------
3 Compressed Libraries
Example:
Compressed: BIG
Switches: SW1, SW2
subroutines: r1, r2, r3, r4, r5
In BIG the names SW1 and SW2 are replaced to something like 12 $$$
and 23 $$$. $$$ is a small program, which tells BIG where to find
SW1, SW2 and all the other programs which are called from BIG, and
you see, that each time a program is called from a compressed
program a minimum of 4 additional program steps are proceeded.
But you will make all these experiences and many more by trying
the compression with your own libraries.
------------------------------------------------------------------
a)
$CONFIG : << HOME xxxx ATTACH INSTALL >>
with INSTALL : << << xxxx SWAP ->XLIB EVAL >> '$$$' STO >>
->XLIB is from Rick Grevelle's HACKIT.LIB
b)
$CONFIG : << HOME xxxx ATTACH INSTALL >>
with INSTALL : << << xxxx SWAP 33 &&& EVAL >> '$$$' STO >>
33 &&& is the hidden ->XLIB command in the Aladin
library.
xxxx is the ID-number of the library.
3.1.6.1
3.1.6.1.1
You can do this step and the steps described in 3.1.7 in one
process.
Edit the transfered directory with a text editor program and
rename all XLIB xxxx nn in the programs to XLIBnn and remove all
system binary codes ( <17d>), if there are any. Then transfer the
treated directory back to the 48. Overwrite the machine language
programs with the safed ones.
3.1.6.2
You can do this step and the steps described in 3.1.7 in one
process.
If you don't have a PC or a MAC by your hand, you have to edit
each program and rename all single XLIB xxxx nn to XLIBnn.
Compress the chosen programs. Now pack all XLIBnn program names
in a list and store this list as $HIDDEN in the new directory.
Store xxxx in $ROMID. It must be the same as used in your
evaluation program. Finally, find a nice title and store it in
$TITLE. Transfer your new source directory to your PC or MAC in
binary mode, treat it with USRLIB.EXE and transfer the compressed
library back to the 48.
Test it !!!!!
Bye the way, you may evaluate your library objects with your
evaluating program, even if the library is not attached. Just type
the nn (XLIB number without the $ROMID) and press or evaluate
your evaluation number.
-----------------------------------------------------------------------------------------------------------------------------------
5 Notice of Disclaimer
Neither the author, nor anyone else make any express or implied
warranty with regard to the keystroke procedures and programs
herein offered, including the Aladin library and all other
programs. I will not be liable for any incidental or consequential damages in connection with, or arising out of, the
furnishing, use, or performance of the material, I speak of.
Volker Erb