<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://www.temlib.org/AtariForumWiki/index.php?action=history&amp;feed=atom&amp;title=COURS201.TXT</id>
	<title>COURS201.TXT - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://www.temlib.org/AtariForumWiki/index.php?action=history&amp;feed=atom&amp;title=COURS201.TXT"/>
	<link rel="alternate" type="text/html" href="https://www.temlib.org/AtariForumWiki/index.php?title=COURS201.TXT&amp;action=history"/>
	<updated>2026-05-13T20:06:29Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.39.2</generator>
	<entry>
		<id>https://www.temlib.org/AtariForumWiki/index.php?title=COURS201.TXT&amp;diff=11515&amp;oldid=prev</id>
		<title>&gt;Zorro 2: Created page with &quot;&lt;pre&gt; **************************************************************** *                                                              * *         COURS D'ASSEMBLEUR 68000 SUR ATA...&quot;</title>
		<link rel="alternate" type="text/html" href="https://www.temlib.org/AtariForumWiki/index.php?title=COURS201.TXT&amp;diff=11515&amp;oldid=prev"/>
		<updated>2016-12-22T14:53:40Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;&amp;lt;pre&amp;gt; **************************************************************** *                                                              * *         COURS D&amp;#039;ASSEMBLEUR 68000 SUR ATA...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
****************************************************************&lt;br /&gt;
*                                                              *&lt;br /&gt;
*         COURS D'ASSEMBLEUR 68000 SUR ATARI ST                *&lt;br /&gt;
*                                                              *&lt;br /&gt;
*            par Le F‚roce Lapin (from 44E)                    *&lt;br /&gt;
*                                                              *&lt;br /&gt;
*                    Seconde s‚rie                             *&lt;br /&gt;
*                                                              *&lt;br /&gt;
*                    Cours num‚ro 1                            *&lt;br /&gt;
****************************************************************&lt;br /&gt;
&lt;br /&gt;
Voici la seconde s‚rie de cours sur l'assembleur 68000 sur Atari. &lt;br /&gt;
Ce cours fait suite … la premiŠre s‚rie.  J'espŠre pour vous  que &lt;br /&gt;
cette premiŠre s‚rie a ‚t‚ parfaitement comprise, et que RIEN n'a &lt;br /&gt;
‚t‚ laiss‚ de cot‚. Partant de ce principe, nous pouvons dire que &lt;br /&gt;
vos  bases sont bien solides,  et que nous allons  pouvoir  allez &lt;br /&gt;
beaucoup  plus  vite.  La premiŠre s‚rie ‚tait  destin‚e  …  vous &lt;br /&gt;
apprendre  le  m‚canisme de fonctionnement du 68000 et du  ST  au &lt;br /&gt;
niveau  de son systŠme d'exploitation,  la seconde s‚rie ne  sera &lt;br /&gt;
qu'un ensemble de ficelles,  de clefs d'accŠs … divers choses. Si &lt;br /&gt;
vous  avez PARFAITEMENT ‚tudi‚s la premiŠre s‚rie,  vous  pourrez &lt;br /&gt;
tirer  doucement sur ces ficelles afin de faire venir … vous  les &lt;br /&gt;
informations.&lt;br /&gt;
&lt;br /&gt;
Si par contre vous 'pensez' avoir compris la premiŠre s‚rie  mais &lt;br /&gt;
que  vous  n'ˆtes pas 'certain' de tout  avoir  compris,  il  est &lt;br /&gt;
encore  temps  de la relire car d'ici quelques pages  vous  allez &lt;br /&gt;
commencer … vous sentir perdu, ce qui serait bien dommage!!! Pour &lt;br /&gt;
v‚rifier  un  tout petit peu vos  connaissances,  voici  quelques &lt;br /&gt;
questions toutes bˆtes:&lt;br /&gt;
&lt;br /&gt;
1) MOVE.L       #$12345678,A0 puis MOVE.W #$1234,A0&lt;br /&gt;
        Qu'obtient-on dans A0?&lt;br /&gt;
        &lt;br /&gt;
