<?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=COURS208.TXT</id>
	<title>COURS208.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=COURS208.TXT"/>
	<link rel="alternate" type="text/html" href="https://www.temlib.org/AtariForumWiki/index.php?title=COURS208.TXT&amp;action=history"/>
	<updated>2026-07-27T00:55:20Z</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=COURS208.TXT&amp;diff=11522&amp;oldid=prev</id>
		<title>&gt;Zorro 2: Created page with &quot;&lt;pre&gt;    ******************************************************************    *                                                                *    *             COURS D'ASSEMBL...&quot;</title>
		<link rel="alternate" type="text/html" href="https://www.temlib.org/AtariForumWiki/index.php?title=COURS208.TXT&amp;diff=11522&amp;oldid=prev"/>
		<updated>2016-12-22T14:54:28Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;&amp;lt;pre&amp;gt;    ******************************************************************    *                                                                *    *             COURS D&amp;#039;ASSEMBL...&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 8                         *&lt;br /&gt;
   ******************************************************************&lt;br /&gt;
&lt;br /&gt;
   J'espŠre que vous n'abordez pas ce cours imm‚diatement aprŠs avoir&lt;br /&gt;
   fini  de  lire le pr‚c‚dent, mais, qu'au contraire, vous vous ˆtes&lt;br /&gt;
   plong‚ dans la ligne A avec bonheur!&lt;br /&gt;
&lt;br /&gt;
   Nous  allons  maintenant  aborder  un sujet qui, je dois l'avouer,&lt;br /&gt;
   m'effrayait un peu au d‚but: le GEM.&lt;br /&gt;
&lt;br /&gt;
   En  fait, en programmation comme dans beaucoup d'autres sujets, on&lt;br /&gt;
   se  met  …  bosser  simplement  lorsqu'on  y  est oblig‚. Ainsi je&lt;br /&gt;
   n'avais   r‚alis‚  que  de  tout  petits  trucs  avec  le  GEM  en&lt;br /&gt;
   assembleur, des  trucs du genre ACCessoire de bureau qui permet de&lt;br /&gt;
   mettre  l'‚cran  en  inverse  vid‚o, avec  un choix dans une boŒte&lt;br /&gt;
   d'alerte, avant  de  me  trouver face au descriptif du soft que me&lt;br /&gt;
   proposait  une  boŒte  Parisienne. Je dois avouer que les premiers&lt;br /&gt;
   jours  ont ‚t‚ un peu durs, mais qu'… la longue j'ai d‚couvert que&lt;br /&gt;
   le  GEM est vraiment une chose fabuleuse, pas trŠs dur … maŒtriser&lt;br /&gt;
   et que les possibilit‚s sont largement suffisantes pour combler de&lt;br /&gt;
   bonheur tout programmeur digne de ce nom!!! J'espŠre donc que vous&lt;br /&gt;
   prendrez  autant de plaisir que moi … programmer sous GEM une fois&lt;br /&gt;
   que vous aurez lu ce chapitre.&lt;br /&gt;
&lt;br /&gt;
   Tout  d'abord  les  remarques qui se trouvent au d‚but du chapitre&lt;br /&gt;
   sur  la  ligne A, m‚ritent d'ˆtre relus. Chercher donc de la docu-&lt;br /&gt;
   mentation  sans  vous  soucier  du langage. Vous trouverez dans le&lt;br /&gt;
   dernier  cours de cette s‚rie une bibliographie dans laquelle j'ai&lt;br /&gt;
   essay‚ de recenser divers articles bien sympas.&lt;br /&gt;
&lt;br /&gt;
   Le GEM est accessible par le TRAP #2, mais en fait grƒce … ce trap&lt;br /&gt;
   nous  avons  accŠs  … plusieurs parties du GEM, un peu comme si le&lt;br /&gt;
   trap #1 d‚bouchait  en  mˆme temps sur GEMDOS et BIOS. Le GEM est,&lt;br /&gt;
   en effet, compos‚ principalement de 2 parties:&lt;br /&gt;
&lt;br /&gt;
    l'AES et le VDI.&lt;br /&gt;
&lt;br /&gt;
   Les routines du VDI  - VIRTUAL DEVICE INTERFACE -&lt;br /&gt;
   s'occupent des graphismes;&lt;br /&gt;
