ProtoCoder - Prototech

Questions et discussions d'ordre matériel concernant le HP-41, ses accessoires et extensions.
Avatar de l’utilisateur
jeffcalc
Expert HP-41
Messages : 65
Inscription : mer. 5 mars 2008 21:32
Localisation : France, Isere
Contact :

Re: ProtoCoder - Prototech

Message par jeffcalc »

pilou45000 a écrit : mar. 30 mai 2023 10:00 On peut bien programmer le ProtoCoder en manuel « mot par mot » mais c’est fastidieux… Donc je cherche à récupérer les prgm et routines de la NFCROM-1B pour les faire passer sur la calculatrice.
Le moyen le plus "simple" serait de programmer un jeu d'EPROM avec la NFCROM pour utilisation dans un de tes ProtoEPROM.
Tu aurais alors toutes les fonctions disponibles.
C'est "simple", sauf qu'il faut juste trouver des EPROMs et un programmateur d'EPROM...

Sinon, tu peux aussi te procurer un Clonix programmé avec le NFCROM.
Oui, en fait, ce serait *beaucoup* plus simple...

J-F

Avatar de l’utilisateur
pcscote
Apprenti expert
Messages : 23
Inscription : lun. 23 janv. 2017 04:51
Localisation : Quebec/Canada

Re: ProtoCoder - Prototech

Message par pcscote »

jeffcalc a écrit : jeu. 1 juin 2023 08:54
pilou45000 a écrit : mar. 30 mai 2023 10:00 Donc je cherche à récupérer les prgm et routines de la NFCROM-1B pour les faire passer sur la calculatrice.
C'est "simple", sauf qu'il faut juste trouver des EPROMs et un programmateur d'EPROM...
J'ai tout le matos nécessaire pour créer et tester son ensemble d'EPROM, je n’ai juste pas encore eu le temps libre pour le faire.
jeffcalc a écrit : jeu. 1 juin 2023 08:54 Sinon, tu peux aussi te procurer un Clonix programmé avec le NFCROM.
Oui, en fait, ce serait *beaucoup* plus simple...
On est parfaitement en accord sur ce point ;)

Sylvain

pilou45000
Apprenti
Messages : 15
Inscription : lun. 27 mars 2023 11:12

Re: ProtoCoder - Prototech

Message par pilou45000 »

pcscote a écrit : mar. 30 mai 2023 20:44 Bonjour Philippe,

Un petit récapitulatif des technos du HP-41 question qu'on soit au même niveau.

Le langage utilisateur du HP-41 est appelé FOCAL (Forty One CAlculator Language) et son système de calcul est la notation polonaise inverse (RPN en anglais).
Le NUT est un processeur 4-bit, les registres de calculs internes sont de 56-bit (7 octets) et la largeur du bus de communication entre le processeur et les périphériques est de 1-bit.
Le processeur supporte deux types de mémoire, une mémoire à 10-bit servant à exécuter des programmes en langage machine et une mémoire faite de registres de 7-octet qui sert à emmagasiner des données et des programmes utilisateur de type FOCAL.

Le maximum de mémoire 10-bit que le processeur est capable d'adresser est de 64 kiloWord (10-bit).
Ce 64 kW est divisé en 16 pages de 4 kW et si le matériel le permet, chaque page peut être avoir jusqu'a un maximum de 4 banques.

Code : Tout sélectionner

Page  Allocation
F     Port 4, Upper 4 K 
E     Port 4, Lower 4 K 
D     Port 3, Upper 4 K 
C     Port 3, Lower 4 K 
B     Port 2, Upper 4 K 
A     Port 2, Lower 4 K 
9     Port 1, Upper 4 K 
8     Port 1, Lower 4 K 
7     HP-IL Mass Storage ROM 
6     Printer ROM 
5     Timer ROM; [Secondary Bank] Extended Fuctions (41CX Only) 
4     Diagnostic Module 
3     Extended Functions (41CX Only) 
2     Operating System 
1     Operating System 
0     Operating System  
Le maximum de mémoire 56-bit que le processeur est capable d'adresser est 4096 registres (de 56-bit). [hex: 000...FFF]
Mais dus à une limitation du système d'exploitation, seulement 1024 registres sont disponibles. [hex: 000...3FF]

Code : Tout sélectionner

+-------------------------+-----------+------+--------------+--------------+
| description             | registres | type |  Adr. départ |  Adr. de fin |
+-------------------------+-----+-----+------+--------------+--------------+
| 41C/CV/CX status registers    |  16 | main |    0 (0x000) |   15 (0x00F) |
+-------------------------------+-----+------+--------------+--------------+

Code : Tout sélectionner

