HP
HP
< Plan du site >   < Recherche >
DOSSIERS - MODULES HEPAX
AccueilNewsForumDossiersArchivesLiens
Accueil
News
Forum
Dossiers

    HP-41, conseils d'achat
    Le PPC-T
    Mac 41
    Module Clonix-41
    Modules HEPAX

Archives
Liens 

HEPAX


Thomas FR69 - Version 002 d'avril 2008

Documents se rapportant à cette page :
>  Réagissez à cet article sur notre forum
>  Aide-mémoire du module HEPAX (106 Ko) GB


>  Le module HEPAX, annoncé officiellement en novembre 1987 par la société Danoise VM  Electronics, appartient, avec les CCD Module, Paname, PPC ROM ou Zenrom, à la catégorie des modules mythiques les plus recherchés par les amateurs de HP-41.
Simon Bradshaw écrira dans la revue du HPCC (V6N7, octobre 1987), en conclusion de son article de présentation du module HEPAX : « Je peux honnêtement dire que ce module semble être un des modules d'utilisation générale les plus utiles qu'un utilisateur pourrait acheter ». Il confirmera cet a priori, onze mois plus tard, dans un essai approfondi (V7N6, septembre 1988) à l'issue duquel, il attribua au module HEPAX « une note de 11, sur une échelle de 1 à 10 » !

Module HEPAX Standard

On pourrait se demander si la date de sortie du module HEPAX ne fût pas un peu tardive relativement à l'histoire du HP-41. Ce syndrome a malheureusement touché de nombreux développements majeurs réalisés autour du HP-41.
Alors que les HP-41 furent commercialisés pendant dix ans (de septembre 1979 à novembre 1990), le module HEPAX, qui ne fût réellement disponible, après plus d'une année d'attente, qu'en février 1988, ne profitera que des trois dernières années des HP-41. En 1988, la dernière HP-41 était déjà vieille (la 41CX est sortie en octobre 1983) et tous les investissements importants se reportaient sur des machines plus récentes, comme le HP-71B sorti en février 1984, soit quatre ans avant le module HEPAX !

Cet argument prend encore plus d'importance lorsque l'on se replace dans le contexte d'une époque où, dans les nouvelles technologies, tout allait très vite.


-
> L E S   F O N C T I O N S   D E S   M O D U L E S   H E P A X
 

