Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Programmation de l' IBM650

14 réponses
Avatar
K7+2lap
Bonsoir à tous!

Me revoilà avec mes vieilleries...

Je vous propose un sujet encore plus ancien qu'un CPU tout transistors. Je
n'ai pas pris le temps de chercher sur Internet, mais je pense que l'ancêtre
que je vais tenter de vous faire découvrir, fonctionnait avec des lampes
(tubes à vide).

J'ai retrouvé dans mes vieilles affaires, mes cours d'analyse numérique où
on utilisait un IBM650. Plutôt que de jeter le tout à la poubelle (car j'ai
peu de risque d'en avoir l'usage!), j'en ai fait une copie sur mon site en
me disant que peut-être un jour... un passant y jettera un oeil!

Ne soyez pas méchants, je sais que les machines ont évoluées depuis!

Non je n'ai pas une machine de ce genre dans mon grenier, désolé!

N'hésitez pas à dire ce que vous en pensez!

JMP

10 réponses

1 2
Avatar
Guillaume Tello
"K7+2lap" a écrit dans le message de news:
467816fc$0$31430$

Ben oui, mais il est où ton site!
Je voulais aller voir moi!

Guillaume.
Avatar
K7+2lap
euh... cela doit être dû aux effets de l'entrelacement du tambour
magnétique...

voir
http://pichotjm.free.fr/IBM650/file.html

Bonne lecture!

On peut aussi réviser sur le reste du site:
http://pichotjm.free.fr/index.html


"Guillaume Tello" a écrit dans le message de news:
46782242$0$5084$

"K7+2lap" a écrit dans le message de news:
467816fc$0$31430$

Ben oui, mais il est où ton site!
Je voulais aller voir moi!

Guillaume.

Avatar
Guillaume Tello
"K7+2lap" a écrit dans le message de news:
4678228c$0$31390$
euh... cela doit être dû aux effets de l'entrelacement du tambour
magnétique...

voir
http://pichotjm.free.fr/IBM650/file.html

Bonne lecture!

On peut aussi réviser sur le reste du site:
http://pichotjm.free.fr/index.html



Ouh là, dur à décoder, tout n'est que nombre... Pas de mnémoniques pour
tenter de piger le système.

Avec un livre de programmation, ça aurait été chouette!
N'empêche, quel boulot: algorithme -> codes numériques -> trous dans la
carte -> moulinette IBM pour vérifier -> retour au début en cas d'erreur.

Guillaume.
Avatar
K7+2lap
"Guillaume Tello" a écrit dans le message de news:
46795c9a$0$5072$

"K7+2lap" a écrit dans le message de news:
4678228c$0$31390$
euh... cela doit être dû aux effets de l'entrelacement du tambour
magnétique...

voir
http://pichotjm.free.fr/IBM650/file.html

Bonne lecture!

On peut aussi réviser sur le reste du site:
http://pichotjm.free.fr/index.html



Ouh là, dur à décoder, tout n'est que nombre... Pas de mnémoniques pour
tenter de piger le système.

Avec un livre de programmation, ça aurait été chouette!
N'empêche, quel boulot: algorithme -> codes numériques -> trous dans la
carte -> moulinette IBM pour vérifier -> retour au début en cas d'erreur.

Guillaume.



Quand, lors de mes rangements, je suis tombé sur ce dossier, j'ai été très
surpris de voir la complexité de la programmation.
En analysant un peu plus, j'ai compris que l'architecture de l'IBM 650 était
vraiment différente des machines actuelles (ou même du Serel). En gros j'ai
l'impression que tout était fait avec cette notion de nombres commerciaux,
qui ensuite conduisait aux cartes perforées et que les CPUs étaient crées
pour gérer ces fiches.
On était loin de ce qu'on a actuellement et qui nous parait tellement
évident (tout du moins au niveau des uP simples)
Qu'une machine ancienne n'ait pas cette notion de compteur ordinal m'a
beaucoup surpris. Et puis, mettre un équivalent 'goto' dans chaque
instruction!
L'absence de pointeur (hardware) peut se comprendre, car l'astuce de
modifier des zones de code peut facilement y pallier. C'était une chose qui
m'amusait beaucoup du temps du 6800, de faire de la programmation/exécution
en zone RAM (et non pas Rom) et de modifier le contenu des instructions. On
pouvait faire des choses tout à fait inattendues! La notion de registres
pointeur nous a quand même beaucoup simplifié la vie.

