META KERNEL

Français

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...


Demo Version

A demo version is freely available here.
The limitations are:


FONCTIONNALITIES

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.

Stack display menu

The stack display has been much improved, in speed and in shape.
Font6
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.

Mini-Fonte Available fonts vary from 6 to 8-pixel high. There is also a 'mini-font' which permits a 33 columns text display.
Grob, Eq sur la pile
Equations and grobs can be displayed directly on stack.

Menus 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

Command line editor menu

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

Styles Liste de fontes 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.

->S2 menu

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.

Equation editor (EQW) menu

eqw 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.

Matrix Editor (MATRIX) menu

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.

Graphic Editor (PICTURE2) menu

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.

CHARS - Font Editor menu

chars chars edit The CHARS menu has also been rewritten. It can now edit fonts, modifications appear immediatly in the stack display.

Filer menu

arborescence 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.
fichiers
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.

Miscellanous Functions menu

->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

Environment Variables menu

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

MK Flags menu

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 levelsNo multiline for stack display (except level 1)

-2

Strings displayed on multiple linesStrings displayed on one line

-3

Digital watch in the status headerAnalogic watch

-4

No auto-indentationAuto-indentation activated

-5

Cursor cannot go out of the textFull page editing

-6

Strings take only one line in ->GROB2Multilined strings in ->GROB2

-7

ASM-> with addressesASM-> strips out the addresses

-8

Stack display with the current fontStack display with the mini-font

-9

Text editing with the current fontText editing with the mini-font

-10

Rightmost stack displayLeftmost stack display

-11

Silent keystrokesKeystrokes click

-12

No purge confirmation in the FilerPurge 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 displayMini-font for EQW stack display

-17

Current font for algebraics in ->GROB2Mini-font for algebraics in ->GROB2

-18

Current font for algebraic editingMini-font for algebraic editing

-19

On-stack grob displayStandard grob display

-20

Mini-font for menu labelsStandard font for menu labels

Command Library menu

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)

System RPL on command line menu

With the help of ->S2, $ and STARTEXT, it is easy to program in System RPL directly on the stack.

Assembler menu

The HPMasd assembler works directly on the HP48.
It is fast, and new functions ease the writing of both little and big projects.

Disassembler menu

The disassembler uses the HPMasd syntax.

Functions for programmers menu

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.

Library Maker menu

The library creator can rapidly make libraries directly on the HP.


Credits

Jean-Yves AvenardKernel, command line, matrix, Filer
Christian Bourgeois->S2
Cyrille de BrébissonAssembler, disassembler, Crlib, Chars
Etienne de ForasPicture2
Gérald SquelartEQW, english translation

Thanks to

Jake SchwartzSpelling checker of the English manual
Wlodek Mier-JedrzejowiczCome at the HP conference in London, September 20-21 !
Erik GorkaTesting and suggestions
T ThroopTestings and testings !
Sebastien CasartelliTesting and suggestions (too!)
Mika Heiskanen & André schoorlFor 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 !