Mémento TO7/70

La "mémo7" est le nom de la cartouche que vous introduisez dans votre TO7. C'est en fait une mémoire ROM contenant le BASIC. Bien entendu, il existe d'autre mémo7 comme ColorPaint ou LOGO.


Mise en service du matériel haut de page

Le TO7 est relié à un moniteur ou une télévision via la prise péritel et a une prise de courant 220 Volts. Avant tous, vérifiez que vous avez votre mémo7 BASIC dans votre TO7. Mettez vos périphérique sous tension (écran, lecteur(s), imprimante ...)   puis l'ordinateur. Le menu apparaît sur l'écran. Ici, vous pouvez réglez la luminosité et le contraste pour que le crayon optique soit fonctionnel. Puis activé le menu de votre choix.

/!\ Si l'affichage n'est pas en couleur bien que votre téléviseur le soit, c'est peut être parce que vous passez par votre magnétoscope. Si ce n'est pas le cas, vérifiez que votre téléviseur est compatible PAL/SECAM.


Touches magiques haut de page
STOP
= PAUSE : met le programme en attente jusqu'à l'appuie sur une touche    
CNT
C
= Ctrl-Break ou Ctrl-C sur les PC. Interrompe le programme. Reprise avec la commande CONT    
RAZ
efface l'écran
·
7
accent aigu
CNT
X
efface la fin de la ligne en partant du curseur
·
0
accent grave
^ v < >
touche de direction
·
2
tréma
_]
position le curseur en haut à gauche de l'écran
·
@
"^" circonflexe
INS
EFF
insertion d'un espace, effacement d'un caractère.
c
c
"ç"
Entrée
validation d'une ligne    
·
touche majuscule    
·
Espace
permutation majuscule/minuscule    
ACC
pour mettre un accent (en minuscule), appuyer sur cette touche, puis sélectionner un accent, puis entre la lettre a accentuer.    

Imprimante parallèle haut de page

listé un programme sur l'imprimante :

list "lptr:" sur 40 colonnes
list "lptr:(80)", 10-200 liste partielle sur 80 colonnes

Impression de données : (il vous suffit d'ouvrir l'imprimante comme un fichier en écriture séquentiel)

... Open "o", #canal, "lptr:(colonne)"
...
... Print #canal, using "formatage"; liste de données
...
... Close canal

Fichier sur cassette haut de page

Écriture du fichier : positionner la bande, appuyer sur la touche enregistrement

... open "o", #canal, "nom_de_fichier"
...
... print #canal, données
... print #canal, using "formatage"; données
...
... close canal

Lecture du fichier : positionner la bande

... open "i", #canal, "nom_de_fichier"
...
... input #canal, données
...
... close canal

Pour les disquettes, nous avons des nouveaux mots, mais il sont définir par le "BASIC D.O.S" qui provint du basic fournir avec le lecteur de disquette.


Généralité sur les filtres (descripteur de fichier). haut de page

Un nom de fichier peut contenir 8 caractère (lettre et chiffre), et un suffixe facultatif formé d'un point et de trois caractère.

Liste descripteur de fichier
Série "COMM: (options) nom_de_fichier"
cassette "cass: nom_de_fichier"
imprimant parallèle "lptr: (nombre de colonnes)"
écran "scrn: (nombre de colonnes)"
clavier "kybd:"

L'option de la voie série est formée de 3 à 5 chiffres :

Premier chiffre 1=110 bauds, 2=300 bauds, 3=600 bauds, 4=1200 bauds, 5=2400 bauds, 6=4800 bauds.
Second chiffre 7 ou 8 : nombre de bits transmis par caractère
Chiffre suivantes 0 à 255 : longueur de la ligne ou du bloc transmis

Exemple : open "o", #3, "comm:(37126)"


Liste des instructions haut de page

Vous pouvez faire suivre plusieurs instruction à la suites en les séparant par le caractère deux points ":". Les options sont notées en italique.

