L'ASSEMBLEUR 68000 SUR ATARI ST

Ce cours d'assembleur pourra sembler reduit de par sa taille. Il ne l'est cependant pas par son contenu! L'assembleur est le langage le plus simple qui soit, pourvu qu'il soit explique simplement ce qui n'est malheureusement pas souvent le cas. C'est un peu le pari de ces cours: vous apprendre ce qu'est l'assembleur en une quinzaine, pas plus. De toutes façons, a part grossir la sauce avec du bla-bla inutile, je ne vois pas tres bien comment faire pour que les cours durent plus de 15 leçons. Evidement, vous comprenez bien que les cours payants ont eux, tout a fait interet a faire durer le plaisir et a vous faire croire que c'est tres tres dur a comprendre et qu'il va falloir au moins 2568478 leçons si vous voulez vous en sortir!!!

Ce cours est destine au debutant, il est compose de plusieurs parties relativement courtes mais dans lesquelles TOUT EST IMPORTANT.

1. Presentation et avertissement

Pour programmer en ASM, plusieurs habitudes sont necessaires. Autant les prendre des le debut car, tres vite, ce qui apparaissait comme de petits problemes peut tourner a la catastrophe.

Tout d'abord avoir de l'ordre au niveau disquette: Les sauvegardes sont tres nombreuses et c'est vite la pagaille. Travailler avec soins: commentaires clairs et precis sur les listings, eviter les soit disant 'trucs' qu'on ne comprendra plus au bout de 3 jours, mettez quelques lignes explicatives au debut du listing...

Au niveau outil, je conseille DEVPAC pour sa facilite d'emploi, et sa doc qui, bien qu'en Anglais et suffisamment claire pour que l'on y retrouve facilement les informations.

Si vous avez un 1040 (ou plus), n'hesitez pas a demander au niveau des 'preferences' de GENST, un chargement automatique de MONST, le debugger.

Pour ce qui est des livres de chevet (et de travail), il faut bien sur faire la difference entre 2 types d'ouvrages: ceux relatifs au 68000 Motorola et ceux relatifs a l'ATARI. Il faut ABSOLUMENT un ouvrage de chaque. Attention, pour celui relatif au 68000, il ne doit pas s'agir d'un ouvrage de vulgarisation, mais d'un ouvrage technique, qui vous semblera certainement incomprehensible au debut.

Par exemple documentation du fabricant de microprocesseur (MOTOROLA ou THOMSON pour la France). Cherchez du cote des vendeurs de composants electroniques plutot que dans les magasins de micro-ordinateurs. En desespoir orientez-vous vers "Mise en oeuvre du 68000" aux editions SYBEX.

Une remarque qui devra IMPERATIVEMENT guider votre choix:

Le vocabulaire informatique est compose en tres grande partie d'abreviations. Or ce sont des abreviations de termes anglais.

Il est donc imperatif que l'ouvrage sur le 68000 donne la signification de chacune des abreviations, signification en Anglais et traduction en Français. Attention de tres nombreux ouvrages ne donnent que la traduction or autant il est difficile de se souvenir de la signification de termes tels que DATCK, BG, BGACK, MMU ou MFP, autant leurs fonctions et clairs et surtout facilement memorisable si on connait la signification de ces abreviations dans la langue original, la traduction coulant de source!

Pour l'ouvrage relatif au ST, le must consiste a se procurer chez ATARI la DOCumentation officielle pour les Developpeurs. Sinon, "la Bible" ou "le Livre du developpeur" chez Micro Application, meme s'il y subsiste quelques erreurs, est un excellent palliatif.

A part cela, n'achetez aucun autre ouvrage : "le livre du GEM", "Graphismes en ASM", "cours d'ASM" etc, ne seront que des gouffres pour votre porte-monnaie et ne vous apporteront rien.

Si, apres ces achats il vous reste quelque argent, je ne peux que vous conseiller tres fortement l'achat d'une calculatrice possedant les operations logiques (AND, OR, XOR...) et les conversions entre bases utilisees en informatique (binaire, hexadecimal...).

Je vous conseille la Texas Instrument TI34. C'est une calculatrice 'solaire' (mais qui marche avec n'importe quelle source lumineuse), qui a l'avantage d'etre simple a manipuler. Vous la trouverez a un prix variant de 99 Frs a 199 Frs (a la fnac par exemple ... ). C'est une d‚pense qui n'est pas trop elevee et qui s'averera tres vite rentable!

2. Methode de pensee d'un ordinateur

