COURS 1.TXT/fr
Jump to navigation
Jump to search
******************************************************************
* *
* 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 !
Back to ASM_Tutorial