home *** CD-ROM | disk | FTP | other *** search
- How to Add User Extensions to AnalyCalc
-
- There are 2 subroutines provided with the AnalytiCalc/
- PortaCalc package designed to facilitate addition of user defined
- commands or functions to the sheet without having to get into the
- logic of the spreadsheet otherwise very deeply. These are the
- USRCMD.FOR file, for adding user commands, and the USRFCT.* files
- for adding user functions.
- Currently supplied:
-
- USRFCT.FTN Minimal user functions, supports only
- the *U IDATE function to return system
- date.
- USRFCT.FOR In addition to above supports the *U MTXEQ
- function to solve matrix equations.
- USRFCT.ASC In addition to above, supports MOVEV
- and MDET (move matrix values, compute
- determinant)
- USRFCT.SRC In addition supports MPROD, MADDV, MSUBV,
- MMPYT, MMPYC, and VARY functions for more
- general matrix math. Standard on VAX.
-
- USRCMD.FOR (Only for VAX): no-op at present, but
- is passed the command line and a "command
- found" flag and an indicator it may set
- for type of recalculation to do. The
- ICODE return may be 1 for no recalc,
- 3 for default recalc, or 2 to redo
- sheet & redraw. Set the IGOTIT argument
- to 1 if you process the command there.
-
- Various parsing aids are provided and most system data
- exists in commons which may be copied from the XQTCMD.FOR source
- code. Any command desired may be implemented. The USRCMD
- routine is called ahead of all commands except the *, -,
- and journaling commands, so may supersede them if need be.
-
-
- The USRFCT function names are stored in an internal array
- and always appear as *U name [args] in the cell. This routine is
- called from the CMND subroutine. The method of naming functions allows
- unlimited use of names.
- Supplied matrix routines access the array holding values of
- the spreadsheet. This is the XVBLS array, and subroutines had to be
- modified to address it correctly. The main thing is that the
- "distance" between successive rows (same column) on the sheet is
- now always RRW (in the parameter statements in VKLUGPRM.FTN), rather
- than the normal Fortran default of the dimensions. You must alter
- your routines accordingly and remember the sheet is stored so that
- the rows are the fast-varying elements. (This is also the computational
- order to avoid paging the program to death.)
- Glenn Everhart
-