Dictionnaire des mots-clés BASIC, C64
Cette section répertorie tous les mots-clés BASIC, avec des explications et des exemples, dans un format uniforme. Les détails des messages d'erreur ne sont pas inclus ici, mais rassemblés dans une liste alphabétique après cette section.
La syntaxe de chaque commande est donnée de manière standard. Les paramètres sont généralement des expressions numériques, des expressions de chaîne ou des variables, et celles-ci sont toujours soigneusement distinguées ; par exemple, ABS (expression numérique) signifie que toute expression numérique valide est utilisable avec ABS, ce qui implique que ABS peut être utilisé avec des variables, comme dans ABS(X).
Les crochets indiquent des paramètres facultatifs ; lorsqu'un tel paramètre est omis, une valeur par défaut est prise par le système.
Les fonctions numériques causent probablement la plupart des erreurs. Tout d'abord, il y a une chance d'une simple ERREUR DE SYNTAXE, peut-être une construction arithmétiquement erronée ou une parenthèse omise.
Deuxièmement, les paramètres numériques ont un large éventail de restrictions de plage : les valeurs d'octet doivent être comprises entre 0 et 255, les adresses mémoire doivent être comprises entre 0 et 65 535, les expressions entières et logiques doivent être comprises entre —32768 et +32767, aucun nombre ne peut être en dehors d'environ — 1E38 et +1E38, les dénominateurs zéro ne sont pas valides, les racines carrées ne peuvent pas exister pour les nombres négatifs, etc.
Ces erreurs sont relativement faciles à corriger, de sorte que les erreurs ne sont mentionnées que lorsque, comme dans DATA, une caractéristique notable existe.
Voir la section guide des ROM du Commodore 64 et comprend des informations sur les mots-clés. Dans quelques cas, des informations sont fournies dans ce chapitre, où elles aident à clarifier certains aspects de BASIC, et des jetons sont répertoriés pour les programmeurs intéressés par la recherche du stockage BASIC en mémoire.
ABS |
AND |
ASC |
ATN |
CHR$ |
CLOSE |
CLR |
CMD |
CONT |
COS |
DATA |
DEF |
DIM |
END |
EXP |
FN |
FOR |
FRE |
GET |
GET# |
GOSUB |
GOTO |
IF |
INPUT |
INPUT# |
INT |
LEFT$ |
LEN |
LET |
LIST |
LOAD |
LOG |
MID$ |
NEW |
NEXT |
NOT |
ON |
OPEN |
OR |
PEEK |
POKE |
POS |
PRINT |
PRINT# |
READ |
REM |
RESTORE |
RETURN |
RIGHT$ |
RND |
RUN |
SAVE |
SGN |
SIN |
SPC |
SQR |
STATUS (short ST) |
STEP |
STOP |
STR$ |
SYS |
TAB |
TAN |
THEN |
TIME (short TI) |
TIME$ (short (TI$) |
TO |
USR |
VAL |
VERIFY |
WAIT |
|
ABS
Type : Fonction numérique
Syntaxe :
ABS(expression numérique)
Modes : les modes direct et programme sont tous
deux valides.
Jeton : $B6 (182)
Entrée abrégée : A SHIFT-B
ABS renvoie la valeur absolue de l'expression numérique entre parenthèses. En d'autres termes, ABS rend un nombre négatif ou une expression positive.
Exemples:
1. 50 IF ABS(TARGET-X) <.01 THEN PRINT "DONE": END
Ceci montre comment vérifier l'égalité approximative; lorsque TARGET vaut 6, le programme ne se termine que si X est compris entre 5,99 et 6,01. Ce type de texte est généralement utilisé dans les calculs itératifs dans lesquels une valeur calculée est censée converger vers une valeur donnée.
2. 100 IF ABS(X1-X2)<3 AND ABS(Y1-Y2)<3 GOTO 90
À partir d'un programme de jeu, cela recalcule les positions de départ à l'écran pour deux joueurs si les positions de départ générées aléatoirement sont trop proches.
10 REM 'ABS'
PROGRAMME DE TEST D'OPERATION MATHEMATIQUE
20 A=18
30 B=58
40 PRINT "LA VALEUR ABSOLUE DE ";(A-B)/2;"
EST ";ABS((A-B)/2)
99 END
il peut être facilement simulé par le sous-programme suivant :
10 REM 'ABS'
PROGRAMME DE TEST DE SOUS-ROUTINE
20 PRINT "ENTRER UN NOMBRE NEGATIF ";
30 INPUT X
40 GOSUB 30010
50 PRINT "LA VALEUR ABSOLUE DE ";X;" est ";Y
60 PRINT "ENTRER O POUR UN AUTRE NOMBRE ";
70 INPUT R$
80 IF R$ = "O" THEN GOTO 20
90 END
30010 REM * ABS(X) SOUS-ROUTINE * INPUT X,
OUTPUT Y
30012 Y=X
30014 IF X>=0 THEN 30018
30016 Y=-X
30018 RETURN
30993 END
AND
Type : Opérateur logique
Syntaxe : Expression
logique ou numérique AND expression logique ou numérique
Modes : les modes
direct et programme sont tous deux valides.
Jeton : $ AF (175)
Entrée
abrégée : A SHIFT-N
AND applique l'opérateur AND logique à deux expressions. Pour les besoins de la comparaison AND, les expressions numériques sont évaluées comme des entiers signés 16 bits, de sorte que chaque opérande doit être compris entre -32768 et 32767. Les valeurs en dehors de cette plage entraînent une erreur ILLEGAL QUANTITY ERROR.
Chacun des 16 bits du premier opérande est combiné avec le bit correspondant du deuxième opérande, ce qui donne un entier de 16 bits sur deux octets. Les quatre combinaisons possibles de bits individuels correspondants sont :
0 AND 0 = 0
0 AND 1 = 0
1 AND 0 = 0
1 AND 1 = 1
Le résultat devient 1 uniquement si les deux bits sont à 1.
ET a deux utilisations distinctes en BASIC. Premièrement, il permet de calculer ensemble la valeur de vérité de plusieurs expressions logiques, comme dans :
IF X>2 AND X<3
où X doit être compris entre 2 et 3 pour que la condition soit vraie. Deuxièmement, AND désactive les bits sélectionnés, comme dans :
POKE 1, PEEK(l) AND 254
Cela force le bit 1 de l'emplacement 1 à 0, quelle que soit sa valeur précédente (qui bascule dans la RAM à la place de la ROM BASIC).
Bien que ces utilisations semblent différentes, AND se comporte de manière identique dans chacune. Une expression logique est considérée comme fausse lorsque 0 (tous les bits du résultat sont nuls) et est considérée comme vraie lorsque — 1 (tous les bits du résultat sont 1) ou non nuls.
Exemples:
1. 100 IF PEEK(J) AND 128=128 GOTO 200
La ligne 200 sera exécutée si le bit 7 de l'emplacement PEEKed est activé ; les autres valeurs de bit sont ignorées.
2. X=X AND 248
Cela convertit X en X moins son reste lors de la division par 8, donc 0-7 devient 0, 8-15 devient 8, et ainsi de suite. C'est nettement plus rapide que X= INT(X/8)*8. Cela fonctionne (pour X jusqu'à 256) car 248 = %11111000. Par conséquent, X AND 248 efface les trois bits les plus à droite à 0.
3. OK= YR>84 AND YR<90 AND MN>0 AND MN<13 AND OK
Partie d'une routine de validation de date, cela utilise OK comme variable pour valider plusieurs entrées sur plusieurs lignes de BASIC.
Utilisation:
IF NOT OK THEN numéro de ligne à brancher pour une nouvelle saisie si les données étaient inacceptables.
10 REM PROGRAMME DE TEST LOGIQUE 'AND'
20 A = 8
30 B = 6
40 IF A=8 AND B=6 THEN 70
50 PRINT "AND A ECHOUER LE TEST EN TANT
QU'OPERATEUR LOGIQUE"
B0 GOTO 99
70 PRINT "AND A PASSER LE TEST EN TANT
QU'OPERATEUR LOGIQUE"
99 END
ASC
31