2) MOVE.L  #$12345678,A0 puis MOVE.B  #$12,A0&lt;br /&gt;
        Qu'obtient-on dans A0?&lt;br /&gt;
        &lt;br /&gt;
3) Pouvez-vous expliquer concrŠtement ce qui se passe lorsque  je &lt;br /&gt;
   fais MOVE.W       #$2700,SR&lt;br /&gt;
   &lt;br /&gt;
4) MOVE.L       #MESSAGE,-(SP)    Que r‚alise cette fonction?&lt;br /&gt;
   MOVE.W       #9,-(SP)&lt;br /&gt;
   TRAP #1&lt;br /&gt;
   ADDQ.L       #4,SP               &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Avant  de  vous  donner  les  r‚ponses,   voici  la  liste   (non &lt;br /&gt;
d‚finitive)  de  ce qui sera trait‚ dans cette seconde  s‚rie  de &lt;br /&gt;
cours.  Les traps (comment les reprogrammer), la Ligne A, le GEM, &lt;br /&gt;
les tableaux,  les programmes auto-modifiables,  les macros,  les &lt;br /&gt;
inclusions  de  fichiers,   etc...  A  chaque  fois,  le  travail &lt;br /&gt;
consistera  … vous indiquer comment faire et … vous  fournir  une &lt;br /&gt;
liste  d'articles,  d'ouvrages  plus  ou  moins  pr‚cis  dans  ce &lt;br /&gt;
domaine.  Il m'a sembl‚ en effet ridicule de tartiner par exemple &lt;br /&gt;
50  pages  sur  le  GEM  alors que  cela  n'est  pas  susceptible &lt;br /&gt;
d' int‚resser tout le monde.  Par contre il m'a sembl‚ normal  de &lt;br /&gt;
d‚grossir  ce sujet et de fournir toutes les  piŠces  n‚cessaires &lt;br /&gt;
(ou, du moins, les piŠces dont j'ai connaissance) afin que ceux d'&lt;br /&gt;
entre vous qui d‚sirent r‚aliser des  applications de haut niveau &lt;br /&gt;
puissent  le faire.  Il leur faudra bosser mais en assembleur  il &lt;br /&gt;
est courant de passer beaucoup de temps simplement … chercher  de &lt;br /&gt;
la documentation.  Je vous fournis donc la liste de  celle-ci,  … &lt;br /&gt;
vous de voir si vous en avez besoin.  A titre indicatif,  la  doc &lt;br /&gt;
que j'utilise pour GEM se nomme PRO GEM,  fait environ 200 pages, &lt;br /&gt;
et est toute en Anglais!!!! Vous vous rendez donc bien compte que &lt;br /&gt;
faire  un cours complet sur GEM grossirait de maniŠre stupide  ce &lt;br /&gt;
cours d'assembleur!!!!&lt;br /&gt;
&lt;br /&gt;
  C'est  ce mˆme principe qui sera utilis‚  pour  les  diff‚rents &lt;br /&gt;
sujets   abord‚s  dans  cette  seconde  s‚rie.   Vous   trouverez &lt;br /&gt;
d'ailleurs 2 livrets,  le premier comprenant les cours eux-mˆmes, &lt;br /&gt;
le  second  comportant  de courts  listings  sur  les  diff‚rents &lt;br /&gt;
sujets.   Attention,   ces   listings   sont  pour   la   plupart &lt;br /&gt;
inutilisables sans avoir lu au pr‚alable le cours  correspondant. &lt;br /&gt;
Pour finir je vous donnerai le mˆme conseil que pour la  premiŠre &lt;br /&gt;
s‚rie:  prenez votre temps,  relisez bien chaque chapitre, faites &lt;br /&gt;
des petits programmes en utilisant ce que vous venez  d'apprendre!&lt;br /&gt;
&lt;br /&gt;
    R‚sultat du concours:  Si vous avez faux … un seul  truc,  je &lt;br /&gt;
vous conseille vivement de reprendre le premier cours!!!&lt;br /&gt;
&lt;br /&gt;
1)  On  obtient #$00001234 dans A0.  Ceux qui  ont  r‚pondu  qu'on &lt;br /&gt;
obtenait  #$12341234  ont tout faux!  En effet on  aurait  obtenu  &lt;br /&gt;
#$12341234  si  l'op‚ration  avait eu lieu  sur  un  registre  de &lt;br /&gt;
donn‚es.&lt;br /&gt;
Sur  un registre d'adresse pris en op‚rande destination,  il y  a &lt;br /&gt;
extension sur le poids fort. L…, y-en-a d‚j… 50% qui reprennent la &lt;br /&gt;
s‚rie 1......       &lt;br /&gt;
&lt;br /&gt;
2) On n'obtient rien du tout parce qu'on ne peut pas assembler!!! &lt;br /&gt;
On  ne peut travailler avec un registre d'adresse comme  op‚rande &lt;br /&gt;
destination  que sur le format word ou long word mais pas sur  le &lt;br /&gt;
format byte.&lt;br /&gt;
&lt;br /&gt;
3)$2700 cela donne en binaire %0010011100000000.  Si on plaque ce &lt;br /&gt;
nombre sur le Status Register (ceux qui croyaient que SR  c'‚tait &lt;br /&gt;
la  pile et qui on donc confondu avec SP  doivent  imp‚rativement &lt;br /&gt;
recommencer  la s‚rie 1 en entier, ils sont juste prˆts  pour  ne &lt;br /&gt;
rien comprendre … la suite!),  on se rend compte que les bits mis &lt;br /&gt;
… 1 dans ce nombre correspondent aux bits S,I2,I1 et I0.&lt;br /&gt;
Comme on ne peut taper dans le SR qu'en mode superviseur,  on  en &lt;br /&gt;
d‚duit qu'une telle op‚ration ne peut se faire que dans ce  mode. &lt;br /&gt;
Notre  MOVE conserve donc le bit superviseur dans l'‚tat  1  puis &lt;br /&gt;
force les bits d‚crivant le niveau d'interruption … 1.  Le niveau &lt;br /&gt;
d'interruption minimal pris en cours est donc le niveau 7 qui est &lt;br /&gt;
le niveau maximum. En r‚sum‚, nous venons de bloquer, d'interdire &lt;br /&gt;
les interruptions.&lt;br /&gt;
&lt;br /&gt;
4) Cette fonction r‚alise 2 choses.  Tout d'abord l'affichage  du &lt;br /&gt;
texte  situ‚  … l'adresse MESSAGE.  C'est en  effet  la  fonction &lt;br /&gt;
Cconws()  du  gemdos.  Mais cette fonction  r‚alise  aussi  autre &lt;br /&gt;
chose....  une joyeuse erreur!  car en passant l'adresse puis  le &lt;br /&gt;
num‚ro  de la fonction nous avons modifi‚ la pile de 6 bytes  (un &lt;br /&gt;
long  word pour l'adresse et un word pour le num‚ro de  fonction) &lt;br /&gt;
or nous ne corrigeons que de 4!!!!!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    D'aprŠs  vos  r‚ponses,   vous  pouvez  continuer  ou   alors &lt;br /&gt;
recommencer la s‚rie 1 avec un peu moins d'empressement.  Il faut &lt;br /&gt;
TOUT comprendre, c'est ‡a le secret. Si vous avez commis quelques &lt;br /&gt;
erreurs  et que voulez cependant attaquer directement la  seconde &lt;br /&gt;
s‚rie,   ne  soyez  pas  ‚tonn‚  d'abandonner  l'assembleur  dans &lt;br /&gt;
quelques  mois,  d‚courag‚ par des montagnes de listings  auxquels &lt;br /&gt;
vous ne comprendrez rien!&lt;br /&gt;
&lt;br /&gt;
                Bon courage&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Back to [[ASM_Tutorial]]&lt;br /&gt;
[[Category: ASSEMBLEUR 68000 sur ATARI ST Part 1 ]]&lt;/div&gt;</summary>
		<author><name>&gt;Zorro 2</name></author>
	</entry>
</feed>