Présentation du projet

Le dépôt retro-1620 propose un émulateur fonctionnant dans le navigateur pour le IBM 1620 Model‑2, ordinateur transistorisé des débuts des années 1960. Le projet vise à recréer le système complet – matériel, jeu d’instructions et environnement d’exploitation – et à récupérer le plus possible de logiciels d’époque. Le code est publié sous licence MIT, ce qui facilite la diffusion et la contribution de la communauté.

Architecture technique de l’émulateur

L’émulateur reproduit la mémoire à cœur magnétique de 20 000 à 60 000 décimales, chaque chiffre étant stocké sur quatre bits BCD, complété d’un bit de signe/délimiteur et d’un bit de parité impair. Le cycle mémoire de 10 µs pour deux chiffres du Model‑2 est simulé grâce à un timer JavaScript qui déclenche les accès mémoire à cette cadence, garantissant une temporalité proche du matériel original. Le jeu d’instructions, codé sur 12 décimales, est décodé en trois champs : opcode (2 décimales), adresse P (5 décimales) et adresse ou littéral Q (5 décimales). L’absence de registres accessibles nécessite que l’émulateur gère les opérations exclusivement via ces adresses, comme le faisait le vrai 1620.

Les opérations arithmétiques sont implémentées selon les spécifications historiques : l’addition est réalisée en matériel (algorithme de retenue BCD), tandis que la multiplication utilise une table de recherche stockée en mémoire, reproduite par un tableau JavaScript pré‑chargé. La division matérielle et les opérations flottantes, optionnelles sur le vrai système, sont également disponibles mais restent désactivées par défaut, reflétant la configuration de base du Model‑2.

Reconstitution du matériel et des périphériques

Le simulateur intègre les périphériques classiques du 1620 : lecteur/poinçonneur de bande perforée, machine à écrire, lecteur de cartes 1622, imprimante ligne 1443, disque 1311 et traceur 1627. Chaque dispositif est modélisé par une interface Web (API File, Canvas, Web Serial) qui traduit les flux d’entrée/sortie en fichiers ou en affichage texte. Les registres d’index, situés en mémoire aux adresses 00300‑00399, sont manipulés par le même moteur d’accès mémoire, permettant ainsi les modifications d’adresses d’instruction comme sur le matériel réel.

Le projet inclut également le support du système de contrôle IBM 1710/1720, avec les interruptions multi‑niveaux et les instructions additionnelles nécessaires à la gestion de processus industriels. Cette couche supplémentaire montre la capacité de l’émulateur à reproduire non seulement le calcul mais aussi les interactions temps réel du 1620 avec des équipements de terrain.

Perspectives, limites et contribution scientifique

En rendant accessible un environnement complet du 1620, l’émulateur ouvre la voie à l’étude empirique des algorithmes décimaux et des techniques de programmation de l’époque, notamment l’assembleur SPS et le FORTRAN II. Cependant, la précision temporelle reste bornée par la résolution du timer du navigateur et par l’absence de parallélisme matériel réel, ce qui peut affecter les benchmarks de performances historiques. De plus, la récupération de logiciels dépend de la disponibilité des archives Bitsavers, et le projet ne garantit pas la complétude de l’ensemble du catalogue logiciel.

Le code source, hébergé sur GitHub, invite les développeurs à améliorer la fidélité du modèle, à ajouter de nouveaux périphériques ou à intégrer des systèmes d’exploitation alternatifs. Cette démarche collaborative constitue une ressource précieuse pour les historiens de l’informatique et les éducateurs souhaitant illustrer les concepts de calcul décimal et de mémoire à cœur magnétique.