ATTRB largeur, hauteur, masquage
Défini l'étirement des caractères dans l'affichage des caractères avenir.
largeur, hauteur : 0 = normal, 1 = doublé.
masquage : 0 = non masqué, 1 = masqué
AUTO 1re_ligne, incrément
Numérotation automatique des lignes pour la saisie de votre programme.
BEEP
Produit en son court
BOX / BOXF (X1,Y1)-(X2,Y2), couleur
BOX / BOXF (C1,L1)-(C2,L2) chaîne, couleur forme, couleur fond, inversion de couleur
Dessin respectivement un rectangle vide et plein (F pour full) défini par 2 sommet en coordonnée d'écran en graphique ou en texte : voir instructions graphiques.
CLEAR nombre d'octets chaîne, adresse max., nombre de caractères utilisateur
Réservation de place pour le travail sur les chaînes et les caractères utilisateur ; plus haute adresse utilisable par le BASIC.
Ex : Clear 500,34000 : CLEAR ,,4
CLOSE canal, ...
Fermeture de fichiers.
Ex : CLOSE 1 : CLOSE 2,3
CLS
Effacement de l'écran avec les couleurs actuels.
COLOR couleur forme, couleur fond, inversion des couleurs
Définit la couleur des caractères ; voir tableau des couleurs
Ex : color 3,4 : color ,,1
CONSOLE 1re ligne, dernier ligne, blocage des couleurs, défilement
Définit un fenêtre de travail (1 = couleurs bloquées, 0 sinon) et son mode de défilement (0 = normal, 1 = lent, 2 = par page)
Ex : CONSOLE 10,15 : CONSOLE ,,1,1
CONT
Poursuit l'exécution du programme interrompu par [CNT][C].
DATA liste de données, ...
Données du programme.
Ex : DATA 1,2,3,"GOWAP"
DEFGR$(numéro) = N1, N2, ..., N8
Définition d'un caractère utilisateur semi-graphique (numéro = 0 à 127, N1...N8 = 0 à 255). Le numéro maximum (+1) est spécifié par "CLEAR ,,1"
Ex : DEFGR$(0) = 24,126,60,36,24,252,36,244
DEFINT plage,... variable entière
DEFSNG plage,... variable simple précision
DEFDBL plage,... variable double précision
DEFSTR plage,... variable de chaîne
Déclaration du type des variables dont la première lettre est dans la plage indiquée
Ex : DEFDBL A-D, V-X
DEFUSR numéro = adresse
Adresse de début d'un programme écrit en langage machine (numéro = 0 à 9).
DELETE plage
Supprime des lignes du programme.
Ex : DELETE 100-150 : DELETE 100- : DELETE -150
DIM tableau (taille), ...
Dimensionne des tableaux.
Ex : DIM MAT (2,3), ID$(NB)
END
Termine l'exécution du programme.
ERROR numéro d'erreur
Simule (déclenche) l'erreur numérotée.
EXEC adresse
Exécution d'un programme en langage machine à partir de l'adresse indiquée.
Ex : EXEC &H9FE0
FOR var = début TO fin STEP incrément : ... : NEXT var, ...
Répétition des instructions en FOR et NEXT jusqu'à ce que la variable atteigne la valeur fin. STEP précise l'incrémentation ; a défaut, l'incrémentation sera de 1.
Ex : FOR J = 10 TO 0 STEP -1 : .... : NEXT
La boucle peut être sur plusieurs lignes :
10 FOR T ...
20 ...
30 NEXT T
GOSUB numéro de ligne
Appel du sous-programme Basic commençant à la ligne numérotée.
Ex : GOSUB 100
GOTO numéro de ligne
Saut (Branchement inconditionnel) à la ligne numérotée
Ex : GOTO 100
IF condition THEN instructions1 ELSE instructions2
IF condition GOTO numéro de ligne ELSE numéro de ligne
Exécution d'une instruction (ou d'un block) ou d'un saut suivant la valeur de la condition. Si la condition est validée, le premier bloc d'instruction sera exécuté. Dans le cas contraires et s'il existe, le deuxième bloc sera exécuté.
Ex : IF Site="GOWAP" THEN PRINT "YOUPI" : GOTO 200 ELSE 100
INPEN x,y
Lit les coordonnées à la volé du crayon optique. Voir crayon optique.
INPUT "message", VAR1, ...
Lecture de données introduites au clavier. Une point-virgule après le "message" affiche un point d'interrogation.
Ex : INPUT "Voulez vous continuer (O/N) :", REP$
INPUT #canal, variable, ...
Lecture de données à partir d'un fichier séquentiel
Ex : INPUT #1, MOT$, NB
INPUTPEN x,y
Attend l'appui du crayon optique pour lire ses coordonnées. Voir crayon optique.
INPUTWAIT numéro de ligne, durée en secondes, "message", liste de variable
Effectue une lecture de données introduites au clavier dans un temps limité. Si le délais est écoulé, effectue un branchement à la ligne numérotée. Un point-virgule après le "message" affiche un point d'interrogation.
Ex : INPUTWAIT 500, 10, "NOM et PRENOM" ; A$, B$ : INPUTWAIT 550, 10
LET var = expression
LET est facultatif et permet d'éffectuer une affectation de données à une variable.
Ex : LET R1 = (-B-SQR(DELTA))/(2*A)
LINE (X1,Y1)-(X2,Y2), couleur
LINE (C1,L1)-(C2,L2) chaîne, couleur forme, couleur fond, inversion de couleur
Trace une ligne de point ou de caractère. Voir instructions graphiques.
LINEINPUT "message", variable chaîne
Lecture d'une ligne introduite au clavier. Un point-virgule après le "message" affiche un point d'interrogation.
Ex : LINEINPUT PHRASE$
LINEINPUT #canal, variable chaîne
Lecture d'une ligne de données à partir d'un fichier.
LIST plage
Listage d'une partie ou de tout le programme sur l'écran.
Ex : LIST : LIST 100-200 : LIST -100 : LIST 200-
LIST "descripteur de fichier", plage
Listage du programme sur l'imprimante ou vers un fichier. Voir les descripteurs de fichier.
LOAD "nom de fichier", R
Charge le programme indiqué. L'option R lance l'exécution.
LOADM "nom de fichier", décalage, R
Charge en mémoire une page écran, ou un programme binaire avec translation en mémoire.
L'option R lance l'exécution.
LOCATE colonne, ligne, mode
Positionne le curseur sur l'écran (curseur invisible si mode = 0 et visible si mode = 1)
Ex: LOCATE 1, 1
MERGE "nom de fichier", R
Fusionne le programme indiqué avec le programme présent en mémoire. L'option R lance l'exécution.
MID$ (chaîne1$, i, j) = chaîne2$
j caractères de chaîne1$ sont remplacés à partir du ième caractère, par les j premiers caractères de chaine2$.
Ex : MID$("Le XXXXX !",4,5) = "GOWAP" donne "Le GOWAP !"
Ne pas confondre avec la fonction MID$.
MOTORON
Lance le défilement de la cassette.
MOTOROFF
Arrête le défilement de la cassette.
NEXT var, ...
Voir FOR.
NEW
Détruit le programme et les variables en mémoire centrale.
ON ERROR GOTO numéro de ligne
Branche au numéro de ligne indiqué dès qu'une erreur est détectée (généré).
ON variable GOTO ligne1, ligne2, ...
ON variable GOSUB ligne1, ligne2, ...
Branche au numéro de ligne indiqué selon la valeur de variable
Ex : ON T GOTO 100, 200, 300
ONPEN GOTO ligne0, ligne1, ...
ONPEN GOSUB ligne0, ligne1, ...
Branche à la ligne indiqué selon la zone d'écran désigné par le cayon optique. Voir crayon optique.
OPEN "mode", #canal, "nom_de_fichier"
OPEN "mode", #canal, "descripteur de fichier"
Ouverture d'un canal en entrée (mode = I) ou en sortie (mode = O) pour un fichier ou un périphérique. Voir les descripteurs de fichier.
OPEN "I", #1, "Clients.ABC" : OPEN "O", #2, "LPRT:"
PEN zone, zone, ...
Définit des zones d'écran numéroté pour la gestion du crayon optique. Voir crayon optique.
PLAY mélodie, mélodie, ...
Les mélodies sont des chaînes contenants les notes et des propriétés. Voir musique.
POKE adresse, i
Ecrit à l'adresse indiquée la valeur de i (i est un octet : valeur de 0 à 255).
Ex : POKE &H9FFF, 127
PRINT expressions, expressions ...
Affichage de résultats ou de textes sur l'écran. Un point virgule après l'expression permet de ne pas retourner à la ligne immédiatement, et de ne pas faire d'espace entre plusieurs expression.
PRINT "Le ";: A$="GOWAP" : PRINT A$ : FRS = 120 : PRINT "EURO = ";FRS*0.15
PRINT #canal, expressions, expressions ...
Écriture sur un fichier ou un périphérique identifié par son numéro de canal.
PRINT #canal USING image ; expressions
L'écriture se réfère à l'image spécifiée (chaîne qui contient des descripteurs de mise en page)
Descripteurs pour chaînes
! Premier caractère de la chaîne uniquement
%  % n-2 espaces entre % permettent l'édition de n caractères
& attribue une longueur suffisante pour l'édition de la chaîne
Descripteurs pour valeurs numériques :
# 1 position numérique
. sépare la partie entière de la partie décimale
+ édition du signe + si le nombre est positif
- placé à droite : le signe moins est édité à droite de la valeur
** les espaces non significatifs sont remplacés par des *
^^^^ utilisation de la notation avec exposant
Descripteur spécial
= le caractère suivant le signe = dans la chaîne est édité tel quel