&lt;br /&gt;
   tra‡age de cercles,&lt;br /&gt;
   ellipse,&lt;br /&gt;
   traits,&lt;br /&gt;
   rectangles&lt;br /&gt;
   etc ...&lt;br /&gt;
&lt;br /&gt;
   Par contre, l'affichage des objets typiques du GEM :&lt;br /&gt;
&lt;br /&gt;
   fenˆtres,&lt;br /&gt;
   boŒtes d'alertes&lt;br /&gt;
&lt;br /&gt;
   est r‚alis‚ par l'AES - APPLICATION ENVIRONMENT SYSTEM - .&lt;br /&gt;
&lt;br /&gt;
   Au  fur  et … mesure que vous d‚couvrirez les fonctions VDI et AES&lt;br /&gt;
   vous vous rendrez compte de l'interaction des 2.&lt;br /&gt;
&lt;br /&gt;
   Le  gros  avantage  de  ce systŠme peut s'expliquer simplement: il&lt;br /&gt;
   semble  ‚vident … tout le monde que sortir un dessin sur un ‚cran,&lt;br /&gt;
   une disquette ou une imprimante, ce n'est pas la mˆme chose.&lt;br /&gt;
&lt;br /&gt;
   ERREUR! Pour le GEM c'est pareil!&lt;br /&gt;
&lt;br /&gt;
   En  fait, on  peut dire que vous avez … pr‚parer votre dessin et …&lt;br /&gt;
   dire  &amp;quot;je  l'envoie&amp;quot;. O—? Ah l…, c'est comme vous voulez parce que&lt;br /&gt;
   pour le VDI&lt;br /&gt;
                      l'‚cran,&lt;br /&gt;
                      la table tra‡ante,&lt;br /&gt;
                      le disque,&lt;br /&gt;
                      l'imprimante&lt;br /&gt;
                      etc..&lt;br /&gt;
&lt;br /&gt;
   ne  sont que des p‚riph‚riques. Il suffit de lui d‚signer le p‚ri-&lt;br /&gt;
   ph‚rique de notre choix et il fait le boulot tout seul!!!!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   Le seul problŠme: &lt;br /&gt;
   les  routines  v‚ritablement  ind‚pendantes  des  p‚riph‚riques se&lt;br /&gt;
   trouvent dans GDOS - ce nom vous fait s–rement fr‚mir d'effroi...-&lt;br /&gt;
&lt;br /&gt;
   -- Plusieurs programmes en mˆme temps ?&lt;br /&gt;
   Le  principe  du GEM est trŠs attirant mais doit nous amener … r‚-&lt;br /&gt;
   fl‚chir  un petit peu sur le m‚lange potentiel des donn‚es. En ef-&lt;br /&gt;
   fet le GEM, mˆme s'il n'est pas r‚ellement multitƒche (ˆtre multi-&lt;br /&gt;
   tƒche consiste … pouvoir faire tourner des applications exactement&lt;br /&gt;
   en mˆme temps, ce qui est de toute fa‡on impossible avec un 68000)&lt;br /&gt;
   le  GEM  donc, permet  d'avoir plusieurs programmes actifs en mˆme&lt;br /&gt;
   temps, en  l'occurrence  un  programme principal et 6 accessoires.&lt;br /&gt;
   Pour  le  GEM il n'y a fondamentalement pas de diff‚rence entre un&lt;br /&gt;
   PRG  et  un  ACC et, pour cette raison, dans le vocabulaire GEM on&lt;br /&gt;
   les nomme &amp;quot;applications&amp;quot;. Le GEM peut donc se retrouver avec 7 ap-&lt;br /&gt;
   plications  … g‚rer, chacune ayant potentiellement plusieurs fenˆ-&lt;br /&gt;
   tres. On imagine facilement le bazar dans la m‚moire!!! &lt;br /&gt;
&lt;br /&gt;
   -- Comment le GEM s'y retrouve t-il?&lt;br /&gt;
