COURS210.TXT/fr: Difference between revisions

From Atari Wiki
Jump to navigation Jump to search
No edit summary
No edit summary
Line 4: Line 4:
 
* COURS D'ASSEMBLEUR 68000 SUR ATARI ST *
 
* COURS D'ASSEMBLEUR 68000 SUR ATARI ST *
 
* *
 
* *
* par Le F�roce Lapin (from 44E) *
+
* par Le Féroce Lapin (from 44E) *
 
* *
 
* *
* Seconde s�rie *
+
* Seconde série *
 
* *
 
* *
* Cours num�ro 10 *
+
* Cours numéro 10 *
 
******************************************************************
 
******************************************************************
   
 
Avant de vous fournir la bibliographie tant attendue, je vais vous
 
Avant de vous fournir la bibliographie tant attendue, je vais vous
parler tr�s succinctement des interruptions. Le principe est nor-
+
parler très succinctement des interruptions. Le principe est nor-
malement connu (sinon reportez vous au cours num�ro 5 de la pre-
+
malement connu (sinon reportez vous au cours numéro 5 de la pre-
mi�re s�rie!). Il y a pourtant un sujet qui m�rite un peu plus
+
mière série!). Il y a pourtant un sujet qui mérite un peu plus
 
d'attention: le MFP68901. Il s'agit d'un circuit reconnu par le
 
d'attention: le MFP68901. Il s'agit d'un circuit reconnu par le
 
68000 comme ayant un niveau d'interruption de 6 (voir feuille
 
68000 comme ayant un niveau d'interruption de 6 (voir feuille
fournie avec le cours 1 et intitul�e "TABLEAU DES VECTEURS D'INTER
+
fournie avec le cours 1 et intitulée "TABLEAU DES VECTEURS D'INTER
 
RUPTIONS DU 68000 ET DU 68901"). En interne ce circuit est capable
 
RUPTIONS DU 68000 ET DU 68901"). En interne ce circuit est capable
de g�rer 16 niveaux d'interruption, avec pour chaque niveau une
+
de gérer 16 niveaux d'interruption, avec pour chaque niveau une
adresse associ�e ($100-$13C pour le ST). Voici un petit bout de
+
adresse associée ($100-$13C pour le ST). Voici un petit bout de
listing destin� vous montrer comment placer sa propre routine
+
listing destiné à vous montrer comment placer sa propre routine
 
dans le Timer A. Il faut d'abord bloquer les interruptions en
 
dans le Timer A. Il faut d'abord bloquer les interruptions en
pla�ant le SR $2700, sauver les registres du MFP, placer sa
+
plaçant le SR à $2700, sauver les registres du MFP, placer sa
routine et ensuite redescendre le niveau d'interruption son ni-
+
routine et ensuite redescendre le niveau d'interruption à son ni-
veau habituel sur le ST, c'est dire $2300. Ceci se fait bien
+
veau habituel sur le ST, c'est à dire $2300. Ceci se fait bien
�videmment en mode Superviseur, mode auquel on acc�de avec Gemdos
+
évidemment en mode Superviseur, mode auquel on accède avec Gemdos
 
$20.
 
$20.
   
Line 40: Line 40:
 
MOVE.L #MY_TIMEA,$134 place nouvelle routine
 
MOVE.L #MY_TIMEA,$134 place nouvelle routine
   
CLR.B $FFFFFA09 emp�che interrupt 0-7
+
CLR.B $FFFFFA09 empêche interrupt 0-7
 
CLR.B $FFFFFA15 masque interrupt 0-7
 
CLR.B $FFFFFA15 masque interrupt 0-7
 
MOVE.B #%00100000,$FFFA07 OK interrupt 13 (timer A)
 
MOVE.B #%00100000,$FFFA07 OK interrupt 13 (timer A)
 
MOVE.B #%00100000,$FFFA13 OK aussi pour son masque
 
MOVE.B #%00100000,$FFFA13 OK aussi pour son masque
MOVE.B #7,$FFFFFA19 r�gle TACR
+
MOVE.B #7,$FFFFFA19 règle TACR
 
MOVE.B #12,$FFFFFA1F et TADR (1khz)
 
MOVE.B #12,$FFFFFA1F et TADR (1khz)
 
BCLR #3,$FFFFFA17 automatic end of interupt
 
BCLR #3,$FFFFFA17 automatic end of interupt
Line 60: Line 60:
   
 
* Ma routine Timer A
 
* Ma routine Timer A
* Ne pas oublier de sauver les registres qui sont utilis�s
+
* Ne pas oublier de sauver les registres qui sont utilisés
 
* et de terminer par un RTE.
 
* et de terminer par un RTE.
   
