eds
Description
Certains PIC24 et dsPIC33 possèdent de la mémoire RAM au-delà de l'adresse
32767 (0x7FFF) Microchip appelle cette mémoire EDS (Extended Data Space).
Cette plage d'adresse entre en conflit avec la plage d'adresse PSV (Progam Visibility Space).
Il y a donc un mécanisme qui permet de différencier ces 2 plages en utilisant
les registres DSRPAG et DSWPAG. Puisque la machine virtuelle de ForthEx fonctionne
en lisant des listes d'adresses aussi bien en RAM qu'en FLASH le registre DSRPAG
qui détermine qu'elle plage sera accédée en lecture est configuré par défaut pour
acccédé la plage {0..32766} de la mémoire FLASH là où réside le système Forth.
Cependant il doit exister un mécanisme pour lire la mémoire EDS. Ce mécanisme
est constitué d'une série de mots spéciaux qui accèdent cette mémoire en lecture.
Pour l'accès en écriture ForthEx est configuré par défaut pour accéder la mémoire
EDS puisque de toute façon on ne peut écrire en mémoire FLASH. Il n'est donc pas
nécessaire d'avoir de mots spéciaux pour l'écriture dans la mémoire EDS.
E@ ( a-addr -- n )
Retourne l'entier contenu à l'adresse a-addr.
L'adresse doit-être alignée sur un nombre pair.
Les adresses < 32768 accèdes la RAM standard mais
les adresses >= 32768 accèdent la mémoire EDS.
arguments:
a-addr Adresse à lire.
retourne:
n Entier contenu à cette adresse.
EC@ ( c-addr -- c )
Retourne le caractère contenu à l'adressse c-addr.
Cette adresse est alignée sur un octet.
Les adresse <32768 accèdent la RAM standard mais
les adresses >= 32768 accès la mémoire EDS.
arguments:
c-addr Adresse à lire.
retourne:
c Octet contenu à cette adresse.
ETBL@ ( n a-addr -- n )
Retourne l'élément n d'un vecteur. Les valeurs d'indice débute à zéro.
L'adresse de la table doit-être alignée sur une adresse paire.
Les addresses <32768 accèdent la RAM standard mais
les adresses >= 32768 accèdent la mémoire EDS.
arguments:
n Indice dans le vecteur.
a-addr Adresse du vecteur.
retourne:
n Valeur de l'élément n du vecteur.
ECOUNT ( c-addr1 -- c-addr2 u )
Retourne la spécification de la chaîne comptée dont l'adresse est c-addr1.
Pour les adresses < 32768 la mémoire RAM standard est accédée mais pour les
adresses >=32768 c'est la mémoire EDS qui est accédée.
arguments:
c-addr1 Adresse d'une chaîne de caractères débutant par un compteur.
retourne:
c-addr2 Adresse du premier caractère de la chaîne.
u Longueur de la chaîne.
Index