Le module HEPAX, abrégé de HEwlett-PAckard 41 eXpansion, est compatible avec les HP 41C, 41CV et 41CX. Il est la combinaison d'un module d'application qui apporte 94 nouvelles fonctions dont toutes celles des modules X Functions et X Memory (avec les mêmes noms simplement précédés d'un H, par exemple HGETX à la place de GETX) ainsi que les fonctions propres à la 41CX (par exemple CLRGX et les tests conditionnels indirects comme X>NN?), des outils de programmation en M-code, le langage machine du HP-41, et de 8 à 32 Ko de mémoire RAM.

Le module HEPAX Standard, avec 8 Ko, offre près de deux fois (et donc quatre fois pour un module Advanced HEPAX) la mémoire d'un module X Functions (889 octets ou 127 registres) accompagné de deux modules X Memory (1666 octets ou 238 registres chacun), en n'occupant qu'un seul logement de module contre trois :

 
HEPAX=4x
X Functions
+
X Memory
+
X Memory
 
   
16044 octets

4221 octets
 
 

Le même module permet à la fois de stocker des programmes (qui apparaîtront dans le CAT 2 et pourront être exécutés directement dans la mémoire du module HEPAX, comme s'ils étaient dans un module d'application), du texte, des données, des affectations de touches ou la totalité de la mémoire du HP-41, comme on peut le faire avec un lecteur de casettes ou de disquettes HP-IL, et de programmer le HP-41 en langage machine.
Un Memory lost n'affecte pas les données de la mémoire HEPAX. Les programmes qu'elle contient peuvent être protégés contre l'effacement. La mémoire HEPAX est conservée tant que le module reste inséré dans le HP-41.
De plus, toutes les données des modules HEPAX peuvent être directement transférées entre la mémoire HEPAX et une unité de stockage (cassettes ou disquettes).

Module HEPAX StandardModule HEPAX Advanced


-
> D E S   O U T I L S   P O U R   L E   M - C O D E
 

Les outils de programmations M-code du module HEPAX proposent HEXEDIT un éditeur hexadécimal M-code (lui-même entièrement écrit en M-code) ressemblant, en plus riche, à MCEDIT du Zenrom, avec des fonctions d'insertion et de suppression, des fonctions qui permettent d'effacer ou de déplacer des blocs de mémoire et un désassembleur très puissant qui détecte les octets qui doivent être interprétés comme instructions, texte ou données.

Il ne manque en fait qu'un assembleur au module HEPAX pour être complet. Ce manque pourra être aisément comblé par l'utilisation d'un assembleur disponible en image ROM comme l'excellent David Assembler.

Module HEPAX


-
> Q U A T R E   M O D U L E S   H E P A X
 

Il existe en fait quatre modules HEPAX : les modules HEPAX Standard et Advanced, qui contiennent toutes les fonctions de la ROM HEPAX, plus respectivement 8 et 16 Ko (2260 registres disponibles) de mémoire (dont 340 octets sont utilisés par le HP-41 et le système de gestion de fichiers de l'HEPAX et ne sont donc pas réellement disponibles). À un de ces deux modules, on peut ensuite choisir de rajouter un ou plusieurs modules mémoires HEPAX de 8 ou 16 Ko.
Le total de mémoire ne peut pas dépasser 32 Ko, ce qui représente déjà le quart d'une cassette du lecteur de cassettes numériques HP-IL ou la capacité de stockage de près de 300 cartes magnétiques (112 octets par carte) !


Manuel module HEPAX 1Manuel module HEPAX 2

> Le module, accompagné d'un manuel en anglais de 181 pages en deux volumes (le deuxième volume proposant une introduction au M-code de relativement bonne qualité), est commercialisé aux tarifs suivants (attention, ces prix ont été sujets aux fortes fluctuations du dollar) :

Tarifs modules HEPAX

En 1988, le prix du module Advanced HEPAX, en euro 2007 (prix réactualisé tenant compte de l'érosion monétaire due à l'inflation, selon les données de l'INSEE) était donc de 483 euros (394 dollars représentaient, en 1988, 2200 francs).

Intérieur Module HEPAX AdvancedIntérieur Module HEPAX Advanced


-
> É M U L E R   U N   M O D U L E   H E P A X
 

Les modules HEPAX sont aujourd'hui extrêmement difficiles à trouver sur le marché de l'occasion. Il existe néanmoins plusieurs solutions pour émuler ses fonctions :

> Emu41, l'émulateur HP-41CX de Jean-François Garnier, émule un module HEPAX Standard (8 Ko de RAM). Le fichier Hepaxram.dat, qui contient la RAM du module HEPAX, est créé puis géré automatiquement par Emu41.

> L'émulateur HP-41X, de Zeljko Hrastovcak, alias HrastProgrammer (à qui l'on doit une belle collection émulateurs) permet d'émuler, sur un HP-48GX, 49G, 49G+ ou 50G, une HP-41C avec un module HEPAX.

> Le MLDL2000 de Meindert Kuipers permet lui aussi d'émuler un module HEPAX.
Pour installer un module HEPAX dans le MLDL2000, on peut suivre la procédure présentée par Howard Owen à la HP Handheld Conference 2007, que l'on trouvera à la page 27 (chapitre MLDL-2000 and HEPAX How-To) de ce document : Printed Conference Proceedings.

> Diego Diaz a conçu son module NoVRAM dans le but premier d'émuler un module Advanced HEPAX (16 Ko de RAM).
À toutes les qualités du module HEPAX, le NoVRAM en ajoute deux, et de taille ! Il permet de stocker deux pages de ROM supplémentaires, à la manière du module Clonix-41, et surtout, grâce à l'utilisation de RAM ferromagnétique, la mémoire du module NoVRAM n'est pas volatile et son contenu ne se vide pas lorsque le module est déconnecté.

> Virtual HP-41, l'émulateur HP-41CX de Warren Furlow est, depuis sa version 8, compatible avec le module HEPAX.


-
> A I D E  -  M É M O I R E   D U   M O D U L E   H E P A X
 

>  Version PDF (106 Ko) de l'aide-mémoire GB (cliquez avec le bouton droit de la souris sur ce lien puis « Enregistrer la cible du lien sous... » pour enregistrer ce fichier sur votre disque dur).


> File System Functions

  Function

HAPPCHR

HAPPREC

HARCLRC
HASROOM
HCLFL
HCRFLAS
HCRFLD
HDELCHR
HDELREC
HEPDIR
HEPDIRX
HEPROOM
HFLSIZE
HGETA
HGETK
HGETR
HGETREC

HGETRX
HGETX
HINSCHR
HINSREC

HPOSFL
HPURFL
HRCLPT
HRCLPTA
HREADFL
HRENAME
"HRESZFL"

HSAVEA
HSAVEK
HSAVEP
HSAVER
HSAVERX
HSAVEX
HSEC
HSEKPT
HSEKPTA
HUNSEC
HWRTFL
PRIVATE
Description

Appends the characters in the ALPHA register at the end of the record at the pointer in the current HEPAX text file.
Appends the contents of the ALPHA register as a new record at the end of the current HEPAX text file.
Appends the record at the pointer in the current HEPAX text file to the ALPHA register.
Returns the number of characters left in a HEPAX text file.
Clears the contents of a HEPAX data or text file. The file is not deleted.
Creates a HEPAX text file.
Creates a HEPAX data file.
Deletes a number of characters from the current HEPAX text file, starting at the pointer.
Deletes the record at the pointer from the current HEPAX text file.
Lists all files in the HEPAX file system.
Lists one files in the HEPAX file system.
Returns the number of registers available in the HEPAX file system.
Returns the size of a HEPAX file.
Recalls the contents of entire calculator main memory from a HEPAX "write-all" file.
Recalls system key assignments from a HEPAX key assignment file.
Recalls the contents of all main memory data registers from a HEPAX data file.
Replaces the contents of the ALPHA register with the record at the pointer in the current HEPAX text file.
Recalls the contents of a block of main memory data registers from a HEPAX data file.
Recalls the contents of the X register from a HEPAX data file at the pointer.
Inserts the characters in the ALPHA register at the pointer in the current HEPAX text file.
Inserts the contents of the ALPHA register as a new record before the record at the pointer in the current HEPAX text file.
Returns the location of the first occurrence of the string in the ALPHA register after the pointer in the current HEPAX text file.
Purges (deletes) a HEPAX file.
Recalls the pointer(s) from the current HEPAX data or text file.
Recalls the pointer(s) from any HEPAX data or text file, or the file size of any other file type.
Read a HEPAX file from Mass Storage. Renames a HEPAX file.
FOCAL program that resizes data or text files. Program listing on page 30 in the Owner's Manual.
Saves the contents of entire calculator main memory in a HEPAX "write-all" file.
Saves system key assignments in a HEPAX key assignment file.
Saves a program in main memory in HEPAX memory.
Saves the contents of all main memory data registers in a HEPAX data file.
Saves the contents of a block of main memory data registers in a HEPAX data file.
Saves the contents of the X register in the current HEPAX data file.
Secures a HEPAX file against accidental loss.
Sets the pointer(s) in the current HEPAX data or text file.
Sets the pointer(s) in any HEPAX data or text file.
Unsecures a HEPAX file.
Writes a HEPAX file to Mass Storage.
Makes a program in HEPAX private.
   

> The Extended Functions Multi-function

To execute an Extended Functions Multi-function, execute the XF function and enter the multi-function number or execute the XFA function and press ALPHA, enter the multi-function name and press ALPHA.

  Name

ALENG
ANUM
AROT
ATOX
CLKEYS
CLRGX
GETKEY
GETKEYX
PASN
PCLPS
POSA
PSIZE
RCLFLAG
REGMOVE
REGSWAP
∑REG?
SIZE?
STOFLAG
X<>F
XTOA
X=NN?
X≠NN?
X<NN?
X<=NN?
X>NN?
X>=NN?
Number

000
001
002
003
004
005
006
007
008
009
010
011
012
013
014
015
016
017
018
019
020
021
022
023
024
025
Description

Returns the length of the string in ALPHA.
Converts the string in ALPHA to a numerical value in X.
Rotates contents of ALPHA.
Converts a character in ALPHA to a character code in X.
Clears all key assignments.
Clears registers as specified by X.
Gets keycode depending on key pressed.
Gets keycode within time specified by X.
Programmable assignment.
Programmable clear programs.
Finds position of string or character in ALPHA.
Programmable SIZE.
Recalls the status of user flags 00-43.
Moves a block of main memory data registers.
Swaps two blocks of main memory data registers.
Returns the location of the statistical registers.
Returns the current SIZE.
Restores the status of user flags 00-43.
Exchanges the status of user flags 0-7 with the X register.
Converts character code in the X register to a character in the ALPHA register.
Compares X with indirect Y.
Compares X with indirect Y.
Compares X with indirect Y.
Compares X with indirect Y.
Compares X with indirect Y.
Compares X with indirect Y.
   

> HEPAX Advanced Functions

  Function

CLRAM
CODE
COPYROM
DECODE
DECODYX
DISASM
"DISSST"

HEXEDIT
HPROMPT
"JUMP"

RAMTOG
READROM
WRTROM
Description

Clears a whole or part of a 4K block of HEPAX memory.
Codes the hexadecimal string in the ALPHA register and places result in the X register.
Copies a whole or part of a 4K block of system memory to HEPAX RAM.
Decodes the contents of the X register and places result in the ALPHA register.
Decodes a number of nybbles as DECODE.
Disassembles HP-41 M-code.
FOCAL program that disassembles HP-41 M-code line by line. Program listing on page 67 in the Owner's Manual.
Edits HEPAX memory word by word.
Prompts for a number of hexadecimal digits.
FOCAL program that calculates HP-41 M-code absolute jump instructions. Program listing on page 127 in the Owner's Manual.
Toggles write protection status of a ROM image.
Reads a number of ROM images from Mass Storage.
Writes a number of ROM images to Mass Storage.
   

> The HEPAX Multi-function

  Name

AND
BCAT
BCD-BIN
BIN-BCD
CTRAST
DELETE
INSERT
NOT
OR
ROTYX
SHIFTYX
XOR
X+Y
X-$
Y-X
Number

001
002
003
004
005
006
007
008
009
010
011
012
013
014
015
Description

Logical X AND Y.
Block catalog.
Converts number in X from BCD to binary.
Converts number in X from binary to BCD.
Sets display contrast ("Halfnut" calculators only).
Works like DELETE of the hexadecimal editor.
Works like INSERT of the hexadecimal editor.
Complement of X.
Logical X OR Y.
Rotates Y register X nybbles.
Shifts Y register X bits.
Logical X exclusive-or Y.
Bitwise addition.
Converts X register to alpha string.
Bitwise subtraction.
   
>  Version PDF (106 Ko) de l'aide-mémoire GB (cliquez avec le bouton droit de la souris sur ce lien puis « Enregistrer la cible du lien sous... » pour enregistrer ce fichier sur votre disque dur).

Conception & réalisation jaguar 2024