<?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=COURS209.TXT</id>
	<title>COURS209.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=COURS209.TXT"/>
	<link rel="alternate" type="text/html" href="https://www.temlib.org/AtariForumWiki/index.php?title=COURS209.TXT&amp;action=history"/>
	<updated>2026-07-26T09:59:32Z</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=COURS209.TXT&amp;diff=11523&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=COURS209.TXT&amp;diff=11523&amp;oldid=prev"/>
		<updated>2016-12-22T14:54:35Z</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 9                         *&lt;br /&gt;
   ******************************************************************&lt;br /&gt;
&lt;br /&gt;
   Ce petit cours va ˆtre un peu sp‚cial, car il va fournir des indi-&lt;br /&gt;
   cations  sur la fa‡on de r‚aliser des programmes GEM qui fonction-&lt;br /&gt;
   nent correctement.&lt;br /&gt;
&lt;br /&gt;
   Il  y  a  en effet quelques &amp;quot;trucs&amp;quot; … respecter. Sur MAC, les pro-&lt;br /&gt;
   grammeurs  ont … leur disposition des bouquins traitant de l'ergo-&lt;br /&gt;
   nomie  des  logiciels. Qu'est ce que c'est ? Et bien c'est simple-&lt;br /&gt;
   ment  un  ensemble de rŠgles … respecter afin que l'utilisateur ne&lt;br /&gt;
   soit  pas perdu d'un programme … l'autre. Il faut en effet bien se&lt;br /&gt;
   souvenir  que vous ˆtes programmeur et que votre ouvrage sera uti-&lt;br /&gt;
   lis‚  par  des  utilisateurs! R‚fl‚chissons  un peu: qu'est ce que&lt;br /&gt;
   l'utilisateur recherche dans un programme de dessin:&lt;br /&gt;
&lt;br /&gt;
   1) avoir  une  sauvegarde  de fichier compress‚ avec un algorithme&lt;br /&gt;
   sp‚cial, qui compresse plus que les copains.&lt;br /&gt;
&lt;br /&gt;
   2) avoir  la  possibilit‚ de r‚cup‚rer le plus facilement possible&lt;br /&gt;
   ces dessins dans d'autres softs.&lt;br /&gt;
&lt;br /&gt;
   Il paraŒt ‚vident que c'est la seconde solution qui est la bonne!&lt;br /&gt;
   Pourtant  nous  assistons  …  une  prolif‚ration de formats de fi-&lt;br /&gt;
   chiers, tous  plus d‚biles les uns que les autres! Ah bien s–r, le&lt;br /&gt;
   fichier  compress‚  avec le logiciel de dessin Bidulmuche est plus&lt;br /&gt;
   petit que le fichier issu de Degas, mais il n'est reconnu par per-&lt;br /&gt;
   sonne! Pourquoi  chercher  …  ‚pater  la galerie avec des nouveaux&lt;br /&gt;
   formats ? Pourquoi ne pas charger et sauver en PI1, PI2, PI3, PC1,&lt;br /&gt;
   PC2, PC3 et  c'est  tout  ? PremiŠre  rŠgle: il faut donc penser …&lt;br /&gt;
   l'utilisateur  et ne pas chercher de trucs tordus! Le premier menu&lt;br /&gt;
   c'est  celui  du copyright, le second celui des fichiers avec tout&lt;br /&gt;
   en  bas l'option Quitter. Quelle merde de devoir chercher l'option&lt;br /&gt;
   Quitter tout au bout d'un menu parce que le programmeur a voulu se&lt;br /&gt;
   distinguer!&lt;br /&gt;
&lt;br /&gt;
   De  plus, par  convention, les entr‚es de menus qui d‚bouchent sur&lt;br /&gt;
   un dialogue seront suivis de 3 points.&lt;br /&gt;
&lt;br /&gt;
   Pensez  aux  grands  ‚crans et au TT !!!!! Lorsque vous tapez dans&lt;br /&gt;
   des  adresses  systŠme  document‚es, pr‚voyez  un adressage sur 32&lt;br /&gt;
   bits. Par  exemple  $FF8800 marchera  sur ST mais plantera sur TT.&lt;br /&gt;
   C'est en effet une adresse invalide si on cherche … s'en servir en&lt;br /&gt;
   32 bits  (avec le 68030). Il faut donc utiliser $FFFF8800 qui mar-&lt;br /&gt;
   chera sur toutes les machines.&lt;br /&gt;
