
               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 faon succincte 
le  fonctionnement  d'une des parties du  protocole.  Nous  avons 
choisit de sparer les 3 sries (300,  400 et 500) afin d'obtenir 
des applications de taille rduite,  faciles  analyser,  le  but 
ici n'tant pas de fournir des programmes performants mais plutt 
de  permettre une comprhension rapide du principe afin  que  les 
programmeurs puissent rapidement utiliser le protocole sans avoir 
au pralable  dcortiquer les sources pendant des mois!
     De  mme,  il  n'y  a  pas de  fentres  ouvertes  pour  les 
programmes.  Ceci  entraine donc des "trous" dans  l'cran  aprs 
l'apparition des formulaires:  ce n'est pas trs propre mais cela 
nous  a  permis d'obtenir des listings assez court  pour  que  le 
principe du protocole soit plus clair.

   Au dmarrage,  aprs 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  proposs:   TEXT1.TXT  et  TEXT2.TXT  Ici,  pas  de 
slecteur 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 prsentes en  mmoire  (donc 
ACC300,  ACC400  et ACC500) un message 300.  Seul  ACC300  rpond 
qu'il  est  compatible  avec  cette  partie  du  protocole,   ses 
identificateurs  vont  donc  tre affichs par  PRG300  dans  son 
formulaire. ACC300 permet 2 choses: coder les textes en ralisant 
une  opration  NOT  sur tous les  octets,  ou  bien  coder  avec 
simplement un NOT ralis un octet sur 2. Il suffit de choisir le 
descripteur correspondant  votre choix.
   PRG300 prvient 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 excut, 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 dclencher ACC300.  Celui-ci va  vous 
demander de choisir le fichier qu'il doit charger,  va le charger 
et  le  dcoder.   Ensuite  ACC300  va  raliser  un  appel   aux 
applications  prsentes en mmoire,  avec un  message  300.  Seul 
PRG300  va rpondre,  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 dclencher ACC300 sans avoir lanc PRG300,  la  demande 
envoy par l'accessoire ne recevra pas de rponse,  celui-ci vous 
rpondra alors qu'il n'a pas trouv d'application compatible avec 
cette srie du protocole.

   Voyons maintenant le fonctionnement de  PRG400.  Celui-ci  est 
encore  plus simple que PRG300 mais ralise pourtant ce  qui  est 
considr  comme  impossible sur ST:  avoir un ACC avec  un  menu 
droulant.  PRG400 ne fait rien en lui-mme:  Il gre  simplement 
son menu droulant.  Dclenchez ACC400.  Vous voyez alors le menu 
de PRG400 changer.  En effet lors de son dclenchement,  ACC400 a 
demand  aux applications prsentes en mmoire si  elles  taient 
compatibles avec la norme 400. PRG400 ayant rpondu positivement, 
ACC400 lui a envoy l'adresse de son menu droulant.  PRG400  l'a 
donc  mis en place devenant ainsi un intermdiaire entre  le  GEM 
(qui   envoi  toujours   les  messages  concernant  le   menu     
l'application  principale) et l'accessoire qui est  le  vritable 
propritaire de ce menu.

   C'est donc toujours PRG400 qui reoit les messages relatifs au 
menu,  mais  maintenant il sait que le menu actuellement  affich 
n'est  plus le sien,  et  chaque rception de message  menu,  il 
transmet celui-ci  l'application propritaire de ce menu.  C'est 
donc l'ACC400 qui analyse les messages et ragit en  consquence, 
et  c'est   lui qu'incombe galement la tche  de  remettre  les 
entres du menu en vido 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 prvient donc PRG400, qui remet alors son propre 
menu et recommence  le grer normalement.

    Passons  maintenant  la dernire application  du  protocole, 
avec la srie 500.  Cette srie est aussi simple que les  autres, 
mais   c'est   la  structuration  des   programmes   qui   rendra 
certainement son application dlicate.

   Lancez PRG500.  Un petit coup d'il dans le menu suffit    se 
rendre  compte qu'il s'agit ici d'un mini (vraiment  trs  mini!) 
programme de dessin.
    3  Options sont possibles:  La premire permet de  tracer  un 
rond,  la seconde un rectangle et la dernire d'effacer  l'cran. 
Pourtant  PRG500  d'autres possiblits car ces routines  peuvent 
tre  pilotes  distance.  C'est ce qui est ralis par  ACC500, 
celui-ci  ayant  la  possibilit d'envoyer 3  sries  d'ordres   
PRG500.

   La premire srie va ordonner  PRG500 d'effacer son cran, de 
tracer 4 cercles,  d'attendre un peu, puis de tracer 1 rectangle. 
La seconde srie va ordonner  PRG500 d'effacer l'cran,  puis de 
tracer  5  rectangle avec un temps  d'attente  entre  chaque.  La 
troisime  srie 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 paramtres  fournir  ces routines:  (la 
taille des paramtres est donnes par .L pour 4 octets et .W pour 
2. Rfrez 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 paramtre de retour

-Tracage de rectangle
  Routine 1
  .W coord X coin suprieur gauche
  .W coord Y coin suprieur gauche
  .W coord X coin infrieur droit
  .W coord Y coin infrieur droit
Aucun paramtre de retour

-Effacement de l'cran
  Routine 2
Aucun paramtre en entre
Aucun paramtre de retour

-Attente
  Routine 3
  .L Temps d'attente en 100me de seconde
Aucun paramtre de retour

-Supression souris
  Routine 4
Aucun paramtre en entre  Aucun paramtre de retour

-Activation souris
  Routine 5
Aucun paramtre en entre  Aucun paramtre de retour

-Dfinition du motif
  Routine 6   .W Style   .W Index
Aucun paramtre de retour.


  Voila!  Nous esprons que ces petites applications vous  auront 
permis de mieux comprendre les potentialits 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 rside dans le fait que le  programmeur 
n'est plus totalement matre de son application, puisque celle-ci 
doit pouvoir communiquer avec d'autres. Il est donc primordial de 
bien  matriser le systme 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! 