Line 81: Line 81:
   
   
Je vais simplement vous d�crire les registres IERA, IMRA, IPRA
+
Je vais simplement vous décrire les registres IERA, IMRA, IPRA
etc... du MFP. Pour de plus amples d�tails, consultez la Bible ST,
+
etc... du MFP. Pour de plus amples détails, consultez la Bible ST,
le Livre du D�veloppeur ou la doc officielle ATARI (l'id�al!), le
+
le Livre du Développeur ou la doc officielle ATARI (l'idéal!), le
but de ces cours n'�tant pas d'�tre une recopie des infos que vous
+
but de ces cours n'étant pas d'être une recopie des infos que vous
 
pouvez trouver autre part.
 
pouvez trouver autre part.
   
Tout d'abord les 16 niveaux du MFP sont class�s en 2 groupes. Le A
+
Tout d'abord les 16 niveaux du MFP sont classés en 2 groupes. Le A
concerne les niveaux 15 8 et le B les niveaux 7 0. Attention,
+
concerne les niveaux 15 à 8 et le B les niveaux 7 à 0. Attention,
ici A et B n'ont rien voir avec les Timers A et B!!! Pour chaque
+
ici A et B n'ont rien à voir avec les Timers A et B!!! Pour chaque
groupe (A ou B) on trouve une s�rie de registres. Dans chacun de
+
groupe (A ou B) on trouve une série de registres. Dans chacun de
ces registres les interruptions sont repr�sent�es par un bit.
+
ces registres les interruptions sont représentées par un bit.
 
Voyons ces registres:
 
Voyons ces registres:
   
 
IERA ($FFFFFA07) et IERB ($FFFFFA09)
 
IERA ($FFFFFA07) et IERB ($FFFFFA09)
 
Interrupt Enable Register A (ou B)
 
Interrupt Enable Register A (ou B)
En pla�ant 0 le bit correspondant une interruption, on
+
En plaçant à 0 le bit correspondant à une interruption, on
 
interdit celle-ci. Elle ne sera aucunement prise en compte par le
 
interdit celle-ci. Elle ne sera aucunement prise en compte par le
 
MFP.
 
MFP.
Line 102: Line 102:
 
IPRA ($FFFFFA0B) et IPRB ($FFFFFA0D)
 
IPRA ($FFFFFA0B) et IPRB ($FFFFFA0D)
 
Interrupt Pending Register A (ou B)
 
Interrupt Pending Register A (ou B)
Lorsqu'une interruption arrive, le MFP met 1 le bit correspon-
+
Lorsqu'une interruption arrive, le MFP met à 1 le bit correspon-
dant celle-ci dans IPRA (ou IPRB). Cela signale qu'une interrup-
+
dant à celle-ci dans IPRA (ou IPRB). Cela signale qu'une interrup-
tion est en attente. En effet cause du syst�me de priorit�, il
+
tion est en attente. En effet à cause du système de priorité, il
 
est possible qu'une interruption de haut niveau soit en cours et
 
est possible qu'une interruption de haut niveau soit en cours et
que pendant ce temps une interruption plus faible se d�clenche. Il
+
que pendant ce temps une interruption plus faible se déclenche. Il
faut donc noter cette volont� de se d�clencher, afin qu'une fois
+
faut donc noter cette volonté de se déclencher, afin qu'une fois
 
fini le traitement de l'interruption prioritaire, le traitement de
 
fini le traitement de l'interruption prioritaire, le traitement de
 
la plus faible puisse s'effectuer.
 
la plus faible puisse s'effectuer.
   
Il est bien s�r possible de lire IPRA et IPRB afin de d�terminer
+
Il est bien sûr possible de lire IPRA et IPRB afin de déterminer
 
si une interruption est en attente. Il est aussi possible de met-
 
si une interruption est en attente. Il est aussi possible de met-
tre 0 le bit d'une interruption en attente, afin que celle-ci ne
+
tre à 0 le bit d'une interruption en attente, afin que celle-ci ne
se d�clenche pas. Par contre, le fait de mettre un bit 1 dans ce
+
se déclenche pas. Par contre, le fait de mettre un bit à 1 dans ce
 
registre n'a aucun effet. On se rend ainsi compte que les
 
registre n'a aucun effet. On se rend ainsi compte que les
possiblit�s deviennent d�j� assez nombreuses. Une interruption
+
possiblités deviennent déjà assez nombreuses. Une interruption
peut ainsi en scruter une autre de fa�on obtenir un cycle
+
peut ainsi en scruter une autre de façon à obtenir un cycle
irr�gulier d'interruption.
+
irrégulier d'interruption.
   
Il est en plus possible de laisser une interruption se d�clencher
+
Il est en plus possible de laisser une interruption se déclencher
 
juste 'pour voir'. ceci peut se faire en la laissant valide par
 
juste 'pour voir'. ceci peut se faire en la laissant valide par
 
IERA mais en la masquant avec IMRA.
 
IERA mais en la masquant avec IMRA.
Line 128: Line 128:
 
Interrupt Mask Register A (et B)
 
Interrupt Mask Register A (et B)
   
Le masquage emp�che une interruption de se d�clencher bien qu'elle
+
Le masquage empêche une interruption de se déclencher bien qu'elle
soit autoris�e par IERA ou IERB. Ceci peut permettre par exemple
+
soit autorisée par IERA ou IERB. Ceci peut permettre par exemple à
une interruption de niveau 4 de ne pas �tre g�n�e par une inter-
+
une interruption de niveau 4 de ne pas être gênée par une inter-
 
ruption de niveau 6. Pour cela, il lui suffit de masquer celle-ci
 
ruption de niveau 6. Pour cela, il lui suffit de masquer celle-ci
durant son ex�cution.
+
durant son exécution.
   
   
Line 138: Line 138:
 
Vector Register
 
Vector Register
   
Cet octet est un peu sp�cial. Dans notre cas seul le bit 3 nous
+
Cet octet est un peu spécial. Dans notre cas seul le bit 3 nous
int�resse, les autres servant au MFP coder le num�ro de vecteur
+
intéresse, les autres servant au MFP à coder le numéro de vecteur
qui correspond la source d'interruption. Le bit 3 sert indi-
+
qui correspond à la source d'interruption. Le bit 3 sert à indi-
 
quer au MFP s'il est en mode Software End of Interrupt ou en mode
 
quer au MFP s'il est en mode Software End of Interrupt ou en mode
Automatic End of Interrupt (mode par d�faut). Voyons les explica-
+
Automatic End of Interrupt (mode par défaut). Voyons les explica-
 
tions avec les registres suivants:
 
tions avec les registres suivants:
   
Line 149: Line 149:
 
Interrupt in Service Register A (ou B)
 
Interrupt in Service Register A (ou B)
   
Un bit 1 indique que l'interruption est en cours de traitement.
+
Un bit à 1 indique que l'interruption est en cours de traitement.
Si nous sommes en mode Software End of Interrupt, c'est la fin
+
Si nous sommes en mode Software End of Interrupt, c'est à la fin
 
de notre routine en interruption que nous devons indiquer, nous
 
de notre routine en interruption que nous devons indiquer, nous
m�me que notre routine est finie. Pour cela il faut mettre 0 le
+
même que notre routine est finie. Pour cela il faut mettre à 0 le
bit correspondant notre interruption, dans ISRA (ou ISRB). Tant
+
bit correspondant à notre interruption, dans ISRA (ou ISRB). Tant
que ce bit est 1, les interruptions moins prioritaires ne peu-
+
que ce bit est à 1, les interruptions moins prioritaires ne peu-
vent pas venir nous d�ranger. Par contre, d�s que le traitement de
+
vent pas venir nous déranger. Par contre, dès que le traitement de
 
notre interruption commence, son bit IPRA est remis automatique-
 
notre interruption commence, son bit IPRA est remis automatique-
ment 0, et pendant le traitement de cette interruption, une au-
+
ment à 0, et pendant le traitement de cette interruption, une au-
tre de m�me niveau peut tr�s bien intervenir. Le bit d'IPRA sera
+
tre de même niveau peut très bien intervenir. Le bit d'IPRA sera
donc remis 1, mais cette nouvelle interruption ne sera trait�e
+
donc remis à 1, mais cette nouvelle interruption ne sera traitée
que lorsque la premi�re aura remise le bit ISRA 0.
+
que lorsque la première aura remise le bit ISRA à 0.
   
D'un autre c�t�, si nous sommes en mode Automatic End of Inter-
+
D'un autre côté, si nous sommes en mode Automatic End of Inter-
rupt, d�s que notre routine s'ex�cute, le MFP met, bien s�r, son
+
rupt, dès que notre routine s'exécute, le MFP met, bien sûr, son
bit d'IPRA 0 (puisque l'interrupt n'est plus en attente), mais
+
bit d'IPRA à 0 (puisque l'interrupt n'est plus en attente), mais
met �galement son bit ISRA 0 ! Il est alors possible que d'au-
+
met également son bit ISRA à 0 ! Il est alors possible que d'au-
tres interruptions plus faibles viennent interrompre la premi�re,
+
tres interruptions plus faibles viennent interrompre la première,
m�me si elle n'est pas termin�e.
+
même si elle n'est pas terminée.
   
Vous voyez qu'avec tout ceci, il est possible de jongler all�gre-
+
Vous voyez qu'avec tout ceci, il est possible de jongler allègre-
 
ment en envisageant les cas les plus tordus!!! Concernant les ti-
 
ment en envisageant les cas les plus tordus!!! Concernant les ti-
 
mers A, B, C et D, voici juste les adresses permettant de les
 
mers A, B, C et D, voici juste les adresses permettant de les
 
adresser, les informations fournies dans la bible ou le livre du
 
adresser, les informations fournies dans la bible ou le livre du
d�veloppeur �tant largement suffisante. Si par hasard vous �tiez
+
développeur étant largement suffisante. Si par hasard vous étiez
avides d'informations sur ce circuit, pr�cipitez vous chez un li-
+
avides d'informations sur ce circuit, précipitez vous chez un li-
braire sp�cialis� dans la "litt�rature" �lectronique et demandez
+
braire spécialisé dans la "littérature" électronique et demandez
 
un ouvrage sur le MK68901. Passez aussi chez le pharmacien prendre
 
un ouvrage sur le MK68901. Passez aussi chez le pharmacien prendre
 
quelques tubes d'aspirine....
 
quelques tubes d'aspirine....
Line 181: Line 181:
 
Pour terminer ces cours d'assembleur, voici une petite bibliogra-
 
Pour terminer ces cours d'assembleur, voici une petite bibliogra-
 
phie afin que vous puissiez diriger vos recherches vers les sujets
 
phie afin que vous puissiez diriger vos recherches vers les sujets
qui vous int�ressent.
+
qui vous intéressent.
   
 
Le Langage Machine sur ST (Ed. Micro App). Assez inutile comme
 
Le Langage Machine sur ST (Ed. Micro App). Assez inutile comme
bouquin! Tr�s tr�s peu d'informations, non vraiment, ce n'est pas
+
bouquin! Très très peu d'informations, non vraiment, ce n'est pas
 
un bon achat.
 
un bon achat.
   
 
La bible ST (Ed. Micro-App). Devenue assez introuvable, dommage!
 
La bible ST (Ed. Micro-App). Devenue assez introuvable, dommage!
 
Pas mal de bonne infos, bien suffisant dans la plupart des cas. A
 
Pas mal de bonne infos, bien suffisant dans la plupart des cas. A
�t� remplac� par le Livre du D�veloppeur.
+
été remplacé par le Livre du Développeur.
   
Trucs et Astuces (Ed. Micro-App). A �viter absolument! Les pro-
+
Trucs et Astuces (Ed. Micro-App). A éviter absolument! Les pro-
grammes r�alis�s en suivant ces conseils seront s�rement incompa-
+
grammes réalisés en suivant ces conseils seront sûrement incompa-
tibles d�s qu'il y aura changement de TOS.
+
tibles dès qu'il y aura changement de TOS.
   
Le Livre du D�veloppeur (Tome 1 et 2) (Ed. Micro App) Si vous
+
Le Livre du Développeur (Tome 1 et 2) (Ed. Micro App) Si vous
n'avez pas acc�s la doc. pour les d�veloppeurs ayant l'agr�ment
+
n'avez pas accès à la doc. pour les développeurs ayant l'agrément
 
Atari, c'est le bouquin qu'il vous faut. On peut regretter les di-
 
Atari, c'est le bouquin qu'il vous faut. On peut regretter les di-
 
zaines de pages contenant le listing du BIOS des STF et les autres
 
zaines de pages contenant le listing du BIOS des STF et les autres
dizaines de pages contenant le BIOS du M�ga ST. Cela fait un peu
+
dizaines de pages contenant le BIOS du Méga ST. Cela fait un peu
 
remplissage: soit on a le niveau en assembleur pour y comprendre
 
remplissage: soit on a le niveau en assembleur pour y comprendre
 
quelque chose et alors on a le niveau pour suivre le BIOS avec
 
quelque chose et alors on a le niveau pour suivre le BIOS avec
MONST, soit, de toute fa�on, on n'y comprend rien et ce n'est pas
+
MONST, soit, de toute façon, on n'y comprend rien et ce n'est pas
 
parce qu'on a le listing sous les yeux que cela va changer quelque
 
parce qu'on a le listing sous les yeux que cela va changer quelque
 
chose. Enfin, c'est mon avis, et comme, en plus, le listing n'est
 
chose. Enfin, c'est mon avis, et comme, en plus, le listing n'est
valable que pour les mod�les cit�s, si vous vous y fiez pour
+
valable que pour les modèles cités, si vous vous y fiez pour
"d�couvrir" de nouvelles adresses vous risquez fort d'�tre surpris
+
"découvrir" de nouvelles adresses vous risquez fort d'être surpris
avec les machines plus r�centes ...
+
avec les machines plus récentes ...
   
 
Le livre du GEM sur Atari ST (Ed. Micro App). Si vous pensez ap-
 
Le livre du GEM sur Atari ST (Ed. Micro App). Si vous pensez ap-
prendre programmer GEM avec �a, vous courrez la catastrophe.
+
prendre à programmer GEM avec ça, vous courrez à la catastrophe.
Le probl�me du GEM c'est qu'il est utilisable en assembleur
+
Le problème du GEM c'est qu'il est utilisable en assembleur à
 
condition de se servir des macros, sinon c'est beaucoup trop
 
condition de se servir des macros, sinon c'est beaucoup trop
lourd. Or dans un livre commercialis�, il est impossible de se
+
lourd. Or dans un livre commercialisé, il est impossible de se
borner un seul assembleur. Ceci fait que les auteurs ont tout
+
borner à un seul assembleur. Ceci fait que les auteurs ont tout
d�cortiqu� avec les appels directs au TRAP #2, et que cela devient
+
décortiqué avec les appels directs au TRAP #2, et que cela devient
totalement incompr�hensible pour le d�butant. Par contre, les
+
totalement incompréhensible pour le débutant. Par contre, les
fonctions y sont relativement bien d�taill�es, et, si vous savez
+
fonctions y sont relativement bien détaillées, et, si vous savez
d�j� ce que vous cherchez, ce livre sera un bon outil. On peut,
+
déjà ce que vous cherchez, ce livre sera un bon outil. On peut,
 
simplement, regretter quelques absence comme les fonctions Escape
 
simplement, regretter quelques absence comme les fonctions Escape
 
du GEM et quelques fonctions de l'AES. A noter que ce livre est
 
du GEM et quelques fonctions de l'AES. A noter que ce livre est
repris 99% dans le Livre du D�veloppeur.
+
repris à 99% dans le Livre du Développeur.
   
Doc GFA 3.00. L�, c'est le bon truc! En effet dans les derni�res
+
Doc GFA 3.00. , c'est le bon truc! En effet dans les dernières
 
pages de la doc de ce BASIC, vous trouverez la liste de toutes les
 
pages de la doc de ce BASIC, vous trouverez la liste de toutes les
 
fonctions GEMDOS, BIOS et XBIOS (il manque la fonction GEMDOS $20
 
fonctions GEMDOS, BIOS et XBIOS (il manque la fonction GEMDOS $20
permettant de passer en Superviseur, �tant donn� qu'elle est
+
permettant de passer en Superviseur, étant donné qu'elle est
 
inaccessible en GFA), les codes ASCII, les codes clavier et quel-
 
inaccessible en GFA), les codes ASCII, les codes clavier et quel-
 
ques pages avant, une bonne liste des fonctions AES. Je dois
 
ques pages avant, une bonne liste des fonctions AES. Je dois
avouer que j'ai photocopi� ces quelques pages et qu'elles me ser-
+
avouer que j'ai photocopié ces quelques pages et qu'elles me ser-
 
vent bien souvent: les informations sont suffisantes dans le plu-
 
vent bien souvent: les informations sont suffisantes dans le plu-
part des cas, et surtout tr�s faciles trouver, ce qui n'est pas
+
part des cas, et surtout très faciles à trouver, ce qui n'est pas
le cas par exemple du Livre du GEM qui ne comprend m�me pas d'in-
+
le cas par exemple du Livre du GEM qui ne comprend même pas d'in-
 
dex des fonctions !!!
 
dex des fonctions !!!
   
A noter que certaines fonctions du GEM existent dans la biblioth�-
+
A noter que certaines fonctions du GEM existent dans la bibliothè-
 
que interne du GFA mais ne sont pas disponibles dans celle de DEV-
 
que interne du GFA mais ne sont pas disponibles dans celle de DEV-
PACK. C'est le cas de Form_Button et Form_Keybd. Et c'est g�nant!
+
PACK. C'est le cas de Form_Button et Form_Keybd. Et c'est gênant!
En effet au d�but Form_do n'existait pas. Les gens de Digital Re-
+
En effet au début Form_do n'existait pas. Les gens de Digital Re-
search ont donc d�cid� de fabriquer de toutes pi�ces cette fonc-
+
search ont donc décidé de fabriquer de toutes pièces cette fonc-
tion partir de Form_Keybd et Fomr_button, et ont diffus� le
+
tion à partir de Form_Keybd et Fomr_button, et ont diffusé le
 
source en C. Au bout d'un moment, les programmeurs n'ont plus uti-
 
source en C. Au bout d'un moment, les programmeurs n'ont plus uti-
lis� que Form_Do et nous sommes tomb�s dans la routine de gestion
+
lisé que Form_Do et nous sommes tombés dans la routine de gestion
 
de formulaires que nous connaissons actuellement.
 
de formulaires que nous connaissons actuellement.
   
Si vous voulez faire votre propre Form_do, plus �volu� il "suffit"
+
Si vous voulez faire votre propre Form_do, plus évolué il "suffit"
de reprendre Form_Keybd et Form_button pour recr�er Form_do. Mal-
+
de reprendre Form_Keybd et Form_button pour recréer Form_do. Mal-
heureusement ces deux fonctions sont tomb�es dans les oubliettes
+
heureusement ces deux fonctions sont tombées dans les oubliettes
 
et pour les avoir pffuuuuuttt!!!
 
et pour les avoir pffuuuuuttt!!!
   
Vous voulez conna�tre leur opcode et les param�tres ? Facile comme
+
Vous voulez connaître leur opcode et les paramètres ? Facile comme
 
tout! Si vous avez bien suivi ces cours, vous savez plein de chose
 
tout! Si vous avez bien suivi ces cours, vous savez plein de chose
sur le GEM (o� se place l'opcode d'une fonction, o� est inscrit le
+
sur le GEM ( se place l'opcode d'une fonction, est inscrit le
nombre de param�tres etc... et bien vous lancez AMonst, puis vous
+
nombre de paramètres etc... et bien vous lancez AMonst, puis vous
 
faites un petit bout de GFA qui appelle Form_keybd en affichant au
 
faites un petit bout de GFA qui appelle Form_keybd en affichant au
pr�alable sur l'�cran l'adresse du tableau AES, et qui attend en-
+
préalable sur l'écran l'adresse du tableau AES, et qui attend en-
suite un appui sur une touche. Tout ceci se passe sous l'interpr�-
+
suite un appui sur une touche. Tout ceci se passe sous l'interpré-
teur du GFA bien s�r! D�s que vous �tes sur l'attente d'un appui
+
teur du GFA bien sûr! Dès que vous êtes sur l'attente d'un appui
touche, vous d�clenchez AMONST (shift+alternate+help) et hop, la
+
touche, vous déclenchez AMONST (shift+alternate+help) et hop, la
grande recherche commence. Vous faites de m�me avec Form_button,
+
grande recherche commence. Vous faites de même avec Form_button,
et le tour est jou�. Courage, ce n'est pas bien dur, et cela fait
+
et le tour est joué. Courage, ce n'est pas bien dur, et cela fait
 
un excellent exercice!
 
un excellent exercice!
   
 
Mise en oeuvre du 68000 (Ed. Sybex) Excellent bouquin, traitant du
 
Mise en oeuvre du 68000 (Ed. Sybex) Excellent bouquin, traitant du
68000 en g�n�ral. Ne vous attendez pas y trouver des adresses
+
68000 en général. Ne vous attendez pas à y trouver des adresses
syst�me pour votre ST. On parle, ici, cycles d'horloges, modes
+
système pour votre ST. On parle, ici, cycles d'horloges, modes
 
d'adressage etc...
 
d'adressage etc...
   
 
Implantation des fonctions usuelles en 68000 (Ed. Masson, par
 
Implantation des fonctions usuelles en 68000 (Ed. Masson, par
Fran�ois BRET). Comment faire des sinus, des cosinus, des trans-
+
François BRET). Comment faire des sinus, des cosinus, des trans-
form�es de Fourier etc.. . N'est pas vendu avec l'aspirine ni le
+
formées de Fourier etc.. . N'est pas vendu avec l'aspirine ni le
caf�, mais s'av�re indispensable, si vous vous attaquez aux pro-
+
café, mais s'avère indispensable, si vous vous attaquez aux pro-
bl�mes de trigo en ASM. Seulement 191Frs, une mis�re! (Merci
+
blèmes de trigo en ASM. Seulement 191Frs, une misère! (Merci à
Shizuka de m'avoir fourni la r�f�rence de cet ouvrage!!!!!)
+
Shizuka de m'avoir fourni la référence de cet ouvrage!!!!!)
   
STATION INFORMATIQUE 2 rue Pi�mont�si 75018 PARIS
+
STATION INFORMATIQUE 2 rue Piémontési 75018 PARIS
t�l:(1)42.55.14.26
+
tél:(1)42.55.14.26
Excellent catalogue de Dom-Pubs. Avant de chercher pirater des
+
Excellent catalogue de Dom-Pubs. Avant de chercher à pirater des
 
softs divers sans en avoir la doc, jetez un coup d'oeil sur leur
 
softs divers sans en avoir la doc, jetez un coup d'oeil sur leur
catalogue. De nombreuses petites choses sont y d�couvrir (sour-
+
catalogue. De nombreuses petites choses sont à y découvrir (sour-
ces divers en ASM, utilitaires de d�buggage etc...) Si vous �tes
+
ces divers en ASM, utilitaires de débuggage etc...) Si vous êtes
un adepte de l'�mulation Mac, dans les dom-pub de cette machine se
+
un adepte de l'émulation Mac, dans les dom-pub de cette machine se
trouve le pack Cyclan, un assembleur Mac avec son �diteur etc...
+
trouve le pack Cyclan, un assembleur Mac avec son éditeur etc...
Bien sympa pour d�couvrir cette autre machine, �quip�e elle aussi
+
Bien sympa pour découvrir cette autre machine, équipée elle aussi
 
d'un 68000.
 
d'un 68000.
   
Les ST Mags fourmillaient �galement de trucs divers, en tout cas
+
Les ST Mags fourmillaient également de trucs divers, en tout cas
surtout dans les anciens num�ros mon avis...
+
surtout dans les anciens numéros à mon avis...
   
 
Voici une petite liste non-limitative...
 
Voici une petite liste non-limitative...
   
Int�gration d'une ressource en GFA (46)
+
Intégration d'une ressource en GFA (46)
 
Form Exdo (46)
 
Form Exdo (46)
 
Echantillons sur ST (27,28,29,30,31,35) (En GFA avec de l'assem-
 
Echantillons sur ST (27,28,29,30,31,35) (En GFA avec de l'assem-
 
bleur, mais le GFA on ne le sent qu'un tout petit peu...)
 
bleur, mais le GFA on ne le sent qu'un tout petit peu...)
   
Scrolling en GFA (31 45 sauf num�ro 37 et 44) M�me remarque que
+
Scrolling en GFA (31 à 45 sauf numéro 37 et 44) Même remarque que
 
pour les digits!!!
 
pour les digits!!!
   
 
Gestion des disquettes en GFA (13,14,15,16)
 
Gestion des disquettes en GFA (13,14,15,16)
   
Programmer GEM (6 30 environ) Super! Tout en C mais les appels
+
Programmer GEM (6 à 30 environ) Super! Tout en C mais les appels
sont les m�mes et la syntaxe identique celle de la biblio DEV-
+
sont les mêmes et la syntaxe identique à celle de la biblio DEV-
PACK! Faites vite une recherche de vos vieux num�ros de ST Mag car
+
PACK! Faites vite une recherche de vos vieux numéros de ST Mag car
 
pour apprendre le GEM c'est extra!!!
 
pour apprendre le GEM c'est extra!!!
   
 
Animation en 3D (45,46,49) Pour le moment le dernier article n'est
 
Animation en 3D (45,46,49) Pour le moment le dernier article n'est
pas sorti... Esp�rons que cela ne fera pas comme le listing per-
+
pas sorti... Espérons que cela ne fera pas comme le listing per-
mettant de booter sur une cartouche....Bien clair, sympa, id�al
+
mettant de booter sur une cartouche....Bien clair, sympa, idéal
 
pour commencer la 3D.
 
pour commencer la 3D.
   
Pour les coprocesseurs, 2 articles dans les num�ros 31 et 32.
+
Pour les coprocesseurs, 2 articles dans les numéros 31 et 32.
   
Dans le d�funt First (1ST) il y avait quelques trucs sympa sur le
+
Dans le défunt First (1ST) il y avait quelques trucs sympa sur le
MIDI, le d�compactage des images DEGAS, la cr�ation de ram-disque
+
MIDI, le décompactage des images DEGAS, la création de ram-disque
 
et de spooler d'imprimante.
 
et de spooler d'imprimante.
   
 
Atari Mag revient en force en ce moment.
 
Atari Mag revient en force en ce moment.
   
Tr�s bon articles sur la programmation graphique du STE. Cela per-
+
Très bon articles sur la programmation graphique du STE. Cela per-
met de se faire une id�e sur le BLITTER, les 4096 couleurs etc...
+
met de se faire une idée sur le BLITTER, les 4096 couleurs etc...
 
C'est en BASIC mais la traduction est facile. (21,22).
 
C'est en BASIC mais la traduction est facile. (21,22).
   
Etant dans la confidence, je peux vous informer �galement que dans
+
Etant dans la confidence, je peux vous informer également que dans
les prochains num�ros d'Atari Mag vous trouverez des articles sur
+
les prochains numéros d'Atari Mag vous trouverez des articles sur
diff�rents sujets avec sources en ASM et en GFA et que ce type
+
différents sujets avec sources en ASM et en GFA et que ce type
 
d'article devrait durer pas mal de temps.
 
d'article devrait durer pas mal de temps.
   
Bon, en r�sum�, achetez tous les mois ST Mag et Atari Mag. Si be-
+
Bon, en résumé, achetez tous les mois ST Mag et Atari Mag. Si be-
soin est, achetez les plusieurs, mais faire un gros tas de tou-
+
soin est, achetez les à plusieurs, mais faire un gros tas de tou-
 
tes ces revues car c'est une mine d'information importante. Bien
 
tes ces revues car c'est une mine d'information importante. Bien
souvent les questions qui sont pos�es sur RTEL par exemple trou-
+
souvent les questions qui sont posées sur RTEL par exemple trou-
vent leur r�ponse dans une lecture des vieux num�ros! Quelques
+
vent leur réponse dans une lecture des vieux numéros! Quelques
 
bons classeurs, des intercalaires et vous aurez une documentation
 
bons classeurs, des intercalaires et vous aurez une documentation
�norme pour pas tr�s cher.
+
énorme pour pas très cher.
   
 
Je terminerai ces cours en renouvelant l'avertissement concernant
 
Je terminerai ces cours en renouvelant l'avertissement concernant
la chasse aux listings! Il est pr�f�rable d'avoir quelques bou-
+
la chasse aux listings! Il est préférable d'avoir quelques bou-
quins et des notes sur papier plut�t que 10 m�gas de sources au-
+
quins et des notes sur papier plutôt que 10 mégas de sources au-
quel on ne comprend pas grand chose, et qui de, toute fa�on, sont
+
quel on ne comprend pas grand chose, et qui de, toute façon, sont
assez malcommodes consulter par rapport des informations
+
assez malcommodes à consulter par rapport à des informations
�crites!
+
écrites!
   
Pour ce qui est des programmes assez gros, pr�parez quelques
+
Pour ce qui est des programmes assez gros, préparez quelques
feuilles c�t� de vous, pour y noter les noms des routines, des
+
feuilles à côté de vous, pour y noter les noms des routines, des
 
labels, des variables etc... vous vous rendrez vite compte que la
 
labels, des variables etc... vous vous rendrez vite compte que la
principale difficult� de l'assembleur r�side dans le fait que les
+
principale difficulté de l'assembleur réside dans le fait que les
listings sont tr�s tr�s longs et qu'il est difficile de s'y d�pla-
+
listings sont très très longs et qu'il est difficile de s'y dépla-
 
cer pour chercher quelque chose. Programmez proprement, soyez
 
cer pour chercher quelque chose. Programmez proprement, soyez
clairs et �vitez si possible les bidouilles. Commentez abondamment
+
clairs et évitez si possible les bidouilles. Commentez abondamment
 
vos sources car dans 6 mois lorsqu'il faudra faire une petite mo-
 
vos sources car dans 6 mois lorsqu'il faudra faire une petite mo-
dification, vous verrez la diff�rence entre les sources clairs et
+
dification, vous verrez la différence entre les sources clairs et
 
les autres!
 
les autres!
   
Allez, je vous quitte en esp�rant que ces cours vous auront int�-
+
Allez, je vous quitte en espérant que ces cours vous auront inté-
ress�s et qu'ils vous auront donn� go�t l'assembleur! N'oubliez
+
ressés et qu'ils vous auront donné goût à l'assembleur! N'oubliez
 
pas que vous pouvez toujours me contacter sur le 3614 RTEL1 (ou
 
pas que vous pouvez toujours me contacter sur le 3614 RTEL1 (ou
 
RTEL2) en bal FEROCE LAPIN, et qu'il y a sur ce serveur une rubri-
 
RTEL2) en bal FEROCE LAPIN, et qu'il y a sur ce serveur une rubri-
que pour l'assembleur 68000 sur ST, MAC ou AMIGA. Pour acc�der
+
que pour l'assembleur 68000 sur ST, MAC ou AMIGA. Pour accéder à
cette rubrique, tapez *MOT et ENVOI. A bient�t!
+
cette rubrique, tapez *MOT et ENVOI. A bientôt!
  +
 
</pre>
 
</pre>
 
Back to [[ASM_Tutorial]]
 
Back to [[ASM_Tutorial]]

Revision as of 12:44, 24 November 2023

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

   Avant de vous fournir la bibliographie tant attendue, je vais vous
   parler très succinctement des interruptions.  Le principe est nor-
   malement connu  (sinon  reportez vous au cours numéro 5 de la pre-
   mière  série!). Il  y  a  pourtant un sujet qui mérite un peu plus
   d'attention: le  MFP68901.  Il s'agit  d'un circuit reconnu par le
   68000 comme  ayant  un  niveau  d'interruption  de 6 (voir feuille
   fournie avec le cours 1 et intitulée "TABLEAU DES VECTEURS D'INTER
   RUPTIONS DU 68000 ET DU 68901"). En interne ce circuit est capable
   de  gérer  16 niveaux  d'interruption, avec pour chaque niveau une
   adresse  associée  ($100-$13C pour le ST).  Voici un petit bout de
   listing  destiné  à  vous montrer comment placer sa propre routine
   dans  le  Timer A. Il  faut  d'abord  bloquer les interruptions en
   plaçant  le  SR  à  $2700, sauver  les registres du MFP, placer sa
   routine  et ensuite redescendre le niveau d'interruption à son ni-
   veau  habituel  sur  le  ST, c'est à dire $2300. Ceci se fait bien
   évidemment  en mode Superviseur, mode auquel on accède avec Gemdos
   $20.

   * Pour mettre en place....
             MOVE.W    #$2700,SR            it interdites
             MOVE.B    $FFFFFA07,ANC_IERA   sauve les
             MOVE.B    $FFFFFA09,ANC_IERB   valeurs du
             MOVE.B    $FFFFFA13,ANC_IMRA   MFP 68901
             MOVE.B    $FFFFFA15,ANC_IMRB
             MOVE.B    $FFFFFA17,ANC_VR

             MOVE.L    $134,ANC_TIMEA       sauve Timer A
             MOVE.L    #MY_TIMEA,$134       place nouvelle routine

             CLR.B     $FFFFFA09            empêche interrupt 0-7
             CLR.B     $FFFFFA15            masque interrupt 0-7
             MOVE.B    #%00100000,$FFFA07   OK interrupt 13 (timer A)
             MOVE.B    #%00100000,$FFFA13   OK aussi pour son masque 
             MOVE.B    #7,$FFFFFA19         règle TACR
             MOVE.B    #12,$FFFFFA1F        et TADR (1khz)
             BCLR      #3,$FFFFFA17         automatic end of interupt

             MOVE.W    #$2300,SR            autorise interruptions
   * Et maintenant, lorsque nous quittons le programme...
             MOVE.W    #$2700,SR            it interdites
             MOVE.B    ANC_IERA,$FFFFFA07   restitution
             MOVE.B    ANC_IERB,$FFFFFA09
             MOVE.B    ANC_IMRA,$FFFFFA13
             MOVE.B    ANC_IMRB,$FFFFFA15
             MOVE.B    ANC_VR,$FFFFFA17
             MOVE.L    ANC_TIMEA,$134
             MOVE.W    #$2300,SR            autorise les interruptions

   * Ma routine Timer A
   * Ne pas oublier de sauver les registres qui sont utilisés
   * et de terminer par un RTE.

   MY_TIMEA: movem.l   d0-a6,-(sp)
   '
   '
   '
             BCLR      #5,ISRA              suivant VR !!!
             MOVEM.L   sp)+,d0-a6
             RTE

   *----------------------------------------------------------*
           SECTION BSS
   ANC_TIMEA DS.L      1
   ANC_IERA  DS.B      1             sauvegarde pour le MFP
   ANC_IERB  DS.B      1                    "
   ANC_IMRA  DS.B      1                    "
   ANC_IMRB  DS.B      1                    "
   ANC_VR    DS.B      1                    "


   Je  vais  simplement  vous  décrire les registres IERA, IMRA, IPRA
   etc... du MFP. Pour de plus amples détails, consultez la Bible ST,
   le  Livre du Développeur ou la doc officielle ATARI (l'idéal!), le
   but de ces cours n'étant pas d'être une recopie des infos que vous
   pouvez trouver autre part.

   Tout d'abord les 16 niveaux du MFP sont classés en 2 groupes. Le A
   concerne  les niveaux 15 à 8 et le B les niveaux 7 à 0. Attention,
   ici A et B n'ont rien à voir avec les Timers A et B!!! Pour chaque
   groupe  (A  ou B) on trouve une série de registres. Dans chacun de
   ces  registres  les  interruptions  sont  représentées par un bit.
   Voyons ces registres:

   IERA ($FFFFFA07) et IERB ($FFFFFA09)
   Interrupt Enable Register A (ou B)
   En  plaçant  à  0 le  bit  correspondant  à  une  interruption, on
   interdit  celle-ci. Elle ne sera aucunement prise en compte par le
   MFP.

   IPRA ($FFFFFA0B) et IPRB ($FFFFFA0D)
   Interrupt Pending Register A (ou B)
   Lorsqu'une  interruption  arrive, le MFP met à 1 le bit correspon-
   dant à celle-ci dans IPRA (ou IPRB). Cela signale qu'une interrup-
   tion  est  en attente. En effet à cause du système de priorité, il
   est  possible  qu'une interruption de haut niveau soit en cours et
   que pendant ce temps une interruption plus faible se déclenche. Il
   faut  donc  noter cette volonté de se déclencher, afin qu'une fois
   fini le traitement de l'interruption prioritaire, le traitement de
   la plus faible puisse s'effectuer.

   Il  est  bien sûr possible de lire IPRA et IPRB afin de déterminer
   si une interruption est en attente.  Il est aussi possible de met-
   tre à 0 le bit d'une interruption en attente, afin que celle-ci ne
   se déclenche pas. Par contre, le fait de mettre un bit à 1 dans ce
   registre  n'a  aucun  effet.  On  se  rend  ainsi  compte  que les
   possiblités  deviennent  déjà  assez nombreuses.  Une interruption
   peut  ainsi  en  scruter  une  autre  de  façon à obtenir un cycle
   irrégulier d'interruption.

   Il  est en plus possible de laisser une interruption se déclencher
   juste  'pour  voir'. ceci  peut se faire en la laissant valide par
   IERA mais en la masquant avec IMRA.


   IMRA ($FFFFFA13) et IMRB ($FFFFFA15)
   Interrupt Mask Register A (et B)

   Le masquage empêche une interruption de se déclencher bien qu'elle
   soit autorisée par IERA ou IERB. Ceci peut permettre par exemple à
   une  interruption  de niveau 4 de ne pas être gênée par une inter-
   ruption de niveau 6.  Pour cela, il lui suffit de masquer celle-ci
   durant son exécution.


   VR ($FFFFFA17)
   Vector Register

   Cet  octet  est  un peu spécial. Dans notre cas seul le bit 3 nous
   intéresse, les  autres servant au MFP à coder le numéro de vecteur
   qui  correspond  à la source d'interruption. Le bit 3 sert à indi-
   quer  au MFP s'il est en mode Software End of Interrupt ou en mode
   Automatic  End of Interrupt (mode par défaut). Voyons les explica-
   tions avec les registres suivants:


   ISRA ($FFFFFA0F) et ISRB ($FFFFFA11)
   Interrupt in Service Register A (ou B)

   Un  bit à 1 indique que l'interruption est en cours de traitement.
   Si  nous  sommes en mode Software End of Interrupt, c'est à la fin
   de  notre  routine  en interruption que nous devons indiquer, nous
   même  que notre routine est finie. Pour cela il faut mettre à 0 le
   bit  correspondant à notre interruption, dans ISRA (ou ISRB). Tant
   que  ce bit est à 1,  les interruptions moins prioritaires ne peu-
   vent pas venir nous déranger. Par contre, dès que le traitement de
   notre  interruption commence,  son bit IPRA est remis automatique-
   ment  à 0, et pendant le traitement de cette interruption, une au-
   tre  de même niveau peut très bien intervenir.  Le bit d'IPRA sera
   donc  remis à 1,  mais cette nouvelle interruption ne sera traitée
   que lorsque la première aura remise le bit ISRA à 0.

   D'un  autre  côté, si  nous sommes en mode Automatic End of Inter-
   rupt, dès  que  notre routine s'exécute, le MFP met, bien sûr, son
   bit d'IPRA à 0  (puisque l'interrupt n'est plus en attente),  mais
   met  également  son bit ISRA à 0 ! Il est alors possible que d'au-
   tres  interruptions plus faibles viennent interrompre la première,
   même si elle n'est pas terminée.

   Vous  voyez qu'avec tout ceci, il est possible de jongler allègre-
   ment en envisageant les cas les plus tordus!!!  Concernant les ti-
   mers  A, B, C  et  D, voici  juste  les adresses permettant de les
   adresser, les  informations  fournies dans la bible ou le livre du
   développeur  étant  largement suffisante. Si par hasard vous étiez
   avides  d'informations sur ce circuit, précipitez vous chez un li-
   braire  spécialisé  dans la "littérature" électronique et demandez
   un ouvrage sur le MK68901. Passez aussi chez le pharmacien prendre
   quelques tubes d'aspirine....

   Pour  terminer ces cours d'assembleur, voici une petite bibliogra-
   phie afin que vous puissiez diriger vos recherches vers les sujets
   qui vous intéressent.

   Le  Langage  Machine  sur  ST (Ed. Micro App). Assez inutile comme
   bouquin! Très  très peu d'informations, non vraiment, ce n'est pas
   un bon achat.

   La  bible  ST (Ed. Micro-App). Devenue assez introuvable, dommage!
   Pas  mal de bonne infos, bien suffisant dans la plupart des cas. A
   été remplacé par le Livre du Développeur.

   Trucs  et  Astuces  (Ed. Micro-App). A éviter absolument! Les pro-
   grammes  réalisés en suivant ces conseils seront sûrement incompa-
   tibles dès qu'il y aura changement de TOS.

   Le  Livre  du  Développeur  (Tome  1 et 2) (Ed. Micro App) Si vous
   n'avez  pas accès à la doc. pour les développeurs ayant l'agrément
   Atari, c'est le bouquin qu'il vous faut. On peut regretter les di-
   zaines de pages contenant le listing du BIOS des STF et les autres
   dizaines  de  pages contenant le BIOS du Méga ST. Cela fait un peu
   remplissage: soit  on  a le niveau en assembleur pour y comprendre
   quelque  chose  et  alors  on a le niveau pour suivre le BIOS avec
   MONST, soit, de  toute façon, on n'y comprend rien et ce n'est pas
   parce qu'on a le listing sous les yeux que cela va changer quelque
   chose. Enfin, c'est  mon avis, et comme, en plus, le listing n'est
   valable  que  pour  les  modèles  cités, si  vous vous y fiez pour
   "découvrir" de nouvelles adresses vous risquez fort d'être surpris
   avec les machines plus récentes ...

   Le  livre  du GEM sur Atari ST (Ed. Micro App). Si vous pensez ap-
   prendre  à  programmer GEM avec ça, vous courrez à la catastrophe.
   Le  problème  du  GEM  c'est  qu'il est utilisable en assembleur à
   condition  de  se  servir  des  macros, sinon  c'est beaucoup trop
   lourd. Or  dans  un  livre  commercialisé, il est impossible de se
   borner  à  un  seul assembleur. Ceci fait que les auteurs ont tout
   décortiqué avec les appels directs au TRAP #2, et que cela devient
   totalement  incompréhensible  pour  le  débutant. Par  contre, les
   fonctions  y  sont relativement bien détaillées, et, si vous savez
   déjà  ce  que  vous cherchez, ce livre sera un bon outil. On peut,
   simplement, regretter  quelques absence comme les fonctions Escape
   du  GEM  et  quelques fonctions de l'AES. A noter que ce livre est
   repris à 99% dans le Livre du Développeur.

   Doc  GFA  3.00. Là, c'est le bon truc! En effet dans les dernières
   pages de la doc de ce BASIC, vous trouverez la liste de toutes les
   fonctions  GEMDOS, BIOS et XBIOS (il manque la fonction GEMDOS $20
   permettant  de  passer  en  Superviseur, étant  donné  qu'elle est
   inaccessible  en GFA), les codes ASCII, les codes clavier et quel-
   ques  pages  avant, une  bonne  liste  des  fonctions AES. Je dois
   avouer  que j'ai photocopié ces quelques pages et qu'elles me ser-
   vent  bien souvent: les informations sont suffisantes dans le plu-
   part  des cas, et surtout très faciles à trouver, ce qui n'est pas
   le  cas par exemple du Livre du GEM qui ne comprend même pas d'in-
   dex des fonctions !!!

   A noter que certaines fonctions du GEM existent dans la bibliothè-
   que interne du GFA mais ne sont pas disponibles dans celle de DEV-
   PACK. C'est  le cas de Form_Button et Form_Keybd. Et c'est gênant!
   En  effet au début Form_do n'existait pas. Les gens de Digital Re-
   search  ont  donc décidé de fabriquer de toutes pièces cette fonc-
   tion  à  partir  de  Form_Keybd  et Fomr_button, et ont diffusé le
   source en C. Au bout d'un moment, les programmeurs n'ont plus uti-
   lisé  que Form_Do et nous sommes tombés dans la routine de gestion
   de formulaires que nous connaissons actuellement.

   Si vous voulez faire votre propre Form_do, plus évolué il "suffit"
   de  reprendre Form_Keybd et Form_button pour recréer Form_do. Mal-
   heureusement  ces  deux fonctions sont tombées dans les oubliettes
   et pour les avoir pffuuuuuttt!!! 

   Vous voulez connaître leur opcode et les paramètres ? Facile comme
   tout! Si vous avez bien suivi ces cours, vous savez plein de chose
   sur le GEM (où se place l'opcode d'une fonction, où est inscrit le
   nombre  de paramètres etc... et bien vous lancez AMonst, puis vous
   faites un petit bout de GFA qui appelle Form_keybd en affichant au
   préalable  sur l'écran l'adresse du tableau AES, et qui attend en-
   suite un appui sur une touche. Tout ceci se passe sous l'interpré-
   teur  du  GFA bien sûr! Dès que vous êtes sur l'attente d'un appui
   touche, vous  déclenchez  AMONST (shift+alternate+help) et hop, la
   grande  recherche  commence. Vous faites de même avec Form_button,
   et  le tour est joué. Courage, ce n'est pas bien dur, et cela fait
   un excellent exercice!

   Mise en oeuvre du 68000 (Ed. Sybex) Excellent bouquin, traitant du
   68000 en  général. Ne  vous  attendez pas à y trouver des adresses
   système  pour  votre  ST.  On parle, ici, cycles d'horloges, modes
   d'adressage etc...

   Implantation  des  fonctions  usuelles  en  68000 (Ed. Masson, par
   François  BRET). Comment  faire des sinus, des cosinus, des trans-
   formées  de  Fourier etc.. . N'est pas vendu avec l'aspirine ni le
   café, mais  s'avère  indispensable, si vous vous attaquez aux pro-
   blèmes  de  trigo  en  ASM. Seulement 191Frs, une misère! (Merci à
   Shizuka de m'avoir fourni la référence de cet ouvrage!!!!!)

   STATION INFORMATIQUE 2 rue Piémontési 75018 PARIS
   tél:(1)42.55.14.26
   Excellent  catalogue  de Dom-Pubs. Avant de chercher à pirater des
   softs  divers  sans en avoir la doc, jetez un coup d'oeil sur leur
   catalogue. De  nombreuses petites choses sont à y découvrir (sour-
   ces  divers  en ASM, utilitaires de débuggage etc...) Si vous êtes
   un adepte de l'émulation Mac, dans les dom-pub de cette machine se
   trouve  le  pack Cyclan, un assembleur Mac avec son éditeur etc...
   Bien  sympa pour découvrir cette autre machine, équipée elle aussi
   d'un 68000.

   Les  ST  Mags fourmillaient également de trucs divers, en tout cas
   surtout dans les anciens numéros à mon avis...

   Voici une petite liste non-limitative...

   Intégration d'une ressource en GFA (46)
   Form Exdo (46)
   Echantillons sur ST  (27,28,29,30,31,35) (En  GFA avec de l'assem-
   bleur, mais le GFA on ne le sent qu'un tout petit peu...)

   Scrolling  en GFA (31 à 45 sauf numéro 37 et 44) Même remarque que
   pour les digits!!!

   Gestion des disquettes en GFA (13,14,15,16)

   Programmer  GEM  (6 à 30 environ) Super! Tout en C mais les appels
   sont  les  mêmes et la syntaxe identique à celle de la biblio DEV-
   PACK! Faites vite une recherche de vos vieux numéros de ST Mag car
   pour apprendre le GEM c'est extra!!!

   Animation en 3D (45,46,49) Pour le moment le dernier article n'est
   pas  sorti... Espérons  que cela ne fera pas comme le listing per-
   mettant  de  booter  sur une cartouche....Bien clair, sympa, idéal
   pour commencer la 3D.

   Pour les coprocesseurs, 2 articles dans les numéros 31 et 32.

   Dans  le défunt First (1ST) il y avait quelques trucs sympa sur le
   MIDI, le  décompactage des images DEGAS, la création de ram-disque
   et de spooler d'imprimante.

   Atari Mag revient en force en ce moment.

   Très bon articles sur la programmation graphique du STE. Cela per-
   met  de se faire une idée sur le BLITTER, les 4096 couleurs etc...
   C'est en BASIC mais la traduction est facile. (21,22).

   Etant dans la confidence, je peux vous informer également que dans
   les  prochains numéros d'Atari Mag vous trouverez des articles sur
   différents  sujets  avec  sources  en ASM et en GFA et que ce type
   d'article devrait durer pas mal de temps.

   Bon, en  résumé, achetez tous les mois ST Mag et Atari Mag. Si be-
   soin  est, achetez les à plusieurs, mais faire un gros tas de tou-
   tes  ces  revues car c'est une mine d'information importante. Bien
   souvent  les  questions qui sont posées sur RTEL par exemple trou-
   vent  leur  réponse  dans  une lecture des vieux numéros! Quelques
   bons  classeurs, des intercalaires et vous aurez une documentation
   énorme pour pas très cher.

   Je  terminerai ces cours en renouvelant l'avertissement concernant
   la  chasse  aux  listings! Il est préférable d'avoir quelques bou-
   quins  et  des notes sur papier plutôt que 10 mégas de sources au-
   quel  on ne comprend pas grand chose, et qui de, toute façon, sont
   assez  malcommodes  à  consulter  par  rapport  à des informations
   écrites!

   Pour  ce  qui  est  des  programmes  assez gros, préparez quelques
   feuilles  à  côté de vous, pour y noter les noms des routines, des
   labels, des  variables etc... vous vous rendrez vite compte que la
   principale  difficulté de l'assembleur réside dans le fait que les
   listings sont très très longs et qu'il est difficile de s'y dépla-
   cer  pour  chercher  quelque  chose. Programmez  proprement, soyez
   clairs et évitez si possible les bidouilles. Commentez abondamment
   vos  sources car dans 6 mois lorsqu'il faudra faire une petite mo-
   dification, vous  verrez la différence entre les sources clairs et
   les autres!

   Allez, je  vous quitte en espérant que ces cours vous auront inté-
   ressés  et qu'ils vous auront donné goût à l'assembleur! N'oubliez
   pas  que  vous  pouvez toujours me contacter sur le 3614 RTEL1 (ou
   RTEL2) en bal FEROCE LAPIN, et qu'il y a sur ce serveur une rubri-
   que  pour  l'assembleur 68000 sur ST, MAC ou AMIGA. Pour accéder à
   cette rubrique, tapez *MOT et ENVOI. A bientôt!

Back to ASM_Tutorial