&lt;br /&gt;
   Ne  testez pas la r‚solution avec Xbios4 ! C'est p‚rilleux car, en&lt;br /&gt;
   cas de grand ‚cran, vous recevrez n'importe quoi! Pour l'ouverture&lt;br /&gt;
   maxi d'un fenˆtre, demandez au GEM la taille de la station de tra-&lt;br /&gt;
   vail  (voir le source avec la fenˆtre). Une copie de blocs … faire&lt;br /&gt;
   ? Utilisez  la  fonction  Vro_cpy, mais  si  c'est  une copie avec&lt;br /&gt;
   l'‚cran, il  y a une solution simple: vous serez obliger de fabri-&lt;br /&gt;
   quer  une  structure FDB (Form Definition Block). C'est une struc-&lt;br /&gt;
   ture qui indique la largeur de la surface de travail, sa longueur,&lt;br /&gt;
   le  nombre  de  plans etc... Au lieu de demander au GEM toutes les&lt;br /&gt;
   donn‚es, remplissez la  de 0, et le GEM saura de lui mˆme que vous&lt;br /&gt;
   voulez parler de l'‚cran, et se d‚brouillera tout seul!&lt;br /&gt;
&lt;br /&gt;
   Pour  vos  accessoires, testez vos ressources en basse r‚solution!&lt;br /&gt;
   Un  accessoire, comme  son  nom  l'indique  doit  ˆtre accessoire,&lt;br /&gt;
   c'est-…-dire  fonctionner  sans gˆner le reste de la machine : Pe-&lt;br /&gt;
   tite taille (un accessoire de formatage de 100Ko hum!!!).&lt;br /&gt;
&lt;br /&gt;
   Un  seul  fichier  ressource. Cela  implique de ne pas utiliser de&lt;br /&gt;
   dessins  et  de  construire sa ressource avec l'option SNAP active&lt;br /&gt;
   dans  K_Ressource. Cette  option  permet  d'avoir les boutons bien&lt;br /&gt;
   plac‚s  quelle  que  soit  la  r‚solution d'utilisation de la res-&lt;br /&gt;
   source. Si  possible placez la ressource … l'int‚rieur de l'acces-&lt;br /&gt;
   soire  en  la relogeant (voir listing de relocation ci-joint) cela&lt;br /&gt;
   ‚vite d'avoir plusieurs fichiers … manier quand on d‚place les ac-&lt;br /&gt;
   cessoires.&lt;br /&gt;
&lt;br /&gt;
   N'h‚sitez pas … mettre des raccourcis clavier dans vos ressources.&lt;br /&gt;
   Si vous utilisez K Ressources vous verrez qu'il y a un accŠs … des&lt;br /&gt;
   bits  inutilis‚s  pour  les  objets. En  effet, si l'on prend, par&lt;br /&gt;
   exemple, les  bits  d‚finissant  les  flags de l'objet, on se rend&lt;br /&gt;
   compte  que  seul  les  bits 0 … 8 sont utilis‚s. Or le codage est&lt;br /&gt;
   fait  sur  un  word, il nous reste donc 7 bits de libres. Ces bits&lt;br /&gt;
   sont  laiss‚s au programmeur pour y stocker ce qu'il veut. A titre&lt;br /&gt;
   indicatif voici ce que j'y mets:&lt;br /&gt;
&lt;br /&gt;
   Extended_type    scan code de la touche de raccourci pour&lt;br /&gt;
                    cet objet.&lt;br /&gt;
&lt;br /&gt;
   Extended_flag    Touche(s) devant ˆtre enfonc‚e simultan‚ment pour&lt;br /&gt;
                    rendre ce raccourci valide.&lt;br /&gt;
                    Bit 15 -&amp;gt; Alternate&lt;br /&gt;
                    Bit 14 -&amp;gt; Control&lt;br /&gt;
                    Bit 13 -&amp;gt; Shift gauche&lt;br /&gt;
                    Bit 12 -&amp;gt; Shift droit&lt;br /&gt;
                    Bit 11 et 10 -&amp;gt; position du soulignement.&lt;br /&gt;
                    (0=pas de soulignement, 1=on souligne la premiŠre&lt;br /&gt;
                    lettre etc...)&lt;br /&gt;
&lt;br /&gt;
   Extended_state   Indication de la musique sur un octet&lt;br /&gt;
                    associ‚ … la s‚lection de cet objet&lt;br /&gt;
                    0 pas de musique&lt;br /&gt;
                    1 clochette&lt;br /&gt;
                    2-63 digits&lt;br /&gt;
                    64-127 Xbios(32)&lt;br /&gt;
                    128-190 son au format Gist&lt;br /&gt;
                    191-255 musique format Mad Max ou Musexx&lt;br /&gt;
&lt;br /&gt;
   Tout  ceci  me permet d'avoir des raccourcis clavier inscrits DANS&lt;br /&gt;
   la  ressource  ce  qui permet des modifications ultra-rapide. Pour&lt;br /&gt;
   les  raccourcis, il  faut  utiliser de pr‚f‚rence la touche Alter-&lt;br /&gt;
   nate, car son utilisation avec un autre touche ne g‚nŠre aucun ca-&lt;br /&gt;
   ractŠre.  Cependant,  6 raccourcis claviers utilisent Control. Ils&lt;br /&gt;
   sont issus du MAC et ont tendance … se g‚n‚raliser. Ces raccourcis&lt;br /&gt;
   sont  utilis‚s  dans  les formulaires avec champs ‚ditables (entre&lt;br /&gt;
   autres choses) afin de faire du couper/coller entre ces champs.&lt;br /&gt;
