ProtoCoder - Prototech

Questions et discussions d'ordre matériel concernant le HP-41, ses accessoires et extensions.
pilou45000
Apprenti
Messages : 18
Inscription : lun. 27 mars 2023 11:12

ProtoCoder - Prototech

Message par pilou45000 »

Bonjour à tous,

J’ai dégoté sur Ebay pour 50 dollars US un truc étonnant, je l’ai acheté par curiosité ne sachant absolument pas de quoi il s’agissait.
L’ensemble est composé d’un ProtoCoder, de 2 ProtoRom (avec dans chacun d’eux 1 module X-Functions, 2 modules Xmemory, 1 Quad memory) et de 2 ProtoEprom dont l’un contient encore 2 EpROM notée smc1U2 et smc1L8. Après avoir récupéré le manuel sur HP41.org (très étonné que ça se trouve encore), j’ai réussi à faire fonctionner un peu le truc :
Ce que j’ai compris :
Le ProtoCoder est un module RAM 4k.
Le ProtoRom est un port-extender dans lequel on peut insérer 4 modules HP
Le ProtoEprom est une EpROM-box 4k, 8k, ou 16k.
Voilà ce que j’arrive à faire :
- Actionner les 4 slots des ProtoRom : on et of. ça m’a pris du temps pour comprendre et réussir la conversion hex vers NNN, mais j’y suis parvenu. Quand je place des modules standards tel MATH1 ou STAT1 dans les ProtoRom, la calculatrice les reconnait avec CAT2 à condition que mon propre module XFunction ne soit pas présent dans la calculatrice. Dans ce cas c’est le crash ! Il semble y avoir un problème de compatibilité… ? Mon propre Xtime dans la calculatrice ne pose aucun problème.
- Le ProtoEprom avec les deux eprom est aussi reconnu, mais CAT2 prend un remps « infini », et me donne une série de caractères incompréhensibles…

Ce que je ne sais pas encore faire :
Je me demande bien pourquoi les deux ProtoRom contenaient un Xfunctions, 2 Xmemory, et 1 Quad ? Le XFunction est reconnu mais le nombre de registre reste à 124. Je n’ai trouvé aucune info sur un moyen d’envoyer des données dans le ProtoRom, le gars qui possédait ce truc devait être un expert…
Envoyer des données dans la RAM du ProtoCoder…
Lire le contenu des deux EpROM smc1U2 et smc1L8 si il est encore exploitable…

Ce truc ne me sert à rien mais m’intéresse vraiment… Pour info : je n’y connais rien en programmation synthétique, pour l’instant…

Si quelqu'un connait cet objet, je suis preneur d'infos


Image

Image

Image

Image

Image

Avatar de l’utilisateur
hpmaniac
Expert
Messages : 213
Inscription : mar. 16 sept. 2008 15:18
Localisation : Grenoble

Re: ProtoCoder - Prototech

Message par hpmaniac »

Joli lot ! Le tout pour 50 dollars c'est une affaire.

Je ne connais pas vraiment le ProtoCoder, tout ce que je sais c'est que c'est un système de développement créé par Nelson Crowle au début des années 80.

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

Re: ProtoCoder - Prototech

Message par pilou45000 »

Merci pour ta réponse,
je ne sais pas si c'est une affaire, je ne suis ni collectioneur, ni speculateur. Je suis enseignant en physique et, dans le cadre d'un projet avec mes élèves sur l'histoire du traitement des mesures, je me replonge dans l'utilisation de ces calculatrices fantastiques dont la HP41 et la TI58 que j'utilisais quand j'étais étudiant. Je suis tombé par hasard sur ce dispositif en recherchant un module HP-IL sur Ebay... Le truc était noyé de poussière et j'ai dû le nettoyer minutieusement avant de faire des essais.

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 »

Bonjour,

Ce matériel à mon avis a un intérêt principalement pour l'aspect historique ou collection, ou pour le coté informatique (très) vintage sous réserve qu'il fonctionne encore. Rien que se procurer des EPROMs de ce type est un challenge maintenant.
A propos les EPROM SM1C (pas smc1) sont vraisemblablement les EPROM du Service Module 1C, qui s'utilise de façon particulière en page 4.

