home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
No Fragments Archive 4: The Falcon Archive
/
nf_archive_four_v1.0.iso
/
ARCHIVE
/
WORK
/
UTILITY
/
BWINGS15.ZIP
/
DOCS.BW
/
BWINGS.ASM
< prev
next >
Wrap
Assembly Source File
|
1994-08-31
|
6KB
|
168 lines
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.