&lt;br /&gt;
   Au  d‚marrage  d'une application, celle-ci appelle la fonction AP-&lt;br /&gt;
   PL_INIT (Application_Init). Cette fonction pr‚vient le GEM que no-&lt;br /&gt;
   tre  application  d‚sire  devenir active, et le GEM r‚pond en nous&lt;br /&gt;
   fournissant  un  num‚ro, l'APP_ID  (Application_Identificator) qui&lt;br /&gt;
   nous  servira maintenant de r‚f‚rence. Notre application sera donc&lt;br /&gt;
   par  exemple la 3, et sera reconnue comme telle par le GEM. Atten-&lt;br /&gt;
   tion, l'APP_ID  n'est  donn‚  … l'application que pour la dur‚e de&lt;br /&gt;
   pr‚sence  en  m‚moire de celle-ci. Si je lance un ACC le lundi, il&lt;br /&gt;
   peut h‚riter de l'APP_ID 4 mais si je le relance le mardi dans des&lt;br /&gt;
   conditions  diff‚rentes, il  peut obtenir l'APP_ID 5. Seulement il&lt;br /&gt;
   gardera cet APP_ID pendant toute son activit‚.&lt;br /&gt;
&lt;br /&gt;
   Lorsque  l'on  ouvre  une  fenˆtre, c'est le mˆme principe. Le GEM&lt;br /&gt;
   fournit  ce  que l'on nomme un HANDLE, c'est … dire un num‚ro cor-&lt;br /&gt;
   respondant … la fenˆtre. En fait le HANDLE c'est le num‚ro d'iden-&lt;br /&gt;
   tification  d'une fenˆtre mais potentiellement aussi d'un p‚riph‚-&lt;br /&gt;
   rique.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   -- Multitraitement ?&lt;br /&gt;
&lt;br /&gt;
   Une  des  parties  les plus importantes du GEM concerne la gestion&lt;br /&gt;
   des ‚v‚nements. Un ‚v‚nements c'est une action de l'utilisateur de&lt;br /&gt;
   la machine: clic souris, appui sur une touche etc... En fait, sous&lt;br /&gt;
   GEM les applications passent la plus grande partie de leur temps …&lt;br /&gt;
   attendre. Imaginons  un  PRG  avec  une fenˆtre ouverte et un menu&lt;br /&gt;
   d‚roulant, et en mˆme temps en m‚moire 3 accessoires. Je vais dans&lt;br /&gt;
   le  menu des accessoires. Le menu se d‚roule et les titres passent&lt;br /&gt;
   en  inverse  vid‚o  lorsque  la souris passe dessus. Tout ceci est&lt;br /&gt;
   fait  par le GEM, tout seul comme un grand. Je clique sur le titre&lt;br /&gt;
   de l'accessoire 2.&lt;br /&gt;
&lt;br /&gt;
   Le GEM d‚tecte le clic, sait que je suis dans les accessoires, re-&lt;br /&gt;
   garde  sur quelle entr‚e j'ai cliqu‚. Comme c'est le GEM qui a at-&lt;br /&gt;
   tribu‚  les entr‚es aux ACC, il envoie un message … l'accessoire 2&lt;br /&gt;
   pour lui dire &amp;quot;il faut que tu t'ouvres&amp;quot;. Celui-ci s'ouvre donc, et&lt;br /&gt;
   affiche  une fenˆtre … l'‚cran. Nous avons donc 2 fenˆtres en mˆme&lt;br /&gt;
   temps. Je clique sur celle du PRG, le GEM regarde … qui appartient&lt;br /&gt;
   cette fenˆtre et envoi au PRG un message pour lui dire &amp;quot;on a acti-&lt;br /&gt;
   v‚  ta  fenˆtre num‚ro XX&amp;quot; etc... Nous allons donc construire dans&lt;br /&gt;
   nos  programmes sous GEM, un noyau de surveillance des actions, et&lt;br /&gt;
   nous r‚agirons en fonction de celles-ci.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   -- Pour appeler les fonctions du GEM.&lt;br /&gt;
&lt;br /&gt;
   Les  appels  se font avec des paramŠtres que nous passons dans des&lt;br /&gt;
   tableaux. Comme  nous  utilisons  DEVPACK, nous utiliserons sa bi-&lt;br /&gt;
   bliothŠque. En  effet, pour les appels au GEM, les paramŠtres sont&lt;br /&gt;
   nombreux et … placer … des endroits bien pr‚cis dans les tableaux.&lt;br /&gt;
   Pour  ces raisons, les macros trouvent ici tout leur int‚rˆt. Nous&lt;br /&gt;
   appellerons  donc  les  fonctions du GEM avec les macros contenues&lt;br /&gt;
   dans  la bibliothŠque de DEVPACK. Cependant il convient de connaŒ-&lt;br /&gt;
   tre  ‚galement les tableaux, afin de pouvoir parfaitement compren-&lt;br /&gt;
   dre le principe de fonctionnement. &lt;br /&gt;
