
                                 GEMiniTEL
                        Le bureau GEM sur minitel 2??
                                '95 ROCHE.X.


     GEMiniTEL est un gadget destin aux possesseurs d'un minitel 2 (ou 
suprieur). Il permet de transfrer sur votre minitel une partie de l'cran. 
Ainsi vous pourrez voir directement le bureau, mais galement tout autre 
programme!
     Cet accessoire n'est qu'un gadget: il ralentit le systme et n'est pas 
utilisable pour une application srieuse, mais il permet d'avoir une ide des 
possibilits offertes par un minitel  9600 bauds

     L'accessoire, plac dans le rpertoire racine (cd avec les autres 
accessoires) commence alors immdiatement  envoyer des donnes au minitel, 
par la prise pri-informatique.
     Vous devez rgler, aprs le chargement des accessoires, un certain nombre 
d'options dans la boite de dialogue de GMT (cf: OPTIONS)
     Il est conseill de faire tourner GMT en monochrome, car la prsence de 
couleur ralentit un peu ce dernier ; le 9600 bps est vivement conseill 
galement


                                                                Bon amusement!

Contact: 3615 STMag/Rtel BAL STS ou STS@stmag.pressimage.fr



OPTIONS:
-------

Largeur:  Largeur en caractres de la fentre visible sur minitel [2..39]
Hauteur:  Idem pour la hauteur [2..24]

Exemple:  fentre 12*8 (12 caractres en largeur et 8 en hauteur) ; en sachant 
qu'un caractre fait 8*10 pixels, cela donne une rsolution de 96*80 pixels

XPos:     Position de cette fentre sur minitel en X
YPos:     Idem pour Y

Exemple: avec les dimensions prcdentes on peut positionner en (10,6)

Col txt:  Couleur de "texte" affiche sur minitel
Col fnd:  Idem pour le "fond"

Exemple: couleur fond blanc et couleur texte noir

Bps:      Bits par seconde, vitesse de la prise (configuration par dfaut: 9600)
Etat:     Active ou dsactive GMT






Comment marche GMT?
------------------

     Pour ceux que cela intresse: GMT s'installe comme un accessoire 
classique, sauf qu'il tourne dans une boucle du type:

Boucle:
  Evnt_timer()
  Suivre_souris
  Executer
Fin boucle

Une note avant tout: l'image DRCS est compose de caractres normaux, par 
exemple:


    |> position X de la fentre
+--------------------------
|
|   AAAAAABBBBBBBCCCCCC   <- position Y
|   DDDDEEEEFFGHIJJJJJJ
|   AAAAAAKKKKKMMMFDDDD
|   AABBBBBLMMMMMNOPLLL   Largeur: 19 car.
|   LLLlQLLLLLRLLLLSLLL   Hauteur: 7 car.
|   LLLLTUVLLLWLLAAAAXX
|   YLLLLLEEEEEEZZZZZZZ
|


Mais ces caractres sont redfinis, c'est  dire que chaque caractre est 
redessin pixel par pixel, ce qui permet de gnrer une image!


Suivre_souris  est  une petite routine charge de "recentrer" l'image  sur  la 
souris lorsque cela est ncessaire ;  elle dplace cette dernire par bonds de 
8 pixels en largeur et de 10 pixels en hauteur,  pour viter qu'un dplacement 
ne demande un recalcul complet de l'image


La routine Executer se compose de diffrentes parties:

Executer:
  Capture_image
  Reduit_image

  Analyse_image
  Execute_image
  Code_image
  Envoi_image
Fin Executer

Capture_image: Il s'agit d'un simple vro_cpyfm (VDI 109) suivi d'un vr_trnfm 
(VDI 110) ; en clair on copie un morceau de l'cran et on le transforme dans 
un format standard (ainsi GMT sera compatible avec toute carte ventuelle)

Reduit_image: Le nombre de plans est rduit  1 (monochrome) - c'est l une 
des limites de GMT: il tourne en 1 plan ; ainsi une image en 16 couleurs sera 
transforme en une image mono (par superposition des plans)

Analyse_image: La nouvelle image (celle que l'on est en train de traiter) est 
compare avec la prcdente, et les diffrences sont notes. On peut ainsi 
effectuer un codage bas sur une animation - si l'image n'a pas change il n'y 
a rien  envoyer!

Execute_image: Deux routines sont charges de coder et d'optimiser la nouvelle 
image  partir de la prcdente - une fonte intermdiaire est cre puis 
compare  la fonte prcdente ; il en est de mme avec le masque de donnes 
(cd es caractres affichs  l'cran)
 
Code_image: Deux routines sont appelles: l'une code les modifications de 
fonte, l'autre les modifications de masque (avec optimisation) ; du code 
vidotex est alors cre.

Envoi_image: La routine la plus simple, qui se contente d'envoyer le buffer au 
minitel!


Tout cela demande beaucoup de calculs, mais la routine code en C est 
relativement rapide - ce qui demande peut tre le plus de temps est l'envoi de 
la page elle mme! C'est pourquoi le 1200 bps, voir 4800, est  proscrire. Le 
standard tant hlas le 1200, ce genre de programme demandera encore du temps 
avant de sortir!

                                                                      L'auteur