Tous autre caractère ou espace dans l'image est considéré comme séparateur et édité tel quel.
Ex : PRINT USING "###.## Frs"; MONTANT

PSET (X,Y), couleur
PSET (C,L), chaîne, couleur forme, couleur fond, inversion de couleurs
Affiche un point ou un caractère. Voir instructions graphiques.
READ variable, ...
Lecture des données des instructions DATA.
Ex : READ NB, ST$
REM commentaire ou ' commentaire
Insertion d'un commentaire dans un programme.
RESTORE numéro de ligne
Réinitialise la lecture des données des instructions DATA, soit à la ligne indiquée, soit au début de la première instruction DATA si le numéro de ligne est omis.
RESUME NEXT
Sortie d'un sous programme de traitement d'erreur (appelé par ON ERROR GOTO) et retranchement à l'instruction où l'erreur a été détectée ou à l'instruction suivant avec l'option NEXT.
RETURN
Sortie de sous-programme et retour à l'instruction GOSUB appelant.
RUN "nom de fichier", numéro de ligne
Lancement de l'exécution d'un programme à partir de la ligne indiquée. En omettant le nom de fichier à charger, le programme en mémoire sera exécuté. Le numéro de ligne désigne le point de départ de l'exécution ; s'il est omis, la première ligne du programme sera le point de départ.
Ex : RUN : RUN "PROG1", 100 : RUN "CASS:PROG2"
SAVE "nom de fichier", P ou A
Sauvegarde d'un programme avec protection (P) ou en ASCII (A). Si P et A son omis, le programme est sauvegardé en code BASIC. L'option A permet de sauvegarder le programme dans un format lisible ; c'est en fait un fichier séquentiel qui contient les mêmes caractères que vous visualisez lorsque vous utilisez l'instruction LIST.
Ex : SAVE "SECRET", P : SAVE "PROG1", A : SAVE "PROG"
SAVEM "nom de fichier", adr. début, adr. fin, adr. lancement
Sauvegarde d'une page écran ou d'un programme écrit en langage machine.
Ex : SAVEM "BINAIRE", 32700, 32750, 32702
SCREEN couleur forme, couleur fond, couleur cadre, inversion couleurs
Fixe les couleurs de l'écran.
Ex : SCREEN 3, 4, 0 : SCREEN ,,,1
Ne pas confondre avec la fonction SCREEN.
SKIPF "nom"
Saute, sur la cassette, le fichier indiqué, ou le premier rencontré si le nom est omis.
STOP
Suspend l'exécution du programme. On peut relancer par CONT.
TRON
Mise en route du monde TRACE. Le numéro de la ligne exécuté sera affiché sur l'écran.
TROFF
Arrêt du mode TRACE.
UNMASK
Démasque sur l'écran toutes les zones masquées par ATTRB.
WAIT adresse, masque-et, masque-ou
Suspend l'exécution en attente d'un événement. L'exécution reprend dès que la valeur la l'opération masque-et AND "contenu de la mémoire pointée" XOR masque-ou est différent de zéro. Les opérations AND et XOR sont effectuées bit à bit sur les octets.

Couleurs et coordonnées graphique haut de page
Couleurs forme et fond texte fond en graph.
noir   0 -1
rouge   1 -2
vert   2 -3
jaune   3 -4
bleu   4 -5
magenta   5 -6
cyan   6 -7
blanc   7 -8
Coordonnées text et graphique

 

coord. graph. : X/Y
0 319
199
 
coord. texte : L/C
0 39
24
 

Opérateurs logiques haut de page
AND ET logique OR ou logique (inclusif)
NOT complément IMP implication
EQV équivalence XOR ou exclusif

Opérateurs Arithmétiques haut de page

Le tableau suivant contient les opérateurs par priorité décroissante:

^ élévation à la puissance X^Y
- moins unaire -X
* / multiplicateur et division X * Y et X / Y
@ division entière X @ Y
MOD modulo X MOD Y
+ - addition et soustraction X + Y - Z

Le caractère ^ est obtenu en appuyant simultanément sur les touches shift [·] et @.


Variable ERL et ERR haut de page

ERL et ERR sont des variables particulières qui permettent, lorsqu'une erreur est détectée pendant l'exécution d'un programme, de connaître le numéro de la ligne de l'erreur détectée et le numéro de l'erreur afin de la traiter.


Instructions graphiques haut de page
BOX rectangle défini par 2 sommets opposés en diagonale
BOXF rectangle rempli
LINE segment défini par les coordonnées de ses extrémités
PSET point ou caractère

L'absence du coupe (X1,Y1) ou (C1, L1) provoque le tracé à partir de la position précédente.

Mode graphique

BOX (x1, y1)-(x2,y2), couleur
BOXF (x1,y1)-(x2,y2), couleur
LINE (x1,y1)-(x2,y2), couleur
PSET (x,y), couleur

Mode caractère
Le tracé s'effectue au moyen de la première lettre de la chaîne. BOXF remplit le rectangle avec cette lettre, PSET écrit la lettre au point (C, L).

BOX (C1, L1)-(C2, L2) chaîne, couleur forme, couleur fond, inversion de couleurs
BOXF (C1, L1)-(C2, L2) chaîne, couleur forme, couleur fond, inversion de couleurs
LINE (C1, L1)-(C2, L2) chaîne, couleur forme, couleur fond, inversion de couleurs
PSET (C1, L1) chaîne, couleur forme, couleur fond, inversion de couleurs

Ex: BOX (39,24)-(20,13) "*",3,4
LINE (0,0)-(0,13) "ESSAI"
PSET (2,1) A$, 5

Crayon optique haut de page
PTRIG
Teste le contact du crayon optique.
Valeur "vraie" (-1) si crayon appuyé, "faux" (0) sinon
Ex : IF PTRIG GOTO 100
INPEN x,y
Lit les coordonnées du point visé par le crayon optique.
Pour un point visée en dehors de l'écran, ou pour une mauvaise lecture : x = -1 et y = -1.
INPUTPEN x,y
Attend, pour lire, que le crayon soit appuyé.
Ex : 100 INPUTPEN X, Y : IF X < 0 GOTO 100
PEN zone, zone, ...
Définit des zones rectangulaires de lecture pour les ordres ONPEN.
Forme des zones : numéro ; (X1, Y1)-(X2, Y2)
("numéro" varie de 0 à 7)
Ex : PEN 0 ; (40, 50)-(60,70), 3 ; (40, 100)-(60,130)
Si les coordonnées sont absentes, PEN supprime la zone.
PEN 1;,3;
PEN toutes les zones sont supprimées.
ONPEN GOSUB ligne 0, ligne 1, ...
ONPEN GOTO ligne 0, ligne 1, ...
Attend que le crayon optique soit appuyé et branche à l'une des lignes, suivant le numéro de la zone visée.

Musique haut de page

