home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
No Fragments Archive 10: Diskmags
/
nf_archive_10.iso
/
MAGS
/
DNTPAPER
/
DNT_01.MSA
/
PROTOCOL.GEM
/
PROT_DOC
/
M_EMPLOI.TXT
< prev
next >
Wrap
Text File
|
1987-04-22
|
8KB
|
165 lines
DESCRIPTIF DES APPLICATIONS EXEMPLES
Sur la disquette se trouvent 3 programmes et 3 accessoires,
avec les sources en assembleur et les fichiers ressources
complets. Ces applications vont par couples, ACC300 avec PRG300,
ACC400 avec PRG400 et ACC500 avec PRG500.
Chacun de ces couples est destiné à montrer de façon succincte
le fonctionnement d'une des parties du protocole. Nous avons
choisit de séparer les 3 séries (300, 400 et 500) afin d'obtenir
des applications de taille réduite, faciles à analyser, le but
ici n'étant pas de fournir des programmes performants mais plutôt
de permettre une compréhension rapide du principe afin que les
programmeurs puissent rapidement utiliser le protocole sans avoir
au préalable à décortiquer les sources pendant des mois!
De même, il n'y a pas de fenêtres ouvertes pour les
programmes. Ceci entraine donc des "trous" dans l'écran aprés
l'apparition des formulaires: ce n'est pas trés propre mais cela
nous a permis d'obtenir des listings assez court pour que le
principe du protocole soit plus clair.
Au démarrage, aprés avoir booté, les 3 accessoires sont en
place. Lancez PRG300 et jetons un coup d'œil sur son fonction-
nement.
Ce programme permet de charger un texte et de le visualiser. 2
textes sont proposés: TEXT1.TXT et TEXT2.TXT Ici, pas de
sélecteur de fichier, ce n'est pas le but recherché! Les textes
doivent se trouver sur le disque A, le chemin étant fixé dans le
programme. Une fois un des textes chargé, il apparait sur
l'écran. Il est alors possible de l'envoyer par le tube. PRG300
envoi alors aux autres applications présentes en mémoire (donc
ACC300, ACC400 et ACC500) un message 300. Seul ACC300 répond
qu'il est compatible avec cette partie du protocole, ses
identificateurs vont donc être affichés par PRG300 dans son
formulaire. ACC300 permet 2 choses: coder les textes en réalisant
une opération NOT sur tous les octets, ou bien coder avec
simplement un NOT réalisé un octet sur 2. Il suffit de choisir le
descripteur correspondant à votre choix.
PRG300 prévient alors ACC300 que celui-ci a été choisit, et
ACC300 vous demande alors sous quel nom doit être sauvegardé le
texte (A:\TEXT1.COD ou A:\TEXT2.COD). Un fois votre choix
effectué, le transfert se fait, l'accessoire code et sauve. Ceci
étant exécuté, vous pouvez quitter PRG300 et en double cliquant à
partir du bureau sur le fichier .COD vous vous rendrez compte que
celui-ci est effectivement codé! Pour recharger un fichier codé
dans PRG300, il suffit de déclencher ACC300. Celui-ci va vous
demander de choisir le fichier qu'il doit charger, va le charger
et le décoder. Ensuite ACC300 va réaliser un appel aux
applications présentes en mémoire, avec un message 300. Seul
PRG300 va répondre, en proposant 2 destinations possibles: le
buffer du texte1 ou celui du texte2. Un fois choisit le buffer
destination le transfert du texte se fera d'ACC300 vers PRG300,
et ce dernier l'affichera.
Si vous déclencher ACC300 sans avoir lancé PRG300, la demande
envoyé par l'accessoire ne recevra pas de réponse, celui-ci vous
répondra alors qu'il n'a pas trouvé d'application compatible avec
cette série du protocole.
Voyons maintenant le fonctionnement de PRG400. Celui-ci est
encore plus simple que PRG300 mais réalise pourtant ce qui est
considéré comme impossible sur ST: avoir un ACC avec un menu
déroulant. PRG400 ne fait rien en lui-même: Il gére simplement
son menu déroulant. Déclenchez ACC400. Vous voyez alors le menu
de PRG400 changer. En effet lors de son déclenchement, ACC400 a
demandé aux applications présentes en mémoire si elles étaient
compatibles avec la norme 400. PRG400 ayant répondu positivement,
ACC400 lui a envoyé l'adresse de son menu déroulant. PRG400 l'a
donc mis en place devenant ainsi un intermédiaire entre le GEM
(qui envoi toujours les messages concernant le menu à
l'application principale) et l'accessoire qui est le véritable
propriétaire de ce menu.
C'est donc toujours PRG400 qui reçoit les messages relatifs au
menu, mais maintenant il sait que le menu actuellement affiché
n'est plus le sien, et à chaque réception de message menu, il
transmet celui-ci à l'application propriétaire de ce menu. C'est
donc l'ACC400 qui analyse les messages et réagit en conséquence,
et c'est à lui qu'incombe également la tâche de remettre les
entrées du menu en vidéo normal, de placer des ticks sur celles-
ci etc....
Lorsque l'on choisit de quitter, c'est bien sur l'ACC que l'on
quitte. Celui-ci prévient donc PRG400, qui remet alors son propre
menu et recommence à le gérer normalement.
Passons maintenant à la dernière application du protocole,
avec la série 500. Cette série est aussi simple que les autres,
mais c'est la structuration des programmes qui rendra
certainement son application délicate.
Lancez PRG500. Un petit coup d'œil dans le menu suffit à se
rendre compte qu'il s'agit ici d'un mini (vraiment trés mini!)
programme de dessin.
3 Options sont possibles: La première permet de tracer un
rond, la seconde un rectangle et la dernière d'effacer l'écran.
Pourtant PRG500 à d'autres possiblités car ces routines peuvent
être pilotées à distance. C'est ce qui est réalisé par ACC500,
celui-ci ayant la possibilité d'envoyer 3 séries d'ordres à
PRG500.
La première série va ordonner à PRG500 d'effacer son écran, de
tracer 4 cercles, d'attendre un peu, puis de tracer 1 rectangle.
La seconde série va ordonner à PRG500 d'effacer l'écran, puis de
tracer 5 rectangle avec un temps d'attente entre chaque. La
troisiéme série va ordonner à PRG500 d'effacer l'écran puis de
faire une succession de cercles et de rectangles
Si vous voulez vous essayer au pilotage à distance de PRG500,
voici le descriptif des paramétres à fournir à ces routines: (la
taille des paramétres est données par .L pour 4 octets et .W pour
2. Référez vous aux documents sur le protocole 500 afin d'établir
correctement la liste des ordres).
-Tracage de cercle
Routine 0
.W coord X du centre
.W coord Y du centre
.W rayon
Aucun paramétre de retour
-Tracage de rectangle
Routine 1
.W coord X coin supérieur gauche
.W coord Y coin supérieur gauche
.W coord X coin inférieur droit
.W coord Y coin inférieur droit
Aucun paramétre de retour
-Effacement de l'écran
Routine 2
Aucun paramétre en entrée
Aucun paramétre de retour
-Attente
Routine 3
.L Temps d'attente en 100éme de seconde
Aucun paramétre de retour
-Supression souris
Routine 4
Aucun paramètre en entrée Aucun paramètre de retour
-Activation souris
Routine 5
Aucun paramètre en entrée Aucun paramètre de retour
-Définition du motif
Routine 6 .W Style .W Index
Aucun paramétre de retour.
Voila! Nous espérons que ces petites applications vous auront
permis de mieux comprendre les potentialités du Protocole, et que
vous utiliserz abondement celui-ci. Il est conseillé de bien
analyser les sources des ACC et des PRG, et de commencer par des
petites applications pouvant fonctionner avec ceux-ci. En effet
la principale difficulté réside dans le fait que le programmeur
n'est plus totalement maître de son application, puisque celle-ci
doit pouvoir communiquer avec d'autres. Il est donc primordial de
bien maîtriser le systéme et donc de s'exercer en utilisant les
applications fournies ici, avant de se lancer dans la
programmation d'une usine à gaz dont il sera plus difficile de
tester la compatibilité!