J'ai retrouvé quelques informations concernant la programmation de l'IBM650.
Je vous propose de découvrir comment on utilisait cette machine,
et vous allez voir que ce n'est pas évident!
Soyez indulgent car j'ai aussi du mal à comprendre comment cela fonctionnait,
et en conséquence je peux raconter des idioties...
Mon but est de faire découvrir comment fonctionnait ces ancêtres, car on trouve
de temps en temps des photos, mais jamais une plongée dans la technologie!
Il faut que les jeunes comprennent comment cela a été difficile d'arriver jusqu'à 2007,
et que la civilisation qu'on leur offre maintenant, est le résultat de nombreuses
difficutés/souffrances.
L'IBM650 est un véritable ancêtre qui date des années 50 ou 60.
Il était fabriqué avec des lampes (tubes à vide) et s'organisait autour d'une mémoire à tambour magnétique.
Les codes et les données étaient enregistrés et lus sur, et à partir de ce tambour magnétique.
Il semble qu'il n'y avait pas encore de mémoire à tores (et pourtant 10uS, cela les faisait rêver!).
Cela impliquait une programmation (en décimal) qui devait tenir compte de la rotation du tambour!
Car l'exécution d'une instruction, laissait le tambour se décaler de 2 cases mémoires...
En faisant une programmation 'entrelacée' la durée d'une instruction n'était que de 6 mots
(passage devant la tête du tambour) sans cette 'haute technologie' de l'entrelacement
la durée de l'instruction aurait été 16 fois plus longue (2 tours du tambour, soit environ 10 mS).
Cela impliquait aussi des instructions devant contenir l'adresse suivante (pas de notion de compteur ordinal)
La machine n'utilisait pas du binaire pur (octal ou hexa) mais du codé décimal,
afin d'être compatible avec les cartes perforées (de 0 à 9).
Il n'y avait pas de notion de pointeur et l'on devait en conséquence utiliser une case mémoire
et lui mettre 'une ligne' contenant le code op, l'adresse de la mémoire à modifier
et évidemment l'adresse de l'instruction suivante.
Si vous êtes intéressé par une meilleure description du fonctionnement de l'IBM 650, jetez un coup d'oeil sur:
IBM.650.1955.102646125.pdf
que j'ai trouvé sur le site
http://archive.computerhistory.org.
Cela explique le fonctionnement. (Je n'ai pas tout compris: faut que je le relise!)
On peut aussi charger un simulateur d'IBM650 à l'adresse suivante:
http://www.infinitefish.com/650/ (attention il vous faut d'abord installer Java)
J'ai essayé de faire une simulation des programmes que je mets à disposition
mais le simulateur ne permet pas l'utilisation des mémoires
8003, 8002 et 8001 en tant qu'adresse du contenu des registres Upper, Lower
et Distributor. (plus précisément ne permet pas d'exécuter une instruction
définie dans ces adresses)
Vous avez compris que les textes dactylographiés ne sont pas de moi...
Je ne me souviens même plus du nom du prof (ma mémoire s'évanouie)
Si quelqu'un connait le nom du prof, j'écrirai avec plaisir son nom sur ces quelques pages.
Après recherches, il est probable qu'il s'agisse de M Georges Brillouët et M Coatmelec.
Mais je n'arrive pas à le certifier: Ils dépendaient de Rennes et venaient à Nantes,
et moi je venais d'Angers en auditeur libre... en séchant mes cours d'école d'ingénieur.