III. Programmer
Les programmes PRGM2 se programment comme des programmes basics. Il suffit juste d'ajouter au début du programme le mot clé :
'PRGM2
Les fonctions peuvent ensuite être appelées avec la syntaxe suivante :
Paramètres_de_la_fonction
code_de_la_fonction -> F
While F:WhileEnd
Voici la liste des fonctions :
I. Gestion de l'écran
La VRAM est une mémoire vidéo. On y met les dessins avant de les afficher à l'écran.
Cela permet d'éviter le clignotement de l'écran.
1ClearVRAM
Effacer la VRAM.
2ClearScreen
Efface l'écran.
Il n'est pas nécessaire d'effacer l'écran avant d'afficher la VRAM.
3DisplayVRAM
Affiche la VRAM.
4SaveVRAM
Sauvegarde la VRAM.
Paramètre :
X = numéro de la page
5RestoreVRAM
Restore la VRAM.
Paramètre :
X = numéro de la page
II. Contrôle du contraste
6SetContrast
Permet de modifier le contraste.
Paramètre :
C = valeur du contraste
7GetContrast
Retourne dans C la valeur initial du contraste.
Si C=0, il s'agit de l'émulateur ou d'un modèle inconnu de calculatrice.
III. Fonctions graphiques
L'origine de la fenêtre graphique, de coordonnées (0;0), est en haut à gauche. Vous ne pouvez pas la modifier.
Le point en bas à droite a pour coordonnées (127;63).
Il y a donc une ligne et une colonne de plus qu'en basic.
Certaines fonctions graphiques utilisent les nombres complexes.
Les nombres complexes sont composés d'une partie réelle et d'une partie imaginaire, cela permet de stocker les coordonnées de 2 points
dans une seule variable.
Pour différencier la partie imaginaire de la partie réelle on utilise i ([SHIFT] [0]).
Par exemple le nombre 3+8i a pour partie réelle 3, et pour partie imaginaire 8.
Pour ce qui est de la couleur, la valeur 0 correspond au blanc, tandis que la valeur 1 correspond au noir.
Vous pouvez tout à fait utiliser les fonctions classiques dans vos programmes PRGM2.
Cependant les fonctions graphiques classiques effacent la VRAM, il faut donc mieux les appeler avant les fonctions PRGM2.
Voir aussi l'aide pour le nom du fichier.
8SetPixel
Affiche un pixel dans la VRAM.
Paramètres :
X = abcisse
Y = ordonnée
C = couleur
9GetPixel
Retourne la couleur d'un pixel de la VRAM dans R.
Paramètres :
X = abcisse
Y = ordonnée
10DrawLine
Affiche une ligne dans la VRAM.
Paramètres :
X = abcisses (sous forme complexe, la partie réelle correspond à x1 et la partie imaginaire à x2)
Y = ordonnées (sous forme complexe, la partie réelle correspond à y1 et la partie imaginaire à y2)
C = couleur
Exemple : si X=12+66i et Y=24+38i alors la ligne reliera le point de coordonnées (12;24) au point de coordonnées (66;38)
11DrawRectangle
Affiche un rectangle dans la VRAM.
Paramètres :
X = abcisses (sous forme complexe, la partie réelle correspond à x1 et la partie imaginaire à x2)
Y = ordonnées (sous forme complexe, la partie réelle correspond à y1 et la partie imaginaire à y2)
C = couleur
12DrawCircle
Affiche un cercle dans la VRAM.
Paramètres :
X = abcisse
Y = ordonnée
R = rayon
C = couleur
13DrawFilledCircle
Affiche un cercle plein dans la VRAM.
Paramètres :
X = abcisse
Y = ordonnée
R = rayon
C = couleur
14Bmp
Affiche un sprite, depuis un fichier contenu dans la mémoire de stockage, dans la VRAM.
Paramètres :
M = nom du fichier
B = numéro du sprite compris entre 0 et 99
X = abcisse (sous forme complexe, la partie imaginaire de X correspond à la largeur du sprite)
Y = ordonnées (sous forme complexe, la partie imaginaire de Y correspond à la hauteur du sprite)
C = mode d'affichage (0 = or, 1 = and, 2 = xor)
Par défault je vous conseil d'utiliser le mode or sur fond blanc, et xor sur fond noir.
Les sprites sont codés au format bitmap.
Ils sont affichés avec clipping, et peuvent donc être affichés même si ils ne sont pas complétement sur l'écran.
Pour plus de précisions sur les modes et sur le codage des sprites référez vous à la documentation de
MonochromeLib.
Vous pouvez aussi utiliser mon utilitaire
pour coder vos sprites on-calc.
Une fois le sprite codé, voici comment insérer le code dans un programme :
'SPRITE0={60,126,251,253,253,255,126,60}
Remplacer 0 par le numéro de votre sprite et le tableau par celui de votre sprite.
Attention, la dimension du tableau doit correspondre à celle indiquée dans X et Y.
Transférez ensuite le programme dans le dossier PRGM2 de votre mémoire de stockage.
15Text
Affiche un texte, depuis un fichier contenu dans la mémoire de stockage, dans la VRAM.
Paramètres :
M = nom du fichier
B = numéro du texte compris entre 0 et 99
X = abcisse
Y = ordonnées
C = mode d'affichage (sous forme complexe)
Si la partie réelle de C = 0, le texte est affiché comme en locate, la forme comlexe de C correspond alors à la couleur du texte (0 = noir, 1 = blanc).
Si la partie réelle de C = 1, le texte est affiché comme un texte en basic,
et la partie complexe peut alors prendre 4 valeurs différentes (0 = and noir, 1 = or noir, 2 = and blanc , 3 = or blanc).
Voici comment insérer le code dans un programme :
'TEXT0="HELLO WORLD"
Remplacer 0 par le numéro de votre texte.
Transférez ensuite le programme dans le dossier PRGM2 de votre mémoire de stockage.
Si certains caractères ne s'affichent pas, signalez le moi, je les ajouterai.
16Number
Affiche un nombre dans la VRAM.
Paramètres :
B = nombre
X = abcisse
Y = ordonnées
C = mode d'affichage (sous forme complexe)
Si la partie réelle de C = 0, le texte est affiché comme en locate, la forme comlexe de C correspond alors à la couleur du texte (0 = noir, 1 = blanc).
Si la partie réelle de C = 1, le texte est affiché comme un texte en basic,
et la partie complexe peut alors prendre 4 valeurs différentes (0 = and noir, 1 = or noir, 2 = and blanc , 3 = or blanc).
17HorizontalScroll
Décale horizontalement tous les pixels de la VRAM.
Paramètre :
X = scroll
Si X est positif les pixels dont décalés vers la droite, si X est négatif les pixels sont décalés vers la gauche.
Les pixels qui sortent de l'écran sont replacés de l'autre cotés.
18VerticalScroll
Décale verticalement tous les pixels de la VRAM.
Paramètre :
Y = scroll
Si Y est positif les pixels dont décalés vers le bas, si Y est négatif les pixels sont décalés vers le haut.
Les pixels qui sortent de l'écran sont replacés de l'autre cotés.
IV. Communication entre calculatrices
19SerialOpen
Ouvre le port 3pin.
Retourne 0 dans R si le port est ouvert.
20SerialClose
Ne pas oublier de fermer le port 3pin.
21SerialRead
Reçoit des données.
Retourne 0 dans R si la réception est accomplie.
B contient la valeur reçue.
22SerialWrite
Envoie des données.
Paramètre :
B = valeur à envoyer
V. Gestions des fichiers externes
Les fichiers externes sont stockées dans le dossier PRGM2 de la mémoire de stockage.
Voir aussi l'aide pour le nom du fichier.
23FileCreate
Crée un fichier dans le dossier PRGM2 de la mémoire de stockage.
Paramètres :
M = nom du fichier
X = taille du fichier (c'est à dire le nombre de valeurs que pourra contenir le fichier)
24FileRead
Lis une valeur dans un fichier contenu dans le dossier PRGM2 de la mémoire de stockage.
Retourne 0 dans R si la lecture est accomplie.
B contient la valeur lue.
Paramètres :
M = nom du fichier
X = emplacement de la valeur à lire (la première valeur est à l'emplacement 0, la seconde à 1...)
25FileWrite
Ecrit une valeur dans un fichier contenu dans le dossier PRGM2 de la mémoire de stockage.
Paramètres :
M = nom du fichier
X = emplacement de la valeur à écrire (la première valeur est à l'emplacement 0, la seconde à 1...)
B = valeur à écrire
VI. MultiGetkey
26MultiGetkey
Permet de tester plusieurs touches simultanément.
Retourne dans R, un 1 à la position des touches enfoncées, sinon 0.
Voici les positions des touches détectées : 10e0 = DROITE, 10e1 = HAUT, 10e2 = BAS, 10e3 = GAUCHE, 10e4 = ALPHA, 10e5 = SHIFT
VII. Overclock
27Overclock
Augmente la fréquence du processeur et donc accélère certaines fonctions.
La calculatrice fait un reset à la fin du programme.
VIII. Arrêt du timer
28TimerStop
Arrête le timer.
Je vous conseille fortement de l'utiliser à la fin du programme pour éviter d'éventuels plantages.
IX. Gestion du temps réel
29RealTime
Retourne dans R le temps en minute depuis la premier appel.
Paramètre :
M = nom du fichier (il permet de différencier plusieurs programmes utilisant le temps réel).
Aides :
I. Nom des fichiers
Certaines fonctions utilisent un fichier stocké dans le dossier PRGM2 de la mémoire de stockage.
Le nom du fichier doit être composé de 4 lettres ou chiffres, transcris selon la table ASCII
et rentrés les uns à la suite des autre dans la variable M.
Exemple : pour le fichier DEMO, on a selon la table ASCII :
D = 68, E = 69, M = 77 et O = 79
La variable M doit donc contenir 68697779.
II. Table ASCII
32 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
espace |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
A |
B |
C |
D |
E |
F |
G |
H |
I |
J |
K |
L |
M |
N |
O |
P |
Q |
R |
S |
T |
U |
V |
W |
X |
Y |
Z |