En France nous roulons A droite. C'est simple, entre dans les moeurs, et tout le monde s'en sort bien. Imaginons la conduite en Angleterre... Pour un Français il existe en fait 3 solutions:

  1. On ne lui dit rien sur ce type de conduite.
    C'est avantageux dans le sens ou notre conducteur part tout de suite sur la route, mais bien sur le premier carrefour risque de lui etre fatal.
  2. On lui re-apprend a conduire de A &ldots; Z :
    C'est long, on a l'impression de perdre son temps, mais on limite presque totalement les risques d'accidents.
  3. On dit simplement au conducteur: Attention, ici on roule a gauche.
    Celui-ci, sait conduire a droite, en le prevenant il fera attention et s'en sortira. Avantage: c'est rapide, inconvenient: un simple relachement et c'est l'accident.

Programmer, c'est comme vouloir conduire a gauche. Il suffit de penser, mais pas de penser comme nous, mais comme la machine. Conscient de votre volonte d'aller vite, c'est la methode 3 que nous allons utiliser, mais attention au relachement.

Un dernier conseil avant de vous laisser aborder le premier cours a proprement parler: l'assembleur plus que tout autre langage, et assimilable a une construction en Lego. Une enorme construction en Lego n'est pourtant qu'un assemblage de petites briques. Assembler 2 briques et passer 1 ou 2 heures pour etudier cet assemblage peut paraitre inutile. Pourtant c'est ce que nous allons faire: il y a peu de choses a apprendre mais elles sont tres importantes. On ne le repetera jamais assez: ce ne sera pas quand notre chateau de Lego d'un metre cinquante commencera a s'ecrouler qu'il faudra se dire "merde ,mes 2 petites briques du debut etaient peut etre mal fixees", car a ce moment-la, alors qu'une machine accepterait de tout reprendre des le d‚but, il y a 99% de chances pour que votre experience en ASM s'arrete la, ce qui serait dommage!

De meme, je vous deconseille fortement la chasse aux listings!

Cette pratique est tres courante entre autre sur RTEL et n'amene generalement que des ennuis! Il est de TRES LOIN preferable de passer pour un con parce qu'on ne sait pas faire un scrolling plutot que de frimer alors qu'on a juste recopie un source que nous a donne un copain! A ce petit jeu la, il y a des gagnants en basic, en C ou en Pascal mais jamais en assembleur, car lorsque vous commencerez a vouloir coller des sources entre eux et que ‡a ne marchera pas, vous serez TOTALEMENT incapable de comprendre pourquoi, et il sera trop tard pour apprendre et vous abandonnerez. Et ne dites pas non, regarder plutot 6 mois en arrière sur RTEL et souvenez vous de ceux qui faisaient alors de l'ASM, ils ont presque tous abandonnes! N'oubliez pas non plus une difference fondamentale entre un langage quelqu'il soit et l'assembleur: Il faut environ 6 mois pour apprendre le C ou le Pascal. Ensuite le temps sera passe a produire de bons algorithmes, et a taper les programmes.

En assembleur il en est tout autrement. En un mois maximum le 68000 ne devrait plus avoir de secret pour vous, par contre tout le temps qui suivra devra etre consacre a faire des recherches plus ou moins evidentes sur des 'trucs' a realiser plus vite, avec plus de couleurs etc... Un programmeur en BASIC ou en C recherche des sources pour travailler. Pas un programmeur en assembleur! Le programmeur en assembleur VA FAIRE les routines! Typiquement on va demander a un programmeur en C de faire un programme et le programmeur en C va demander au programmeur en assembleur de realiser la ou les routines soi-disant infaisables! Et bien sur pour ces routines, pas de sources de distribuees!!!! Ce que nous apprendrons donc ici, c'est a programmer comme des vrais! A chercher, a comprendre afin de pouvoir par la suite chercher tout seul.

Si vous vous attendez a trouver dans ce cours des sources entiers de scrolling, de lectures de digits ou de gestion de souris sans le GEM, vous faites fausse route! Retourner au basic que vous n'auriez jamais du quitter; Vous resterez a tout jamais ce que l'on appelle un lamer dans les demos, celui qui recopie mais ne comprend rien.

Si par contre vous voulez savoir, alors accrochez vous car les infos sont rares mais ... quel plaisir lorsqu'apres plusieurs nuits blanches vous verrez apparaitre votre premier scrolling dont vous pourrez dire : "c'est moa qui l'ai fait!!!", et la ce sera vrai!!

Dans ce cours nous ‚étudierons le 68000 mais egalement les particularites du ST: les interruptions par le MFP68901, le son (digit ou non), les manipulations graphiques, l'interface graphique Ligne A, et enfin un gros morceau, souvent critique mais toujours utilise, le GEM.

Bon courage et rendez vous au numero 2!

Le Feroce Lapin.

Retour