+-------------------------------+-----+------+--------------+--------------+
| 41C  mémoire de base          |  64 | main |  192 (0x0C0) |  255 (0x0FF) |
+-------------------------------+-----+------+--------------+--------------+
| 41C  +1 x 82106A mém. simple  | 128 | main |  192 (0x0C0) |  319 (0x13F) |
| 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) |
+-------------------------------+-----+------+--------------+--------------+
| 41C  +1 x 82170A mémoire Quad | 320 | main |  192 (0x0C0) |  511 (0x1FF) | remplace quatre 82106A module de mémoire simple
+-------------------------------+-----+------+--------------+--------------+

Code : Tout sélectionner

+-------------------------------+-----+------+--------------+--------------+
| 41CV mémoire de base          | 320 | main |  192 (0x0C0) |  511 (0x1FF) |
+-------------------------------+-----+------+--------------+--------------+
| 41CX mémoire de base          | 320 | main |  192 (0x0C0) |  511 (0x1FF) |
| 41CX mémoire x-memory         | 128 | ext. |   64 (0x040) |  191 (0x0BF) |
+-------------------------------+-----+------+--------------+--------------+

Code : Tout sélectionner

+-------------------------------+-----+------+--------------+--------------+
| 82180A x-fncs/memory module   | 128 | ext. |   64 (0x040) |  191 (0x0BF) | compatible avec les HP-41C/CV, 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

+-------------------------------+-----+------+--------------+--------------+
| Espace non-disponible         |  48 | none |   16 (0x010) |   63 (0x03F) |
| Espace non-disponible         |   1 | none |  512 (0x200) |  512 (0x200) |
| Espace non-disponible         |  17 | none |  752 (0x2F0) |  768 (0x300) |
| Espace non-disponible         |  16 | none | 1008 (0x3F0) | 1023 (0x3FF) |
+-------------------------------+-----+------+--------------+--------------+
ref: HP-41 - Memory modules

... à suivre. ;)

Edit: lecture complémentaire

Bonjour Sylvain,

Encore merci de prendre autant de ton temps pour me répondre !
Pour répondre à tes trois derniers messages dans l'ordre:

1.
fonctionnement de la HP41, mémoires, adressage,... tout ça c'est ok pour moi.
"Au fond de la HP41": j'ai lu.
"Les fonctions d'extension c'est facile" j'ai lu
"Manuel du module MAXX" je ne connaissais pas, je vais le lire.

2.
La programmation synthétique je ne connaissais pas dans les années 80, aujourd'hui j'en ai compris le principe mais très loin d'être capable de l'utiliser. Le site de Warren Furlow est une mine d'or de documentations et revues diverses ! j'ai déjà lu beaucoup de choses mais mes nuits sont trop courtes !

3. Les passionnés sont toujours vivants ! :mrgreen: Oui les moyens d'aujourd'hui semblent plus simples pour accéder à la HP41.

Un petit résumé des tests que j'ai effectués:

ProtoCoder seul (select device 0 à C ; ROM adresse: 3) la HP41 s'allume.
ProtoCoder seul (select device D,E,F) la calculatrice ne s'allume pas.


ProtoCoder + ProtoROM:
Image
Image
Image
Image

ce que je ne comprends pas:
Pourquoi un module dans le slot3 du ProtoRom provoque-il toujours un crash ?
Pourquoi deux modules port(a) de la calculatrice et slot(a) du ProtoROM ne sont plus reconnus ?


ProtoCoder + ProtoEPROM avec ROM sm1cU2 et sm1cL8 (module de service 1C HP):
Image
Image

Pourquoi la HP41 ne s'allume pas avec les adresses D,E,F qui sont disponibles ? Pas d'autres modules présents, ni Card Reader (E).
Je dois me mélanger les pinceaux quelque part ... :mrgreen:

Bien cordialement
Philippe

Avatar de l’utilisateur
pcscote
Apprenti expert
Messages : 23
Inscription : lun. 23 janv. 2017 04:51
Localisation : Quebec/Canada

Re: ProtoCoder - Prototech

Message par pcscote »

Bonjour Philippe,

Je ne t'ai pas oublié, je suis juste débordé en ce moment.

Je n'ai pas eu le temps de regarder en détail tes configurations, mais ton problème en est probablement un de dispute entre les ports.

Un module ROM/Q-ROM peut ...
  • avoir une page fixe, comme le module DIAG qui est toujours à la page 4 nonobstant le port ou il est banché
  • avoir une page dynamique, comme le module HEPAX qui prend la première page disponible
  • prendre la page paire du port ou il est installé, page 8 dans le port 1, 10 dans le port 2, etc.
  • prendre la page impaire du port ou il est installé, page 9 dans le port 1, 11 dans le port 2, etc.
Avec un port extender, il faut faire attention qu'il n'y ait pas deux modules assignés à la même page, sinon la 41 peut se comporter bizarrement.

Je vais bientôt te donner la recette qui va te permettre, avec des outils disponibles aujourd'hui, de prendre n'importe quelle image ROM, de la convertir en format U2/L8, pour ensuite transférer ces deux fichiers sur un EPROM avec un programmeur moderne.
Cordialement,

