05/05/97 La nouvelle version de démo est là !
Le Meta-Kernel est un noyau accélérant la plupart des commandes classiques de la HP48GX :
Et rajoute de puissants outils de développement en RPL, External et Assembleur :
Le Meta-Kernel necessite une carte de 128 Ko en port 1 uniquement. Il peut aussi fonctionner sur une 256 Ko ou 512 Ko, mais toujours en port 1, ce qui empêche d'accéder directement aux autres ports de la carte.
Une version de démonstration limitée est disponible gratuitement ici.
Les limitations sont :
Le texte qui suit a pour but de présenter la plupart des fonctionnalités du Meta Kernel, et sert de mini-doc pour la version démo. Le manuel fourni à l'achat fait 150 pages, contient beaucoup plus de détails, d'écrans et d'exemples. Il contient, en plus de la partie utilisation et référence, une initiation à l'assembleur, une initiation à l'external, une liste triée de points d'entrée external (en Anglais), ainsi que la référence des points d'entrée du Meta Kernel.
L'affichage de la pile a été très nettement amélioré, tant en vitesse qu'en esthétique.
De 5 à 9 lignes peuvent être affichées, suivant la taille de la police et la hauteur de la
zone d'état. En effet, les fontes peuvent avoir une taille de 6, 7 ou 8 pixels de haut.
La hauteur de la zone d'état est paramétrable, elle est par défaut de 2 lignes, et peut
se réduire à 1 ligne ou disparaître complètement, ce qui laisse plus de place pour
l'affichage de la pile. Cette zone d'état contient d'ailleurs plus d'informations: mode de
calcul HEX, DEC, OCT ou BIN; mode vectoriel rectangulaire, cylindrique ou sphérique; état du bip; présence
et protection d'une carte en port 2, horloge digitale ou analogique.
Les fontes disponibles à l'affichage vont de 6 à 8 pixels de haut. Il existe également
une 'mini-fonte' qui permet d'afficher 33 caractères de large.
Les équations et les grobs sont affichés directement sur
la pile.
Le graphisme des menus a
aussi été modifié, il permet
maintenant de connaître le type
de l'objet contenu. La mini-fonte
MK peut être utilisée, pour
afficher des minuscules.
Les nouvelles fonctions de la pile interactive (STACK) sont :
INFO : affiche des informations sur l'objet pointé
shift-gauche INFO : édite l'objet pointé dans l'environnement le plus adéquat
shift-droite INFO : édite l'objet dont le nom est pointé
GOTO : va directement à une ligne donnée
SLOW/FAST : change la vitesse de défilement
L'éditeur de la ligne de commandes a été fait par l'auteur de StringWriter. Il offre donc toutes ses
fonctionnalités et en rajoute de nouvelles. Mais contrairement aux autres éditeurs, il offre une interface
complète avec la HP (accès à tous les menus, à la pile...).
L'éditeur utilise la fonte de la pile (y compris la mini-fonte). Le déplacement à l'intérieur de l'objet est très rapide.
Les nouvelles fonctions de l'éditeur sont :
GOTO : va à une ligne donnée
shift-gauche GOTO : va à un caractère donné
shift-droite GOTO : affiche la table des matières du texte, qui correspond à toutes les lignes commençant par
*.
->BEG : va au début de la sélection
->END : va à la fin de la sélection
DEL L : efface la ligne courante
SLOW/FAST : change la vitesse de défilement
INFO : affiche des renseignements sur le texte édité
shift-gauche INFO : édite la partie du texte sélectionné dans l'environnement le plus adapté. Par exemple, si
'X+Y' est sélectionné, on passe dans l'éditeur d'équations, et au retour, le texte est modifié.
BEGIN : indique le début de la sélection
END : indique la fin de la sélection
CUT : copie la sélection au niveau 1 de la pile et l'efface du texte
COPY : copie la sélection au niveau 1 de la pile
PASTE : copie l'objet au niveau 1 de la pile dans le texte
shift-gauche PASTE : copie l'objet au niveau 1 de la pile dans le texte, et le retire de la pile
DEL : efface la sélection
FIND : recherche un texte (ce texte est placé au niveau 1 de la pile)
REPL : recherche un texte dans le but de le remplacer par un autre (le texte à chercher est copié au niveau 1 de
la pile et le texte de remplacement est copié au niveau 2)
NEXT : cherche la prochaine occurrence du texte de recherche (au niveau 1 de la pile)
R : effectue le remplacement (remplace la sélection par le texte au niveau 2 de la pile)
R/N : effectue un remplacement et passe à la prochaine occurrence de la recherche (correspond à R puis
NEXT)
ALL : remplace toutes les occurrences du texte de recherche par le texte de remplacement
Style : voir ci-dessous
^STK : passe dans la pile interactive
shift-gauche ^STK : évalue la sélection et la remplace par le résultat. Par exemple, si la sélection est 0 COS, elle
sera remplacée par 1.
shift-droite ^STK : suspend l'édition en cours (comme HALT). CONT permet de revenir dans l'éditeur.
La plus importante innovation est l'utilisation de styles, et la possibilité de
mélanger plusieurs fontes à l'intérieur d'un même texte. Les
styles disponibles sont : gras, italique, souligné et inversé.
Les polices dans un texte doivent avoir la même hauteur.
Les polices peuvent se trouver dans n'importe quel port (0,
2 ou plus).
De plus, un nouveau gestionnaire de mémoire s'occupe des grandes chaînes de caractères. En effet, la plus grande chaîne éditable est normalement limitée à la moitié de la mémoire. Avec le Meta Kernel, la limite est celle de la mémoire disponible !
La commande ->STR de la HP a été totalement reprogrammée en assembleur, ce qui l'accélère des centaines de
fois.
Cette nouvelle fonction est utilisée pour l'affichage de la pile et l'édition des objets.
Grâce à elle, l'affichage de la pile prend beaucoup moins de temps, même s'il y a de gros objets. Pour éditer un
programme RPL de 1500 octets (seulement !) et contenant un objet code, il faut habituellement 20 secondes.
Avec le nouveau ->STR, l'édition peut commencer moins d'une seconde après (2 dixièmes exactement !). De
plus, l'objet code (ou librairie ou tout objet External) est perdu par le ->STR, alors que ->S2 le conserve, grâce à
la librairie de commandes du Meta Kernel.
Le nouvel éditeur d'équations intégré au Meta Kernel remplace l'Equation Writer.
Le premier avantage est un gain de vitesse énorme, puisque l'équation se modifie à
chaque appui de touche, même si elle est grosse.
La saisie est légèrement différente, plus orientée RPL. La fonte utilisée est celle de la
pile ou la mini-fonte. Des fonctions copier/coller sont disponibles, ainsi que l'accès
aux fonctions EVAL, COLCT et EXPAN sans sortir de l'éditeur.
L'éditeur de matrices est maintenant plus rapide, et sait gérer n'importe quel type d'objet.
On peut donc éditer des matrices symboliques, ou même des tables de messages, ou des tableaux contenant
plusieurs types d'objets. Ces matrices sont en fait stockées en tant que liste de listes, beaucoup de
programmes utilisant déjà ce format.
L'éditeur graphique est une nouvelle application apportée par le Meta Kernel.
Il permet d'éditer facilement et rapidement des objets graphiques en noir et blanc, ou en 4 niveaux de gris.
Les fonctions de bases sont le point, la droite, le cercle, l'ellipse, le plan et la courbe spline à trois points. Ces
figures se déplacent en temps réel sous le curseur, et sont ensuite posées sur le graphique avec la couleur
choisie (blanc, gris clair, gris fonce, noir ou inversé).
Les fonctions supplémentaires sont le copier/coller, le remplissage avec motifs et l'insertion de textes.
Des raccourcis claviers permettent d'accéder rapidement à toutes les fonctions sans passer par le menu.
Le menu CHARS a lui aussi été accéléré. Il supporte les fontes du MK, et permet
de plus de les modifier, cette modification se répercutant
immédiatement sur l'affichage de la pile.
Le filer est un puissant gestionnaire de fichiers, permettant de manipuler facilement
les fichiers des répertoires et des ports.
L'écran 'arborescence' montre tous les ports de la machine (0, 2 et plus) avec la place
disponible dans chacun d'eux, et la structure des répertoires sous le HOME.
L'écran des fichiers propose la liste des fichiers à l'endroit
choisi dans l'arborescence. La navigation s'effectue pas les
touches gauche et droite pour remonter et descendre dans
l'arborescence.
Cette navigation peut se faire n'importe où : si un répertoire
se trouve en backup dans un port, il est possible de rentrer dedans, d'aller dans ses sous-répertoires et de
manipuler les fichiers se trouvant à l'intérieur.
Les fonctions disponibles sont : manipulation des fichiers (COPY, MOVE, PURG, ORDER, SEND), et de leur
contenu (RCL, EDIT, HEXA, VIEW, INFO, EVAL).
->FONT : choix de la fonte de la pile,
FONT-> : ressort la fonte courante,
->HEADER : choix de la hauteur de la zone d'état (0, 1 ou 2),
HEADER-> : ressort la hauteur courante de l'entête,
->NDISP : nombre maximum de lignes à afficher pour les objets sur la pile,
INPUT2, DISP2, CHOOSE2 : comme INPUT, DISP et CHOOSE, mais adapté au Meta Kernel (affichage,
multi-fonte...),
EDIT, VISIT : éditeur du Meta Kernel (le même qu'en ligne de commande),
EDITB, VISITB : choisit le meilleur environnement d'édition suivant l'objet (texte, équation, matrice, grob...)
->GROB2 : comme ->GROB, mais adapté au Meta Kernel (dont l'affichage des équations comme EQW),
SREPL : recherche/remplacement dans une chaîne de caractères,
SREV : inverse une chaîne de caractères,
AR~LST : convertit un objet de type matrice en liste de listes, et vice-versa,
DIMS : taille d'une matrice (y compris matrices sous forme liste de listes)
Des variables spéciales peuvent être placées dans le répertoire HOME.
STARTUP : programme lancé à chaque arrêt système. Il est utile pour retrouver rapidement les paramètres
habituels de l'environnement.
STARTED, EXITED : programmes exécutés avant et après l'édition en ligne de commande. Ils peuvent être
utilisés pour changer la fonte, la hauteur de la zone d'état, ou même (dé)compresser des objects
automatiquement.
TOFF, STARTOFF : durée avant l'auto-off et programme exécuté avant l'auto-off.
STARTSEND : programme lancé par le Filer avant d'envoyer un objet par SEND, il permet ainsi de choisir le
protocole ou d'autres paramètres de transmission.
STARTEXT : liste de points d'entrées externals, voir External en ligne de commandes.
STARTERR : appelé pour l'affichage des messages d'erreurs.
Une nouvelle série de 128 drapeaux est disponibles avec les commandes CF2, SF2...
Les drapeaux systèmes -1 à -64 commandent le MK.
| CF2 (par défaut) | SF2 |
-1 | Multiligne pour tous les niveaux de la pile | Multiligne seulement pour le niveau 1 de la pile |
-2 | Chaînes multilignes | Chaînes affichées sur une seule ligne |
-3 | Horloge numérique dans la barre d'états | Horloge analogique |
-4 | Pas d'autoindentation dans l'éditeur | Autoindentation activée (lors d'un retour à la ligne, le curseur est placé sous le premier caractère de la ligne précédente) |
-5 | Curseur limité au texte dans l'éditeur | Edition pleine page |
-6 | Chaînes sur une ligne dans ->GROB2 | Chaînes multilignes dans ->GROB2 |
-7 | ASM-> avec adresses | ASM-> enlève les adresses |
-8 | Fonte courante pour l'affichage de la pile | Mini-fonte pour l'affichage de la pile |
-9 | Fonte courante pour l'édition | Mini-fonte pour l'édition |
-10 | Pile justifiée à droite | Pile justifiée à gauche |
-11 | Clavier silencieux | Clics des touches |
-12 | Pas de confirmation de PURGE dans le Filer | Confirmation du PURGE dans le Filer |
-13 | (réservé) | |
-14 | (réservé) | |
-15 | Affichage 'EQW' des équations sur la pile | Affichage standard des équations |
-16 | Fonte courante pour l'affichage des équations | Mini-fonte pour l'affichage des équations |
-17 | Fonte courante pour les équations dans ->GROB2 | Mini-fonte pour les équations dans ->GROB2 |
-18 | Fonte courante pour l'édition des équations | Mini-fonte pour l'édition des équations |
-19 | Affichage des grobs dans la pile | Affichage standard des grobs |
-20 | Affichage des menus en Mini-fonte | Affichage standard des menus |
Certains types d'objets peu courants pour l'utilisateur ne peuvent pas être créés facilement, et ils sont perdus en cas d'édition. Mais grâce au nouveau ->S2 et à la librairie de commandes, ils ne seront plus perdus!
La librairie de commandes du MK permet de créer des objets de tous types: codes assembleurs, externals,
grobs en niveaux de gris, entiers systèmes :
TRUE : External 'Vrai'
FALSE : External 'Faux'
$ : External (Ex : DUP external - $ 3188h)
¤ : Entier système (Ex : ¤ 123)
K$ : Caractère (Ex : K$ 65)
XLIB : Référence à un programme en librairie (Ex : 3è programme de la librairie 898 - XLIB 898 3)
INCLUDE : Inclut un fichier
PRG : prologue de programme RPL ou external ($ 02D9Dh)
~ : NoEval, pose l'objet qui suit sur la pile sans l'évaluer ($ 06E97h)
PROG : ~ PRG, permet d'éditer un programme RPL ou external sans l'évaluer à la sortie
CODE : Insert un objet code assembleur
(epsilon) : External, adresse en hexa (Ex : DUP external - (epsilon) 3188)
OBJ : Crée un objet quelconque
GREY : crée un grob en 4 niveaux de gris (Ex : GREY 131 64)
(delta) : External nommé, la liste se trouve dans STARTEXT (Ex : si STARTEXT contient le couple DUP 03188,
(delta) DUP équivaut à $ 3188h)
La programmation en external est simplifié par la librairie de commandes. Il suffit de taper $ 12345 pour inclure
un external.
De plus la variable STARTEXT peut contenir une liste de points d'entrée. Si dans cette liste se trouve "DUP"
associé à 03188, il suffit alors de taper d DUP au lieu de $ 3188.
L'assembleur HPMasd du MK travaille directement sur la HP, et fournit en plus d'une grande vitesse d'assemblage, un ensemble de nouvelles fonctions simplifiant la programmation de petits codes ou de gros projets.
Le désassembleur utilise la syntaxe de HPMasd.
Des fonctions du noyau sont fournies sous forme de points d'entrée pour créer plus facilement des programmes fonctionnant sous le Meta Kernel.
Par exemple, les routines d'affichage du noyau sont accessibles en assembleur. Ces routines gèrent les multi-fontes et les styles.
Le créateur de librairies construit des librairies très rapidement directement sur la HP.
Jean-Yves Avenard | Noyau, ligne de commande, Editeur de matrices, filer |
Christian Bourgeois | ->S2 |
Cyrille de Brébisson | Assembleur, désassembleur, Crlib, Chars |
Etienne de Foras | Editeur Graphique |
Gérald Squelart | Editeur d'équations, Traduction Anglaise de la doc |
Jake Schwartz | Correcteur de la version Anglaise de la doc |
Wlodek Mier-Jedrzejowicz | Venez à la conférence HP à londres, les 20 et 21 Septembre ! |
Erik Gorka | Tests et suggestions |
T Throop | Tests et tests ! |
Sebastien Casartelli | Tests et suggestions (aussi!) |
Mika Heiskanen & Andre Schoorl | Pour leur concurrence qui nous permet sans cesse d'ameliorer nos programmes. Sans eux nous ne serions pas les meilleurs :-) |