PLAY mélodie, mélodie, ...
Chaque mélodie est une chaîne de caractère composée de notes ( DO, RE, MI, FA, SO, LA, SI et P pour Pause) dont on peut modifier :
    la durée : L1 à L96, (L24 au début de l'exécution)
    l'octave : O1 à O5, (O4 au début)
    le tempo : T1 à T255, (T5 au début)
    l'attaque : A0 à A255, (A0 au début)
Placer (éventuellement) après la note : dièse # ou bémol b.

PLAY "DODODOREL48MIREL24DOMIREREL48DO"
A$ = "O3A5DOT1O2A1DOREMIFAO4A0T5SO #" : PLAY A$

Durées conventionnelles des notes
notes   standard    pointée    triolet 

ronde L96 - L64
blanche L48 L72 L32
noire L24 L36 L16
croche L12 L18 L8
double croche L6 L9 L4
triple croche L3 - L2

Fonctions haut de page
ABS(v)
Valeur absolue d'un nombre réel.
ASC(chaîne)
Donne le code ASCII du premier caractère de la chaîne. Voir la table ASCII du TO7.
CDBL(v)
Conversion en double précision.
CHR$(code)
Donne le caractère dont le code ASCII est indiqué. Voir la table ASCII du TO7.
CINT(v)
Arrondit à l'entier le plus proche.
Ex : CINT(13.9) donne 14.
COS(v)
Cosinus de l'angle exprimé en radians.
CSNG(v)
Convention en simple précision.
CSRLIN
Donne le numéro de la ligne où se trouve le curseur.
Ex : LOCATE 0,5 : PRINT CSRLIN
DEFUSR i = adresse
Définit l'adresse du début du sous-programme i écrit en langage machine (i = 0 à 9).
EOF(canal)
Donne la valeur vraie (-1) si une fin de fichier a été détectée, faux (0) sinon.
Ex : IF EOF(1) THEN PRINT "Fin de fichier" : GOTO 900
EXP(v)
Exponentielle.
FIX(v)
Troncature de v.
FRE(0)
Donne la place totale libre en mémoire.
FRE(A$)
Donne la place libre pour le traitement des chaînes.
HEX$(v)
Conversion en hexadécimal. Si le nombre est un réel, il est d'abord arrondi.
INKEY$
Prend au vol la dernière touche appuyée au clavier. La chaîne vide "" est retourné si le tampon (buffet) du clavier est vide.
Ex : C$ = INKEY$
INPUT$(i)
Lecture de i caractères au clavier sans affichage.
Ex : ST$ = INPUT$(5)
INSTR (chaîne, sous-chaîne)
INSTR (i, chaîne, sous-chaîne)
Donne la position de la sous-chaîne dans la chaîne a partir du ième caractère, ou du premier à défaut de précision.
Ex : INSTR ("MON GOWAP","O") donne 2
INSTR (3, "MON GOWAP","O") donne 6
INT(v)
Retourne la partie entière du nombre.
Ex : INT (9.725) donne 9.
LEFT$(chaîne,i)
Retourne les i premiers caractères de la chaîne.
Ex : LEFT$("GOWAP", 3) donne "GOW"
LEN(chaîne)
Donne la longueur de la chaîne.
Ex : LEN("GOWAP") donne 5.
LOG(v)
Logarithme népérien.
MID$(chaîne, i, j)
Retourne les j caractères de la chaîne à partir du ième caractère. Ne pas confondre avec l'instruction MID$.
Ex : MID$("GOWAP",2,3) donne "OWA".
MID$("GOWAP",2,255) donne "OWAP".
OCT$(v)
Conversion en octal. Un nombre réel est d'abord arrondi.
PEEK (adresse)
Donne le contenu de l'octet à l'adresse mémoire indiquée.
POINT (x,y)
Donne le numéro de la couleur (de -8 à 7) du pixel au coordonnées désigné.
POS(canal)
Donne le numéro de la colonne à partir de laquelle sera effectuée l'écriture séquentiel sur le canal ouvert ou sur l'écran s'il est omis.
PRIG
Donne -1 si le contact du crayon optique est fermé, 0 sinon.
RIGHT$(chaîne, i)
Donne les i derniers caractères de la chaîne.
Ex : RIGHT$("GOWAP", 3) donne "WAP".
RIGHT$("GOWAP", 10) donne "GOWAP".
RND(u)
Retourne un nombre peudo-aléatoire de l'intervalle [0..1]. Le même nombre est redonné si u négatif ou nul, et une autre valeur est retourné pour une valeur positive. Dans d'autre BASIC, un nombre négatif replace le pointeur sur le premier nombre de la série.
Ex : FOR T = 1 TO 10 : PRINT RND : NEXT
FOR T = 1 TO 10 : PRINT RND(0) : NEXT
SCREEN(L,C)
Retourne le code ASCII du caractère situé sur l'écran aux coordonnées (L,C). Ne pas confondre avec l'instruction SCREEN.
SGN(v)
Donne -1 si v est négatif, 0 si v est nul et 1 si v est positif.
SIN(v)
Donne le sinus de l'angle v exprimé en radians.
SPC(i)
Génère une chaîne de i caractère espace avec l'instruction PRINT
Ex : PRINT "A" ; SPC(2) ; "B" donne "A  B".
SQR(v)
Retourne la racine carrée de v.
STICK(v)
Donne la position (0 à 8) de la manette de jeu i (i = 0 à 1).
STRIG(i)
Retourne -1 si le bouton de la manette de jeu i (i = 0 à 1) est appuyé, et 0 sinon.
STR$(v)
Conversion d'une valeur numérique en une chaîne.
TAB(v)
Utilisé avec PRINT : provoque une tabulation à la colonne c.
TAN(v)
Retourne la tangente de l'angle v exprimé en radians.
USR i, argument
Exécution avec passage de paramètres du sous-programme en langage machine i (i = 0 à 9).
VAL (chaîne)
Donne la valeur numérique du nombre représenté par les premiers caractères de la chaîne ou 0 si chaîne ne représente pas un nombre.
Ex : PRINT VAL("15.50 Euro") donne 15.50
PRINT VAL("$15.50") donne 0.
VARPTR(var)
Donne l'adresse du premier octet de la variable.

Erreurs détectées haut de page
AO 52 Fichier déjà ouvert (Already Open)
BD 58 Mauvaises données dans le fichier (Bad DATA)
BS 9 Indice en dehors des limites (Subscript out of range)
CN 17 Suite d'exécution impossible (Can't continue)
- arrêt sur erreur
- modification du programme après une interruption par CNT - C
DD 10 Définition multiple ou définition d'un tableau après l'avoir utilisé avec un dimensionnement implicite (resimensioned array)
DS 56 Commande directe dans un fichier ASCII en cours de chargement (DIRECT Statement)
DU 60 Périphérique non disponible (Device unavailable)
FC 5 Argument incorrect dans l'appel d'une fonction ou de certaines instructions (illegal funciton call)
FD 55 Descripteur de fichier incorrect (Bad file descriptor)
FM 51 Mode d'accès au fichier incorrect (Bad file mode)
FN 23 Instruction FOR sans instruction NEXT (For without Next)
ID 12 Instruction interdite en mode immédiat (illegal Direct)
IE 54 Tentative de lecture d'un fichier après la fin de fichier. Pour éviter cette erreur, utiliser la fonction EOF (Input past End)
IO 53 Erreur d'entrée/sortie (Input/output)
IU 59 Périphérique en cours de fonctionnement (Device in use)
LS 15 Chaîne de caractères trop longue (String too long)
MO 22 Opérande manquant (Missing Opérand)
NF 1 Instruction NEXT sans instruction FOR ou NEXT avec variable ne correspondant pas à l'instruction FOR exécutée (NEXT without For)
NO 57 Fichier non ouvert (Not Open)
NR 19 Instruction RESUME manquante dans le sous-programme de traitement des erreurs (No Resume)
NU 50 Numéro de fichier incorrect (Not in use)
OM 7 Dépassement de capacité en mémoire centrale (Out of Memory)
OD 4 Instruction READ alors que les données des instruction DATA sont épuisées (Out of Data)
OS 14 Manque de place pour les chaîne (Out of string Space)
OV 6 Dépassement de capacité par valeur supérieure (Overflow)
PP 61 Programme protégé (Protect program)
RE 20 Instruction RESUME alors qu'il n'y a pas eu d'erreur détectée (Resule without Error)
RG 3 Instruction RETURN alors que GOSUB n'a pas été exécuté (Return without Gosub)
SN 2 Erreur de syntaxe (Syntaxe error)
ST 16 Expression sur chaîne trop complexe (String formula Too complex)
TM 13 Non correspondance de type (Type Mismatch)
UE 21 Erreur non définie (Undefined Error)
UF 18 Fonction utilisateur non définie (Undefined user Fonction)
UL 8 Numéro de ligne inexistant (Undefined Ligne)
/0 11 Division par zéro

