ASSEMBLEUR

 

 
COURS D'ASM 68000
(par le Féroce Lapin)

retour au VOLUME 1


******************************************************************
*                                                                *
*             COURS D'ASSEMBLEUR 68000 SUR ATARI ST              *
*                                                                *
*                 par Le Féroce Lapin (from 44E)                 *
*                                                                *
*                         Cours numéro 1                         *
*                                                                *
******************************************************************


Ce  cours  d'assembleur pourra sembler réduit de par sa taille. Il
ne  l'est  cependant pas par son contenu! L'assembleur est le lan-
gage  le  plus simple qui soit, pourvu qu'il soit expliqué simple-
ment 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, à  part grossir la sauce
avec  du  bla-bla  inutile, je ne vois pas très bien comment faire
pour  que  les cours durent plus de 15 jours. Evidement, vous com-
prenez  bien  que les cours payants ont eux, tout à fait intérêt à
faire  durer le plaisir et à vous faire croire que c'est très très
dur  à  comprendre  et qu'il va falloir au moins 2568478 leçons si
vous voulez vous en sortir!!!

Ce cours est destiné au débutant, il est composé de plusieurs par-
ties relativement courtes mais dans lesquelles
                       TOUT EST IMPORTANT.

                  PRESENTATION ET AVERTISSEMENT

Pour  programmer en ASM, plusieurs habitudes sont nécessaires. Au-
tant  les prendre dès le début car, très vite, ce qui apparaissait
comme de petits problèmes peut tourner à la catastrophe.

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

Au niveau outil, je conseille DEVPAC pour sa facilité 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'hésitez pas à demander au niveau
des 'préférences' de GENST, un chargement automatique de MONST, le
débugger.

Pour ce qui est des livres de chevet (et de travail), il faut bien
sur faire la différence entre 2 types d'ouvrages: ceux relatifs au
68000 Motorola  et  ceux relatifs à 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  incompréhensible  au
début.

Par  exemple  documentation du fabricant de microprocesseur (MOTO-
ROLA ou THOMSON pour la France).  Cherchez du côté des vendeurs de
composants  électroniques  plutôt  que dans les magasins de micro-
ordinateurs.  En  désespoir  orientez-vous vers "Mise en oeuvre du
68000" aux éditions SYBEX.

Une remarque qui devra IMPERATIVEMENT guider votre choix:

Le  vocabulaire  informatique  est  composé  en très grande partie
d'abréviations. Or ce sont des abréviations de termes anglais.

Il est donc impératif que l'ouvrage sur le 68000 donne la signifi-
cation  de  chacune  des abréviations, signification en Anglais et
traduction  en  Français. Attention  de  très nombreux ouvrages ne
donnent  que la traduction or autant il est difficile de se souve-
nir  de  la signification de termes tels que DATCK, BG, BGACK, MMU
ou MFP, autant leurs fonctions et clairs et surtout facilement mé-
morisable  si on connaît la signification de ces abréviations dans
la langue original, la traduction coulant de source!

Pour  l'ouvrage relatif au ST, le must consiste à se procurer chez
ATARI  la  DOCumentation  officielle pour les Développeurs. Sinon,
"la  Bible" ou  "le  Livre du développeur" chez Micro Application,
même 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, après ces achats il vous reste quelque argent,  je ne peux que
vous  conseiller  très fortement l'achat d'une calculatrice possé-
dant  les opérations logiques (AND, OR, XOR...) et les conversions
entre bases utilisées en informatique (binaire, hexadécimal...).

Je vous conseille la Texas Instrument TI34. C'est une calculatrice
'solaire' (mais  qui  marche  avec  n'importe  quelle source lumi-
neuse), qui  à l'avantage d'être simple à manipuler. Vous la trou-
verez à un prix variant de 199 Frs (magasin NASA) à 240 Frs (Camif
ou  la  Fnac).  C'est une dépense qui n'est pas trop élevée et qui
s'avérera très vite rentable!

METHODE DE PENSÉE D'UN ORDINATEUR
En  France  nous  roulons  à  droite. C'est simple, entré 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 sûr le premier carrefour risque
de lui être fatal.

