L'écran d'argent
GW-BASIC
(PC-BASIC)
Initiation au langage Basic
Êtes-vous prêt à découvrir une autre déclaration ?
Si c'est le cas, éteignez les lumières et beurrez le pop-corn, car nous sommes sur le point de lever le rideau sur le grand écran.
Un mot sur la mémoire vidéo
Chaque fois que vous souhaitez afficher une image sur votre moniteur, l'ordinateur stocke l'image de l'écran dans la "mémoire vidéo". Le circuit du moniteur de l'ordinateur "lit" alors l'image de l'écran et l'affiche sur votre moniteur.
La mémoire vidéo "normale" est suffisamment grande pour le texte (lettres et chiffres) mais pas pour les graphiques (cercles, lignes, cases, etc.).
Par conséquent, l'ordinateur dispose de deux mémoires vidéo : une pour le texte et une pour les graphiques.
Éclairage de l'écran d'argent
Jetez un coup d'œil au programme ci-dessous pendant une seconde. Concentrez-vous sur l'instruction SCREEN à la ligne 10 :
10 SCREEN 9
20 CLS
30 LINE (0,0)-(639,349),12
40 GOTO 40
SCREEN indique à l'ordinateur d'afficher une image d'écran sur votre téléviseur. Le type d'écran qu'il affiche dépend des instructions que vous lui donnez :
Tout d'abord, vous indiquez à l'ordinateur s'il doit utiliser l'écran du moniteur pour du texte (comme des lettres ou des chiffres) ou des graphiques (comme des lignes et des cercles).
Deuxièmement, vous indiquez à l'ordinateur quel "ensemble de couleurs" utiliser.
SCREEN [mode]
Mode = 1,2,3, 7,8 ou 9
Dans le programme changez la ligne 10 pour SCREEN 0
10 SCREEN 0
Vous obtenez l'erreur Illegal function call in 30, car SCREEN 0 est un mode texte uniquement.
Maintenant exécutez le programme ci-dessous:
10 SCREEN 1
20 LOCATE 1,5:PRINT "SCREEN 1,
320 × 200 pixels, 40 caractères"
30 GOSUB 1000
40 SCREEN 2
50 LOCATE
1,5:PRINT "SCREEN 2, 640 × 200 pixels 80 caractères"
60 GOSUB 1000
70
SCREEN 7
80 LOCATE 1,5:PRINT "SCREEN 7, 320 × 200 pixels, 40 caractères"
90 GOSUB 1000
100 SCREEN 8
110 LOCATE 1,5:PRINT "SCREEN 8, 640 × 200
pixels, 80 caractères"
120 GOSUB 1000
130 SCREEN 9
140 LOCATE 1,5:PRINT
"SCREEN 9, 640 × 350 pixels, 80 caractères"
150 GOSUB 1000
160 LOCATE 14,1
170 SCREEN 0
180 END
1000 FOR I=0 TO 100
1010 PSET (I,I)
1020 NEXT
1030 LOCATE 14,1:PRINT"Appuyez sur une touche pour continuer"
1040
A$=INKEY$:IF A$="" THEN 1040
1050 RETURN
Exécutez le programme ci-dessous:
5 SCREEN 9:CLS
10 COLOR 2:Print "Vert"
20 LINE (0,0)-(639,349)
30 A$=INKEY$:IF A$="" THEN 30
40
COLOR 3:Print "Cyan"
50 LINE (0,0)-(639,349)
60 GOTO 50
Revoyons les caractéristiques des différents modes de SCREEN:
SCREEN 0
Mode texte uniquement
Format texte 40 ×
25 ou 80 × 25 avec une taille de boîte de caractères de 8 × 8 (8 × 14 avec EGA)
Affectation de 16 couleurs à l'un des 2 attributs
Affectation de 16 couleurs
à l'un des 16 attributs (avec EGA)
SCREEN 1
Graphiques à résolution
moyenne de 320 × 200 pixels
Format texte 40 × 25 avec une taille de boîte de
caractères de 8 × 8
Affectation de 16 couleurs à l'un des 4 attributs
Prend en charge à la fois EGA et CGA
2 bits par pixel
SCREEN 2
Graphiques haute résolution 640 × 200 pixels
Format texte 80 × 25 avec une
taille de boîte de caractères de 8 × 8
Affectation de 16 couleurs à l'un des
2 attributs
Prend en charge à la fois EGA et CGA
1 bit par pixel
SCREEN 7
Graphiques à résolution moyenne de 320 × 200 pixels
Format texte
40 × 25 avec une taille de boîte de caractères de 8 × 8
2, 4 ou 8 pages de
mémoire avec respectivement 64K, 128K ou 256K de mémoire installées sur l'EGA
Affectation de l'une des 16 couleurs à 16 attributs
EGA requis
4 bits par
pixel
SCREEN 8
Graphiques haute résolution 640 × 200 pixels
Format
texte 80 × 25 avec une taille de boîte de caractères de 8 × 8
1, 2 ou 4 pages
de mémoire avec respectivement 64K, 128K ou 256K de mémoire installées sur l'EGA
Affectation de l'une des 16 couleurs à 16 attributs
EGA requis
4 bits par
pixel
SCREEN 9
Graphiques à résolution améliorée de 640 × 350 pixels
Format texte 80 × 25 avec une taille de boîte de caractères de 8 × 14
Affectation soit de 64 couleurs à 16 attributs
(plus de 64K de mémoire EGA),
soit de 16 couleurs à 4 attributs (64K de mémoire EGA)
Deux pages d'affichage
si 256 Ko de mémoire EGA sont installés
EGA requis
2 bits par pixel
(mémoire EGA 64K) 4 bits par pixel (mémoire EGA supérieure à 64K)
Mode
Résolution
Plage
d'attributs
Gamme de
couleurs
Mémoire
EGA
Pages
Taille
de la page
0
40-colonne texte
NA
0-15a
NA
1
2K
80-colonne texte
NA
0-15a
NA
1
4K
1
320×200
0-3b
0-3
NA
1
16K
2
640×200
0-1b
0-1
NA
1
16K
7
320×200
0-15
0-15
64K
2
32K
128K
4
256K
8
8
640×200
0-15
0-15
64K
1
64K
128K
2
256K
4
9
640×350
0-3
0-15
64K
1
64K
0-15
0-63
128K
1
128K
0-15
0-63
256K
2
10
640×350
0-3
0-8
128K
1
128K
256K
2
a Les nombres compris entre 16 et 31 sont des versions
clignotantes des couleurs 0-15.
b Attributs applicables uniquement avec EGA.
La commande COLOR
COLOR [foreground][,[background]
foreground
= premier plan
background = arrière-plan
Attributs et couleurs
Pour divers modes d'écran et configurations matérielles d'affichage, différents paramètres d'attribut et de couleur existent. (Voir l'instruction PALETTE pour une discussion sur l'attribut et le numéro de couleur.)
La majorité de ces configurations d'attributs et de couleurs sont résumées
dans le tableau suivant :
Attributs et couleurs par défaut pour la
plupart des modes d'écran
Tableau 3
Attributs pour le Mode | Affichage couleur | Affichage monochrome | ||||
1,9 | 2 | 0,7,8,9b | Numéroc | Couleur | Numéroc | Couleur |
0 | 0 | 0 | 0 | Noir | 0 | Off |
1 | 1 | Bleu | (Souligné)a | |||
2 | 2 | Vert | 1 | Ona | ||
3 | 3 | Cyan | 1 | Ona | ||
4 | 4 | Rouge | 1 | Ona | ||
5 | 5 | Magenta | 1 | Ona | ||
6 | 6 | Marron | 1 | Ona | ||
7 | 7 | Blanc | 1 | Ona | ||
8 | 8 | Gris | 0 | Off | ||
9 | 9 | Bleu clair | Haute intensité(Souligné) | |||
10 | 10 | Vert clair | 2 | Haute intensité | ||
1 | 11 | 11 | Cyan clair | 2 | Haute intensité | |
12 | 12 | Rouge clair | 2 | Haute intensité | ||
2 | 13 | 13 | Magenta clair | 2 | Haute intensité | |
14 | 14 | Jaune | 2 | Haute intensité | ||
3 | 1 | 15 | 15 | Blanc haute intensité | 0 | Off |
a Désactivé lorsqu'il est utilisé pour l'arrière-plan.
b Avec mémoire EGA
> 64K.
c Uniquement pour le mode 0 monochrome.
Les couleurs de premier
plan par défaut pour les différents modes sont données dans le tableau suivant :
Tableau 4
Couleurs de premier plan par défaut
Attribut de premier plan par défaut | Couleur de premier plan par défaut | |||
Screen mode | Affichage couleur/étendua | Affichage monochrome | Affichage couleur/étendua | Affichage monochrome |
0 | 7 | 7 | 7 | 1 |
1 | 3 | NA | 15 | NA |
2 | 1 | NA | 15 | NA |
7 | 15 | NA | 15 | NA |
8 | 15 | NA | 15 | NA |
9 | 3b | NA | 63 | NA |
10 | NA | 3 | NA | 8 |
a écran couleur amélioré IBM
b 15 si supérieur à 64K de mémoire EGA
NA=Non Applicable
Liste des couleurs EGA
Voir SCREEN, COLOR, PALETTE pour plus de détails.
Programme faites-le vous même
Comprenez-vous SCREEN ?
Si c'est le cas, écrivez un programme qui passe de l'écran texte à l'écran graphique. Vous voudrez peut-être mettre une boucle dans le programme afin qu'il change le jeu de couleurs après avoir parcouru le programme en boucle. De cette façon, vous pouvez voir toutes les fonctionnalités de SCREEN au travail.
10 SCREEN 0
20 PRINT "Écran texte"
30 A$=INKEY$:IF A$="" THEN 30
40 FOR Y = 1 TO 2
50 SCREEN Y
60 LOCATE
19,1:PRINT "Écran" Y
70 LOCATE 20,1:PRINT
"Voici un carré ?"
80 LINE (50,50)-(120,100),Y,B
90 A$=INKEY$:IF
A$="" THEN 90
100 NEXT Y
110 FOR Y = 7 TO 9
120 SCREEN Y:COLOR Y+1
130 LOCATE 19,1:PRINT "Écran" Y
140 LOCATE
20,1:PRINT "Voici un carré ?"
150 LINE (50,50)-(120,100),Y,B
160
A$=INKEY$:IF A$="" THEN 160
170 NEXT Y