Particularités du TO7-70 haut de page

Capacité mémoire et gestion des 8 couleurs supplémentaires

Le TO7-70 se différencie du TO7 essentiellement par sa capacité mémoire, qui a été accrue, et par l'emploi possible de 16 couleur au lieu de 8...

I. Exploitation de la mémoire du TO7-70 avec le BASIC Version 1.0 MICROSOFT

Le TO7 a 8 Ko de mémoire-utilisateur.

Dans sa version de base, le TO7-70 dispose, lui de 48 Ko de mémoire vive utilisateur, dont seuls 32 Ko sont accessibles simultanément. Un bloc-mémoire (ou banque-mémoire) de 16 Ko est utilisable pour vos programme grâce à la technique de la commutation de blocs-mémoire, même si cette technique n'est pas applicable directement au moyen d'instruction BASIC : il vous faut des sous-programmes spéciaux en Assembleur, incorporable dans vos programmes BASIC.

Structure de la mémoire du TO7-70
32 Ko RAM utilisateur (pour programmes en BASIC)
16 Ko de ROM BASIC
16 Ko de RAM mémoire écran
16 Ko RAM
Bloc (ou banque) supplémentaire de 16 Ko de RAM utilisable par recouvrement (overlay) pour vos programmes en ASSEMBLEUR et par commutation.

N.B. : Le mot "recouvrement" veut dire que ces 16 Ko sont aux mêmes adresses physiques que le bloc de 16 Ko de gauche.

Le 16 Ko de la cartouche BASIC ne viennent jamais masquer une partie des 32 Ko utilisateurs.

A titre d'exemples, voici deux programmes utilisant le bloc-mémoire (ou banque-mémoire) non accessible directement par le BASIC :

1. Un programme pour recopier une disquette lorsqu'on ne dispose que d'un seul lecteur de disquettes;

2. Un programme pour mémoriser et rappeler des écrans graphiques générés de façon aléatoire ; l'exemple utilise les 8 premières couleurs...