&lt;br /&gt;
   Pour l'AES, il faut 6 tableaux:&lt;br /&gt;
&lt;br /&gt;
   CONTROL,&lt;br /&gt;
   GLOBAL, &lt;br /&gt;
   INT_IN,&lt;br /&gt;
   INT_OUT,&lt;br /&gt;
   ADDR_IN,&lt;br /&gt;
   ADDR_OUT.&lt;br /&gt;
&lt;br /&gt;
   Pour le VDI il en faut 5:&lt;br /&gt;
&lt;br /&gt;
   CONTRL,&lt;br /&gt;
   INTIN,&lt;br /&gt;
   INTOUT,&lt;br /&gt;
   PTSIN,&lt;br /&gt;
   PTSOUT.&lt;br /&gt;
&lt;br /&gt;
   Attention  …  la  l‚gŠre diff‚rence d'orthographe entre  INT_IN et&lt;br /&gt;
   INTIN ! Pour indiquer, lors de l'appel au GEM, l'emplacement o— il&lt;br /&gt;
   trouvera ces tableaux, leurs adresses sont plac‚es dans 2 listes:&lt;br /&gt;
&lt;br /&gt;
   Une pour l'AES:&lt;br /&gt;
   aes_params dc.l control, global, int_in, int_out,addr_in, addr_out&lt;br /&gt;
   et une pour le VDI:&lt;br /&gt;
   vdi_params dc.l contrl, intin, ptsin, intout, ptsout&lt;br /&gt;
&lt;br /&gt;
   Voici  les  tableaux tels qu'ils sont d‚finis dans la bibliothŠque&lt;br /&gt;
   GEM de DEVPACK:&lt;br /&gt;
&lt;br /&gt;
   control   ds.w  5&lt;br /&gt;
   global    ds.w  14&lt;br /&gt;
   int_in    ds.w  16&lt;br /&gt;
   int_out   ds.w  7&lt;br /&gt;
   addr_in   ds.l  3&lt;br /&gt;
   addr_out  ds.l  1&lt;br /&gt;
&lt;br /&gt;
   contrl    ds.w  1&lt;br /&gt;
   contrl1   ds.w  1&lt;br /&gt;
   contrl2   ds.w  1&lt;br /&gt;
   contrl3   ds.w  1&lt;br /&gt;
   contrl4   ds.w  1&lt;br /&gt;
   contrl5   ds.w  1&lt;br /&gt;
   contrl6   ds.w  1&lt;br /&gt;
   contrl7   ds.w  1&lt;br /&gt;
   contrl8   ds.w  1&lt;br /&gt;
   contrl9   ds.w  1&lt;br /&gt;
   contrl10  ds.w  1&lt;br /&gt;
   contrl11  ds.w  1&lt;br /&gt;
&lt;br /&gt;
   intin     ds.w  128  min  30&lt;br /&gt;
   intout    ds.w  128  min  45&lt;br /&gt;
   ptsin     ds.w  128  min  30&lt;br /&gt;
   ptsout    ds.w  128  min  12&lt;br /&gt;
&lt;br /&gt;
   Vous  remarquez l'‚trange mise en place du tableau CONTRL (tableau&lt;br /&gt;
   pour le VDI). En effet il faut assez souvent passer des paramŠtres&lt;br /&gt;
   '…  la main' dans ce tableau. Avec ce systŠme, il sera possible de&lt;br /&gt;
   r‚aliser une op‚ration du genre MOVE.W #10,CONTRL2&lt;br /&gt;
&lt;br /&gt;
   Attention  cette  num‚rotation  des CONTRL correspond au nombre de&lt;br /&gt;
   words  car chacune des entr‚es est d‚finie par DS.W et non pas par&lt;br /&gt;
   DS.B!!! Ceci s'explique par le fait que 99% des documents relatifs&lt;br /&gt;
   au  GEM  sont pour le 'C' et que c'est ce type de commande qui est&lt;br /&gt;
   faite  en  'C'.  Ainsi  vous  trouverez  souvent;  &amp;quot;mettre  10  en&lt;br /&gt;
   contrl(2)&amp;quot;; il vous suffira de faire MOVE.W #10,CONTRL2 et le tour&lt;br /&gt;
   est jou‚.&lt;br /&gt;
