COURS209.TXT/fr

From Atari Wiki
Revision as of 15:07, 23 November 2023 by Exxos (talk | contribs)
Jump to navigation Jump to search
   ******************************************************************
   *                                                                *
   *             COURS D'ASSEMBLEUR 68000 SUR ATARI ST              *
   *                                                                *
   *                 par Le F�roce Lapin (from 44E)                 *
   *                                                                *
   *                         Seconde s�rie                          *
   *                                                                *
   *                         Cours num�ro 9                         *
   ******************************************************************

   Ce petit cours va �tre un peu sp�cial, car il va fournir des indi-
   cations  sur la fa�on de r�aliser des programmes GEM qui fonction-
   nent correctement.

   Il  y  a  en effet quelques "trucs" � respecter. Sur MAC, les pro-
   grammeurs  ont � leur disposition des bouquins traitant de l'ergo-
   nomie  des  logiciels. Qu'est ce que c'est ? Et bien c'est simple-
   ment  un  ensemble de r�gles � respecter afin que l'utilisateur ne
   soit  pas perdu d'un programme � l'autre. Il faut en effet bien se
   souvenir  que vous �tes programmeur et que votre ouvrage sera uti-
   lis�  par  des  utilisateurs! R�fl�chissons  un peu: qu'est ce que
   l'utilisateur recherche dans un programme de dessin:

   1) avoir  une  sauvegarde  de fichier compress� avec un algorithme
   sp�cial, qui compresse plus que les copains.

   2) avoir  la  possibilit� de r�cup�rer le plus facilement possible
   ces dessins dans d'autres softs.

   Il para�t �vident que c'est la seconde solution qui est la bonne!
   Pourtant  nous  assistons  �  une  prolif�ration de formats de fi-
   chiers, tous  plus d�biles les uns que les autres! Ah bien s�r, le
   fichier  compress�  avec le logiciel de dessin Bidulmuche est plus
   petit que le fichier issu de Degas, mais il n'est reconnu par per-
   sonne! Pourquoi  chercher  �  �pater  la galerie avec des nouveaux
   formats ? Pourquoi ne pas charger et sauver en PI1, PI2, PI3, PC1,
   PC2, PC3 et  c'est  tout  ? Premi�re  r�gle: il faut donc penser �
   l'utilisateur  et ne pas chercher de trucs tordus! Le premier menu
   c'est  celui  du copyright, le second celui des fichiers avec tout
   en  bas l'option Quitter. Quelle merde de devoir chercher l'option
   Quitter tout au bout d'un menu parce que le programmeur a voulu se
   distinguer!

   De  plus, par  convention, les entr�es de menus qui d�bouchent sur
   un dialogue seront suivis de 3 points.

   Pensez  aux  grands  �crans et au TT !!!!! Lorsque vous tapez dans
   des  adresses  syst�me  document�es, pr�voyez  un adressage sur 32
   bits. Par  exemple  $FF8800 marchera  sur ST mais plantera sur TT.
   C'est en effet une adresse invalide si on cherche � s'en servir en
   32 bits  (avec le 68030). Il faut donc utiliser $FFFF8800 qui mar-
   chera sur toutes les machines.

   Ne  testez pas la r�solution avec Xbios4 ! C'est p�rilleux car, en
   cas de grand �cran, vous recevrez n'importe quoi! Pour l'ouverture
   maxi d'un fen�tre, demandez au GEM la taille de la station de tra-
   vail  (voir le source avec la fen�tre). Une copie de blocs � faire
   ? Utilisez  la  fonction  Vro_cpy, mais  si  c'est  une copie avec
   l'�cran, il  y a une solution simple: vous serez obliger de fabri-
   quer  une  structure FDB (Form Definition Block). C'est une struc-
   ture qui indique la largeur de la surface de travail, sa longueur,
   le  nombre  de  plans etc... Au lieu de demander au GEM toutes les
   donn�es, remplissez la  de 0, et le GEM saura de lui m�me que vous
   voulez parler de l'�cran, et se d�brouillera tout seul!

   Pour  vos  accessoires, testez vos ressources en basse r�solution!
   Un  accessoire, comme  son  nom  l'indique  doit  �tre accessoire,
   c'est-�-dire  fonctionner  sans g�ner le reste de la machine : Pe-
   tite taille (un accessoire de formatage de 100Ko hum!!!).

   Un  seul  fichier  ressource. Cela  implique de ne pas utiliser de
   dessins  et  de  construire sa ressource avec l'option SNAP active
   dans  K_Ressource. Cette  option  permet  d'avoir les boutons bien
   plac�s  quelle  que  soit  la  r�solution d'utilisation de la res-
   source. Si  possible placez la ressource � l'int�rieur de l'acces-
   soire  en  la relogeant (voir listing de relocation ci-joint) cela
   �vite d'avoir plusieurs fichiers � manier quand on d�place les ac-
   cessoires.

   N'h�sitez pas � mettre des raccourcis clavier dans vos ressources.
   Si vous utilisez K Ressources vous verrez qu'il y a un acc�s � des
   bits  inutilis�s  pour  les  objets. En  effet, si l'on prend, par
   exemple, les  bits  d�finissant  les  flags de l'objet, on se rend
   compte  que  seul  les  bits 0 � 8 sont utilis�s. Or le codage est
   fait  sur  un  word, il nous reste donc 7 bits de libres. Ces bits
   sont  laiss�s au programmeur pour y stocker ce qu'il veut. A titre
   indicatif voici ce que j'y mets:

   Extended_type    scan code de la touche de raccourci pour
                    cet objet.

   Extended_flag    Touche(s) devant �tre enfonc�e simultan�ment pour
                    rendre ce raccourci valide.
                    Bit 15 -> Alternate
                    Bit 14 -> Control
                    Bit 13 -> Shift gauche
                    Bit 12 -> Shift droit
                    Bit 11 et 10 -> position du soulignement.
                    (0=pas de soulignement, 1=on souligne la premi�re
                    lettre etc...)

   Extended_state   Indication de la musique sur un octet
                    associ� � la s�lection de cet objet
                    0 pas de musique
                    1 clochette
                    2-63 digits
                    64-127 Xbios(32)
                    128-190 son au format Gist
                    191-255 musique format Mad Max ou Musexx

   Tout  ceci  me permet d'avoir des raccourcis clavier inscrits DANS
   la  ressource  ce  qui permet des modifications ultra-rapide. Pour
   les  raccourcis, il  faut  utiliser de pr�f�rence la touche Alter-
   nate, car son utilisation avec un autre touche ne g�n�re aucun ca-
   ract�re.  Cependant,  6 raccourcis claviers utilisent Control. Ils
   sont issus du MAC et ont tendance � se g�n�raliser. Ces raccourcis
   sont  utilis�s  dans  les formulaires avec champs �ditables (entre
   autres choses) afin de faire du couper/coller entre ces champs.

   CONTROL X      | pour couper (place en buffer en l'effa�ant
                  | au pr�alable)

   SHIFT CONTROL X | pour couper (mettre � la suite dans le buffer);

   CONTROL C et   | Comme  avec  X sauf que,  dans le cas de X,  le
   SHIFT CONTRL C | champ �ditable est  effac�, alors qu'avec C, il
                  | conserve son contenu.

   CONTROL V      | colle le contenu du buffer en effa�ant au
                  | pr�alable le champ �ditable.

   SHIFT CONTROL V | idem mais sans effacement du champ �ditable.

   Une  autre  remarque concernant les formulaires avec plusieurs en-
   tr�es  �ditables:  j'ai  remarqu�  que par habitude  l'utilisateur
   tapait  RETURN  quand  il  avait fini de remplir un champ, et que,
   souvent, le  bouton  ANNULER est mis en d�faut: l'appui sur RETURN
   donc, fait sortir du formulaire! 

   J'ai donc d�cid� de supprimer les boutons d�faut lorsqu'il y a des
   entr�es �ditables et de g�rer diff�remment RETURN qui permet alors
   de passer au champ �ditable suivant (comme TAB).

   J'ai �galement rajout� quelques autres touches. Alors qu'avec TAB,
   il  est  possible  de  passer d'un champ �ditable au suivant, j'ai
   ajout�  Shift+TAB  pour  remonter  au  champ  �ditable  pr�c�dent.
   CLR HOME permettant de revenir au premier champ �ditable du formu-
   laire. Il serait possible d'ajouter UNDO.

   R�-�crire  une gestion totale de formulaire (en prenant comme base
   de  d�part un article de ST Mag qui faisait �a en GFA par exemple)
   n'est  pas  tr�s dur. Ce qui est sympa �galement c'est de rajouter
   un petit carr� en haut � droite, afin de d�placer le formulaire.

   Pour  toutes  ces  options, vous  pouvez bien s�r faire �a � votre
   propre  sauce, mais les raccourcis clavier dont je parle sont d�j�
   un   peu  utilis�s.  Autant  continuer  afin  que  le  syst�me  se
   g�n�ralise, plut�t  que  de chercher � se distinguer par des trucs
   mal commodes.

   Je  terminerai ce chapitre sur le GEM en vous invitant � d�couvrir
   le Protocole de Communication GEM. Pour y avoir acc�s, d�compactez
   le fichier PROTOCOL.AR avec ARCHIVE.PRG. Vous placez ce fichier en
   ram_disque  (par  exemple  D). Vous pr�parez une disquette vierge,
   vous  lancez Archive vous choisissez Unpack avec D:\PROTOCOL.AR et
   comme destination A:\*.* et vous attendez.

   Il  y  a  tous les sources, la biblio, la doc, les exemples etc...
   Tous vos softs doivent �tre compatibles avec ce syst�me s'ils veu-
   lent  �tre dans le coup!!! C'est facile et cela permet des d�lires
   assez fabuleux!

   Bons programmes GEM!!!!!

Back to ASM_Tutorial