MATRIX v1.2
===========
MATRIX writer replacement by Arnold Moy (c)1996.
CONTENTS
========
1. Introduction
1.1 Copyright and Disclaimer
1.2 The MATRIX Library
1.2.1 Features
2. Installing and Removing the MATRIX Library
2.1 Installing the Library
2.2 Universal Font Library (UFL)
2.3 Bytes and Checksum
2.4 User Key Assignment
2.5 Java support
2.6 Removing the Library
3. Usage
3.1 Commands
3.2 Explanation of Menu Functions
EDIT
COPY
PASTE
GO>
<GO
RTN
<WID
WID>
+ROW
-ROW
+COL
-COL
VEC
DIMS
SPEED
VEC
3.3 Explanation of Keys
3.3.1 Matrix keys
3.3.2 Editor keys
3.4 matrixPAR
4. Acknowledgments
5. History
6. Resources and References
1. Introduction
---------------
1.1 Copyright and Disclaimer
-----------------------------
All files in the MATRIX package are copyrighted(c) by Arnold Moy
unless otherwise noted.
The software contained in this package is provided as free of charge
and therefore contains no warranty of any kind. Should the Software
prove defective, you and not the author assume the entire cost of any
service and repair. This disclaimer of warranty constitutes an
essential part of the agreement.
1.2 The MATRIX Library
----------------------
The MATRIX library essentially replaces the built-in matrix writer.
Almost entirely written in assembly language, all aspects of operation
are vastly improved upon when compared to the built-in matrix writer.
1.2.1 Features
--------------
o very large matrices can be created and edited without any
significant loss in performance
o support for real and complex matrices
o multi-element entry
o cell copy and paste function
o fast row and column inserting and removing
o variable scrolling speed
o variable column widths
o fast editor (EDLIN)
o user settings saved upon exit
o uses the UFL (Universal Font Library)
o works on all HP48 models (S,G,SX,GX)
o works from any port
2. Installing and Removing the MATRIX Library
---------------------------------------------
The MATRIX library requires at least 13.5k to install and an auxiliary
library called the Universal Font Library (UFL) must be present.
2.1 Installing
--------------
a) send the library to the HP48
b) put a copy of the library on the stack
c) enter the port number to store the library (0-33 GX, 0-2 SX)
d) here is an example of the stack setup so far:
--------------------------
4:
3:
2: Library 1019: MAT...
1: 0
| | | | | | |
e) at this point, press [STO]
f) perform a warmstart with [ON][C] or turn on and off the HP48
g) erase the variable containing the library. eg. 'MATRIX12.LIB' PURGE
h) read the next section for the Universal Font Library (UFL)
requirements
2.2 Universal Font Library (UFL)
--------------------------------
The MATRIX library requires the UFL to be present. Read the UFL
documentation from the UFL package (included) for more information
From the UFL package, one of two libraries must be present. Either
ufl1.lib or ufl3.lib and not ufl2.lib because the MATRIX library
requires FNT1.
If you have not installed one of the UFL libraries, install it now:
a) send the library(ufl1.lib or ufl3.lib) to the HP48
b) put a copy of the library on the stack
c) enter the port number to store the library (0-33 GX, 0-2 SX)
d) here is an example of the stack setup so far:
--------------------------
4:
3:
2: Library 257: UFL...
1: 0
| | | | | | |
e) at this point, press [STO]
f) perform a warmstart with [ON][C] or turn on and off the HP48
g) erase the variable containing the library.
h) The MATRIX library is ready for use.
2.3 Bytes and Checksum
----------------------
Bytes: 13222
Checksum: # AFCDh
2.4 User Key Assignment
------------------------
The MATRIX command can be assigned to a specific key for convenient
and rapid access. Here is an example to replace the standard key
assignment used for the built-in matrix writer:
{ << MATRIX >> 51.3 } STOKEYS
Refer to the HP48 manual for more information on User Key Assignments.
2.5 Java Support
-----------------
If you have Java v3.0 or higher installed, [rshift][ENTER] will
automatically execute NEWMAT and [down-arrow] will execute the
MATRIX command.
2.6 Removing the Library
-------------------------
a) :0: 1019 DETACH
b) :0: 1019 PURGE
Depending on which port number the MATRIX library was stored, :0: in the
above can be replaced by the appropriate port number.
3. Usage
--------
3.1 Commands
------------
MATRIX - either starts a new matrix if no valid matrix exists on
stack level 1 or edits a valid matrix on stack level 1.
NEWMAT - starts a new matrix, no stack arguments required
ERASEMP - erases matrixPAR from hidden directory
3.2 Explanation of Menu Functions
---------------------------------
EDIT
----
o edit the current highlighted cell
COPY
----
o copy the current highlighted cell contents to the clipboard
PASTE
-----
o paste the clipboard contents to the current highlighted cell
GO>
---
o move the highlight cursor right after each entry
o function active indicated by box displayed in menu key
o works in conjunction with RTN, see RTN
GO\/
----
o move the highlight cursor down after each entry
o function active indicated by box displayed in menu key
o works in conjunction with RTN, see RTN
RTN
---
o when RTN and GO> are activated(box displayed in menu keys):
when the last element in a row has been reached, the cursor will
return to the first column of the next adjacent row below
o when RTN and GO\/ are activated(box displayed in menu keys):
when the last last element in a column has been reached, the entry
cursor will return to the first row of the next right adjacent column
o RTN can only be activated when either GO> or GO\/ are activated
+ROW
----
o add a row
-ROW
----
o delete a row
+COL
----
o add a column
-COL
----
o delete a column
<WID
----
o make the column width narrower
o more columns are displayed
WID>
----
o make the column width wider
o less columns are displayed
DIMS
----
o show dimensions, hold key down
SPEED
-----
o 3 speeds for scrolling and key repeating are available
o pressing this key cycles through the different speeds
o The speed is indicated in the top left corner
o >=slow >>=medium >>>=fast
VEC
---
o toggle between vector mode and matrix mode
o when vec is on(box displayed in menu key), one row arrays are
returned as vectors [1 2 3]
o when vec is off(box not displayed in menu key), one row arrays are
returned as matrices [[1 2 3]]
3.3 Explanation of Keys
-----------------------
3.3.1 Matrix keys
------------------
+-------+-------+-------+-------+-------+-------+
| | | | | | |
| | | | | | |
| | | | | | |
+-------+-------+-------+-------+-------+-------+
|<WID |WID> |DIMS |SPEED |UP | |
| | | | | | |
| | | | |JMPUP | |
+-------+-------+-------+-------+-------+-------+
| |COPY |PASTE |LEFT |DOWN |RIGHT |
| | | | | | |
| | | |JMPLEFT|JMPDOWN|JMPRGHT|
+-------+-------+-------+-------+-------+-------+
| | | | | | |
| | | | | | |
| | | | | | |
+-------+-------+-------+-------+-------+-------+
|EXIT |NEG |1E | | |
| | | | | |
| | | | | |
+-------+---------+---------+---------+---------+
|alpha |7 |8 |9 | |
| | | | |() |
| | | | | |
+-------+---------+---------+---------+---------+
|lshift |4 |5 |6 | |
| | | | | |
| | | | | |
+-------+---------+---------+---------+---------+
|rshift |1 |2 |3 | |
| | | | | |
| | | | | |
+-------+---------+---------+---------+---------+
|EXIT |0 |. | | |
| | | | | |
| | | | | |
+-------+---------+---------+---------+---------+
+-------+
| | <--- non-shifted/alpha
| | <--- left-shift
| | <--- right-shift
+-------+
<WID - make the column width narrower
WID> - make the column width wider
DIMS - show dimensions, hold key down
SPEED - 3 speeds for scrolling and key repeating are available
- pressing this key cycles through the different speeds
- The speed is indicated in the top left corner
- >=slow >>=medium >>>=fast
UP - move highlight cursor up
COPY - copy the current highlighted cell contents to the clipboard
PASTE - paste the clipboard contents to the current highlighted cell
LEFT - move highlight cursor left
DOWN - move highlight cursor down
RIGHT - move highlight cursor right
JMPUP - jump to the extreme top
JMPLEFT - jump to the extreme left
JMPDOWN - jump to the extreme bottom
JMPRGHT - jump to the extreme right
EXIT - exit program
NEG - negate sign
1E - exponent
() - complex number delimiters
. - 9 - digits
3.3.2 Editor keys
------------------
The MATRIX library incoporates EDLIN, the one line editor. Here
is a description of the relevant keys.
+-------+-------+-------+-------+-------+-------+
|A |B |C |D |E |F |
| | | | | | |
| | | | | | |
+-------+-------+-------+-------+-------+-------+
|G |H |SPEED/I|J |K |L |
| | | | | | |
| | | | | | |
+-------+-------+-------+-------+-------+-------+
|M |N |O |P |Q |R |
| | | | | | |
| | | | | | |
+-------+-------+-------+-------+-------+-------+
|S |T |U |V |W |X |
| | | | | | |
| | | | | | |
+-------+-------+-------+-------+-------+-------+
|EXIT |NEG/Y |1E/Z |DEL |BS |
| | | |DELLINE| |
| | |TOGOVER|DELRGHT| |
+-------+---------+---------+---------+---------+
|alpha |7 |8 |9 |/ |
| | | | |() |
| | | | |# |
+-------+---------+---------+---------+---------+
|lshift |4 |5 |6 |* |
| | | | |[] |
| | | | |_ |
+-------+---------+---------+---------+---------+
|rshift |1 |2 |3 |- |
| | | | |<<>> |
| | | | |"" |
+-------+---------+---------+---------+---------+
|ABORT |0 |. |SPC |+ |
| | | | |{} |
| | | | |:: |
+-------+---------+---------+---------+---------+
+-------+
| | <--- non-shifted/alpha
| | <--- left-shift
| | <--- right-shift
+-------+
Most keys are mapped according to the standard built-in editor.
Here are a few important keys to know about:
SPEED - 3 speeds for scrolling and key repeating are available
- pressing this key cycles through the different speeds
- the speed is indicated in the top left corner
- >=slow >>=medium >>>=fast
EXIT - keep changes and exit
NEG - negate
TOGOVER - toggle between insert and overwrite mode,
- current mode displayed in the upper left corner
- INS=insert mode OVR=overwrite mode
DEL - delete
DELINE - delete the entire edit line
DELRGHT - delete to the right of the cursor
BS - backspace
ABORT - abort and discard any changes
3.4 matrixPAR
-------------
Certain settings will be saved upon exit. Here is a list:
GO direction and RTN
Column width
Speed
Matrix type
Insert/Overwrite
The variable matrixPAR is stored in the hidden directory and can be
removed by using the ERASEMP command.
4. Acknowledgments
------------------
The following people have been instrumental in the development and
refinement of the MATRIX project.
Al Arduengo - beta tester
Andre Schoorl - beta tester
Dan Kirkland - programming assistance
Detlef Mueller - programming assistance
Jack Levy - beta tester
Manoj Kasichainula - beta tester
Mika Heiskanen - programming assistance
Nathanael Morriss - beta tester
Othniel Rawlins - beta tester
Will Laughlin - programming assistance
Richard Steventon - programming assistance
5. History
----------
Changes 1.1 to 1.2
- updated package by including UFL v1.0.1
- fixed negate problem with complex numbers
Changes 1.0 to 1.1
- fixed data ordering in memory problem (>TOPTEMP), works from
covered ports now
Changes 1.0e to 1.0(release)
- fixed negate problem in editor
Changes 1.0d to 1.0e
- fixed RSTK overflow related warmstart problem
- fixed low memory UART buffer back-up condition
- fixed string reference problem during UART buffer back-up
- fixed auto-spacing for function keys
- fixed array object reference problem
Changes 1.0c to 1.0d
- added xERASEMP
- added [ABOUT]
- changed error message to INVALID ELEMENT
- fixed significant digits editing problem (EDITDECOMP$)
- added menu functions while editing [WID>], [WID\/] [RTN]
- fixed complex polar mode bug (interrupts)
- added multi-element entry
- added remember speed
- added keys for <WID [MTH], WID> [PRG], COPY [STO], PASTE [EVAL]
- changed speed key from [EVAL] to [VAR]
- rearranged menu layout and added [DIMS] and [SPEED] menu keys
- added [RTN] return cursor
- display cell contents for one column fixed
Changes 1.0b to 1.0c
- fixed [ATTN] problem
- added xNEWMAT
- added key to display dimensions
- added speed indicator
- made GO work more like the built-in matrix writer
- added negate sign key for EDLIN and MATRIX
- changed speed key from [+/-] to [EVAL] key
6. Resources and References
---------------------------
HPTools - PC based System RPL and Assembly Language compiler
ftp://hpcvbbs.external.hp.com/dist/
Jazz - HP48 based System RPL and Assembly Language development tools
http://www.hut.fi/~mheiskan/
UFL - Universal Font Library
http://www.engr.uvic.ca/~aschoorl/ufl/
Arnold Moy - email: amoy@geog.ubc.ca
WWW: http://www.geog.ubc.ca/~amoy/