Présentation
Le GFA est un langage de programmation de la famille des Basic écrit par Frank Ostrowski en .... pour les micros ordinateurs Atari (et amiga).
Basse Résolution
Un point logique peut prendre une des 16 couleurs du nuancier
La résolution d'affichage est de 320x200 points.
Il y a 4 bitplans.
2 octets par bitplan.
8 octets au totale mais ça encode directement 16 points.
160 octets pour une ligne de point. (20 groupes de 16 points)
Xbios
xbios(2) : Récupérer l'adresse physique de la mémoire video.
xbios(3) : Récupérer l'adresse logique de la mémoire vidéo.
xbios(4) : Récupérer le mode écran de l'atari ST. (0 = Basse résolution, 1 = Moyenne résolution, 1 Haute résolutio)
~XBIOS(5,L:adr_physique,L:adr_Logique,W) Permet de modifier l'adresse physique, Logique et la résolution de l'atari st. (-1 permet de ne pas modifier les donnés.)
Typage des variables
Le GFA Basic permet de typer des variables avec un sufixe.
! permet de créer une variable booléen (false/true). exemple : colision!
| permet de créer une variable 1 octet. (Byte/Octet) (entre 0 et 255). Exemple : vie|
& permet de créer une variable 2 octets. (Word/mots)(entre 0 et 65535). Exemple : adresse16bits&
% permet de créer une variable 4 octets.(Integer) (entre 0 et 4294967295). Exemple : adresse32bits%
# permet de créer une variable réel 8 octets. (Float) Exemple : pi#=3.14
$ permet de créer une variable de chaine de caractère.(String) (1 octet par lettre). Exemple : Nom$="Monos"
Notons que par défaut, les variables sont de type réelle.
Note pour les booléen : une variable booléen prend 1 octet,sauf dans un tableau booléen. Dans ce dernier cas, c'est 1 bit par case
Sauvegarder la résolution et la palette de couleur initiale
Présentation
Il est conseillé en GFA de mémoriser au lancement du programme la résolution de départ et la palette de couleur initiale de l'atari ST.
Puis quand on quite proprement le programme de les restituer ! Voici les informations de base !
Mémoriser la résolution et les adresse de la mémoire vidéo
Le ST possède trois modes graphiques. Le mode basse résolution, moyenne résolution et haute résolution.
Le fonction XBIOS(4) permet de récupérer la résolution du ST.
la commande suivante permet de garder en mémoire la résolution :
start_resolution = xbios(4)

Il faut aussi mémoriser l'adresse physique et logique du St. le xbios(2) permet de sortir l'adresse physique et xbios(3) permet de récupérer l'adresse logique de la mémoire vidéo.
adr_physique = xbios(2)
adr_logique = xbios(3)
Remise en état initiale du ST
c'est simple on va appeller la fonction ~XBIOS(5) qui contient des paramètres. Le premier c'est l'adresse physique, le 2nd c'est l'adresse logique et le 3em paramètre c'est le mode graphique (0-1-2)
Avant de quitter le programme avec un end ou un édit :
~XBIOS(5,L:adr_physique,L:adr_logique ,W:start_resolution)
Retour à l'état initiale du ST avant de lancer le programme.
un -1 dans un paramètre permet de ne pas modifier le paramètre voulu. Exemple pour modifier la résolution en moyenne résolution:
~XBIOS(5,L:-1,L:-1 ,W:1)
Sauvegarder la palette de couleur
Comme la résolution, il est peut être bien de mémoriser la palette de couleur initiale. Déclarer un tableau de 16 cases avec un dim old_palette(16).
Dans une boucle 'for' nous allons mettre la valeur du registre de couleur voulu avec xbios(7)
for i%=0 to 15
old_palette(i) = XBIOS(7,w:i%,W:-1)
next i%
Les 16 registres sont mémorisé.
Restoré la palette
Avant de quitter proprement le programme :
Un nouvelle boucle for avec un setcolor , le tour est joué.
for i%=0 to 15
SETCOLOR i%,old_palette(i%)
next i%
Site réalisé par Jean Monos.