10 PRINT "Programme de backup disque rapide avec un seul lecteur"
15 PRINT "Assurez vous que la disquette copie est initialisée (sinon appuyez sur CNT-C, insérez la disquette copie, puis commande DSKINI 0, puis relancez ce programme par run)."
20 CLEAR ,&H9FDF
30 GOSUB 1000 'Initialisation routine de commutation
40 A$="Insérez la disquette source, puis frappez une touche quelconque"
50 B$="Insérez la disquette copie, puis frappez une touche quelconque"
60 C$=""
70 X=VARPTR(C$)
80 POKE X,128
100 FOR I=0 TO 2
110 IO=1
120 MAX=15
130 PRINT A$
140 R$=INPUT$(1)
150 PT=&hA000:A=USR0(0) 'Sélection banque 0
160 IF I=2 THEN MAX=7
170 FOR P=0 TO MAX
180 IF P=8 THEN PT=&HA000:A=USR0(1) 'Sélection banque 1
190 FOR S=1 TO 16
200 POKE X+1,INT(PT/256)
210 POKE X+2,(PT-&HA000) MOD 256
215 PRINT P+I*16,S,HEX$(PT)
220 ON IO GOSUB 500,600
230 PT=PT+128
240 NEXT S,P
250 IF IO=1 THEN IO=2:PRINT B$:GOTO 140
260 NEXT I
270 PRINT "Copie terminée"
280 END
500 MID$(C$,1)=DSKI$(0,P+I*16,S)
510 RETURN
600 DSKO$ 0,P+I*16,S,C$
610 RETURN
1000 'Programme de commutation banque
1010 ' Le numéro de banque est donne de 0 à 5
1020 DATA 52, 86, 206, 231, 192, 230, 75, 196, 251, 231, 75, 166, 3, 48, 140, 10, 166, 134, 167, 75, 202, 4, 231, 75, 53, 214, 15, 23, 231, 103, 167, 39
1030 FOR I=&H9FE0 TO &H9FFF
1040 READ A:POKE I,A
1050 NEXT
1060 DEFUSR0=&H9FE0
1070 RETURN
10 CLEAR,&H9F9F
20 GOSUB 1000 'Initialisation routine de commutation
30 GOSUB 2000 'Initialisation routine de copie d'écran
40 SCREEN ,0,0
50 LOCATE 0,0,0
100 'Dessin aléatoire
110 CLS
120 FOR I=1 TO 100
130 LINE (160,100) - (RND*320, RND*200), INT(RND*8)
140 NEXT
150 A=USR0(0) 'Sélection 1ere banque
160 A=USR1(0) 'Copie écran --> mémoire
200 '2eme dessin aléatoire
210 CLS
220 FOR I=1 TO 50
230 LINE (RND*320, RND*200) - (RND*320, RND*200), INT(RND*8)
240 NEXT
250 A=USR0(1) 'Sélection 2ere banque
260 A=USR1(0) 'Copie écran --> mémoire
300 'récupération des images
310 CLS
320 PRINT 'Quelle image (0 ou 1) ?"
330 R%=VAL(INPUT$(1))
340 IF R%<0 OR R%>1 GOTO 320
350 A=USR0(R%) 'Sélection bonne banque
360 A=USR1(1) 'Copie mémoire --> écran
370 R$=INPUT$(1) 'On attend un caractère pour continuer
380 GOTO 310
1000 'Programme de commutation banque
1010 'le numéro de banque est donne de 0 à 5
1020 DATA 52, 86, 206, 231, 192, 230, 75, 196, 251, 231, 75, 166, 3, 48, 140, 10, 166, 134, 167, 75, 202, 4, 231, 75, 53, 214, 15, 23, 231, 103, 167, 39
1030 FOR I=$H9FE0 TO &H9FFF
1040 READ A:POKE I,A
1050 NEXT
1060 DEFUSR0=&H9FE0
1070 RETURN
2000 'Programme de copie
2010 ' de l'écran vers la mémoire si 0 est donne
2020 ' de la mémoire vers l'écran si 1 est donne
2030 DATA 52,  118, 166, 3, 142, 64, 0, 206, 160, 0, 77, 39, 2, 30, 19, 182, 231, 195, 138, 1, 183, 23, 1, 195, 16, 142, 16, 0, 236, 129, 237, 193, 49, 63, 38, 248, 182, 231, 195, 68, 36, 16, 72, 140, 96, 0, 39, 5, 206, 64, 0, 32, 224, 142, 64, 0, 32, 219, 53, 246
2040 FOR I=&H9FA0 TO &H9FDA
2050 READ A:POKE I,A
2060 NEXT
2070 DEFUSR1=&H9FA0
2080 RETURN

Vous y trouverez la routine de commutation de blocs-mémoire dans un programme BASIC, qui est la suivante:

N° ligne Commentaire
... CLEAR,&H9FDF Réserve de la place pour le sous-programme ASSEMBLEUR dans la zone des 16 Ko fixe du BASIC
... GOSUB XXX Initialise le sous-programme
... A=USR0(n) Sélectionne le bloc-mémoire n.
n = 0 ou 1 pour le TO7-70
n = 0..5 avec l'extension mémoire 64 Ko.
A la mise en service, le bloc 0 est sélectionné.
XXX DATA 52,... Introduction du code machine.
... FOR I=&H9FE0 TO &H9FFF
... READ A: POKE I,A
Lecture du code machine (READ) et introduction en mémoire (POKE)

... NEXT
... DEFUSR0=&H9FE0
... RETURN

Cette routine est utilisable dans tous vos programme en BASIC...

