Histoire

 Ma petite histoire pour ceux que ça intéresse...

Tout commence avec l'Amiga 500 et ses fantastiques jeux et démos. Tout était incroyable sur cette machine à l'époque et donnait une furieuse envie de créer et de programmer.

La compétition entre les différents groupes de démo était aussi très stimulante... Très souvent, les limites de la machine étaient repoussées, ce qui rajoutait encore de la détermination à vouloir apprendre à programmer. Et je suis certain que j'étais loin d'être le seul à éprouver ce genre de sentiment devant mon Amiga...

C'est alors que j'entrepris de me former à l'assembleur, qui était alors le langage de prédilection de tous les coders : j'avais déniché deux cours différents ainsi que deux bouquins traitant du 68000, le tout en français. J'avais aussi réussi à trouver quelques sources asm de diverses démos. Il y avait également des articles parfois intéressants et didactiques dans certains magazines.

Malgré toute ma bonne volonté, je restais en échec : je comprenais certains trucs, mais d'autres m'échappaient... Ma compréhension de ce langage était très incomplète, et je n'arrivais à rien de bien concret.

Bien dépité, je décida d'abandonner... Même les quelques coders français que je connaissais avec leurs explications n'arrivaient pas à me faire comprendre le fonctionnement d'un CPU, en l'occurrence ici le 68000 bien sûr.

Plusieurs années après, je décide de m'y remettre mais d'une manière différente : plutôt d'une manière empirique cette fois, en mettant de côté la théorie des livres et tutoriaux que j'avais eu sous la main. Je suis alors parti du source C & asm d'un jeu, et j'y apportais quelques légères modifications ça et là pour ensuite voir le résultat après compilation... Méthode très formatrice que je recommande chaudement à tous les débutants en herbe ici !

De là et de fil en aiguille, ma connaissance en asm 68k grandit fortement : je progressais bien et comprenais de plus en plus de chose sur le fonctionnement du 68000 et de des Amiga Classics en général. Par chance, dès ce nouveau début, je cherchais déjà à optimiser le code du jeu, c'est à dire en simplifiant mes explications, de remplacer trois instructions par deux ou même une lorsque c'est possible bien entendu.

Je découvre peu à peu que le 68000 abonde d'optimisation en tout genre, et le 68060 encore plus. Il y a aussi les optimisations "systèmes" concernant "l'architecture" de l'OS... Bref, un domaine assez vaste et inexploré par d'autres s'ouvre à moi. Intrigué, je commence à désassembler plusieurs programmes divers et variés, pour en visualiser leur "squelette" pour ainsi dire... Et le Kickstart bien sûr. C'est là pétrifié que je prends conscience de la très grande faiblesse de nos compilateurs C/C++ qui produisent du code 68k très peu efficient, c'est le moins que l'on puisse dire... En effet, depuis mon premier début où quasi tous les programmes étaient codés en asm et mon second re-commencement, la majorité des applications sont devenues programmées en C sur nos Amiga Classics, toutes bien évidement compilées par des compilateurs robotiques.

Avec toutes mes connaissances et mon constat sur la plupart des programmes que je désassemble, je m'aperçois que les 68k sont des processeurs qui ont en fait été très peu étudiés à fond : ce sont en réalité des CPUs très rapides qui ont toutefois un gros point faible. En effet, il est nécessaire de très bien les connaître déjà pour ensuite utiliser du code très précis et rigoureux afin d'en obtenir le meilleur. Lorsque je raconte ces nouvelles croyances-là basées sur des faits bien réels, je n'obtiens que des moqueries et raillements : mes interlocuteurs me pensent idiot, que je leur raconte n'importe quoi en fait...

Sûr de moi, je continue tout de même mon cheminement et j'arrive de façon progressive à améliorer certaines librairies comme la graphics.library notamment... Il y a encore beaucoup à faire, je n'en suis qu'au tout début au jour d'aujourd'hui...

Bref, avec mon parcours semé d'embûches et ma passion pour l'informatique et de l'Amiga en particulier, l'envie de transmettre mon savoir dans le domaine de l'assembleur me titillait depuis longtemps.

Dans un premier temps, le but principal sur ce blog consiste surtout en une bonne explication des bases de ce langage, puisqu'avec mes cours et bouquins du début, je n'y comprenais pour ainsi dire rien... Maintenant avec le recul et l'expérience, je pige pourquoi : les auteurs partaient « de trop haut », ils négligeaient une foule d’informations basiques indispensables à la compréhension globale de ce langage…

Donc mon idée principale est plutôt de commencer par le tout commencement déjà et surtout d’éviter de mettre la charrue avant les boeufs tout en omettant volontairement l'inutile afin de facilité le plus possible la compréhension pour mes élèves…

Je pense que l’apprentissage d’une manière générale est tout comme la construction d’un édifice : un immeuble a besoin d’une base solide avec chaque brique à sa bonne place avant de pouvoir s’élever…

Voilà donc le bon résumé de l'histoire sous-jacente du blog que vous être en train de lire aujourd'hui !


Aucun commentaire: