Le catalogue des instructions
BASIC du 8052AH

 

 

Retour à la page des microcontrôleurs Foxacogyth

Sommaire

- 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

Index des instructions par rôle

Arithmétique - Arithmétique trigonométrie - Chaîne de caractères - Commande - Entrées/sorties - Horloge - Logique - Mémoire - Structure

Arithmétique

- opérateur dual
* opérateur dual
** opérateur dual
/ opérateur dual
ABS fonction
EXP fonction
INT fonction
LOG fonction
RND variable système
SGN fonction

Arithmétique trigonométrie

SQR fonction
ATN fonction
COS fonction
PI constante arithmétique
SIN fonction
TAN fonction

Chaîne de caractères

+ opérateur dual
ASC fonction
ASC instruction mode direct/exécution
CHR fonction

Commande

CLEARI instruction mode direct/exécution
CONT instruction mode direct
END instruction mode direct/exécution
IDLE instruction exécution
NEW instruction mode direct
REM instruction mode direct/exécution
RUN instruction mode direct
STOP instruction mode direct/exécution
CALL instruction mode direct/exécution
RROM instruction mode direct/exécution
ONERR instruction exécution

Entrées/sorties

è instruction mode direct/exécution
BAUD instruction mode direct/exécution
CR fonction/constante
GET fonction instruction mode direct/exécution
INPUT instruction mode direct/exécution
LIST instruction mode direct
LIST# instruction mode direct
NULL instruction mode direct/exécution
ONEXT1 instruction exécution
P. instruction mode direct/exécution
PH0. instruction mode direct/exécution
PH0.# instruction mode direct/exécution
PH1. instruction mode direct/exécution
PH1.# instruction mode direct/exécution
PRINT instruction mode direct/exécution
PRINT# instruction mode direct/exécution
TAB fonction
USING fonction

Horloge

CLOCK0 instruction mode direct/exécution
CLOCK1 instruction mode direct/exécution
ONTIME instruction exécution
PWM instruction mode direct/exécution
TIME variable système
XTAL variable système

Logique

.AND. opérateur dual
.OR. opérateur dual
.XOR. opérateur dual
=, <>, >, >=, <, <=. opérateur relationnel dual
AND opérateur dual
NOT fonction
OR opérateur dual
XOR opérateur dual
CBY fonction

Mémoire

CLEAR instruction mode direct/exécution
CLEARS instruction mode direct/exécution
DATA instruction mode exécution
DBY fonction instruction mode direct/exécution
DIM instruction mode direct/exécution
FPROG... instruction mode direct
FREE variable système
LEN variable système
LET instruction mode direct/exécution
MTOP variable système
PGM instruction mode direct/exécution
POP instruction mode direct/exécution
PROG instruction mode direct/exécution
PROG1 instruction mode direct/exécution
PROG2 instruction mode direct/exécution
PUSH instruction mode direct/exécution
RAM instruction mode direct/exécution
READ instruction exécution
RESTORE instruction exécution
ROM instruction mode direct
STRING instruction mode direct/exécution
XBY fonction instruction mode direct/exécution
XFER instruction mode direct

Structure

DO UNTIL instruction mode exécution
DO WHILE instruction exécution
ELSE instruction exécution
FOR TO STEP NEXT instruction exécution
GOSUB RETURN instruction exécution
GOTO instruction mode direct/exécution
IF THEN ELSE instruction mode direct/exécution
NEXT instruction exécution
ON GOSUB instruction exécution
ON GOTO instruction exécution
RETI instruction exécution
RETURN instruction exécution
THEN instruction exécution
UNTIL instruction exécution
WHILE instruction exécution

 


-

Type : opérateur dual

Rôle : arithmétique

Syntaxe : arg1 - arg2

Explication
L'opérateur effectue la soustraction de arg1 par arg2. arg1 et arg2 sont des expressions numériques. Voir +.

Exemple
PRINT A-B


*

Type : opérateur dual

Rôle : arithmétique

Syntaxe : arg1 * arg2

Explication
L'opérateur effectue la multiplication de arg1 par arg2. arg1 et arg2 sont des expressions numériques. Voir /, **.

Exemple
PRINT 12.6*72.5


**

Type : opérateur dual

Rôle : arithmétique

Syntaxe : arg1 ** arg2

Explication
L'opérateur effectue l'exponentiel de arg1 par arg2. Le résultat est la valeur numérique résultant de arg1 à la puissance arg2. arg1 et arg2 sont des expressions numériques. arg2 est un entier limité à 255 Voir *.

Exemple
B=2**8 PRINT 72**2


.AND.

Type : opérateur dual

Rôle : logique

Syntaxe : .AND.

Explication
L'opérateur effectue un "et" logique bit à bit entre arg1 et arg2. arg1 et arg2 sont deux expressions numériques entières positives limités à 65535. Voir .OR., .XOR., NOT.

Exemple
>PH0. 0F1h .AND. 21H 21H


.OR.

Type : opérateur dual

Rôle : logique

Syntaxe : .OR.

Explication
L'opérateur effectue un "ou" logique bit à bit entre arg1 et arg2. arg1 et arg2 sont deux expressions numériques entières positives limités à 65535. Voir .AND., .XOR., NOT.

Exemple
>PH0. 12h .OR. 43H 53H


.XOR.

Type : opérateur dual

Rôle : logique

Syntaxe : .XOR.

Explication
L'opérateur effectue un "ou exclusif" logique bit à bit entre arg1 et arg2. arg1 et arg2 sont deux expressions numériques entières positives limités à 65535. Voir .OR., .AND., NOT.

Exemple
>PH0. 11H .XOR. 50H 41H


/

Type : opérateur dual

Rôle : arithmétique

Syntaxe : arg1 / arg2

Explication
L'opérateur effectue la division de arg1 par arg2. arg1 et arg2 sont des expressions numériques. Voir *.

Exemple
PRINT 12.6/3


è

Type : instruction mode direct/exécution

Rôle : entrées/sorties

Syntaxe : è

Explication
Voir PRINT.

Exemple
Voir PRINT.


+

Type : opérateur dual

Rôle : arithmétique/cha?hne

Syntaxe : arg1 + arg2

