05/05/97 The new demo version is here!
The Meta Kernel is a kernel which enhances and accelerates many HP48 GX functions:
And adds powerful development tools in RPL, System RPL and assembly language:
The Meta Kernel needs a 128 Kb RAM card, and works only in port1. It can also be installed on a 256 or 512 Kb RAM card, but this card must be placed in port 1, which prevents from reading the rest of the card. A ROM card is to be released in some months...
A demo version is freely available here.
The limitations are:
The following text aims at presenting the Meta Kernel, and it can be used as a mini-manual. The printed manual sent with the complete Meta Kernel has 150 pages, with much more details, screen shots and examples. It also contains an assembly language initiation, a System RPL initiation, a sorted SysRPL list, and a list of the Meta Kernel entry points.
The stack display has been much improved, in speed and in shape.
5 to 9 lines can be displayed, depending on the font height and the header size.
The status header size is 2 lines by default, it can be reduced to 1 or even 0 lines,
which leaves more space for the stack display. This header has also been improved,
and shows new indicators: HEX, DEC, OCT or BIN mode; rectangular, cylindric or
spheric vectorial mode; beeper status; presence and state of the 2nd card; digital or
analogic watch.
Available fonts vary from 6 to 8-pixel high. There is also a 'mini-font' which permits
a 33 columns text display.
Equations and grobs can be displayed directly on stack.
Menu have also been redrawn,
their form depends on the object
stored. The mini-font can also be
used to display lowercase
characters.
New STACK functions are:
INFO : displays informations about the pointed object
left-shift INFO : edits the pointed object in the best-fitted environment
right-shift INFO : edits the object contained in the pointed variable
GOTO : goes to a given line
SLOW/FAST : switches the scrooling speed
The command line editor has been written by the author of String Writer. All the string writer functions are
there, plus new ones. And contrary to other editors, all HP menus are accessible.
The editor uses the stack font by default, even the mini-font. The cursor movement can be extremely fast.
New functions are:
GOTO : goes to a given line
left-shift GOTO : goes to a given character
right-shift GOTO : displays a menu, composed by the lines beginning with a *.
->BEG : goes at the beginning of the selection
->END : goes the the end of the selection
DEL L : deletes the current line
SLOW/FAST : swithes the scrolling speed
INFO : displays informations about the text
shift-gauche INFO : edits the selected text in the best-fitted environment. e.g. if 'X+Y' is selected, edits it with
the equation editor, and then updates the text
BEGIN : marks the beginning of the selection
END : marks the end of the selection
CUT : copies the selection to the stack level 1 and deletes it from the text
COPY : copies the selection to the stack level 1
PASTE : copies the object on stack level 1 in the text
shift-gauche PASTE : copies the object on stack level 1 in the text and pops it from the stack
DEL : deletes the selection
FIND : searches a text
REPL : searches a text to be replaced by another one
NEXT : searches the next occurrence of the search string
R : replaces the selection by the replacement text
R/N : replaces the selection by the replacement text and searches the next occurrence of the search string (like
R then NEXT)
ALL : replaces all the occurrences of the search string by the replace string
Style : see below
^STK : goes to the interactive stack
shift-gauche ^STK : EVALuates the selected text and replaces it with the result. e.g. if the selection is 0 COS,
it will be replaced by 1
shift-droite ^STK : HALTs the current editing. CONT goes back in the editor
The most important innovation is the use of styles, and the possibility to mix
several fonts in one text. Available styles are: bold, italic,
underlined and inversed. The fonts can be stored
anywhere in directories, or in ports.
The standard ->STR function has been completly rewritten in assembly language, which accelerates it
hundreds times.
This new function is used for the stack display and the command line editing.
Thanks to it, the stack display takes much less time, even if there are big objects. And to edit a RPL program of
(only!) 1500 bytes, it normally requires 20 secondes. With the new ->S2, editing can begin as soon as you
press the EDIT key (exactly 0.2 s!). And more, with the help of the Meta Kernel command library, any non-user
object (library, System RPL, asm code...) are not lost during editing.
The new equation editor replaces the standard Equation Writer.
The first advantage is a big speed gain, since the equation is redrawn at each
keypress, without waiting, even with huge expressions.
The typing is a little different, more in RPL-style. The stack font is used by default,
or the mini-font.
Copy/paste functions are available, and also EVAL, COLCT and EXPAN on a sub-expression, without leaving
EQW.
The matrix editor is much faster, and can handle any object type.
So, symbolic matrices can be edited, or message tables, or even tables with several object types. These
matrices are stored in a 'list of lists' form, which is commonly used by many existing programs.
The graphic editor is a new Meta Kernel application.
Grobs can be easily edited, in greyscale, or in 4 grey levels..
Base shapes are point, line, circle, ellips, plan and 3-point-spline curve. These shapes can be moved in
real-time with the cursor, and then drawn in any color (white, light grey, dark grey, black or inversed).
There are also copy/paste functions, fill, pattern-fill and text writing.
All functions can be rapidly accessed by shortcut keys.
The CHARS menu has also been rewritten. It can now edit fonts, modifications
appear immediatly in the stack display.
The filer is a powerful file manager, which eases access to directories and ports.
The tree screen shows all ports with their available space, and the directory structure
from HOME.
The file screen shows the file list at the chosen place.
Navigating in the tree is simply done with the left and right
keys.
It is possible to navigate everywhere. Imagine a library
inside a directory which is stored in a port, it is possible to
view it!.
File manipulation: COPY, MOVE, PURG, ORDER, SEND.
Content manipulation: RCL, EDIT, HEXA, VIEW, INFO, EVAL.
->FONT: stack font setting
FONT->: recalls the current font
->HEADER: header size setting (0, 1 or 2)
HEADER->: recalls the current header size
->NDISP: maximum number of lines for objects displayed on stack
INPUT2, DISP2, CHOOSE2: like INPUT, DISP and CHOOSE, but fit to the Meta Kernel (display, fonts...)
EDIT, VISIT: Meta Kernel text editor
EDITB, VISITB: best editor, depending on the object type (text, equation, matrix, grob...)
->GROB2: like ->GROB, but fit the Meta Kernel (particularly for the equation display)
SREPL: find/replace in a character string
SREV: reverses the order of the characters of a string
AR~LST: convert a matrix to a 'list of lists' object, and vice-versa,
DIMS: computes the size of a matrix, even 'list of lists' tables
Some variables can be stored in the HOME directory, and change the Meta Kernel behaviour.
STARTUP: launched at every boot, useful to easily retrieve your standard environment.
STARTED, EXITED: launched just before and after a command line editing. They can change the current font,
the header size...
TOFF, STARTOFF: auto-off timeout value, and a program which replaces the auto-off
STARTSEND: called by the filer to replace the standard SEND command.
STARTEXT: System RPL list, used by the (delta) command
STARTERR: called to display error messages
128 new flags are available with the commands CF2, SF2...
MK system flags from -1 to -64 affect the MK behaviour.
| CF2 (default) | SF2 |
-1 | Multiline for stack display at all levels | No multiline for stack display (except level 1) |
-2 | Strings displayed on multiple lines | Strings displayed on one line |
-3 | Digital watch in the status header | Analogic watch |
-4 | No auto-indentation | Auto-indentation activated |
-5 | Cursor cannot go out of the text | Full page editing |
-6 | Strings take only one line in ->GROB2 | Multilined strings in ->GROB2 |
-7 | ASM-> with addresses | ASM-> strips out the addresses |
-8 | Stack display with the current font | Stack display with the mini-font |
-9 | Text editing with the current font | Text editing with the mini-font |
-10 | Rightmost stack display | Leftmost stack display |
-11 | Silent keystrokes | Keystrokes click |
-12 | No purge confirmation in the Filer | Purge confirmation in the Filer |
-13 | (reserved) | |
-14 | (reserved) | |
-15 | On-stack equation display (EQW-like) | stack stack display for equations |
-16 | Current font for EQW stack display | Mini-font for EQW stack display |
-17 | Current font for algebraics in ->GROB2 | Mini-font for algebraics in ->GROB2 |
-18 | Current font for algebraic editing | Mini-font for algebraic editing |
-19 | On-stack grob display | Standard grob display |
-20 | Mini-font for menu labels | Standard font for menu labels |
Some object types cannot be easily created by users, are lost when edited. But with the new ->S2 function and the command library, they won't be lost anymore.
TRUE, FALSE: System RPL booleans
$: System RPL entry point (Ex : SysRPL DUP - $ 3188h)
¤: System binary integer (Ex : ¤ 123)
K$: Character (Ex : K$ 65)
XLIB: eXternal LIBrary reference (Ex : 3rd program of the librairie 898 - XLIB 898 3)
INCLUDE: Includes a file
PRG: RPL program prolog ($ 02D9Dh)
~: NoEval, pushes the following object without evaluating it ($ 06E97h)
PROG: ~ PRG, beginning of a RPL program, when being edited (so it is not evaluated)
CODE: Inserts a code object
(epsilon): System RPL entry point, always given in hexa (Ex : SysRPL DUP - (epsilon) 3188)
OBJ: Creates any object
GREY: Creates a 4-grescale grob (Ex : GREY 131 64)
(delta) : Named System RPL entry point, the list is stored in STARTEXT (Ex : if STARTEXT contains the pair
DUP 03188, (delta) DUP is equivalent to $ 3188h)
With the help of ->S2, $ and STARTEXT, it is easy to program in System RPL directly on the stack.
The HPMasd assembler works directly on the HP48.
It is fast, and new functions ease the writing of both little and big projects.
The disassembler uses the HPMasd syntax.
Some Meta Kernel functions are available as entry points, so that programmers can use the powerful features of the Kernel.
For example, display routines are accessible in assembly languages.
The library creator can rapidly make libraries directly on the HP.
Jean-Yves Avenard | Kernel, command line, matrix, Filer |
Christian Bourgeois | ->S2 |
Cyrille de Brébisson | Assembler, disassembler, Crlib, Chars |
Etienne de Foras | Picture2 |
Gérald Squelart | EQW, english translation |
Jake Schwartz | Spelling checker of the English manual |
Wlodek Mier-Jedrzejowicz | Come at the HP conference in London, September 20-21 ! |
Erik Gorka | Testing and suggestions |
T Throop | Testings and testings ! |
Sebastien Casartelli | Testing and suggestions (too!) |
Mika Heiskanen & André schoorl | For their non-stop competition that have allowed us to consistenly improve our software programs. Without them, we wouldn't be the best in the business ! |