Remarque au sujet de la capacité mémoire et de la fonction FRE(0) qui donne la place disponible - en octets - dans la mémoire centrale : puisqu'il y a toujours un bloc-mémoire de 16 Ko RAM présent et un autre qui est "masqué", PRINT FRE(0) ne fera jamais apparaître les 48 Ko de mémoire vive utilisateur du T07-70.

Mais grâce à la technique de commutation des blocs, le bloc masqué peut être rendu "visible" et celui qui est visible prendre sa place à tout moment ...

 

II. Exploitation des 8 couleurs supplémentaires du TO7-70

Le TO7-70 dispose de 16 couleurs fond et forme pour les caractères.

ATTENTION : En BASIC, les instructions SCREEN (pour changer les couleurs de la fenêtre de travail et de l'entourage de l'écran) et COLOR (pour changer les règles d'utilisation des couleurs de l'écran pour les prochains caractères qui seront affichés) n'acceptent que des arguments inférieurs à 8.

Vous pouvez accéder aux 8 couleurs supplémentaires avec les ordres suivants :

F = 112 couleur caractère ou forme C = 0 gris C = 4 bleu ciel
F = 120 couleur fond C = 1 rose C = 5 rose parme
F = 128 couleur tour C = 2 vert clair C = 6 cyan clair
C = 3 jaune poussin C = 7 orange

L'instruction SCREEN pour le fond et la forme se fera par :

PRINT CHR$(27)CHR$(32)CHR$(F+C)

Exemple :
Si vous voulez des caractères vert clair sur un fond rose parme, vous devrez successivement rentrer les instructions suivantes, soit directement, soit dans un programme :
- pour les caractère, F = 112
- pour vert clair, C = 2
- donc F + C = 114

PRINT CHR$(27)CHR$(32)CHR$(114)

- pour le fond, F = 120
- pour rose parme, C = 2
- pour F + C = 125

PRINT CHR$(27)CHR$(32)CHR$(125)

Pour le pourtour de l'écran (F=128), il suffit de faire :

PRINT CHR$(27)CHR$(F+C)

Même chose pour l'instruction COLOR.

Quant à la fonction POINT (qui donne une valeur numérique indiquant la couleur du point de l'écran de coordonnées X et Y), elle retournera des valeurs comprises entre -16 et 15 selon les couleurs :

FOND FORME
-16 15 orange
-15 14 cyan clair
-14 13 rose parme
-13 12 bleu ciel
-12 11 jaune poussin
-11 10 vert clair
-10 9 rose
-9 8 gris

Illustration : voici maintenant un programme de défilement des 16 couleurs disponibles dans le TO7-70 avec la cartouche BASIC 1.0 :

10 CLS
20 FOR I=0 TO 7
30 FOR J=0 TO 10
40 SCREEN ,I
50 NEXT J
60 NEXT I
70 FOR I=8 TO 15
80 FOR J=0 TO 5
90 PRINT CHR$(27)CHR$(32)CHR$(112+I)
100 NEXT J
110 NEXT I
120 GOTO 20

Commentaire :

10 Effacement de l'écran
20.60

Définit le compteur de boucle pour l'affichage des 8 premières couleurs (0 à 7) accessibles par SCREEN.

30.50 Définit le compteur de temporisation de la couleur sur l'écran.
40 Transforme le fond dans la nouvelle couleur
70.110

Définir le compteur de boucle pour l'affichage des 8 couleurs supplémentaire no accessibles par SCREEN.

80.100 Définit le compteur de temporisation de la couleur sur l'écran.
90 Transforme le fond dans la nouvelle couleur 112 = 120 + (I-8).
120 Recommence la séquence.

Terminer le programme avec [CNT][C].


Jeu de codes ASCII haut de page
Code Caractère 18 DC2 répétition 37 % 62 >
00 nul 19 38 & 63 ?
01 20 DC4 arrêt curseur 39 ' 64 @
02 touche stop clavier 21 40 ( 65 A
03 22 SS2 touche accent ACC 41 ) ...
04 23 42 * 90 Z
05 24 CAN efface la fin de la ligne 43 + 91 (
06 25 44 , 92 )
07 sonnette 26 45 - 94 ^
08 BS (Retour arrière) direction gauche 27 ESC appel d'un séquence 46 , 95 _
09 HT (tabulation H) direction droite 28 INS 47 / 96 -
10 LF (saut de ligne) direction bas 29 DEL 48 0 97 a
11 VT (tabulation V) direction haut 30 RS, retour en haut de page 49 1 ...
12 FF (saut de page) RAZ clavier 31 US séparateur d'article .. 122 z
13 CR (Retour à la ligne) ENTREE 32 Espace 57 9 123 {
14 SO Mode semi-graphique 33 ! 58 : 124 |
15 SI Mode alphanumérique 34 " 59 ; 125 }
16 35 # 60 < 126 surlignage
17 DC1 clignotement curseur 36 $ 61 = 127 caractère plein

Code écran spéciaux haut de page

touche acc + caractère ou code.

Caractère Code Résultat Caractère Code Caractère
# 35 £ z 122 oe
1 49 ± . 44 -->
< 60 1/4 _ 45 flèche haut
= 61 1/2 , 46 <--
> 62 3/4 / 47 flèche bas
8 56 ÷ j 106 OE

On peut obtenir les lettres accentué avec le code suivant :

è = 22 65 e é = 22 66 e ç = 22 75

Dernière mise à jour : mercredi 14 mai 2008