&lt;br /&gt;
   CONTROL X      | pour couper (place en buffer en l'effa‡ant&lt;br /&gt;
                  | au pr‚alable)&lt;br /&gt;
&lt;br /&gt;
   SHIFT CONTROL X | pour couper (mettre … la suite dans le buffer);&lt;br /&gt;
&lt;br /&gt;
   CONTROL C et   | Comme  avec  X sauf que,  dans le cas de X,  le&lt;br /&gt;
   SHIFT CONTRL C | champ ‚ditable est  effac‚, alors qu'avec C, il&lt;br /&gt;
                  | conserve son contenu.&lt;br /&gt;
&lt;br /&gt;
   CONTROL V      | colle le contenu du buffer en effa‡ant au&lt;br /&gt;
                  | pr‚alable le champ ‚ditable.&lt;br /&gt;
&lt;br /&gt;
   SHIFT CONTROL V | idem mais sans effacement du champ ‚ditable.&lt;br /&gt;
&lt;br /&gt;
   Une  autre  remarque concernant les formulaires avec plusieurs en-&lt;br /&gt;
   tr‚es  ‚ditables:  j'ai  remarqu‚  que par habitude  l'utilisateur&lt;br /&gt;
   tapait  RETURN  quand  il  avait fini de remplir un champ, et que,&lt;br /&gt;
   souvent, le  bouton  ANNULER est mis en d‚faut: l'appui sur RETURN&lt;br /&gt;
   donc, fait sortir du formulaire! &lt;br /&gt;
&lt;br /&gt;
   J'ai donc d‚cid‚ de supprimer les boutons d‚faut lorsqu'il y a des&lt;br /&gt;
   entr‚es ‚ditables et de g‚rer diff‚remment RETURN qui permet alors&lt;br /&gt;
   de passer au champ ‚ditable suivant (comme TAB).&lt;br /&gt;
&lt;br /&gt;
   J'ai ‚galement rajout‚ quelques autres touches. Alors qu'avec TAB,&lt;br /&gt;
   il  est  possible  de  passer d'un champ ‚ditable au suivant, j'ai&lt;br /&gt;
   ajout‚  Shift+TAB  pour  remonter  au  champ  ‚ditable  pr‚c‚dent.&lt;br /&gt;
   CLR HOME permettant de revenir au premier champ ‚ditable du formu-&lt;br /&gt;
   laire. Il serait possible d'ajouter UNDO.&lt;br /&gt;
&lt;br /&gt;
   R‚-‚crire  une gestion totale de formulaire (en prenant comme base&lt;br /&gt;
   de  d‚part un article de ST Mag qui faisait ‡a en GFA par exemple)&lt;br /&gt;
   n'est  pas  trŠs dur. Ce qui est sympa ‚galement c'est de rajouter&lt;br /&gt;
   un petit carr‚ en haut … droite, afin de d‚placer le formulaire.&lt;br /&gt;
&lt;br /&gt;
   Pour  toutes  ces  options, vous  pouvez bien s–r faire ‡a … votre&lt;br /&gt;
   propre  sauce, mais les raccourcis clavier dont je parle sont d‚j…&lt;br /&gt;
   un   peu  utilis‚s.  Autant  continuer  afin  que  le  systŠme  se&lt;br /&gt;
   g‚n‚ralise, plut“t  que  de chercher … se distinguer par des trucs&lt;br /&gt;
   mal commodes.&lt;br /&gt;
&lt;br /&gt;
   Je  terminerai ce chapitre sur le GEM en vous invitant … d‚couvrir&lt;br /&gt;
   le Protocole de Communication GEM. Pour y avoir accŠs, d‚compactez&lt;br /&gt;
   le fichier PROTOCOL.AR avec ARCHIVE.PRG. Vous placez ce fichier en&lt;br /&gt;
   ram_disque  (par  exemple  D). Vous pr‚parez une disquette vierge,&lt;br /&gt;
   vous  lancez Archive vous choisissez Unpack avec D:\PROTOCOL.AR et&lt;br /&gt;
   comme destination A:\*.* et vous attendez.&lt;br /&gt;
&lt;br /&gt;
   Il  y  a  tous les sources, la biblio, la doc, les exemples etc...&lt;br /&gt;
   Tous vos softs doivent ˆtre compatibles avec ce systŠme s'ils veu-&lt;br /&gt;
   lent  ˆtre dans le coup!!! C'est facile et cela permet des d‚lires&lt;br /&gt;
   assez fabuleux!&lt;br /&gt;
&lt;br /&gt;
   Bons programmes GEM!!!!!&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>