Mots-clés du Locomotive BASIC 1.0
Mots-clés du Locomotive BASIC 1.0
2 page 1
4/1.2
Conventions d'écriture :
Pour faciliter la description systématique des mots-clés du BASIC, nous
avons adopté les conventions d'écriture suivantes :
— les mots-clés sont écrits en majuscules ;
— les caractères « < »et« > » encadrent un argument obligatoire ;
— les caractères « [ » et « ] » encadrent un argument facultatif ;
— les caractères « ( » et « ) » indiquent que le mot-clé est une fonc
tion. Ces caractères doivent être présents dans son utilisation ;
— enfin, l'« opérateur » désigne l'utilisateur du programme.
CLS[N° canal]
130 A$ = INKEY$:IF A$ = "" THEN 130 'Attente appui sur une touche
140 CLS:GOTO 100 'Effacement écran et poursuite affichage
Ligne 100 : Cette ligne matérialise le programme d'affichage de données.
Ligne 110 : Test de la position du curseur. Si la ligne 23 n'est pas atteinte,
affichage d'une autre donnée.
Ligne 120 : Message signalant qu'il reste des données à afficher.
Ligne 130 : Attente d'une action au clavier.
Ligne 140 : Initialisation du prochain écran d'affichage.
Autre utilisation Vous avez défini une fenêtre de texte, par exemple dans un jeu d'aven
tures, et vous voulez afficher un nouveau texte dans cette fenêtre en effa
çant le précédent :
100 WINDOW 1,40,22,25 'Définition de la fenetre de texte
110 'Programme de jeu
120 CLS 'Curseur en x,y
130 PRINT "Affichage du nouveau texte"
Ligne 100 : Définition d'une fenêtre (voir mot-clé « WINDOW »
Partie 4 chap. 1.2 p. 105).
Ligne 110 : Cette ligne matérialise le corps du programme de jeu.
Ligne 120 : Effacement d'écran. Curseur en haut à gauche.
Nom :
Prénom :
Adresse :
Téléphone :
Première rencontre :
Divers :
Le texte « Nom, prénom ... divers » représente les données fixes de l'écran
de saisie et est affiché par l'ordinateur.
Appelons chacune de ces données un « champ ».
L'utilisateur devra entrer des données après chaque champ.
Le programme de saisie sera le suivant :
100 CLS
110 PRINT "Nom
120 PRINT "Prénom
130 PRINT "Adresse
140 PRINT "Téléphoné
150 PRINT "Première rencontre
160 PRINT "Divers
170 LOCATE 8,1:INPUT N0M$ 'Saisie champ 1
180 LOCATE 11,2:INPUT PRE$ 'Saisie champ 2
190 LOCATE 12,3:INPUT ADR$ 'Saisie champ 3
200 LOCATE 14,4:INPUT TEL$ 'Saisie champ 4
210 LOCATE 23,5:INPUT PRR$ 'Saisie champ 5
220 LOCATE 11,6:INPUT DIV$ 'Saisie champ 6
Lignes 110 à 160 : Affichage des champs.
Lignes 170 à 220 : Positionnement du curseur et lecture des données
après chaque champ.
Autre utilisation Dans le jeu du pendu, il faut trouver un mot en un minimum d'essais
en proposant des lettres au hasard. Supposons que le mot à trouver soit
« ORDINATEUR » et que l'écran de jeu soit le suivant :
Mot à trouver : ----------
Lettre proposée : -
Locomotive BASIC : Définitions et rappels de base Partie 4 Chapitre 1.2 page 7
Remarque :
L'écran est effacé avec la couleur du « PAPER » ; la fenêtre, si elle existe,
est détruite et le curseur texte se trouve en haut et à gauche de l'écran
après l'emploi d'un tel ordre.
Utilisation Dans une application scientifique, vous avez défini une fenêtre graphi
que dans laquelle sont tracées des courbes. Ces courbes sont commen
tées par un texte affiché autour de la fenêtre.
L'application étant terminée, vous voulez revenir au mode d'affichage
standard (MODE 1) et effacer les dernières informations affichées.
Le programme suivant réalisera ces actions :
100 'Définition de la fenetre graphique
110 'Calculs et affichages divers
300 INPUT "Fin de l'application (O/N)" ;R$
310 IF R$< >"O" THEN 110 'Poursuite de l'application
320 MODE 1 'Retour au mode caractère pleine page
330 END 'Fin de l'application
Ligne 320 : Destruction de la fenêtre et passage au MODE d'affichage
40 colonnes.
Partie 4 Chapitre 1.2 page 8 Locomotive BASIC : Définitions et rappels de base
Autre exemple :
Dans un jeu d'aventures, après un écran de présentation en MODE 0
( 16 couleurs), vous voulez afficher un texte pour préciser le contexte de
l'aventure. Si ce texte est long, il aura intérêt à être affiché en MODE 2.
Ce qui se traduit par le programme suivant :
100 MODE 0:LOAD “image”, &C000 'Chargement de l'écran de pré
sentation
110 MODE 2 'Effacement de l'image et passage en 80 colonnes
120 'Affichage du texte de l'aventure
Ligne 100 : Chargement de l'écran de présentation.
Ligne 110 : Effacement de l'écran de présentation et passage au MODE
texte 80 colonnes.
Remarque :
La déclaration d'un nouveau PAPER affecte l'écran à partir de la posi
tion courante du curseur et jusqu'à la fin de l'écran, sur tout le texte
affiché.
Pour vous en rendre compte, faites en MODE 1, par exemple : « PAPER
2 ». Le mot « Ready » apparaît sur un fond correspondant à la couleur
d'encre 2. Pour que tout l'écran prenne cette couleur, il faudra faire :
« PAPER 2:CLS ».
Téléphone : --------
Remarques :
• Le caractère « , » agit comme tabulateur entre deux affichages suc
cessifs.
• Le caractère « ; » interdit le retour à la ligne en fin d'affichage et fait
afficher les données les unes à la suite des autres.
• La commande « SPACE$(N) » permet d'afficher N espaces.
• La commande « TAB(N) » permet de déplacer le curseur vers la droite
de N positions.
Utilisation Vous voulez constituer une table trigonométrique sur imprimante :
100 DEG 'On manipule des degres
1 10 PRINT#8, "Angle SIN COS TAN"
120 FOR 1 = 1 TO 360
130 PRINT#8, I ; SIN(I) ; COS(I) ; TAN(I)
140 NEXT I
Ligne 130 : Affichage sur imprimante (Canal #8).
SPEED INK < Nombre entier >, < Nombre entier >
Fixe la fréquence d'alternance des couleurs utilisées par les ordres PEN,
PAPER ou BORDER définis par deux couleurs. Le premier nombre donne
la durée d'affichage de la première couleur en 1/50 sec., le deuxième
nombre donne la durée d'affichage de la deuxième couleur en 1 /50 sec.
Utilisation Dans un écran de saisie comportant plusieurs champs, vous voulez signa
ler à l'opérateur que l'ordinateur est en attente du champ N
TAG[< # N° Canal>]
Remarque :
Les chaînes doivent être entre guillemets et deux expressions doivent
être séparées par une virgule.
Utilisation Ecriture d'un fichier sur cassette :
100 NOMS = "Dupond”
110 PRE$ = "Pierre"
120 AD$ = "20 rue Gérard, 75013 Paris"
130 TEL$ = "Inconnu"
140 OPENOUT"FILEDUP" 'Ouverture du fichier en écriture
150 WRITE#9, N0M$, PRE$, AD$, TEL$ 'Ecriture des données
160 CLOSEOUT 'Fermeture du fichier
Lignes 100-130 : Articles à l'écran.
Ligne 150 : Ecriture.
Locomotive BASIC : Définitions et rappels de base Partie 4 Chapitre 1.2 page 15
Remarque :
L'effet de « ZONE » est annulé par les ordres « NEW », « LOAD »,
« CHAIN » et « RUN ».
Utilisation Vous écrivez un programme de traitement de textes, et vous voulez une
sortie sur imprimante sur 60 colonnes. Une façon élégante de résoudre
le problème est la suivante :
100 MODE 2 'Passage en mode 80 colonnes
110 ZONE 60 'Restriction a 60 colonnes
innnnjwuuuinjmiwwmnnw^^
cpc 464 car,,.,’
0
AMSTRAD 64k COLOUR PERSONAL COMPUTER
300
nar
18
47
uwuwinmumnmuumnnjinMnjw^
J0L
AMSTRAD 64k COLOUR PERSONAL COMPUTER CPC 464 n ■ colou»
□ B0
00000000000000ED nmr
EU H H 0 H 0 0 H 0 0 0 El 0 [~
EE1BH0000000S0 ml..
. 1000000000001 -■
Ir i □I
Autre utilisation Dans une application de traitement de textes, nous pouvons prendre la
convention suivante :
CTRL+Q = Sortie du logiciel,
INKEYS
Remarque :
100 INPUT "Entrez un nombre";N ;
LSupprime le passage à la ligne
-Un « ? » apparaît après le texte
Remplacé par « , », aucun « ? »
n'apparaît
Utilisation Lecture de données numériques X, Y de points que l'on veut réunir par
des droites. Les dernières coordonnées avant le tracé seront par
convention 999, 999.
100 DIM X(100), Y(100) '100 points au maximum
110 1=1 'Mémorisation du premier point
120 INPUT "Entrez les coordonnées X et Y";X(I), Y(l)
130 IF X(l)<>999 AND Y(l) <>999 THEN l = l+1:GOTO 120
131 CLS
140 PLOT X(1), Y(1) 'Origine
150 FOR J = 2 TO I
160 DRAW X(J), Y(J) 'Trace
170 NEXT J
Ligne 120 : Entrée des coordonnées et stockage dans les tableaux X et Y.
Ligne 130 : Test de fin de saisie.
Lignes 131 à 170 : Affichage.
Autre application Lecture de données sur cassette :
Reportez-vous à l'exemple donné pour l'ordre « WRITE". On veut relire
le fichier cassette ou disquette stocké dans cet exemple.
100 OPENIN "FILEDUP"
110 INPUT#9, N0M$, PRE$, AD$, TEL$
120 CLOSEIN
130 PRINT "Nom N0M$
140 PRINT "Prénom PRE$
150 PRINT "Adresse"; AD$
160 PRINT "Téléphoné TEL$
Ligne 100 : Ouverture du fichier
Ligne 110 : Lecture des données (#9 = Cassette ou disquette).
Locomotive BASIC : Définitions et rappels de base Partie 4 Chapitre 1.2 page 19
JOY(<Entier>)
Par exemple :
Affectation de « INPUT » au « 0 » du pavé numérique :
KEY 128, "INPUT”.
Affectation de « DATA » au « 1 » du pavé numérique :
KEY 129, "DATA”.
___
AMSTRAD CPC 464 ŒH.....
64k COtOUR PERSONAL COMPUTER
300
00000000000000 EEJ
(Zn 0HHIïô|0@0E5]Iï30I16]|ï7] 000
I 70 I 0 0 0 S g 0 0 0 0 0 @ 0? 0 00
000
I 10 0 0H
Application Vous voulez redéfinir votre clavier QWERTY en AZERTY, c'est-à-dire chan
ger les touches suivantes :
QWERTY AZERTY
Lit une ligne sur le canal indiqué (par défaut sur l'écran).
Remarque :
Un « ; » après le « LINE INPUT » supprime le passage à la ligne en fin
de lecture.
Utilisation Vous voulez réaliser un éditeur de lignes avec une saisie simple gérant
100 lignes au maximum.
100 MODE 2
110 DIM A$ (100)
120 PRINT "Entrez votre texte, puis 999 quand vous aurez fini."
130 1 = 1 'Ligne 1
140 LINE INPUT A$(l)
150 IF A$(l) < > "999"THEN 1 = 1+1 : GOTO 140
160 PRINT "Voulez-vous 1)Corriger une ligne"
170 PRINT" 2)Imprimer"
180 INPUT " 3) Continuer la saisie" ; A
190 IF A < > 1 THEN 240
200 INPUT "N° de ligne" ; N 'Correction d'une ligne
210 PRINT A$(N)
220 LINE INPUT A$(N)
230 GOTO 160
Remarque :
Consulter le mot-clé « SYMBOL AFTER » qui va avec.
Utilisation Editeur de caractères redéfinissables :
100 CLS:DIM T (8,8)
110 FOR 1 = 1 TO8
120 PRINT "......... "
130 NEXT I
140X=1:Y=1 'Initialisation
1 50 LOCATE X, Y
160 A$ = INKEY$:IF A$ = "" THEN 160
170 A = ASC (A$)
180 IF A$ = "P" THEN T(Y,X) = 1 :PRINT"* "
190 IF A$="V" THEN T(Y,X) = O:PRINT".”
200 IF A = 243 AND X<8 THEN X = X+1
210 IF A = 242 AND X>1 THEN X = X-1
220 IF A = 240 AND Y> 1 THEN Y = Y-1
230 IF A = 241 AND Y<8 THEN Y = Y+ 1
240 IF A<>13 THEN 150
250 LOCATE 1,15:PRINT "Données correspondantes :PRINT
260 FOR 1 = 1 TO 8
270 A = 0 'Initialisation
280 FOR J = 1 TO 8
290 A=A + (2A(8-J))*T(I, J)
300 NEXT J
310 PRINT A ;
320 NEXT I
Lignes 110-130 : Affichage de la grille de redéfinition.
Ligne 160 : Acquisition des commandes clavier.
Lignes 170-240 : Action sur une commande clavier.
Lignes 250-320 : Affichage des données de redéfinition.
Autre utilisation Affichage de dessins définis par plusieurs caractères redéfinis mis côte
à côte :
Partie 4 Chapitre 1.2 page 24 Locomotive BASIC : Définitions et rappels de base
La valeur par défaut est 10,10 et ces deux nombres peuvent prendre
des valeurs comprises entre 1 et 255.
CAT
Donne la liste des fichiers présents sur cassette sans affecter un éven
tuel programme qui se trouve en mémoire.
Remarque :
$ Programme BASIC
% Programme BASIC protégé
❖ Fichier ASCII
& Fichier binaire
CHAIN < Nom programme > [, < N ° ligne > ] et CHAIN MERGE < Nom
programme>[, <N° Ligne>] [, DELETE <ensemble de lignes>]
Remarque :
160 CLOSEIN
Ligne 100 : Ouverture du fichier de transfert.
Lignes 110-150 : Lecture des données.
Lignes 160 : Fermeture du fichier de transfert.
.ocomotive BASIC : Définitions et rappels de base Partie 4 Chapitre 1.2 page 27
CLOSEIN
CLOSEOUT
OPENIN<Nom du fichier>
Ouvre un fichier sur cassette dans le but de lire les informations qu'il
contient.
OPENOUT<Nom du fichier>
Ouvre un fichier sur cassette dans le but d'y écrire des données.
SAVE < Nom Fichier >[, <Type>][, < Paramètres binaires >]
Sauvegarde sur cassette un fichier BASIC, ASCII ou BINAIRE.
Partie 4 Chapitre 1.2 page 28 Locomotive BASIC : Définitions et rappels de base
Remarque :
L'utilisation du type de données binaires (,B) oblige l'utilisateur à indi
quer l'adresse de départ de la sauvegarde, la longueur (en nombre
d'octets) de la sauvegarde, et éventuellement le point d'entrée du pro
gramme (si c'est un programme binaire qui est sauvegardé).
EOF
Un enregistrement
Remarque :
La commande « LOAD < Nom Fichier> » efface le programme BASIC rési
dant en mémoire.
Utilisation Suite à la redéfinition des caractères standards par un programme d'édi
tion de caractères, vous ne voulez pas réduire à néant vos efforts en attei
gnant la machine. Aussi décidez-vous de sauvegarder les données de
redéfinition des caractères qui étaient stockées en mémoire, par exem
ple à partir de l'adresse hexa &H9000.
Exemple :
Vous avez redéfini 6 caractères, soit 8# 6 = 48 octets stockés à partir
de &H9000.
Les caractères occupent donc les adresses &H9000 à &H9O2F. (En effet,
48D = &H30). Ils seront sauvegardés par :
SAVE "CARACT", B, &H9OOO, &H3O
Vous les récupérerez par :
LOAD"CARACT”, &H9000
Remarque :
La commande « LOAD » destinée à charger un programme BASIC et insé
rée dans un programme BASIC ne lance pas le programme chargé. Pour
faire cela, reportez-vous aux ordres « CHAIN » ou « CHAIN MERGE ».
MERGE<Nom Fichier>
Remarques :
a) Avant d'utiliser cette commande, assurez-vous que les deux program
mes à amalgamer ne possèdent pas de numéros de lignes communs (au
besoin, utilisez la commande « RENUM » à cet effet).
b) Un « ! » devant le nom du fichier à lire supprime tous les commentai
res d'entrée/sortie cassette.
c) Les variables, fonctions utilisateur et dossiers ouverts sont écrasés ou
abandonnés.
Pour plus de détails, consultez les commandes « CHAIN », « CHAIN
MERGE » ou le manuel utilisateur AMSTRAD.
Partie 4 Chapitre 1.2 page 30 Locomotive BASIC : Définitions et rappels de base
Remarque :
Si vous utilisez un CPC 464 avec une qualité de bande moyenne, la vitesse
rapide fonctionnera neuf fois sur dix. Le problème n'est plus le même
si vous utilisez un 664 ou un 6128 avec un lecteur de cassettes externe
de qualité courante...
Utilisation Sauvegarde d'un fichier binaire en vitesse rapide :
1000 SPEED WRITE 1 'Vitesse rapide
1010 SAVE"DATA", B, &3000, &30 'Sauvegarde mémoire
Utilisation CHR$ permet, par exemple, d'insérer des codes de contrôles dans la
redéfinition d'une touche.
Autre utilisation Permet de définir des chaînes de caractères complexes (de longueur infé
rieure à 255 caractères) pour afficher avec un seul ordre tout un écran.
Partie 4 Chapitre 1.2 page 32 Locomotive BASIC : Définitions et rappels de base
L1C12
TITRE
L C02
L6C3 C01 L6C20
L*C04
L7C3 C03 L7C20
L15C12 C05
1) Un environnement industriel bruité est un local dans lequel des parasites électriques
peuvent parvenir sur un ordinateur (parasites liés à des champs électrostatiques ou magné
tiques, ou à des ruptures de courant de haute intensité).
Locomotive BASIC : Définitions et rappels de base Partie 4 Chapitre 1.2 page 33
Les verbes sont définis dans un dictionnaire de verbes qui rassemble tous
les verbes « compréhensibles » par la machine. Soit V$ ce dictionnaire.
De même pour les sujets. Soit S$ le dictionnaire des sujets. Nous appel
lerons v$ un élément de V$, et s$ un élément de S$. Soit enfin une phrase
P$ entrée par le joueur. L'extraction des verbe et sujet de P$ se fera de
la manière suivante : (voir organigramme p. 33).
De même pour les sujets.
Utilisation Une chaîne de caractères doit être stockée dans un fichier et la place
maximale prévue est de 30 caractères. Si la chaîne à stocker A$ fait plus
de 30 caractères (LEN(A$)>30), on stockera par exemple les 30 pre
miers caractères (LEFT$(A$, 30)) dans le fichier.
Autre utilisation De même, on peut utiliser LEN pour tester la limite supérieure d'une chaîne
alphanumérique entrée au clavier, et, par exemple, interdire de dépas
ser une certaine limite dans un masque de saisie. Soit N cette limite.
100 B$ = " " 'Chaîne lue
110 A$ = INKEY$:IF A$ = ” " THEN 110 'Attente d'un caractère
120 PRINT A$; 'Lettre lue
130 B$ = B$+A$
140 IF LEN(B$) = N THEN 160 'Fin de lecture
150 GOTO 110
160 'Passage a un autre champ
Ligne 110 : Acquisition au clavier
Ligne 140 : Test sur la longueur de la saisie.
Utilisation Soit un ensemble de mots M$, et un mot m$ entre au clavier. Nous vou
lons savoir si m$ appartient à M$ en considérant que seul compte l'ordre
des lettres du mot, et pas le fait qu'il soit écrit en majuscules ou en
minuscules.
Si les mots de M$ sont écrits en minuscules, nous pourrons tester l'appar
tenance de m$ à M$ de la façon suivante :
Remarque :
Cette fonction englobe les fonctions LEFT$ et RIGHT$.
En effet : MID$ (A$, 1, N) = LEFT$ (A$, N), et
MID$ (A$, LEN (A$)-N,N)= RIGHT$ (A$, N).
Utilisation Extraction d'une sous-chaîne B$ d'une chaîne A$.
Supposons que B$ soit encadrée d'astérisques. Le programme suivant
réalise l'extraction de B$:
100 P1 = INSTR(A$,"*") 'Limite inferieure de B$
110 P2 = INSTR(P1 +1, A$, "*") 'Limite supérieure de B$
120 C$ = MID$(A$, P1 + 1, P2-P1 -1) 'Chaîne extraite
Ligne 120 : C$ est la première chaîne entre trouvée dans A$.
Autre utilisation Extraction de données numériques d'une chaîne alphanumérique du type :
« La hausse du pouvoir d'achat aura été de 0,4 % en septembre ».
100 FOR 1 = 1 TO LEN(A$)
110 B$ = MID$(A$, I, 1)
120 IF B$ = "." OR (B$<":" AND B$> "/") THEN PRINT B$;
130 NEXT I
Ligne 120 : les caractères « : » et « / » encadrent les chiffres 0 et 9 dans
la table des caractères ASCII.
Remarque :
Utiliser « SPACE$ » au-delà de 6 caractères pour optimiser la mémoire
occupée par cet ordre.
Utilisation Vous désirez centrer un titre sur la largeur de l'écran :
100 MODE 2:L = 80 'en MODE 2, 40 en MODE 1 et 20 en MODE 0
110 A$ = "Texte a centrer"
120 LE = LEN(A$) 'Longueur du texte a centrer
130 PRINT SPACE$ ((80-LE)/2);A$ 'Affichage centre
Ligne 130 : Calcul du nombre d'espaces à afficher pour centrer le texte
et affichage.
Remarque :
Cette fonction est l'inverse de LOWER$.
Utilisation Voir LOWER$.
Remarque :
Si le signe « - » ou « . » suivi d'un caractère non numérique apparaît
en début de chaîne, le message d'erreur « Type Mismach » sera affi
ché à l'écran.
Exemples :
VAL("12 fois 10= 120") = 12
et VAL(".TD") produit une erreur « Type Mismach ».
V. Gestion de données
Remarque :
Si une donnée alphanumérique comporte un ou plusieurs des signes sui
vants : Virgule ou séparateur « : », elle doit être obligatoirement enca
drée de doubles côtes dans un « DATA ».
10 READ A$, B$, C$
20 DATA "Fonction : Supprime"
30 DATA "Le caractère le plus a droite, et repositionne"
40 DATA "Le curseur en début de ligne"
Locomotive BASIC : Définitions et rappels de base Partie 4 Chapitre 1.2 page 39
Utilisation Vous voulez créer un masque de saisie qui comporte n libellés. Appe
lons ces libellés li (avec i compris entre 1 et n). Ils doivent être affichés
aux coordonnées XI i, Y1i et le remplissage des champs associés doit
se faire aux coordonnées X2i, Y2i.
Au lieu de répéter n fois les séquences
LOCATE X1I, Y2I : PRINT LI 'Affichage d'un libelle
et
LOCATE X2I, Y2I : INPUT Cl 'Entrée d'un champ
Vous pourrez faire :
110 CLS
120 READ NL 'Nombre de libelles
130 DIM C$[NL] 'Dimensionnement tableau des champs
140 FOR 1 = 1 TO NL
150 READ Y1, X1, Ll$ 'Lecture pos libelles et libelles
160 LOCATE X1, Y1 : PRINT Ll$ 'Affichage libelles
170 NEXT I
180 FOR 1 = 1 TO NL
190 READ Y2, X2
200 LOCATE X2, Y2 : INPUT C$[l] 'Lecture des champs
210 NEXT I
220 'Traitement
230 DATA 4
240 DATA 1,5,Nom,2,5,Prénom,3,5,Age,4,5,Adresse
250 DATA 1,13,2,13,3,13,4,13
Autre utilisation : Dans un jeu d'aventures où l'opérateur peut entrer ses commandes sous
la forme « VERBE SUJET » (par exemple : « RAMASSER BATON »), vous
voulez définir le dictionnaire des mots (verbes, sujets) qui seront inter
prétables par la machine :
100 READ NV 'Nombre de verbes dans le dictionnaire
110 DIM VE$(NV) 'Dimensionnement du tableau des verbes
120 FOR 1=1 TO NV
130 READ VE$(I)
140 NEXT I
1 50 READ NS 'Nombre de sujets dans le dictionnaire
160 DIM SU$(NS) 'Dimensionnement du tableau des sujets
170 FOR 1=1 TO NS
180 READ SU$(I)
Partie 4 Chapitre 1.2 page 40 Locomotive BASIC : Définitions et rappels de base
190 NEXT I
1000 DATA NV 'Déclaration du nombre de verbes
1010 DATA libelles des verbes
1020 DATA NS 'Déclaration du nombre de sujets
1030 DATA libelles des sujets
RESTORE[<N° de ligne>]
3050 etc.
GOSUB<N° ligne>
GOTO<N° Ligne>
Remarque :
Pour augmenter la lisibilité des programmes, évitez d'employer cet ordre
trop fréquemment.
Programme
GOTO X
Par exemple :
Menu
Remarque :
Comme pour l'ordre « GOSUB », chacun des sous-programmes activé
par l'ordre « ON GOSUB » doit se terminer par « RETURN » pour redon
ner le contrôle au programme appelant.
RETURN
Phase 1 Phase 2
Programme Sous-programme Programme Sous-programme
Remarque :
L'ordre « RETURN » est obligatoire en fin des sous-programmes activés
par les ordres « GOSUB », « ON GOSUB », « ON SQ GOSUB », « AFTER
GOSUB », « EVERY GOSUB » et « ON BREAK GOSUB ».
ERR et ERL
Exemple :
L'utilitaire qui suit facilitera la mise au point de vos programmes en indi
quant en clair le type d'erreur rencontrée.
Pour être activé, cet utilitaire devra être appelé sur la première ligne du
programme à tester par « GOSUB 10000 » et il faudra prendre garde
qu'aucun tableau E$ n'existe dans le programme que vous mettez au
point.
Remarque :
Sur CPC 664 et 6128, modifiez les lignes suivantes :
10010 DIM E$(32)
10020 FOR 1 = 1 TO 32: READ E$(I):NEXT I
10200 DATA Fichier non ouvert, Lecture/ecriture interrompue
Définit la ligne qui sera activée dès qu'une erreur est détectée.
Remarques :
a) Cette commande est souvent placée en début de programme ou du
moins sur la ligne à partir de laquelle une erreur peut se produire.
b) L'ordre « ON ERROR GOTO 0 » supprime le déroutement du pro
gramme en cas d'erreur.
Utilisation Voir les commandes « ERR », « ERL » et « ERROR ».
RESUME[<N° ligne>]
RESUME NEXT
Par exemple :
B=4
B$ = "Texte”
CALL Adresse, B, &334, @B, A$, @B$
Registre A - 5 (nombre de paramètres passés)
Registre IX = LSB @ B$
IX + 1 = MSB @ B$
IX + 2 = LSB @ A$
IX + 3 = MSB @ A$
IX + 4 = LSB @ B
IX + 5 = MSB @ B
IX + 6 = 34 (LSB de &334 sur 16 bits)
IX + 7 - 3 (MSB de &334 sur 16 bits)
IX + 8 = 4 (LSB de 4 sur 16 bits)
IX + 9 = 0 (MSB de 4 sur 16 bits)
Pemarque :
La deuxième forme peut prendre une ou deux secondes, mais permet,
après réarrangement de la RAM, de disposer d'un espace plus grand.
HIMEM
INP (Adresse)
MEM0RY< Adresse>
Remarque :
Une erreur sur cette instruction peut avoir des conséquences graves
comme le « plantage »1> de l'unité centrale, ou l'écriture intempestive
sur l'unité de cassette ou de disquette.
Remarque :
Une erreur sur cette instruction peut avoir des conséquences graves
comme le « plantage » de l'unité centrale, ou l'écriture intempestive sur
l'unité de cassette ou de disquette.
La RAM occupe les 64 kilo-octets d'adresse 0 à &FFFF de la manière
suivante :
&0000 à &003F : Copie conforme du ROM BIOS
&0040 à &3FFF : Espace de travail pour le langage utilisé
&4000 à &BAFF: RAM utilisateur
&BBOO à &BFFF: Zone des variables système et table des
points d'entrée des routines du FIRMWARE.
&C000 à &FFFF: RAM écran.
Reportez-vous en partie 2 chapitre 2 pour avoir plus de détails sur la
mémoire.
Utilisation Vous pouvez insérer les codes en langage machine d'un programme écrit
en assembleur dans un programme BASIC et mettre ces codes en
mémoire RAM de la façon suivante :
1 ) L'unité centrale est « plantée » lorsqu'elle n'est plus sous le contrôle du programmeur.
Partie 4 Chapitre 1.2 page 52 Locomotive BASIC : Définitions et rappels de base
VARPTR (Adresse)
x dimensions ( x > 1 ) :
AD — n = (Valeur ASCII de la dernière lettre) OR &80
AD - n + 1 = Type de la variable : 1 si entière
2 si alphanumérique
4 si flottante
AD-n + 2etAD-n + 3 = Longueur offset entre 2 variables
AD - n + 4 = Nombre d'indices
AD - n + 5 et AD - n + 6 = Nombre d'éléments du 1er indice
AD - n + 7 et AD - n + 8 = Nombre d'éléments du 2e indice avec
n = 6 + 2* Nombre d'indices.
Cet ordre lance l'exécution d'un sous-programme BASIC après une attente
définie par le paramètre « délai ».
Si le numéro du chronomètre est omis, le chronomètre 0 est pris par
défaut.
DI
Remarques :
a) La commande « BREAK » n'est pas affectée par cette instruction.
b) Cette commande est annulée par :
- El,
— la rencontre d'un « RETURN » en fin d'un sous-programme d'inter
ruptions.
El
Remarque :
Cette commande arrête le chronomètre spécifié. L'appel du sous-
programme sous interruptions affecté au chronomètre lu n'a donc pas
lieu après l'utilisation de cet ordre.
TIME
X. Instructions musicales
Remarque :
Si le numéro d'enveloppe est négatif (entre - 15 et - 1 ), le son se répète
jusqu'à la fin de sa durée fixée par « SOUND ».
Une section d'enveloppe peut contenir 2 ou 3 paramètres :
— nombre de pas,
— amplitude du pas,
— durée du pas.
1) La section d'enveloppe contient 3 paramètres :
Nombre de pas : de 0 à 239.
Nombre de divisions dans la tonalité à l'intérieur d'une section
d'enveloppe.
Amplitude du pas : de -128 à 127
— Si ce paramètre est <0, augmente la hauteur de la note ;
— Si ce paramètre est >0, diminue la hauteur de la note.
Durée du pas : de 0 à 255 en 1 /100e sec.
2) La section d'enveloppe contient 2 paramètres :
Période sonore : Valeur de la période : c'est la hauteur du son (voir tableau
donné à l'ordre « SOUND », p. 67).
Durée du pas : en 1/100e sec.
Fréquence Fréquence
t t
1 1
1
1
1
1
3 étapes j 2 étapes
v/e =10 1 v/e = 10
1
d/e = 2 « d /e = 8
Définit l'enveloppe de volume pour une enveloppe repérée par son numéro
de 1 à 15. Cette commande est utilisée conjointement à la commande
« SOUND ».
Une section d'enveloppe peut contenir 2 ou 3 paramètres.
Si elle contient 3 paramètres, ils indiquent :
— nombre de pas,
— amplitude du pas,
— durée du pas.
Si elle contient 2 paramètres, ils indiquent :
— enveloppe matérielle,
— période de l'enveloppe.
1) La section d'enveloppe contient 3 paramètres :
Nombre de pas : Nombre de divisions définissant l'évolution d'un son
à l'intérieur d'une section. Ce nombre est compris entre 0 et 127.
Amplitude du pas : comprise entre - 128 et 127 ; de - 128 à 0 : aug
mente le volume de la note ; de 0 à 127 : diminue le volume de la note.
Durée du pas : en 1/100° sec. (de 0 à 256)
2) La section d'enveloppe contient 2 paramètres :
Enveloppe matérielle : Valeur à envoyer au registre d'enveloppe (voir Par
tie 6).
Période de I enveloppe : Valeur à envoyer aux registres de période d'enve
loppe (voir Partie 6).
Volume
1 2 3 4 ! 6 t
1
1
1
1
1
l
-6-
1
l
1 ENV 1.4.-4.2.2.4,6,2.-4,2
-9- l
3 étape s 3 étapes l
v/e * 3 v/e = 3 I
1
i
d/e - 1 d/e « 1
v/e = variation par étape
ENV 1,3,3.1.3.-3.1 et d/e - durée par étape
6° Complément
Partie 4 Chapitre 1.2 page 58 Locomotive BASIC : Définitions et rappels de base
Voie ( octave 1 )
Voie ( octave 2 )
Voie C 3
JL i* - ( octave 3 )
y
t ----- J—
ou Ra = Rendez-vous avec le canal A
et Rb = Rendez-vous avec le canal B
Partie 4 Chapitre 1.2 page 60 Locomotive BASIC : Définitions et rappels de base
Do 261.62 478
Do# 277.18 451
Re 293.66 426
Re# 311.12 402
Mi 329.62 379
Fa 349.22 358
Fa# 369.99 338 Octave 0
Sol 391.99 319
Sol# 415.3 301
La 440 284
La# 466.16 268
Si 493.88 253
Do 523.25 239
Do# 554.36 225
Re 587.32 213
Re# 622.25 201
Mi 659.25 190
Fa 698.45 179
Fa# 739.98 169 Octave 1
Sol 783.99 159
Sol# 830.6 150
La 880 142
La# 932.32 134
Si 987.76 127
Do 1046.5 119
Do# 1108.73 113
Re 1174.65 106
Re# 1244.5 100
Mi 1318.51 95
Fa 1396.91 89
Fa# 1479.97 84 Octave 2
Sol 1567.98 80
Sol# 1661.21 75
La 1760 71
La# 1864.65 67
Si 1975.53 63
Do 2093 60
Do# 2217.46 56
Re 2349.31 53
Re# 2489.01 50
Mi 2637.02 47
Fa 2793.82 45
Fa# 2959.95 42 Octave 3
Sol 3135.96 40
Sol# 3322.43 38
La 3520 36
La# 3729.31 34
Si 3951.06 32
Locomotive BASIC : Définitions et rappels de base Partie 4 Chapitre 1.2 page 61
10 FOR 1 = 1 TO 16
20 READ A,B
30 SOUND A,B
40 NEXT I
50 DATA 1,478,4,119,1,379,4,95,17,319,10,119,4,80,2,190
60 DATA 4,60,17,319,10,119,4,95,1,379,4,80,1,478,4,60
SQ (<N° de canal> )
6‘ Complément
Partie 4 Chapitre 1.2 page 62 Locomotive BASIC : Définitions et rappels de base
Si nous mettons les notes sous forme de DATA, le programme aura l'allure
suivante :
1OOO 'Programme principal
1010 ON SQ(1 ) GOSUB 3000 'Activation du S/P de remplissage de
file sonore
1020 GOTO 1000
3000 READ NOTE 'Lecture d'une note
3010 IF NOTE = 0 THEN RESTORE:GOTO 3000
3020 SOUND 1, NOTE 'Mise en file d'attente
3030 RETURN
3040 DATA notes, 0 'Notes et terminateur
DRAW < x abs >, < y abs > [,[ < encre > Lf < mode d'encre > ]] sur 6128
DRAW<x abs>, <y abs>[, <encre>] sur 464 et 664
Remarque :
Voir l'utilisation du mode d'encre à l'instruction « PLOT ».
L'ordre DRAW dessine une ligne sur l'écran entre la position courante
du curseur graphique et la position absolue indiquée par « x abs » et « y
abs ».
Utilisation Traçons le graphe ci-dessous à l'aide de l'instruction « DRAW ».
Remarque :
Voir l'utilisation du mode d'encre à l'instruction « PLOTR ».
Dessine une ligne sur l'écran à partir de la position courante du curseur
graphique vers une position relative : Si x,y est la position courante du
curseur, une ligne sera tracée entre x,y et x + décalage en x,y + décalage
en y.
Utilisation L'instruction de remplissage de surfaces à contour fermé existe dans le
BASIC 6128, mais pas dans les BASIC 464 et 664. Nous allons la recréer
partiellement :
Soit un rectangle défini par ses coordonnées x1 ,y1 en bas à gauche et
x2,y2 en haut à droite.
Pour le remplir, il faudra faire :
— Curseur en x1, y1.
— Tracé d'une ligne horizontale de longueur x2-x1.
— Curseur en x1 ,y 1 + 1.
— Tracé d'une ligne horizontale de longueur x2-x1.
et ce n fois jusqu'à ce que y1 + n = y2.
d'où le programme suivant :
100 X1 = 100:X2 = 300:Y1 = 100:Y2 = 200
110 FOR I = Y1 TO Y2
120 MOVE X1, I
130 DRAWR X2-X 1,0
140 NEXT I
Locomotive BASIC : Définitions et rappels de base Partie 4 Chapitre 1.2 page 65
Remarque :
Voir l'utilisation du mode d'encre à l'instruction « PLOTR »
Positionne le curseur graphique aux coordonnées absolues xabs, yabs
spécifiées.
Permet de définir :
a) Le point d'origine du curseur graphique.
Remarque :
x-0, y = 0 est le point en bas à gauche de l'écran.
b) Les dimensions de la fenêtre graphique.
Remarque :
Si les coordonnées de la fenêtre dépassent la taille de l'écran, c'est l'écran
qui est considéré comme fenêtre graphique.
Utilisation Lorsque le paramètre mode d'encre est utilisé, l'opération logique est
du mode d'encre faite entre la couleur du point courant et la couleur du point que l'on veut
afficher.
Les tables de vérité au niveau bit des fonctions XOR, AND et OR sont
les suivantes :
x OR 0 1 AND 0 1 OR 0 1
0 0 1 0 0 0 0 0 1
1 1 0 1 0 1 1 1 1
Exemple :
Soient les nombres a = 12 0 0 0 0 1 1 0 0
et b = 9 0 0 0 0 1 0 0 1
nous aurons a XOR b 0 0 0 0 0 1 0 1 = 5 en décimal
a AND b 0 0 0 0 1 0 0 0 = 8 en décimal
a OR b 0 0 0 0 1 1 0 1 = 13 en décimal
Si nous faisons :
PLOT x,y,12,0 -» un point magenta apparaît
PLOT x,y,9,1 -* un point bleu apparaît
mode XOR: 9 XOR 12 = 5 = bleu
PLOT x,y,12,0 -> un point magenta apparaît
PLOT x,y,9,2 -> un point bleu vif apparaît
mode AND: 12 AND 9 = 8 = bleu vif
PLOT x,y,12,0 -> un point magenta apparaît
PLOT x,y,9,3 -> un point mauve apparaît
mode OR: 12 OR 9 = 13 = magenta
Remarque :
Le mode d'encre peut être activé dans les ordres : DRAW, DRAWR,
PLOT, PLOTR, MOVE, MOVER comme 4e paramètre.
Utilisation Tracé des courbes Y = F(x)
Le programme se décompose en trois phases :
— saisie de l'équation,
— saisie du domaine de définition,
— tracé.
10 REM Trace de courbes d'équations Y = F(x)
20 GOSUB 1000 'Saisie de l'equation
30 STOP
40 GOSUB 2000 'Saisie du domaine
50 GOSUB 3000 'Trace
60 :
70 END
80 REM ........................................................ —............................. ..............
1000 REM Saisie de l'equation
1010 :
1020 CLS
1030 PRINT "Tapez 2060 DEF FNA(X) = "
1040 PRINT "Suivi de l'equation a etudier."
1050 PRINT:PRINT "Tapez ensuite RUN 40"
1060 :
1070 RETURN
1080 REM ........ ........................... -.............................................. .................
Partie 4 Chapitre 1.2 page 68 Locomotive BASIC : Définitions et rappels de base
PLOTR < décalage en x >, < décalage en y >, [, [ < encre > ], [ < mode
d'encre> ]] sur 6128
PLOTR <décalage en x>, <décalage en y>, [, <encre>] sur 464
et 664
TEST(<x>,<y>)
VPOS
XPOS
YPOS
Définition :
Exemples :
Exécute un « ET » logique entre tous les bits des deux arguments entiers
fournis.
Locomotive BASIC : Définitions et rappels de base Partie 4 Chapitre 1.2 page 71
Exemple :
1 0 1 1110 0 &BC
AND 0 1 1 1110 1 &7D
= 0 0 1 1110 0 &3C
Définition :
Correspondance réciproque de la fonction tangente. ATN(x) = b où b est
compris entre - pi/2 et pi/2 et tel que TAN(b) = x.
Remarques :
a) Les commandes « DEG » et « RAD » peuvent être utilisées pour spé
cifier que le résultat doit être exprimé en degrés ou en radians.
b) Par défaut, la valeur sera calculée en radians.
Exemple :
BIN$( — 3,8) = 111111111111110 1
BIN$(3,8) = 0 0 0 0 0 0 11
BIN$(3,16) = 0000000000000011
Remarque :
Le codage binaire d'un nombre négatif se fait de la façon suivante :
- n = n + 1 sur 16 bits.
Exemple :
n = 3 sur 1 6 bits : 0 0 0 0 0 0 O 0 0 0 0 0 0 0 1 1
n 1111111111111100
n+1 1111111111111101
Partie 4 Chapitre 1.2 page 72 Locomotive BASIC : Définitions et rappels de base
Ainsi, on a BIN$(- 1 ) : 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1
= 1111111111111111 + 1
Utilisation Si vous êtes un peu déconcerté devant l'abondance des instructions per
mettant d'extraire les parties fractionnaires ou entières d'un nombre réel,
voici un programme qui pourra vous fixer les idées sur leur utilisation :
110 :
120 MODE 2
150 PRINT
210 PRINT
230 IF UPPER$(R$)< > "O" AND UPPER$(R$)< > "N" THEN PRINT
CHR$(7):GOTO 220
250 END
Lignes 140 à 210 : Affichage du résultat des fonctions INT, CINT, CREAL,
FIX et ROUND.
Définition :
Rapport du côté adjacent sur l'hypoténuse.
Remarques :
a) Les commandes « DEG » et « RAD » peuvent être utilisées pour spé
cifier que le résultat doit être exprimé en degrés ou en radians.
b) Sauf indication contraire, la valeur sera calculée en radians.
DEG
Remarque :
Les commandes RAD, NEW, CLEAR, LOAD, RUN, CALL O, ... annulent
l'effet de la commande « DEG ».
Locomotive BASIC : Définitions et rappels de base Partie 4 Chapitre 1.2 page 75
Remarques :
a) Pour calculer la puissance dans une base autre que e, (soit a cette
base), nous ferons :
a~x = e*(x ❖ LOG(a)) où LOG est le logarithme népérien.
b) La fonction réciproque de EXP est le logarithme népérien LOG.
Exemples :
HEX$(250,4) = OOFA : Des « 0 » sont rajoutés à gauche du nombre
exprimé en hexadécimal pour obtenir le nombre de digit demandé.
HEX$(250,1 ) = FA : Impossible à exprimer sur 1 digit.
HEX$(250,1 6) = OOOOOOOOOOOOOOFA
Définition :
Soit x un nombre strictement positif écrit sous la forme x = a"y où :
Partie 4 Chapitre 1.2 page 76 Locomotive BASIC : Définitions et rappels de base
Remarque :
Remarque :
Exemple :
10 A = 4
20 PRINT MAX(3*4,A,1 )
affichera 12.
Exemple :
10 A = 4
20 PRINT MAX(3*4,A,1 )
affichera 1.
Locomotive BASIC : Définitions et rappels de base Partie 4 Chapitre 1.2 page 77
Exécute une inversion logique sur tous les bits de l'argument entier fourni.
La table de vérité de la fonction NOT au niveau bit est la suivante :
A 0 1
NOT A 1 0
Exemple :
10 11110 0 &BC
NOT &BC = 0 1 0 0 0 0 1 1 &43
Exécute un « OU » logique entre tous les bits des deux arguments entiers
fournis.
La table de vérité de la fonction OR au niveau bit est la suivante :
OR 0 1
0 0 1
1 1 1
Exemple
1 0 1 1 110 0 &BC
OR 0 1 1 1 110 1 &7D
1 1 1 1 110 1 &FD
PI
Définition :
Rapport de la longueur d'un cercle à son diamètre. C'est un nombre irra
tionnel transcendant.
Le nombre « PI » sur AMSTRAD donne la valeur approchée du nombre
PI : 3.141592653468251.
Remarque :
Les valeurs rationnelles suivantes peuvent suffire dans beaucoup de cas :
22/7 à 2* 10*-3 près, et 3Ï5/113 à 3* 10*-7 près.
RAD
Définition :
Arc dont la longueur égale le rayon du cercle (le cercle entier mesure
2 pi radians).
Partie 4 Chapitre 1.2 page 78 Locomotive BASIC : Définitions et rappels de base
Remarque :
On a 1 radian = 180/pi degrés,
et 1 degré = pi/180 radians.
RND[<expression numérique>]
Exemple :
ROUND(12343.656,-3) = 12000
ROUNDd 2343.656,2) = 12300
ROUND(12343.656,0) ou ROUND (12343.656) = 12344
ROUND(125,-4) = 0
Reportez-vous à l'ordre « CINT » pour avoir des exemples de valeurs de
ROUND.
Exemples :
SGN( — 12.5) = -1
SGN(0) = 0
SGN (1.4E30) = 1
Partie 4 Chapitre 1.2 page 80 Locomotive BASIC : Définitions et rappels de base
Définition :
Pour un angle aigu, rapport du côté opposé sur l'hypoténuse.
Remarques :
a) Les commandes « DEG » et « RAD » peuvent être utilisées pour spé
cifier que le résultat doit être exprimé en degrés ou en radians.
b) Sauf indication contraire, la valeur sera calculée en radians.
Définition :
a est appelé racine d'un nombre A si aA2 = A.
Cette fonction donne la racine d'un nombre réel ou entier.
Définition :
Rapport du sinus sur le cosinus.
Remarques :
a) Les commandes « DEG » et « RAD » peuvent être utilisées pour spé
cifier que le résultat doit être exprimé en degrés ou en radians.
b) Sauf indication contraire, la valeur sera calculée en radians.
UNT(<nombre hexadécimal)
Exemples :
UNT(SFFFF) = -1
UNT(SFFFE) = -2
UNT(O) = 0
Définition du complément a 2 :
on a -n = n + 1 où n est un entier positif
par exemple :
-3 = 3+1
3 =0000000000000011
3 =1111111111111100
3+ 1 =1111111111111101= &FFFD en hexadécimal
Exécute un « OU EXCLUSIF » logique entre tous les bits des deux argu
ments entiers fournis.
La table de vérité de la fonction XOR au niveau bit est la suivante :
XOR 0 1
0 0 1
1 1 0
Exemple :
1 0 1 1 1 1 0 0 &BC
XOR 01111101 &7D
= 1 1 0 0 0 0 0 1 &C1
Remarques :
a) Sur 464 et 664, si une ligne est déjà en mémoire, un « H: » apparaît
après son numéro pour indiquer le conflit. Tapez « Enter » si vous voulez
conserver l'ancienne ligne.
Sur 6128, si une ligne est déjà en mémoire, elle apparaît en clair et est
modifiable comme par la commande « EDIT ». Tapez « Enter » si vous
voulez conserver l'ancienne ligne.
b) Si vous ne donnez aucun argument à cette commande, la numérota
tion commence en ligne 10 et l'écart entre deux lignes est de 10.
CLEAR
CONT
Remarques :
a) Si le programme est modifié entre son arrêt et la demande de redé
marrage, ou s'il est protégé, la commande « CONT » sera mise en défaut.
b) L'utilisation des ordres « STOP » et « CONT » est très efficace pour
aider à la mise au point des programmes écrits en BASIC. En effet, si
le programme à tester est de grande taille, il pourra être judicieux de le
tester par petits blocs en y insérant des commandes « STOP ».
Définit le type des variables par défaut comme étant entier. Si une varia
ble est entrée sans marqueur du type « ! » pour un nombre binaire, « % »
pour un entier et « $ » pour une chaîne, elle est automatiquement défi
nie entière si sa première lettre commence par une des lettres citées dans
la commande « DEFINT ».
Exemple :
DEFINT A -> Toutes les variables de nom commençant par « A » et non
marquées seront de type entier.
DEFINT A-Z -> Toutes les variables non marquées seront de type entier.
Définit le type des variables par défaut comme étant réel. Si une variable
Locomotive BASIC : Définitions et rappels de base Partie 4 Chapitre 1.2 page 83
Exemple :
DEFREAL A -» Toutes les variables de nom commençant par « A » et
non marquées seront de type réel.
DEFREAL A-Z -> Toutes les variables non marquées seront de type réel.
Exemple :
DEFSTRA - Toutes les variables de nom commençant par « A » et non
marquées seront de type alphanumérique.
DEFSTR A-Z -* Toutes les variables non marquées seront de type alpha-
numérique.
Exemples :
DELETE Efface la totalité des lignes en mémoire.
Identique à la commande « NEW » à ceci près que DELETE
n'efface pas la valeur des variables en mémoire.
DELETE a-b Efface toutes les lignes comprises entre « a » et « b ».
DELETE -a Efface toutes les lignes du début du programme jusqu'à
la ligne « a ».
DELETE a- Efface toutes les lignes à partir de la ligne « a » jusqu'à
la fin du programme.
Remarque :
Utilisez cette commande avec précaution, car il n'est pas possible de
récupérer les lignes effacées par une simple commande BASIC.
EDIT<N° de ligne>
Remarques :
a) Lors de l'exécution d'un programme BASIC, s'il survient une erreur, le
mode EDIT est lancé automatiquement sur la ligne ayant provoqué l'erreur.
b) Si vous tentez d'éditer une ligne qui n'existe pas, le message suivant
apparaîtra : « Line does not exist ».
END
NEW
Remarque :
Utilisez cette commande avec précaution, car il n'est pas possible de
récupérer les lignes effacées par une simple commande BASIC.
Remarques :
a) Tous les caractères rencontrés après la commande « REM » sont
considérés comme des commentaires, y compris le séparateur d'instruc
tions « : » qui ne permet pas de valider une instruction derrière un REM.
b) L'ordre REM peut être remplacé par une apostrophe, mais il produira
une erreur s'il est utilisé de cette façon dans un ordre DATA.
Remarque :
Les programmes BASIC protégés doivent être exécutés par cette commande
directement, sans être chargés en mémoire par l'instruction « LOAD ».
RUN[<N° de ligne>]
STOP
Cet ordre arrête l'exécution d'un programme quand il est rencontré. Uti
lisé conjointement à la commande CONT, cet ordre permet de « debug-
ger » les programmes BASIC que vous mettez au point.
TRON
TROFF
Dévalide l'utilisation du mode « trace » lancé par l'ordre TRON. Cette com
mande peut être activée par programme ou en mode direct.
XIV. Divers
Remarque :
L'argument « pas » peut être positif ou négatif, du moment que l'expres
sion ((fin-début)/pas) est positive.
où « expression logique » est une entité qui doit être vraie ou fausse, par
exemple A = 5 ou MID$(A$, 6, 2)>"A", etc..
Locomotive BASIC : Définitions et rappels de base Partie 4 Chapitre 1.2 page 89
Marque la fin d'une boucle FOR. Si aucun nom de variable n'est déclaré,
la variable par défaut sera celle qui a été déclarée dans le dernier FOR
rencontré. Plusieurs variables peuvent être précisées. Dans ce cas, elles
doivent être séparées par des virgules.
WAIT< Adresse port>, < masque >[, < octet de sélection >]
Exemples :
Attente jusqu'à ce que le bit 4 du port &3000 soit < > 0 : WAIT &3000,4.
Attente jusqu'à ce que le bit 4 du port &3000 soit égal à 0 : Wait &3000,
4, 4.
WEND
où « expression logique » est une entité qui doit être vraie ou fausse :
par exemple A = 5 ou MID$(A$, 6, 2)>"A", etc.
Répète une section d'instructions tant que « expression logique » est vraie.
Partie 4 Chapitre 1.2 page 90 Locomotive BASIC : Définitions et rappels de base
Exemple : a
Répéter le calcul de la décomposition polynomiale — tant que le taux
d'erreur est supérieur à 0.001. n = i 2n
Donne le nombre maximum de caractères par ligne lors d'une sortie sur
imprimante. La valeur par défaut est 132.