Explication
arg1 et arg2 sont de mème type. Si arg1 et arg2 sont des expressions numériques, l'opérateur effectue une addition entre les deux expressions. Si arg1 et arg2 sont des cha?hnes de caractère, l'opérateur effectue une concaténation des deux cha?hnes. Voir -.

Exemple
PRINT 12+15 $(2)="NOM "+$(1)


=, <>, >, >=, <, <=.

Type : opérateur relationnel dual

Rôle : logique

Syntaxe : arg1 "op" arg2

Explication
Effectue la relation entre arg1 et arg2 et rend vrai (65535) ou faux (0). arg1 et arg2 sont deux expressions de type identique.

Exemple
IF A>B THEN PRINT "A est plus grand que B" >PRINT 1=2 0


ABS

Type : fonction

Rôle : arithmétique

Syntaxe : ABS(arg1)

Explication
L'opérateur rend la valeur absolue de arg1. arg1 est une expression numérique. Voir SGN.

Exemple
>PRINT ABS(2-72) 70 >PRINT ABS(46) 46


AND

Type : opérateur dual

Rôle : logique

Syntaxe : .AND.

Explication
Voir .AND.

Exemple
Voir .AND.


ASC

Type : fonction

Rôle : cha?hne

Syntaxe : ASC(arg1) ASC(arg2,arg3)

Explication
Première syntaxe : Retourne le code ASCII correspondant au caractère arg1. arg1 est un caractère. Seconde syntaxe : Retourne le code ASCII correspondant au caractère à la place arg3 de la cha?hne de caractères arg2. arg3 est une expression numérique entière. arg2 est une expression cha?hne de caractères. Voir PRINT, CHR.

Exemple
>PRINT ASC(A) 65 >$(1)="TOTO" >PRINT ($(1),2) 79


ASC

Type : instruction mode direct/exécution

Rôle : cha?hne

Syntaxe : ASC(arg1,arg2)=arg3

Explication
Affecte au caractère placé en arg2 de la cha?hne arg1 le caractère correspondant au code ASCII arg3. arg1 est une cha?hne de caractères. arg2 est une expression numérique entière. arg3 est une expression numérique entière comprise entre 0 et 255. Voir LET, ASC, CHR.

Exemple
>$(1)="TOTO" >ASC($(1),2)=65 >PRINT $(1) TATO


ATN

Type : fonction

Rôle : arithmétique trigonométrie

Syntaxe : ATN(arg1)

Explication
Rend le résultat de la fonction arctangente de arg1 en radians. arg1 est une expression numérique compris entre -200000 et +200000. Voir COS, PI, SIN, TAN.

Exemple
A=ATN(A)


BAUD

Type : instruction mode direct/exécution

Rôle : entrées/sorties

Syntaxe : BAUD arg1

Explication
Détermine la vitesse de transmission des données sur la ligne LINE PRINTER OUTPUT. Il faut que la variable XTAL soit correctement affectée. arg1 est un entier positif. L'instruction BAUD ne sert qu'avec LIST# ou PRINT# et assimilés. Voir LIST# et PRINT#.

Exemple
BAUD 1200


CALL

Type : instruction mode direct/exécution

Rôle : commande/mémoire

Syntaxe : CALL arg1

Explication
Appel à un programme en code assembleur. Ce code doit se trouver en mémoire de programme [[EP]ROM]. Voir PGM, CBY.

Exemple
CALL 0C000h


CBY

Type : fonction

Rôle : mémoire

Syntaxe : CBY(arg1)

Explication
Renvoie l'octet contenu dans la mémoire de programme à l'adresse arg1. arg1 est une expression numérique entière comprise entre 0 et 65535. Voir DBY, XBY, CALL, PGM.

Exemple
>A=CBY(0C000H) >PRINT A 1


CHR

Type : fonction

Rôle : cha?hne

Syntaxe : CHR(arg1) CHR(arg2,arg3)

Explication
Première syntaxe: Retourne le caractère correspondant au code ASCII arg1. arg1 est une expression numérique entière comprise entre 0 et 255. Seconde syntaxe : Retourne le caractère placé en arg2 de la cha?hne arg3. arg2 est une cha?hne d caractères. arg3 est une expression numérique entière. Voir ASC.

Exemple
>$(1)="BONJOUR" >PRINT CHR($(1),5) J


CLEAR

Type : instruction mode direct/exécution

Rôle : mémoire

Syntaxe : CLEAR

Explication
Efface toutes les variables en mémoire, toutes les interruptions logicielles et réinitialise les piles. Les cha?hnes de caractères ne sont pas effacées. Voir RUN, CLEARI, CLEARS, NEW.

Exemple
CLEAR


CLEARI

Type : instruction mode direct/exécution

Rôle : commande

Syntaxe : CLEARI

Explication
Réinitialise les interruptions comme ONTIME, ONEX1. Voir CLEAR, CLEARS, NEW, RUN, ONTIME, ONEX1.

Exemple
CLEARI


CLEARS

Type : instruction mode direct/exécution

Rôle : mémoire

Syntaxe : CLEARS

Explication
Réinitialise les piles. Les piles sont utiles à toutes les instructions de boucles et de sous-programmes. Voir CLEAR, CLEARI, NEW, RUN, PUSH, POP.

Exemple
CLEARS


CLOCK0

Type : instruction mode direct/exécution

Rôle : horloge

Syntaxe : CLOCK0

Explication
Désactive l'horloge en temps réel. Voir CLOCK1, ONTIME, TIME.

Exemple
CLOCK0


CLOCK1

Type : instruction mode direct/exécution

Rôle : horloge

Syntaxe : CLOCK1

Explication
Active l'horloge en temps réel. La fonction TIME est actualisé toutes les 5 ms. Il faut que la variable XTAL soit correctement affectée. Voir CLOCK0, ONTIME, TIME.

Exemple
CLOCK1


CONT

Type : instruction mode direct

Rôle : commande

Syntaxe : CONT

Explication
Reprend une exécution après une suspension par CTRL+C ou STOP à l'endroit d'arrèt. Voir STOP, END.

Exemple
CONT


COS

Type : fonction

Rôle : arithmétique trigonométrie

Syntaxe : COS(arg1)

Explication
Rend le résultat de la fonction cosinus de arg1 en radians. arg1 est une expression numérique compris entre -200000 et +200000. Voir SIN, PI, TAN, ATN.

Exemple
B=COS(PI/2)


CR

Type : fonction/constante

Rôle : entrées/sorties

Syntaxe : CR

Explication
Fonction à utiliser conjointement avec PRINT (ou équivalent) permettant d'envoyer un retour chariot (sans ligne suivante). Voir PRINT et dérivés.

Exemple
>PRINT "AA",CR,"B", BA


DATA

Type : instruction mode exécution

Rôle : mémoire

Syntaxe : DATA arg1[,arg2[,arg3...]]]

Explication
Sert à stocker des données [constantes] qui seront lues par l'instruction READ. arg1, arg2... sont indifféremment des constantes, des expressions ou des cha?hnes de caractères. Les lignes DATA sont placées n'importe oè dans le listing. Il y a autant de ligne DATA que l'on veut. Voir READ, RESTORE, LET.

Exemple
10 DATA 10, 20, 5/10, SIN[PI], "TOTO"


DBY

Type : fonction instruction mode direct/exécution

Rôle : mémoire

Syntaxe : DBY(arg1)

Explication
Première syntaxe, lorsque DBY est utilisée comme fonction. Renvoie l'octet contenu dans la mémoire de données RAM interne à l'adresse arg1. Seconde syntaxe, lorsque DBY est utilisée comme instruction. Affecte une valeur à l'octet contenu dans la mémoire de données interne à l'adresse arg1. arg1 est une expression numérique entière comprise entre 0 et 255. Voir CBY, XBY.

Exemple
DBY(A)=12 PRINT DBY(19H)


DIM

Type : instruction mode direct/exécution

Rôle : mémoire

Syntaxe : DIM arg1(arg2)[,arg3(arg4)...]

Explication
Dimensionne un tableau de variables numériques. Un espace mémoire est réservé pour le stockage des valeurs du tableau. arg1 est le nom de la variable, arg2 est le nombre d'éléments du tableau plus 1, inférieur à 255. On ne peut pas redimensionner un tableau. Voir LET, CLEAR.

Exemple
DIM A[15],B[4] B[0]=12 A[12]=23


DO UNTIL

Type : instruction mode exécution

Rôle : structure

Syntaxe : DO liste1 UNTIL arg1

Explication
Exécute la liste de d'instructions liste1 contenue entre DO et UNTIL jusqu'à ce que arg1 soit vrai. arg1 est une expression logique. La liste liste1 d'instructions est exécutée au moins une fois. Il s'agit d'une boucle conditionnelle. Le nombre d'instructions contenu entre DO et UNTIL n'est pas limité. On peut imbriquer des boucles conditionnelles (une boucle à l'intérieur d'une autre). Ne pas croiser des boucles conditionnelles (le début d'une boucle entre le début et la fin d'une autre boucle). Voir DO... WHILE, FOR... NEXT, IF... THEN... ELSE.

Exemple
10 A=1:B=2 20 DO 30 A=A+1:B=B+2 40 PRINT A,B,A*B 50 UNTIL A=5


DO WHILE

Type : instruction exécution

Rôle : structure

Syntaxe : DO liste1 WHILE arg1

Explication
Exécute la liste liste1 des instructions contenue entre DO et WHILE tant que arg1 est vrai. arg1 est une expression logique. La liste liste1 d'instruction est exécutée au moins une fois. Il s'agit d'une boucle conditionnelle. Le nombre d'instructions contenu entre DO et WHILE n'est pas limité. On peut imbriquer des boucles conditionnelles (une boucle à l'intérieur d'une autre). Ne pas croiser des boucles conditionnelles (le début d'une boucle entre le début et la fin d'une autre boucle). Voir DO... UNTIL, FOR... NEXT, IF... THEN... ELSE.

Exemple
10 A=5 20 DO:A=A-1 30 PRINT A 40 WHILE A>0 50 PRINT "FINI"


ELSE

Type : instruction exécution

Rôle : structure

Syntaxe : ELSE

Explication
Voir IF... THEN... ELSE...

Exemple
Voir IF... THEN... ELSE...


END

Type : instruction mode direct/exécution

Rôle : commande

Syntaxe : END

Explication
Termine l'interprétation d'un listing BASIC. Voir RUN, STOP.

Exemple
10 PRINT "DEBUT" 20 END 30 PRINT "JAMAIS AFFICHE"


EXP

Type : fonction

Rôle : arithmétique

Syntaxe : EXP(arg1)

Explication
Rend l'exponentiel de arg1. arg1 est une expression numérique. Voir LOG, **.

Exemple
>PRINT EXP(0) 1


FOR TO STEP NEXT

Type : instruction exécution

Rôle : structure

Syntaxe : FOR arg1=arg2 TO arg3 [STEP arg4] liste1 NEXT [arg1]

Explication
Exécute la liste d'instructions liste1 pour chaque valeur de arg1 allant de arg2 à arg3 avec un pas de arg4. arg1 est une variable numérique. arg2 et arg3 sont des expressions numériques. arg4 est une expression numérique. Si STEP arg4 est omis, le pas par défaut est de +1. Après l'instruction NEXT, arg1 est optionnel. C'est une boucle définie. Le nombre d'instructions contenu entre FOR et NEXT n'est pas limité. On peut imbriquer des boucles (une boucle à l'intérieur d'une autre). Ne pas croiser de boucles (le début d'une boucle entre le début et la fin d'une autre boucle). Voir DO... WHILE, DO... UNTIL, IF... THEN... ELSE.

Exemple
>10 FOR I=15 TO 12 STEP -1 >20 PRINT I, >30 NEXT I >RUN 15 14 13 12 READY


FPROG...

Type : instruction mode direct

Rôle : mémoire

Syntaxe : FPROG1, FPROG2, FPROG3...

Explication
Idem les instructions PROG, PROG1 et PROG2 mais utilisant une méthode beaucoup plus rapide de programmation d'EPROM. [F pour fast]. En principe la tension d'alimentation VCC-VSS devrait ètre portée à 6V, mais èa marche sans èa. Voir PROG, PROG1, PROG2.

Exemple
FPROG


FREE

Type : variable système

Rôle : mémoire

Syntaxe : FREE

Explication
Renvoi la place disponible dans la mémoire de données externe (RAM). Voir NEW, CLEAR, LIST, LEN, MTOP.

Exemple
PRINT FREE REM est équivalent à PRINT MTOP-LEN-511


GET

Type : fonction instruction mode direct/exécution

Rôle : entrées/sorties

Syntaxe : GET

Explication
Attend un caractère venant du terminal et renvoie le code ASCII de ce caractère. En mode commande, la fonction GET renvoie systématiquement 0. Voir INPUT, ASC, CHR.

Exemple
10 A=GET 20 PRINT A


GOSUB RETURN

Type : instruction exécution

Rôle : structure

Syntaxe : GOSUB arg1 RETURN

Explication
Appel un sous programme à la ligne arg1 et revient après la rencontre de RETURN pour continuer à l'instruction suivante de GOSUB. arg1 est une expression entière dont le résultat est un numéro de ligne existant. C'est une instruction de saut. Voir GOTO, RETURN, ON GOTO, ON GOSUB.

Exemple
10 PRINT "DEBUT" 20 GOSUB 100 30 PRINT "FIN" 40 END 100 PRINT "SOUS-PROGRAMME" 110 RETURN


GOTO

Type : instruction mode direct/exécution

Rôle : structure

Syntaxe : GOTO arg1

Explication
Continue l'interprétation du listing par la ligne arg1 sans retour. arg1 est une expression entière dont le résultat est un numéro de ligne existant. C'est une instruction de saut. Voir GOSUB, ON... GOTO, ON... GOSUB.

Exemple
10 A=0 20 A=A+1 30 PRINT A, 40 GOTO 20 50 PRINT "JAMAIS EXECUTE"


IDLE

Type : instruction exécution

Rôle : commande

Syntaxe : IDLE

Explication
Met le microcontrôleur en état d'attente d'une interruption provoquée par ONEX1 ou ONTIME. Il faut s'assurer qu'une des deux interruptions va se produire, sinon, le microcontrôleur reste bloqué. Lorsqu'une interruption se produit, au retour de la routine, l'interprétation reprend à l'instruction juste après IDLE. Voir ONEX1, ONTIME, DO... UNTIL et DO... WHILE

Exemple
10 TIME=0:CLOCK1:ONTIME 2,100 15 PRINT "DEBUT" 20 IDLE 30 PRINT "FINI" 40 END 100 PRINT "INTERRUPTION A ",TIME," SECONDES." 110 RETI


IF THEN ELSE

Type : instruction mode direct/exécution

Rôle : structure

Syntaxe : IF arg1 [THEN] liste1 [ELSE liste2]

Explication
Il s'agit d'un test. Si arg1 est vrai, interprète les instructions de liste1, sinon, interprète les instructions de liste2. arg1 est une expression logique. liste1 et liste2 sont des listes d'instructions. Dans le cas oè liste1 ou liste2 sont sur le modèle GOTO numligne, GOTO peut ètre omis. THEN peut ètre omis. ELSE liste2 est optionnel. Dans le cas ou ELSE est absent, si arg1 est faux, l'interprétation continue à la ligne suivante. L'ensemble de l'instruction IF THEN ELSE doit tenir sur une seule et mème ligne. Voir DO... UNTIL, DO... WHILE.

Exemple
10 A=10 20 INPUT B 30 IF A>B THEN 100 ELSE PRINT "A n'est pas plus grand que B" 40 END 100 PRINT "A>B"


INPUT

Type : instruction mode direct/exécution

Rôle : entrées/sorties

Syntaxe : INPUT [arg1]arg2[,arg3...]

Explication
Attend de la part du terminal une (ou plusieurs) valeur(s) suivie(s) d'un retour à la ligne. arg1 est une constante de cha?hne de caractères (entre guillemets) contenant un message envoyé au terminal. arg2, arg3... sont des variables numériques ou cha?hnes de caractères qui seront affectées des valeurs venant du terminal. Voir GET, LET, PRINT.

Exemple
10 STRING 110,10 20 INPUT "Bonjour "A,$(1) 30 PRINT A 40 PRINT $(1)


INT

Type : fonction

Rôle : arithmétique

Syntaxe : INT(arg1)

Explication
Rend la partie entière de arg1. arg1 est une expression numérique. Voir /.

Exemple
>PRINT INT(3/2) 1


LEN

Type : variable système

Rôle : mémoire

Syntaxe : LEN

Explication
Renvoi la taille du listing contenu dans la mémoire de données externe (RAM). Voir NEW, LIST, XBY, MTOP, FREE.

Exemple
>NEW >PRINT LEN 1


LET

Type : instruction mode direct/exécution

Rôle : mémoire

Syntaxe : LET arg1=arg2