Si vous êtes intéressé par une meilleure description du fonctionnement de
l'IBM 650, jetez un coup d'oeil sur:
http://archive.computerhistory.org/resources/text/IBM/IBM.650.1955.102646125.pdf
Cela explique le fonctionnement. Je n'ai pas tout compris: faut que je le
relise!

J'ai l'impression que beaucoup de participants au NG ordinosaures ont été
largués! Mais je crois que j'ai réussi à montrer comment c'était compliqué,
dans le temps!

Bonne journée!

JMP
Avatar
Pucud
K7+2lap wrote:.../...

Il me semble que l'IBM650 possédait un compilateur FORTRAN
sans doute un des premiers.

Qu'en penses tu?

L'absence de compteur ordinal etait courant. De meme que l'absence
d'additionneur. Il fallait avoir un comparateur et une table
d'addition/soustraction et roule... La "modification d'instruction"
etait une opé courante.

** cix **
Avatar
K7+2lap
Hello,

Il me semble que l'IBM650 possédait un compilateur FORTRAN
sans doute un des premiers.

Qu'en penses tu?



Malheureusement, je ne sais pas répondre. Mais je suis plutôt dubitatif, car
ils ont l'air de dire que le langage symbolique SOAP était une grande
avancée. Le fortran n'a dû apparaitre qu'après les assembleurs. (?)
Dans ces cours, on n'étudiait pas franchement l'assembleur, puisque on
faisait cela à la main!
Peut-être, était-ce pour nous faire mieux comprendre?
Une seule chose m'avait marqué, c'était l'histoire de l'entrelacement des
codes en fonction de la rotation du tambour. J'avais oublié tout le reste!
(sauf les méthodes polynomiales pour calculer les sinus, cosinus, tg...)

L'absence de compteur ordinal etait courant. De meme que l'absence
d'additionneur. Il fallait avoir un comparateur et une table
d'addition/soustraction et roule... La "modification d'instruction"
etait une opé courante.
** cix **



Pour l'addition, je ne sais pas (mais cela m'étonne) et je ne vois pas trop
comment cela pouvait fonctionner. (une explication ?)
Par contre, pour la multiplication, il y a une description de la
décomposition en succession d'additions, décrite dans le document
http://archive.computerhistory.org/resources/text/IBM/IBM.650.1955.102646125.pdf .
(ainsi que pour la division)
Cela me rappelle les calculs numériques que l'on faisait avec des machines à
manivelles et où on décalait la tabulatrice... Je ne me souviens plus du nom
de ces machines (suisses?), mais je me vois encore en train de tourner la
manivelle! Le fonctionnement de ces machines mécaniques semble avoir été
transposé/adapté pour le calcul électronique du 650.

Savez-vous qu'elle était la technologie du 650 (probablement lampes?)

C'est vraiment amusant de plonger dans ce passé. Il n'y a personne d'autres
pour nous rafraîchir la mémoire?

Bon week-end!


JMP
Avatar
K7+2lap
Bon week-end!



Encore un bug dans ma machine à voyager dans le temps! ;-) Cela doit être
une histoire d'arrondi: je prends pourtant la méthode d'arrondi au nombre
pair le plus proche... (pour les 5)
Donc le week-end, c'est demain. (ce sera)

Bonsoir

jmp
Avatar
Guillaume Tello
"K7+2lap" a écrit dans le message de news:
467a416b$0$7166$
Si vous êtes intéressé par une meilleure description du fonctionnement de
l'IBM 650, jetez un coup d'oeil sur:
http://archive.computerhistory.org/resources/text/IBM/IBM.650.1955.102646125.pdf
Cela explique le fonctionnement. Je n'ai pas tout compris: faut que je le
relise!