Sylvain

pilou45000
Apprenti
Messages : 15
Inscription : lun. 27 mars 2023 11:12

Re: ProtoCoder - Prototech

Message par pilou45000 »

Bonjour Sylvain,

Merci encore ! Je ne veux surtout pas te prendre de ton temps, tu me réponds si tu veux et quand tu peux, ou pas. Ne t'inquiète pas je ne suis pas préssé et j'ai aussi des semaines bien chargées en ce moment...

Bon j'ai trouvé mon erreur avec le ProtoRom, j'avais mal affecté les ports (1,2,3, ou,4) aux différents slots d'où des adresses ROM communes à deux modules donc ça ne pouvait pas fonctionner. Tout est ok maintenant, le truc est donc opérationnel.
voici une config qui fonctionne:
Image

Par contre les XM restent "invisibles" même en respectant XM1 dans un "slot-port" impair, et XM2 dans un "slot-port" pair ou inversement. Il est possible que cela soit normal et j'ai peut-être toruvé une solution dans la littérature des PPCROM: on peut switcher des pages de RAM . Routine IP et PS (PPCROM V8N1 page 27,V9N2 p11, manuel du module PPCROM pages 228 & 370) je vais essayer...

Bien cordialement
Philippe

Avatar de l’utilisateur
pcscote
Apprenti expert
Messages : 23
Inscription : lun. 23 janv. 2017 04:51
Localisation : Quebec/Canada

Re: ProtoCoder - Prototech

Message par pcscote »

Bonjour Philippe,
pilou45000 a écrit : lun. 5 juin 2023 09:28 Bon j'ai trouvé mon erreur avec le ProtoRom ... Tout est ok maintenant, le truc est donc opérationnel.
Super, bravo! 8)
pilou45000 a écrit : lun. 5 juin 2023 09:28 Par contre les XM restent "invisibles" même en respectant XM1 dans un "slot-port" impair, et XM2 dans un "slot-port" pair ou inversement.
Pas normal, l'adressage des registres RAM et celle des ROM/QROM se fait de façon différente et ne devrait pas créer de conflit.
J'ai fait un test avec un Port-X-Tender et ça fonctionne bien ici. → EMROOM → 600
Configuration:
  • 41CX port 1 : Math/Stat (8K, pages 8 & 9)
  • 41CX port 2 : Home Management (4K, page A)
  • 41CX port 3 : Port-X-Tender
    • PXT port 1 : X-Memory 1 → 41CX port 1
    • PXT port 2 : X-Memory 2 → 41CX port 2
    • PXT port 3 à 7 : vide
  • 41CX port 4 : vide
pilou45000 a écrit : lun. 5 juin 2023 09:28 Il est possible que cela soit normal et j'ai peut-être trouvé une solution dans la littérature des PPCROM: on peut switcher des pages de RAM . Routine IP et PS (PPCROM V8N1 page 27,V9N2 p11, manuel du module PPCROM pages 228 & 370) je vais essayer...
Ces routines n'ont pas été conçues pour les modules X-Memory mais plutôt pour les modules Memory/Quad utilisés dans un 41C.
Ils ne fonctionneront pas dans ce contexte.

Cordialement,

Sylvain

pilou45000
Apprenti
Messages : 15
Inscription : lun. 27 mars 2023 11:12

Re: ProtoCoder - Prototech

Message par pilou45000 »

Bpnjour Sylvain,

Quelques nouvelles:
J'arrive à ecrire deux ou trois bricoles dans le ProtoCoder, je me suis fais une petite routine pour que la saisie "mot à mot" soit moins fastidieuse, ça fonctionne !

Pour les modules XFM et XM j'ai toujours le même problème, ils ne sont pas reconnus, peut-être une oxydation des contacts, je ne sais pas, mais le dispositif semble sensible avec les modules mémoire:
Image
Pourtant je place le ProtoRom en position 1 juste après le ProtoCoder...
Je vais essayer de nettoyer les contact mais le truc n'est pas démontable... :wink:

Bien cordialement
Philippe

pilou45000
Apprenti
Messages : 15
Inscription : lun. 27 mars 2023 11:12

Re: ProtoCoder - Prototech

Message par pilou45000 »

Bonjour Sylvain,

Quelques autres nouvelles:
Après une pause car occupé par mon job, je me suis remis au ProtoCoder.
J'apprends doucement le Mcode...
J'arrive à entrer des routines Mcode simples dans le ProtoCoder, à créer et mettre à jour une FAT et ça marche !
Ce qui est fastidieux c'est de tout écrire à la main sur papier...

J'ai donc réussi à faire fonctionner cette vielle machine, ce qui ne m'apporte rien d'autre qu'un simple plaisir intellectuel, mais je suis satisfait... :mrgreen:

Bien cordialement
Philippe

Répondre