&lt;br /&gt;
   -- Pourquoi tant de tableaux? Parce que chacun de ces tableaux est&lt;br /&gt;
   destin‚  …  recevoir  ou  …  renvoyer  un certain type de donn‚es.&lt;br /&gt;
   Voyons un descriptif rapide de ces tableaux.&lt;br /&gt;
&lt;br /&gt;
   Tableaux AES&lt;br /&gt;
&lt;br /&gt;
   ** control&lt;br /&gt;
&lt;br /&gt;
   Destin‚ … contenir, dans l'ordre:&lt;br /&gt;
&lt;br /&gt;
   num‚ro   de la               fonction  (.W),&lt;br /&gt;
   nombre   d'octets de         INT_IN (.W),&lt;br /&gt;
   nombre   d'octets de         INT_OUT (.W),&lt;br /&gt;
   nombre   de longs mots de    ADDR_IN (.W)&lt;br /&gt;
   nombre   de longs mots de    ADDR_OUT&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   ** global&lt;br /&gt;
   Ce  tableau  est un peu sp‚cial, et les explications le concernant&lt;br /&gt;
   ne sont d'aucune utilit‚ dans le cadre de ces cours. Une fois bien&lt;br /&gt;
   ingurgit‚ le reste, vous pourrez toujours vous pencher dessus mais&lt;br /&gt;
   actuellement cela ne ferait que vous embrouiller! (Voir la biblio-&lt;br /&gt;
   graphie pour en savoir plus)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   ** int_in&lt;br /&gt;
   Ce  tableau  est  destin‚ … recevoir des valeurs entiŠres (Integer&lt;br /&gt;
   In) dont l'AES aura besoin.&lt;br /&gt;
&lt;br /&gt;
   Par exemple un num‚ro de fenˆtre.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   ** int_out&lt;br /&gt;
   A l'inverse du pr‚c‚dent ce tableau renvoi des r‚sultats par exem-&lt;br /&gt;
   ple  si vous demander la surface disponible pour une fenˆtre, vous&lt;br /&gt;
   aurez ici les dimensions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   ** addr_in&lt;br /&gt;
   Liste dans laquelle vous pourrez placer des adresses&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   ** addr_out  et l…, vous pourrez en lire! En fait il suffit, comme&lt;br /&gt;
   toujours, de  lire  le  nom  du  tableau  pour en d‚duire ce qu'il&lt;br /&gt;
   contient!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   Tableaux VDI&lt;br /&gt;
&lt;br /&gt;
   ** contrl&lt;br /&gt;
   Dans contrl0 nous pla‡ons l'opcode de la fonction, c'est ainsi que&lt;br /&gt;
   l'on appelle son num‚ro.&lt;br /&gt;
&lt;br /&gt;
   Dans  contrl1 nous  pla‡ons  le  nombre de donn‚es qui seront mise&lt;br /&gt;
   dans le tableau intin&lt;br /&gt;
&lt;br /&gt;
   Dans  contrl2 nous pla‡ons le nombre de points (donc de couples de&lt;br /&gt;
   donn‚es) qui seront plac‚s dans le tableau ptsin&lt;br /&gt;
&lt;br /&gt;
   Dans contrl3 nous placerons l'identificateur de la sous-fonction.&lt;br /&gt;
   Par  exemple  le tra‡age des cercles, ellipse, rectangle etc... ce&lt;br /&gt;
   fait  avec la fonction 11. Il faut donc un sous-code permettant de&lt;br /&gt;
   d‚finir quel module dans la fonction 11 on d‚sire utiliser.&lt;br /&gt;
&lt;br /&gt;
   Dans  contrl6 nous  pla‡ons  le handle du p‚riph‚rique. (voir plus&lt;br /&gt;
   haut) &lt;br /&gt;
   A  partir  de  contrl7 il  y  a parfois des informations … passer,&lt;br /&gt;
   suivant la fonction.&lt;br /&gt;
&lt;br /&gt;
   ** intin et ptsin&lt;br /&gt;
   Nous  remplirons  ensuite le tableau INTIN avec les paramŠtres en-&lt;br /&gt;
   tiers  demand‚s par la fonction et le tableau PTSIN avec les coor-&lt;br /&gt;
   donn‚es  demand‚es  par la fonction. Une fois la fonction appel‚e,&lt;br /&gt;
   nous r‚cupŠrerons:&lt;br /&gt;