Sinon, comme hpmaniac, je n'ai pas de connaissance particulière sur ces matériels.
Ils pourraient faire le bonheur de collectionneurs, à voir si tu décidais de t'en séparer.
Il y a probablement des moyens plus simples et compacts pour pratiquer le Mcode sur HP-41, avec les Clonix et l'émulation HEPAX par exemple.

J-F

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

Re: ProtoCoder - Prototech

Message par pcscote »

Bonjour,

Je suis au boulot en ce moment (GMT-4h), je vais te donner plus d'information sur le sujet à mon retour à la maison ce soir.

En attendant, de mémoire voici ce dont je me souviens, le ProtoCODER était la boîte principale d'une série de boîtes que la compagnie Prototech (USA) appelait le ProtoSYSTEM.

Le ProtoSYSTEM comprenait les boîtes suivantes:
  • ProtoCODER : 4K RAM 10-bit, aussi connue sous les noms: Q-ROM, RAM Box, etc.
  • ProtoROM : boîte pouvant accepter 4 modules HP-41
  • ProtoEPROM : 4K/8K/16K EPROM 10-bit, aussi connu sous le nom d'EPROM Box
  • ProtoSOUNDER : générateur de son programmable
Je suis un utilisateur du HP-41 depuis 1981 et j'ai programmé en MCode dans les années 1980 avec une boîte similaire. (boîte MLDL avec RAM et EPROM)
Ce type de boîte était aussi nécessaire pour quiconque voulait développer un module 4K en langage machine, appelé MCode par le groupe de développeur du temps.
J'ai encore tout l'équipement nécessaire à la génération d'EPROM à partir d'image RAM 10-bit et j'ai aussi un inventaire d'EPROM compatible avec ces boîtes.
Je suis aussi un collectionneur et je suis preneur de ton système si tu décides un jour de t'en départir.
J'ai donné une présentation au HPCC 2020 sur une version moderne de ce type d'équipement, voici le lien:

Diego Díaz Clonix & NoV Modules - HHC 2020 & HPCC 2020 Presentations

Cordialement,

Sylvain

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

Re: ProtoCoder - Prototech

Message par pilou45000 »

jeffcalc a écrit : lun. 22 mai 2023 13:14 Bonjour,

Ce matériel à mon avis a un intérêt principalement pour l'aspect historique ou collection, ou pour le coté informatique (très) vintage sous réserve qu'il fonctionne encore. Rien que se procurer des EPROMs de ce type est un challenge maintenant.
A propos les EPROM SM1C (pas smc1) sont vraisemblablement les EPROM du Service Module 1C, qui s'utilise de façon particulière sur page 4.

Sinon, comme hpmaniac, je n'ai pas de connaissance particulière sur ces matériels.
Ils pourraient faire le bonheur de collectionneurs, à voir si tu décidais de t'en séparer.
Il y a probablement des moyens plus simples et compacts pour pratiquer le Mcode sur HP-41, avec les Clonix et l'émulation HEPAX par exemple.

J-F
Bonjour,

Merci pour ta réponse, effectivement il s'agit des EPROM du module de service, lorsque je place les switchs du ProtoEprom en page 4, le module se lance au demarrage de la calculatrice. Incroyable, ça fonctionne toujours après plus de 40 ans !

Image

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

Re: ProtoCoder - Prototech

Message par pcscote »


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

Re: ProtoCoder - Prototech

Message par pilou45000 »

pcscote a écrit : lun. 22 mai 2023 19:52

Merci d'avoir pris le temps de me répondre, j'avais déjà trouvé ces manuels mais je ne m'explique pas pourquoi les deux ProtoRom étaient chargés d'un module Xfunction, de 2 Xmemory et d'un Quad memory. A priori il n'est pas possible d'envoyer des données dans un port extender... je vais continuer de chercher.
Le module NFCROM doit être bien utile mais à mon avis introuvable...
Bien cordialement
Philippe

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

Re: ProtoCoder - Prototech

Message par pcscote »

