Document fait avec Nvu Document made with Nvu




Pilote des afficheurs matriciels de l'émulateur

Instructions
Utilisation
Exemple

Principe

Si les afficheurs matriciels de l'émulateur sont des registres adressables dans la zone des registres d'extension du coeur FORTH décrit comme suit:

290 (0x122) colonne 0 (à gauche)
291 (0x123) colonne 1
...
299 (0x12B) colonne 9 (à droite)

lecture/écriture:
bits[15..8] = 0x00
bits[7..0] = 0, point en bas, ..., point en haut

point allumé si 1


Le pilote va permettre de faciliter l'utilisation de ces registrse en se servant du noyau temps réel. Le principe consiste à permettre au développeur de n'avoir qu'à gérer qu'une simple chaine de 2 caractères codés en ASCII.


Instructions

- CW_MATRICE 290

Numéro du registre d'extension de la première des 10 colonnes des 2 afficheurs.

adr_chr MATRICE -

Affichage de 2 caractères ASCII.
adr_chr est l'adresse du premier des 2 caractères codés en ASCII (8 bits par caractère).


Utilisation

Le pilote n'étant pas intégré au noyau, il fau d'abord compiler le fichier source matriciels.txt avant de pouvoir l'utiliser.

La séquence suivante correspond à l'affichage de "12":

" 12" STRING S_NOMBRE

S_NOMBRE 1+ MATRICE


Le pilote utilise une table permettant de transformer chacun des 2 codes ASCII en un caractère affichable (0 à 127).

Exemple

Le programme suivant installe une tâche qui affiche tous les caractères possibles:

DECIMAL

"   " STRING S_MATRICE ( 2 espaces )

TACHE: T_MATRICIELS
 S_MATRICE 1+ DUP MATRICE DUP C@
 IF
  ( Decalage des caracteres vers la gauche )
  DUP >R 1+ C@ DUP R@ C! DUP 127 = OVER 0= OR
  IF
   ( Effacement progressif de la chaine lorsque le caractere 127 vient d'etre affiche )
   DUP XOR
  ELSE
   1+
  THEN
  R> 1+ C!
 ELSE
  ( Initialisation de la chaine et retrait de la tache )
  2 32 FILL T_MATRICIELS T_RETIRE
 THEN
;

500 T_MATRICIELS 32768 OVER T_AJOUTE T_PERIODE

Voici une vidéo: