Metropoli BBS
VIEWER: matrix12.doc MODE: TEXT (ASCII)
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/
[ RETURN TO DIRECTORY ]