&lt;br /&gt;
   en contrl2 le nombre de couples de coordonn‚es de ptsout et&lt;br /&gt;
   en contrl4 le nombre de mots de intout.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   Voici  un  appel au GEM. Cette fonction affiche une phrase o— l'on&lt;br /&gt;
   veut  sur  l'‚cran, contrairement  … Gemdos (9) qui est limit‚ sur&lt;br /&gt;
   les lignes et les colonnes de texte. De plus cette fonction permet&lt;br /&gt;
   d'afficher  du  texte avec des effets (gras, soulign‚ etc...) avec&lt;br /&gt;
   la fonte de notre choix:&lt;br /&gt;
&lt;br /&gt;
            LEA       MESSAGE,A1            adresse de la phrase&lt;br /&gt;
            LEA       INTIN,A0              tableau de r‚ception&lt;br /&gt;
            MOVEQ.L   #0,D2                 init le compteur de lettres&lt;br /&gt;
   ICI3     CLR.W     D0&lt;br /&gt;
            MOVE.B    (A1)+,D0              pr‚lŠve en bytes&lt;br /&gt;
            BEQ       GO_ON                 fin du texte&lt;br /&gt;
            ADDQ.B    #1,D2                 on compte les lettres&lt;br /&gt;
            MOVE.W    D0,(A0)+              transfŠre dans INTIN (en words)&lt;br /&gt;
            BRA       ICI&lt;br /&gt;
   GO_ON    MOVE.W    #100,PTSIN            position X&lt;br /&gt;
            MOVE.W    #150,PTSIN+2          position Y&lt;br /&gt;
            MOVE.W    D2,CONTRL3            nombre de lettres&lt;br /&gt;
            MOVE.W    #1,CONTRL1&lt;br /&gt;
            MOVE.W    CURRENT_HANDLE,CONTRL6&lt;br /&gt;
            MOVE.W    #8,CONTRL             opcode&lt;br /&gt;
            MOVE.L    #VDI_PARAMS,D1&lt;br /&gt;
            MOVE.W    #$73,D0&lt;br /&gt;
            TRAP      #2&lt;br /&gt;
&lt;br /&gt;
   AAAAAAAAAARRRRRRGGGLLL!!!!!! C'est l'horreur n'est ce pas!&lt;br /&gt;
&lt;br /&gt;
   Il faut vous munir de patience et d‚cortiquer les multiples appels&lt;br /&gt;
   au GEM.&lt;br /&gt;
&lt;br /&gt;
   Pour  vous  aider dans vos essais, vous trouverez ci-joint un dos-&lt;br /&gt;
   sier  intitul‚ GEM. Il contient le source d'un ACC qui affiche une&lt;br /&gt;
   boŒte  d'alerte, d'un  PRG qui gŠre une ressource (listing issu de&lt;br /&gt;
   WERCS) et  d'un accessoire g‚rant une fenˆtre. Pour ce qui est des&lt;br /&gt;
   ‚diteurs de ressources, je travaille avec K Ressource qui est bien&lt;br /&gt;
   sympa et qui ne plante pas, contrairement … Wercs!&lt;br /&gt;
&lt;br /&gt;
   Essayez  de  bien  comprendre  le  principe:  affichez  une  boŒte&lt;br /&gt;
   d'alerte  avec  un  seul  bouton, puis  avec plusieurs, faites des&lt;br /&gt;
   petites  ressources  toutes  simples, puis de plus en plus compli-&lt;br /&gt;
   qu‚es  etc... Le principe restera toujours le mˆme quelle que soit&lt;br /&gt;
   la  taille de votre application. Essayez de faire de petits acces-&lt;br /&gt;
   soires  du genre formateur de disquettes, avec un petit formulaire&lt;br /&gt;
   qui  demande  si l'on veut formater le disque A ou le B, en simple&lt;br /&gt;
   ou en double face etc...&lt;br /&gt;
&lt;br /&gt;
   A l'aide de ces exemples, vous devriez r‚ussir … vous d‚brouiller.&lt;br /&gt;
   C'est  avec  ‡a  que j'ai commenc‚! Jetez ‚galement un coup d'oeil&lt;br /&gt;
   sur la bibliographie, il y a quelques trucs int‚ressants!&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>