COURS209.TXT
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