Explication
Affecte directement une valeur (le résultat de l'expression arg2) à la variable arg1. arg1 est le nom d'une variable numérique ou cha?hne de caractères ou encore le nom de certaines variables-opérations (comme XTAL, IE...). LET est optionnel. arg2 est une expression de type équivalent à arg1 (soit numérique, soit cha?hne de caractères). Si une variable numérique n'a pas été affectée, elle vaut 0. Si une cha?hne de caractère n'a pas été affectée, elle vaut la cha?hne vide "". Voir FOR... NEXT, DATA, READ, RESTORE, CLEAR.

Exemple
LET A=12 B(5)=12+A $(2)="TOTO" XTAL=11059200


LIST

Type : instruction mode direct

Rôle : entrées/sorties

Syntaxe : LIST [[arg1]][[-arg2]]

Explication
Envoie sur la terminal le listing actif. En l'absence d'argument, la totalité du listing est envoyée. arg1 et arg2 présentent respectivement la première et la dernière ligne à envoyer. arg1 et arg2 sont des entiers positifs. Pour arrèter l'envoie d'un listing, il faut taper CTRL+C. Voir RUN, PROG, PRINT, NEW.

Exemple
LIST LIST 200 ou LIST 200- LIST 100-200 LIST -50


LIST#

Type : instruction mode direct

Rôle : entrées/sorties

Syntaxe : LIST# [arg1][[-arg2]

Explication
Idem LIST mais l'envoie se fait par la ligne LINE PRINTER OUTPUT P1.7 à la vitesse définie par l'instruction BAUD. Voir LIST, RUN, PROG, PRINT#, NEW.

Exemple
BAUD 1200 LIST# 50-100


LOG

Type : fonction

Rôle : arithmétique

Syntaxe : LOG(arg1)

Explication
Rend le logarithme népérien de arg1. arg1 est une expression numérique positive. Voir EXP, **.

Exemple
A=LOG(B)


MTOP

Type : variable système

Rôle : mémoire

Syntaxe : MTOP

Explication
Fourni ou impose l'adresse supérieur de la mémoire de données (RAM) externe disponible pour l'interpréteur BASIC. Pour protéger une partie de la mémoire de données externe, il suffit de rabaisser MTOP. Au RESET, MTOP est égal à la dernière adresse de la mémoire de données externe. Voir XBY, LEN, FREE.

Exemple
>PRINT MTOP 16384 >MTOP=15000 >PRINT MTOP 15000


NEW

Type : instruction mode direct

Rôle : commande

Syntaxe : NEW

Explication
Efface le listing contenu dans la mémoire RAM. Les variables, cha?hnes et interruptions sont effacées. Voir CLEAR, LIST, RUN.

Exemple
NEW


NEXT

Type : instruction exécution

Rôle : structure

Syntaxe : NEXT [arg1]

Explication
Voir FOR... TO... NEXT

Exemple
Voir FOR... TO... NEXT


NOT

Type : fonction

Rôle : logique

Syntaxe : NOT(arg1)

Explication
Rend le complément à 0FFFFh de arg1. arg1 est une expression numérique entière positive limitée à 65535. Voir .XOR..

Exemple
>PRINT NOT(0) 65535 >PRINT NOT(65000) 535


NULL

Type : instruction mode direct/exécution

Rôle : entrées/sorties

Syntaxe : NULL [arg1]

Explication
Détermine le nombre de caractères nuls [00h] envoyés après un renvoi à la ligne. Utile pour certains Modems spéciaux. arg1 est un entier de 0 à 255. Au démarrage, le nombre de caractères nuls envoyés après un renvoi à la ligne est fixé à 0. Voir CR, PRINT, LIST.

Exemple
NULL 3


ON GOSUB

Type : instruction exécution

Rôle : structure

Syntaxe : ON arg1 GOSUB arg2[, arg3[,arg4...]]

Explication
Appel un sous programme à la ligne arg2 sir arg1 vaut 0, arg3 si arg1 vaut 1... et revient après la rencontre de RETURN pour continuer à l'instruction suivante de ON GOSUB. arg1 est un expression entière positive ou nulle. arg2 à arg4... sont des expressions entières dont le résultat de chacune est un numéro de ligne existant. C'est une instruction de saut conditionnel. Voir RETURN, GOSUB, ON GOTO, GOTO.

Exemple
10 A=0 20 ON A GOSUB 1000,1010 30 PRINT "FINI" 40 END 1000 PRINT "A=",A 1010 RETURN


ON GOTO

Type : instruction exécution

Rôle : structure

Syntaxe : ON arg1 GOTO arg2[, arg3[,arg4...]]

Explication
Continue l'interprétation du listing par la ligne arg2 sir arg1 vaut 0, la ligne arg3 sir arg1 vaut 1... arg1 est un expression entière positive ou nulle. arg2 à arg4... sont des expressions entières dont le résultat de chacune est un numéro de ligne existant. C'est une instruction de saut conditionnel. Voir GOTO, ON GOSUB, GOSUB.

Exemple
10 A=1 20 ON A GOTO 100,200,300 30 END 100 REM SI A=0 200 REM SI A=1 210 PRINT A 300 REM SI A=2


ONERR

Type : instruction exécution

Rôle : commande/structure

Syntaxe : ONERR arg1

Explication
Dans le cas d'une erreur simple, indique à quelle ligne doit s'orienter l'interprétation du listing. Les erreurs traitées sont les suivantes : 10 - division par zéro 20 - dépassement de capacité de calcul (grandes valeurs) 30 - dépassement de capacité de calcul (petites valeurs) 40 - mauvais argument arg1 est une expression définissant un numéro de ligne. Pour conna?htre le numéro de l'erreur qui a provoqué le branchement, il faut regarder le contenu de la mémoire de donnée externe à l'adresse 257 (101h). Pour reprendre l'interprétation du listing juste après l'endroit de l'erreur, il faut l'instruction RETURN Voir RETURN, ONTIME.

Exemple
10 ONERR 100 20 A=SQRT(-1) 30 PRINT A 40 END 100 A=0 105 PRINT XBY(257) 110 RETURN


ONEXT1

Type : instruction exécution

Rôle : entrées/sorties

Syntaxe : ONEXT1 arg1

Explication
Lorsqu'une interruption matérielle (INT1 P3.3) se produit, l'interprétation du listing normal est suspendue pour continuer en ligne arg2 et revient au listing normal dès la rencontre de l'instruction RETI. arg1 est une expression numérique. arg2 est une expression numérique donnant le numéro de ligne du sous-programme de traitement d'interruption. Voir RETI, ONTIME, IDLE.

Exemple
10 ONEX1 100 20 PRINT "CONTINUE" 30 GOTO 20 100 PRINT "INT1" 110 RETI


ONTIME

Type : instruction exécution

Rôle : horloge

Syntaxe : ONTIME arg1,arg2

Explication
Lorsque la variable-opérateur TIME atteint la valeur arg1, l'interprétation du listing normal est suspendue pour continuer en ligne arg2 et revient au listing normal dès la rencontre de l'instruction RETI. arg1 est une expression numérique. arg2 est une expression numérique donnant le numéro de ligne du sous-programme de traitement d'interruption. Voir RETI, ONEX1, IDLE, TIME, CLOCK0, CLOCK1.

Exemple
10 TIME=0:CLOCK1:ONTIME 2,100 20 DO:REM RIEN 30 WHILE TIME<10 40 END 100 PRINT "INTERRUPTION A ",TIME," SECONDES." 110 ONTIME TIME+2,100 120 RETI


OR

Type : opérateur dual

Rôle : logique

Syntaxe : .OR.

Explication
Voir .OR.

Exemple
Voir .OR.


P.

Type : instruction mode direct/exécution

Rôle : entrées/sorties

Syntaxe : P.

Explication
Voir PRINT.

Exemple
Voir PRINT


PGM

Type : instruction mode direct/exécution

Rôle : mémoire

Syntaxe : PGM

Explication
Permet de programmer une partie de mémoire de programme EPROM avec le contenu d'une partie de la mémoire de données RAM. Des informations doivent ètre données avant l'interprétation de cette instruction. Ces informations sont stockées en mémoire de données internes. 1Bh:19h : adresse de départ des données en mémoire de données externes. 1Ah:18h : adresse-1 de départ de l'implantation en EPROM. 1Fh:1Eh : le nombre d'octets à transférer. 40h:41h : la vitesse de programmation. 26.3h : égal à 1 pour l'algorithme intelligent de programmation ; égal à 0 pour l'algorithme normal à 50 ms. Il faut que l'EPROM soit vide [effacée] avant la première programmation. De plus, une tension de programmation [12,5 V ou 21V] doit ètre appliquée à l'EPROM. Si l'EPROM n'est pas vide [effacée] à l'emplacement désiré ou si la tension de programmation n'est pas appliquée, aucun message d'erreur n'est renvoyé. Pour voir si une erreur se produit, il suffit de consulter le nombre d'octets à transférer et voir s'il est égal à 0. En cas d'erreur, il faut consulter l'adresse de départ de l'implantation en EPROM pour voir oè s'est produit l'erreur. Voir CALL, PROG et équivalents, CBY, XBY, DBY.

Exemple
10 REM VITESSE 20 W=0.0005 : REM OU 0.001 OU 0.05 30 R=65536-W*XTAL/12 40 DBY(40H)=R/256 50 DBY(41H)=R .AND. 0FFH 55 IF W=0.0005 THEN DBY(26H)=DBY(26H) .OR. 8H ELSE DBY(26H)=DBY(26H) .AND. 0F7H 60 REM ADRESSE DEPART EN RAM : 2000H 70 DBY(1BH)=20H 80 DBY(19H)=0H 70 REM ADRESSE DEPART EN EPROM : 0C220H 80 DBY(1AH)=0C2H 90 DBY(18H)=20H 100 REM NOMBRE D'OCTETS : 0112H 110 DBY(1FH)=01H 120 DBY(1EH)=12H 130 REM TRANSFERT 140 PGM 150 PRINT "FINI"


PH0.

Type : instruction mode direct/exécution

Rôle : entrées/sorties

Syntaxe : PH0. listearg1

Explication
Comme PRINT, mais les valeurs des expressions numériques sont envoyées au format hexadécimal sur 2 chiffres minimum. Voir PRINT et équivalents.

Exemple
>PH0. 18 12H


PH0.#

Type : instruction mode direct/exécution

Rôle : entrées/sorties

Syntaxe : PH0.# listearg1

Explication
Comme PRINT#, mais les valeurs des expressions numériques sont envoyées au format hexadécimal sur 2 chiffres minimum. Voir PRINT et équivalents.

Exemple
Voir PH0.


PH1.

Type : instruction mode direct/exécution

Rôle : entrées/sorties

Syntaxe : PH1. listearg1

Explication
Comme PRINT, mais les valeurs des expressions numériques sont envoyées au format hexadécimal sur 4 chiffres minimum. Voir PRINT et équivalents.

Exemple
>PH1. 18 0012H.


PH1.#

Type : instruction mode direct/exécution

Rôle : entrées/sorties

Syntaxe : PH1.# listearg1

Explication
Comme PRINT#, mais les valeurs des expressions numériques sont envoyées au format hexadécimal sur 4 chiffres minimum. Voir PRINT et équivalents.

Exemple
Voir PH1.


PI

Type : constante arithmétique

Rôle : arithmétique trigonométrie

Syntaxe : PI

Explication
Rend la valeur approchée du nombre PI. Voir SIN, COS, TAN.

Exemple
>PRINT PI 3.1415927


POP

Type : instruction mode direct/exécution

Rôle : mémoire

Syntaxe : POP arg1[,arg2...]

Explication
Récupérer depuis la pile les valeurs numériques précédemment placées avec PUSH et les affecter aux variables arg1, arg2... Pour placer des valeurs, voir l'instruction PUSH. La dernière valeur placée dans la pile sera la première récupérée. Voir PUSH, CLEARS.

Exemple
Voir PUSH.


PRINT

Type : instruction mode direct/exécution

Rôle : entrées/sorties

Syntaxe : PRINT listearg1

Explication
Envoie vers le terminal les expressions contenues dans la liste d'arguments. D'autres syntaxes sont autorisées : P. et è. listearg1 est une suite d'expressions numériques ou cha?hne de caractères séparées par une virgule. Les expressions numériques sont évaluées et converties en format décimal. Si l'instruction ne se termine pas par une virgule, un retour de ligne est exécuté. Voir USING, CR, TAB, PH0., LIST, INPUT.

Exemple
>PRINT 12+15 27 >PRINT "TOTO A ",AGE," ANS." TOTO A 9 ANS.


PRINT#

Type : instruction mode direct/exécution

Rôle : entrées/sorties

Syntaxe : PRINT# listearg1

Explication
Idem PRINT mais l'envoie se fait par la ligne LINE PRINTER OUTPUT P1.7 à la vitesse définie par l'instruction BAUD. Voir BAUD, PRINT, LIST#.

Exemple


PROG

Type : instruction mode direct/exécution

Rôle : mémoire

Syntaxe : PROG

Explication
Programme l'EPROM avec le listing contenu dans la RAM. Le numéro du listing ainsi recopié en EPROM est le suivant du dernier listing programmé. Il faut que l'EPROM soit vide [effacée] avant la première programmation. De plus, une tension de programmation [12,5 V ou 21V] doit ètre appliquée à l'EPROM. Si l'EPROM n'est pas vide [effacée] ou si l'EPROM est pleine ou si la tension de programmation n'est pas appliquée, un message d'erreur est renvoyé. Voir PGM, ROM, XFER, PROG1, PROG2, FPROG..., LIST, RUN, RROM.

Exemple
>RAM READY >PROG 3 READY >ROM 3 READY


PROG1

Type : instruction mode direct/exécution

Rôle : mémoire

Syntaxe : PROG1

Explication
Sauvegarder la vitesse de communication via le terminal est stockée en EPROM. Aux RESET suivants, le microcontrôleur n'attendra pas la transmission du caractère et affichera directement le message d'invite. Cette instruction est complémentaire de PROG (qu'elle ne remplace pas).

Exemple
PROG1


PROG2

Type : instruction mode direct/exécution

Rôle : mémoire

Syntaxe : PROG2

Explication
Idem PROG1, mais à chaque RESET suivant, le premier listing contenu dans l'EPROM est interprété dès le démarrage. Cette instruction permet de rendre complètement autonome du terminal. Après l'utilisation de PROG2, il n'est pas possible de revenir au RESET normal [attente du caractère espace] sans effacer l'EPROM. Cette instruction est complémentaire de PROG (qu'elle ne remplace pas). Voir PROG, PGM, ROM, XFER, PROG1, FPROG..., LIST, RUN, RROM.

Exemple
PROG2


PUSH

Type : instruction mode direct/exécution

Rôle : mémoire

Syntaxe : PUSH arg1[,arg2...]

Explication
Place dans la pile l'évaluation des expressions numériques arg1, arg2... Pour récupérer la valeur stockée, voir POP. La dernière valeur placée dans la pile sera la première récupérée. Voir POP, CLEARS.

Exemple
5 REM ECHANGE DE CONTENU DE VARIABLES 10 A=10 20 B=20 30 PUSH A,B 40 PRINT A;B 50 POP A,B 60 PRINT A,B


PWM

Type : instruction mode direct/exécution

Rôle : horloge

Syntaxe : PWM arg1,arg2,arg3

Explication
Génère une séquence d'oscillations définies par l'utilisateur. La sortie de cette oscillation se fait sur la patte PWM P1.2. arg1 est une expression numérique entière indiquant le nombre de cycles horloge pendant lesquelles l'état haut doit ètre maintenu. arg2 est une expression numérique entière indiquant le nombre de cycles horloge pendant lesquelles l'état bas doit ètre maintenu. Un cycle horloge est approximativement d'une durée de 1.085 microsecondes avec un quartz à 11,0592 MHz. arg3 est une expression numérique entière indiquant le nombre de cycle total d'état haut puis bas doit ètre effectué. Voir XTAL.

Exemple
PWM 100,100,1000 produit 1000 cycles de créneaux carrés d'une période de 217 microsecondes (4608 Hz) sur la patte P1.2.


RAM

Type : instruction mode direct/exécution

Rôle : mémoire

Syntaxe : RAM

Explication
Rend actif le listing contenu dans la mémoire RAM. Au démarrage, c'est la RAM qui est active. Voir ROM, LIST, RUN, RROM, XFER, NEW.

Exemple
RAM


READ

Type : instruction exécution

Rôle : mémoire

Syntaxe : READ arg1[,arg2[,arg3...]]]

Explication
Lit la donnée suivante contenue dans les lignes DATA et la place dans une variable. Il s'agit donc d'une affectation. On ne peut pas lire plus de donnée qu'il n'y en a dans la totalité du listing en cours [sans utiliser RESTORE]. Voir DATA, RESTORE, LET, INPUT.

Exemple
20 FOR I=1 TO 2 30 READ A,B:PRINT A+B 40 NEXT I 50 READ $[1] 60 PRINT $[1]


REM

Type : instruction mode direct/exécution

Rôle : commande

Syntaxe : REM

Explication
Indique que tout ce qui se trouve sur la ligne à la suite de l'instruction est en remarque et ne doit pas ètre interprété. C'est utile pour commenter des listing. Voir LIST, RUN.

Exemple
>10 PRINT "BONJOUR" >20 REM PRINT "TOTO" >RUN BONJOUR READY


RESTORE

Type : instruction exécution

Rôle : mémoire

Syntaxe : RESTORE

Explication
Réinitialise le compteur des données. La prochaine valeur lue avec l'instruction READ sera la première de tout le listing en cours. Voir DATA, READ, LET, INPUT.

Exemple
70 RESTORE 80 READ A:PRINT A


RETI

Type : instruction exécution

Rôle : structure

Syntaxe : RETI

Explication
Voir ONEX1 et ONTIME.

Exemple
Voir ONEX1 et ONTIME.


RETURN

Type : instruction exécution

Rôle : structure

Syntaxe : RETURN

Explication
Voir GOSUB... RETURN ou ONERR

Exemple
Voir GOSUB... RETURN ou ONERR


RND

Type : variable système

Rôle : arithmétique

Syntaxe : RND

Explication
Rend un nombre pseudo-aléatoire compris entre 0 et 1.

Exemple
>PRINT INT(RND*100) 51


ROM

Type : instruction mode direct

Rôle : mémoire

Syntaxe : ROM [arg1]

Explication
Rend actif le listing arg1 contenu dans la ROM externe à l'adresse 8000h. arg1 présente le numéro du listing à rendre actif. arg1 est un entier. En l'absence de arg1, c'est le listing 1 de la ROM qui est rendu actif. Dans le cas oè arg1 est plus grand que le nombre de listing contenu dans la ROM, un message d'erreur est renvoyé. Le listing rendu actif n'est pas modifiable. Il est juste possible de l'exécuter [RUN], le consulter [LIST] et le transférer en RAM [XFER].

Exemple
ROM ROM 3


RROM

Type : instruction mode direct/exécution

Rôle : commande/mémoire

Syntaxe : RROM arg1

Explication
Efface les variables de la mémoire ainsi que les interruptions puis lance l'interprétation du listing numéro arg1 contenu dans la (EP)ROM, en commenèant par la première ligne. Il est donc impossible de passer des variables ou des cha?hnes de caractères d'un listing à un autre. arg1 présente le numéro du listing à interpréter. arg1 est un entier. Dans le cas oè arg1 est plus grand que le nombre de listing contenu dans la ROM, un message d'erreur est renvoyé. Pour commencer l'interprétation d'un listing à une ligne donnée, utiliser l'instruction GOTO. Après la fin de l'interprétation, le message READY est affiché. On peut suspendre une exécution en tapant CTRL+C. Voir RUN, ROM, RAM, LIST, PROG.

Exemple
RROM 2


RUN

Type : instruction mode direct

Rôle : commande

Syntaxe : RUN

Explication
Efface les variables de la mémoire ainsi que les interruptions puis lance l'interprétation du listing actif, en commenèant par la première ligne. Pour commencer l'interprétation d'un listing à une ligne donnée, utiliser l'instruction GOTO. Après la fin de l'interprétation, le message READY est affiché. On peut suspendre une exécution en tapant CTRL+C. Voir RAM, ROM, RROM, STOP, END, CONT, GOTO.

Exemple
>10 PRINT 1+2 >RUN READY >


SGN

Type : fonction

Rôle : arithmétique

Syntaxe : SGN(arg1)

Explication
Rend le signe de arg1 : -1 si arg1<0 0 si arg1=0 1 si arg1>0 arg1 est une expression numérique. Voir ABS.

Exemple
>PRINT SGN(-3) -1


SIN

Type : fonction

Rôle : arithmétique trigonométrie

Syntaxe : SIN(arg1)

Explication
Rend le résultat de la fonction sinus de arg1 en radians. arg1 est une expression numérique compris entre -200000 et +200000. Voir COS, PI, TAN, ATN.

Exemple
A=SIN(PI/3)


SQR

Type : fonction

Rôle : arithmétique

Syntaxe : SQR(arg1)

Explication
Rend la racine carrée de arg1. arg1 est une expression numérique. Voir **.

Exemple
>PRINT SQR(100) 10


STOP

Type : instruction mode direct/exécution

Rôle : commande

Syntaxe : STOP

Explication
Suspend l'interprétation d'un listing BASIC. Un message est envoyé au terminal annonèant l'arrèt. L'interprétation du listing peut reprendre avec l'instruction CONT. Voir RUN, END, CONT.

Exemple
10 PRINT "DEBUT" 20 STOP 30 PRINT "JAMAIS AFFICHE SAUF AVEC CONT"


STRING

Type : instruction mode direct/exécution

Rôle : mémoire

Syntaxe : STRING arg1,arg2

Explication
Réserve de la mémoire de données RAM pour des cha?hnes de caractères. arg1 est une expression numérique entière définissant le nombre total de caractères que peut contenir une variable cha?hne de caractères. arg2 est une expression numérique entière indiquant le nombre de variables cha?hne de caractères possible (moins une). Au RESET, aucun espace n'est alloué aux cha?hnes de caractères. Attention : à chaque exécution de STRING, l'instruction CLEAR est exécutée automatiquement. Voir CLEAR, NEW, PRINT, INPUT, LET.

Exemple
STRING 100,10 permet des cha?hnes de 100 caractères en 9 cha?hnes nommées de $(0) à $(8).


TAB

Type : fonction

Rôle : entrées/sorties

Syntaxe : TAB(arg1)

Explication
Fonction à utiliser conjointement avec PRINT (ou équivalent) permettant de positionner exactement sur la ligne des expressions. arg1 est une expression numérique entière. Voir PRINT et équivalents.

Exemple
>PRINT TAB(5),"A",TAB(10),"B" A B


TAN

Type : fonction

Rôle : arithmétique trigonométrie

Syntaxe : TAN(arg1)

Explication
Rend le résultat de la fonction tangente de arg1 en radians. arg1 est une expression numérique compris entre -200000 et +200000. Voir COS, PI, SIN, ATN.

Exemple
A=TAN(B)


THEN

Type : instruction exécution

Rôle : structure

Syntaxe : THEN

Explication
Voir IF... THEN... ELSE...

Exemple
Voir IF... THEN... ELSE...


TIME

Type : variable système

Rôle : horloge

Syntaxe : TIME

Explication
Dans le cas d'une lecture (fonction), renvoie le nombre de secondes écoulés d'après l'horloge en temps réel. Dans le cas d'une instruction, affecte une valeur au compteur de nombre de secondes écoulés. Voir CLOCK0, CLOCK1, ONTIME.

Exemple
CLOCK1 PRINT TIME TIME=0 PRINT TIME


UNTIL

Type : instruction exécution

Rôle : structure

Syntaxe : UNTIL arg1

Explication
Voir DO... UNTIL.

Exemple
Voir DO... UNTIL.


USING

Type : fonction

Rôle : entrées/sorties

Syntaxe : USING(arg1)

Explication
Fonction à utiliser conjointement avec PRINT (ou équivalent) permettant de formater des expressions numériques. Lorsque arg1 est de la forme Fx oè x est compris entre 3 et 8, le format d'envoi se fait avec x chiffres. Sinon, arg1 est une suite de # représentant un chiffre et un "." indiquant la marque de la décimale. Exemple : ##.##. Voir PRINT et équivalents, PH0. et PH1..

Exemple
>PRINT USING(F3),12 1.20 E 1 > PRINT USING(##.###),12 12.000


WHILE

Type : instruction exécution

Rôle : structure

Syntaxe : WHILE arg1

Explication
Voir DO... WHILE.

Exemple
Voir DO... WHILE.


XBY

Type : fonction instruction mode direct/exécution

Rôle : mémoire

Syntaxe : XBY(arg1)

Explication
Première syntaxe, lorsque XBY est utilisée comme fonction. Renvoie l'octet contenu dans la mémoire de données RAM externe à l'adresse arg1. Seconde syntaxe, lorsque XBY est utilisée comme instruction. Affecte une valeur à l'octet contenu dans la mémoire de données externe à l'adresse arg1. arg1 est une expression numérique entière comprise entre 0 et 65535. Voir CBY, DBY, MTOP.

Exemple
XBY(4000H)=255 PRINT XBY(100H)


XFER

Type : instruction mode direct

Rôle : mémoire

Syntaxe : XFER

Explication
Recopie le listing sélectionné de la ROM en mémoire RAM [pour le modifier par exemple] et entre en mode RAM. Voir RAM, ROM, PROG, LIST, RUN, NEW.

Exemple
XFER


XOR

Type : opérateur dual

Rôle : logique

Syntaxe : .XOR.

Explication
Voir .XOR.

Exemple
Voir .XOR.


XTAL

Type : variable système

Rôle : horloge

Syntaxe : XTAL

Explication
Dans le cas d'une lecture (fonction), renvoie la fréquence supposée du quartz en hertz. Dans le cas d'une instruction, affecte une valeur à la fréquence supposée du quartz. Il est indispensable que XTAL contienne la bonne fréquence (celle du quartz branché au microcontrôleur). La valeur au RESET est de 11592000. Voir TIME, BAUD, PROG, PGM.

Exemple
>PRINT XTAL 11592000 XTAL=9000000


Webmaster : Sinclair ( philippe.lucidarme@wanadoo.fr ) dernière mise à jour : 30 juillet 1999.