
 Bird's Wings
 ############
 
 Cookies et XbraS:
 ----------------
 
 Cookie:        'WBrd'  Le long mot associ‚ correspond … l'adresse d'un bloc
 Xbra Trap14,Trap1:
                'BW_2'
 
 Description du bloc B.W.:
 Adresse+offset:

 R/W: AccŠs en lecture/‚criture
 R:   AccŠs en lecture UNIQUEMENT!

 Offset Taille  AccŠs    Description
 +0     L       R        Adresse de l'‚cran virtuel
 +4     W       R        Xmax physique
 +6     W       R        Ymax physique
 +8     W       R        Nombre de plans de bits
 +10    W       R        Xmax virtuel
 +12    W       R        Ymax virtuel
 +14    W       R        Version, en format $xxyy (exemple: $0112 -> 1.12)
 +16    L       R        Taille de l'‚cran virtuel en octets 
 +20    W       R        Mode interne
 +22    W       R/W      Nombre de points anticip‚s pour le d‚placement de l'‚cran
 +24    W       R        Taille d'une ligne virtuelle en octets
 +26    W       R        Incr‚mentation X de l'‚cran en points
 +28    W       R        Incr‚mentation Y de l'‚cran en points
 +30    W       R        R‚solution (VSetmode)
 +32    W       R        Graduation horizontale
 +34    B       R/W      Flag pour le d‚placement de l'‚cran, $FF=autoris‚
                         Note: Remis … $FF lors d'un appel XBIOS!
 +35    B       R        Etat de l'‚cran, $FF=virtuel
 +36    W       R/W      Flags:    0 Superscroll si demand‚ (1 oui)
                                   1 Centrage (1 oui) 
                                   2 R‚serv‚
                                   3 SuperScroll en continu (Vertic.) (1 oui)
                                   4 SuperScroll en continu (Horiz.) (1 oui)
                                   5 Scroll blocker autoris‚ (1 oui)
                                   6 Intercepter PTerm? (1 oui)
                                   7 Clic_g + Clic_d pour centrage? (1 oui)
 +38    B       R        $FF
 +39    B       R/W      Masque shift pour centrage/stop
 +40    B       R/W      Move status ($FF=scroll interdit par l'utilisateur)
 +41    B       ?        R‚serv‚
 +62    W                Dernier mot du bloc



 Fonctions systŠme:
 -----------------

 Bird's Wings a ‚t‚ programm‚ de fa‡on … ce qu'il soit compatible avec le plus 
 grand nombre de programmes.
 Pour cela, les fonctions Xbios 2,5,88 et 91 sont d‚tourn‚es et identifi‚es 
 par Bird's Wings.
 PTerm0, PTerm $4C sont ‚galement d‚tourn‚s.

 Indications sur l'utilisation de ces fonctions:

 - Les indications sont donn‚es pour le GfA, mais sont valables pour tous les 
   langages of course!
 - Mode correspond … un mode vid‚o quelconque

 - *W* signale les cas o— les indications se rapportent uniquement si 
   Bird's Wings est actif
   NB: Actif signifie que Bird's Wings est install‚ MAIS AUSSI qu'il est en mode
       "actif", c'est … dire que la r‚solution virtuelle est cens‚e ˆtre l….

       Exemples: 
                Vous lancez en r‚solution virtuelle un programme qui modifie les
                adresses hardware vid‚o directement. Bird's Wings n'est plus
                "actif" mais restaurera la vid‚o … la fin du programme, car
                aucune demande de changement n'a ‚t‚ formul‚e.
                
                Lancez maintenant, toujours en r‚solution virtuelle, un programme
                qui mette le bureau en mode "ST moyenne", par les voies "l‚gales"
                (Xbios 5 ou au pire 88). Bird's Wings n'est non seulement plus
                "actif", mais il ne restaurera pas la vid‚o en fin de programme, 
                puisque le systŠme est d‚sormais en "ST moyenne" par la demande
                de ce programme.
                
   
   
 - (*W*) signale les cas o— les indications sont valables, que B.W. soit actif
   ou non



 G e m d o s :

 PTerm: $0, $4C
 ------

 Gemdos(0)                    *W*: Si l'‚cran est tordu, il est remis en place
 Gemdos($4C,Err)
 .. ou bombes (ce qui revient au mˆme)


 X B i o s :

 Phybase: 2
 -------

 Xbios(2)                     Renvoi le d‚but de l'‚cran physique
                              *W*: Xbios(2) ne change pas en cas de scrolling


 SetScreen: 5
 ---------

 Xbios(5,L:..,L:..,ST_res)    (*W*) Fonctionne

 Xbios(5,L:Adr,L:Adr,-1)      (*W*) Fonctionne (attention … la taille de 
                              l'‚cran, voir VGetSize)

 Xbios(5,L:Adr1,L:Adr2,-1)    (*W*) Fonctionne

 Xbios(5,Adr1,Adr2,3,Mode)    (*W*) Fonctionne


 VSetMode: 88
 --------

 Xbios(88,-1)                 (*W*) Renvoi le Mode (bit 12 … 1 si B.W. actif)

 Xbios(88,Mode)               (*W*) Fonctionne


 VGetSize: 91
 --------

 Xbios(91,Mode)               (*W*) Fonctionne



 Ce qui ne marche pas..:
 ######################
  
 AccŠs direct en lecture/‚criture … l'adresse de l'‚cran ($FFFF82xx)
 ou accŠs aux fonctions XBios directement dans la ROM
 (c'est pourquoi ADebug ne marche pas correctement.. h‚las!)

 Ce qui est  d‚conseill‚:
 #######################
 
 AccŠs direct en lecture/‚criture aux registres vid‚o
 (LineWidth=utiliser la line A, offsets -2 et +2 [.W])


 Nota:
     Lorsque "Mode" a le bit 12 … 1, les autres bits n'ont absolument aucune
     utilit‚. Cependant vous ne devez pas en tenir compte pour r‚installer l'‚cran.

     Donc:
     * Un Xbios(91,Bset(Mode,12)) renverra toujours la mˆme taille d'‚cran, 
     celle de l'‚cran actuel.  
     * Un Xbios(88,Bset(Mode,12)) ; avec Mode<>du mode actuel, ne fera 
     que r‚installer l'actuelle r‚solution.


 That's All.