Intéressant!
Pas tout pigé" non plus. Je pense qu'au niveau du vocabulaire déjà on
passe un cap (dans le passé) et sans tester soi même les instructions, on
sature vite d'informations.
Mais bon, y'a le gros du CPU:
- accumulateur High et Low (2 fois 10 chiffres)
- distributor (genre d'accu temporaire)
Ces deux là seraient les registres du CPU

Le fameux tambour de 2000 positions de 10 chiffres + signes serait la
RAM et leurs séries de cartes perforées le disque dur... et l'écran à la
fois!

Un émulateur de cette machine serait assez rigolo.

Guillaume.
Avatar
K7+2lap
"Guillaume Tello" a écrit dans le message de news:
467aa037$0$25915$

"K7+2lap" a écrit dans le message de news:
467a416b$0$7166$
Si vous êtes intéressé par une meilleure description du fonctionnement de
l'IBM 650, jetez un coup d'oeil sur:
http://archive.computerhistory.org/resources/text/IBM/IBM.650.1955.102646125.pdf
Cela explique le fonctionnement. Je n'ai pas tout compris: faut que je le
relise!



Intéressant!
Pas tout pigé" non plus. Je pense qu'au niveau du vocabulaire déjà on
passe un cap (dans le passé) et sans tester soi même les instructions, on
sature vite d'informations.
Mais bon, y'a le gros du CPU:
- accumulateur High et Low (2 fois 10 chiffres)
- distributor (genre d'accu temporaire)
Ces deux là seraient les registres du CPU



tout en mélangeant allegrement les codes OP, les adresses et les données...
L'instruction 'Load' se traduit par 'Addition précédée d'un reset' !
C'est délicieusement rétro.

Une chose que je n'ai pas très bien compris est cette histoire de 2 lecteurs
de cartes. Un pour les instructions (ou début/fin de batch?) et l'autre pour
les données? tout en faisant de la redondance (pour pallier les forts taux
d'erreurs?)

Le fameux tambour de 2000 positions de 10 chiffres + signes serait la
RAM et leurs séries de cartes perforées le disque dur... et l'écran à la
fois!



Ram: non! de la SAM!
Random access memory , prendre plutôt Serial Access Memory.
La 'sequence machine' doit être assez compliquée! Car attendre le passage
d'une donnée pour l'utiliser...

Et tout cela qui valait une fortune, ne faisait qu'environ 16 kB.

Je n'ai pas bien compris pourquoi il y avait 5 têtes pour enregistrer les
chiffres (sorte de BCD étendu, signes +-. avec parité? ou redondance
magnétique?)

Et cela donne des temps d'accès d'environ 40 uS par mot.

Et pas d'imprimante: on lisait les résultats sur les cartes?

Un émulateur de cette machine serait assez rigolo.



Tout, à fait dans la ligne de ma "conquête de l'inutile"!
Mais je pense que je me lancerai plutôt dans celui du Serel ODP505, qui
trône dans mon sous-sol.

Guillaume.



JMP
Avatar
Guillaume Tello
"K7+2lap" a écrit dans le message de news:
467aa56b$0$7152$

Une chose que je n'ai pas très bien compris est cette histoire de 2
lecteurs de cartes. Un pour les instructions (ou début/fin de batch?) et
l'autre pour les données? tout en faisant de la redondance (pour pallier
les forts taux d'erreurs?)



Pas très clair pour moi non plus. Mais il semblerait que certaines
instructions genre "read" permettent d'aller lire une donnée dans le second
panier. Comme si le second panier était en fait le paquet de variables d'un
programme fixe sans avoir à tout re-écrire à chaque changement des données.

Ram: non! de la SAM!
Random access memory , prendre plutôt Serial Access Memory.
La 'sequence machine' doit être assez compliquée! Car attendre le passage
d'une donnée pour l'utiliser...



J'aurai dit de la ram quand même, car niveau utilisateur le fait qu'elle
soit séquentielle est transparent. Je dirai même qu'elle n'est pas si
séquentielle que ça, ça semble être adréssé comme une matrice enroulée en
tambour. D'abord la bande du tambour (1 à 40) puis la position dans la bande
(1 à 50).

Je n'ai pas bien compris pourquoi il y avait 5 têtes pour enregistrer les
chiffres (sorte de BCD étendu, signes +-. avec parité? ou redondance
magnétique?)



Si j'ai bien compris: un chiffre est représenté avec un motif écrit par
les 5 têtes. Ils donnent en exemple:
tête 5 + tête 3 = chiffre 8
tête 5 + tête 2 = chiffre 7
On peut suposer que 5+4 =9 et 5+1=6
De même que les chiffres de 1 à 5 sont représentés par une seule tête.
Mais qu'en est-il du zéro? Absence de marquage? ou toutes les têtes
ensembles?
Bref, ce n'est pas optimisé, puisqu'avec 5 têtes on aurait 32
possibilités. Optimisé en vitesse de lecture sans doute ou en simplicité du
circuit de décodage?

Et pas d'imprimante: on lisait les résultats sur les cartes?



Oui, mais j'ai du mal à saisir leurs sorties qui semblent être réservées
à seulement certaines cellules de la RAM et qui doivent être contigues (pour
se perforer sur la même carte..) Bref, y'a des limitations!

En tous cas, système passionnant!
Qu'y avait-il sur la console?

Guillaume.
1 2