Bonjour Philippe,
pilou45000 a écrit : lun. 22 mai 2023 20:25,
mais je ne m'explique pas pourquoi les deux ProtoRom étaient chargés d'un module Xfunction, de 2 Xmemory et d'un Quad memory.
Si on fait l'abstraction du module QUAD, d'avoir deux ensembles de XFM+XM+XM pourrait avoir du sens.
Si on active seulement qu'un ProtoROM à la fois, on se trouve à avoir deux fois le nombre de registres XM maximum.
pilou45000 a écrit : lun. 22 mai 2023 20:25 A priori il n'est pas possible d'envoyer des données dans un port extender... je vais continuer de chercher.
Euh! un port extender ne fait qu'ajouter des ports physiques et n'ajoute rien électriquement.
Donc en principe il n'y a pas de différence logique entre une 41 sans port extender et une 41 avec un port extender.
pilou45000 a écrit : lun. 22 mai 2023 20:25 Le module NFCROM doit être bien utile, mais à mon avis introuvable...
À ma connaissance, il n'y a jamais eu de module ROM produit par HP contenant l'image du NFCROM.
Dans les années 80 les personnes transféraient l'image du NFCROM dans une mémoire EPROM, de nos jours on transfère l'image dans une mémoire Flash. (modules: Clonix-D, NoV-64d, etc.)

Sylvain

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

Re: ProtoCoder - Prototech

Message par pilou45000 »

Bonjour Sylvain,

Oui, 1 XFM et 2XM pourrait permettre de doubler le nombre max de registres, le problème est que la calculatrice trouve bien le module XFM mais ne reconnait pas les XM quand ils sont dans le ProtoRom... Un EMDIR donne toujours 124.... Il faut que je creuse davantage.

J'ai réussi à décompiler la NFCROM de prototech (j'ai bien obtenu 2 programmes et 42 routines comme indiqué dans le manuel), reste maintenant à trouver , car je n'ai pas de laisson HP41 - PC type PilBox, un générateur de barcodes qui reconnaisse le MCODE ... pas encore trouvé.

Un challenge interressant pour moi, mais je "souffre" de mon manque de connaissances , alors je lis toute la littérature que je peux trouver sur le sujet, mais j'ai du chemin à faire !

Bien cordialement
Philippe

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

Re: ProtoCoder - Prototech

Message par pcscote »

Bonjour Philippe,
pilou45000 a écrit : ven. 26 mai 2023 19:17 reste maintenant à trouver , car je n'ai pas de laisson HP41 - PC type PilBox, un générateur de barcodes qui reconnaisse le MCODE ... pas encore trouvé.
Le but principal du lecteur optique est de charger des programmes RPN et des données. → HP 82153A Wand Owner's Manual
Il n'est pas capable de lire du code machine.

Ce serait plus facile de t'aider si tu expliquais ce que tu essaies de réaliser.

Cordialement,

Sylvain

PS: Si tu es intéressé, je te propose une session Zoom afin d'être plus rapide dans le transfert de connaissances.
Je réside dans la banlieue nord de Montréal (QC, Canada), donc GMT-4h.

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

Re: ProtoCoder - Prototech

Message par pilou45000 »

Bonjour Sylvain,

Merci pour ta réponse encore une fois, c’est très gentil à toi de me proposer une session zoom, mais je ne voudrai pas te déranger davantage, tu réponds déjà patiemment à mes questions de « novice ». Je cherche juste à faire fonctionner le dispositif par curiosité et parce que ça m’intéresse de faire revivre ces « vieilles machines ».
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. J’ai bien réussi à décompiler et j’ai les listing, reste à les entrer dans la calculatrice, c’est là que je bloque puisqu’on ne peut pas générer des barcode…

Bien cordialement.
Philippe.

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

Re: ProtoCoder - Prototech

Message par pcscote »

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

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

Re: ProtoCoder - Prototech

Message par pcscote »

Suite ...

Des le lancement de la HP-41C en 1979, les membres du club PPC USA se sont donné comme but d'analyser le fonctionnement interne de la calculatrice et de publier leurs trouvailles.

Rapidement ils ont réussi à décoder la table d'instructions du langage interprété FOCAL, ce qui donna lieux a l'invention des instructions synthétiques et à la possibilité de manipuler sans contrainte le contenu des registres mémoires. Parallèlement, plusieurs autres clubs HP se sont formés et ont opéré indépendamment ou en association avec le club PPC des USA.
  • PPC Paris (France)
  • PPC Toulouse (France)
  • PPC Melbourne (Australie)
  • HPCC (Angleterre)
  • CCD (Allemagne)
  • CHHU (USA)
  • CHHU Sydney(Australie)
  • HPX (USA)
  • etc.
