Histoire de ma vie jusqu’à ce jour - Épisode 56 - Création d'un jeu vidéo sur la Corvette Georges Leygues: Programmation

in #fr6 years ago (edited)

Adaptation in French of The Story of My Life so Far - Part 56

Ceci est l'histoire de ma vie jusqu’à ce jour.
A lire avant: Histoire Courte de ma Famille en France


ma_photo.png

L'histoire commence ici.
Épisode précédent: #55


Programmation de mon jeu vidéo

Il n'y avait pas de support pour programmer les ordinateurs du Georges Leygues.

Les programmes sont généralement écrits dans un langage de programmation de haut niveau tel que FORTRAN, que j'avais utilisé à l'École Navale. Les programmes écrits dans un langage de haut niveau sont convertis dans le langage compris par l'ordinateur, son langage machine, avec un compilateur. Il n'y avait pas de compilateur à ma disposition.

Le plus bas niveau de langage de programmation sur n'importe quel ordinateur est appelé le langage d'assemblage. Un assembleur est utilisé pour traduire ce langage d'assemblage en code machine. Chaque instruction dans le code d'assemblage est traduite en une instruction dans le code machine.



L'instruction d'assemblage "move, w # 0x5a1e, 0x0120" est convertie en une instruction de code machine sur 3 mots de 16 bits.
source

Je n'avais pas non plus d'assembleur à ma disposition. Tout ce que j'avais c'étaient les manuels pour les langages d'assemblage des deux ordinateurs, le P2MS et le Mitra 15.

Alors voila ce que j'ai fait: j'ai écrit le code de mon jeu en langage d'assemblage et je l'ai traduit manuellement en code machine sur papier.

Il m'a fallu des semaines et des mois pour le faire, mais j'étais déterminé à avoir un jeu qui fonctionnait correctement.

Entrer et sauvegarder le programme du jeu

Un autre problème que j'ai dû résoudre était qu'il y avait très peu de façons d'entrer le programme dans les ordinateurs ou de le sauvegarder sur un support afin qu'il puisse être rechargé plus tard.

Le programme devait être exécuté sur le Mitra 15, l'ordinateur de visualisation, directement relié aux consoles du Central Opérations. Il n'y avait aucune possibilité d'entrée ou de sortie pour le programme sur cet ordinateur.

La seule façon de charger un programme sur le Mitra 15 était de l'envoyer depuis le P2MS.

Il y avait un moyen d'entrer des instructions sur le P2MS en utilisant une rangée de 32 commutateurs et en appuyant sur un bouton pour chaque mot de 32 bits. C'était très lent, mais c'était le seul moyen que j'ai trouvé pour entrer le programme dans l'ordinateur.

Heureusement, quand j'ai commencé à entrer dans le programme sur le P2MS, l'ordinateur était déjà installé et il n'y avait aucun test qui devait fonctionner dessus. J'ai donc pu conserver le programme dans la mémoire à noyau magnétique non volatile du P2MS pendant plusieurs semaines.

Cependant, à un moment donné, j'ai dû enregistrer le programme sur un support que je pourrais utiliser plus tard pour le recharger.

Le seul appareil disponible était un télétype avec un perforateur et un lecteur utilisant un ruban perforé à cinq trous.



Rubans perforés à cinq et huit trous
source

Donc, c'est ce que j'ai utilisé: j'ai écrit un petit programme sur le P2MS pour écrire le programme du jeu sur une bande perforée sur le télétype.

Ensuite, pour charger le programme et le lancer à partir de zéro, voici ce qu'il fallait faire:

  • Entrer, en utilisant les commutateurs sur le P2MS, un programme "pré-chargeur" qui avait seulement 23 instructions.
  • Avec ce pré-chargeur, entrer un petit programme que j'ai appelé le "chargeur" à partir d'un petite ruban perforé.
  • En utilisant le chargeur, entrer le programme de jeu à partir d'un ruban perforé beaucoup plus long sur le télétype. Cette opération prenait environ 45 minutes.
  • Enfin, démarrer manuellement le programme sur le P2MS.

Le programme sur le P2MS était très simple:

  • Envoyer le vrai programme de jeu au Mitra 15 et lui indiquer de démarrer le programme.

Après des mois d'essais et d'erreurs, le jeu était enfin fini et nous avons pu jouer au tennis au Central Opérations du Georges Leygues lorsque nous n'étions pas en mer.

La suite Épisode 57


Résumé
Épisode 1 - Épisode 2 - Épisode 3 - Épisode 4 - Épisode 5 - Épisode 6
Épisode 7 - Épisode 8 - Épisode 9 - Épisode 10 - Épisode 11 - Épisode 12
Épisode 13 - Épisode 14 - Épisode 15 - Épisode 16 - Épisode 17 - Épisode 18
Épisode 19 - Épisode 20 - Épisode 21 - Épisode 22 - Épisode 23 - Épisode 24
Épisode 25 - Épisode 26 - Épisode 27 - Épisode 28 - Épisode 29 - Épisode 30
Épisode 31 - Épisode 32 - Épisode 33 - Épisode 34 - Épisode 35 - Épisode 36
Épisode 37 - Épisode 38 - Épisode 39 - Épisode 40 - Épisode 41 - Épisode 42
Épisode 43 - Épisode 44 - Épisode 45 - Épisode 46 - Épisode 47 - Épisode 48
Épisode 49 - Épisode 50 - Épisode 51 - Épisode 52 - Épisode 53 - Épisode 54
Épisode 55

Sort:  

Un travail epoustouflant qui verse beaucoup de lignes avec joie.
Et voila tu te rappeles de tas de choses.
Tout le monde s'amusait apres. C'etait bien.

It was a long, hard work and using logic to make it work, but in the end it had a distraction. while they were on that ship. A seguir...

Eh ben! On en a fait du chemin depuis les rubans perforés... Tu as des connaissances en Java, @vcelier? J'essaie de maîtriser ce language de programmation depuis quelques mois avec des cours en ligne...

On en a fait du chemin depuis les rubans perforés...

Oui, en effet.

Tu as des connaissances en Java, @vcelier?

Non, pas vraiment. Mon langage de prédilection est Ada, qui ressemble beaucoup au Pascal.

you make a very different post. I learned a lot from your post.
thank you @vcelier for sharing

Je ne manquerai pas un jour de votre histoire parce que vous êtes l'inspiration de ma vie en ce qui concerne le succès. Je vous remercie.

Sir your post always very strong post and gave me knowledge very much ...

Very informative and good post. I noticed that your every post have some special .which is should know really . And thank you for sharing it .
I am very happy to follow you.

really nice post sir.all the best

Perfect poss..

Coin Marketplace

STEEM 0.30
TRX 0.12
JST 0.033
BTC 64093.86
ETH 3123.80
USDT 1.00
SBD 3.94