
                                'TurboVeille'
                           Informations programmers




 Note importante: 
     Turbo Veille ne pose aucun problme de compatibilit (enfin sur Falcon, 
si vous essayez sur ST ca risque de pas aller du tout hiark!)
     Cependant, sachez que TV modifie les registres vido du Falcon pour 
teindre l'cran, et notamment des registres de configuration de taille de 
ligne. Si un programme y accde sans prvenir il risque d'tre surpris.
     Mais on ne le rptera jamais assez, il est illgal d'accder  ces 
registres directement en tant qu'application.

     (Over Cadre, le sublime cadreur d'cran pour Falcon, marche sans aucun 
problme avec Turbo Veille)


a)  Version TV>1.05:
     ----------------

TurboVeille met en place un cookie si il reste assez de place dans la jar, sous 
le nom de #'VeiL' (un 'V' et 'L' majuscules et 'e' et 'i' minuscules)
Le mot long associ pointe sur un BLOC:

BLOC+offset:
--------------+-------+--------------------------------------------------------
Offset.taille | Accs |  Description
--------------+-------+--------------------------------------------------------
+$0.L         | R     |  Version TurboVeille (mot faible) au format $0000xxyy
+$4.L         | R     |  Dbut du programme (aprs la basepage) (TEXT)
+$8.L         | R     |  Routine clavier TurboVeille (adresse)
+$C.L         | R     |  Routine VBL TurboVeille (adresse)
+$10.L        | R/W   |  Compteur de VBL pour teindre l' cran (en VBLs)
+$14.L        | R     |  Sauvegarde de l'ancienne routine clavier TOS (adresse)
+$18.L        | R/W   |  Dlai avant extinction (en nombre de VBLs)
+$1C.L        | R     |  Taille du programme rsident (basepage incluse) en octets
+$31.B        | R     |  Status "teint" ($FF=allum $0=teint)
+$32.W        | R     |  Frquence VBL de TV (en Hz)
+$36.B        | R/W   |  Effacer 1e ligne cran en veille (vite les parazites)
+$37.B        | R/W   |  Etat activ (0) ou STOP (-1) (Version>1.15)
+$38.B        | R     |  Dtournement RS232 (Version>1.16)
+$39.B        | ?     |  0, non utilis
+$3A.L        | R     |  Sauvegarde ancienne routine RS232 (Version>1.16)
--------------+-------+--------------------------------------------------------


b)  Version TV>1.08:
     ----------------
Turbo Veille respecte maintenant la norme XBRA pour le vecteur clavier.
Son identificateur est le mme que pour le cookie: #'VeiL'
(Attention! Le long mot aprs l'identificateur est accessible en lecture 
uniquement! Le fait de r-crire dessus ne changerait rien!)


c) Version TV>1.15:
    ----------------
Turbo Veille peut tre teint par soft de manire plus souple:

     - Mettre en tat STOP Turbo Veille en pokant $FF en BLOC+$37 sur 1 octet
     - Demander d'eteindre l'cran en pokant -1 en BLOC+$10 sur 4 octets

Pour rallumer:

     - Demander de rallumer l'cran en pokant 0 en BLOC+$10 sur 4 octets
     - Mettre en tat ON Turbo Veille en pokant $00 en BLOC+$37 sur 1 octet

Attention! Toujours remettre  ON Turbo Veille si l'cran a t teint, sinon 
           il restera tout noir, ce qui peut tre un peu gnant ..

d) Version TV>1.16:
    ---------------

Turbo Veille peut dtourner le vecteur RS232, peut tre utile pour les souris
de type PC

e) Version TV>1.18:
    ---------------

Turbo Veille dispose dsormais d'une zone libre dans son programme rserve aux besoins
des utilisateurs. Par exemple, cette zone abritera une routine de surveillance du port srie
compatible avec les gestionnaires souris ; ou bien des routines d'extinction du disque dur
etc..

Voici ce qui suit le PREMIER long mot "USR=" du fichier T_VEILLE.DAT (ou .PRG):

	dc.l	"USR="
UserInit:
	jmp	fictif(pc)
UserON:
	jmp	fictif(pc)
UserOFF:
	jmp	fictif(pc)
VblUSR:
	jmp	fictif(pc)
ClavUSR:
	jmp	fictif(pc)
UserSetON:
	jsr	SetON
UserSetOFF:
	jsr	SetOFF
UserBloc:
	DC.L	BLOC
	
Fictif:	RTS

Ces routines sont respectivement:

- jmp sur routine d'initialisation utilisateur
- jmp sur routine appele lors de l'extinction de l'cran
- jmp sur routine appele lors du rallumage de l'cran
- jmp sur routine appele  chaque VBL
- jmp sur routine appele en vecteur clavier

Ces 5 jmp sont remplacables par des adresses pointant sur des routines de la zone
d'extension (par exemple remplacer par bra xx ou jmp xx(pc))

- jsr sur routine teignant l'cran
- jsr sur routine rallumant l'cran

! Attention: Ces 2 routines n'appelent pas elles memes UserOFF et UserON!

- Adresse du bloc de Turbo Veille


Le second mot long "USR=" est le dpart de la zone librement utilisable ; vous pouvez
y mettre ce que bon vous semble ; avec une taille de 4096 octets maximum

Turbo Veille vrifie le premier long mot qui suit "USR=" ; s'il est gal  "OFF!" alors
la zone sera efface lors de l'initialisation. Si vous exploitez la zone utilisateur, n'oubliez 
surtout pas d'effacer ces 4 octets!!

Enfin, sachez que toute vos routines devront sauver les registres si elles les utilisent ; 
de plus essayez au maximum de les optimiser (notamment en vbl) pour viter toute perte de
temps machine

Pour incorporer ces routines vous devrez donc:

- Faire une copie de scurit de T_VEILLE.DAT
- Effacer "OFF!" et le remplacer par tout autre long mot
- Ecrire dans la zone tendue (max 4 Kb)
- Fixer les adresses voulues

Voila, cette extension de Turbo Veille permet d'ajouter nombre de fonctionnalits ; lesquelles
auraient pu l'etre par moi meme si j'en avais eu le temps.. bon code!