Ensemble ils ont découvert le fonctionnement interne et ont réussi à décoder les instructions du processeur NUT.

Parallèlement, les électroniciens on crée des boîtes simulant la mémoire 10-bit permettant d'emmagasiner et d'exécuter les instructions du processeur.
  • RAM-Box -> simulation de la mémoire 10-bit avec de la RAM 8-bit (aussi appelé Q-ROM)
  • EPROM-Box -> simulation de la mémoire 10-bit avec des EPROM de différentes grosseurs
  • MLDL -> Machine Language Development Lab -> combinaison d'une RAM-Box et d'une EPROM-Box
Puis, plusieurs modules ont été créés permettant de manipuler le contenu de la mémoire RAM 10-bit.
Ex.: ZenROM, David Assembler ROM, DISASM ROM, ESMLDL ROM, etc.

Le processus de programmation en assembleur sur la 41 était la suivante dans les années 80:
  • Écriture du programme en mnémonique machine sur une feuille de papier
  • Ajout dans une colonne à droite des mnémoniques l'équivalent en octal ou en hexa de la mnémonique
  • Calcul manuel des distances relatives des goto et des gosub
  • Avec l'aide d'un des modules ci-dessus, entrée manuelle des valeurs octal ou hexa dans la mémoire Q-ROM
  • Avec l'aide d'un des modules ci-dessus, sauvegarde d'une page de 4 kW sur un médium de masse HP-IL: cassette, disquette, etc.
... et la programmation d'EPROM se faisait d'une des façons suivantes:
  • Avec la HP-41 seulement ...
    • HP-41 + RAM-Box + MC EPROM ROM + module HP-IL + MC00506A HP-IL EPROM Programmer
      ou
    • HP-41 + RAM-Box + module HP-IL + module Ext-I/O + 82164A HP-IL/RS-232C + programmeur d'EPROM RS-232C + programme FOCAL d'écriture des EPROM
  • Avec un ordinateur ...
    • Étape #1: HP-41 + RAM-Box + module HP-IL + module Ext-I/O + 82164A HP-IL/RS-232C + ordinateur avec RS-232C + programme FOCAL d'exportation de la Q-ROM vers l'ordinateur
    • Étape #2: Ordinateur avec RS-232C + programmeur d'EPROM RS-232C + programmation des EPROM
Sylvain

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

Re: ProtoCoder - Prototech

Message par pcscote »

Les produits suivants ont remplacé les techno d'il y a ~40 ans:
  • Module Clonix-D par Diego Díaz
    • EPROM box moderne
    • Flash : 48 k-word 10-bit => ROM: 12x 4k
    • Programmable à partir d'un PC Windows
    • Disponible maintenant
    • Module: 100 euro
    • Programmeur USB-A: 40 euro
  • Module NoV-64d par Diego Díaz
    • MLDL box moderne
    • Flash : 48 k-word 10-bit => ROM: 12x 4k
    • FRAM : 64 k-word 10-bit => Q-ROM: 16x 4k / HEPAX RAM: 2x 32k ou 4x 16k
    • Simulation HEPAX
    • Programmable à partir d'un PC Windows
    • Disponible maintenant
    • Module: 140 euro
    • Programmeur USB-A: 40 euro
  • Module MAXX par Monte Dalrymple
    • mélange de RAM box moderne et de nouvelles fonctionalitées
    • transforme une 41C en 41CV
    • ajoute aux 41C et 41CV les modules suivants: XFM+XM+XM+TIME
    • ajoute à la 41CX les modules suivants: XM+XM
    • ajoute le ROM MAXX
    • SRAM : 48 k-word 10-bit => Q-ROM: 12x 4k
    • SRAM : 3072 registres RAM de 7-octets chacun (expanded memory / Y-Memory / Y-Registers)
    • Module: devrait être en dessous de $200 USD
    • disponible en 2023
    • note: la sauvegarde et le chargement de la mémoire Q-ROM s'effectue avec HP-IL
  • Périphérique HP-IL Virtuels
    • PIL-Box : convertisseur HP-IL/USB par Jean-François Garnier
    • Virtual HP-IL : périphériques IL virtuels par Christoph Gießelink (compatible avec Windows)
    • pyILPER : périphériques IL virtuels par Joachim Siebold (compatible avec Windows/Linux/macOS)

Répondre