Transfert entre 2 HP41 (C et CV) avec le XFUNCTION

Ici, on fait dans le petit, le LCD qui déchire sa race, on y cause même calculatrices quand on est en manque !

Modérateur : Politburo

cgh
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 2142
Enregistré le : 30 août 2011 12:23
Localisation : Vous êtes ici -> .

Transfert entre 2 HP41 (C et CV) avec le XFUNCTION

Message par cgh »

Suite a un question posee dans un autre topic:
gege a écrit : 11 sept. 2020 17:54 Bonjour,
Est-ce que le XFonctions conserve son contenu lorsque sorti quelques heures de la machine ?
Même question sur les XMemory à condition que l'utilisateur n'aie pas bricolé le contenu du XFonctions entre temps ?
Ce genre de manipulation pourrait permettre de démultiplier la mémoire voire transmettre des trucs entre machines, non ?
Bon, il faut un stock de XFonctions ou XMemory...
G.E.
Voici une facon de transferer des donnees/progarmmes entre 2 41C ou CV grace au module XFUNCTION. Les CX sont exclues car ce modele possede un XFUNCTION interne de version 2D qui semble se comporter de facon un peu differente; pour ces modeles, il faudrait de toutes manieres un XMEMORY.

ATTENTION: Pensez bien a toujours eteindre la HP41C/CV avanr de retirer ou inserer un module, sinon vous allez griller le BSP et eventuellement aussi le module lui-meme. Effet garanti!!! J'ai malheureusement teste lors d'une mauvaise manipulation :(

* Qu'est ce qu'un module XFUNCTION

Le XFUNCTION amene 128 registres (dont 4 sont reserves a l'exploitation). Donc 124 * 7 = 868 octets. On monte a 362 registres (2534 octets) avec un XMEMORY et 600 registres avec 2 (4200 octets).
La XMEM gere en fait des fichiers. Oui. Programmes, DATA (donnees) et ASCII (texte). La 41CX possede meme ED, un petit editeur de texte. Les modules ADVANTAGE et CCD stockent aussi des matrices, et certains, je crois HPIL DEV, des buffers. Quelques ROM developpees plus tard par des particuliers et/ou des clubs utilisent aussi la XMEM en zone de memoire temporaire et/ou gere leur propre type de fichiers, et permettent meme des sauvegardes sur cassettes. En fait, la XMEM est tres adaptable. C'est un file system simple [NOM, type, longueur maximum ....]. Par contre, on ne peut agir que sur un fichier a la fois. C'est rustique, c'est sommaire, mais ca existe :) !
Les fichiers DATA et ASCII sont accedes en sequentiel, relatif et sequentiel indexe... C'est quand meme pas mal !
Je m'etais amuse a developper une XMEM pour PC1500 a l'epoque :geek:
Le XFUNCTION apporte aussi d'autres fonctions pour gerer le registre ALPHA loin de l'acrobatique ASHF, les drapeaux, et permet de programmer l'inprogrammable: PCLPS (pour CLP), PSIZE (pour SIZE), PASN (pour ASN). Sans compter que les fonctions ALPHA qu'il apporte facilitent grandement la programmation synthetique. Et n'oublions pas la tres interessante et indispensable fonction GETKEY !
Il est de plus necessaire pour certains autres modules.

* Comment transferer des donnees/programmes entre 2 HP41C/CV

Ecrivons un programme, par exemple:

Code : Tout sélectionner

01 LBL "CGH"
02 "HELLO CGH"
03 AVIEW
04 BEEP
05 END
Dans tout ce qui suit, le XFUNCTION est vide. Un EMDIR doit alors afficher DIR EMPTY et retourner 124 en X.
Copions le porgramme en XMEM. Pour cela, ecrivons CGH dans le registre ALPHA, et executons la commande SAVEP. Apres deux secondes, la programme est copie. On peut le verifier avec la commande EMDIR qui doit afficher CGH P004 et renvoye 118 en X. Le 118 vient du fait que tout fichier occupe 2 registres pour son entete, mais EMDIR n'affiche la taille en registres que du "corps" du fichier. On peut ainsi verifier: 124 - (4 registres corps + 2 entete) = 118 :geek:
Sortons le module XFUNCTION, et prenons une autre HP41C/CV. Inserons le module et tapons EMDIR. On devrait voir CGH P004 et avoir 118 en X. Copions maintenant le programme CGH en RAM. Pour cela, mettons CGH en ALPHA et appelons la commande GETP. Apres 2-3 secondes, la copie est terminee. Une verification avec CAT 1 doit faire apparaitre un label CGH dans la liste des programmes :) :geek:

De meme, on peut enlever le XFUNCTION, reinitialiser la 41 par un MEMORY LOST (ON et <- appuyees simultanement) et remettre le XFUNCTION. Le programme CGH est toujours la en XMEM.

Je ne connais le temps de retention des informations dans un XFUNCTION hors de la machine. Mais une XMEM corrompue provoque soit une remise a zero de celle-ci soit un violent MEMORY LOST.
Modifié en dernier par cgh le 14 sept. 2020 13:04, modifié 2 fois.
Il y a ceux qui voient les choses telles qu'elles sont et se demandent pourquoi, et il y a ceux qui imaginent les choses telles qu'elles pourraient être et se disent... pourquoi pas? - George Bernard Shaw
J'adore parler de rien, c'est le seul domaine où j'ai de vagues connaissances ! - Oscar Wilde
Ce n'est pas parce que les choses sont difficiles que nous n'osons pas. C'est parce que nous n'osons pas que les choses sont difficiles. - Sénèque
Avatar du membre
bernouilli92
Fonctionne à 14400 bauds
Fonctionne à 14400 bauds
Messages : 5226
Enregistré le : 21 nov. 2012 13:03
Localisation : Ile de France

Re: Transfert entre 2 HP41 (C et CV) avec le XFUNCTION

Message par bernouilli92 »

Tu as testé des durées ? Comme 30 secondes, 1 minute, 5 minutes?
HP, Casio, Sharp, Psion, quelques TI et divers autres
Avatar du membre
Danny
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 1248
Enregistré le : 28 déc. 2013 16:34

Re: Transfert entre 2 HP41 (C et CV) avec le XFUNCTION

Message par Danny »

Mais du coup on pourrait faire la même chose entre 2 CX avec un module XMEMORY, ou pas ? :geek:
? Apple, Atari, Canon, Casio, ????????????, HP, Psion, Sharp, Tandy... même TI.
cgh
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 2142
Enregistré le : 30 août 2011 12:23
Localisation : Vous êtes ici -> .

Re: Transfert entre 2 HP41 (C et CV) avec le XFUNCTION

Message par cgh »

bernouilli92 a écrit : 13 sept. 2020 14:46 Tu as testé des durées ? Comme 30 secondes, 1 minute, 5 minutes?
J'ai laisse le module environ 2 minutes sans alimentation hors de la machine, et quand je l'ai remis la XMEM etait conservee et intacte. Je ne suis pas alle au dela (2 minutes pour un echange entre 2 HP cote a cote, c'est suffisant... :) )
Il y a ceux qui voient les choses telles qu'elles sont et se demandent pourquoi, et il y a ceux qui imaginent les choses telles qu'elles pourraient être et se disent... pourquoi pas? - George Bernard Shaw
J'adore parler de rien, c'est le seul domaine où j'ai de vagues connaissances ! - Oscar Wilde
Ce n'est pas parce que les choses sont difficiles que nous n'osons pas. C'est parce que nous n'osons pas que les choses sont difficiles. - Sénèque
cgh
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 2142
Enregistré le : 30 août 2011 12:23
Localisation : Vous êtes ici -> .

Re: Transfert entre 2 HP41 (C et CV) avec le XFUNCTION

Message par cgh »

Danny a écrit : 13 sept. 2020 14:53 Mais du coup on pourrait faire la même chose entre 2 CX avec un module XMEMORY, ou pas ? :geek:
Helas non. Dans les 4 registres reserves pour l'administration de la XMEM, il y a le nombre total de registres trouves. Si une CX n'a pas de XMEMORY, sa XMEM est de 128 registres et quand elle decouvre les 238 nouveaux registres du XMEMORY elle vide ce module.

A la rigueur un test serait 2 41CX avec chacune un XMEMORY, Sur les 2 CX on cree un fichier vide de 122 registres, puis sur la CX source on sauve en XMEM le fichier a echanger. On enleve les XMEMORY des 2 CX et on met le XMEM de la source dans la CX destination. Cela fonctionne peut-etre... :geek:
Modifié en dernier par cgh le 14 sept. 2020 13:06, modifié 1 fois.
Il y a ceux qui voient les choses telles qu'elles sont et se demandent pourquoi, et il y a ceux qui imaginent les choses telles qu'elles pourraient être et se disent... pourquoi pas? - George Bernard Shaw
J'adore parler de rien, c'est le seul domaine où j'ai de vagues connaissances ! - Oscar Wilde
Ce n'est pas parce que les choses sont difficiles que nous n'osons pas. C'est parce que nous n'osons pas que les choses sont difficiles. - Sénèque
cgh
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 2142
Enregistré le : 30 août 2011 12:23
Localisation : Vous êtes ici -> .

Re: Transfert entre 2 HP41 (C et CV) avec le XFUNCTION

Message par cgh »

cgh a écrit : 13 sept. 2020 20:18
Danny a écrit : 13 sept. 2020 14:53 Mais du coup on pourrait faire la même chose entre 2 CX avec un module XMEMORY, ou pas ? :geek:
A la rigueur un test serait 2 41CX avec chacune un XMEMORY, Sur les 2 CX on cree un fichier vide de 122 registres, puis sur la CX source on sauve en XMEM le fichier a echanger. On enleve les XMEMORY des 2 CX et on met le XMEM de la source dans la CX destination. Cela fonctionne peut-etre... :geek:
Non, je viens de tester. Cela ne marche pas. La CX detecte qu'il y a une rupture dans son chainage de XMEM et remet le module a zero, On perd donc son contenu.
Modifié en dernier par cgh le 13 sept. 2020 21:02, modifié 1 fois.
Il y a ceux qui voient les choses telles qu'elles sont et se demandent pourquoi, et il y a ceux qui imaginent les choses telles qu'elles pourraient être et se disent... pourquoi pas? - George Bernard Shaw
J'adore parler de rien, c'est le seul domaine où j'ai de vagues connaissances ! - Oscar Wilde
Ce n'est pas parce que les choses sont difficiles que nous n'osons pas. C'est parce que nous n'osons pas que les choses sont difficiles. - Sénèque
cgh
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 2142
Enregistré le : 30 août 2011 12:23
Localisation : Vous êtes ici -> .

Re: Transfert entre 2 HP41 (C et CV) avec le XFUNCTION

Message par cgh »

En fait, le XMEMORY n'a aucune retention memoire. On sauve un fichier dedans, On enleve et sans allumer la machine on le remet, Il est remis a zero, Il semble y avoir soit un effacement immediat quand le module est enlever, soit quand il est inserer,
Un transfert via XMEMORY quelque soit le modele ne parait pas faisable en l'etat...

J'avais lu que cela etait les cas des modules HEPAX et des HEPRAM qui n'avaient aucune retention memoire. Il y avait une astuce qui consistait a souder une capa pour conserver la memoire une fois le module sorti.
Il y a ceux qui voient les choses telles qu'elles sont et se demandent pourquoi, et il y a ceux qui imaginent les choses telles qu'elles pourraient être et se disent... pourquoi pas? - George Bernard Shaw
J'adore parler de rien, c'est le seul domaine où j'ai de vagues connaissances ! - Oscar Wilde
Ce n'est pas parce que les choses sont difficiles que nous n'osons pas. C'est parce que nous n'osons pas que les choses sont difficiles. - Sénèque
Avatar du membre
Gege34
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 1166
Enregistré le : 03 oct. 2014 11:19
Localisation : 31

Re: Transfert entre 2 HP41 (C et CV) avec le XFUNCTION

Message par Gege34 »

Très intéressant tout ça, un peu risqué si on fait pas gaffe d'éteindre.
Sinon oui une capa pour gardé un moment le contenu de la ram.
Commodore (64/128/Amiga), HP (28/41/48/50/71/75/200/Prime) et autres (Ti, Canon X07, Psion, Casio, Palm, Thomson, Exl, Amstrad)
Avatar du membre
bernouilli92
Fonctionne à 14400 bauds
Fonctionne à 14400 bauds
Messages : 5226
Enregistré le : 21 nov. 2012 13:03
Localisation : Ile de France

Re: Transfert entre 2 HP41 (C et CV) avec le XFUNCTION

Message par bernouilli92 »

Il me semble pourtant qu’il a eux des modules bricolés pour contenir deux xmemory et qui gardent leur contenus une fois enlevé. Peut-être avec une pile?
Modifié en dernier par bernouilli92 le 16 sept. 2020 07:19, modifié 1 fois.
HP, Casio, Sharp, Psion, quelques TI et divers autres
Avatar du membre
Danny
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 1248
Enregistré le : 28 déc. 2013 16:34

Re: Transfert entre 2 HP41 (C et CV) avec le XFUNCTION

Message par Danny »

cgh a écrit : 13 sept. 2020 20:24
cgh a écrit : 13 sept. 2020 20:18
Danny a écrit : 13 sept. 2020 14:53 Mais du coup on pourrait faire la même chose entre 2 CX avec un module XMEMORY, ou pas ? :geek:
A la rigueur un test serait 2 41CX avec chacune un XMEMORY, Sur les 2 CX on cree un fichier vide de 122 registres, puis sur la CX source on sauve en XMEM le fichier a echanger. On enleve les XMEMORY des 2 CX et on met le XMEM de la source dans la CX destination. Cela fonctionne peut-etre... :geek:
Non, je viens de tester. Cela ne marche pas. La CX detecte qu'il y a une rupture dans son chainage de XMEM et remet le module a zero, On perd donc son contenu.
Intéressant, merci pour la vérif !
? Apple, Atari, Canon, Casio, ????????????, HP, Psion, Sharp, Tandy... même TI.
Avatar du membre
gege
Fonctionne à 14400 bauds
Fonctionne à 14400 bauds
Messages : 7141
Enregistré le : 31 janv. 2008 14:24
Localisation : Banlieue Paârisienne
Contact :

Re: Transfert entre 2 HP41 (C et CV) avec le XFUNCTION

Message par gege »

Bonjour,
Apparemment c'est la perte du contenu du XMemory qui aboutit au Memory Lost, non ?
Donc il faudrait ajouter un condensateur.
Curieux, il me semble vaguement qu'à l'époque (il y a 30 ans), ça marchait…
A suivre…
G.E.
cgh
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 2142
Enregistré le : 30 août 2011 12:23
Localisation : Vous êtes ici -> .

Re: Transfert entre 2 HP41 (C et CV) avec le XFUNCTION

Message par cgh »

gege a écrit : 14 sept. 2020 10:34 Bonjour,
Apparemment c'est la perte du contenu du XMemory qui aboutit au Memory Lost, non ?
Donc il faudrait ajouter un condensateur.
Curieux, il me semble vaguement qu'à l'époque (il y a 30 ans), ça marchait…
A suivre…
G.E.
Non. Le contenu du XMEMORY est remis a zero. Donc tout ce qui etait contenu dedans est perdu. Le XFUNCTION quant a lui est conserve.
Je ne sais pas si il y a 30 ans, beaucoup de personnes pouvaient s'offrir un XMEMORY en plus d'une CX...
Le MEMORY LOST ce doit plutot etre en cas de corruption des registres d'administration de la XMEM...
Il y a ceux qui voient les choses telles qu'elles sont et se demandent pourquoi, et il y a ceux qui imaginent les choses telles qu'elles pourraient être et se disent... pourquoi pas? - George Bernard Shaw
J'adore parler de rien, c'est le seul domaine où j'ai de vagues connaissances ! - Oscar Wilde
Ce n'est pas parce que les choses sont difficiles que nous n'osons pas. C'est parce que nous n'osons pas que les choses sont difficiles. - Sénèque
Avatar du membre
Gege34
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 1166
Enregistré le : 03 oct. 2014 11:19
Localisation : 31

Re: Transfert entre 2 HP41 (C et CV) avec le XFUNCTION

Message par Gege34 »

On peut voir 3ème ligne 1er colonne :
My XFUN/XMEM module. These are actually two modules combined. The blue Tanatalum Capacitor is used to keep information for a few hours while the module is unplugged.
Commodore (64/128/Amiga), HP (28/41/48/50/71/75/200/Prime) et autres (Ti, Canon X07, Psion, Casio, Palm, Thomson, Exl, Amstrad)
Avatar du membre
pcscote
Fonctionne à 300 bauds
Fonctionne à 300 bauds
Messages : 160
Enregistré le : 11 juil. 2018 01:06
Localisation : Québec/Canada

Re: Transfert entre 2 HP41 (C et CV) avec le XFUNCTION

Message par pcscote »

Comme cgm la si bien décrit, les modules XFM et XM conserve leurs données que très brièvement (normalement moins de 2 minutes) à l'extérieur de la calculatrice et comme Gege34 la indiqué, une modification très populaire dans les années 80 était d'ajouter un condensateur a un module XM pour étendre la durée de rétention.

Autre modification très populaire a l'époque était de combiner deux modules (facile) ou trois modules (difficile) dans un seul boîtier.
Quelques exemples souvent exécutés: XFM+XM, XM+XM, XFM+XM+XM, TIME+XFM, TIME+EIO, IL+EIO, etc.

L'impossibilité de transférer les modules XM entre deux 41CX tout en gardant leurs contenus prend sa source dans le fait que le début de la structure de contrôle de ce type de mémoire réside dans la partie mémoire du module XFM qui est interne à la 41CX.

Aucun des modules HEPAX originaux (SH, AH, HM, DHM) n'a la capacité de garder le contenu de leurs mémoires, lorsque retiré de la HP-41.
Les modules NoV (NoVRAM, NoV-32, NoV-64 & NoV-64d) qui émulent les modules HEPAX utilisent la mémoire FRAM et conservent donc leurs mémoires de façon permanente à l'extérieur de la calculatrice.

Sylvain

Acronymes:

Code : Tout sélectionner

XFM = Extended Functions/Memory Module
XM  = Extended Memory Module
EIO = Extended I/O Module
IL  = Interface Loop Module
SH  = Standard HEPAX Module
AH  = Advanced HEPAX Module
HM  = HEPAX Memory Module
DHM = Double HEPAX Memory Module
Adresses mémoires:

Code : Tout sélectionner

| Description             | Registres | Type |   Adr. Début |  Adresse Fin |
|-------------------------+-----+-----+------+--------------+--------------|
| 41C/CV/CX registres système   |  16 | main |    0 (0x000) |   15 (0x00F) |

Code : Tout sélectionner

| Description             | Registres | Type |   Adr. Début |  Adresse Fin |
|-------------------------+-----+-----+------+--------------+--------------|
| 41C                           |  64 | main |  192 (0x0C0) |  255 (0x0FF) |
| 41C  +1 x 82106A mém. simple  | 128 | main |  192 (0x0C0) |  319 (0x139) |
| 41C  +2 x 82106A mém. simple  | 192 | main |  192 (0x0C0) |  383 (0x17F) |
| 41C  +3 x 82106A mém. simple  | 256 | main |  192 (0x0C0) |  447 (0x1BF) |
| 41C  +4 x 82106A mém. simple  | 320 | main |  192 (0x0C0) |  511 (0x1FF) |

Code : Tout sélectionner

| Description             | Registres | Type |   Adr. Début |  Adresse Fin |
|-------------------------+-----+-----+------+--------------+--------------|
| 41C                           |  64 | main |  192 (0x0C0) |  255 (0x0FF) |
| 41C  +1 x 82170A mém. quad.   | 320 | main |  192 (0x0C0) |  511 (0x1FF) | remplace quatre modules de mémoire 82106A

Code : Tout sélectionner

| Description             | Registres | Type |   Adr. Début |  Adresse Fin |
|-------------------------+-----+-----+------+--------------+--------------|
| 41CV mémoire interne          | 320 | main |  192 (0x0C0) |  511 (0x1FF) |

Code : Tout sélectionner

| Description             | Registres | Type |   Adr. Début |  Adresse Fin |
|-------------------------+-----+-----+------+--------------+--------------|
| 41CX mémoire interne          | 320 | main |  192 (0x0C0) |  511 (0x1FF) |
| 41CX mémoire XFM interne      | 128 | ext. |   64 (0x040) |  191 (0x0BF) |

Code : Tout sélectionner

| Description             | Registres | Type |   Adr. Début |  Adresse Fin |
|-------------------------+-----+-----+------+--------------+--------------|
| 82180A x-fncs/memory module   | 128 | ext. |   64 (0x040) |  191 (0x0BF) | compatible avec les 41C & 41CV, inclus dans la 41CX
| 82181A x-memory module #1     | 239 | ext. |  513 (0x201) |  751 (0x2EF) |
| 82181A x-memory module #2     | 239 | ext. |  769 (0x301) | 1007 (0x3EF) |

Code : Tout sélectionner

| Description             | Registres | Type |   Adr. Début |  Adresse Fin |
|-------------------------+-----+-----+------+--------------+--------------|
| Espace libre, non utilisable  |  48 | none |   16 (0x010) |   63 (0x03F) |
| Espace libre, non utilisable  |   1 | none |  512 (0x200) |  512 (0x200) |
| Espace libre, non utilisable  |  17 | none |  752 (0x2F0) |  768 (0x300) |
| Espace libre, non utilisable  |  16 | none | 1008 (0x3F0) | 1023 (0x3FF) |
Sylvain
Calculatrices et Pockets HP > J'ai tous les modèles, manuels, accessoires et périphériques, mes préférés: 41, 71 & 75.
Techno : 41 > 41CL, MLDL2K, Clonix-d, NoV-64d, MAXX | 71 > FRAM71, MultiMod | IL > PIL-Box, PIL-IO, GPIO | ...
cgh
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 2142
Enregistré le : 30 août 2011 12:23
Localisation : Vous êtes ici -> .

Re: Transfert entre 2 HP41 (C et CV) avec le XFUNCTION

Message par cgh »

pcscote a écrit : 14 sept. 2020 15:13 Comme cgm la si bien décrit, les modules XFM et XM conserve leurs données que très brièvement (normalement moins de 2 minutes) à l'extérieur de la calculatrice et comme Gege34 la indiqué, une modification très populaire dans les années 80 était d'ajouter un condensateur a un module XM pour étendre la durée de rétention.
En fait si le XFUNCTION conserve sa memoire quelques minutes sans alimentation, ce n'est pas le cas des XMEMORY.
J'ai utilise un 41CX avec un double XMEMORY que j'enleve et que je remets, et au PowerON, son contenu est perdu... Apres cela vient peut-etre de mon double XMEMORY...
Il y a ceux qui voient les choses telles qu'elles sont et se demandent pourquoi, et il y a ceux qui imaginent les choses telles qu'elles pourraient être et se disent... pourquoi pas? - George Bernard Shaw
J'adore parler de rien, c'est le seul domaine où j'ai de vagues connaissances ! - Oscar Wilde
Ce n'est pas parce que les choses sont difficiles que nous n'osons pas. C'est parce que nous n'osons pas que les choses sont difficiles. - Sénèque
Répondre

Retourner vers « Tous les Pockets »