ON - RETURN
Dictionnaire des mots-clés BASIC, C64
Du Commodore 64
ON
Type : Instruction conditionnelle
Syntaxe : ON expression numérique
GOTO numéro de ligne [,numéro de ligne...]
ON expression numérique GOSUB
numéro de ligne [,numéro de ligne...]
L'expression numérique doit être
évaluée et tronquée à une valeur comprise entre 0 et 255.
Modes : Les
modes direct et programme sont tous deux valides.
Jeton : $91 (145)
Entrée abrégée : Aucune
Fonction :
ON permet un branchement conditionnel vers l'un des numéros de ligne listés, en fonction de la valeur de l'expression qui suit ON.
Si cette valeur est 1, le premier numéro de ligne est utilisé ; si elle est 2, le deuxième, et ainsi de suite.
Si la valeur est 0 ou trop grande pour la liste, la ligne est ignorée et le traitement se poursuit avec l'instruction suivante.
Ceci offre une méthode lisible pour programmer plusieurs instructions IF, à
condition qu'une variable prenne des valeurs consécutives : 1, 2, 3, ...
Exemples :
1. ON SGN(X)+2 GOTO 100,200,300
La ligne ci-dessus se divise en trois branches, selon que X soit négatif, nul ou positif.
2. 90 ON ASC(IN$)-64 GOTO 100,200,300,400
Cette ligne passe à l'une des lignes listées, selon que IN$ soit A, B, C ou D.
3. 30 ON 6*RND(1)+1 GOSUB 100,200,300,400,500,600
Cette fonction sélectionne au hasard l'une des six sous-routines d'un jeu.
4.
100 ON X GOTO 400,410,420,430,440,450
101 ON X-6 GOTO 460,470,480
Ci-dessus figure un exemple de la manière dont les options peuvent être réparties sur plusieurs lignes de programme (à condition que X ne soit pas égal à 0).
OPEN
Type : Instruction d'entrée/sortie
Syntaxe :
Tape : OPEN
expression numérique [,expression numérique [.expression numérique [.chaîne de
caractères]]]
La première expression numérique, le numéro de fichier,
doit être comprise entre 1 et 255 ;
la seconde est le numéro de périphérique, qui est 1 ;
la troisième définit le type de lecture ou d'écriture ;
et l'expression de chaîne de caractères facultative est le nom du fichier.
Disk : OPEN expression numérique, expression numérique, expression numérique
[,chaîne de caractères].
Ici, le numéro de fichier doit être compris
entre 1 et 255, le numéro de périphérique est généralement 8, l'adresse
secondaire est généralement comprise entre 2 et 15, et l'expression de chaîne de
caractères est une commande telle que « SEQ FILE,W », traitée par le lecteur de
disque lui-même, et non par BASIC.
Modems et autres périphériques RS-232
:
Identique à celle d'un lecteur de disque, sauf que le numéro de périphérique est 2 et que l'expression de chaîne de caractères est une paire d'octets définissant les fonctions de transmission/réception.
Imprimantes et autres périphériques en écriture seule : ces périphériques
requièrent un numéro de fichier et un numéro de périphérique. L'expression de
chaîne est sans importance pour ces périphériques, tandis que le troisième
paramètre numérique peut être facultatif.
Les noms de fichiers sur bande
et disque ne peuvent pas dépasser 16 caractères.
Modes : les modes direct
et programme sont tous deux valides.
Jeton : $9F (159)
Entrée
abrégée : O SHIFT-P
Fonction :
OPEN configure un fichier pour écrire ou lire (parfois les deux) des données depuis ou vers des périphériques externes tels que des lecteurs de bande ou de disque.
Par exemple, l'instruction :
OPEN 1,1,1"TAPE FILE"
ouvre le fichier logique 1, appelé « TAPE FILE », sur la cassette.
Ensuite, l'instruction :
PRINT#1
suivie de données écrira les
données sur la bande, et
CLOSE 1
crée un nouveau fichier complet
appelé « TAPE FILE », qui peut être relu ultérieurement, généralement par OPEN 1
et INPUT#1,X$ ou des instructions similaires.
Il est possible d'ouvrir jusqu'à dix fichiers simultanément (ce qui est suffisant pour la plupart des usages) ; chacun doit posséder un numéro de fichier logique différent (le premier paramètre de la commande OPEN) afin de les distinguer.
De plus, les adresses secondaires des fichiers sur disque doivent toutes être différentes.
Trois tables en mémoire vive stockent les numéros de fichier, leurs numéros
de périphérique et d'autres informations.
Remarque :
L'ouverture d'un fichier sur bande provoque un écran noir pendant les opérations de lecture/écriture.
En mode direct (utile pour lire l'entête d'un programme), la commande OPEN 1 marque une pause de dix secondes avant de revenir à l'état READY, sauf si la touche Commodore, la barre d'espace ou une autre touche est enfoncée.
En mode programme, la commande OPEN 1 ne provoque pas de pause.
Exemples :
1. OPEN 2,1,0,"TAX"
L'exemple ci-dessus ouvre un fichier sur bande nommé TAX (ou TAXI, TAXIDERMY, etc.) en lecture (puisque le troisième paramètre est égal à 0) et lui attribue le numéro de fichier logique 2.
Ainsi, INPUT#2 ou GET#2 extraira des données de ce fichier.
Ceci est identique à OPEN 2, à ceci près que le fichier est demandé par son
nom ; OPEN 2 ouvre le premier fichier trouvé.
Avec une bande, OPEN lit la
bande jusqu'à trouver un entête.
2. OPEN 1,8,3/'ORDINARY FILE,S,R"
La ligne ci-dessus ouvre un fichier séquentiel (spécifié par le ,S après le nom de fichier) sur le disque appelé ORDINARY FILE pour la lecture (spécifié par le ,R après le nom de fichier) par les instructions INPUT#1 ou GET#1.
3. OPEN 2,2,0,CHR$(6)
Il s'agit d'une instruction OPEN qui prépare le modem (périphérique 2) pour PRINT#2 et INPUT#2. L'expression de chaîne est utilisée pour définir les paramètres du modem tels que la parité et le débit de transfert de données.
4. OPEN 4,4: REM OPENS FILE#4 TO DEVICE#4
Cette ligne ouvre un fichier sur une imprimante, en supposant que l'imprimante (et l'interface, le cas échéant) fonctionne comme une imprimante Commodore standard.
OR
Type : Opérateur logique
Syntaxe : Expression logique ou numérique OU
expression logique ou numérique
Les expressions numériques doivent être
évaluées après troncature à l’intervalle [-32768 ; +32767].
Modes : Les
modes direct et programme sont tous deux valides.
Jeton : $B0 (176)
Entrée abrégée : Aucune
Fonction :
L’opérateur OR calcule le OU logique de deux expressions en effectuant un OU sur chacun des bits du premier opérande et les bits correspondants du second.
Pour la comparaison OR, les expressions numériques sont évaluées comme des nombres binaires signés sur 16 bits.
Les quatre combinaisons possibles de bits sont :
0 OR 0 = 0
0 OR 1 = 1
1 OR 0 = 1
1 OR 1 = 1
Le résultat est 0 uniquement si les deux bits sont à 0.
Il s'ensuit qu'un OU logique est vrai si l'une ou l'autre des expressions initiales, ou les deux, étaient vraies.
Et il s'ensuit que :
380 OR 75 = 383
cependant, vérifier cela
en calculant la représentation binaire de 380 et 75 est assez fastidieux.
Exemples :
1. 560 IF (A<1) OR (A>20) THEN PRINT "OUT OF RANGE"
Il s'agit d'un test de validation typique ; A doit avoir une valeur comprise entre 1 et 20.
2. POKE 328,PEEK(328) OR 32
La combinaison POKE et PEEK ci-dessus positionne le bit 5 à 1 à l'adresse 328, qu'il soit déjà à 1 ou non, sans modifier les autres bits.
L'opérateur OR permet de mettre les bits à l'état haut ; l'opérateur AND permet de les remettre à 0.
PEEK
Type : Fonction numérique
Syntaxe : PEEK(expression numérique)
L'expression doit être évaluée à un nombre compris entre 0 et 65 535 ; la valeur
renvoyée sera comprise entre 0 et 255.
Modes : Les modes direct et
programme sont tous deux valides.
Jeton : $C2 (194)
Saisie abrégée : P + MAJ + E
Utilisation :
PEEK renvoie la valeur décimale de l'octet situé à une adresse mémoire.
PEEK permet d'examiner les programmes BASIC, leurs variables et pointeurs,
ainsi que d'autres éléments de la mémoire interne, comme les programmes ML,
l'interpréteur BASIC, les registres matériels, etc.
Remarques :
1.
PEEK (comme POKE) est particulier car il peut être facilement remplacé par des
routines ML. Ces routines permettent de lire les valeurs du joystick beaucoup
plus rapidement que l'utilisation de PEEK en BASIC.
2. Un certain nombre
d'emplacements sont modifiés par le matériel et ont donc des valeurs variables :
les emplacements du joystick, de la palette et du clavier en sont des exemples
évidents.
Certains emplacements varient en raison de modifications logicielles.
La majeure partie de la zone mémoire des adresses 0 à 255 (appelée page zéro) est utilisée par BASIC lors de son fonctionnement, et de nombreuses adresses comprises entre 256 et 1023 sont utilisées ponctuellement pendant son exécution.
La plus grande partie de la mémoire au-delà de 32 768 octets peut être
réallouée à d'autres usages et est principalement contrôlée par l'octet situé à
l'adresse mémoire 1.
Exemples :
1. PRINT CHR$(34);: FOR J=2048 TO 2147: PRINT CHR$(PEEK(J));: NEXT
Cette commande imprime 100 caractères extraits du début de la zone mémoire BASIC standard du 64 bits. (Le guillemet généré par CHR$(34) vise à empêcher l'affichage de caractères de contrôle parasites, etc.)
2. 500 IF (PEEK(653) AND 1)=1 THEN PRINT "SHIFT KEY"
Ce test vérifie le bit 0 de l'emplacement 653 (l'octet qui stocke les indicateurs de touche SHIFT, Commodore et CTRL) pour déterminer si la touche SHIFT est enfoncée.
POKE
Type : Instruction
Syntaxe : POKE expression numérique, expression
numérique
La première expression numérique est une adresse, et la seconde
une valeur d'un octet.
Les plages de valeurs doivent donc être respectivement de 0 à 65 535 et de 0
à 255.
Modes : Les modes direct et programme sont tous deux valides.
Jeton : $97 (151)
Entrée abrégée : P SHIFT-O
Fonction :
POKE stocke l'octet spécifié par la seconde expression à l'adresse donnée par la première.
POKE peut stocker des routines ML en mémoire à partir d'instructions DATA,
modifier des pointeurs BASIC, modifier des registres matériels et effectuer
d'autres fonctions utiles.
Remarques :
1. POKE (comme PEEK) peut
être remplacé par des routines ML simples ; remplacer un POKE affiché à l'écran
par son équivalent ML est une introduction idéale au ML.
2. Un POKE
malencontreux appliqué à une variable non initialisée, comme :
POKE A0,0
au lieu de :
POKE A,0
introduira le registre de direction à
l'adresse 0. Cela affecte la bande et la commutation des banques RAM/ROM du N64.
Exemples :
1. POKE 53281,9
Cela modifie la couleur de fond de l'écran en altérant un registre de la puce VIC.
2.
10 DATA 72,69,76,76,79
15 FOR J=631 TO 635:READX:POKE J,X:NEXT
20 POKE
198,5
3. FOR J=0 TO 499: POKE 1024+J, PEEK(2048+J): POKE 55296+J,0: NEXT
Cela place 500 octets de données de programme BASIC sur l'écran en noir, en envoyant des valeurs à la fois à l'écran et à la mémoire couleur.
4. FOR J=40960 TO 49151: POKE J, PEEK(J): NEXT: POKE 1,54
Cela déplace la ROM BASIC ($A000-$BpFF) en RAM, puis bascule cette portion de mémoire vers la RAM, de sorte que l'interpréteur BASIC est désormais stocké en RAM.
Normalement, POKE J, PEEK(J) est sans effet, bien sûr. Cet exemple fonctionne
uniquement parce que le 64 est conçu de sorte que les informations lues via POKE
soient placées en RAM, elle-même située sous la ROM.
(Cela signifie que
la ROM habituelle ou une RAM alternative peuvent être utilisées. Cette technique
ne fonctionnera pas avec la plupart des autres ordinateurs.)
POS
Type : Fonction numérique
Syntaxe : POS(expression numérique)
L’expression numérique est une expression fictive, comme pour FRE.
Modes : Les modes direct et programmé sont tous deux valides.
Jeton : $B9 (185)
Entrée abrégée : Aucune
Fonction :
POS renvoie la position du curseur sur sa ligne logique courante, telle qu'interprétée par BASIC.
Normalement, POS(0) vaut entre 0 et 79, mais certaines instructions PRINT peuvent renvoyer des valeurs allant jusqu'à 255.
L'utilité de POS est limitée à l'affichage ; il ne fonctionne pas avec les
imprimantes, par exemple.
Exemples :
1.
90 FOR J=1 TO 100: PRINT W$(J-1)" ";
92 IF POS(0) + LEN(W$(J))>38 THEN
PRINT
94 NEXT
Les lignes de programme ci-dessus affichent les mots du tableau W$ dans un format propre, sans retour à la ligne. (Ceci suppose qu'aucune chaîne de caractères ne dépassera 38 caractères.)
Type : Instruction d'affichage
Syntaxe : PRINT [expression]
L'expression peut être de tout type, séparée par un ou plusieurs des caractères
suivants :
SPC (expression numérique), TAB (expression numérique),
espace, virgule, point-virgule ou aucun séparateur
(lorsque cela ne crée pas
d'ambiguïté).
Modes : Les modes direct et programme sont tous deux
valides.
Jeton : $99 (153)
Entrée abrégée : Point d'interrogation (?)
Fonction :
PRINT évalue et affiche des expressions de type chaîne de caractères, numérique ou logique sur un périphérique de sortie, généralement un téléviseur ou un moniteur.
La ponctuation qui suit l'instruction PRINT influe sur l'apparence de
l'affichage, qui dépend également du jeu de caractères interne utilisé.
Remarques :
1. Graphismes intégrés.
L'ensemble des caractères peut être imprimé, mais l'utilisation de {RVS} est nécessaire pour compléter l'ensemble avec les instructions PRINT (POKE, bien sûr, ne requiert pas {RVS}).
Les couleurs et autres contrôles sont faciles à inclure dans les chaînes de caractères, soit en mode guillemets, soit avec CHR$. PRINT "{RED}HELLO{BLU}" et PRINT CHR$(28)"HELLO''CHR$(31) sont équivalents.
Comme {RVS} est nécessaire pour imprimer certains graphismes, il n'est pas toujours facile de convertir une image affichée sur le téléviseur en instructions PRINT dans un programme.
Déplacer le curseur à son point d'origine, insérer des espaces, puis saisir les numéros de ligne suivis de ? et de la touche Entrée peut parfois fonctionner. Cependant, cette méthode n'accepte pas les caractères inversés ; soyez donc prudent lorsque vous créez des graphismes directement à l'écran.
Notez que la combinaison de touches SHIFT-Commodore permet normalement de basculer entre deux jeux de caractères : l’un avec minuscules et majuscules (idéal pour le texte), et l’autre avec majuscules et caractères graphiques supplémentaires.
L’impression de CHR$(14) sélectionne le jeu minuscules/majuscules, CHR$(142)
sélectionne le jeu majuscules/graphiques, CHR$(8) désactive la commutation via
SHIFT-Commodore et CHR$(9) active la commutation via SHIFT-Commodore.
2.
Graphismes personnalisés.
La commande PRINT utilise des caractères ASCII, dont l’affichage à l’écran
est sans importance ; elle peut donc également gérer les caractères
personnalisés.
Dans la plupart des cas, il est plus simple de conserver
les caractères par défaut afin que les listes de programmes à l’écran restent
lisibles. Voir le chapitre 12 pour plus de détails.
3. Ponctuation de PRINT :
• Les expressions, comme indiqué au début de
ce chapitre, sont relativement simples. Les expressions numériques peuvent
inclure des nombres, TI, ST, la valeur 7r, etc. ; les expressions de chaînes de
caractères peuvent inclure TI$.
• Les caractères SPC et TAB permettent de
modifier la position d'impression.
• Les virgules permettent de répartir
la sortie dans les colonnes 1, 11, 21 ou 31.
Par exemple :
PRINT 1,2,3,4,5
• Le point-virgule empêche le
passage à la ligne suivante et sert donc de séparateur neutre. Essayez cette
ligne :
PRINT 1;2;3;: PRINT 4
N'oubliez pas que les nombres sont
affichés avec un espace en début (en cas de signe moins) et en fin.
Le point-virgule est souvent inutile, comme dans :
PRINT X$ Y$ "HELLO"
N% A
où l'interpréteur identifiera correctement tous les caractères.
• Les deux-points terminent l'instruction et, en l'absence de point-virgule,
passent à la ligne suivante.
La ligne suivante avance la position d'impression de deux lignes :
PRINT : PRINT
• Les espaces (sauf entre guillemets) sont généralement
ignorés.
Ainsi, PRINT X Y;2 4 est équivalent à PRINT XY;24.
Exemples :
1. PRINT X+Y; 124; P*(1+R%/100) :REM NUMERIC EXPRESSIONS
Cela affiche trois nombres sur la même ligne.
Notez cependant que si le premier point-virgule est omis, X + Y1 s'affiche.
2. PRINT "HI " NAMES$ ", HOW ARE YOU?" :REM STRING EXPRESSION
La ligne ci-dessus affiche le résultat sur une seule ligne (s'il y a de la place).
3. FOR J=1 TO 20: PRINT J,: NEXT :REM SHOWS USE OF COMMA
Ceci illustre l'effet de tabulation de la virgule dans les instructions PRINT.
PRINT#
Type : Instruction de sortie
Syntaxe : PRINT# expression numérique
^expression]
Il ne doit pas y avoir d'espace entre PRINT et # ;
l'expression numérique est un numéro de fichier (le fichier doit être ouvert) ;
et les expressions suivantes doivent utiliser un format similaire à celui de
PRINT.
Modes : Les modes direct et programme sont tous deux valides.
Jeton : $98 (152)
Entrée abrégée : P MAJ-R (Ceci inclut #, et ?#
n'est pas pris en charge)
Fonction :
PRINT# envoie des données à un périphérique de sortie, généralement une
imprimante, une bande magnétique, un lecteur de disque ou un modem.
Remarques :
1. Ponctuation de PRINT#.
L'effet de la ponctuation dans les instructions PRINT# est identique à celui
de PRINT, à quelques exceptions près : onze espaces sont toujours insérés après
une virgule, et les expressions entre TAB ou POS ne fonctionnent pas.
PRINT#4,X$
écrit X$ suivi de CHR$(13), mais :
PRINT#4,X$;:
écrit X$ seul.
PRINT#128/X$ :
écrit X$ suivi d'un retour chariot et d'un saut de
ligne ; cette fonctionnalité des fichiers numérotés 128 ou plus est utile avec
certaines imprimantes non Commodore.
2. PRINT# et INPUT#.
Notez que INPUT# ne peut pas gérer les chaînes de caractères de plus de 88
caractères ; cette limite doit donc être respectée lors de la configuration des
fichiers de données avec PRINT#.
3. PRINT# et CMD. PRINT#4,; : désactive
l'écoute du périphérique utilisant le fichier 4, tandis que CMD4,; : la
maintient en écoute ; ces expressions sont donc opposées.
Exemples :
1. OPEN 1,1,1/TAPE FILE": INPUT X$: PRINT#1,X$: CLOSE 1
Cette fonction ouvre le fichier TAPE FILE sur bande et, après avoir permis à l'utilisateur de saisir une chaîne de caractères, écrit cette chaîne sur la bande.
2. 100 FOR J=32768 TO 40959: PRINT #1,CHR$(PEEK(J));: NEXT
Cette commande écrit les octets présents dans la RAM ou la ROM de la zone d'extension dans le fichier 1.
Le point-virgule est important pour éviter que chaque caractère ne soit suivi d'un retour à la ligne (ce qui doublerait la taille du fichier).
Le fichier résultant doit être relu avec la commande GET#, car il est au format ML et non compatible avec INPUT#.
READ
Type : Instruction
Syntaxe : READ variable [,variable...]
Modes : Les modes direct et programme sont tous deux valides.
Jeton : $87
(135)
Entrée abrégée : R SHIFT-E
Objectif : L’instruction READ affecte les données stockées dans les
instructions DATA à une ou plusieurs variables.
Si le type de la variable
ne correspond pas aux données (par exemple, DATA "ABC" : READ X), l’erreur ?TYPE
MISMATCH ERROR s’affiche lors de l’exécution du programme.
L’erreur ?OUT OF DATA ERROR se produit lorsque toutes les données ont été
lues et qu’une instruction READ supplémentaire a été rencontrée ; une
instruction RESTORE est alors utilisée pour reprendre la lecture des données
depuis le début.
Exemples :
1.100 READ X$: IF X$<>"ML ROUTINE" GOTO 100
Ceci montre comment une donnée, ou un groupe de données, peut être insérée n'importe où dans les instructions DATA. Cette construction (avec RESTORE) permet de mélanger les données assez librement dans l'espace de programme BASIC.
2. 10 READ X: DIM N$(X): FOR J=1 TO X: READ X$(J): NEXT
La ligne ci-dessus montre comment des variables de type chaîne (par exemple, des mots pour un jeu de mots) peuvent être lues efficacement dans un tableau, en plaçant le nombre de mots au début, comme ceci :
1000 DATA 2,RED,YELLOW
REM
Type : Instruction
Syntaxe : REM [n'importe quoi]
Modes : Les
modes direct et programme sont tous deux valides.
Jeton : $8F (143)
Entrée abrégée : Aucune.
Fonction :
REM permet d'inclure de la documentation dans un programme. Tout ce qui suit REM sur la ligne BASIC est ignoré par l'interpréteur BASIC.
Les instructions REM occupent de l'espace mémoire et nécessitent un peu de
temps d'exécution ; c'est pourquoi les versions finales des programmes sont
généralement dépourvues d'instructions REM.
Exemples :
1. GOSUB 51000: REM PRINT SCREEN WITH INSTRUCTIONS
Ci-dessus figure un exemple de commentaire REM.
2.
70 FOR J=1 TO 1000: REM MAIN LOOP
80 A(J)=J*A: NEXT
Cela indique un mauvais placement de l'instruction REM, car celle-ci
s'exécute 1000 fois.
Déplacez l'instruction REM à la ligne 69 pour
accélérer son exécution.
3.
15998 REM
15999 REM *** SUB 16000 PRINTS TITLE ***
Ces lignes montrent comment rendre les instructions REM faciles à lire dans les longs programmes.
RESTORE
Type : Instruction
Syntaxe : RESTORE
Modes : Les modes direct
et programme sont tous deux valides.
Jeton : $8C (140)
Entrée
abrégée : RE SHIFTS
Fonction :
RESTORE réinitialise le pointeur de données, de sorte que les lectures
suivantes récupèrent les données à partir de la première instruction DATA. Les
commandes NEW, RUN et CLR effectuent toutes une opération RESTORE dans le cadre
de leurs fonctions.
Remarque : Cette commande est indépendante de la
touche RESTORE.
Exemples :
1. 2000 READ X$: IF X$="**" THEN RESTORE: GOTO 2000
Cet exemple est la première ligne d'une boucle lisant en continu le même bloc de données (par exemple, les notes d'un morceau à répéter).
Lorsque le caractère ** est rencontré comme dernier élément des données, l'instruction RESTORE réinitialise le pointeur de données, et la ligne s'exécute à nouveau.
2.
130 RESTORE: FOR L=l TO 9E9: READ X$: IF X$<>"MLROUTINEl" THEN NEXT
140
FOR L=328 TO 336: READ V: POKE L, V: NEXT
9000 DATA 27, 32, SUB,
MLROUTINE1,169, 0, 141, 202, 3, 162,1, 160, 20
Ceci montre comment les données peuvent être étiquetées pour garantir que la section correcte est lue ; la ligne 130 lit les données jusqu'à ce qu'elle atteigne l'étiquette MLROUTINE1, qui est suivie des données souhaitées.
3. RESTORE: GOTO 100
Il s'agit d'une commande en mode direct, utile pour tester des programmes contenant des instructions DATA, car après l'instruction RESTORE, toutes les données seront relues depuis le début.
RETURN
Type : Instruction
Syntaxe : RETURN
Modes : Les modes direct et
programme sont tous deux valides.
Jeton : $8E (142)
Entrée abrégée : RE SHIFT-T
Fonction :
RETURN transfère le contrôle du programme à l’instruction suivant immédiatement l’instruction GOSUB la plus récente.
GOSUB et RETURN permettent ainsi le traitement automatique des
sous-programmes sans qu’il soit nécessaire de stocker les adresses de retour
dans les programmes.
Remarques :
1. Voir
GOSUB pour une description
complète du traitement des sous-programmes.
2. Cette commande est
indépendante de la touche RETURN.
Exemple:
10 INPUT L: GOSUB 1000: GOTO 10 :REM TEST SUBROUTINE 1000
1000 L=INT(L+.5)
1010 PRINT L: RETURN
Cet exemple saisit un nombre de manière répétée et appelle la sous-routine à l'adresse 1000 pour le traiter ; l'instruction RETURN provoque la reprise de l'exécution avec l'instruction GOTO 10.