2) On lui ré-apprend à conduire de A à Z :
    C'est long, on a l'impression de perdre son temps, mais on li-
mite presque totalement les risques d'accidents.

3) On  dit  simplement  au  conducteur: Attention, ici  on roule à
gauche.
    Celui-ci, sait conduire à droite, en le prévenant  il fera at-
tention  et s'en sortira. Avantage: c'est rapide, inconvénient: un
simple relâchement et c'est l'accident.

Programmer, c'est  comme  vouloir  conduire à gauche. Il suffit de
penser, mais  pas  de  penser  comme  nous, mais comme la machine.
Conscient  de  votre  volonté d'aller vite, c'est la méthode 3 que
nous allons utiliser, mais attention au relâchement.

Un  dernier conseil avant de vous laisser aborder le premier cours
à  proprement parler: l'assembleur plus que tout autre langage, et
assimilable à une construction en Lego. Une énorme construction en
Lego n'est pourtant qu'un assemblage de petites briques. Assembler
2 briques et passer 1 ou 2 heures pour étudier cet assemblage peut
paraître  inutile. Pourtant c'est ce que nous allons faire: il y a
peu  de choses à apprendre mais elles sont très importantes. On ne
le  répétera  jamais  assez: ce ne sera pas quand notre château de
Lego  d'un mètre cinquante commencera à s'écrouler qu'il faudra se
dire  "merde ,mes 2 petites briques du début étaient peut être mal
fixées", car  à  ce moment-là, alors qu'une machine accepterait de
tout  reprendre dès le début, il y a 99% de chances pour que votre
expérience en ASM s'arrête là, ce qui serait dommage!

De même, je vous déconseille fortement la chasse aux listings!

Cette  pratique  est très courante entre autre sur RTEL et n'amène
généralement  que  des  ennuis! Il  est de TRES LOIN préférable de
passer pour un con parce qu'on ne sait pas faire un scrolling plu-
tôt que de frimer alors qu'on a juste recopié un source que nous a
donné  un copain! A ce petit jeu là, il y a des gagnants en basic,
en C ou en Pascal mais jamais en assembleur, car lorsque vous com-
mencerez  à vouloir coller des sources entre eux et que ça ne mar-
chera pas, vous serez TOTALEMENT incapable de comprendre pourquoi,
et  il  sera  trop tard pour apprendre et vous abandonnerez. Et ne
dites  pas non, regarder plutôt 6 mois en arrière sur RTEL et sou-
venez  vous  de ceux qui faisaient alors de l'ASM, ils ont presque
tous  abandonnés! N'oubliez  pas non plus une différence fondamen-
tale  entre un langage quelqu'il soit et l'assembleur: Il faut en-
viron  6 mois  pour  apprendre le C ou le Pascal. Ensuite le temps
sera  passé  à  produire  de bons algorithmes, et à taper les pro-
grammes.

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 être consacré à faire des recherches
plus ou moins évidentes sur des 'trucs' à réaliser 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  à  un  programmeur en C de faire un programme et le pro-
grammeur en C va demander au programmeur en assembleur de réaliser
la  ou  les  routines soi-disant infaisables! Et bien sur pour ces
routines, pas  de  sources  de distribuées!!!! Ce que nous appren-
drons  donc ici, c'est à programmer comme des vrais! A chercher, à
comprendre afin de pouvoir par la suite chercher tout seul.

Si  vous vous attendez à 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  dû  quitter; Vous  resterez a tout jamais ce que
l'on  appelle  un  lamer dans les démos, celui qui recopie mais ne
comprend rien.

Si par contre vous voulez savoir, alors accrochez vous car les in-
fos  sont rares mais ... quel plaisir lorsqu'après plusieurs nuits
blanches  vous verrez apparaître votre premier scrolling dont vous
pourrez dire : "c'est moa qui l'ai fait!!!", et là ce sera vrai!!

Dans ce cours nous étudierons le 68000 mais également les particu-
larités 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 critiqué mais toujours utilisé,
le GEM.
                     Bon courage !